算法與數(shù)據(jù)結(jié)構(gòu)-C語言描述及答案(必刷)_第1頁
算法與數(shù)據(jù)結(jié)構(gòu)-C語言描述及答案(必刷)_第2頁
算法與數(shù)據(jù)結(jié)構(gòu)-C語言描述及答案(必刷)_第3頁
算法與數(shù)據(jù)結(jié)構(gòu)-C語言描述及答案(必刷)_第4頁
算法與數(shù)據(jù)結(jié)構(gòu)-C語言描述及答案(必刷)_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

算法與數(shù)據(jù)結(jié)構(gòu)—C語言描述第一部分單選題(50題)1、以下指針運算錯誤的是?()

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

B.inta=5,*p=&a;*p++;

C.inta=5,*p=&a;p=&a+1;

D.inta=5,*p=&a;p=p+2;

【答案】:答案解析:&a是地址常量,不能進行算術(shù)運算(&a+1錯誤),A、B、D均正確,故選C。2、以下定義指向數(shù)組的指針正確的是?()

A.inta[5],*p=a;

B.inta[5],*p=&a;

C.inta[5],p=a;

D.inta[5],*p=a[0];

【答案】:答案解析:a是數(shù)組名(首元素地址),p=a等價于p=&a[0],B&a是數(shù)組地址(類型不匹配),Cp是普通變量,Dp不能賦a[0]的值,故選A。3、若intx=6;執(zhí)行以下代碼后輸出結(jié)果是?()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。4、以下關于函數(shù)的說法正確的是?()

A.函數(shù)可提高代碼復用性

B.函數(shù)可簡化程序結(jié)構(gòu)

C.函數(shù)可便于維護

D.以上都正確

【答案】:答案解析:函數(shù)的核心優(yōu)勢是復用、簡化結(jié)構(gòu)、便于維護,故選D。5、邏輯表達式3&&0的結(jié)果是?()

A.0

B.1

C.3

D.真

【答案】:答案解析:邏輯與&&只要有一個operand為0則結(jié)果為0,3為真,0為假,故選A。6、若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。7、若inti=0;執(zhí)行do{printf("%d",i);i++;}while(i<0);輸出結(jié)果是?()

A.0

B.無輸出

C.無限循環(huán)

D.01

【答案】:答案解析:do-while先執(zhí)行一次(輸出0,i=1),判斷i<0為假,循環(huán)結(jié)束,故選A。8、若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。9、若inti=1;執(zhí)行do{printf("%d",i);i++;}while(i<=0);輸出結(jié)果是?()

A.1

B.無輸出

C.無限循環(huán)

D.12

【答案】:答案解析:do-while先執(zhí)行一次(輸出1,i=2),再判斷i<=0為假,循環(huán)結(jié)束,故選A。10、若inta[5];則數(shù)組a的元素個數(shù)是?()

A.4

B.5

C.6

D.不確定

【答案】:答案解析:數(shù)組a[5]定義5個元素(下標0-4),故選B。11、指針變量的作用是存儲?()

A.變量的值

B.變量的地址

C.函數(shù)的地址

D.數(shù)組的元素

【答案】:答案解析:指針變量專門存儲其他變量的內(nèi)存地址,故選B。12、若intx=0;執(zhí)行if(x)printf("A");elseprintf("B");輸出結(jié)果是?()

A.A

B.B

C.AB

D.無輸出

【答案】:答案解析:x=0為假,執(zhí)行else分支,輸出B,故選B。13、以下數(shù)組初始化中,未賦值元素默認為0的是?()

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

B.charstr[5];

C.inta[5];

D.以上都是

【答案】:答案解析:全局數(shù)組未初始化默認為0,局部數(shù)組未初始化是隨機值,A初始化部分元素,未賦值默認為0,故選A。14、以下哪個for循環(huán)是無限循環(huán)?()

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

B.for(;;)

C.for(i=0;i<5;i--);

D.for(i=5;i>0;i--)

【答案】:答案解析:for循環(huán)三個表達式均省略時,條件恒為真,是無限循環(huán),A執(zhí)行5次,C、D初始條件不滿足(執(zhí)行0次),故選B。15、C語言程序的基本單位是?()

A.語句

B.函數(shù)

C.變量

D.表達式

【答案】:答案解析:C程序由函數(shù)構(gòu)成,main是入口函數(shù),其他函數(shù)實現(xiàn)功能,故選B。16、若inti=1;執(zhí)行do{printf("%d",i);i++;}while(i<=3);輸出結(jié)果是?()

A.123

B.1234

C.012

D.無輸出

【答案】:答案解析:do-while先執(zhí)行一次(輸出1,i=2),再判斷,共執(zhí)行3次,輸出123,故選A。17、若intx=5;執(zhí)行以下代碼后輸出結(jié)果是?()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。18、指針與數(shù)組的關系,以下說法正確的是?()

A.數(shù)組名是常量指針,不能自增

B.指針可指向數(shù)組元素,通過指針遍歷數(shù)組

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

D.以上都正確

【答案】:答案解析:數(shù)組名是首元素地址(常量,不可自增),指針可遍歷數(shù)組,p[i]與*(p+i)等價,故選D。19、以下關于函數(shù)的說法正確的是?()

A.函數(shù)必須有返回值

B.函數(shù)可嵌套定義

C.函數(shù)可遞歸調(diào)用

D.函數(shù)名可重定義

【答案】:答案解析:A函數(shù)可無返回值(void),B不能嵌套定義(可嵌套調(diào)用),D函數(shù)名不能重定義,C遞歸調(diào)用正確,故選C。20、二維數(shù)組a[2][3]在內(nèi)存中存儲的順序是?()

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.按列存儲

【答案】:答案解析:二維數(shù)組按行優(yōu)先連續(xù)存儲,順序為第一行所有元素,再第二行,故選A。21、以下循環(huán)中,循環(huán)次數(shù)為3次的是?()

A.for(i=1;i<=3;i++)

B.while(i=3)

C.do{i++;}while(i<3);

D.for(i=5;i>0;i--)

【答案】:答案解析:A執(zhí)行3次(1-3),B是無限循環(huán),C(i初始0)執(zhí)行3次,D執(zhí)行5次,題目問“3次”,A明確正確,故選A。22、若inti=0,s=0;執(zhí)行for(i=1;i<=4;i++)s+=i;后s的值是?()

A.10

B.9

C.8

D.7

【答案】:答案解析:累加1+2+3+4=10,s=10,故選A。23、以下函數(shù)參數(shù)為指針的是?()

A.voidfun(int*a){}

B.voidfun(inta){}

C.voidfun(inta[]){}

D.A和C

【答案】:答案解析:A是指針參數(shù),C數(shù)組名參數(shù)本質(zhì)是指針,B是值參數(shù),故選D。24、以下switch語句中,break語句的作用是?()

A.終止當前case

B.終止switch語句

C.跳過下一個case

D.無作用

【答案】:答案解析:break在switch中用于跳出整個switch語句,避免case穿透,故選B。25、函數(shù)調(diào)用時,實參和形參的個數(shù)必須?()

A.相等

B.實參多于形參

C.形參多于實參

D.無要求

【答案】:答案解析:函數(shù)調(diào)用時實參和形參個數(shù)、類型需匹配,否則編譯錯誤,故選A。26、若inta=7,*p=&a;執(zhí)行++*p;后a的值是?()

A.7

B.8

C.&a

D.無定義

【答案】:答案解析:++*p等價于++(*p),先解引用取a的值,再加1(a=8),故選B。27、若int*p=(int)malloc(sizeof(int));則p的值是?()

A.0

B.隨機值

C.1

D.無定義

【答案】:答案解析:malloc分配的內(nèi)存未初始化,值為隨機值,故選B。28、C語言程序編譯的正確順序是?()

A.預處理→編譯→匯編→鏈接

B.編譯→預處理→匯編→鏈接

C.預處理→匯編→編譯→鏈接

D.鏈接→編譯→匯編→預處理

【答案】:答案解析:C程序編譯流程為預處理(處理#命令)→編譯(生成匯編代碼)→匯編(生成目標文件)→鏈接(生成可執(zhí)行文件),故選A。29、若inta[4]={10,20,30,40};則*(a+2)的值是?()

A.20

B.30

C.40

D.10

【答案】:答案解析:a+2是第三個元素地址,*(a+2)=a[2]=30,故選B。30、以下定義指向字符串的指針正確的是?()

A.char*str="hello";

B.charstr[]="hello";

C.char(*str)[]="hello";

D.charstr[5]="hello";

【答案】:答案解析:A是指向字符串常量的指針,B是字符數(shù)組,C是數(shù)組指針(類型不匹配),D長度不足(含\0需6字節(jié)),故選A。31、以下函數(shù)調(diào)用錯誤的是?()

A.fun();

B.fun(5);

C.fun(3,4);

D.無錯誤(需看函數(shù)定義)

【答案】:答案解析:調(diào)用需匹配函數(shù)定義,A對應無參函數(shù),B對應單參函數(shù),C對應雙參函數(shù),均可能正確,故選D。32、若inta=5;執(zhí)行if(a>10);elsea=20;后a的值是?()

A.5

B.20

C.10

D.無定義

【答案】:答案解析:if后分號表示空語句,else執(zhí)行a=20,故選B。33、函數(shù)定義和函數(shù)聲明的區(qū)別是?()

A.定義包含函數(shù)體,聲明不包含

B.聲明包含函數(shù)體,定義不包含

C.定義和聲明無區(qū)別

D.定義在程序開頭,聲明在結(jié)尾

【答案】:答案解析:函數(shù)定義是完整實現(xiàn)(含函數(shù)體),聲明是告訴編譯器函數(shù)名、參數(shù)、返回類型(不含函數(shù)體),故選A。34、以下二維數(shù)組初始化正確的是?()

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

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

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

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

【答案】:答案解析:A行數(shù)超2,B元素不足6個(補0),C標準初始化,D元素超6個,故選C。35、指針與字符串的關系,以下說法正確的是?()

A.字符串常量是字符數(shù)組,數(shù)組名是指針

B.字符串可通過指針遍歷

C.字符指針可指向字符串常量

D.以上都正確

【答案】:答案解析:A、B、C均是指針與字符串的基本關系,故選D。36、putchar()函數(shù)的功能是?()

A.讀取一個字符

B.輸出一個字符

C.讀取字符串

D.輸出字符串

【答案】:答案解析:putchar()用于輸出單個字符,getchar()讀取單個字符,puts()輸出字符串,故選B。37、以下函數(shù)定義正確的是?()

A.voidfun(){printf("hello");}

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

C.intfun(){return5;}

D.以上都正確

【答案】:答案解析:A無參無返回值,B有參無返回值,C無參有返回值,均符合語法,故選D。38、以下switch語句中,正確使用字符常量的是?()

A.switch(c){case'A':printf("A");break;}

B.switch(c){caseA:printf("A");break;}

C.switch(c){case"A":printf("A");break;}

D.switch(c){case'a':'b':printf("ab");break;}

【答案】:答案解析:字符常量用單引號,B是標識符,C是字符串,D語法錯誤(多個case需分開),故選A。39、以下循環(huán)中,用于計算1到10的乘積的是?()

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

B.s=1;for(i=1;i<=10;i++)s*=i;

C.s=0;while(i<=10){s*=i;i++;}

D.s=1;do{s+=i;i++;}while(i<=10);

【答案】:答案解析:乘積初始值為1,累加初始值為0,B的邏輯是12...*10,正確,故選B。40、若inta[4]={1,2,3,4};則*(a+1)的值是?()

A.1

B.2

C.3

D.4

【答案】:答案解析:a是首地址,a+1是第二個元素地址,*(a+1)=a[1]=2,故選B。41、若charstr[]="Clanguage";則字符串長度是?()

A.10

B.11

C.12

D.13

【答案】:答案解析:字符串長度以\0結(jié)束,"Clanguage"含10個字符(不含\0),故選A。42、表示“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。43、以下哪個不是C語言的關鍵字?()

A.if

B.else

C.then

D.for

【答案】:答案解析:then不是C語言關鍵字,if(條件)、else(否則)、for(循環(huán))均是,故選C。44、函數(shù)調(diào)用時,實參的類型必須與形參的類型?()

A.完全一致

B.兼容(可自動轉(zhuǎn)換)

C.無關

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

【答案】:答案解析:實參和形參類型可兼容(如int→float),編譯器自動轉(zhuǎn)換,不兼容則編譯錯誤,故選B。45、指針與結(jié)構(gòu)體的關系,以下說法正確的是?()

A.結(jié)構(gòu)體指針通過->訪問成員

B.結(jié)構(gòu)體變量通過。訪問成員

C.結(jié)構(gòu)體指針可指向結(jié)構(gòu)體變量

D.以上都正確

【答案

溫馨提示

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

最新文檔

評論

0/150

提交評論