c語言專科期末測試題(黃金題型)_第1頁
c語言??破谀y試題(黃金題型)_第2頁
c語言專科期末測試題(黃金題型)_第3頁
c語言??破谀y試題(黃金題型)_第4頁
c語言??破谀y試題(黃金題型)_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

c語言專科期末測試題第一部分單選題(50題)1、以下指針運算正確的是?()

A.inta=10,*p=&a;p++;

B.inta=10,*p=&a;p=a;

C.inta=10,*p=&a;p=&5;

D.inta=10,*p=&a;*p=&a;

【答案】:答案解析:A指針p自增(指向a的下一個地址),B不能將int值賦給指針,C不能取常量地址,D不能將地址賦給int變量,故選A。2、若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。3、若inta=7,*p=&a;執(zhí)行++*p;后a的值是?()

A.7

B.8

C.&a

D.無定義

【答案】:答案解析:++*p等價于++(*p),先解引用取a的值,再加1(a=8),故選B。4、函數調用的一般格式是?()

A.函數名(實參列表);

B.函數名實參列表;

C.返回類型函數名(實參列表);

D.函數名=實參列表;

【答案】:答案解析:函數調用格式為“函數名(實參列表);”,實參與形參匹配,故選A。5、以下數組初始化錯誤的是?()

A.inta[5]={0};

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

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

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

【答案】:答案解析:D初始化元素個數超數組長度(5),編譯報錯,A、B、C正確,故選D。6、以下switch語句語法正確的是?()

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

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

C.switch(x){case1:printf("1");break;default:printf("0");}

D.以上都正確

【答案】:答案解析:switch語句case后可加break(跳出)或不加(穿透),default可選,A、B、C語法均正確,故選D。7、若inti=0,s=0;執(zhí)行do{s+=i;i++;}while(i<5);后s的值是?()

A.10

B.15

C.5

D.0

【答案】:答案解析:do-while累加0+1+2+3+4=10,s=10,故選A。8、以下函數返回值類型為int的是?()

A.voidfun(){return;}

B.intfun(){return3.14;}

C.floatfun(){return5;}

D.charfun(){return'a';}

【答案】:答案解析:A返回值類型void(不能return表達式),B返回類型int(3.14強制轉為3),C返回類型float,D返回類型char,故選B。9、以下if語句中,邏輯非運算符使用正確的是?()

A.if(!x)printf("yes");

B.if(!x==0)printf("yes");

C.if(!(x>0))printf("yes");

D.A和C

【答案】:答案解析:!x表示“x為假(0)”,!(x>0)表示“x不大于0”,均正確;B中!x==0等價于x!=0,邏輯不同,故選D。10、若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。11、以下哪個操作會導致野指針?()

A.指針未初始化

B.指針指向的內存被釋放后未置空

C.指針越界訪問

D.以上都是

【答案】:答案解析:野指針是指向無效地址的指針,A、B、C均會導致野指針,故選D。12、以下關于指針的說法正確的是?()

A.指針可用于實現多返回值函數

B.指針可提高程序效率

C.指針可用于動態(tài)內存分配

D.以上都正確

【答案】:答案解析:指針的核心用途包括多返回值、高效訪問、動態(tài)內存分配,故選D。13、函數參數的默認值在______指定?()

A.函數定義時

B.函數聲明時

C.函數調用時

D.C語言不支持默認參數

【答案】:答案解析:標準C語言不支持函數參數默認值(C++支持),故選D。14、以下數組定義中,長度為5的是?()

A.inta[5];

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

C.charstr[]="abcd";

D.以上都是

【答案】:答案解析:A長度5,B長度5,C字符串"abcd"含\0共5個字符,故選D。15、以下switch語句中,default的作用是?()

A.匹配所有case

B.匹配除case外的所有情況

C.終止switch語句

D.無實際作用

【答案】:答案解析:default用于匹配所有case未覆蓋的情況,可選且位置靈活,故選B。16、若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。17、若inti=1;執(zhí)行while(i<5){printf("%d",i);i+=2;}輸出結果是?()

A.13

B.135

C.1234

D.無輸出

【答案】:答案解析:i初始1,每次加2,執(zhí)行2次(1、3),輸出13,故選A。18、以下函數調用正確的是?()

A.fun();

B.fun(1,2);

C.fun("test");

D.取決于函數定義

【答案】:答案解析:函數調用是否正確取決于函數定義(參數類型、個數),A、B、C均可能正確,故選D。19、若charstr[10];執(zhí)行strcpy(str,"hello");后str的長度是?()

A.5

B.6

C.10

D.不確定

【答案】:答案解析:strcpy復制字符串"hello"(含\0),長度為5(不含\0),故選A。20、邏輯表達式!5的結果是?()

A.0

B.1

C.5

D.真

【答案】:答案解析:5為真,!是邏輯非,真變假(0),故選A。21、指針的自增運算(p++)的含義是?()

A.指針值加1

B.指針指向的變量值加1

C.指針指向地址偏移一個類型大小

D.指針指向地址偏移1字節(jié)

【答案】:答案解析:p++使指針指向地址偏移“指向類型大小”(如int指針+4字節(jié)),故選C。22、邏輯表達式!0的結果是?()

A.0

B.1

C.真

D.假

【答案】:答案解析:C語言中非0為真,!是邏輯非,!0(假)結果為1(真),故選B。23、指針與數組的關系,以下說法正確的是?()

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

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

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

D.以上都正確

【答案】:答案解析:數組名是首元素地址(常量,不可自增),指針可遍歷數組,p[i]與*(p+i)等價,故選D。24、以下字符串常量定義正確的是?()

A.charstr[]="C";

B.charstr[1]='C';

C.charstr[]={'C'};

D.charstr[2]={'C','\0'};

【答案】:答案解析:A用雙引號定義字符串(自動加\0),B單引號用于字符常量,C無\0,D長度2正確但A更簡潔,故選A。25、以下函數聲明中,返回類型為float的是?()

A.floatfun();

B.voidfun(floata);

C.intfun(floata);

D.charfun(floata);

【答案】:答案解析:A返回類型為float,B無返回值,C返回類型int,D返回類型char,故選A。26、若inti=0;執(zhí)行for(i=0;i<5;i++){printf("%d",i);if(i==2)break;}輸出結果是?()

A.012

B.01

C.01234

D.無輸出

【答案】:答案解析:i=2時break,輸出012,故選A。27、二維數組a[2][3]在內存中存儲的順序是?()

A.a[0][0],a[0][1],a[0][2],a[1][0],a[1][1],a[1][2]

B.a[0][0],a[1][0],a[0][1],a[1][1],a[0][2],a[1][2]

C.隨機順序

D.按列存儲

【答案】:答案解析:二維數組按行優(yōu)先連續(xù)存儲,順序為第一行所有元素,再第二行,故選A。28、以下關于void類型函數的說法正確的是?()

A.不能有return語句

B.可以有return語句(無表達式)

C.必須有return語句

D.可返回任意類型

【答案】:答案解析:void函數可寫return;(無表達式),用于提前結束函數,不能返回表達式,故選B。29、以下switch語句中,case后的常量可以是?()

A.整數

B.字符

C.枚舉常量

D.以上都可以

【答案】:答案解析:switch的case后必須是整型常量(整數、字符、枚舉常量,字符本質是ASCII碼整數),故選D。30、以下if-else語句中,代碼塊正確的是?()

A.if(x>0)printf("a");printf("b");elseprintf("c");

B.if(x>0){printf("a");printf("b");}elseprintf("c");

C.if(x>0)printf("a");{printf("b");}elseprintf("c");

D.if(x>0)printf("a");printf("b");else{printf("c");}

【答案】:答案解析:else需與最近的if匹配,A、C、D中else前有獨立printf,語法錯誤,B用{}包裹代碼塊正確,故選B。31、以下函數遞歸調用的例子是?()

A.計算階乘

B.循環(huán)輸出數字

C.數組遍歷

D.變量交換

【答案】:答案解析:階乘常用遞歸實現(n!=n*(n-1)!),B、C、D用循環(huán)更高效,故選A。32、以下關于數組越界的說法正確的是?()

A.編譯時會報錯

B.運行時一定會崩潰

C.可能導致程序錯誤

D.無影響

【答案】:答案解析:數組越界屬于未定義行為,編譯時不報錯,運行時可能正?;虮罎?,故選C。33、若floatx=3.14;則表達式(int)x的結果是?()

A.3

B.3.14

C.4

D.0

【答案】:答案解析:強制轉換為int取整數部分,3.14→3,故選A。34、若inti=0,s=0;執(zhí)行for(i=0;i<4;i++)s+=i;后s的值是?()

A.6

B.10

C.4

D.0

【答案】:答案解析:累加0+1+2+3=6,s=6,故選A。35、若intx=5;執(zhí)行以下代碼后輸出結果是?()if(x>10)printf("A");elseif(x>6)printf("B");elseif(x>3)printf("C");elseprintf("D");

A.A

B.B

C.C

D.

【答案】:答案解析:x=5>3,執(zhí)行第三個分支,輸出C,故選C。36、若inti=0;執(zhí)行do{printf("%d",i);i++;}while(i<0);輸出結果是?()

A.0

B.無輸出

C.無限循環(huán)

D.01

【答案】:答案解析:do-while先執(zhí)行一次(輸出0,i=1),判斷i<0為假,循環(huán)結束,故選A。37、C語言中,語句結束的標志是?()

A.逗號

B.分號

C.冒號

D.句號

【答案】:答案解析:C語言單條語句以分號(;)結尾,復合語句用{}包裹,故選B。38、定義整型變量x、y并均賦值10的語句是?()

A.intx=y=10;

B.intx=10,y=10;

C.intx=10;y=10;

D.intx=10;inty=10;

【答案】:答案解析:同一行定義多個變量用逗號分隔,A不能連續(xù)賦值,C缺少int,D是兩行定義,故選B。39、以下哪個字符串的長度是3?()

A."abc"

B."a\0b"

C."ab\n"

D."ab"

【答案】:答案解析:字符串長度以\0結束,"abc"含a、b、c(3個字符),"a\0b"長度為1,故選A。40、以下轉義字符表示換行的是?()

A.\t

B.\n

C.\

D.\r

【答案】:答案解析:\t是制表符,\n是換行符,\是反斜杠,\r是回車符,故選B。41、以下哪個運算符的優(yōu)先級最高?()

A.+

B.*

C.=

D.==

【答案】:答案解析:算術運算符中*(乘)優(yōu)先級高于+(加),賦值(=)和關系(==)優(yōu)先級更低,故選B。42、若inta=10,*p=&a;則sizeof(p)的值是?()

A.4

B.8

C.取決于系統(tǒng)

D.10

【答案】:答案解析:sizeof(p)是指針大小,32位系統(tǒng)4字節(jié),64位8字節(jié),故選C。43、表示“x大于5且小于10”的合法C語言表達式是?()

A.5<x<10

B.x>5||x<10

C.x>5&&x<10

D.x>5&x<10

【答案】:答案解析:邏輯與用&&,邏輯或用||,A是連續(xù)比較語法錯誤,&是按位與,故選C。44、以下關于二維數組的說法正確的是?()

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

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

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

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

【答案】:答案解析:二維數組本質是數組的數組,內存按行存儲,可作為函數參數,長度需常量,故選A。45、以下關于main函數的說法正確的是?()

A.main函數可無返回值

B.main函數可帶參數

C.main函數是程

溫馨提示

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

評論

0/150

提交評論