程序設計基礎(山東工商學院)智慧樹知到期末考試答案2024年_第1頁
程序設計基礎(山東工商學院)智慧樹知到期末考試答案2024年_第2頁
程序設計基礎(山東工商學院)智慧樹知到期末考試答案2024年_第3頁
程序設計基礎(山東工商學院)智慧樹知到期末考試答案2024年_第4頁
免費預覽已結束,剩余6頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

程序設計基礎(山東工商學院)智慧樹知到期末考試答案2024年程序設計基礎(山東工商學院)源程序編譯后生成的文件是()。

A:擴展名為obj的文件B:擴展名為c的文件C:擴展名為txt的文件D:擴展名為exe的文件答案:obj以下與int*q[5];等價的定義語句是()。

A:int*(q[5]);B:int*q;C:intq[5];D:int(*q)[5];答案:int*(q[5])下面哪種情況下feof函數(shù)返回非零值?()。

A:使用fseek之后B:讀寫位置指針指向結束標志時又進行了讀數(shù)據(jù)操作或讀數(shù)據(jù)的嘗試C:讀寫位置指針指向結束標志時D:剛打開文件時答案:讀寫位置指針指向結束標志時又進行了讀數(shù)據(jù)操作或讀數(shù)據(jù)的嘗試字符串存儲時的結束標志是()。

A:‘\r’B:‘\n’C:‘\\’D:‘\0’答案:‘\0’根據(jù)變量的存儲類別將變?yōu)榉譃椋ǎ?/p>

A:靜態(tài)變量和動態(tài)變量B:自動變量和臨時變量C:全局變量和局部變量D:自動變量和寄存器變量答案:靜態(tài)變量和動態(tài)變量程序編譯連接后顯示"0error,0warning"代表()。

A:程序中沒有邏輯錯誤B:程序中沒有語法錯誤C:程序中可能存在語法錯誤D:程序運行結果不會錯誤答案:程序中沒有語法錯誤intn=3,x;x=n++;上面程序段執(zhí)行后,x的值是()。

A:3B:2C:5D:4答案:3打開文件時若發(fā)生錯誤,fopen()的返回值是()。

A:1B:0C:EOFD:-1答案:0關于文件操作,下面說法正確的是()。

A:緩沖文件系統(tǒng)中,緩沖區(qū)須由程序員負責開辟、管理并釋放B:用fopen函數(shù)打開文件時,只能使用高級輸入輸出函數(shù),用open函數(shù)打開文件時,只能使用低級輸入輸出函數(shù)C:用fread、fprintf函數(shù)讀寫的數(shù)據(jù)是經過緩沖區(qū)的,用read、putw函數(shù)讀寫的數(shù)據(jù)是不經過緩沖區(qū)的D:一個文件在內存中分配兩個緩沖區(qū):輸入緩沖區(qū)和輸出緩沖區(qū)答案:用fread、fprintf函數(shù)讀寫的數(shù)據(jù)是經過緩沖區(qū)的,用read、putw函數(shù)讀寫的數(shù)據(jù)是不經過緩沖區(qū)的關于指針和指針變量,以下說法正確的是()。

A:指針是指針變量的一部分B:指針變量是指針的一種C:其他三種說法都不對D:指針與指針變量是同一個概念答案:指針變量是指針的一種把程序分成幾個函數(shù)的優(yōu)點有()。

A:符合結構化程序設計的要求B:方便編譯和調試C:增加程序可讀性D:減少代碼書寫,提高代碼重用率答案:符合結構化程序設計的要求###減少代碼書寫,提高代碼重用率###方便編譯和調試###增加程序可讀性若有定義inta;constintb=1;則下列表達式錯誤的有()。

A:b=2B:b=aC:b++D:a=b答案:b=a###b++###b=2設指針p已正確定義,以下語句中,能動態(tài)分配的兩個連續(xù)的int型變量并使p指向首變量的語句有()。

A:p=2*(int*)malloc(sizeof(int));B:p=(int*)malloc(2*1);C:p=(int*)calloc(2,sizeof(int));D:p=(int*)malloc(2*sizeof(int));答案:p=(int*)malloc(2*sizeof(int))###p=(int*)calloc(2,sizeof(int))文件共8字節(jié)(0~7),讀寫位置指針指在文件的第5字節(jié),能將它移動到第3字節(jié)的代碼有()。

A:fseek(fp,-4,2);B:rewind(fp);fseek(fp,3,0);C:fseek(fp,-2,1);D:fseek(fp,-2,0);E:fseek(fp,-5,2);答案:fseek(fp,-5,2)###fseek(fp,-2,1)###rewind(fp);fseek(fp,3,0)把程序寫成若干個函數(shù),應遵循的原則有()。

A:每個函數(shù)都要"獨立"地完成"一"項任務B:與主調或被調函數(shù)之間的任務分配要合理C:函數(shù)要有較高的利用率和適用性D:函數(shù)與外界的耦合性要弱,盡量少用或不用全局變量答案:每個函數(shù)都要獨立地完成一項任務;與主調或被調函數(shù)之間的任務分配要合理;函數(shù)與外界的耦合性要弱,盡量少用或不用全局變量;函數(shù)要有較高的利用率和適用性關于結構體和共用體,下面說法正確的有()。

A:共用體變量有全局和局部之分B:共用體定義有全局和局部之分C:結構的定義有全局和局部之分D:結構體數(shù)組有全局和局部之分答案:結構的定義有全局和局部之分###結構體數(shù)組有全局和局部之分###共用體定義有全局和局部之分###共用體變量有全局和局部之分下列選項中屬于正確的字符常量的有()。

A:'\x41'B:"ABC"C:‘\80’D:‘\101’答案:1以下與庫函數(shù)strcpy(char*p,char*q)功能相等的程序段有()。

A:strcpy2(char*p,char*q){while((*p=*q)!='\0'){p++;q++;}}B:strcpy1(char*p,char*q){while((*p++=*q++)!='\0');}C:strcpy3(char*p,char*q){while(*p++=*q++);}D:strcpy4(char*p,char*q){while(*p)*p++=*q++;}答案:strcpy4(char*p,char*q){while(*p)*p++=*q++;}以下關于C語言描述中正確的有()。

A:每個語句的最后必須有一個分號B:一個C程序可以包含多個main函數(shù)C:C語言的注釋通常以"/*"開始并以"*/"結束D:一個C程序總是從main函數(shù)開始執(zhí)行答案:一個C程序可以包含多個main函數(shù)要想通過指針變量p訪問變量a,下面代碼正確的有()。

A:inta,*p;*p=a;printf("%d",*p);B:inta,*p=printf("%d",*p);C:inta,*p=a;printf("%d",*p);D:inta,*p;p=printf("%d",*p);答案:inta,*p;p=printf(%d,*p);;inta,*p=printf(%d,*p);一個被調函數(shù)(函數(shù)有形參)的執(zhí)行,所包括的過程有()。

A:執(zhí)行被調函數(shù)函數(shù)體B:傳遞參數(shù)C:給形參分配空間D:釋放形參答案:傳遞參數(shù)###執(zhí)行被調函數(shù)函數(shù)體###給形參分配空間###釋放形參以下關于宏定義的四種說法中,正確的有()。

A:宏定義可以簡化書寫B(tài):宏定義最終還是要被換回它所代表的字符C:有參數(shù)的宏定義,其參數(shù)不占內存空間D:用不用宏定義,對最終的exe文件沒有影響答案:宏定義可以簡化書寫###宏定義最終還是要被換回它所代表的字符###有參數(shù)的宏定義,其參數(shù)不占內存空間###用不用宏定義,對最終的exe文件沒有影響設有代碼:inta,*p=關于用直接尋址還是間接尋址訪問a,下面說法正確的有()。

A:在p的作用域內,可以用間接訪問的方式B:任何時候都可以直接訪問aC:任何時候都可以間接訪問aD:在a的作用域內,可以用直接訪問的方式答案:在a的作用域內,可以用直接訪問的方式###在p的作用域內,可以用間接訪問的方式下面4個選項中,能從文件中讀取一個字符并存入char型變量的函數(shù)有()。

A:fscanfB:freadC:fgetcD:fgets答案:fscanf###fread以下不能正確定義二維數(shù)組的有()。

A:inta[][3]={};B:inta[][3]={2*3};C:inta[][3];D:inta[2][3]={{1},{2},{3,4}};答案:int關于變量的作用域和命名等問題,下面說法正確的有()。

A:不同的函數(shù)中可以使用相同的變量名B:形式參數(shù)是局部變量C:同一個作用域內可以使用相同的變量名D:在一個函數(shù)內定義的變量只能在本函數(shù)范圍內使用答案:不同的函數(shù)中可以使用相同的變量名###在一個函數(shù)內定義的變量只能在本函數(shù)范圍內使用###形式參數(shù)是局部變量下面四個宏定義中,正確的有()。

A:#defineN3;B:#definen3abC:#defineN=2D:definePI3.14答案:#defineN3####definen3ab若有定義:intb[4][6],*p,*q[4];且0≤i<4,則正確的賦值語句有()。

A:q[i]=&b[0][0];B:p=b[i];C:p=b;D:q[i]=b[i];答案:p=ba、b、c1、c2、x、y均為整型變量,錯誤的switch語句有()。

A:switch(a*2.0){casec1:y=a+b;break;casec2:y=a-b;break;default:x=a+b;}B:switch(a*a+b*b);{case1:y=a+b;case0:y=a-b;}C:swtich(a-b){default:y=a*b;break;case3:case2:y=a+b;}D:swich(a+b){case1:y=a+b;break;case0:y=a-b;break;}答案:swich(a+b){case1:y=a+b;break;case0:y=a-b;break;};switch(a*a+b*b);{case1:y=a+b;case0:y=a-b;};switch(a*2.0){casec1:y=a+b;break;casec2:y=a-b;break;default:x=a+b;}#include<stdio.h>intmain(){intx,t;for(t=1;t<100;t++){scanf("%d",&x);if(x<0)continue;printf("%d\n",t);}return0;}對上面的程序描述錯誤的有()。

A:printf函數(shù)永遠也不會被執(zhí)行B:最多允許輸出100個非負整數(shù)C:當x<0時,整個循環(huán)結束D:當x>=0時,程序沒有輸出答案:最多允許輸出100個非負整數(shù)設有宏定義#defineNum123則代碼inta=Num456相當于inta=123456()

A:錯B:對答案:錯!是按位取反運算符()

A:正確B:錯誤答案:~若有說明:char*language[]={“FORTRAN”,”BASIC”,”PASCAL”,”JAVA”,”C”};則language[2]的值是一個字符()

A:對B:錯答案:錯#include"stdio.h"intmain(intargc,char*argv[]){intm;for(m=1;m<argc;m++)printf("%c",*argv[m]);return0;}假定上面程序的可執(zhí)行文件名為file.exe,則在該程序所在的子目錄下輸入命令行:filegirlboy↙后,程序的輸出結果是girlboy()

A:錯B:對答案:錯文件的內容是:0000001000000001,用fread()函數(shù)讀取一個短整數(shù),則短整數(shù)的值是513()

A:對B:錯答案:錯switch語句中,case和default的位置次序可以任意互換,不會影響程序的執(zhí)行結果。()

A:對B:錯答案:錯inta[2][3];int*p=a[0];p++;以上代碼運行后,p指向a[1][0]()

A:錯B:對答案:錯按位或|常用來讓某些位翻轉()

A:錯B:對答案:對結構在內存中所占的空間大小,等于各成員所占空間大小之和(不考慮內存對齊規(guī)則)()

A:錯B:對答案:錯編譯能發(fā)現(xiàn)注釋中的拼寫或語法錯誤。()

A:對B:錯答案:錯x是整型變量,j是實型變量,執(zhí)行x=(int)j后,j的類型變?yōu)檎汀#ǎ?/p>

A:對B:錯答案:錯在main函數(shù)中定義的變量一般是全局變量()

A:對B:錯答案:錯指針就是地址,地址就是指針()

A:對B:錯答案:對函數(shù)聲明和函數(shù)定義的區(qū)別是,函數(shù)定義包括函數(shù)體,而函數(shù)聲明沒有函數(shù)體,且后面帶分號.()

A:對B:錯答案:對文件的二進制內容是:0011000100110010,用文本方式從文件中讀出一個整數(shù),則整數(shù)的值是12()

A:錯B:對答案:對c語言中,空語句表示什么都不做,因此可以省略。()

A:對B:錯答案:錯一個源文件必須且只能有一個主函數(shù)。()

A:對B:錯答案:錯字符數(shù)組定義后,不能用賦值語句將一字符串常量或字符數(shù)組直接賦給它()

A:對B:錯答案:對C語言規(guī)定:宏定義時,宏名必須用大寫()

A:對B:錯答案:錯邏輯表達式中,有些運算符可能不會執(zhí)行到。()

A:錯B:對答案:對關于文件的讀寫位置指針,下面說法正確的是()。

A:文件的讀寫位置指針,指向FILE型變量中的某字節(jié)B:文件的讀寫位置指針,對應著下一次要讀(寫)的那個字節(jié)C:文件的讀寫位置指針,指向文件D:文件的讀寫位置指針,是個變量,用來存儲緩沖區(qū)的首地址答案:AI參考:正確答案是B:文件的讀寫位置指針,對應著下一次要讀(寫)的那個字節(jié)。\n\n文件的讀寫位置指針是指向下一次要讀(寫)的那個字節(jié),而不是指向FILE型變量中的某字節(jié)、文件、緩沖區(qū)的首地址等。因此,選項B是正確的。選項A和D中的描述不夠準確,選項C則完全錯誤。'inta=321,b=65536;

printf("%ld,%hd,%c\n",a,b,a);

上面程序段的運行結果是()。

A:321000,-32767,256B:321,0,AC:其他三個答案都不對D:321,32767,0答案:AI參考:程序段的運行結果是:321,-32767,0。\n\n解釋:\n\n1.`inta=321`:聲明了一個整數(shù)變量a,并初始化為321。\n2.`b=65536`:聲明了一個整數(shù)變量b,并初始化為65536。由于整數(shù)在計算機內部是以二進制形式存儲的,所以65536在內存中實際上是0xFFFF0000(十進制表示為-32767)。\n3.`printf("%ld,%hd,%c\n",a,b,a);`:使用printf函數(shù)輸出變量a、b和a的值。\n\n\n\t*`%ld`用于輸出長整型數(shù)值,即a的值(由于a的值為321,所以輸出為321)。\n\t*`%hd`用于輸出短整型數(shù)值,即b的值(由于b的值為-32767,所以輸出為-32767)。\n\t*`%c`用于輸出字符型數(shù)據(jù),即a的值(由于a是一個整數(shù),所以輸出為對應的字符A)。\n\n因此,程序的運行結果是:321,-32767,0。所以,正確答案是D。'設整數(shù)也只用一個字節(jié)存儲,則整數(shù)1與字符‘1’在內存中的存儲形式分別是()。

A:0011000100000001B:0000000100110001C:0011000100110001D:0000000100000001答案:"AI參考:正確答案是【D:0000000100000001】。整數(shù)1在內存中的存儲形式是二進制數(shù),即00000001;字符1在內存中的存儲形式是ASCII碼,即對應的二進制數(shù),即00110001。所以答案是D。"是否要在寫文件時對00001010進行加字節(jié)的處理,取決于()。

A:打開方式B:文件類型C:文件類型和所用函數(shù)D:所用的函數(shù)答案:AI參考:正確選項是【C:文件類型和所用函數(shù)】。\n\n在寫文件時,是否需要對00001010進行加字節(jié)的處理,取決于文件類型和所用函數(shù)。不同的文件類型和函數(shù)可能需要不同的處理方式,例如二進制文件和文本文件可能需要不同的處理方式。因此,需要根據(jù)具體情況來確定是否需要進行加字節(jié)的處理。選項A、B、D都不足以解釋為什么需要進行加字節(jié)的處理。'關于結構定義的位置,下面說法正確的是()。

A:結構的定義一般放在函數(shù)外面,以便增加它的生命期B:結構的定義一般放在函數(shù)內部作為局部定義,以減少它占用內存的時間C:結構的定義一般放在函數(shù)里,以便盡量減少它的作用域D:結構的定義一般放在函數(shù)之外,以便增加它的作用域答案:AI參考:正確答案是D:結構的定義一般放在函數(shù)之外,以便增加它的作用域。\n\n在C語言中,結構體是一種自定義的數(shù)據(jù)類型,可以用來存儲一組相關的數(shù)據(jù)。結構的定義一般放在函數(shù)之外,以便增加它的作用域,這樣可以使得結構體中的數(shù)據(jù)可以在多個函數(shù)之間共享,提高代碼的可重用性和可維護性。因此,選項D是正確的。選項A、B、C都存在一定的局限性,不適合作為正確答案。'inttest()

{

intx=0;

staticinty=5;

y+=++x;

returnx+y;

}

intmain()

{

test();

printf("%d\n",test());

return0;

}

上面程序段的運行結果是()。

A:5B:6C:8D:7答案:AI參考:程序段中,函數(shù)test()返回的是x和y的和,其中x的值在函數(shù)調用時被遞增,y的值在函數(shù)調用時保持不變。因此,函數(shù)test()返回的結果是x+y,即7。在main()函數(shù)中,調用了test()函數(shù)并打印了返回的結果,所以最終打印的結果也是7。因此,正確答案是D:7。'關于while(a>b>c){…},以下說法正確的是()。

A:循環(huán)條件有語法錯誤B:當a>b且b>c時,條件成立C:當a<b且c<0時,條件成立D:當a>b且c>0時,條件成立答案:AI參考:正確答案是D:當a>b且c>0時,條件成立。\nwhile(a>b>c)這個語句中,首先a>b是一個條件,其次b>c也是一個條件,所以只要同時滿足這兩個條件,就會進入循環(huán)體。因此選項D是正確的。其他選項中,A和B都存在語法錯誤,C則不符合邏輯。'以下數(shù)據(jù)定義語句中,能對a進行自增運算并且自增后有意義的是()。

A:char(*a)[3];B:char*a[]={"12","ab"};C:intb[10],*a=b;D:inta[3][2];答案:AI參考:正確答案是:C:intb[10],*a=b;。\nC選項正確。解釋如下:在C語言中,char類型的指針不能指向字符數(shù)組,char*類型的指針可以指向字符數(shù)組,但該指針必須是指向數(shù)組首元素的指針,不能是數(shù)組本身。選項A中的a是一個指向包含三個元素的字符數(shù)組的指針,無法對其進行自增運算。選項B中的a是一個字符數(shù)組的指針,可以通過*a進行自增運算,但是它不能指向一個字符串,所以該語句在自增后可能沒有意義。選項D中的a是一個二維數(shù)組,可以進行自增運算,但是該語句本身并沒有對a進行定義,所以不能進行自增運算。而選項C中的a是一個指向整型數(shù)組的指針,可以進行自增運算,并且自增后指向下一個元素,有意義。因此,選項C是正確的。'在內存的棧區(qū)(動態(tài)存儲區(qū))分配空間的是()。

A:全局變量B:寄存器變量C:局部靜態(tài)變量D:局部自動變量答案:AI參考:正確選項是D:局部自動變量。\n\n在內存的棧區(qū)(動態(tài)存儲區(qū))分配空間的是局部自動變量,用于存儲局部變量的數(shù)據(jù)。全局變量和靜態(tài)變量通常在數(shù)據(jù)區(qū)(靜態(tài)存儲區(qū))分配空間。寄存器變量通常在寄存器中分配空間,而不是在內存中分配空間。'關于函數(shù)聲明,下面說法錯誤的是()。

A:函數(shù)定義中包含著函數(shù)聲明B:函數(shù)不聲明,系統(tǒng)默認它是int型C:改變函數(shù)聲明的位置不會影響程序的執(zhí)行D:函數(shù)聲明必須寫形參類型,除非函數(shù)不帶參數(shù)答案:AI參考:關于函數(shù)聲明,下面說法錯誤的是D:函數(shù)聲明必須寫形參類型,除非函數(shù)不帶參數(shù)。\n\n在C和C++中,函數(shù)聲明必須包含形參類型,即使函數(shù)沒有實際參數(shù)。這是函數(shù)聲明的規(guī)則之一,用于告訴編譯器函數(shù)的返回類型以及輸入參數(shù)的類型,以便進行類型檢查和代碼優(yōu)化。如果忽略了形參類型,可能會導致編譯錯誤或意外的行為。因此,選項D是錯誤的。其他選項A、B和C都是正確的,它們描述了函數(shù)聲明的一些常見實踐和規(guī)則。'關于變量的存儲類別和初值等

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論