《智慧樹知到》《C語言編程新思路(山東理工大學(xué))》章節(jié)測試題及答案_第1頁
《智慧樹知到》《C語言編程新思路(山東理工大學(xué))》章節(jié)測試題及答案_第2頁
《智慧樹知到》《C語言編程新思路(山東理工大學(xué))》章節(jié)測試題及答案_第3頁
《智慧樹知到》《C語言編程新思路(山東理工大學(xué))》章節(jié)測試題及答案_第4頁
《智慧樹知到》《C語言編程新思路(山東理工大學(xué))》章節(jié)測試題及答案_第5頁
已閱讀5頁,還剩83頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第第頁

《智慧樹知到》《C語言編程新思路(山東理工大學(xué))》章節(jié)測試題及答案

第一章測試

1、關(guān)于一個C語言程序執(zhí)行的起點和終點,以下選項正確的是()。

A、mainmain

B、第一個最后一個

C、main任意

D、main最后一個

正確答案:A

2、C語句的程序一行寫不下時,可以()。

A、用逗號換行

B、用分號換行

C、用任意空格換行

D、用回車換行

正確答案:D

3、以下敘述不正確的是()。

A、C程序中,語句之間必須用分號分隔

B、C程序中,多行語句可以寫在一行上

C、C程序中,可以不必包含主函數(shù)

D、一個C程序,可以由多個函數(shù)組成

正確答案:C

4、C語言規(guī)定,在一個源程序中,main函數(shù)的位置()。

A、必須在最開始

B、必須在系統(tǒng)調(diào)用庫函數(shù)的后面

C、可以任意

D、必須在最后

正確答案:C

5、以下敘述正確的是()。

A、在C程序中,注釋說明只能位于一條語句的后面。

B、C程序的每行中只能寫一個語句

C、C語言本身沒有輸入輸出語句

D、在對C語言進行編譯的過程中,不能發(fā)現(xiàn)注釋中的錯誤

正確答案:D

6、函數(shù)的主體部分需要用一對()括起來。

A、{}

B、[]

C、()

D、

正確答案:A

7、以下敘述錯誤的是()。

A、一個C程序只有在編譯、連接成.exe程序之后才能執(zhí)行

B、C程序編譯后生成.obj文件

C、C程序的每一條語句都必須用分號結(jié)束

D、只有一個分號的語句不是合法的C語句

正確答案:D

8、計算機能夠直接識別和執(zhí)行的計算機語言()。

A、匯編語言

B、機器語言

C、C語言

D、高級語言

正確答案:B

9、以下敘述錯誤的是()。

A、對于計算機而言,程序是指完成某一特定任務(wù)的一組指令序列

B、一個C程序編譯成功后在連接時發(fā)現(xiàn)錯誤,需要編輯修改,然后不必重新編譯和連接即可直接運行。

C、機器語言和匯編語言都是低級語言

D、C語言是一種函數(shù)型語言,每個C語言程序都是由若干個函數(shù)組成

正確答案:B

10、對C程序的注釋說明信息必須寫在()之間。

A、和

B、和

C、/*和*/

D、{和}

正確答案:C

11、用C語言編寫的源程序,必須翻譯成用二進制指令表示的目標(biāo)程序,才能被計算機識別,這個過程稱為()。

A、編輯

B、編譯

C、匯編

D、解釋

正確答案:B

12、關(guān)于C語言的特點,以下敘述錯誤的是()。

A、C語言一共只有32個關(guān)鍵字,9種控制語句,程序書寫自由

B、C語言共有34種運算符,表達式類型多樣化

C、C語言不能直接對硬件進行操作

D、C語言程序可以方便的在不同的計算機間和各種操作系統(tǒng)中實現(xiàn)程序的移植

正確答案:C

13、C語言程序的基本構(gòu)成單位是()。

A、語句

B、表達式

C、函數(shù)

D、運算符

正確答案:C

14、能夠在編譯過程中被檢查出來,并給出提示信息的是()。

A、語法錯誤

B、邏輯錯誤

C、運行錯誤

D、注釋錯誤

正確答案:A

15、以下敘述錯誤的是()。

A、計算機語言大致可以分為三大類:機器語言、匯編語言和高級語言

B、高級語言比低級語言更貼近人類使用的語言,易于理解和使用

C、C語言是一種通用的、過程式編程語言,具有高效、靈活、可移植等優(yōu)點

D、C語言屬于匯編語言

正確答案:D

16、C語言源程序文件的后綴名是()。

A、.obj

B、.exe

C、.c

D、.vbp

正確答案:C

17、C語言編譯程序是()。

A、C程序的機器語言版本

B、一組機器語言指令

C、將C源程序編譯成目標(biāo)程序

D、廠家提供的應(yīng)用軟件

正確答案:C

18、以下敘述錯誤的是()。

A、C語言的注釋有兩種類型:單行注釋和多行注釋

B、C程序的單行注釋語句以"http://'開始

C、C語言的注釋語句不影響編譯結(jié)果

D、C語言程序中只要出現(xiàn)在"/*'和"*/'之間的就一定是注釋內(nèi)容

正確答案:D

19、C語言源程序文件經(jīng)過編譯后的目標(biāo)文件后綴名是()。

A、.exe

B、.obj

C、.c

D、.vbp

正確答案:B

20、C語言源程序編譯、連接后的可執(zhí)行文件后綴名是()。

A、.exe

B、.obj

C、.c

D、.bak

正確答案:A

第二章測試

1、下面4個選項中,均是不合法的用戶標(biāo)識符的選項的是()。

A、Datesumdo

B、charpao_123

C、b+aiffloat

D、_abcTempInt

正確答案:C

2、下面4個選項中均是合法常量的選項是()。

A、05812e33.6'd'

B、12.80x9843.56e2'\n'

C、w0340xa3'\m'

D、4.450765.33E1.5how

正確答案:B

3、以下敘述不正確的是()。

A、在C語言中,%運算符的優(yōu)先級高于/運算符

B、在C語言中,area和AREA是兩個不同的變量名

C、在C語言中,可以使用二進制整數(shù)

D、若a和b類型相同,在計算了賦值表達式a=b后,a得到b的值,而b的值不變

正確答案:C

4、在C語言中,要求運算對象必須是整型的運算符是()。

A、/

B、*

C、+

D、%

正確答案:D

5、若有說明語句:charch='\0x41';則變量ch包含()個字符。

A、1

B、2

C、3

D、說明不合法,ch的值不確定

正確答案:A

6、若有定義:inta=7;floatx=2.5,y=4.5;則表達式x+a%3*(x+y)/2的值是()。

A、2.500000

B、6.000000

C、5.500000

D、0.000000

正確答案:B

7、設(shè)變量a是整型,f是實型,i是雙精度型,則表達式10+'a'+i*f值的數(shù)據(jù)類型為()。

A、int

B、float

C、double

D、不確定

正確答案:C

8、以下敘述正確的是()。

A、在C語言中,一行只能寫一條語句

B、若a是實型變量,則在C語言中不允許用其他類型的數(shù)據(jù)對其賦值

C、在C語言中,無論是整數(shù)還是實數(shù),都能被準(zhǔn)確無誤地表示

D、在C語言中,%是只能用于整數(shù)運算的運算符

正確答案:D

9、在C語言中,int型數(shù)據(jù)在內(nèi)存中的存儲形式是()。

A、原碼

B、反碼

C、補碼

D、ASCII碼

正確答案:C

10、下列選項中可作為C語言的合法整數(shù)的是()。

A、a2

B、101011B

C、03845

D、0x4b5

正確答案:D

11、字符型數(shù)據(jù)在內(nèi)存中是以()形式存儲的。

A、ASCII碼

B、補碼

C、原碼

D、BCD碼

正確答案:A

12、下列敘述正確的是()。

A、C語言不允許混合類型數(shù)據(jù)間進行運算

B、在C語言中,'b'和b的含義是不同的

C、C語言中,任何類型的數(shù)據(jù)都可進行%運算

D、在C語言中,整型常量有二進制、八進制、十六進制和十進制4種表示形式

正確答案:B

13、#includestdio.hintmain(){charch;inti;i=65;ch=a;printf(%c,%c,%d,%d\n,i,ch,i,ch);return0;}這段程序的運行結(jié)果是()。

A、A,a,65,97

B、a,A,97,65

C、a,A,65,97

D、編譯錯誤,無法運行

正確答案:D

14、設(shè)整型變量a=2,則執(zhí)行下列語句后,實型變量b的值不是0.5的是()。

A、b=1.0/a

B、b=1/(float)a

C、b=1/(a*1.0)

D、b=(float)(1/a)

正確答案:D

15、下列敘述正確的是()。

A、不同類型的變量所占內(nèi)存單元是相同的

B、C語言中,變量可以不經(jīng)定義而直接使用

C、賦值表達式的左邊只能是變量名

D、字符串常量China!在存儲時,系統(tǒng)為其分配6個字節(jié)的空間

正確答案:C

16、#includestdio.hintmain(){inta=b=5,c;c=a+b;printf(c=%d\n,c);}這段程序的運行結(jié)果是()。

A、0

B、10

C、不確定

D、編譯錯誤,無法運行

正確答案:D

17、C語言的標(biāo)識符只能由字母、數(shù)字和下劃線三種字符組成,且第一個字符()。

A、必須是下劃線

B、可以是這三種字符中的任一種

C、必須為字母或者下劃線

D、必須是字母

正確答案:C

18、如果在一個C語言表達式中有多個運算符,則運算時應(yīng)該()。

A、只考慮優(yōu)先級

B、先考慮優(yōu)先級,然后考慮結(jié)合性

C、只考慮結(jié)合性

D、先考慮結(jié)合性,然后考慮優(yōu)先級

正確答案:B

19、已知字符A的ASCII值是65,若定義inti;則執(zhí)行語句i=A+3;后,正確的敘述是()。

A、i的值是字符A的ASCII值加上3,即68

B、語句不合法

C、語句可以執(zhí)行,但沒有計算結(jié)果

D、i的值是字符E

正確答案:A

20、在C語言中常量\n和常量'ABC'在內(nèi)存中占用的字節(jié)數(shù)分別是()。

A、13

B、14

C、23

D、24

正確答案:B

第三章測試

1、若a、b、c、d都是int類型變量且初值為0,以下選項中不正確的賦值語句是()。

A、a=b=c=d=100;

B、d=d-1;

C、a*b;

D、d=(c=30)+b;

正確答案:C

2、以下選項中不是C語句的是()。

A、{inti;printf(%d\n,i);}

B、;

C、a=5,c=10

D、{;}

正確答案:C

3、以下程序的輸出結(jié)果是()。#includestdio.hintmain(){intx=100,y=30;printf(%d\n,y=x/y);return(0);}

A、0

B、1

C、3

D、不確定的值

正確答案:C

4、若變量已正確說明為int類型,要給a、b、c輸入數(shù)據(jù),以下正確的輸入語句是()。

A、read(a,b,c);

B、get(%d%d%d,a,b,c);

C、scanf(%d%d%d,a,b,c);

D、scanf(%d%d%d,

正確答案:D

5、以下程序段的輸出結(jié)果是()#includestdio.hintmain(void){inti;floatx;doubley;y=x=i=10/4;printf(y=%.2f,x=%.2f,i=%d\n,y,x,i);return(0);}

A、y=2.00,x=2.50,i=2

B、y=2.50,x=2.50,i=2

C、y=2.50,x=2.00,i=2

D、y=2.00,x=2.00,i=2

正確答案:D

6、若變量已正確定義,要將a和b中的數(shù)進行交換,下面不正確的語句組是()。

A、a=a+b,b=a-b,a=a-b;

B、t=a,a=b,b=t;

C、a=t;t=b;b=a;

D、t=b;b=a;a=t;

正確答案:C

7、以下程序的輸出結(jié)果是()。#includestdio.hintmain(void){inta=4,b=8;printf(a=%%d,b=%%d\n,a,b);/*注意轉(zhuǎn)義字符的作用*/return(0);}

A、a=%2,b=%5

B、a=2,b=5

C、a=%%d,b=%%d

D、a=%d,b=%d

正確答案:D

8、已知字母A的ASCII值為十進制數(shù)65,下面程序的輸出是()。#includestdio.hintmain(void){charch1,ch2;ch1='A'+'5''3';ch2='A'+'6''3';printf(%d,%c\n,ch1,ch2);return(0);}

A、67,D

B、67,C

C、B,C

D、C,D

正確答案:A

9、若從終端輸入以下數(shù)據(jù),要給變量c賦以340.25,則正確的輸入語句是()。

A、scanf(%f',

C、scanf(%6.2f',

D、scanf(%4f',

正確答案:A

10、以下程序運行時輸入:25回車,執(zhí)行后輸出的結(jié)果是()。#includestdio.hintmain(void){charch1,ch2;intn1;ch1=getchar();ch2=getchar();n1=ch2-ch1;printf(%d,n1);return(0);}

A、3

B、-3

C、25

D、編譯錯誤

正確答案:A

11、有以下程序#includestdio.hintmain(void){charc1,c2,c3,c4,c5,c6;scanf(%c%c%c%c,c5=getchar();c6=getchar();putchar(c1);putchar(c2);printf(%c%c\n,c5,c6);return(0);}程序運行后,若從鍵盤輸入(從第一列開始)abc回車def回車則輸出結(jié)果是()。

A、cdef

B、abef

C、abcd

D、abde

正確答案:D

12、以下程序段的輸出結(jié)果是()。#includestdio.hintmain(void){charc1='a',c2='c';printf(%d,%c\n,c2-c1,c2-c1+'B');return(0);}

A、2,b

B、3,B

C、2,D

D、類型不一致,出錯

正確答案:C

13、若變量已正確定義為float類型,要通過語句scanf("%f%f%f',給a賦值10.0,b賦值20.0,c賦值30.0,不正確的輸入形式是()。

A、102030

B、10,20,30

C、10.020.030.0

D、10,2030

正確答案:B

14、以下程序的輸出結(jié)果是()。#includestdio.hintmain(void){inta,b;a=10;b=20;printf(a=%d\nb=%d\n,a,b);return(0);}

A、10,20

B、a=10,b=20

C、a=10b=20

D、1020

正確答案:C

15、若變量已正確說明,要求用以下語句給a賦值2.0,給c1賦值字符#,給b賦值4.0,則不正確的輸入形式是()。scanf("%f%c%f',

A、2.0#4.0

B、2.0#4.0

C、2#4

D、2.0#4.0,

正確答案:A

16、以下說法錯誤的是()。

A、賦值表達式的功能是將賦值運算符右側(cè)的值賦給其左側(cè)的變量。

B、若floatx=5;可以對變量x進行%操作,如x%2的值是1。

C、復(fù)合語句是用一對花括號括起來的若干條語句,從語法作用上講一條復(fù)合語句視為一條語句。

D、長整型(longint)變量,使用scanf函數(shù)輸入時,需使用%ld格式符。

正確答案:B

17、結(jié)構(gòu)化程序設(shè)計由三種基本結(jié)構(gòu)組成,下面哪個選項不屬于三種基本結(jié)構(gòu)()。

A、順序

B、選擇

C、循環(huán)

D、回溯

正確答案:D

18、下面程序段功能是先輸入一個整數(shù),然后將輸入的整數(shù)輸出,請指出哪部分有錯()。#includestdio.h//1intmain(void){inti;//2scanf(%d,i);//3printf(i=%d\n,i);//4return(0);}

A、1

B、2

C、3

D、4

正確答案:C

19、設(shè)inta=10,b;,執(zhí)行下列語句后,b的值不是2的是()。

A、b=a/4

B、b=a-8

C、b=a/4.0

D、b=a%4

正確答案:C

20、putchar()函數(shù)可以向終端輸出一個()。

A、整型

B、實數(shù)

C、字符串

D、字符

正確答案:D

第四章測試

1、表示關(guān)系xyz的c語言表達式為()。

A、(x=y)=z)

B、(x=y)AND(y=z)

C、(x=y=z)

D、(x=y)=z)

正確答案:A

2、若a=5;b=6;c=7;d=8;m=2;n=2;則執(zhí)行(m=ab)d)后,m和n的值分別為()。

A、2,2

B、0,2

C、0,0

D、2.0

正確答案:B

3、在以下一組運算符中,優(yōu)先級最高的運算符是()。

A、=

B、=

C、%

D、則下面if語句中,()是錯誤的。

A、if(a=b)x=x+1;

B、if(ab)x=x+1;

C、if(a-b)x=x+1;

D、if(x)x=x+1;

正確答案:B

5、下列表達式中,()不滿足"當(dāng)x的值為偶數(shù)時值為真,為奇數(shù)時值為假'的要求。

A、x%2==0

B、!x%2!=0

C、(x/2*2-x)==0

D、!(x%2)

正確答案:B

6、關(guān)于以下程序,正確的說法是()。#includestdio.hintmain(void){intx=0,y=0,z=0;if(x=y+z)printf(***);elseprintf(###);return(0);}

A、有語法錯誤,不能通過編譯

B、輸出:***

C、可以編譯,但不能通過連接,所以不能運行

D、輸出:###

正確答案:D

7、下列程序的輸出結(jié)果是()。#includestdio.hintmain(void){floatx=4,y=1;if(x0)y=0;elseif(x10)y=1/x;elsey=10;printf(%f\n,y);return(0);}

A、0.000000

B、10.000000

C、0.250000

D、1.000000

正確答案:C

8、執(zhí)行以下程序時,若輸入3和4,則輸出結(jié)果是()。#includestdio.hintmain(void){inta,b,s;scanf(%d%d,s=a;if(ab)s=b;s=s*s;printf(%d\n,s);return(0);}

A、14

B、16

C、18

D、20

正確答案:B

9、下列程序的輸出結(jié)果是()。#includestdio.hintmain(void){intx=1,a=0,b=0;switch(x){case0:b=b+1;case1:a=a+1;case2:a=a+1;b=b+1;}printf(a=%d,b=%d\n,a,b);return(0);}

A、a=2,b=1

B、a=1,b=1

C、a=1,b=0

D、a=2,b=2

正確答案:A

10、若有定義:inta=3,b=2,c=1;并有表達式:①a%b、②abc、③bb)if(cd)x=1;elseif(ac)if(bd)x=2;elsex=3;elsex=6;elsex=7;

A、1

B、2

C、3

D、4

正確答案:B

12、在下面的條件語句中(其中S1和S2表示C語言語句),只有一個在功能上與其他3個語句不等價()。

A、if(a)S1;elseS2;

B、if(a==0)S2;elseS1;

C、if(a!=0)S1;elseS2;

D、if(a==0)S1;elseS2;

正確答案:D

13、若有inta=3,b;則執(zhí)行下面程序段后b的值是()if(a0)b=1;elseb=-1;b=b+1;

A、1

B、2

C、-1

D、0

正確答案:B

14、假定所有變量均已正確定義,下面程序段執(zhí)行后的x的值是()。a=b=0;x=35;if(!a)x=x-1;if(b)x=3;elsex=4;

A、34

B、4

C、35

D、3

正確答案:B

15、若有說明語句inti=4,j=5,k=6;floatf;則執(zhí)行f=(ik)?i:(jk)?j:k;語句后,f的值為()。

A、4.0

B、5.0

C、6.0

D、7.0

正確答案:B

16、下述程序的輸出結(jié)果是()#includestdio.hintmain(void){inta=0,b=0,c=0;if((a+1)0||(b0))c=c+1;printf(%d,%d,%d,a,b,c);return(0);}

A、0,0,0

B、1,1,1

C、1,0,1

D、0,0,1

正確答案:D

17、若x=0,則執(zhí)行下面程序段后,屏幕上會顯示()。if(x=0)printf(***);elseprintf();

A、******

B、,執(zhí)行下面程序段后a、b、c的值分別是()。if(ab)c=a;a=b;b=c;

A、10、20、30

B、20、10、10

C、20、30、30

D、20、10、30

正確答案:C

19、下列程序的輸出結(jié)果是()。#includestdio.hintmain(void){intk=8;switch(k){case7:k+=1;case8:k+=1;case9:k+=1;break;default:k+=1;}printf(%d\n,k);return(0);}

A、8

B、9

C、10

D、11

正確答案:C

20、若有floatx;inta,b;,下面四條switch語句中正確的有()條。switch(x){casex=1.0:printf("Y');casex=2.0:printf("N');}switch(a){casea=1:printf("Y');casea=2:printf("N');}switch(b){caseb==1:printf("Y');caseb==2:printf("N');}switch(x){case1.0:printf("Y');case2.0:printf("N');}

A、1

B、2

C、3

D、4

正確答案:A

第五章測試

1、以下程序段中while循環(huán)執(zhí)行的次數(shù)是()。intk=0;while(k=1)k++;

A、無限次

B、有語法錯不能執(zhí)行

C、一次也不執(zhí)行

D、執(zhí)行一次

正確答案:A

2、以下描述中正確的是()。

A、由于do-while循環(huán)中循環(huán)體語句只能是一條可執(zhí)行語句,所以循環(huán)體內(nèi)不能使用復(fù)合語句

B、do-while循環(huán)中由do開始,用while結(jié)束,在while(表達式)后面不能寫分號

C、在do-while循環(huán)中,循環(huán)體至少執(zhí)行一次

D、do-while循環(huán)中,根據(jù)情況可以省略while

正確答案:C

3、在C語言中有關(guān)for循環(huán),以下正確的說法是()。

A、for循環(huán)只能用于循環(huán)次數(shù)已經(jīng)確定的情況

B、for循環(huán)是先執(zhí)行循環(huán)體語句,后判斷表達式

C、在for循環(huán)不能break跳出循環(huán)體

D、for循環(huán)的循環(huán)體語句中,可以包含多條語句,但必須用大括號括起來

正確答案:D

4、以下下面程序的運行結(jié)果是()。#includestdio.hintmain(){inta=1,b=2,c=2,t;while(abc){t=a;a=b;b=t;c--;}printf("%d,%d,%d',a,b,c);}

A、1,2,0

B、2,1,0

C、1,2,1

D、2,1,1

正確答案:A

5、若i,j已定義為int類型,則以下程序段中內(nèi)循環(huán)體的總的執(zhí)行次數(shù)是()。for(i=5;i;i--)for(j=0;j4;j++){...}

A、20

B、25

C、24

D、30

正確答案:A

6、下面程序的輸出結(jié)果是()。#includestdio.hintmain(){inti,j;for(i=0,j=10;ij;i+=2,j--);printf(%d%d,i,j);}

A、48

B、67

C、86

D、105

正確答案:C

7、下面關(guān)于switch語句和break語句的結(jié)論中,說法正確的是()。

A、break語句是switch語句的一部分

B、在switch語句中,可以根據(jù)需要使用或者不使用break語句

C、在switch語句中,必須使用break語句

D、break語句是for語句的一部分

正確答案:B

8、以下不是死循環(huán)的語句是()。

A、for(;;x+=i)

B、while(1){x++;}

C、for(i=10;;i--)sum+=i;

D、for(;(c=getchar())!=\n;)printf("%c',c);

正確答案:D

9、與語句頭while(!x)等價的語句頭是()。

A、while(x==0)

B、while(x!=0)

C、while(x!=1)

D、while(~x)

正確答案:A

10、在while(x)語句中的x與下列條件表達式等價的是()。

A、x==0

B、x!=0

C、x!=1

D、x=1

正確答案:B

11、下面程序的功能是:在輸入的一批正數(shù)中求最大者,輸入0結(jié)束循環(huán),選擇()填空。#includestdio.hintmain(){inta,max=0;scanf(%d,while(){if(maxa)max=a;scanf(%d,}printf(%d,max);}

A、a==0

B、a

C、!a==1

D、!a

正確答案:B

12、下面程序的功能是從鍵盤輸入一行字符,從中統(tǒng)計大寫字母和小寫字母的個數(shù),選擇()填空。#includestdio.hintmain(){intm=0,n=0;charc;while(()!='\n'){if(c='A'='Z')m++;if(c='a'='z')n++;}printf(m=%d,n=%d\n,m,n);}

A、c=getchar()

B、getchar()

C、c==getchar()

D、scanf(%c,stdio.hintmain(){intk=0,m=0,i,j;for(i=0;i2;i++){for(j=0;j3;j++)k++;k-=j;}m=i+j;printf(k=%d,m=%d,k,m);}

A、k=0,m=3

B、k=0,m=5

C、k=1,m=3

D、k=1,m=5

正確答案:B

14、下面程序的輸出結(jié)果是()。#includestdio.hintmain(){charc='A';intk=0;do{switch(c++){case'A':k++;break;case'B':k--;case'C':k+=2;break;case'D':k%=2;continue;case'E':k*=10;break;default:k/=3;}k++;}while(c'G');printf(k=%d,k);}

A、k=3

B、k=4

C、k=2

D、k=0

正確答案:B

15、下面程序的運行結(jié)果是()。#includestdio.hintmain(){inti;for(i=1;i=5;i++){if(i%2)printf("*');elsecontinue;printf("#');}printf("$\n');}

A、*#*#*$

B、***$

C、*#*#*#$

D、*#*#$

正確答案:C

16、下面程序段的運行結(jié)果是()。intx=3;do{printf(%d\n,x-=2);}while(!(--x));

A、輸出的是1

B、輸出的是1和-2

C、輸出的是3和0

D、是死循環(huán)

正確答案:B

17、下面程序段的運行結(jié)果是()。x=y=0;while(x15)y++,x+=++y;printf(%d,%d,y,x);

A、20,7

B、6,12

C、20,8

D、8,20

正確答案:C

18、下面程序的功能是將從鍵盤輸入的一對數(shù),由小到大排序輸出。當(dāng)輸入一對相等數(shù)時結(jié)束循環(huán),請選擇()填空:#indudeStdio.hintmain(){inta,b,t;scanf(%d%d,while(【1】){if(ab){t=a;a=b;b=t;}printf(%d,%d,a,b);scahf(%d%d,人}

A、!a=b

B、a!=b

C、a==b

D、a=b

正確答案:B

19、對for(表達式1;;表達式3)可理解為()。

A、for(表達式1;0;表達式3)

B、for(表達式1;1;表達式3)

C、for(表達式1;表達式1;表達式3)

D、for(表達式1;表達式3;表達式3)

正確答案:B

20、若i為整型變量,則以下循環(huán)執(zhí)行次數(shù)是()。for(i=2;i==0;)printf(%d,i--);

A、無限次

B、0次

C、1次

D、2次

正確答案:B

第六章測試

1、在C語言中,引用數(shù)組元素時,其數(shù)組下標(biāo)的數(shù)據(jù)類型允許是()。

A、整型常量

B、整型表達式

C、整型常量或整型表達式

D、任何類型的表達式

正確答案:C

2、以下程序的輸出結(jié)果是()。intmain(){inta[5]={1,2,3};printf("%d\n',a[3]);}

A、0

B、1

C、3

D、隨機值

正確答案:A

3、以下程序的輸出結(jié)果是()。intmain(){inti,k,a[10]={1,5,3,4,2,8,9,6,7,0};for(i=0,k=0;i10;i++)if(a[k]a)k=i;printf(%d,k);}

A、5

B、6

C、7

D、8

正確答案:B

4、以下程序的輸出結(jié)果()。intmain(){inti,j,s=0,a[2][3]={1,2,3,4,5,6};for(i=0;i2;i++)for(j=0;j3;j++)s=s+a[j];printf("%d',s);}

A、10

B、15

C、20

D、21

正確答案:D

5、有以下程序運行后的輸出結(jié)果是()。intmain(){intaa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};inti,s=0;for(i=0;i4;i++)s+=aa[1];printf("%d',s);}

A、11

B、19

C、13

D、20

正確答案:B

6、數(shù)組定義為inta[3][2]={1,3,4,6,8,10},數(shù)組元素()的值為6。

A、a[3][2]

B、a[1][1]

C、a[2][1]

D、a[2][2]

正確答案:B

7、定義inta[10][11],則數(shù)組a有()個元素。

A、11

B、90

C、110

D、132

正確答案:C

8、以下不能對二維數(shù)組a進行正確初始化的語句是()。

A、inta[2][3]={0};

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

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

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

正確答案:C

9、若有定義語句:inta[3][5];,按在內(nèi)存中的存放順序,a數(shù)組的第8個元素是()。

A、a[0][4]

B、a[1][2]

C、a[0][3]

D、a[1][4]

正確答案:B

10、若有定義inta[10];則對a數(shù)組元素的正確應(yīng)用是()。

A、a[10.0]

B、a[1+2]

C、a(10)

D、a[10]

正確答案:B

11、以下能對一維數(shù)組a進行正確初始化的語句是()。

A、inta[10]=(0,0,0,0,0)

B、inta[10]={}

C、inta[]={0};

D、inta[10]=10*1;

正確答案:C

12、以下對二維數(shù)組a的正確說明是()。

A、inta[3][];

B、floatfa(3,4);

C、doublea[1][4];

D、floata(3)(4);

正確答案:C

13、若有說明:inta[3][4]={0};則下面正確的敘述是()。

A、只有元素a[0][0]可得到初值0

B、此說明語句不正確。

C、數(shù)組a中各元素都可得到初值,但其值不一定為0。

D、數(shù)組a中每個元素均可得到初值0

正確答案:D

14、若有定義:ints[3][4]={{1,2},{0},{3,4,5}};則s[2][1]的值為()。

A、3

B、4

C、0

D、1

正確答案:B

15、若有定義inta[2][3];則合法引用數(shù)組元素的是()。

A、a[0][1/2]

B、a[1][2]

C、a[2][3]

D、a[1][3]

正確答案:B

16、在以下數(shù)組定義中,錯誤的是()。

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

B、inta[][2]={{0},{1}};

C、inta[2][2]={{1,2},{3}}

D、inta[][2]={1,2,3,4};

正確答案:A

17、以下程序段執(zhí)行后p的值是()。inta[3][3]={3,2,1,3,2,1,3,2,1};intj,k,p=1;for(j=0;j2;j++)for(k=j;k3;k++)p*=a[j][k];

A、108

B、18

C、12

D、2

正確答案:C

18、以下程序段執(zhí)行后p的值是()。inta[3][3]={3,2,1,3,2,1,3,2,1};intj,k,p=1;for(j=0;j2;j++)for(k=j;k4;k++)p*=a[j][k];

A、108

B、18

C、12

D、2

正確答案:A

19、以下程序段運行后s的值是()。inta[3][3]={1,2,3,4,5,1,2,3,4};inti,j,s=1;for(i=0;i3;i++)for(j=i+1;j3;j++)s+=a[j];

A、6

B、120

C、7

D、240

正確答案:C

20、下面程序段的運行結(jié)果是()。intm[]={5,8,7,6,9,2},i=1;for(i=0;i6;i++){if(i%2!=0)m+=10;}for(i=0;i6;i++)printf(%d,m);

A、518716912

B、151817161912

C、158176192

D、587692

正確答案:A

第七章測試

1、變量的指針,其含義是指變量的()。

A、值

B、名稱

C、地址

D、另一個名稱

正確答案:C

2、以下敘述錯誤的是()。

A、指針變量可以與整數(shù)進行加、減算術(shù)運算

B、指針變量中存放的是地址值

C、指針變量不占用存儲空間

D、多個同類型的指針變量可以指向同一個普通變量。

正確答案:C

3、已知指針變量P的指向如圖1所示,則表達式*P++的值是()。

A、20

B、30

C、21

D、31

正確答案:A

4、已知指針變量P的指向如圖1所示,則表達式*++P的值是()。

A、20

B、30

C、21

D、31

正確答案:B

5、已知指針變量P的指向如圖1所示,則表達式++(*P)的值()。

A、20

B、30

C、21

D、31

正確答案:C

6、假設(shè)整型變量a的值為12,變量a的地址為2000,若欲使p為指向a的指針變量,則以下賦值正確的是()。

A、

B、*p=12;

C、*p=2000

D、p=

正確答案:D

7、若有定義:intb,*pb;則下面正確的賦值表達式是()。

A、pb=,則下面()不是對a[3]的正確引用。

A、*(a+3)

B、p+3

C、p[3]

D、*(p+3)

正確答案:B

9、若有如下定義:inta[10]={10,20,30,40,50,60,70,80,90,100},*p=a;,則執(zhí)行p=p+5后,*p的值是()。

A、10

B、50

C、60

D、100

正確答案:C

10、若int*p,i;執(zhí)行i=100;p=i=*p+10;后,*p的值是()。

A、100

B、10

C、0

D、110

正確答案:D

11、以下程序的輸出結(jié)果是()。#includestdio.hintmain(){inta[]={2,4,6,8,10},y=0,i,*p;p=a;for(i=0;i3;i++)y+=*(p+i);printf(%d\n,y);}

A、17

B、12

C、19

D、20

正確答案:B

12、以下程序的輸出結(jié)果是()。#includestdio.hintmain(){inta=1,b=2,c=3,*p1,*p2,*p3;p1=p2=p3=*p3=*p1;*p1=*p2;*p2=*p3;printf(a=%d,b=%d,c=%d\n,a,b,c);}

A、a=1,b=2,c=3

B、a=2,b=1,c=3

C、a=2,b=1,c=1

D、a=3,b=2,c=1

正確答案:B

13、以下程序的輸出結(jié)果是()。#includestdio.hintmain(){intk=2,m=4,n=6;int*pk=*(p=printf(%d\n,n);return0;}

A、4

B、6

C、8

D、10

正確答案:C

14、以下程序的輸出結(jié)果是()。#includestdio.hintmain(){int**k,*a,b=100;a=k=printf(%d\n,**k);return0;}

A、編譯出錯

B、100

C、a的地址

D、b的地址

正確答案:B

15、對于基類型相同的兩個指針變量之間,不能進行的運算時()。

A、

B、=

C、+

D、

正確答案:C

16、若有inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};int(*p)[3]=a;,則能正確表示數(shù)組元素a[1][2]的是()。

A、*(*(p+1)+2)

B、*(p+1)+2

C、(p+1)[2]

D、p[1]+2

正確答案:A

17、對于語句int*p[5];的正確描述是()。

A、p是一個指向數(shù)組的指針,所指向的數(shù)組含有5個int型元素。

B、p是一個指向數(shù)組中第5個元素的指針,該元素是int型。

C、定義不合法

D、p是一個具有5個元素的指針數(shù)組,每個元素都是一個指向int型對象的指針變量。

正確答案:D

18、若有inta[10],*p=a;,下列不能表示a數(shù)組首元素地址的是()。

A、a

B、*p

C、p

D、stdio.hintmain(){inta[5]={1,2,3,4,5},*p,**pp;p=a;pp=printf(%d,*(p+3));printf(%d,**pp);return0;}

A、41

B、31

C、44

D、34

正確答案:A

20、若有inta[10],*p;,則下列語句中正確的是()。

A、for(p=a;ap+10;a++)

B、for(p=a;pa+10;p++)

C、for(p=a;pp+10;p++)

D、for(p=a;pa+10;a++)

正確答案:B

第八章測試

1、函數(shù)strcmp(ABCDDCBA,ABCDE)的返回值是()。

A、0

B、正數(shù)

C、負數(shù)

D、隨機值

正確答案:C

2、以下程序運行后的輸出結(jié)果是()。intmain(){inti,j;chara[]={a,b,c,d,e,f,g,h,\0};i=sizeof(a);//sizeof返回數(shù)組a在內(nèi)存分配字節(jié)數(shù)j=strlen(a);printf("%d,%d\n',i,j);}

A、9,9

B、8,9

C、1,8

D、9,8

正確答案:D

3、下列選項中,不正確的賦值方式是()。

A、charstr[]={'s','t','r','i','n','g','\0'};

B、charstr[7]={'s','t','r','i','n','g'};

C、charstr1[10];str1=string;

D、charstr1[]=string,str2[]=12345678;

正確答案:C

4、若有以下的說明和語句,則它與()中的說明是等價的。chars[3][5]={aaaa,bbbb,cccc};

A、chars1[][]={aaaa,bbbb,cccc};

B、chars2[3][]={aaaa,bbbb,cccc};

C、chars3[][5]={aaaa,bbbb,cccc};

D、chars4[][4]={aaaa,bbbb,cccc};

正確答案:C

5、有以下程序:#includestdio.h#includestring.hintmain(){inti,j;chart[10],p[5][10]={abc,aabdfg,abbd,dcdbe,cd};for(i=0;i4;i++)for(j=i+1;j5;j++)if(strcmp(p,p[j])0){strcpy(t,p);strcpy(p,p[j]);strcpy(p[j],t);}printf(%d\n,strlen(p[0]));}程序運行后的輸出結(jié)果是()。

A、6

B、4

C、5

D、3

正確答案:A

6、下列選項正確的語句組是()。

A、chars[8];s={China};

B、char*s;s={China};

C、chars[8];s=China;

D、char*s;s=China;

正確答案:D

7、下面程序的運行結(jié)果是()。charc[6]={'a','b','\0','c','d','\0'};printf(%s,c);

A、'a''b'

B、ab

C、abc

D、abcd

正確答案:B

8、有兩個字符數(shù)組a、b,則以下正確的輸入語句是()。

A、gets(a,b);

B、scanf(%s%s,a,b);

C、scanf(%s%s,

D、gets(a);gets(b);

正確答案:B

9、下面程序段的運行結(jié)果是()。chara[7]=abcdef;charb[4]=ABC;strcpy(a,b);printf(%c,a[5]);

A、空格

B、c

C、e

D、f

正確答案:D

10、下面程序段的輸出結(jié)果是()。#includestdio.hintmain(){charstr[]=Ilikeswimming!,*p=str;p=p+7;printf(%s,p);}

A、程序有錯誤

B、Ilikeswimming!

C、swimming!

D、likeswimming!

正確答案:C

11、下面哪個選項不能將hello字符串存入字符數(shù)組str中()。

A、charstr[]=hello;

B、charstr[30];strcpy(str,hello);

C、charstr[30];str=hello;

D、charstr[30],*ps=str;strcpy(ps,hello);

正確答案:C

12、有以下定義,不能表示字符'C'的表達式是()。charstr[]=ABCDEFG,*p=str;

A、*(p+2)

B、str[2]

C、*(str+2)

D、*p+2

正確答案:D

13、程序段charc[]=abcdefg;printf(%s,c+4);的運行結(jié)果是()。

A、abcd

B、efg

C、abcdefg

D、defg

正確答案:B

14、有如下定義,不能給數(shù)組a輸入字符串的是()。chara[20],*p=a;

A、gets(p)

B、gets(a[0])

C、gets(well;chart[]={'w','e','l','l'};,則數(shù)組s與數(shù)組t中內(nèi)容相同。

B、當(dāng)兩個字符串所包含的字符個數(shù)相同時,才能比較兩個字符串的大小。

C、函數(shù)strcpy(str1,str2);的功能是將str2中字符串復(fù)制到str1中。

D、定義chara[30],b[]=China;后,可執(zhí)行a=b;將數(shù)組b中的字符串賦值給數(shù)組a。

正確答案:C

16、接受用戶輸入含有空格的字符串時,應(yīng)使用()。

A、getchar()

B、gets()

C、scanf()

D、printf()

正確答案:B

17、列描述中錯誤的是()。

A、可以對字符數(shù)組進行整體輸入、輸出。

B、字符串可以存儲在字符數(shù)組中。

C、不能對字符數(shù)組存儲的字符串進行更改。

D、不能使用賦值運算符"=',直接對字符數(shù)組名進行賦值。

正確答案:C

18、執(zhí)行以下程序段后,輸出結(jié)果是()。charstr[20]=door,t;inti,j;i=0;j=strlen(str)-1;t=str;str=str[j];str[j]=t;puts(str);

A、door

B、dood

C、rood

D、roor

正確答案:C

19、若有如下定義chara[30],b[30],則以下正確的輸入語句是()

A、gets(a,b);

B、gets(a);gets(b);

C、scanf(%s,a,b);

D、scanf(%s%s

正確答案:B

20、執(zhí)行以下程序段后,輸出結(jié)果是()。chars[20]=Good,t[]=Moring!;strcat(s,t);puts(s);

A、GoodMoring!

B、Moring!

C、Good

D、Moring!Good

正確答案:A

第九章測試

1、在c語言中以下不正確的說法是()。

A、實參可以是常量、變量、或表達式

B、形參可以是常量、變量或表達式

C、實參可以為任意類型

D、形參應(yīng)與其對應(yīng)的實參類型一致

正確答案:B

2、以下程序有語法性錯誤,有關(guān)錯誤原因的正確說法是()。#includestdio.hintmain(void){intG=5,k;voidprt_char();k=prt_char(G);return0;}

A、語句voidprt_char();有錯,它是函數(shù)調(diào)用語句不能用void說明

B、變量名不能使用大寫字母

C、函數(shù)說明和函數(shù)調(diào)用語句之間有矛盾

D、函數(shù)名不能使用下劃線

正確答案:C

3、下述函數(shù)定義形式正確的是()。

A、intf(intx;inty)

B、intf(intx,inty)

C、intf(intx,y)

D、intf(x,y:int)

正確答案:B

4、以下所列的各函數(shù)首部中,正確的是()。

A、voidplay(inta,b)

B、voidplay(var:Integer,varb:Integer)

C、voidplay(inta,intb)

D、Subplay(aasinteger,basinteger)

正確答案:C

5、若已定義的函數(shù)有返回值,則以下關(guān)于該函數(shù)調(diào)用的敘述中錯誤的是()。

A、函數(shù)調(diào)用可以作為獨立的語句存在

B、函數(shù)調(diào)用可以作為一個函數(shù)的實參

C、函數(shù)調(diào)用可以出現(xiàn)在表達式中

D、函數(shù)調(diào)用可以作為一個函數(shù)的形參

正確答案:D

6、在調(diào)用函數(shù)時,如果實參是簡單變量,它與對應(yīng)形參之間的數(shù)據(jù)傳遞方式是()。

A、地址傳遞

B、單向值傳遞

C、由實參傳給形參,再由形參傳回實參

D、傳遞方式由用戶指定

正確答案:B

7、有以下程序:#includestdio.hvoidfun(inta,intb,intc){a=11;b=22;c=33;}intmain(void){intx=10,y=20,z=30;fun(x,y,z);printf("%d,%d,%d\n',x,y,z);return0;}該程序輸出結(jié)果是()。

A、30,20,10

B、10,20,30

C、11,22,33

D、33,22,11

正確答案:B

8、關(guān)于函數(shù)參數(shù),說法正確的是()。

A、實參與其對應(yīng)的形參各自占用獨立的內(nèi)存單元

B、實參與其對應(yīng)的形參共同占用一個內(nèi)存單元

C、只有當(dāng)實參和形參同名時才占用同一個內(nèi)存單元

D、形參是虛擬的,不占用內(nèi)存單元

正確答案:A

9、一個函數(shù)的返回值由()確定。

A、return語句中的表達式

B、調(diào)用函數(shù)的類型

C、系統(tǒng)默認的類型

D、被調(diào)用函數(shù)的類型

正確答案:D

10、下列程序的輸出結(jié)果是()。fun(inta,intb,intc){c=a+b;}intmain(void){intc;fun(2,3,c);printf("%d\n',c);return0;}

A、2

B、3

C、5

D、不定

正確答案:D

11、有以下程序:#includestdio.hintfun(intx){printf("x=%d\n',++x);}intmain(){fun(12+5);return0;}程序的輸出結(jié)果是()。

A、x=12

B、x=13

C、x=17

D、x=18

正確答案:D

12、有如下程序:#includestdio.hinti=1;intmain(){inti=i;printf(%d\n,i);return0;}程序的輸出結(jié)果是()。

A、1

B、0

C、i

D、不確定

正確答案:D

13、有如下程序:#includestdio.hintf(intx){returnx+3;}intmain(void){inta=1;while(f(a)10)a++;return0;}程序執(zhí)行后,變量a的值是()。

A、7

B、10

C、11

D、9

正確答案:A

14、以下說法中正確的是()。

A、形參是全局變量,其作用范圍僅限于函數(shù)內(nèi)部

B、形參是全局變量,其作用范圍從定義之處到文件結(jié)束

C、形參是局部變量,其作用范圍僅限于函數(shù)內(nèi)部

D、形參是局部變量,其作用范圍從定義之處到文件結(jié)束

正確答案:C

15、定義為void類型的函數(shù),其含義是()。

A、調(diào)用函數(shù)后,被調(diào)用的函數(shù)沒有返回值

B、調(diào)用函數(shù)后,被調(diào)用的函數(shù)不返回

C、調(diào)用函數(shù)后,被調(diào)用的函數(shù)的返回值為任意類型

D、其余選項都不對

正確答案:A

16、當(dāng)全局變量和函數(shù)內(nèi)部的局部變量同名時,在函數(shù)內(nèi)部()。

A、全局變量有效

B、局部變量有效

C、全局變量和局部變量都有效

D、全局變量和局部變量都無效

正確答案:B

17、有如下程序:#includestdio.hfun(inta){autointb=0;staticintc=3;b=b+1;c=c+1;return(a+b+c);}intmain(void){inta=2,i;for(i=0;i3;i++)printf("%d",fun(a));return0;}它的輸出結(jié)果是()。

A、789

B、777

C、999

D、8910

正確答案:A

18、有如下程序:#includestdio.hvoidfun(intx,inty){intt;if(xy){t=x;x=y;y=t;}}intmain(void){inta=4,b=7,c=5;fun(a,b);fun(a,c);fun(b,c);printf("%d,%d,%d\n',a,b,c);return0;}它的輸出結(jié)果是()。

A、4,5,7

B、4,7,5

C、7,5,4

D、7,4,5

正確答案:B

19、有如下程序:#includestdio.hf(inta){intb=0;staticintc=3;a=c++;b++;return(a);}intmain(void){inta=2,i,k;for(i=0;i2;i++)k=f(a++);printf("%d\n',k);return0;}該程序的輸出結(jié)果是()。

A、6

B、3

C、4

D、5

正確答案:C

20、凡是未指明存儲類別的局部變量,其隱含的存儲類別是()。

A、register

B、auto

C、static

D、extern

正確答案:B

第十章測試

1、若有數(shù)組名作為函數(shù)調(diào)用的實參,傳遞給形參的是()。

A、數(shù)組的首地址

B、數(shù)組第一個元素的值

C、數(shù)組中全部元素的值

D、數(shù)組元素的個數(shù)

正確答案:A

2、若使用一維數(shù)組名作為函數(shù)實參,則以下描述中正確的是()。

A、必須在調(diào)用函數(shù)中說明此數(shù)組的大小

B、實參數(shù)組類型與形參數(shù)組類型可以不匹配

C、在被調(diào)用函數(shù)中,不需要考慮形參數(shù)組的大小

D、實參數(shù)組名與形參數(shù)組名必須一致

正確答案:C

3、以下敘述正確的是()

A、C語言中各函數(shù)(除主函數(shù)外)之間既允許直接遞歸調(diào)用也允許間接遞歸調(diào)用

B、C語言中各函數(shù)(除主函數(shù)外)之間既不允許直接遞歸調(diào)用也不允許間接遞歸調(diào)用

C、C語言中各函數(shù)(除主函數(shù)外)之間允許直接遞歸調(diào)用不允許間接遞歸調(diào)用

D、C語言中各函數(shù)(除主函數(shù)外)之間不允許直接遞歸調(diào)用允許間接遞歸調(diào)用

正確答案:A

4、下列程序的輸出結(jié)果是()。#includestdio.hvoidsub(intx,inty,int*z){*z=y-x;}intmain(){inta,b,c;sub(10,5,sub(7,a,sub(a,b,printf(%d,%d,%d\n,a,b,c);return0;}

A、5,2,3

B、-5,-12,-7

C、-5,-12,7

D、5,-2,-7

正確答案:B

5、下列程序的輸出結(jié)果是()。#includestdio.hvoidprtv(int*x){printf(%d\n,++*x);}intmain(){inta=25;prtv(return0;}

A、23

B、24

C、25

D、26

正確答案:D

6、下列程序的輸出結(jié)果是()。#includestdio.hvoidfun(int*a,int*b){intw;*a=*a+*a;w=*a;*a=*b;*b=w;}intmain(){intx=2,y=3,*px=;fun(px,py);printf(%d,%d\n,x,y);return0;}

A、4,3

B、2,3

C、3,4

D、3,2

正確答案:C

7、以下程序運行時,若輸入5103,則輸出結(jié)果是()。#includestdio.hvoidswap(int*p1,int*p2){intt;t=*p1;*p1=*p2;*p2=t;return;}intmain(){inta,b,c;scanf(%d%d%d,if(ab)swap(if(ac)swap(if(bc)swap(printf(%d,%d,%d\n,a,b,c);return0;}

A、5,10,3

B、10,5,3

C、3,5,10

D、3,10,5

正確答案:C

8、以下程序運行時,若輸入5,則輸出結(jié)果是()。#includestdio.hintfac(intn){staticintk=1;k=k*n;returnk;}intmain(){intm,i,f;scanf(%d,for(i=1;i=m;i++){f=fac(i);printf(%d,f);}}

A、12345

B、12624120

C、5

D、120

正確答案:B

9、下列程序的輸出結(jié)果是()。#includestdio.hintfun(inta){intb;if(a==0||a==1)return3;b=a*a-fun(a-2);returnb;}intmain(){intx,y;x=fun(3);y=fun(4);printf(%d,%d\n,x,y);return0;}

A、3,4

B、9,16

C、6,16

D、6,15

正確答案:D

10、下列程序的輸出結(jié)果是()。#includestdio.hintfun(int(*p)[3]){inti,j,n;n=p[0][0];for(i=0;i2;i++)for(j=0;j3;j++)if(p[j]n)n=p[j];returnn;}intmain(){inta[2][3]={11,32,13,44,5,6},m;m=fun(a);printf(%d\n,m);return0;}

A、11

B、44

C、6

D、32

正確答案:B

11、下列程序的運行結(jié)果是()。#includestdio.hvoidfun(intx,inty,int*cp,int*dp){*cp=x+y;*dp=x-y;}intmain(){inta,b,c,d;a=4;b=3;fun(a,b,printf(%d,%d\n,c,d);return0;}

A、4,3

B、3,4

C、7,1

D、1,7

正確答案:C

12、下列程序的運行結(jié)果是()。#includestdio.hvoidop(int(*p)[3]){inti,j;for(i=0;i3;i++)for(j=0;j3;j++)if(p[j]%3==0)printf(%d,p[j]);}intmain(){ints[3][3]={1,2,3,4,5,6,7,8,9};op(s);return0;}

A、369

B、123

C、147

D、789

正確答案:A

13、以下程序運行時,若輸入5,則程序的輸出結(jié)果是()。#includestdio.hintfun(intn){if(n==1)return1;elsereturnn+fun(n-1);}intmain(){intm;scanf(%d,m=fun(m);printf(%d\n,m);}

A、6

B、5

C、9

D、15

正確答案:D

14、以下程序運行時,若輸入ab012kd99pk8,則程序的輸出結(jié)果是()。#includestdio.hvoidfun(chars[]){inti,j;for(i=0,j=0;s!='\0';i++)if(s='0'='9')s[j++]=s;s[j]='\0';}intmain(){charstr[80];gets(str);fun(str);puts(str);return0;}

A、012

B、012998

C、99

D、8

正確答案:B

15、若有以下程序:#includestdio.hvoidf(int*q,intn){inti;for(i=0;in;i++)(*q)++;return;}intmain(void){inta[5]={1,2,3,4,5},i;f(a,5);for(i=0;i5;i++)printf(%d,,a);return0;}則程序的輸出結(jié)果是()。

A、2,3,4,5,6,

B、2,2,3,4,5,

C、6,2,3,4,5,

D、1,2,3,4,5,

正確答案:C

16、形參數(shù)組與實參數(shù)組,在內(nèi)存空間中是()的。

A、相互獨立

B、完全重疊

C、部分重疊

D、隨機存儲

正確答案:B

17、若有以下程序:#includestdio.hint*fun(int*s,int*t){if(*s*t)s=t;returns;}intmain(void){inta=3,b=6,*p=r=fun(p,q);printf(%d,%d,%d\n,*p,*q,*r);return0;}則程序的輸出結(jié)果是()。

A、3,3,6

B、3,6,6

C、6,3,3

D、6,6,3

正確答案:B

18、若有以下程序:#includestdio.hintfun(intx){if(x10){printf(%d-,x%10);fun(x/10);}elseprintf(%d,x);return;}intmain(void){intz=123456;fun(z);return0;}則程序的輸出結(jié)果是()。

A、1-2-3-4-5-6-

B、1-2-3-4-5-6

C、6-5-4-3-2-1-

D、6-5-4-3-2-1

正確答案:D

第十一章測試

1、以下敘述不正確的是()。

A、預(yù)處理命令行必須以#號開始

B、C程序在執(zhí)行過程中對預(yù)處理命令行進行處理

C、在程序中凡是以#號開始的語句都是預(yù)處理命令行

D、以下宏定義是正確的:#defineIBM_PC

正確答案:B

2、在宏定義#definePI3.1415926中,用宏名PI代替一個()。

A、常量

B、單精度數(shù)

C、雙精度數(shù)

D、字符串

正確答案:D

3、以下敘述正確的是()。

A、在程序的一行上可以出現(xiàn)多個有效的預(yù)處理命令行

B、使用帶參數(shù)的宏時,參數(shù)的類型應(yīng)與宏定義時一致

C、宏替換不占用運行時間,只占編譯時間

D、宏名必須用大寫字母表示

正確答案:C

4、以下在任何情況下計算平方數(shù)時,都不會引起二義性的宏定義是()。

A、#definePOWER(x)x*x

B、#definePOWER(x)(x)*(x)

C、#definePOWER(x)(x*x)

D、#definePOWER(x)((x)*(x))

正確答案:D

5、在"文件包含'預(yù)處理語句的使用形式中,當(dāng)#include后面的文件名用''(雙引號)括起時,尋找被包含文件的方式是()。

A、直接按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索目錄

B、現(xiàn)在源程序所在目錄搜索,再按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索

C、僅僅搜索源程序所在目錄

D、僅僅搜索當(dāng)前目錄

正確答案:B

6、有以下程序:#defineADD(x)x+x#includestdio.hintmain(void){intm=1,n=2,k=3;intsum=ADD(m+n)*k;printf(sum=%d,sum);return0;}該程序的運行結(jié)果是()。

A、sum=9

B、sum=10

C、sum=12

D、sum=18

正確答案:B

7、若有如下宏定義:#define錯誤5#defineY錯誤+1#defineZY*錯誤/2則執(zhí)行以下printf語句后,輸出結(jié)果是()。inta;a=Y;printf(%d,Z);printf(%d,--a);

A、76

B、126

C、125

D、75

正確答案:D

8、以下程序的運行結(jié)果是()。#defineMA錯誤(A,B)(A)(B)?(A):(B)#definePRINT(Y)printf("Y=%d',Y)#include"stdio.h'intmain(void){inta=1,b=2,c=3,d=4,t;t=MA錯誤(a+b,c+d)PRINT(t);return0;}

A、Y=3

B、Y=7

C、Y=0

D、存在語法錯誤

正確答案:B

9、以下程序的輸出結(jié)果是()。#includestdio.h#defineMUL(x,y)(x)*y#include"stdio.h'intmain(void){inta=3,b=4,c;c=MUL(a++,b++);printf(%d,c);return0;}

A、12

B、15

C、20

D、16

正確答案:A

10、用宏替代計算多項式4*x*x+3*x+2之值的函數(shù)f,正確的宏定義是()。

A、#definef(x)4*x*x+3*x+2

B、#definef4*x*x+3*x+2

C、#definef(a)(4*(a)*(a)+3*(a)+2)

D、#define(4*a*a+3*a+2)f(a)

正確答案:C

第十二章測試

1、C語言規(guī)定結(jié)構(gòu)體變量系統(tǒng)分配給它的存儲空間是()。

A、該結(jié)構(gòu)體中最后一個成員所需的存儲空間

B、該結(jié)構(gòu)體中所有成員所需存儲空間的總和

C、該結(jié)構(gòu)體中第一個成員所需的存儲空間

D、該結(jié)構(gòu)體中占用最大存儲空間的成員所需的存儲空間

正確答案:B

2、以下對結(jié)構(gòu)體變量s中成員age的合法法引用是()。#includestring.hstructstudent{intage;intnum

溫馨提示

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

評論

0/150

提交評論