編程基礎練習題_第1頁
編程基礎練習題_第2頁
編程基礎練習題_第3頁
編程基礎練習題_第4頁
編程基礎練習題_第5頁
已閱讀5頁,還剩13頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

編程基礎練習題

一、單項選擇題

1.下列數據中屬于“字符串常量”的是(A).

A."a"B.{ABC}C.'abc\O'D.'a'

4.字符串"ABC”在內存占用的字節數是(B)。

A.3B.4C.6D.8

5.字符串"ABCD\,”內存占用的字節數是(C)。

A.4B.6C.7D.8

6.在C語言中,合法的長整型常數是(A)。

A.OLB.4962710C.0.054838743D.2.1869el0

7.在C語言中,合法的短整型常數是(D)。

A.OLB.0821C.40000I).0x2a

8.下列數據中不屬于“字符常量”的是(C)。

A.'\xff'B.''160'C.'370'D.070

9.char型常量的內存中存放的是(A)。

A.ASCII代碼值B.BCD代碼值C.內碼值D.十進制代碼值

11.常數的書寫格式決定了常數的類型和值,03322是(B)。

A、16進制int類型常數B、8進制int類型常數

C、10進制int類型常數D、10進制longint類型常數

12.“e2”是(D)。

A、實型常數100B、值為100的整型常數C、非法標識符D、合法標識符

13.要為字符型變量a賦初值,下列語句中哪一個是正確的(A)。

A>chara='3*;B、chara=w3”;C、chara=%;【)、chara=*;

14.要為float類型變量x、y、z賦同一初值3.14,下列說明語句哪一個是正確的(C)。

A、floatx,y,z=3.14;B、floatx,y,z=3*3.14;

C、floatx=3.14,y=3.14,z=3.14;D、floatx=y=z=3.14;

15.語句floatpi=3.1415926535;將(D)。

A、導致編譯錯誤B、說明pi為初值3.1415926535的單精度實型常數

C、導致運行時的溢出錯誤D、說明pi為初值3.141593的單精度實型常數

16.算術運算符、賦值運算符和關系運算符的運算優先級按從高到低依次為(B)。

A、算術運算、賦值運算、關系運算B、算術運算、關系運算、賦值運算

C、關系運算、賦值運算、算術運算D、關系運算、算術運算、賦值運算

17.關系運算符中優先級最低的運算符是(C)。

A、“>=”和B、和C、“=="和"!="D、"<二”和“<”

18.邏輯運算符中,運算優先級按從高到低依次為(D)。

A、||B、|!C、|!D、!,&&,||

19.對C程序在作邏輯運算時判斷操作數真、假的表述,下列哪一個是正確的(A)。

A、0為假非0為真B、只有1為真C、-1為假1為真D、0為真非0為假

20.表達式X&&1等效于(C)

A.x==0B.x==lC.x!=0D.x!=l

22.表達式!x||a=b等效于(D)。

A、!((x||a)==b)B、|(x||y)=bC>!(x||(a==b))D、(!x)||(a==b)

23.設整型變量m,n,a,b,c,d均為0,執行(m=a==b)||(n=c==d)后,*n的值是(C)。

A.0,0B.0,1C.1,0D.1,1

26.設a為5,執行下列語句后,b的值不為2的是(C)。

A.b=a/2B.b=6-(~a)C.b=a%2D.b=a>3?2:2

28.intb=0,x=l;執行語句if[x++)b=x+l;后,x,b的值依次為(A)。

A.2,3B.2,0C.3,0D.3,2

29.設有語句inta=3;,則執行了語句ai=a=a*a;后,變量a的值是(D)。

A.3B.0C.9D.-12

30.設有語句inta=3;,則執行了語句a+=a-=a*=a;后,變量a的值是(B)。

A.3B.0C.9D.-12

32.在以下一組運算符中,優先級最高的運算符是(C)。

A.<=B.=C.%D.&&

33.在以下一組運算符中,優先級最低的運算符是(D)

A.*B.!=C.+D.=

35.設整型變量i,j值均為3,執行了j=i++,j++,++i后,i,j的值是(B)。

A.3,3B.5,4C.4,5D.6,6

36.若己定義x和y為double類型,則表達式x=Ly=x+3/2的值是(C)。

A.1B.2C.2.0D.2.5

38.表達式1?(0?3:2):(10?1:0)的值是(B)。

A.3B.2C.1D.0

39.設a=Lb=2,c=3,d=4,則表達式:a<b?a:c<d?a:d的結果為(D)。

A.4B.3C.2D.1

40.設a為整型變量,不能正確表達數學關系:10<a<15的C語言表達式是(A)。

A.10<a<15B.a==11||a==12||a==13||a==14

C.a>10&&a<15D.!(a<=10)&&!(a>=15)

41.inta=0;if(a=l)a+=10;結果的值是(B)。

A.0B.11C.10D.出錯

42.下列表達式中符合C語言語法的賦值表達式是(C)。

A.a=7+b+c=a+7B.a=7+b++=a+7C.a=(7+b,b++,a+7)D.a=7+b,c=a+7

43.設f是實型變量,下列表達式中不是逗號表達式的是(D),

A.f=3.2,1.0B.f>0,f<10C.f=2.0,f>0D.f=(3.2,1.0)賦值表達式

44.下列表達式中,不正確的表達式是(B)。

A.a=l,b=lB.y=int(x)C.a=b=5D.i++

47.設有整型變量a=35,表達式(a&15)&&(a|15)的值是(B).

A.0B.1C.15D.35

52.設a是char型變量,其值字符為‘1',則把其值變成整數1的表達式是(C)。

A.(int)aB.int(a)C.a=a-48D.a/(int)a

53.設a是int型變量,其值為3,則把其值變成字符'3,的表達式是(D)。

A.(char)aB.a=3C.a=a-48D.a=a+48

54.設ch是char型變量,其值為‘A',則下面表達式的值是(B)。

ch=(ch>='A'&&ch<=,Z')?(ch+32):ch

A.AB.aC.ZD.Z

55.設有整型變量i,j,k,i值為3,j值為6。計算表達式k=i"j?3:后,k的值是(B)<.

A.56B.51C.40D.27

58.下列格式符中,哪一個可以用于以8進制形式輸出整數(C)。

A、%dB、%8dC、%oD、%ld

59.下列格式符中,哪一個可以用于以16進制形式輸出整數(B)。

A、%16dB、%8xC、%dl6D、%d

60.a是int類型變量,c是字符變量。下列輸入語句中哪一個是錯誤的(B)。

A>scanf(w%d,%cw,&a,&c);B>scanf(w%d%cw,a,c);

C、scanf(w%d%cw,&a,&c);D、scanf(wd=%d,c=%cw,&a,&c);

61.字符變量ch='A',int類型變量k=25,語句printf("%3d,%d3\n",ch,k);輸出(A)。

A、65,253B、65253C、65,25D、A25

63.使用scanf("x=%f,y=%f”,&x,&y);要使x,y均為1.25,正確的輸入是(C)。

A.1.25,1.25B.1.251.25C.x=l.25,y=l.25I).x=l.25y=l.25

64.要使doublex;longa;獲得數據,正確的輸入語句是(C)。

A.scanf(w%d,%f",&a,&x);B.scanf("%f,%ldw,&x,&a);

C.scanf(a%ld,%lf”,&a,&x);D.scanf("%ld,%lfM,a,x);

67.設有inti=010,j=10;則printf("%d,%d\n”,++i,j-);的輸出的是(B)。

A.11,10B.9,10C.010,9D.10,9

68.設a、b為字符型變量,執行scanf(“a=%c,b=%c”,&a,&b);

后使a為'A',b為'IT,從鍵盤上的正確輸入是(D)。

A.‘A''B'B.'A','B'C.A=A,B=BI),a=A,b二B

二、填充題

1.無符號基本整型的數據類型符為unsigned,雙精度實型數據類型符為double,

字符型數據類型符為char。

7.設下列運算符:<<、+、++、&&、<=,其中優先級最高的是++,優先級最低的

是&&。

10.設a=3,b=2,c=l,則a>b的值為1,a>b>c的值為0(a>b>ca>b為1l>c假為0).

11.若已知a=10,b=20,則表達式!a〈b的是值為1(先求!a為0(Kb為真1)。

12.設x和y均為int型變量,且x=Ly=2,則表達式1.0+x/y的值為1.0(x/y為0整除)。

14.設floatx=2.5,y=4.7;inta=7;,表達式x+a%3*(int)(x+y)%2/4的值為2.5。

16.intx=17,y=5;執行語句x%=x++/-y后x的值為2。

17.ch是字符變量,判斷ch是英文字母的邏輯表達式為ch>=,a'&&ch<='z'|

ch>:'A'&ch<=,V.

19.判斷變量a、b的值均不為。的邏輯表達式為a!=0&&b!=0。

23.求解賦值表達式a=5+求=6)后表達式值、a、c的值依次為11,11,6。

27.求變量a、b中最大值的條件表達式為a>b?a:b。

28.若a=13、b=25、c=17,條件表達式((y=(a<b)?a:b)<c)?y:c的值為17。

33.inta=7,b=6,c=5;,表達式(a+b)Xc*c)&&b==c||c>b的值為0。

34.inta=3,b=5,c=7;,表達式a>c11c〉b!=0&&c==b+a的值為0。

第三章程序設計結構

一、單項選擇題

1.假定所有變量均已正確定義,下列程序段運行后y的值是(A)。

inta=0>y=10;

if(a=U)y—;elseif(a>0)y++;elsey+=y;

A.20B.11C.9D.0

2.假定所有變量均已正確定義,下列程序段運行后x的值是(B)。

a=b=c=0,x=35;

if(!a)x—;elseif(b);if(c)x=3;elsex=4;

A.34B.4C.35D.3

4.下列各語句序列中,能夠且僅輸出整型變量a、b中最大值的是(C)。

A、if(a>b)printf(w%d\nM,a);printf(w%d\nw,b);

B、printf(w%d\nw,b);if(a>b)printf(w%d\nw,a);

C、if(a>b)printf(w%d\nw,a);elseprintf(w%d\nw,b);

D>if(a<b)printf(w%d\nw,a);printf(M%d\nM,b);

5.下列各語句序列中,能夠將變量u、s中最大值賦值到變量t中的是(B)。

A、if(u>s)t=u;t=s;B、t=s;if(u>s)t=u;

C^if(u>s)t=s;elset=u;D、t=u;if(u>s)t=s;

6.下列各語句中,能夠輸出整型變量a、b中最大值的是(D)。

A、printf(w%d\nM,(a>b)?a,b);B、(a>b)?printf(w%dw,a):printf(w%d”,b);

C、printf(w%dv,if(a>b)aelseb);D、printf(M%d\nw,(a>b)?a:b);

7.下列語句應將小寫字母轉換為大寫字母,其中正確的是(B)。

A、if(ch>=,a'&ch<='z')ch=ch-32;B、if(ch>=,a*&&ch<=,z')ch=ch-32;

C、ch=(ch>=,a'&&ch<=,z')?ch-32:'';D、ch=(ch>,a'&&ch〈'z')?ch-32:ch;

8.inta=l,x=l;循環語句while(a<10)x++;a++;的循環執行(A)。

A.無限次B.不確定次C.10次D.9次

9.下列語句中,錯誤的是(B)。

A.while(x=y)5;B.dox++while(x==10);

C.while(0);D.do2;while(a==b);

10.循環語句for(x=0,y=0;(y!=123)||(x<4);x++);的循環執行(A)。

A.無限次B.不確定次C.4次D.3次

11.循環語句for(i=0,x=l;i=10&&x>0;i++);的循環執行(A)。

A.無限次B.不確定次C.10次D.9次

12.isj已定義為int類型,則以下程序段中內循環體的執行次數是(A)。

for(i=5;i;i-)

for(j=0;j<4;j++){......}

A.20B.24C.25D.30

13.C語言while語句中,用于條件的表達式是(D)

A.關系表達式B.邏輯表達式C.算術表達式D.任意表達式

14.while循環,執行次數是(A)

i=4;while(一i)printf(,i);

A.3次B.4次C.0次D.無數次

二、填充題

1.結構化程序設計規定的三種基本結構是順序結構、選擇結構和循環結構。

2.二種循環語句是等價的。

3.當循環體中的switch語句內有break語句,則只跳出switch語句。同樣,當switch

語句中有循環語句,內有break語句,則只跳出循環語句。

4.循環體中的continue語句是結束本次循環。

10.程序段ints,i;for(i=l;i<=100;s+=i,i++);能否計算1~100的和?不能,

原因是s沒有初試為0。

11.若int類型變量字長為2,程序段intjc=l;for(inti=2;i<10;i++)jc*=i;能否

計算10的階乘?不能計算10階乘,原因是i<10,且inti不能表示10階乘。

12.設i,j,k均為int型變量,則執行完下面的for循環后,k的值為10。

for(i=0,j=10;i<=j;i++,j—)k=i+j;

13.下列程序的功能是輸入一個正整數,判斷是否能被3或7整除,若能整除,輸出“YES”,

若不能整除,輸出“N0”。請為程序填空。

voidmain()

{intk;

scanf(“%d”,&k);

if((k%3=0)11(k%7==0))printf(“YES\n");elseprintf(“N0\n”);

}

三、程序分析題

L閱讀程序,寫出運行結果。13,4,3

voidmain()

{inta=10,b=4,c=3;

if(a<b)a=b;

if(a<c)a=c;

printf(“%d,%d,%d\nM,a,b,c)

3.寫出下列程序段輸出結果3

intk,a=l,b=2;

k=(a++==b)?2:3;printf(“%d”,k);

4.閱讀下列程序,寫出程序運行的輸出結果。852

voidmain()

{inty=9;

for(;y>0;y—)

if(y%3==0){printf(,—y);continue;}

)

第四章數組

(一)單項選擇題

1.若有以下數組說明,則數值最小的和最大的元素下標分別是(B)。

inta[12]={1,2,3,4,5,6,7,8,9.10,11,12);

A.1,12B.0,11C.1,11D.0,12

2.若有以下說明,則數值為4的表達式是(D)。

inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};charc=,a',d,g;

A.a[g-c]B.a[4]C.a[,d'-d]D.a[-c](即a[d-*af])

3.設有定義:chars[12]=astring"則printf("%d\n",strlen(s));的輸出是

(A)。

A.6B.7C.11D.12

4.設有定義:chars[12]="string”;則printf("%d\n",sizeof(s));的輸出

是(B)。

A.6B.7C.11D.12

5.合法的數組定義是(A)o

A.chara[]=Mstring”;B.inta[5]={0,1,2,3,4,5};

C.chara="string";D.chara[]={0,1,2,3,4,5)

6.合法的數組定義是(B)。

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

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

7.下列語句中,正確的是(D)。

A.chara[3][]={<abc,,*T};B.chara[][3]={,abc',,1'};

C.chara[3][]={'a',T};D.chara[][3]={"a"1”};

8.下列定義的字符數組中,輸出p列ntf("%s\n",str[2]);的輸出是(C)?

staticstr[3][20]={“basic","foxpro”,uwindows"};

A.basicB.foxproC.windowsD.輸出語句出錯

9.下列各語句定義了數組,其中哪一個是不正確的(C)。

A、chara[3][10]={"China”「American","Asia"};B、intx[2][2]={1,2,3,4};

C、floatx[2][]={1,2,4,6,8,13};D、intm[][3]={l,2,3,4,5,6);

10.數組定義為inta[3][2]={1.2,3,4,5,6},值為6的數組元素是(B)。

A、a[3][2]B、a[2][l]

C、a[l][2]D、a[2][3]

12.函數調用strcat(strcpy(strl,str2),str3);的功能是(C)。

A.將字符串str1復制到字符串str2中后再連接到字符串str3之后。

B.將字符串strl連接到字符串str2之后再復制到字符串str3之后。

C.將字符串str2兔制到字符串strl中后再將字符串str3連接到字符串strl之后。

D.將字符串str2連接到字符串strl之后再將字符串strl復制到字符串str3中。

13.有字符數組定義如下,則合法的函數調用是(A)

chara[]="Iamastudent",b[]=uteacher";

A.strcmp(a,b);B.strcpy(a,b[0]);C.strcpy(a[7],b);D.strcat(a[7],b);

14.有字符數組定義如下,則不能比較a,b兩個字符串大小的表達式是(D)

chara[]="abcdefg",b[]="abcdefh”;

A.strcmp(a,b)==0B.strcmp(a,b)>0C.strcmp(a,b)<0I).a<b

(二)填充題

1.C語言中,數組的各元素必須具有相同的類型,元素的下標下限為0,但在程序執行

過程中,不檢查元素下標是否越界。下標必須是正整數、0、或者整型表達式。

2.C語言中,數組在內存中占一片連續的存儲區,由數組名代表它的首地址。數組名

是一個地址常量,不能對它進行加、減和賦值運算。

3.執行staticintb[5],a[][3]={1,2,3,4,5,6};后,b[4]=0,a[l][2]=6。

4.設有定義語句staticinta[3:[4]={⑴,⑵義3}句則值為2amm值為0,

的值為0。

5.設有定義語句staticchara]0]="abed”;則a[3]值為d,2[5]值為,\0'。

7.如定義語句為chara[]=*windows*,b[]="95";,

語句printfstrcat(a,b));的輸出結果為windows95。

8.定義語句為chara[15],b[]=",windows95”;,則語句printfstrcpy(a,b));

的輸出結果為windows950

9.定義語句為chara[]="Box",b[]="Boss";,語句printf("%d”,strcmp(a,b));

輸出5o

10.定義語句為:chara[10]=wstudentM,語句printf("%d”,strlen(a));的輸出結

果為7o

11.若在程序中用到putchar()函數時,應在程序開頭寫上包含命令

ttinclude<stdio.h>,

若在程序中用到strlen()函數時,就在程序開頭寫上包含命令ttinclude<string.h>?,

(二)程序分析題

7.閱讀下列程序,寫出程序運行的輸出結果。

ttinclude<stdio.h>

#include<string.h>

voidmainO輸出結果:*******

{charstrl[]=〃*******〃;*****

for(inti=0;i<4;i++){***

printfC%s\n*?strl);*

strl[i]=,';

strl[strlen(strl)-l]=,\0';

)

1

8.閱讀下列程序,寫出程序運行的輸出結果。1022571320

ttinclude<stdio.h>

voidmain()

{inta[8]={l,0,1,0,1,0,1,0),i;

for(i=2;i<8;i++)a[i]+=a[i-l]+a[i-2];

for(i=0;i<8;i++)printf(*%da[i]);

printf('\n");

}

第5章函數

一、單項選擇題

1.以下正確的說法是

A)用戶若需調用標準庫函數,調用前必須重新定義

B)用戶可以重新定義標準庫函數,若如此,該函數將失去原有含義

0系統根本不允許用戶重新定義標準庫函數

D)用戶若需調用標準庫函數,調用前不必使用預編譯命令將該函數所在文件

包括到用戶源文件中,系統自動去調

2.知函數Hmc的定義為:

voidfunc()

{……}

則函數定義中void的含義是

A)執行函數func后,函數沒有返回值B)執行函數func后,函數不再返回

0執行函數func后,可以返何任何類型C)以上答案均不正確

3.以下正確的函數首部定義形式是

A)intabc(intx,inty)

B)intabc(intx;inty)

C)intabc(intx,inty);

D)intabc(intx,y)

4.在以下對C語言的描述中正確的是

A)在C語言中調用函數時,只能將實參的值傳遞給形參,形參的值不能傳遞給實參

B)C語言函數既可以嵌套定義,又可以嵌套調用

0函數必須有返回值,否則不能使用函數

D)C語言程序中有調用關系的所有函數都必須放在同一源程序文件中

5.以下正確的函數定義形式是

A)intfun(intx,inty)B}intfun(intx,y)

{z=x+y;{intz;

returnz;z=x?y;returnz;

})

C)intfun(x,y)D)intfun(intx,inty)

{intx,y,z;{intz;

z=x+y;returnz;z=x+y;returnz;

})

6.以下正確的說法是

在C語言中

A)實參和與其對應的形參共占用一個存儲單元

B)實參和與其對應的形參各占用獨立的存儲單元

0只有當實參和與其對應的形參同名時才共占用存儲單元

D)形參是虛擬的,不占用存儲單元

7.若調用一個函數,且此函數中沒有return語句,則正確的說法是

該函數

A)沒有返回值B)返回一個不確定的值

0能返回一個用戶所希望的函數值D)返回若干個不確定值

8.以下正確的說法是

A)實參只能是常量或常量表達式B)形參可以是常量、變量或表達式

0形參只能是常量或常量表達式D)形參應與其對應的實參類型一致

9.C語言中函數返回值的類型是由決定的

A)調用該函數的主調函數類型B)retum后邊的表達式類型

0調用函數時系統臨時指定D)定義函數時指定的函數類型

10.C語言規定,簡單變量做實參時,它和對應形參之間的數據傳遞方式是

A)地址傳遞B)由用戶指定傳遞方式

C)由實參傳給形參,再由形參傳叵給實參D)值傳遞

11.C語言允許函數值類型缺省定義,此時該函數值隱含的類型是

A)float型B)long型C)int型D)double型

12.下面函數調用語句含有實參的個數為

fun((expl,exp2),(exp3,exp4));

A)1B)2C)3D)4

13.若用數組名作為函數調用的實參,傳遞給形參的是

A)數組第一個元素的地址B)數組第一個元素的值

0數組中全部元素的值D)數組中全部元素的地址

14.以下正確的說法是

如果在一個函數中的復合語句中定義了一個變量,則該變量的作用域

A)在該復合語句范圍內有效B)在該函數范圍內有效

0在本程序范圍內均有效D)在本源程序文件范圍內均有效

15.以下敘述中不正確的是

A)在C語言中,函數中的自動變量可以賦初值,每調用一次賦一次初值

B)在C語言中,在調用函數時,實參和對應形參的類型只需賦值兼容

0在C語言中,全局變量的隱含存儲類別是自動存儲類別

D)在C語言中,局部變量的隱含存儲類別是寄存器存儲類別

16.說明語句“staticinti=W;"中,“i=10”的含義是

A)只說明了一個變量B)與"inti=10w

溫馨提示

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

評論

0/150

提交評論