貴州大學c語言期末試題及參考答案一套_第1頁
貴州大學c語言期末試題及參考答案一套_第2頁
貴州大學c語言期末試題及參考答案一套_第3頁
貴州大學c語言期末試題及參考答案一套_第4頁
貴州大學c語言期末試題及參考答案一套_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

貴州大學c語言期末試題第一部分單選題(50題)1、若charstr[]="helloworld";則字符串長度是?()

A.10

B.11

C.12

D.13

【答案】:答案解析:"helloworld"含11個字符(不含\0),長度為11,故選B。2、以下關于函數的說法錯誤的是?()

A.函數可嵌套調用

B.函數可遞歸調用

C.函數可重定義

D.函數可聲明多次

【答案】:答案解析:C函數名不能重定義(重復定義編譯報錯),A、B、D正確,故選C。3、以下關于指針數組的定義正確的是?()

A.int*arr[5];

B.int(*arr)[5];

C.intarr[5];

D.intarr[];

【答案】:答案解析:A是指針數組(5個int指針),B是指向數組的指針,C是普通數組,D缺少長度,故選A。4、函數參數傳遞中,值傳遞適用于?()

A.簡單變量,無需修改實參

B.數組,需修改元素

C.指針,需修改實參

D.結構體,需修改成員

【答案】:答案解析:值傳遞用于簡單變量(不修改實參),地址傳遞用于需修改實參的場景,故選A。5、若inta[5]={1,2,3};則a[3]的值是?()

A.0

B.3

C.隨機值

D.無定義

【答案】:答案解析:初始化時未賦值的元素默認為0,a[3]=0,故選A。6、C語言中,宏定義的預處理命令關鍵字是?()

A.include

B.define

C.ifdef

D.endif

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

A.數組下標從1開始

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

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

D.數組元素類型可不同

【答案】:答案解析:數組下標從0開始,數組名是常量(不可賦值),元素類型必須相同,長度定義后固定,故選C。8、以下循環(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。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、若floatx=3.14;則表達式(int)x的結果是?()

A.3

B.3.14

C.4

D.0

【答案】:答案解析:強制轉換為int取整數部分,3.14→3,故選A。11、函數定義在main函數之后時,必須先?()

A.調用函數

B.聲明函數

C.定義函數

D.無要求

【答案】:答案解析:main函數調用其他函數時,若函數定義在main之后,需先聲明(否則編譯器找不到函數),故選B。12、以下關于函數遞歸的說法錯誤的是?()

A.必須有終止條件

B.可能導致棧溢出

C.效率比循環(huán)高

D.代碼簡潔

【答案】:答案解析:遞歸調用會創(chuàng)建棧幀,效率低于循環(huán),A、B、D正確,C錯誤,故選C。13、若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。14、指針與數組的關系,以下說法正確的是?()

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

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

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

D.以上都正確

【答案】:答案解析:數組名是首元素地址(常量,不可自增),指針可遍歷數組,p[i]與*(p+i)等價,故選D。15、函數嵌套調用是指?()

A.函數調用自身

B.函數調用另一個函數

C.函數定義中包含另一個函數

D.多個函數互相調用

【答案】:答案解析:嵌套調用是函數A調用函數B,函數B調用函數C,遞歸是調用自身,故選B。16、二維數組a[3][4]的元素個數是?()

A.7

B.12

C.3

D.4

【答案】:答案解析:3行4列,共3×4=12個元素,故選B。17、下列字符串常量定義正確的是?()

A.'abc'

B."abc"

C.abc

D."a""b"

【答案】:答案解析:字符串常量用雙引號包裹,單引號用于字符常量,C是標識符,D語法錯誤,故選B。18、若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。19、break語句不能用于以下哪種結構?()

A.for循環(huán)

B.while循環(huán)

C.do-while循環(huán)

D.if語句

【答案】:答案解析:break可用于循環(huán)(for/while/do-while)和switch語句,不能用于if語句,故選D。20、函數定義和函數聲明的區(qū)別是?()

A.定義包含函數體,聲明不包含

B.聲明包含函數體,定義不包含

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

D.定義在程序開頭,聲明在結尾

【答案】:答案解析:函數定義是完整實現(含函數體),聲明是告訴編譯器函數名、參數、返回類型(不含函數體),故選A。21、定義單精度浮點型變量y并賦值2.718的語句是?()

A.doubley=2.718;

B.floaty=2.718f;

C.floaty=2.718;

D.inty=2.718;

【答案】:答案解析:float是單精度,需加f后綴(否則默認double),double是雙精度,故選B。22、以下指針定義正確的是?()

A.int*p;

B.char*q;

C.float*r;

D.以上都正確

【答案】:答案解析:A指向int,B指向char,C指向float,均符合指針定義語法,故選D。23、以下函數參數為指針的是?()

A.voidfun(int*a){}

B.voidfun(inta){}

C.voidfun(inta[]){}

D.A和C

【答案】:答案解析:A是指針參數,C數組名參數本質是指針,B是值參數,故選D。24、若inta[5];執(zhí)行a[0]=1;a[1]=2;則a[2]的值是?()

A.0

B.3

C.隨機值

D.無定義

【答案】:答案解析:全局數組默認0,局部數組未初始化是隨機值?題目未說明存儲類別,通常默認全局,a[2]=0,故選A。25、若inti=0;執(zhí)行for(i=0;i<5;i++){if(i==3)break;printf("%d",i);}輸出結果是?()

A.012

B.0123

C.01234

D.無輸出

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

A.123

B.1234

C.012

D.無輸出

【答案】:答案解析:i初始1,滿足i<=3,執(zhí)行3次,輸出123,i最終4,循環(huán)結束,故選A。27、若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。28、以下關于函數參數的說法正確的是?()

A.形參是局部變量

B.實參是局部變量

C.形參在函數調用后釋放

D.實參在函數調用后釋放

【答案】:答案解析:形參是函數內局部變量(調用時分配內存,調用結束釋放),實參是主調函數中的變量(生命周期與主調函數一致),故選A。29、以下數組初始化中,未賦值元素默認為0的是?()

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

B.charstr[5];

C.inta[5];

D.以上都是

【答案】:答案解析:全局數組未初始化默認為0,局部數組未初始化是隨機值,A初始化部分元素,未賦值默認為0,故選A。30、若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。31、指針的自增運算(p++)的含義是?()

A.指針值加1

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

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

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

【答案】:答案解析:p++使指針指向地址偏移“指向類型大小”(如int指針+4字節(jié)),故選C。32、以下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。33、以下函數調用正確的是?()

A.fun();

B.fun(1,2);

C.fun("test");

D.取決于函數定義

【答案】:答案解析:函數調用是否正確取決于函數定義(參數類型、個數),A、B、C均可能正確,故選D。34、若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。35、數組名的本質是?()

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

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

C.數組元素的個數

D.數組的大小

【答案】:答案解析:數組名是首元素地址(常量,不可修改),故選A。36、指針與結構體的關系,以下說法正確的是?()

A.結構體指針通過->訪問成員

B.結構體變量通過。訪問成員

C.結構體指針可指向結構體變量

D.以上都正確

【答案】:答案解析:A、B、C均是結構體與指針的基本規(guī)則,故選D。37、若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。38、若inta=7,b=3;執(zhí)行if(a%b==1)a=0;elseb=0;后a和b的值分別是?()

A.0,3

B.7,0

C.0,0

D.7,3

【答案】:答案解析:7%3=1,條件為真,a=0,b保持3,故選A。39、以下數組定義錯誤的是?()

A.inta[0];

B.inta[5];

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

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

【答案】:答案解析:數組長度不能為0,編譯報錯,其余正確,故選A。40、數組名作為函數參數時,傳遞的是?()

A.數組第一個元素的值

B.數組所有元素的值

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

D.數組長度

【答案】:答案解析:數組名傳參本質是首元素地址(指針傳遞),函數中可通過指針訪問數組,故選C。41、以下數組定義中,長度為5的是?()

A.inta[5];

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

C.charstr[]="abcd";

D.以上都是

【答案】:答案解析:A長度5,B長度5,C字符串"abcd"含\0共5個字符,故選D。42、若inta=5,p=&a;執(zhí)行p=8;后a的值是?()

A.5

B.8

C.&a

D.無定義

【答案】:答案解析:*p=8通過指針修改指向變量a的值,a變?yōu)?,故選B。43、函數指針的作用是?()

A.存儲函數的地址

B.調用函數

C.實現回調函數

D.以上都正確

【答案】:答案解析:函數指針存儲函數地址,可通過指針調用函數,常用于回調函數,故選D。44、shortint類型的有符號取值范圍是?()

A.0~65535

B.-32768~32767

C.-2147483648~2147483647

D.無固定范圍

【答案】:答案解析:16位shortint有符號取值標準為-32768~32767,無符號為0~65535,故選B。45、若intx=2;執(zhí)行switch(x){case1:printf("a");case2:printf("b");case3:printf("c");}輸出結果是?()

A.b

B.bc

C.abc

D.無輸出

【答案】:答案解析:x=2匹配case2,無b

溫馨提示

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

評論

0/150

提交評論