《語言程序設計》課程考試復習題庫(含答案)_第1頁
《語言程序設計》課程考試復習題庫(含答案)_第2頁
《語言程序設計》課程考試復習題庫(含答案)_第3頁
《語言程序設計》課程考試復習題庫(含答案)_第4頁
《語言程序設計》課程考試復習題庫(含答案)_第5頁
已閱讀5頁,還剩77頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

PAGEPAGE1《語言程序設計》課程考試復習題庫(含答案)一、單選題1.以下程序的輸出結果是_______。Voidmain(){inta=10,b=4;Printf("%d\n",a/b);}A、0B、1C、2D、2.5答案:C解析:這道題考察的是整數(shù)除法的知識點。在C語言中,當兩個整數(shù)進行除法運算時,結果也會是一個整數(shù),且會舍棄小數(shù)部分。給定的程序中,變量a是10,變量b是4,所以`a/b`的結果是2,因此正確答案是C。2.下面程序運行后的結果是______。#include“stdio.h”Voidmain(){intx,y;X=-3+4?5-6;Printf(“x=%d,”,x);Y=x++-1;Printf(“x=%d,y=%d\n”,x,y);}A、x=11,x=12,y=10B、x=-1,x=0,y=-2C、x=11,x=12,y=11D、x=-1,x=0,y=-1答案:A解析:先計算x,根據(jù)運算符優(yōu)先級,先計算乘法4*5=20,然后依次計算-3+20=17,17-6=11,所以最初x=11。接著計算y,y=x++-1,先取x的值11計算,y=11-1=10,然后x自增1變?yōu)?2。所以最終結果是x=12,y=10,選項A正確。3.已知i、j、k為int型變量,若從鍵盤輸入:1,2,3<回車>,使i的值為1、j的值為2、k的值為3,以下選項中正確的輸入語句是_______。A、scanf("%2d%2d%2d",&i,&j,&k);B、scanf("%d%d%d",&i,&j,&k);C、scanf("%d,%d,%d",&i,&j,&k);D、scanf("i=%d,j=%d,k=%d",&i,&j,&k);答案:C4.以下程序段中的變量已正確定義,該程序段執(zhí)行后的輸出結果是________。For(i=0;i<4;i++,i++)For(k=1;k<3;k++)Printf("?");A、????????B、????C、??D、?答案:B解析:在這個程序段中,外層循環(huán)`for(i=0;i<4;i++,i++)`會執(zhí)行2次,因為`i`每次增加2。內(nèi)層循環(huán)`for(k=1;k<3;k++)`會執(zhí)行2次,因為`k`每次增加1。因此,內(nèi)層循環(huán)會執(zhí)行4次,輸出4個星號。所以,正確答案是B。5.判斷字符串str1是否大于字符串str2,應當使用_______。A、if(str1>str2)B、if(strcmp(str1,str2)<0)C、if(strcmp(str2,str1)>0)D、if(strcmp(str1,str2)>0)答案:D6.單精度型變量的類型說明符是________。A、intB、doubleC、floatD、char答案:C7.在C語言程序中,表達式5%2的結果是________。A、2.5B、2C、1D、3答案:C8.當調(diào)用函數(shù)時,實參是一維數(shù)組的數(shù)組名,則向函數(shù)傳遞的是_______。A、數(shù)組的長度B、數(shù)組的首地址C、數(shù)組的每一個元素的地址D、數(shù)組的每一個元素的值答案:B解析:答案解析:在C語言中,當調(diào)用函數(shù)時,若實參是一維數(shù)組的數(shù)組名,實際上傳遞的是數(shù)組的首地址。通過傳遞首地址,函數(shù)可以間接訪問和操作數(shù)組中的元素。這樣能夠提高程序的效率和靈活性,避免復制整個數(shù)組的數(shù)據(jù)。因此,正確答案是選項B。9.已定義inta[][3]={1,2,3,4,5,6,7,8,9};,則a[1][2]的初值為_______。A、2B、4C、6D、8答案:C10.以下正確的函數(shù)首部是_______。A、voidfun(intx,inty)B、voidfun(intx;inty)C、voidfun(intx,y)D、voidfun(x,y)答案:A11.下面程序運行后的結果是_______。Voidmain(){intmax,i,a[5]={11,22,13,47,35};Max=a[0];For(i=0;i<5;i++)If(a[i]>max)Max=a[i];Printf(“%d”,max);}A、11B、47C、35D、22答案:B解析:在這段程序中,首先將數(shù)組a的第一個元素a[0]賦值給變量max,然后通過for循環(huán)遍歷數(shù)組a的每個元素。在每次循環(huán)中,將當前元素a[i]與max進行比較,如果a[i]大于max,則將a[i]賦值給max。最后,輸出max的值。在這個例子中,數(shù)組a的最大值是47,因此程序運行后的結果是47,答案選B。12.以下程序的運行結果是_______。Intm=5;If(m++>5)Printf("%d\n",m);ElsePrintf("%d\n",m--);A、4B、5C、6D、7答案:C13.C語言程序中,引用數(shù)組元素時使用的下標允許是__________。A、整型常量B、整型表達式C、整型常量或整型表達式D、任何類型的表達式答案:C解析:在C語言中,數(shù)組下標用于標識數(shù)組中的特定元素。整型常量可以明確指定元素的位置,整型表達式通過計算也能得到有效的下標值。而其他類型的表達式,如浮點型表達式等,不符合C語言中數(shù)組下標的使用規(guī)則。所以,C語言程序中引用數(shù)組元素時使用的下標允許是整型常量或整型表達式,答案選C。14.有以下程序的執(zhí)行結果是_______。#include<stdio.h>Voidmain(){inta=0,b=0,c=0,d=0;If(a=1)B=1;C=2;Elsed=3;Printf("%d,%d,%d,%d\n",a,b,c,d);}A、0,1,2,0B、0,0,0,3C、編譯有錯D、1,1,2,0答案:C解析:答案解析:在這段C語言程序中,if語句的條件應該是一個邏輯表達式,而“if(a=1)”這里進行了賦值操作,并非邏輯判斷。C語言要求if條件必須是能產(chǎn)生邏輯值(真或假)的表達式,所以該程序編譯會出錯。因此,選項C是正確答案。15.關于標識符,下列說法不正確的是______。A、庫函數(shù)名稱為預定義標識符,不建議用作用戶自定義標識符B、關鍵字不能作為用戶自定義標識符C、用戶自定義標識符中不區(qū)分大小寫字母D、標識符中可以出現(xiàn)下劃線,且可以出現(xiàn)在標識符的任意位置答案:C16.若有定義:inta=7;floatx=2.5,y=4.7;則表達式x+a%3?(int)(x+y)%2/4的值是______。A、2.5B、2.75C、3.5D、0答案:A解析:根據(jù)運算符的優(yōu)先級,先計算括號內(nèi)的表達式,即x+y的值為7.2。然后,計算a%3的值為1。接著,將1強制轉換為int類型,并與7.2相乘,得到7。最后,將7除以4,得到1。將1與x的值2.5相加,得到最終結果3.5。因此,正確答案是選項C。17.邏輯運算符兩側運算對象的數(shù)據(jù)類型是________。A、只能是0或者1B、只能是0或非0正數(shù)C、只能是整型或字符型數(shù)據(jù)D、可以是任何類型的數(shù)據(jù)答案:D18.以下選項中,當x為大于1的奇數(shù)時,值為0的表達式______。A、x%2==1B、x/2C、x%2!=0D、x%2==0答案:D19.下面程序段的運行結果是_______。Intn=0;While(n++<=2)Printf("%d",n);A、2B、3C、4D、123答案:D解析:答案解析:初始時n=0,進入循環(huán)。第一次循環(huán),n++<=2,先判斷0<=2成立,然后n自增為1,輸出1。第二次循環(huán),1<=2成立,n自增為2,輸出2。第三次循環(huán),2<=2成立,n自增為3,輸出3。此時循環(huán)結束。所以輸出結果為123,選項D正確。20.有以下程序,程序運行后的輸出結果是_______。#include<stdio.h>#include<string.h>Voidmain(){chara[10]="abcd";Printf("%d,%d\n",strlen(a),sizeof(a));}A、7,4B、4,10C、8,8D、10,10答案:B解析:strlen函數(shù)計算字符串的實際長度,不包括'\0',字符串"abcd"的長度為4,所以strlen(a)為4;sizeof計算數(shù)組所占存儲空間大小,a數(shù)組定義為長度10,所以sizeof(a)為10。因此答案選B。21.有以下程序段Charch;intk;Ch=′a′;K=12;Printf("%c,%d,",ch,ch);Printf("k=%d\n",k);已知字符’a’的ASCII碼值為97,則執(zhí)行上述程序段后輸出結果是_______。A、因變量類型與格式描述符的類型不匹配輸出無定值B、輸出項與格式描述符個數(shù)不符,輸出為零值或不定值C、A,97,12,k=12D、A,97,k=12答案:D解析:%c用于輸出字符,%d用于輸出整數(shù)。ch='a',輸出字符'a',同時字符'a'的ASCII碼值為97,也會輸出97;k=12,輸出"k=12"。所以最終輸出結果為A,97,k=12,選項D正確。22.下列數(shù)據(jù)中屬于字符串常量的是________。A、"a"B、{ABC}C、'abc\0'D、'a'答案:A23.下面程序的功能是實現(xiàn)兩個字符變量互換值,若要為ch1變量接收值‘a(chǎn)’,為ch2變量接收值‘b’,則程序運行時正確的輸入形式是______。#include“stdio.h”Voidmain(){charch1,ch2,ch;Scanf("%c%c",&ch1,&ch2);Ch=ch1;ch1=ch2;ch2=ch;Printf("ch1=%c,ch2=%c\n",ch1,ch2);}A、,bB、a<空格>bC、abD、a<回車>b答案:C解析:在該程序中,scanf函數(shù)用于接收用戶輸入的兩個字符,中間不能有其他分隔符,直接依次輸入兩個字符即可。A選項有逗號,B選項有空格,D選項有回車,都不符合要求。只有C選項直接輸入“ab”,能正確地將“a”賦值給ch1,“b”賦值給ch2,所以正確答案是C。24.以下程序運行后的輸出結果是______。Voidmain(){inti;,sum=0;For(i=1;i<=3;sum++)Sum+=i;Printf(“%d”,sum);}A、6B、3C、0D、死循環(huán)答案:D解析:在這段C語言程序中,for循環(huán)的條件是i<=3,而循環(huán)體中并沒有改變i的值,所以i始終小于等于3,循環(huán)會一直執(zhí)行下去,形成死循環(huán)。因此,正確答案是D。25.C語言中表示大于或等于關系、不等于關系的運算符分別是_______。A、>=,!=B、≥,!=C、=>,<>D、>=,≠答案:A解析:在C語言中,大于或等于關系的運算符是>=,不等于關系的運算符是!=。選項B中的≥和≠不是C語言中的運算符;選項C中的=>和<>也不是C語言中的運算符;選項D中的≠是不等于關系的運算符,但>=不是C語言中的運算符。因此,正確答案是選項A。26.設有語句scanf(“%c%d%c”,&c1,&c2,&c3);要將c1、c2、c3的值分別輸入為常量‘a(chǎn)’、25、‘c’,則正確的輸入方法是_______。A、↙25↙c↙(為‘↙’回車符)B、a25c↙C、A,25,c↙D、a25c↙答案:B解析:答案解析:在scanf函數(shù)中,%c表示讀取一個字符,%d表示讀取一個整數(shù)。因此,要將c1、c2、c3的值分別輸入為常量‘a(chǎn)’、25、‘c’,需要按照相應的格式進行輸入。選項A中,在輸入字符‘a(chǎn)’后,需要輸入一個空格,再輸入整數(shù)25,最后輸入字符‘c’,不符合題目要求;選項C中,在輸入字符‘a(chǎn)’后,需要輸入一個逗號,再輸入整數(shù)25,最后輸入字符‘c’,不符合題目要求;選項D中,在輸入字符‘a(chǎn)’后,需要輸入一個空格,再輸入整數(shù)25,最后輸入字符‘c’,不符合題目要求。因此,正確的輸入方法是選項B。27.設有定義:doubleD,h;,其中d為三角形的底邊長,h為三角形的高,則以下C語言表達式與其面積公式(dh)/2計算結果不相符的是______。A、d?h/2B、1/2?d?hC、d?h?1/2D、/2?h答案:B解析:這道題考察的是C語言中的運算符優(yōu)先級和算術運算。在C語言中,乘法、除法和取余的優(yōu)先級高于加法和減法。對于選項B,表達式“1/2?d?h”中,由于1和2都是整型,所以1/2的結果為0,導致整個表達式的結果為0,與面積公式(dh)/2的計算結果不相符。其他選項均正確表達了面積的計算公式。28.在C語言中,int、short、char三種類型數(shù)據(jù)所占用的存儲空間是______。A、均為2個字節(jié)B、int和short占2個字節(jié),char占1個字節(jié)C、與編譯環(huán)境有關D、由用戶自己定義答案:C29.下列選項中。不正確的整型常量表示形式是________。A、-48B、0xv23C、010D、077答案:B解析:A選項,-48是常見的整型常量表示。C選項,以0開頭表示八進制數(shù),010是合法的八進制整型常量。D選項,以0開頭表示八進制數(shù),077是合法的八進制整型常量。而B選項中,0x開頭表示十六進制數(shù),但v不是十六進制的合法數(shù)字,所以該表示形式不正確。因此答案選B。30.若有以下語句組,則執(zhí)行后的輸出結果是_______。Intx=0;If(x++<0)Printf("%d",--x);Printf("%d",x++);A、-1B、1C、-1-1D、-10答案:B解析:在這個語句組中,首先將x的初始值設為0。然后,執(zhí)行if語句,由于x++<0不成立,所以不會執(zhí)行printf("%d",--x)。接著,執(zhí)行printf("%d",x++),此時x的值為1,輸出結果為1。因此,正確答案是B。31.以下選項中,正確的字符常量是_______。A、"F"B、'\\''C、'W'D、"ab"答案:C解析:答案解析:字符常量是用單引號括起來的單個字符。選項A和D是字符串常量,用雙引號括起來,不符合要求。選項B中包含兩個反斜杠,不是單個字符,也不符合要求。選項C是單個字符'W',符合字符常量的定義。因此,正確答案是C。32.以下說法正確的是______。A、C語言程序總是從第一個函數(shù)開始執(zhí)行。B、C語言程序中要調(diào)用的函數(shù)必須在main()函數(shù)中定義。C、語言程序總是從main()函數(shù)開始執(zhí)行。D、C語言程序中的main()函數(shù)必須放在程序的開始部分。答案:C33.下面程序運行后的結果是______。Voidmain(){intx=1,y=0;Switch(x){case1:y=y+1;Case2:y=y+10;break;Default:y=y+100;}Printf(“y=%d\n”,y);}A、y=0B、y=1C、y=11D、y=111答案:C解析:這道題考察的是C語言中switch語句的執(zhí)行邏輯。首先,變量x被初始化為1,然后進入switch語句。在switch中,case1匹配成功,執(zhí)行y=y+1,此時y變?yōu)?。由于case1后沒有break語句,程序會繼續(xù)執(zhí)行case2中的y=y+10,此時y變?yōu)?1。最后,程序輸出y的值,即11。所以正確答案是C。34.關于與switch語句配套的case語句中所使用的表達式,說法正確的是______。A、可以是變量B、可以是常量或變量C、只能是常量或常量表達式D、無論是何種表達式,只要在執(zhí)行時有確定的值就行答案:C35.下列數(shù)組定義語句中,正確的是_______。A、inta[][]={1,2,3,4,5,6};B、chara[2][3]=‘a(chǎn)',‘b';C、inta[][3]={1,2,3,4,5,6};D、inta[][]={{1,2,3},{4,5,6;答案:C36.兩次運行下面的程序,從鍵盤上輸入的值分別6和4,則輸出結果分別是_______。Voidmain(){intx;Scanf("%d",&x);If(x++>5)printf("%d",x);Elseprintf("%d\n",x--);}A、7和5B、6和3C、7和4D、6和4答案:A解析:這道題考察的是對C語言中自增自減運算符的理解。首先,輸入6時,`x++`先判斷`x`是否大于5,此時`x`為6,條件成立,然后`x`自增變?yōu)?,輸出7。再輸入4時,`x++`先判斷`x`是否大于5,此時`x`為4,條件不成立,執(zhí)行`else`分支,`x--`使`x`變?yōu)?,但因為是`printf("%d\n",x--)`,所以輸出的是`x`自減前的值4,然后`x`變?yōu)?。因此,輸出結果為7和4,但考慮到`printf`在`else`分支中有換行符`\n`,實際上輸出會是7和換行后的4,不過這對選項判斷無影響,答案選A。37.以下選項中,能用作用戶標識符的是_______。A、voidB、8_8C、_0_D、int答案:C38.以下正確的C語言標識符是_______。A、%XB、a+bC、a123D、test!答案:C39.C語言允許函數(shù)類型缺省定義,此時該函數(shù)類型隱含的是_______。A、floatB、intC、longD、ouble答案:B解析:這道題考察的是C語言函數(shù)類型的默認定義。在C語言中,如果一個函數(shù)在聲明或定義時沒有明確指定返回類型,編譯器會默認該函數(shù)的返回類型為`int`。這是C語言標準中的規(guī)定,確保了代碼的兼容性和一致性。因此,當函數(shù)類型缺省定義時,其隱含的類型是`int`。40.關于主函數(shù),下列說法中不正確的是______。A、一個完整的C語言應用程序有唯一的主函數(shù)B、主函數(shù)的名稱只能是mainC、主函數(shù)可以被其他自定義函數(shù)調(diào)用D、C語言程序的運行從主函數(shù)開始,以主函數(shù)為核心展開答案:C解析:這道題考察的是C語言程序結構的基本知識。在C語言中,每個程序都必須有一個主函數(shù),它是程序的入口點。主函數(shù)的名稱固定為"main",且一個程序中只能有一個主函數(shù)。程序執(zhí)行時,從主函數(shù)開始,按照代碼邏輯順序執(zhí)行,直至主函數(shù)執(zhí)行完畢。重要的是,主函數(shù)是調(diào)用其他函數(shù)的,而不是被其他函數(shù)調(diào)用。因此,選項C的說法是不正確的。41.計算機能直接執(zhí)行的程序是________。A、源程序B、目標程序C、匯編程序D、可執(zhí)行程序答案:D42.以下描述中正確的是_______。A、由于do-while循環(huán)中循環(huán)體語句只能是一條可執(zhí)行語句,所以循環(huán)體內(nèi)不能使用復合語句。B、do-while循環(huán)由do開始,用while結束,在while(表達式)后面不能寫分號。C、在do-while循環(huán)體中,一定要有能使while后面表達式的值變?yōu)榱?"假")的操作。D、o-while循環(huán)中,根據(jù)情況可以省略while。答案:C43.判斷字符變量c的值是否既不是數(shù)字也不是字母時,下述表達式正確的是_______。A、c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122B、!(c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122)C、>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122D、!(c>='0'&&c<='9'||c>='A'&&c<='Z'||c>='a'&&c<='z')答案:D解析:首先,分析題目要求,需要判斷字符變量c的值是否既不是數(shù)字也不是字母。根據(jù)ASCII碼表,數(shù)字的ASCII碼值范圍是48到57,大寫字母的ASCII碼值范圍是65到90,小寫字母的ASCII碼值范圍是97到122。接下來,分析每個選項:-選項A:c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122表示c的值小于等于48或者大于等于57且小于等于65或者大于等于90且小于等于97或者大于等于122,即c的值是數(shù)字或者字母,不符合題目要求。-選項B:!(c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122)表示c的值不是數(shù)字或者字母,符合題目要求。-選項C:c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122表示c的值是數(shù)字或者字母,不符合題目要求。-選項D:!(c>='0'&&c<='9'||c>='A'&&c<='Z'||c>='a'&&c<='z')表示c的值不是數(shù)字或者字母,符合題目要求。綜上所述,正確答案是選項D。44.有如下定義:intx=1,y=2,a;,則下列語句執(zhí)行后變量的值分別為a________、x______、y______。A=--x&&y++;A、1,0,3B、0,0,3C、0,0,2D、1,0,2答案:C解析:在C語言中,`--x`表示先將`x`的值減1,再使用減1后的結果進行后續(xù)運算;`y++`表示先使用`y`的當前值進行后續(xù)運算,再將`y`的值加1。邏輯與運算符`&&`遵循短路求值原則,即如果第一個操作數(shù)為假,則不會計算第二個操作數(shù)。所以,執(zhí)行`a=--x&&y++;`時,先將`x`的值減1,得到`x=0`,然后判斷`x`是否為真(非零即為真),由于`x=0`,所以`--x`為假,根據(jù)短路求值原則,不會計算`y++`,因此`y`的值不變,仍為2。最后,將`--x`的結果(0)賦值給`a`,得到`a=0`。因此,答案是選項C。45.在C語言中,要求運算數(shù)必須是整型的運算符是_______。A、/B、++C、?=D、%答案:D46.下面程序段,當x=-3時,輸出y的值為_______。Intx,y;Y=0;Scanf("%d",&x);If(x>=0)If(x>0)Y=1;ElseY=-1;Printf("y=%d",y);A、1B、-1C、0D、不確定答案:C解析:這道題考察的是對C語言條件語句的理解。首先,程序定義了x和y兩個整型變量,并將y初始化為0。然后,通過scanf函數(shù)讀取x的值。接下來,程序通過嵌套的if-else語句判斷x的值,并據(jù)此給y賦值。當x=-3時,不滿足x>=0的條件,因此不會執(zhí)行內(nèi)部的if-else語句,y的值保持為初始化的0。所以,輸出y的值為0,選項C正確。47.putchar函數(shù)可以向終端輸出一個_______。A、整型值B、實型值C、字符串D、字符答案:D解析:答案解析:putchar函數(shù)是C語言標準庫中的一個函數(shù),用于向終端輸出一個字符。它的作用是將指定的字符輸出到標準輸出設備(通常是屏幕)上。在C語言中,字符是用單引號括起來的單個字符,例如'A'、'b'、'1'等。putchar函數(shù)接受一個字符作為參數(shù),并將其輸出到終端。因此,選項D是正確的答案。48.C語言的三種基本結構是______。A、順序結構、邏輯結構、選擇結構B、順序結構、選擇結構、循環(huán)結構C、邏輯結構、層次結構、網(wǎng)狀結構D、層次結構、順序結構、循環(huán)結構答案:B解析:答案解析:在C語言中,程序的基本結構決定了代碼的執(zhí)行流程。順序結構是按照語句的先后順序依次執(zhí)行;選擇結構通過條件判斷來決定執(zhí)行不同的分支;循環(huán)結構則是在滿足條件的情況下重復執(zhí)行一段代碼。這三種基本結構涵蓋了程序設計中的常見邏輯流程,能夠實現(xiàn)各種復雜的功能。因此,C語言的三種基本結構是順序結構、選擇結構、循環(huán)結構,答案為B選項。49.對于形式for(表達式1;;表達式3),可理解為______。A、for(表達式1;0;表達式3)B、for(表達式1;1;表達式3)C、語法錯誤D、僅執(zhí)行循環(huán)一次答案:B解析:在C語言中,for循環(huán)的一般形式為:`for(表達式1;表達式2;表達式3)`。其中,表達式1用于初始化循環(huán)變量,表達式2用于判斷循環(huán)是否繼續(xù),表達式3用于更新循環(huán)變量。在題目中,`for(表達式1;;表達式3)`中缺少了表達式2。根據(jù)C語言的語法規(guī)則,如果表達式2被省略,則默認其值為真,即循環(huán)會一直執(zhí)行,直到遇到break語句或其他終止循環(huán)的條件。因此,選項B是正確的答案。50.下面程序運行后的結果是______。Voidmain(){intnum=0;While(num<=2){num++;Printf(“%3d”,num);}}A、012B、123C、234D、0123答案:B解析:在這個程序中,我們首先定義了一個整型變量num并將其初始化為0。然后,我們進入一個while循環(huán),只要num的值小于或等于2,就會執(zhí)行循環(huán)體。在循環(huán)體中,我們首先將num的值加1,然后使用printf函數(shù)輸出num的值,輸出的格式為%3d,即輸出一個占3個字符寬度的整數(shù)。當num的值增加到3時,循環(huán)條件不再滿足,循環(huán)結束。因此,程序運行后的結果是123。所以,正確答案是B。51.判斷char型變量ch是否為大寫字母的正確表達式是_______。A、'A'<=ch<='Z'B、(ch>='A')&(ch<='Z')C、(ch>='A')&&(ch<='Z')D、('A'<=ch)AND('Z'>=ch)答案:C52.若有說明:inta[10];則對a數(shù)組元素的正確引用是_______。A、[10]B、a[3.5]C、a(5)D、a[10-10]答案:D53.有以下程序段,則while循環(huán)體執(zhí)行的次數(shù)是______。Intk=0;While(k=1)K++;A、無限次B、1次C、語法錯誤,不能執(zhí)行D、一次也不執(zhí)行答案:A解析:在這個程序段中,我們首先定義了一個整型變量`k`并將其初始化為0。然后,我們進入一個`while`循環(huán),只要`k`等于1,就會執(zhí)行循環(huán)體。然而,需要注意的是,在循環(huán)的條件判斷中,我們使用的是`k=1`而不是`k==1`。在C語言中,`k=1`是一個賦值表達式,它將1賦值給`k`,并返回賦值后的結果。由于1是非零值,所以條件判斷始終為真,導致循環(huán)會一直執(zhí)行下去,即無限次執(zhí)行。因此,正確答案是選項A。54.若a是數(shù)值類型,則邏輯表達式(a==1)||(a!=1)的值是_______。A、1B、0C、2D、不知道a的值,不能確定答案:A55.下面定義字符型變量ch的語句不正確的是______。A、charch=‘\X2A’;B、charch="c";C、harch=65;D、charch=NULL;答案:B56.以下對一維數(shù)組a的正確說明是_______。A、intn;Scanf("%d",&n);Inta[n];B、intn=10,a[n];C、inta(10);D、#defineSIZE10Inta[SIZE];答案:D解析:A選項中,使用變量n來定義數(shù)組長度是不合法的,因為數(shù)組長度必須是常量。B選項中,同樣使用變量n來定義數(shù)組長度也是不合法的。C選項中,數(shù)組的定義方式不正確,應該使用方括號[]來定義數(shù)組。D選項中,使用#define定義了一個常量SIZE,并將其作為數(shù)組的長度,這種方式是合法的。因此,正確答案是D。57.在嵌套使用if語句時,C語言規(guī)定else總是______。A、和之前與其具用相同縮進位置的if配對B、和之前與其最近的if配對C、和之前與其最近的且不帶else的if配對D、和之前的第一個if配對答案:C58.在C語言中,char型數(shù)據(jù)在內(nèi)存中的存儲形式是_______。A、補碼B、反碼C、原碼D、ASCII碼答案:D59.關于使用函數(shù)的目的,以下不正確的說法是_______。A、提高程序的執(zhí)行效率B、提高程序的開發(fā)效率C、減少程序文件所占內(nèi)存D、提高程序可讀性答案:A60.下列程序段的功能是給數(shù)組所有的元素輸入數(shù)據(jù),然后輸出,請選擇正確答案填空。#include“stdio.h”Voidmain(){inta[10],i=0;While(i<10)scanf("%d",_______);For(i=0;i<10;i++)Printf("%4d",a[i]);}A、+(i+1)B、&a[i++]C、a+iD、&a[++i]答案:B解析:答案解析:在C語言中,使用`scanf`函數(shù)輸入數(shù)據(jù)時,需要使用地址。選項B`&a[i++]`能正確地獲取到數(shù)組`a`中每個元素的地址,依次進行數(shù)據(jù)輸入。選項A`a+(i+1)`不是正確的地址表示方式。選項C`a+i`不能實現(xiàn)元素逐個輸入。選項D`&a[++i]`會先將`i`自增,導致數(shù)組元素輸入順序錯誤。所以,正確答案是B。61.執(zhí)行下面的程序段后,變量k中的值為_________。Intk=3,s[2];S[0]=k;K=s[1]?10;A、不定值B、33C、30D、10答案:A解析:這道題考察的是數(shù)組初始化和變量賦值的知識點。在C語言中,數(shù)組`s[2]`被聲明但未初始化,其元素`s[0]`和`s[1]`的值是不確定的。程序執(zhí)行`S[0]=k;`后,`s[0]`的值變?yōu)?,但`s[1]`的值仍然是不確定的。接著執(zhí)行`k=s[1]*10;`,因為`s[1]`的值是不確定的,所以變量`k`中的值也是不確定的。因此,答案是A,即變量`k`中的值為不定值。62.將空格符賦給字符變量C,正確的賦值語句是________。A、c='\0'B、c=NULLC、=0D、c=32答案:D解析:這道題考察的是C語言中字符變量的賦值。在C語言中,空格符的ASCII碼值是32。因此,要將空格符賦給字符變量c,應該使用c=32。選項A中的'\0'是字符串結束符,不是空格符;選項B中的NULL通常用于指針,不適用于字符變量;選項C中的0雖然可以隱式轉換為字符,但它代表的是ASCII碼值為0的字符,不是空格符。所以正確答案是D。63.已有如下定義和輸入語句,若要求a1,a2,c1,c2的值分別為10,20,A和B,當從第一列開始輸入數(shù)據(jù)時,正確的數(shù)據(jù)輸入方式是_______。(其中□代表一個空格)Inta1,a2;Charc1,c2;Scanf("%d%c%d%c",&a1,&c1,&a2,&c2);A、10A□20BB、10□A□20□BC、10□A20BD、10A20□B答案:A解析:在這個問題中,`scanf`函數(shù)用于從標準輸入讀取數(shù)據(jù)并將其存儲到變量中。`%d`表示讀取一個整數(shù),`%c`表示讀取一個字符。根據(jù)題目要求,我們需要輸入四個值:`a1`、`c1`、`a2`和`c2`。其中,`a1`和`a2`是整數(shù),`c1`和`c2`是字符。選項A中,輸入`10A□20B`,其中`10`被讀取為`a1`的值,`A`被讀取為`c1`的值,`20`被讀取為`a2`的值,`B`被讀取為`c2`的值,符合題目要求。選項B中,輸入`10□A□20□B`,其中`10`被讀取為`a1`的值,但是`A`后面的空格被視為無效字符,不會被讀取為`c1`的值,因此不符合題目要求。選項C中,輸入`10□A20B`,其中`10`被讀取為`a1`的值,`A`被讀取為`c1`的值,但是`20`后面的`B`被視為無效字符,不會被讀取為`c2`的值,因此不符合題目要求。選項D中,輸入`10A20□B`,其中`10`被讀取為`a1`的值,`A`被讀取為`c1`的值,`20`被讀取為`a2`的值,但是`B`后面的空格被視為無效字符,不會被讀取為`c2`的值,因此不符合題目要求。因此,正確答案是選項A。64.定義如下變量和數(shù)組:Intk;Inta[3][3]={1,2,3,4,5,6,7,8,9};則下面語句的輸出結果是_______。For(k=0;k<3;k++)Printf("%d",a[k][2-k]);A、357B、369C、159D、147答案:A65.一個C程序的執(zhí)行是從_______。A、本程序的main函數(shù)開始,到main函數(shù)結束B、本程序文件的第一個函數(shù)開始,到本程序文件的最后一個函數(shù)結束C、本程序的main函數(shù)開始,到本程序文件的最后一個函數(shù)結束D、本程序文件的第一個函數(shù)開始,到本程序main函數(shù)結束答案:A66.假設所有變量均為整型,則表達式(a=2,b=5,a+b++,a+b)的值是_______。A、7B、8C、5D、2答案:B67.在C語言中,if語句后的一對圓括號中有一個用以決定分支走向的表達式,該表達式______。A、只能是關系表達式B、只能是邏輯表達式C、只能是關系或邏輯表達式D、可以是任何合法表達式答案:D68.若二維數(shù)組a有m列,則計算任一元素a[i][j]在數(shù)組中位置的公式為_______。(假設a[0][0]在第一位置)A、i?m+jB、j?m+iC、i?m+j-1D、i?m+j+1答案:D解析:這道題考察的是二維數(shù)組元素位置的計算方法。在二維數(shù)組中,任一元素a[i][j]的位置可以通過其行號和列號來確定。具體地,元素a[i][j]之前會有i行元素,每行有m個元素,再加上當前行的j個元素,所以總位置是i*m+j。但題目中說明a[0][0]在第一位置,即位置計數(shù)從1開始,所以實際位置應為i*m+j+1。因此,正確答案是D。69.以下對二維數(shù)組a的正確說明是_______。A、inta[3][];B、floata(3,4);C、doublea[1][4];D、floata(3)(4);答案:C70.下列語句將小寫字母轉化為大寫字母,正確的語句為______。A、if(’z’>=ch>=’a’)ch=ch-32;B、if(ch>=’a’&&ch<=’z’)ch=ch-32;C、h=(’z’>=ch>=’a’)?ch-32:ch;D、ch=(ch>=’a’&&ch<=’z’)?ch:ch-32;答案:B71.有以下程序,程序運行后的輸出結果是_______。#include<stdio.h>Voidmain(){inta=1,b=0;Printf("%d,",b=a+b);Printf("%d",a=2?b);}A、0,0B、1,2C、3,2D、1,0答案:B解析:這道題考察的是C語言中的賦值和逗號表達式的運算順序。首先,`b=a+b`表達式中,`b`被賦值為`a+b`的結果,即`1+0=1`,然后輸出`b`的值,為`1`。接著,執(zhí)行第二個`Printf`,`a=2*b`表達式中,`a`被賦值為`2*b`的結果,即`2*1=2`,然后輸出`a`的值,為`2`。因此,輸出結果為`1,2`,選項B正確。72.有如下程序,#include"stdio.h"Intmain(){Intx,y;Charch;Scanf("%d,%c",&x,&ch);Y=x%3;Printf("x=%d,y=%d\nch+32=%c\n",x,y,ch+32);Return0;}若程序運行時,輸入數(shù)據(jù)如下,則輸出結果是_______。30,D(回車)A、30,0DB、x=30,y=1Ch+32=DC、x=30,y=0Ch+32=dD、x=30,y=0,ch+32=d答案:C解析:答案解析:首先,輸入30,D,x被賦值為30。然后計算y,x對3取余,30%3=0,所以y=0。ch被賦值為'D','D'+32對應的ASCII碼值是'd'。按照輸出格式,輸出結果為“x=30,y=0ch+32=d”,所以選項C正確。73.定義一個名為s的字符型數(shù)組,并且賦初值為字符串"123"的錯誤語句是_______。A、chars[]={‘1','2','3','\0'};B、chars[]={"123"};C、hars[]={"123\n"};D、chars[4]={'1','2','3'};答案:C74.設有程序段intk=10;while(k=0)k=k-1;,則下面描述中正確的是______。A、while循環(huán)執(zhí)行10次B、循環(huán)是無限循環(huán)C、循環(huán)體語句一次也不執(zhí)行D、循環(huán)體語句執(zhí)行一次答案:C解析:這道題考察的是對C語言中while循環(huán)的理解。在C語言中,while循環(huán)會一直執(zhí)行,直到其條件表達式的結果為假(0)。在這個程序段中,`while(k=0)`是一個賦值表達式,它將k的值設為0,并且表達式的值也是0,即假。因此,while循環(huán)的條件從一開始就不滿足,循環(huán)體內(nèi)的語句一次也不會執(zhí)行。所以,正確答案是C。75.假設下面程序運行時由鍵盤輸入:3,5(回車),則輸出結果是______。Voidmain(){intx,y,max;Scanf(“%d,%d”,&x,&y);If(x>y)Max=x;ElseMax=y;Printf(“max=%d\n”,max);}A、MAX=3B、max=5C、max=3D、MAX=5答案:B解析:本題目分析:該程序主要實現(xiàn)了從鍵盤輸入兩個整數(shù),然后比較它們的大小,并輸出較大的值。主要思路:首先,通過`scanf`函數(shù)獲取用戶輸入的兩個整數(shù)`x`和`y`。然后,使用`if-else`語句比較`x`和`y`的大小,將較大的值賦給變量`max`。最后,使用`printf`函數(shù)輸出`max`的值。選項分析:-A選項:如果`x`大于`y`,則`max`應該等于`x`,而不是`3`,所以A選項錯誤。-B選項:如果`x`小于`y`,則`max`應該等于`y`,即`5`,所以B選項正確。-C選項:如果`x`等于`y`,則`max`也應該等于`x`或`y`,即`3`或`5`,所以C選項錯誤。-D選項:`MAX`是一個未定義的變量,程序中沒有使用,所以D選項錯誤。綜上所述,正確答案是B。76.關于函數(shù)的實參和形參,以下正確的說法是_______。A、實參和對應的形參各占用獨立的存儲區(qū)域B、實參和對應的形參共同占用同一存儲區(qū)域C、只有當實參與形參重名時才共同占用存儲區(qū)域D、形參是虛擬的,不占用存儲區(qū)域答案:A解析:在函數(shù)調(diào)用過程中,實參是在調(diào)用時傳遞給函數(shù)的值,形參是函數(shù)定義中接收實參的變量。實參和形參是不同的變量,它們在內(nèi)存中各自占用獨立的存儲區(qū)域。實參的值被傳遞給形參,形參在函數(shù)內(nèi)部進行運算和處理。B選項共同占用同一存儲區(qū)域錯誤;C選項說法錯誤;D選項形參也占用存儲區(qū)域。所以正確答案是A。77.設charch;,其值為'A',則如下表達式的值為________。Ch=(ch>='A'&&CH<='Z')?(ch+32):chA、‘A’B、‘a(chǎn)’C、‘Z’D、‘z’答案:B解析:在這個表達式中,首先判斷`ch`的值是否在`'A'`到`'Z'`的范圍內(nèi)。如果是,那么將`ch`的值加上32,得到對應的小寫字母;否則,`ch`的值不變。因為`ch`的值為`'A'`,在`'A'`到`'Z'`的范圍內(nèi),所以將`'A'`加上32,得到`'a'`。因此,選項B是正確的答案。78.下面說法正確的是_______。A、while語句不管條件表達式是否為真,都將執(zhí)行一次循環(huán)體。B、do-while語句構成的循環(huán),一定要有能使while后面表達式的值為0的操作,或在循環(huán)體中使用Break語句。C、for循環(huán)只能用于循環(huán)次數(shù)確定的情況,且先執(zhí)行循環(huán)體語句,后判斷條件表達式。D、break語句的作用是從最近的循環(huán)體內(nèi)跳出來,而continue語句的作用是繼續(xù)執(zhí)行循環(huán)體中尚未執(zhí)行的語句。答案:B79.下面程序段運行時的輸出結果是______。Intn=0;While(n++<=2);Printf("%d",n);A、2B、3C、4D、語法錯誤答案:C解析:答案解析:在這個程序段中,`while`循環(huán)的條件是`n++<=2`。`n++`先使用`n`的值進行比較,然后再將`n`的值加1。當`n`的值為2時,滿足條件進入循環(huán),然后`n`自增為3,此時不滿足條件退出循環(huán)。但由于`n`在最后一次判斷后又自增了一次,所以最終`n`的值為4。因此,選項C是正確答案。80.已知字母A的ASCII碼值為十進制數(shù)65,ch為字符型變量,則執(zhí)行語句ch='A'+'6'-'3'后,ch中的值為_______。A、66B、67C、68D、不確定的值答案:C解析:答案解析:在ASCII碼中,字符'A'的十進制值為65,'6'的十進制值為54,'3'的十進制值為51。進行計算:'A'+'6'-'3'=65+54-51=68。所以,變量ch的值為68,選項C正確。81.將abc定義為int類型變量,若從鍵盤給abc輸入數(shù)據(jù),正確的輸入語句為__________。A、scanf("%d%d%d",&a,&b,&c);B、read("%d%d%d",&a,&b,&c);C、scanf("%d%d%d",a,b,c);D、write("%d%d%d",&a,&b,&c);答案:A解析:這道題考察的是C語言中輸入語句的正確使用。在C語言中,使用`scanf`函數(shù)可以從鍵盤輸入數(shù)據(jù),并且需要變量的地址作為參數(shù)。選項A中的`scanf("%d%d%d",&a,&b,&c);`是正確的輸入語句,`%d`表示輸入的數(shù)據(jù)類型為整數(shù),`&a,&b,&c`表示變量`a`、`b`、`c`的地址。其他選項中的`read`、`write`函數(shù)不是C語言標準輸入輸出的函數(shù),選項C中缺少了變量地址的符號`&`,因此都是錯誤的。82.下列語句或命令中,不符合C語言規(guī)則的是_______。A、intm;B、intm、n;C、m=10;D、#include"stdio.h"答案:B解析:答案解析:在C語言中,聲明多個變量時,每個變量之間應該使用逗號分隔,而不是頓號。選項B中“intm、n;”使用了頓號,不符合C語言的變量聲明規(guī)則。選項A是正常的變量聲明,選項C是正常的賦值操作,選項D是常見的包含頭文件的預處理指令。所以,不符合C語言規(guī)則的是選項B。83.C語言中的標識符只能由字母、數(shù)字和下劃線三種字符組成,且第一個字符_______。A、必須為字母B、必須為下劃線C、必須為字母或下劃線D、可以是字母、數(shù)字和下劃線中的任一種字符答案:C84.以下程序段中的變量已正確定義,則該程序段的輸出結果是_______。For(i=0;i<4;i++)For(k=1;k<3;k++)Printf("?");A、????????B、????C、??D、?答案:A解析:這道題考察的是對嵌套循環(huán)的理解。外層循環(huán)變量i從0開始,小于4,因此會循環(huán)4次。內(nèi)層循環(huán)變量k從1開始,小于3,因此每次外層循環(huán)時,內(nèi)層循環(huán)都會執(zhí)行2次,打印兩個"?"。所以總共會打印8個"?",對應選項A。85.以下幾組選項中為合法的標識符是______。A、intB、floatC、b-aD、_123答案:D解析:答案解析:在編程語言中,標識符的命名有一定規(guī)則。A選項“int”和B選項“float”是編程語言中的保留關鍵字,不能作為標識符。C選項“b-a”,標識符中不能包含“-”符號。D選項“_123”,以“_”開頭,由字母、數(shù)字和“_”組成,符合標識符的命名規(guī)則。所以,正確答案是D選項。86.若有說明:inta[][3]={1,2,3,4,5,6,7};則a數(shù)組第一維的大小是_______。A、2B、3C、4D、無法確定答案:B87.設函數(shù)fun的定義形式為:voidfun(charch,floatx){...},則以下對函數(shù)fun的調(diào)用形式中正確的是_______。A、fun("abc",3.0);B、t=fun('D',12.3);C、fun('65',3.7);D、fun(‘A’,6.5);答案:D解析:在函數(shù)調(diào)用時,實參要與形參的類型一一對應。函數(shù)fun的形參一個是字符型,一個是浮點型。A選項中“abc”是字符串,不是單個字符,錯誤;B選項中函數(shù)void類型不能賦值給t,錯誤;C選項中“65”是字符串,錯誤;D選項中‘A’是字符,6.5是浮點數(shù),類型匹配正確。所以答案選D。88.在C語言中,以______作為存儲字符串的結束標志。A、’\n’B、’’C、’0’D、’\0’答案:D89.若有一個3位整數(shù)x,則能得到其百位、十位、個位上數(shù)字的表達式組是_______。A、x/100,x/10,x%10B、x/100,x/10%10,x%10C、x,x/10%10,x%100D、x/100,x%100/10,x%100答案:B解析:對于一個3位整數(shù)x,要得到百位數(shù)字,用x除以100取整即x/100;要得到十位數(shù)字,先將x除以10取整得到十位和百位組成的數(shù),再對其取模10即(x/10%10);要得到個位數(shù)字,直接對x取模10即x%10。所以正確答案是B選項。90.以下定義符號常量PI的形式,正確的為______。A、definePI3.14B、#definePI3.14C、#definePI=3.14D、#definePI3.14;答案:B解析:在C語言中,使用#define來定義符號常量,形式為#define常量名常量值,不需要加分號,也不能用等號賦值。A選項缺少#號;C選項用了等號錯誤;D選項多了分號錯誤。所以正確答案是B。91.有如下程序段,當x的值為-3時,輸出y的值為______。Intx,y;y=0;Scanf(“%d”,&x);If(x>=0)If(x>0)y=1;Elsey=-1;Printf(“y=%d”,y);A、1B、-1C、0D、不確定答案:C解析:根據(jù)程序,首先定義了兩個整型變量x和y,并將y初始化為0。然后,使用scanf函數(shù)從用戶獲取一個整數(shù)賦值給x。接下來,使用if-else語句根據(jù)x的值進行判斷。由于x的值為-3,小于0,所以執(zhí)行else分支,將y的值賦值為-1。最后,使用printf函數(shù)輸出y的值。因此,輸出y的值為-1,正確答案是B。92.以下程序運行后的輸出結果是_______。#include<stdio.h>Voidmain(){inta=2,b=-1,c=2;If(a<b)If(b<0)C=0;ElseC++;Printf("%d\n",c);}A、0B、1C、2D、3答案:C解析:答案解析:在程序中,首先判斷`a<b`,由于`2>-1`,條件不成立,所以后面的嵌套判斷語句`if(b<0)`等都不會執(zhí)行,`c`的值沒有改變,仍為初始值2。因此,輸出結果為2,選項C正確。93.有以下程序,則運行時的輸出結果是_______。#include<stdio.h>Voidmain(){inta=3,b=4,s;S=a;If(a<b)S=b;S=s?s;Printf("%d\n",s);}A、4B、3C、16D、9答案:C解析:程序首先定義并初始化整型變量a和b,分別為3和4。接著,通過if語句判斷a是否小于b,由于3小于4,條件為真,因此將b的值4賦給變量s。之后,程序執(zhí)行s=s*s,即s的平方,所以s的值變?yōu)?6。最后,通過printf函數(shù)輸出s的值,即16。94.以下程序的運行結果是_______。#include"stdio.h"Intmain(){intA,d=2020;A=d/100%9;Printf("%d\n",a);Return0;}A、2.2B、6C、2D、0.4答案:C解析:在C語言中,整數(shù)除法的結果會向下取整。在這個程序中,首先計算`d/100`,即`2020/100=20`,然后計算`20%9`,即`20`除以`9`的余數(shù),結果為`2`。因此,變量`a`的值為`2`,最后程序輸出`2`。所以,正確答案是選項C。95.以下敘述不正確的是_______。A、一個C源程序可由一個或多個函數(shù)組成B、一個源程序必須包含一個main函數(shù)C、程序的基本組成單位是函數(shù)D、在C程序中,注釋說明只能位于一條語句的后面答案:D96.構成C語言程序的基本單位是_______。A、框架B、預處理C、函數(shù)D、語句答案:C解析:在C語言中,函數(shù)是程序的基本組成部分。一個C語言程序可以由多個函數(shù)組成,通過函數(shù)的相互調(diào)用和協(xié)作來完成各種任務。整個程序從主函數(shù)開始執(zhí)行,其他函數(shù)根據(jù)需要被調(diào)用和執(zhí)行??蚣芎皖A處理是程序構建和準備的部分,語句是函數(shù)中的具體執(zhí)行內(nèi)容,但它們都不是程序的基本單位,所以答案是C。97.以下敘述中正確的是_______。A、在C程序中,main函數(shù)必須位于程序的最前面B、C程序的每行只能寫一條語句C、主函數(shù)可以被其他自定義函數(shù)調(diào)用D、主函數(shù)的名稱只能是main答案:D解析:這道題考察的是對C語言程序結構的理解。在C語言中,main函數(shù)是程序的入口點,其位置在程序中并不固定,因此A選項錯誤。C語言允許在一行中編寫多條語句,只要它們之間用分號分隔,所以B選項錯誤。main函數(shù)是程序開始執(zhí)行的地方,它不能被其他函數(shù)調(diào)用,故C選項錯誤。而D選項正確,因為C語言標準規(guī)定,程序的入口點函數(shù)必須命名為main。98.在C語言中,下列各項中屬于正確的實型常量是_________。A、-0x23.98B、3.12e3C、e-2D、1.2e答案:B解析:答案解析:在C語言中,實型常量用小數(shù)形式或指數(shù)形式表示。A選項“-0x23.98”不是合法的實型常量,因為以“0x”開頭表示十六進制數(shù)。C選項“e-2”格式不正確,指數(shù)形式應寫成“e2”的形式。D選項“1.2e”缺少指數(shù)部分。B選項“3.12e3”是合法的指數(shù)形式的實型常量。因此,正確答案是B。99.若有定義語句:intm[]={5,4,3,2,1},i=4;,則下面對m數(shù)組元素的引用中錯誤的是_______。A、m[--i]B、m[2?2]C、m[m[0]]D、m[m[i]]答案:C解析:首先分析選項A,--i后i=3,m[3]=2,引用正確;選項B,2*2=4,m[4]=1,引用正確;選項C,m[0]=5,m[5]超出數(shù)組范圍,引用錯誤;選項D,m[i]=m[4]=1,m[1]=4,引用正確。所以錯誤的是選項C。100.以下程序執(zhí)行后的輸出結果是_____。Voidfun(intA,intB,intc){a=456;B=567;C=678;}Intmain(){intx=10,y=20,z=30;Fun(x,y,z);Printf("%d;%d;%d\n",z,y,x);Return0;}A、30;20;10B、10;20;30C、456;567;678D、678;567;456答案:A解析:在`C`語言中,函數(shù)的參數(shù)傳遞有兩種方式:值傳遞和地址傳遞。在本題中,`fun`函數(shù)的參數(shù)是值傳遞,即函數(shù)內(nèi)部對參數(shù)的修改不會影響到函數(shù)外部的變量。在`main`函數(shù)中,調(diào)用`fun`函數(shù)時,將變量`x`、`y`、`z`的值分別傳遞給`fun`函數(shù)的參數(shù)`a`、`b`、`c`。在`fun`函數(shù)內(nèi)部,對參數(shù)`a`、`b`、`c`進行了修改,但這些修改不會影響到`main`函數(shù)中的變量`x`、`y`、`z`。因此,在`main`函數(shù)中,輸出變量`z`、`y`、`x`的值仍然是它們在調(diào)用`fun`函數(shù)之前的值,即`30`、`20`、`10`。所以,正確答案是A。101.下面程序運行后的結果是:_______#include“stdio.h”Voidswap(intx,inty){inttemp;Temp=x;x=y;y=temp;Printf(“x=%d,y=%d”,x,y);}Voidmain(){inta=10,b=20;Swap(a,b);Printf(“a=%d,b=%d\n”,a,b);}A、=10,b=20x=20,y=10B、x=10,y=20a=20,b=10C、x=20,y=10a=10,b=20D、a=20,b=10x=20,y=10答案:C解析:在C語言中,函數(shù)參數(shù)的傳遞方式是值傳遞,即函數(shù)內(nèi)部對參數(shù)的修改不會影響到函數(shù)外部的變量。在這個程序中,swap函數(shù)接受兩個整型參數(shù)x和y,并通過臨時變量temp交換它們的值。但是,由于參數(shù)是值傳遞,所以在函數(shù)內(nèi)部對x和y的修改并不會影響到main函數(shù)中的a和b。因此,程序運行后的結果是x=20,y=10a=10,b=20,選項C是正確的答案。102.設有:inta=1,b=2,c=3,d=4,m=2,n=2;,則執(zhí)行(m=a>b)&&(n=c>d)后n的值為_______。A、1B、2C、3D、4答案:B解析:在邏輯表達式(m=a>b)&&(n=c>d)中,首先計算m=a>b。由于a的值為1,b的值為2,所以a>b的結果為假(0)。在邏輯與運算中,如果第一個操作數(shù)為假,則整個表達式的結果必然為假,計算機將不會計算第二個操作數(shù)n=c>d。因此,n的值不會改變,保持其初始值2。103.有以下程序,程序運行后的輸出結果是_______。#include<stdio.h>Voidmain(){inta=1,b=2;For(;a<8;a++){b+=a;A+=2;}Printf("%d,%d\n",a,b);}A、9,18B、8,11C、7,11D、10,14答案:D解析:這道題考察的是對C語言程序的理解和執(zhí)行結果的預測。程序定義了兩個變量a和b,并初始化為1和2。接著是一個for循環(huán),循環(huán)條件是a小于8,每次循環(huán)a增加2,b增加a的值。循環(huán)結束后,打印a和b的值。根據(jù)循環(huán)邏輯,a最終會是8(因為8不滿足a<8的條件,所以循環(huán)結束時的a值是8,但循環(huán)結束后a還會自增2,變成10),b的值則是初始值2加上每次循環(huán)a的值(即2+1+3+5+7=18),但循環(huán)結束后b的值并未改變,所以最終b的值是18的前一個值,即14(因為最后一次循環(huán)中a=7,b+=7后b=14,之后沒有改變b的操作)。所以答案是D。104.下面輸入語句中,正確的是______。A、scanf("a=b=%d",&a,&b);B、scanf("%d,%d",&a,&b);C、scanf("%c",c);D、scanf("%d%d\n",&f1,f2);答案:B105.以下敘述中正確的是______。A、在C程序中,main函數(shù)必須位于程序的最前面B、C程序的每行中只能寫一條語句C、語言本身沒有輸入輸出語句D、在對一個C程序進行編譯的過程中,可發(fā)現(xiàn)注釋中的拼寫錯誤答案:C解析:這道題考察的是對C語言基本特性的理解。A選項,C語言中main函數(shù)的位置并不固定,它可以在程序的任何位置,只要保證在調(diào)用時是可訪問的。因此,A選項錯誤。B選項,C語言并沒有規(guī)定每行只能寫一條語句,可以在一行中寫多條語句,只要用分號分隔即可。所以,B選項錯誤。C選項,C語言本身確實不包含輸入輸出語句,輸入輸出操作是通過調(diào)用標準庫函數(shù)來實現(xiàn)的,如printf和scanf等。因此,C選項正確。D選項,編譯過程主要關注的是代碼的語法和語義,注釋部分的內(nèi)容在編譯時是被忽略的,所以編譯過程中不會檢查注釋中的拼寫錯誤。因此,D選項錯誤。綜上所述,正確答案是C。106.假定a和b為int型變量,則執(zhí)行以下語句后b的值為_______。A=1;b=10;Do{b-=a;A++;}while(b--<0);A、9B、-2C、-1D、8答案:D解析:分析程序代碼,循環(huán)開始前,a賦值為1,b賦值為10。進入do-while循環(huán)后,首先執(zhí)行b-=a,即b減去a的值,此時b變?yōu)?,a隨后自增變?yōu)?。接著進行while循環(huán)的條件判斷b--<0,即先判斷b是否小于0(此時b為9,不小于0),然后b自減1變?yōu)?。因為條件b<0不成立,循環(huán)結束。所以循環(huán)結束后b的值為8。107.以下程序的功能是:按順序讀入10名學生4門課程的成績,計算出每位學生的平均分并輸出,程序如下:Voidmain(){intn,k;Floatscore,sum,ave;Sum=0.0;For(n=1;n<=10;n++){for(k=1;k<=4;k++){scanf(“%f”,&score);Sum+=score;}Ave=sum/4.0;Printf(“NO%d:%f\n”,n,ave);}}上述程序運行后結果不正確,調(diào)試中發(fā)現(xiàn)有一條語句出現(xiàn)在程序中的位置不正確。這條語句是______。A、sum=0.0;B、sum+=score;C、ave=sum/4.0;D、printf(“NO%d:%f\n”,n,ave);答案:A解析:這道題考察的是對程序邏輯的理解。程序目的是計算每位學生的平均分。變量`sum`用于累加每位學生的成績,應在每位學生成績累加前初始化為0。當前`sum=0.0;`放在了所有循環(huán)之前,導致它只在程序開始時執(zhí)行一次,而不是每位學生成績計算前都執(zhí)行。因此,`sum=0.0;`應放在外層循環(huán)的開始處,以確保每位學生成績計算前`sum`都被正確重置為0。所以,選項A的語句位置不正確。108.下列運算符中,優(yōu)先級最高的是__________。A、?:B、!C、%D、+答案:B109.在C程序中,main函數(shù)的位置______。A、必須放在所有函數(shù)定義之前B、必須放在所有函數(shù)定義之后C、必須放在它所調(diào)用的函數(shù)之前D、可以任意答案:D110.下面程序運行后的結果是______。#include“stdio.h”Voidmain(){intu=010,v=0x10,w=10;Printf(“u=%d,v=%d,w=%d\n”,u,v,w);}A、u=10,v=10,w=10B、u=8,v=16,w=10C、u=16,v=8,w=10D、u=010,v=0x10,w=10答案:B解析:這道題考察的是C語言中變量的聲明和初始化,以及不同進制數(shù)的表示。在C語言中,以0開頭的整數(shù)表示八進制數(shù),以0x或0X開頭的整數(shù)表示十六進制數(shù)。因此,變量u被初始化為八進制數(shù)010,轉換為十進制是8;變量v被初始化為十六進制數(shù)0x10,轉換為十進制是16;變量w被直接初始化為十進制數(shù)10。所以,程序運行后的結果是u=8,v=16,w=10,對應選項B。111.閱讀以下程序,該程序在編譯時產(chǎn)生錯誤,其出錯原因是_______。#include<stdio.h>Voidmain(){intcase;FloatprintF;Printf("請輸入2個數(shù):");Scanf("%d%f",&case,&printF);Printf("%d%f\n",case,printf);}A、定義語句出錯,case是關鍵字,不能用作用戶自定義標識符B、定義語句出錯,printF不能用作用戶自定義標識符C、定義語句無錯,scanf不能作為輸入函數(shù)使用D、定義語句無錯,printf不能輸出case的值答案:A解析:這道題考察的是C語言的基礎知識,特別是關于關鍵字和用戶自定義標識符的規(guī)則。在C語言中,`case`是一個關鍵字,用于`switch`語句中,因此不能用作變量名。選項A正確指出了這一點。而`printF`雖然命名不規(guī)范,但并非關鍵字,可以用作變量名,所以B選項錯誤。C選項中提到的`scanf`函數(shù)是C語言標準輸入函數(shù),使用無誤,因此C選項錯誤。D選項中提到的`printf`函數(shù)同樣可以輸出`case`的值(如果`case`不是關鍵字且被正確定義為變量),問題在于`case`作為關鍵字不能被用作變量名,所以D選項錯誤。綜上所述,正確答案是A。112.以下程序的輸出結果是_______。#include<stdio.h>Voidmain(){Intx=3,y=0,z=0;If(x=y+z)Printf("????");ElsePrintf("");}A、有語法錯誤,不能通過編譯B、????C、給通過編譯,但不能通過連接D、答案:D解析:這道題考察的是C語言的基礎知識,包括語法規(guī)則、條件判斷以及程序執(zhí)行流程。首先,程序中的`Voidmain()`應該是`voidmain()`,這是一個語法錯誤,但題目關注的是程序的邏輯輸出,所以我們先忽略這個。關鍵在于`if`語句中的條件判斷`x=y+z`,這里使用的是賦值操作符`=`,而不是比較操作符`==`。因此,`x`被賦值為`0`(`y+z`的結果),且表達式的結果為`0`,表示假。所以程序會執(zhí)行`else`分支,輸出``。因此,正確答案是D。113.有以下程序:#include<stdio.h>Voidmain(){intx;Scanf("%d",&x);If(x<=3)return;If(x!=10)Printf("%d\n",x);}程序運行時,輸入的值在哪個范圍內(nèi)才會有輸出結果_______。A、不等于10的整數(shù)B、大于3且不等于10的整數(shù)C、大于3或等于10的整數(shù)D、小于3的整數(shù)答案:B解析:這道題考察的是對C語言程序邏輯的理解。首先,程序通過`scanf`函數(shù)接收一個整數(shù)輸入`x`。接著,如果`x`小于等于3,程序會直接通過`return`語句結束,不會輸出任何內(nèi)容。只有當`x`大于3時,程序才會繼續(xù)執(zhí)行。然后,程序檢查`x`是否不等于10,如果不等于10,才會通過`printf`函數(shù)輸出`x`的值。因此,只有輸入的值大于3且不等于10時,程序才會有輸出結果。114.若有說明:inta[3][4];則對a數(shù)組元素的非法引用是_______。A、[0][2?1]B、a[1][3]C、a[4-2][0]D、a[0][4]答案:D解析:這道題考察的是對二維數(shù)組索引的理解。在C語言中,二維數(shù)組`inta[3][4]`表示有3行4列的數(shù)組。數(shù)組的索引是從0開始的,所以合法的行索引是0、1、2,合法的列索引是0、1、2、3。-A選項`a[0][2*1]`,行索引0是合法的,列索引2*1=2也是合法的,所以A選項是合法的引用。-B選項`a[1][3]`,行索引1是合法的,列索引3也是合法的,所以B選項是合法的引用。-C選項`a[4-2][0]`,行索引4-2=2是合法的,列索引0也是合法的,所以C選項是合法的引用。-D選項`a[0][4]`,行索引0是合法的,但列索引4超出了數(shù)組的列范圍(0-3),所以D選項是非法的引用。因此,答案是D。115.在C語言,簡單變量做實參時,它和對應形參之間的數(shù)據(jù)傳遞方式是___________。A、地址傳遞B、單向值傳遞C、由實參傳給形參,再由形參傳回實參D、由用戶指定傳遞方式答案:B解析:答案解析:在C語言中,當簡單變量作為實參時,實參將其值傳遞給形參。這種傳遞是單向的,形參值的改變不會影響實參的值。這是C語言函數(shù)參數(shù)傳遞的基本規(guī)則。因此,答案是B選項,即單向值傳遞。116.以下程序段_______。X=-1;Do{X=x?x;}while(x==0);A、是死循環(huán)B、循環(huán)執(zhí)行兩次C、循環(huán)執(zhí)行一次D、有語法錯誤答案:C解析:首先,我們分析程序段。程序初始化X為-1,然后進入do-while循環(huán)。在循環(huán)體內(nèi),X被更新為其自身的平方,即X=X*X。對于初始值X=-1,第一次循環(huán)后X的值變?yōu)?。接著,循環(huán)條件判斷X是否等于0,由于此時X=1,循環(huán)條件不滿足,因此循環(huán)結束?,F(xiàn)在,我們根據(jù)這個邏輯來分析選項:A.是死循環(huán)-不正確,因為循環(huán)在X變?yōu)?后結束。B.循環(huán)執(zhí)行兩次-不正確,循環(huán)只執(zhí)行了一次。C.循環(huán)執(zhí)行一次-正確,與我們的分析相符。D.有語法錯誤-不正確,程序語法是正確的。因此,正確答案是C,循環(huán)執(zhí)行一次。117.有以下程序,程序運行時輸入:1,2,3<回車>,則輸出的結果為______。#include“stdio.h”Voidmain(){intA,b,c;Scanf("%d%d%d",&a,&b,&c);Printf("a+b+c=%d\n",a+b+c);}A、6B、a+b+c=6C、123D、不確定的值答案:D解析:這道題考察的是對C語言程序的理解。程序首先通過`scanf`函數(shù)讀取用戶輸入的三個整數(shù),并存儲在變量`a`、`b`、`c`中。然后,通過`printf`函數(shù)輸出這三個數(shù)的和。但是,程序中的`main`函數(shù)聲明為`voidmain()`,這是不標準的,標準C語言中的`main`函數(shù)應該返回一個`int`類型的值。此外,`#include`指令中的文件名應該用尖括號`<>`包圍,而不是雙引號`""`。由于這些錯誤,程序的行為是未定義的,因此輸出的結果是不確定的值。所以正確答案是D。118.以下選項中,與k=n++;完全等價的語句是______。A、k=n;n=n+1;B、n=n+1;k=n;C、k=++n;D、k+=n+1;答案:A119.若有如下列程序,則運行后的輸出結果是______。Voidmain(){intx=8;For(;x>0;x--){if(x%3!=0)Printf("%d,",x--);}Printf("%d,",--x);}A、7,4,2,B、8,7,5,2,C、9,7,6,4,D、8,5,2,-1,答案:D解析:在這個程序中,我們首先定義了一個整型變量`x`并將其初始化為8。然后,我們進入一個`for`循環(huán),只要`x`大于0,就會執(zhí)行循環(huán)體。在循環(huán)體中,我們首先檢查`x`除以3的余數(shù)是否不為0。如果是,我們使用`printf`函數(shù)輸出`x`的值,并將`x`減1。然后,我們再次使用`printf`函數(shù)輸出`x`的值,并將`x`減1。當`x`等于0時,循環(huán)結束。因此,運行后的輸出結果是8,5,2,-1,正確答案是D。120.以下可用作用戶自定義標識符的一組是______。A、void、return、ifB、printf、include、fabsC、Max、_abc、MainD、2abc、pay$、sum-10答案:C121.C語言中,能表示整型變量x的值介于100和200之間這一條件的表達式是________。A、200>x>100B、200>=x>=100C、x>=100&&x<=200D、x>=100||x<=200答案:C解析:在C語言中,要表示整型變量x的值介于100和200之間,可以使用邏輯與運算符(&&)來連接兩個條件表達式,即x>=100和x<=200。因此,正確的表達式應該是x>=100&&x<=200,選項C正確。122.若x和y都是int型變量,x=100,y=200,則運行如下語句后的輸出結果是_______。Printf("%d",(x,y));A、100B、200C、100200D、輸出格

溫馨提示

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

評論

0/150

提交評論