期末c語言考試題(典型題)_第1頁
期末c語言考試題(典型題)_第2頁
期末c語言考試題(典型題)_第3頁
期末c語言考試題(典型題)_第4頁
期末c語言考試題(典型題)_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

期末c語言考試題第一部分單選題(50題)1、若inta[4]={10,20,30,40};則*(a+2)的值是?()

A.20

B.30

C.40

D.10

【答案】:答案解析:a+2是第三個元素地址,*(a+2)=a[2]=30,故選B。2、以下函數(shù)調(diào)用正確的是?()

A.fun(5);

B.fun(3,4);

C.fun("hello");

D.取決于函數(shù)定義

【答案】:答案解析:函數(shù)調(diào)用需匹配函數(shù)定義的參數(shù)類型和個數(shù),A、B、C是否正確取決于函數(shù)定義,故選D。3、若inta[4]={10,20,30,40};則a+1表示?()

A.10的地址

B.20的地址

C.30的地址

D.40的地址

【答案】:答案解析:a是首地址(a[0]=10),a+1是a[1](20)的地址,故選B。4、函數(shù)調(diào)用時,實參和形參的個數(shù)必須?()

A.相等

B.實參多于形參

C.形參多于實參

D.無要求

【答案】:答案解析:函數(shù)調(diào)用時實參和形參個數(shù)、類型需匹配,否則編譯錯誤,故選A。5、以下關于指針的說法正確的是?()

A.指針可用于遍歷數(shù)組

B.指針可用于字符串操作

C.指針可用于函數(shù)參數(shù)傳遞

D.以上都正確

【答案】:答案解析:指針在數(shù)組遍歷、字符串處理、參數(shù)傳遞中均有核心作用,故選D。6、轉(zhuǎn)義字符\0的作用是?()

A.表示空格

B.表示制表符

C.字符串結(jié)束標志

D.換行

【答案】:答案解析:\0ASCII碼為0,是字符串默認結(jié)束標志,不計入長度,故選C。7、函數(shù)參數(shù)傳遞中,地址傳遞的特點是?()

A.形參是實參的副本

B.形參修改不影響實參

C.傳遞的是變量地址

D.用于簡單變量傳參

【答案】:答案解析:地址傳遞(指針)傳遞變量地址,形參通過地址修改實參值,值傳遞是副本,故選C。8、若charstr[10];執(zhí)行strcpy(str,"hello");后str的長度是?()

A.5

B.6

C.10

D.不確定

【答案】:答案解析:strcpy復制字符串"hello"(含\0),長度為5(不含\0),故選A。9、以下哪個數(shù)據(jù)類型的占用字節(jié)數(shù)最大?()

A.char

B.short

C.int

D.double

【答案】:答案解析:char(1字節(jié))、short(2字節(jié))、int(4字節(jié))、double(8字節(jié)),故選D。10、以下循環(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。11、以下指針運算正確的是?()

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。12、執(zhí)行scanf("%d,%d",&a,&b);時,正確的輸入格式是?()

A.23

B.2;3

C.2,3

D.2和3

【答案】:答案解析:scanf格式串中含逗號分隔符,輸入需嚴格對應,故選C。13、若inti=0;執(zhí)行for(i=0;i<5;i++){if(i%2==0)continue;printf("%d",i);}輸出結(jié)果是?()

A.13

B.024

C.01234

D.無輸出

【答案】:答案解析:i為偶數(shù)(0、2、4)時continue,輸出奇數(shù)1、3,故選A。14、若inta[5]={10,20,30,40,50};則a[2]的值是?()

A.10

B.20

C.30

D.40

【答案】:答案解析:數(shù)組下標從0開始,a[2]是第三個元素30,故選C。15、以下哪個條件表達式表示“x是奇數(shù)”?()

A.x%2==0

B.x%2!=0

C.x/2==0

D.x/2!=0

【答案】:答案解析:奇數(shù)除以2余數(shù)為1,x%2!=0表示奇數(shù),A是偶數(shù),故選B。16、若intx=2;執(zhí)行switch(x){case1:printf("a");case2:printf("b");case3:printf("c");}輸出結(jié)果是?()

A.b

B.bc

C.abc

D.無輸出

【答案】:答案解析:x=2匹配case2,無break,穿透到case3,輸出bc,故選B。17、以下哪個是合法的字符常量?()

A."a"

B.'ab'

C.'a'

D.a

【答案】:答案解析:字符常量用單引號包裹單個字符,A是字符串,B是兩個字符(錯誤),D是標識符,故選C。18、以下關于循環(huán)語句的說法錯誤的是?()

A.for循環(huán)三個表達式均可省略

B.while循環(huán)先判斷后執(zhí)行

C.do-while循環(huán)至少執(zhí)行一次

D.continue可用于switch語句

【答案】:答案解析:continue僅用于循環(huán)語句,不能用于switch,A、B、C說法正確,故選D。19、以下關于數(shù)組越界的說法正確的是?()

A.編譯時會報錯

B.運行時一定會崩潰

C.可能導致程序錯誤

D.無影響

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

A.存儲函數(shù)的地址

B.調(diào)用函數(shù)

C.實現(xiàn)回調(diào)函數(shù)

D.以上都正確

【答案】:答案解析:函數(shù)指針存儲函數(shù)地址,可通過指針調(diào)用函數(shù),常用于回調(diào)函數(shù),故選D。21、若inta=7;執(zhí)行if(a%3==1)printf("A");elseif(a%3==2)printf("B");elseprintf("C");輸出結(jié)果是?()

A.A

B.B

C.C

D.無輸出

【答案】:答案解析:7%3=1?7/3=2余1?不,7%3=1?7-3*2=1,條件1成立?哦7%3=1,應輸出A?不對,7%3=1,第一個條件成立,輸出A?重新計算:7÷3=2余1,a%3=1,執(zhí)行第一個分支,輸出A,故選A(原解析修正:之前誤算,正確結(jié)果A)。22、以下for循環(huán)的循環(huán)變量初始化表達式為“i=5”的是?()

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

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

C.for(i=2;i<=5;i++)

D.for(i=5;i<10;i+=2)

【答案】:答案解析:初始化表達式是for循環(huán)第一個部分,B中i=5符合,其余初始化非5,故選B。23、若inta=1,b=2;則表達式(a==b)的結(jié)果是?()

A.1

B.0

C.2

D.真

【答案】:答案解析:==是等于判斷,a==b為假,C語言中假用0表示,故選B。24、若intx=5;則表達式x+++x的結(jié)果是?()

A.10

B.11

C.12

D.9

【答案】:答案解析:結(jié)合性從左到右,x+++x等價于(x++)+x=5+6=11,故選B。25、以下數(shù)組初始化正確的是?()

A.charstr[]="hello";

B.charstr[5]="hello";

C.charstr[]={'h','e','l','l','o'};

D.charstr[5]={'h','e','l','l','o','\0'};

【答案】:答案解析:A字符串自動加\0,B長度5不足以存hello(含\0共6個字符),C無\0(字符串不完整),D長度5超,故選A。26、以下哪個是NULL指針?()

A.void*p=0;

B.int*p=NULL;

C.charp=(char)0;

D.以上都正確

【答案】:答案解析:NULL指針是不指向任何有效地址的指針,三種寫法均正確,故選D。27、以下switch語句中,default的位置可以在?()

A.所有case之前

B.所有case之后

C.兩個case之間

D.以上都可以

【答案】:答案解析:default位置靈活,可在case前、后或中間,不影響執(zhí)行邏輯,故選D。28、若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。29、以下數(shù)組定義中,長度為5的是?()

A.inta[5];

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

C.charstr[]="abcd";

D.以上都是

【答案】:答案解析:A長度5,B長度5,C字符串"abcd"含\0共5個字符,故選D。30、以下函數(shù)調(diào)用正確的是?()

A.fun();

B.fun(1,2);

C.fun("test");

D.取決于函數(shù)定義

【答案】:答案解析:函數(shù)調(diào)用是否正確取決于函數(shù)定義(參數(shù)類型、個數(shù)),A、B、C均可能正確,故選D。31、若inta=10,*p=&a,q=p;則q的值是?()

A.10

B.&a

C.p

D.無定義

【答案】:答案解析:q=p使q指向a,*q=10,故選A。32、若inta=3;執(zhí)行if(++a>3)printf("A");elseprintf("B");輸出結(jié)果是?()

A.A

B.B

C.AB

D.無輸出

【答案】:答案解析:++a是前置自增,a變?yōu)?>3,條件為真,輸出A,故選A。33、以下if語句中,邏輯運算符使用正確的是?()

A.if(x>3&&x<7)

B.if(x>3&x<7)

C.if(x>3|||x<7)

D.if(x>3||x<7)

【答案】:答案解析:邏輯與用&&,邏輯或用||,B是按位與,C多寫||,D邏輯錯誤(x>3或x<7恒為真),故選A。34、若inta[5]={1,2,3,4,5},p=a;執(zhí)行p+=2;后p的值是?()

A.2

B.3

C.4

D.5

【答案】:答案解析:p+=2使p指向a[2],*p=3,故選B。35、若inta=5,b=3;執(zhí)行if(a>b){a--;b++;}后a和b的值分別是?()

A.4,4

B.5,3

C.4,3

D.5,4

【答案】:答案解析:a>b為真,執(zhí)行代碼塊,a=5-1=4,b=3+1=4,故選A。36、若floatf=5.9;強制轉(zhuǎn)換為整型的表達式是?()

A.int(f)

B.(int)f

C.intf

D.(float)f

【答案】:答案解析:強制類型轉(zhuǎn)換格式為(目標類型)變量,(int)f結(jié)果為5(取整數(shù)部分),故選B。37、以下關于指針數(shù)組和數(shù)組指針的說法正確的是?()

A.指針數(shù)組是數(shù)組,元素為指針

B.數(shù)組指針是指針,指向數(shù)組

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

D.以上都正確

【答案】:答案解析:A、B、C均準確區(qū)分了指針數(shù)組和數(shù)組指針,故選D。38、遞歸函數(shù)的優(yōu)點是?()

A.代碼簡潔,邏輯清晰

B.效率高,占用內(nèi)存少

C.避免棧溢出

D.適合所有問題

【答案】:答案解析:遞歸優(yōu)點是代碼簡潔(如階乘、斐波那契數(shù)列),缺點是效率低、占用??臻g多(可能溢出),故選A。39、函數(shù)的形參在______時分配內(nèi)存?()

A.函數(shù)定義

B.函數(shù)聲明

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

D.程序編譯

【答案】:答案解析:形參是局部變量,函數(shù)調(diào)用時分配內(nèi)存,調(diào)用結(jié)束釋放,故選C。40、以下指針與函數(shù)的關系正確的是?()

A.函數(shù)名是函數(shù)的地址

B.函數(shù)指針可指向函數(shù)

C.可通過函數(shù)指針調(diào)用函數(shù)

D.以上都正確

【答案】:答案解析:A、B、C均是函數(shù)與指針的基本關系,故選D。41、數(shù)組作為函數(shù)參數(shù)時,函數(shù)形參不能是?()

A.inta[]

B.int*a

C.inta[5]

D.inta

【答案】:答案解析:D中inta是普通變量,不能接收數(shù)組名(地址),A、B、C均可作為數(shù)組形參,故選D。42、以下關于指針數(shù)組的定義正確的是?()

A.int*arr[5];

B.int(*arr)[5];

C.intarr[5];

D.intarr[];

【答案】:答案解析:A是指針數(shù)組(5個int指針),B是指向數(shù)組的指針,C是普通數(shù)組,D缺少長度,故選A。43、以下哪個表達式可訪問數(shù)組a的第i個元素(i從1開始)?()

A.a[i]

B.a[i-1]

C.*(a+i)

D.*(a+i-1)

【答案】:答案解析:數(shù)組下標從0開始,第i個元素對應下標i-1,a[i-1]正確,C、D是指針訪問(對應下標i),故選B。44、函數(shù)中局部變量的作用域是?()

A.整個程序

B.函數(shù)內(nèi)部

C.函數(shù)外部

D.所有函數(shù)

【答案】:答案解析:局部變量定義在函數(shù)內(nèi),僅在函數(shù)內(nèi)部有效,故選B。45、若inti=0;執(zhí)行do{i++;printf("%d",i);}while(i<3);輸出結(jié)果是?()

A.123

B.012

C.12

D.無輸出

【答案】:答案解析:do-while先執(zhí)行,i從1到3,輸出123,故選A。46、以下關于數(shù)組的說法正確的是?()

A.數(shù)

溫馨提示

  • 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

提交評論