大學c語言考試題庫(典優(yōu))_第1頁
大學c語言考試題庫(典優(yōu))_第2頁
大學c語言考試題庫(典優(yōu))_第3頁
大學c語言考試題庫(典優(yōu))_第4頁
大學c語言考試題庫(典優(yōu))_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

大學c語言考試題庫第一部分單選題(50題)1、若intx=6;執(zhí)行以下代碼后輸出結果是?()if(x<5){printf("A");}elseif(x<8){printf("B");}else{printf("C");}

A.A

B.B

C.C

D.無輸出

【答案】:答案解析:x=6<8,執(zhí)行第二個分支,輸出B,故選B。2、若inta[3][4]={{1,2},{3,4,5},{6}};則a[0][1]的值是?()

A.1

B.2

C.3

D.4

【答案】:答案解析:a[0][1]是第一行第二列,值為2,故選B。3、若inti=0;執(zhí)行while(i<5){printf("%d",i);i++;if(i==3)break;}輸出結果是?()

A.012

B.0123

C.01

D.無輸出

【答案】:答案解析:i=3時break,輸出012,故選A。4、以下switch語句語法錯誤的是?()

A.switch(x){case1:printf("1");break;case2:printf("2");break;}

B.switch(x){case1:printf("1");case2:printf("2");}

C.switch(x){case1:;break;case2:printf("2");}

D.switch(x){case1:printf("1");break;case1:printf("2");break;}

【答案】:答案解析:case后常量不能重復,D中case1重復,編譯報錯,故選D。5、若inta=1,b=2;則表達式(a==b)的結果是?()

A.1

B.0

C.2

D.真

【答案】:答案解析:==是等于判斷,a==b為假,C語言中假用0表示,故選B。6、若inta[3][3]={{1,2},{3,4},{5,6}};則a[1][1]的值是?()

A.2

B.4

C.5

D.6

【答案】:答案解析:a[1][1]是第二行第二列,值為4,故選B。7、函數指針的作用是?()

A.存儲函數的地址

B.調用函數

C.實現回調函數

D.以上都正確

【答案】:答案解析:函數指針存儲函數地址,可通過指針調用函數,常用于回調函數,故選D。8、以下指針定義正確的是?()

A.int*p;

B.char*q;

C.float*r;

D.以上都正確

【答案】:答案解析:A指向int,B指向char,C指向float,均符合指針定義語法,故選D。9、以下關于二維數組的說法正確的是?()

A.二維數組是數組的數組

B.二維數組元素在內存中按列存儲

C.二維數組長度必須是常量

D.二維數組不能作為函數參數

【答案】:答案解析:二維數組本質是數組的數組,內存按行存儲,可作為函數參數,長度需常量,故選A。10、若inta[5]={10,20,30,40,50};則a[4]的值是?()

A.40

B.50

C.60

D.無定義

【答案】:答案解析:a[4]是第五個元素,值為50,故選B。11、以下關于main函數的說法錯誤的是?()

A.程序從main開始執(zhí)行

B.main函數可帶參數

C.main函數必須有返回值

D.main函數可調用其他函數

【答案】:答案解析:main函數可聲明為void(無返回值),C說法錯誤,A、B、D正確,故選C。12、C語言中,宏定義的預處理命令關鍵字是?()

A.include

B.define

C.ifdef

D.endif

【答案】:答案解析:#define用于宏定義,#include用于包含頭文件,#ifdef/endif是條件編譯,故選B。13、指針與數組的關系,以下說法正確的是?()

A.數組名是常量指針,不能自增

B.指針可指向數組元素,通過指針遍歷數組

C.p[i]等價于*(p+i)

D.以上都正確

【答案】:答案解析:數組名是首元素地址(常量,不可自增),指針可遍歷數組,p[i]與*(p+i)等價,故選D。14、若inti=0;執(zhí)行for(i=0;i<5;i++){if(i%2==0)continue;printf("%d",i);}輸出結果是?()

A.13

B.024

C.01234

D.無輸出

【答案】:答案解析:i為偶數(0、2、4)時continue,輸出奇數1、3,故選A。15、以下for循環(huán)中,用于計算1到5的平方和的是?()

A.s=0;for(i=1;i<=5;i++)s+=ii;

B.s=0;for(i=1;i<=5;i++)s+=i2;

C.s=1;for(i=1;i<=5;i++)s*=i;

D.s=0;for(i=1;i<=5;i++)s+=i+i;

【答案】:答案解析:平方和是12+22+32+42+52=1+4+9+16+25=55,A的邏輯正確,故選A。16、以下switch語句中,default的執(zhí)行時機是?()

A.所有case都不匹配時

B.第一個case不匹配時

C.最后一個case不匹配時

D.任何時候

【答案】:答案解析:default僅在所有case都不匹配時執(zhí)行,故選A。17、以下if語句中,條件表達式正確的是?()

A.if(x=5)printf("yes");

B.if(x==5)printf("yes");

C.if(x=5;)printf("yes");

D.if(x==5;)printf("yes");

【答案】:答案解析:if條件需是判斷表達式(==),A是賦值,C、D多加分號,故選B。18、若inta[5];則數組a的元素個數是?()

A.4

B.5

C.6

D.不確定

【答案】:答案解析:數組a[5]定義5個元素(下標0-4),故選B。19、若inti=0;執(zhí)行while(1){printf("%d",i);i++;if(i==3)break;}輸出結果是?()

A.012

B.0123

C.無限循環(huán)

D.無輸出

【答案】:答案解析:while(1)無限循環(huán),i=3時break,輸出012,故選A。20、若inti=0;執(zhí)行do{i++;printf("%d",i);}while(i<3);輸出結果是?()

A.123

B.012

C.12

D.無輸出

【答案】:答案解析:do-while先執(zhí)行,i從1到3,輸出123,故選A。21、若inta=4;執(zhí)行a-=2;后a的值是?()

A.2

B.4

C.6

D.0

【答案】:答案解析:a-=2等價于a=a-2,4-2=2,故選A。22、函數調用時,實參的類型必須與形參的類型?()

A.完全一致

B.兼容(可自動轉換)

C.無關

D.實參類型大于形參類型

【答案】:答案解析:實參和形參類型可兼容(如int→float),編譯器自動轉換,不兼容則編譯錯誤,故選B。23、以下if語句中,賦值語句和判斷語句混淆的是?()

A.if(x==5)

B.if(x=5)

C.if(x!=5)

D.if(x>5)

【答案】:答案解析:x=5是賦值(將5賦給x),x==5是判斷(x是否等于5),B混淆了兩者,故選B。24、若int*p=(int)malloc(sizeof(int));則p的值是?()

A.0

B.隨機值

C.1

D.無定義

【答案】:答案解析:malloc分配的內存未初始化,值為隨機值,故選B。25、以下函數聲明正確的是?()

A.intfun(intx,inty);

B.intfun(int,int);

C.intfun(intx;inty);

D.A和B

【答案】:答案解析:函數聲明可寫參數名或只寫類型,A、B正確,C用分號錯誤,故選D。26、以下關于指針數組的定義正確的是?()

A.int*arr[5];

B.int(*arr)[5];

C.intarr[5];

D.intarr[];

【答案】:答案解析:A是指針數組(5個int指針),B是指向數組的指針,C是普通數組,D缺少長度,故選A。27、若inta[3][2]={{1,2},{3,4},{5,6}};則a[2][1]的值是?()

A.5

B.6

C.3

D.4

【答案】:答案解析:a[2][1]是第三行第二列,值為6,故選B。28、以下switch語句中,default的位置可以在?()

A.所有case之前

B.所有case之后

C.兩個case之間

D.以上都可以

【答案】:答案解析:default位置靈活,可在case前、后或中間,不影響執(zhí)行邏輯,故選D。29、函數參數傳遞中,地址傳遞的特點是?()

A.形參是實參的副本

B.形參修改不影響實參

C.傳遞的是變量地址

D.用于簡單變量傳參

【答案】:答案解析:地址傳遞(指針)傳遞變量地址,形參通過地址修改實參值,值傳遞是副本,故選C。30、若intx=3;執(zhí)行以下代碼后a的值是?()inta;if(x>5)a=10;elseif(x>2)a=20;elsea=30;

A.10

B.20

C.30

D.無定義

【答案】:答案解析:x=3>2,執(zhí)行第二個分支,a=20,故選B。31、以下關于指針數組和數組指針的說法正確的是?()

A.指針數組是數組,元素為指針

B.數組指針是指針,指向數組

C.int*arr[5]是指針數組,int(*arr)[5]是數組指針

D.以上都正確

【答案】:答案解析:A、B、C均準確區(qū)分了指針數組和數組指針,故選D。32、函數調用時,實參的順序必須與形參的順序?()

A.一致

B.相反

C.無關

D.部分一致

【答案】:答案解析:實參和形參需按順序一一對應(類型、個數、順序匹配),否則可能導致邏輯錯誤,故選A。33、以下關于數組越界的說法正確的是?()

A.編譯時會報錯

B.運行時一定會崩潰

C.可能導致程序錯誤

D.無影響

【答案】:答案解析:數組越界屬于未定義行為,編譯時不報錯,運行時可能正常或崩潰,故選C。34、putchar()函數的功能是?()

A.讀取一個字符

B.輸出一個字符

C.讀取字符串

D.輸出字符串

【答案】:答案解析:putchar()用于輸出單個字符,getchar()讀取單個字符,puts()輸出字符串,故選B。35、以下數組定義中,長度為5的是?()

A.inta[5];

B.inta[]={1,2,3,4,5};

C.charstr[]="abcd";

D.以上都是

【答案】:答案解析:A長度5,B長度5,C字符串"abcd"含\0共5個字符,故選D。36、若inta=2,b=4;執(zhí)行if(a==b)a=0;elseb=0;后a和b的值分別是?()

A.0,4

B.2,0

C.0,0

D.2,4

【答案】:答案解析:a==b為假,執(zhí)行else,b=0,a保持2,故選B。37、數組名的本質是?()

A.數組第一個元素的地址

B.數組最后一個元素的地址

C.數組元素的個數

D.數組的大小

【答案】:答案解析:數組名是首元素地址(常量,不可修改),故選A。38、以下哪個是C語言中的賦值運算符?()

A.==

B.=

C.+=

D.!=

【答案】:答案解析:=是賦值運算符,==是等于判斷,+=是復合賦值,!=是不等于判斷,故選B。39、以下函數參數為指針的是?()

A.voidfun(int*a){}

B.voidfun(inta){}

C.voidfun(inta[]){}

D.A和C

【答案】:答案解析:A是指針參數,C數組名參數本質是指針,B是值參數,故選D。40、以下關于數組的說法正確的是?()

A.數組下標從1開始

B.數組名可作為左值賦值

C.數組長度定義后不可修改

D.數組元素類型可不同

【答案】:答案解析:數組下標從0開始,數組名是常量(不可賦值),元素類型必須相同,長度定義后固定,故選C。41、C語言程序的入口函數是?()

A.main()

B.printf()

C.scanf()

D.main

【答案】:答案解析:所有C程序從main()函數開始執(zhí)行,必須有且僅有一個,故選A。42、若intx=3,y=5;執(zhí)行if(x>y)printf("x大");elseif(x==y)printf("相等");elseprintf("y大");輸出結果是?()

A.x大

B.相等

C.y大

D.無輸出

【答案】:答案解析:x=3<y=5,執(zhí)行else,輸出y大,故選C。43、以下函數聲明中,返回類型為float的是?()

A.floatfun();

B.voidfun(floata);

C.intfun(floata);

D.charfun(floata);

【答案】:答案解析:A返回類型為float,B無返回值,C返回類型int,D返回類型char,故選A。44、若inta=4,b=6;則表達式a<b?a+b:a-b的結果是?()

A.10

B.-2

C.4

D.6

【答案】:答案解析:a<b為真,取a+b=4+6=10,故選A。45、以下函數定義中,參數為指針的是?()

A.voidfun(int*a){printf("%d",*a);}

B.voidfun(inta){printf("%d",a);}

C.voidfun(inta[]){printf("%d",a[0]);}

D.A和C

【答案】:答案解析:A是指針參數,C數組名參數本

溫馨提示

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

評論

0/150

提交評論