C語言程序題庫_第1頁
C語言程序題庫_第2頁
C語言程序題庫_第3頁
C語言程序題庫_第4頁
C語言程序題庫_第5頁
已閱讀5頁,還剩22頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、以下程序中給數組所有元素輸入數據,請從選項中選擇正確的答案填入下劃

線處O

#include<stdio.h>

voidmain()

(

inta[10],i=0;

while(i<10)

scanf;

)

A、a+(i++)

B、a[i+l]

C>a+i

D、a[i++]

答案:A

2、以下敘述中錯誤的是o

A、while語句的循環體至少會被執行一次

B、break語句只能在循環體內和switch語句體內使用

C、執行continue語句時將跳過本次循環體中余下尚未執行的語句

D、在C語言中有三種可以構成循環結構的循環語句:while、do-while和for

答案:A

3、若有以下程序

4include<stdio.h>

voidmain()

(

inta=-2,b=0;

do

(

++b;

}while(a++);

printf("%d,%d\n”,a,b);

}

則程序的輸出結果是o

A、0,2

B、1,3

C、1,2

D、2,3

答案:B

4、由以下while構成的循環,循環體執行的次數是ointk=0;while

(k=l)k++;

A、無限次

B、一次也不執行

C、執行一次

D、有語法錯,不能執行

答案:A

5、以下程序的輸出結果是o

Sinclude<stdio.h>

voidmain()

(

intnum=0;

while(num!=2)

(

num++;

printf("%d\n",num);

)

)

A、123

B、12

C、1234

D、1

答案:B

6、有以下程序

#include<stdio.h>

voidmain()

(

inti;

for(i=0;i<3;i++)

switch(i)

case1:printfi);

case2:printf('%d”,i);

default:printfi);

)

)

執行后輸出的結果是o

A、011122

B、012

C、012020

D、120

答案:A

解析:表達式與邏輯值的對應關系;switch中沒有break的執行順序;default

的執行順序。

7、有以下程序

^include<stdio.h>

voidmain()

(

inta=l,b=0;

for(;a<5;a++)

(

if(a%2=0)break;

b+=a;

}

printf("%d\n",b);

)

程序的運行結果是。

A、0

B、10

C、1

D、4

答案:C

8、有以下程序

^include<stdio.h>

voidmain()

(

intx,a=l,b=l;

while(1)

scanf("%d",&x);

if(x>0){a*=x;break;}

if(x<0){b*=x;continue;}

printf("%d,%d\n”,a,b);

)

)

程序運行時輸入:-1-2012回車,則輸出結果是o

A、1,2

B、2,2

C、-1,1

D、-2,1

答案:A

9、關于〃while(條件表達式)循環體",以下敘述正確的是

A、條件表達式的執行次數總是比循環體的執行次數多一次

B、循環體的執行次數總是比條件表達式的執行次數多一次

C、條件表達式的執行次數與循環體的執行次數一樣

D、條件表達式的執行次數與循環體的執行次數無關

答案:A

10、下面程序的輸出是o

#include<stdio.h>

voidmain()

(

char*s=*121342ir;

intvl=0,v2=0,v3=0,v4=0,k;

for(k=0;s[k];k++)

switch(s[k])

(

default:v4++;

case'r:vl++;

case'3':v3++;

case'2':v2++;

)

printf(*vl=%d,v2=%d,v3=%d,v4=%d\n”,vl,v2,v3,v4);

)

A、vl=4,v2=2,v3=l,v4=l

B、vl=4,v2=9,v3=3,v4=l

C>vl=5,v2=8,v3=6,v4=l

D、vl=8,v2=8,v3=8,v4=8

答案:C

解析:字符串指針變量的初始化;字符串的結束標志字符:'\0';字符數組的應

用;表達式與邏輯值的對應關系;字符在計算機存放的是ASCII值;自增運算符的

應用;for循環的執行順序;switch的執行順序;default的功能。

11、t為int類型,進入下面的循環之前,t的值為0。while(t=l){..........}則以

下敘述中正確的是o

A、循環控制表達式的值為0

B、循環控制表達式的值為1

C、循環控制表達式不合法

D、以上說法都不對

答案:B

12、下面函數的功能是o

intfunl(char*x)

(

char*y=x;

while(*y++);

return(y-x-l);

)

A、求字符串的長度

B、比較兩個字符串的大小

C、將字符串x復制到字符串y

D、將字符串x連接到字符串y后面

答案:A

13、有如下程序

voidmain()

(

intn=9;

while(n>6)

printfn);

)

}

該程序段的輸出結果是

A、987

B、876

C、8765

D、9876

答案:B

14、有以下程序

Sinclude<stdio.h>

voidmain()

(

ints;

scanf&s);

while(s)

(

switch(s)

(

casel:printfs+5);

case2:printfs+4);break;

case3:printfs+3);

default:printfs+1);break;

)

scanf&s);

)

)

運行時,若輸入123450回車,則輸出結果是

A、6566456

B、66656

C、66666

D、6666656

答案:A

15、有以下程序段

inti,n;

for(i=0;i<8;i++)

(

n=%5;

switch(n)

(

case1:

case3:printf("%d\n",n);break;

case2:

case4:printf("%d\n",n);continue;

case0:exit(0);

)

printf("%d\n”,n);

)

以下關于程序段執行情況的敘述,正確的是

A、for循環語句固定執行8次

B、當產生的隨機數n為4時結束循環操作

C、當產生的隨機數n為1和2時不做任何操作

D、當產生的隨機數n為0時結束程序運行

答案:D

16、有以下程序

ftinclude<stdio.h>

voidmain()

(

inta=l,b=2;

while(a<6)

|

b+=a;

a+=2;

b%=10;

)

printf("%d,%d\n”,a,b);

)

程序運行后的輸出結果是O

A、5,11

B、7,1

C、7,11

D、6,1

答案:B

17、有以下程序

#include<stdio.h>

voidmain()

charch='D';

while(ch!='A')

(

ch一;

putchar(ch);

if(ch='A')break;

putchar(ch+1);

)

)

程序運行后的輸出結果是。

A、CDBCA

B、BCA

C、CCBB

D、CB

答案:A

18、有以下程序

^include<stdio.h>

voidmain()

(

inta=7;

while(a-);

printf(級d\n”,a);

)

程序運行后的輸出結果是

A、-1

B、0

C、1

D、7

答案:A

19、要求通過while循環不斷讀入字符,當讀入字母N時結束循環。若變量已

正確定義,以下正確的程序段是o

A、while((ch=getchar())!='N')printf(z/%c”,ch);

B、while(ch=getchar()='N')printf(“枇",ch);

C、while(ch=getchar()==,N,)printf('%c”,ch);

D、while(getchar(ch))==,N")printfC%c",ch);

答案:A

20、有以下程序

/include<stdio.h>

voidmain()

(

inty=10;

while(y-);

printf("y=%d\n”,y);

)

程序執行后的輸出結果是O

A、y=0

B、y=-l

C、y=l

D、while構成無限循環

答案:B

21、有以下程序

#include<stdio.h>

voidmain()

(

inta,b;

for(a=0;a<3;a++)

(

scanf&b):

switch(b)

(

default:printf(*%d,*,b++);

case1:printf("%d,",b++);

case2:printf("%d,",b++);

)

)

)

程序運行時輸入:123回車,則輸出結果是.

A、1,2,3,

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

C、1,2,3,2,3,3,

D、1,1,1,2,2,3

答案:B

解析:表達式與邏輯值的對應關系;switch中沒有break的執行順序;default

的執行順序。

22、有以下程序

/include<stdio.h>

voidmain()

(

inta[]={2,3,5,4},i;

for(i=0;i<4;i++)

switch(i%2)

(

caseOcswitch(a[i]%2)

(

case0:a[i]++;break;

casel:a[i]一;

}

break;

case1:a[i]=0;

)

for(i=0;i<4;i++)printf(*%d”,

printf('\n");

)

程序運行后的輸出結果是o

)

A、3344

B、2050

C、3040

D、0304

答案:C

23、請讀程序:

ttinclude<stdio.h>

voidmain()

(

intnum=0;

while(num<=2)

(

num++;

printf(線d\n”,num);

)

)

上面程序的輸出結果是

①1②12③123④1234

A①

B②

c③

D④

:C

24、有以下程序

#include<stdio.h>

voidmain()

(

intk=5,n=0;

while(k>0)

(

switch(k)

|

default:break;

case1:n+=k;

case2:

case3:n+=k;

printf("%d\n",n);

)

程序運行后的輸出結果是

A、0

B、4

C、6

D、7

答案:D

25、有如下程序

^include<stdio.h>

voidmain()

intn=9;

while(n>6)

n——;

printf("%d",n);

)

)

該程序的輸出結果是。

A、987

B、876

C、8765

D、9876

答案:B

26、有以下程序

/include<stdio.h>

voidmain()

(

inta,b;

for(a=0;a<3;a++)

(

scanf("%d",&b);

switch(b)

(

case1:printf("%d,",++b);

case2:printf(*%d,++b);

default:printf("%d,",++b);

)

)

)

執行時輸入:123回車,則輸出結果是o

A、2,3,4,3,4,4,

B、2,3,4,

C、2,2,2,3,3,4,

D、2,3,4,3,4,5,4,5,6

答案:A

解析:表達式與邏輯值的對應關系;switch中沒有break的執行順序。

27、有以下程序

#include<stdio.h>

voidmain()

intx=l,y=0,a=0,b=0;

switch(x)

(

case1:switch(y)

(

case0:a++;break;

case1:b++;break;

}

case2:a++;b++;break;

case3:a++;b++;

)

printf("a=%d,b=%d\n”,a,b);}

程序的運行結果是O

A、a=1,b=0

B、a=2,b=2

C、a=l,b=l

D>a=2,b=l

答案:D

28、有以下程序

^include<stdio.h>

voidmain()

(

inta=15,b=21,m=0;

switch(a%3)

(

case0:m++;break;

casel:m++;

switch(b%2)

(

default:m++;

case0:m++;break;

)

)

printf("%d\n",m);

程序運行后的輸出結果是

A、1

B、2

C、3

D、4

答案:A

29、有以下程序

#include<stdio.h>

voidmain()

(

intm,n;

scanf("%d%d”,&m,&n);

while(m!=n)

(

while(m>n)

m=m-n;

while(n>m)

n=n-m;

)

printf("%d\n',m);

}

該程序的功能是o

A、計算m和n的差值

B、計算m和n的最小公倍數

C、計算m和n的最大公約數

D、找出m和n中的較大值

答案:C

30、對于while(!E)s;,若要執行循環體s,則E的取值應為:

A、E不等于0

B、E等于0

C、E不等于1

D、E等于1

答案:B

31、有以下程序

/include<stdio.h>

voidmain()

(

charch='1';

while(ch<'9')

(

printf('%d”,ch-'0');

ch++;

)

)

程序運行后的輸出結果是O

A、1

B、01234567

C、0

D、12345678

答案:D

32、設變量n已正確定義并賦值,以下不能實現自然數1到n累加求和的程序

段是o

A、intsum=l,i=0;while(i<=n){i++;sum+=i;}

B、intsum=0,i=l;while(i<=n){sum+=i;i++;}

C>intsum=0,i=0;while(i<=n){i++;sum+=i;}

D、intsum=l,i=l;while(i<=n){i++;sum+=i;}

答案:A

33、以下敘述中正確的是o

A、只能在循環體內和switch語句體內使用break語句

B、當break出現在循環體中的switch語句體內時,其作用是跳出該switch語

句體,并中止循環體的執行

C、continue語句的作用是:在執行完本次循環體中剩余語句后,中止循環

D、在while語句和do-while語句中無法使用continue語句

答案:A

34、以下程序中,while循環的循環次數是o

ttinclude<stdio.h>

voidmain()

inti=0;

while(i<10)

(

if(i<10)continue;

if(i==5)break;

i++;

A、1

B、10

C、6

D、死循環,不能確定次數

答案:D

35、以下程序的輸出結果是

^include<stdio.h>

voidmain()

(

char*s=*121342ir;

intv[4]={0,0,0,0},k,i;

for(k=0;s[k];k++)

(

switch(s[k])

(

case'r:i=0;

case'2':i=l;

case'3':i=2;

case'4':i=3;

)

v[i]++;}

for(k=0;k<4;k++)

printf(*%d*,v[k]);

)

A、4211

B、0008

C、4678

D、8888

答案:B

解析:字符串指針變量的初始化;字符串的結束標志字符:'\0';字符數組的應

用;表達式與邏輯值的對應關系;字符在計算機存放的是ASCH值;自增運算符的

應用;for循環的執行順序;switch的執行順序;default的功能。

36、有以下程序

ttinclude<stdio.h>

voidmain()

(

inta=-l,b=-l;

while(++a)++b;

printf("%d,%d\n”,a,b);

)

程序的運行結果是o

A、0,0

B、0,-1

C、

D、結果不確定

答案:B

37、有以下程序

ttinclude<stdio.h>

voidmain()

(

intk=5;

while(—k)

printf("%d”,k-=3);

printf("\n");

}

執行后的輸出結果是o

A、1

B、2

C、4

D、死循環

答案:A

38、若有以下程序

^include<stdio.h>

voidmain()

ints=0,n;

for(n=0;n4;n++)

(

switch(n)

(

default:s+=4;

case1:s+=l;

case2:s+=2;

case3:s+=3;

)

)

printf("%d\n",s);}

則程序的輸出結果是o

A、24

B、18

C、10

D、6

答案:A

解析:表達式與邏輯值的對應關系;switch中沒有break的執行順序;default

的執行順序。

39、設有以下兩段代碼

do

{while(條件表達式1)循環體A;}

while(條件表達式2);

while(條件表達式1)

(do

{循環體B;}

while(條件表達式2);}

其中,循環體A與循環體B相同,在相同條件下,以下敘述正確的是o

A、循環體A與循環體B的執行次數不確定

B、循環體A比循環體B的執行次數多一次

C、循環體A比循環體B的執行次數少一次

D、循環體A與循環體B的執行次數相同

答案:D

40、閱讀以下函數

fun(char*sl,char*s2)

(

inti=0;

while(si[i]==s2[i])i++;

return(si[i]=='\0'?l:0);

)

此函數的功能是o

A、將s2所指字符串賦給si

B、比較si和s2所指字符串的大小,若si比s2的大,函數值為1,否則函數值

為0

C、比較si和s2所指字符串是否相等,若相等,函數值為1,否則函數值為0

D、比較si和s2所指字符串的長度,若si比s2的長,函數值為1,否則函數值

為0

答案:C

41、以下敘述中正確的是o

A、如果根據算法需要使用無限循環(即通常所稱的〃死循環〃),則只能使用

while語句

B、對于“for(表達式1;表達式2;表達式3)循環體〃首先要計算表達式2的值,

以便決定是否開始循環

C、對于“for(表達式1;表達式2;表達式3)循環體〃,只在個別情況下才能轉

換成while語句

D、只要適當地修改代碼,就可以將do-while與while相互轉換

答案:D

42、以下敘述中正確的是o

A、continue語句使得整個循環終止

B、break語句不能用于提前結束for語句的本層循環

C、使用break語句可以使流程跳出switch語句體

D、在for語句中,continue與break的效果是一樣的,可以互換

答案:C

43、在以下給出的表達式中,與while(E)中的(E)不等價的表達式是。

A、(!E==0)

B、(E>0||E<0)

C、(E==0)

D、(E!=0)

答案:C

44、若有以下程序段,w和k都是整型變量:

w=k;LB:if(w==0)gotoLE;w一;printf("*");gotoLB;LE:...

則不能與上面程序段等價的循環語句是.

A>for(w=k;w!=0;w-)printf("*");

B、w=k;while(w--!=0)printf("*');w++;

C、w=k;do{w—;printf("*');}while(w!=0);

D>for(w=k;w;-w)printf('*");

答案:C

45、以下敘述中正確的是o

A、break語句只能用于switch語句體中

B、continue語句的作用是:使程序的執行流程跳出包含它的所有循環

C、break語句只能用在循環體內和switch語句體中

D、在循環內使用break語句和continue語句的作用相同

答案:C

46、有以下程序

^include<stdio.h>

voidmain0

(

intc=0,k;

for(k=l;k<3;k++)

switch(k)

(

default:c+=k;

case2:c++;break;

case4:c+=2;break;

)

printf(*%d\n*,c);

)

程序運行后的輸出結果是O

A、3

B、5

C、7

D、9

答案:A

47、有以下程序

ttinclude<stdio.h>

voidmainO

(

intx,y=0,z=0,t;

do

(

scanf&x);

t=x;

switch(t)

(

case0:break;

case1:y+=x;continue;

}

z+=x;

}while(x);

printf("%d,%d\n”,y,z);}

程序運行時輸入:-11-220回車,則輸出結果是o

A、1,1

B、1,0

C、1,-1

D、3,0

答案:C

解析:dowhile循環的執行順序;switch的執行順序;continue和break的功

能。

48、若有定義語句inta,b;doublex;則下列選項中沒有錯誤的是。

A、switch(x%2){case0:a++;break;case1:b++;break;default:a++;

b++;}

B、switch((int)x/2.0){case0:a++;break;case1:b++;break;default:

a++;b++;}

C>switch((int)x%2){case0:a++;break;case1:b++;break;default:

a++;b++;}

D、switch((int)(x)%2){case0.0:a++;break;case1.0:

b++;break;default:a++;b++;}

答案:C

49、有以下程序

#include<stdio.h>

voidmain()

(

charc;

while((c=getchar())!='\n')

(

switch(c-'2')

(

case0:

case1:putchar(c+4);

case2:putchar(c+4);break;

case3:putchar(c+3);

default:putchar(c+2);break;

}

)

printf("\n");

)

程序運行后從第一列開始輸入以下數據2473回車程序的輸出結果是

A、668977

B、4444

C、6677877

D、68766

答案:A

50、有以下程序

ttinclude<stdio.h>

voidmain()

(

inta,b;

for(a=0;a<3;a++)

(

scanf&b);

switch(b)

(

default:printf("%d,",++b);

case1:printf("%d,",++b);

case2:printf("%d,",++b);

)

)

)

執行時輸入:123回車,則輸出結果是?

A、2,3,4,

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

C、2,2,3,4,4,4,

D、2,3,4,3,4,4,

答案:B

解析:表達式與邏輯值的對應關系;switch中沒有break的執行順序;default

的執行順序。

51、下列敘述中正確的是o

A、在switch語句中必須使用default

B、在switch語句中,不一定使用break語句

C、break語句必須與switch語句中的case配對使用

D、break語句只能用于switch語句

答案:B

52、有如下程序

#include<stdio.h>

voidmainO

(

intx=l,a=0,b=0;

switch(x)

(

case0:b++;

case1:a++;

case2:a++;b++;

}

printf("a=%d,b=%d\n”,a,b);

)

該程序的輸出結果是o

A、a=2,b=l

B、a=l,b=l

C、a=l,b=0

D、a=2,b=2

答案:A

53、有以下程序

Sinclude<stdio.h>

voidmain()

(

inta=3;

do

(

printf("%d,”,a-=2);

}

while(!(—a));

printf("\n");

)

程序運行后的輸出結果是o

A、1,

B、1,-2,

C、3,0,

D、1,0

答案:B

54、有以下程序段

intn,t=l,s=0;

scanf&n);

do

(

s=s+t;

t=t-2;

)

while(t!=n);

為使此程序段不陷入死循環,從鍵盤輸入的數據應該是

A、任意正奇數

B、任意負偶數

C、任意正偶數

D、任意負奇數

答案:D

55、有以下程序

#include<stdio.h>

voidmain()

inta,b;

for(a=0;a<3;a++)

(

scanf("%d"

溫馨提示

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

評論

0/150

提交評論