2024年C語言基礎(chǔ)知識習(xí)題_第1頁
2024年C語言基礎(chǔ)知識習(xí)題_第2頁
2024年C語言基礎(chǔ)知識習(xí)題_第3頁
2024年C語言基礎(chǔ)知識習(xí)題_第4頁
2024年C語言基礎(chǔ)知識習(xí)題_第5頁
已閱讀5頁,還剩47頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第二章:C語言概述

1.如下(劭是不正確的轉(zhuǎn)義字符。

A.'\\'B.'\"C.'020'D.''0'

2.組成C語言程序的基本單位是(?).

A.函數(shù)B.變量C.于程序D.語句

3.C語言要求:在一個源程序中,main()函數(shù)的位置(C)。

A.必須在最開始B.必須在系統(tǒng)調(diào)用的庫函數(shù)背面

C.能夠任意D.必須在最后

4.為求出return語句返PI計(jì)算100!的成果,此困數(shù)的類型闡明應(yīng)為(D)。

A.intB.longC.unsigncdlongD.選項(xiàng)A,B,C.都不對:ABC的數(shù)值范圍都不夠

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

A.必須為字母

B.必須為下劃線

C.必須為字母或下劃線

D.能夠是字母、數(shù)字和下劃線中的任意一個

6.如卜.選項(xiàng)中合法的用戶標(biāo)識符是(D)。

A.intB.a#C.5memD._243

7.C語言中的簡單數(shù)據(jù)類型有(C)。

A.整型、實(shí)型、邏輯型B.整型、字符型、邏輯型

C.整型、實(shí)型、字符型D.整型、實(shí)型、字符型、邏輯型

8.如下選項(xiàng)中不正確的整型常量是(B)。

A.-37B.32,758C.326D.6

9.如下選項(xiàng)中合法的C語言字符常量是(A)。

A.'\t'B.'A"C.67D.A

10.如下選項(xiàng)中不正確的實(shí)型常量是(A)。

A.123B.le4C.3.640E-1D.0.35

11.如下選項(xiàng)中合法的C語言賦值語句是(D).

A.a=b=34B.a=34,b=34C.—i;D.m=(int)(x+y);

12.設(shè)int類型的數(shù)據(jù)長度為兩個字節(jié),則unsignedint類型數(shù)據(jù)的取值范圍是(B)。

A.0?255B.0?65535C.-32768?32767D.-256?255

第三章:運(yùn)算符與體現(xiàn)式(原先給的答案諸多錯誤)

I.如下論述中不正確的是(B)。

A.在C程序中,%是只能用于整數(shù)運(yùn)算的運(yùn)算符

B.在C程序中,無論整數(shù)還是實(shí)數(shù),都能準(zhǔn)確無誤地表示

C.若a是實(shí)型變量,C程序中a=20是正確的,因此實(shí)型變量允許被整型數(shù)賦值

D.以上表述都是正確的

2.若變量x、y、z均為double類型且已正確賦值,不能正確表示x/yXz的C語言體現(xiàn)式是(A)。

A.x/y*zB.x*(l/(y*z))C.x/y*l/zD.x/y/z

3.設(shè)a、b、c、d、m、n均為int型變量,且a=5,b=6,c=7,d=8?m=2,n=2,則邏輯體現(xiàn)式

(m=a>b)&&(n=c>d)運(yùn)算后,n的值為(C)。

A.OB.lC.2D.3

4.設(shè)w、x、y、z、m均為ini型變量,有如下程序段:

w=1;x=2;y=3;z=4;

m=(w<x)?w:x;m=(m<y)?m:y;m=(m<z)?m:z;

則該程序運(yùn)行后,m的值是(D)。

A.4R.3C.2D.l

5.如下程序的輸出成果是(C)。

#include<stdio.h>

main()

{inta=5,b=4,c=6,d;

printf(,/%d\n,,d=a>b?(a>c?a:c):(b));

A.5B.4C.6D.不確定

6.在C語言中,假如下面的變量都是int類型,則輸出的成果是(A)。

sum=pad=5;pad=sum++,pad++,++pad;

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

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

7.如卜.程序的輸出成果是(B)。

#include<stdio.h>

main()

{inti=()l(),j=l();

piintf("%d,%d\n",++i.j-);

)

A.11,10B.9,10C.()l(),9D.10,9

8.已知inii;floalf;,由如下選項(xiàng)中正確的語句是(D)。

A.(intf)%i;B.int(f)%i;C.int(f%i);D.(in()f%i;

9.若有定義:inlx=3,y=2;floata=2.5,b=3.5;則下面體現(xiàn)式的值為(B)。

(x+y)%2+(int)a/(int)b

A.1.0B.lC.2.0D.2

10.假設(shè)所有變量均為整型,則體現(xiàn)式(a=2,b=5,a++,b++,a+b)的值為(C)。

A.7B.8C.9D.10

11.若有定義"intx=Ly=l;\體現(xiàn)式(!x||y--)的值是(B)。

A.OB.lC.2D.-l

12.有如下程序:

main()

{unsignedchara.h.c;

a=0x3;

b=a|0x8;

c=b?1;

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

)

程序運(yùn)行后的輸出成果是①)。

A.-1112B.-6-13C.1224D.1122

13.若已定義x和y為double類型,則體現(xiàn)式x=l,y=x+3/2的值是(C)。

A.lB.2C.2.0D.2.5

14.執(zhí)行如下程序段后,c3的值為(A)。

intcl=I,c2=2,c3;

c3=1.0/c2*cl;

A.OB.0.5C.lD.2

15.如下程序的輸出成果是(D)。

#include<stdio.h>

main()

{inty=3,x=3,z=l;

printf("%d%d\n",(++x,y++),z+2);

}

A.34B.42C.43D.33

第四章:基本語句

1.如下選項(xiàng)中不是C語句的是C0

A){inti;i++;printf("%d\n",i);}B);

C)a=5.c=10D){1}

2.執(zhí)行如下程序時輸入1234567.程序的運(yùn)行成祟為B.

#include<stdio.h>

inain()

scanf("%2d%2ld",&x,&y);

printf("%d\n",x+y);

)

A)17B)46C)15D)9

3.若有定義chara;intbifloatc:d3ubled;?則體現(xiàn)式a*b+c-d成果為型A。

A)doubleB)intC)floatD)char

4.若有定義intab,則用語句sanf("%d%d”,&a,&b):輸入a,b的值時,不能作為輸入數(shù)據(jù)分隔符的是△

A),B)空格C)回車D)[Tab]鍵

5.運(yùn)行下面的程序,假如從鍵盤上輸入:

ab<回車〉

c<回車〉

def<回車〉

則輸出成果為

#defineN6

#include<sldio.h>

main()

charc[N];

inti=0;

for(;i<N;c[i]=gctchar(),i++);

for(i=0;i<N;i++)putchar(c[i]);printf("\nM);

)

A)

a

b

d

B)

a

b

c

d

C)

ab

c

d

D)abcdef

6.如下程序的輸出成果是A.

科include<stdio.h>

main()

{printf("%f',2.5+l*7%2/4);

)

A)2.500000B)2.750000C)3.375000D)3.00000()

7.依照定義和數(shù)據(jù)的輸入方式,輸入語句的正確形式是生。

已經(jīng)有定義:float

數(shù)據(jù)的輸入方式:4.52

3.5

A)scanf("%f,%f',&fl,&f2);B)&⑵;

C)scanf("%3.2f%2.1T,&fID)scanf("%3.2f,%2.1P,&fl

8.如下程序不用第3個變量,實(shí)現(xiàn)將兩個數(shù)進(jìn)行對調(diào)的操作,請?zhí)羁铡?/p>

#include<stdio.h>

main()

{inta.b;

scanf("%d%d",&a,&b);

printf("a=%db=%d",a.b);

a=a+b:b=a-b:a=B;

prinifC'a=%db=%d\n\a.b);

)

A)a+bB)a-bC)b*aD)a/b

第五章:選擇結(jié)構(gòu)

I如下選項(xiàng)中.能正確表示a右I。或aWO的關(guān)系體理式是D,

A)a>=IOora<=0B)a>=10|a<=0C)a>=10&&a<=0D)a>=10||a<=0

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

a=b=c=O;x=35;

if(!a)x-;

elseif(b);

if(c)x=3;

elsex=4:

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

3.如下程序的輸出成果_A_0

#inckide<stdio.h>

main()

{inta.b.c=246;

a=c/100%9;

b=(-l)&&(-!);

printf("%<l,%d\n',,a,b);

)

A)2,1B)3,2C)4,3D)2,-l

4..已知a=l、b=3、c=5、d=5,下列程序段運(yùn)行后,x的值是_B_

if(a<b)

if(c<d)x=l;

else

if(a<c)

if(b<d)x=2;

elsex=3;

elsex=6;

elsex=7;

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

5.能正確表示a和b同時為正或同時為負(fù)的體現(xiàn)式是D

A)(a>=0||b>=0)&&(a<0||b<0)B)(a>=0&&b>=0)&&(a<0&&b<0)

C)(a+b>0)&&(a+b<=0)D)a*b>0

6.如下程序的輸出成果是_C__。

#include<stdio.h>

main()

{inta=-l.b=l:

if((++a<0)&&!(b—<=0))

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

else

prinif("%d%d\n",b,a):

)

A)-11B)01C)10D)00

7.下列有關(guān)switch語句和break語句的結(jié)論中,正確的是_B

A)break語句是switch語句中的一部分

B)在switch語句中能夠依照需要使用或不使用break語句

C)在switch語句中必須使用break語句

D)break語句只能用于switch語句中

8.若有定義inta=Lb=O;,則執(zhí)行如下語句后,輸出為_B_。

switch(a)

{case1:

switch(b)

(case0:printf("**0**");break;

case1:printf("**l**"kbreak;

)

case2:printfC'**2**");bretk;

1

A)**()**B)**Q**?*2**

C)**0****l****2**D)有語法錯誤

9.如下程序的輸出成果是A。

#include<sidio.h>

main()

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

switch(x)

{case0:b++;

case1:a++;

case2:a++;b++;

)

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

)

A)a=2,b=lB)a=l,b=lC)a=l,b=0D)a=2,b=2

10.如下程序的輸出成果是—C_o

#includc<stdio.h>

main()

{inta=12,b=5,c=-3;

if(a>b)

if(b<0)c=0;

elseC++;

printf("%d\n".c);

1

A)0B)1C)-2D)-3

11.閱讀如下程序:

#include<stdio.h>

inain()

{intx;

scanf("%d",&x);

if(x-<5)printf("%d",x);

elseprintf("%d".x++);

)

程序運(yùn)行后,假如從鍵盤輸入5,則輸出成果是_B—。

A)3B>4C)5D)6

12.兩次運(yùn)行下面的程序,假如從鍵盤上分別輸入6和4,則輸出的成果是A

#include<stdio.h>

main()

(intx;

scanf("%d".&x):

if(x++>5)printf("%d",x);

elseprintf("%d\n".x-);

A)7和5B)6和3C)7和4D)6和4

第6章循環(huán)結(jié)構(gòu)

1.在while(x)語句中的x與下面條件體現(xiàn)式等價的是。I)

A)x==0B)x==lC)x!=lD)x!=0

2.如下程序的輸出成果是。I)

#includc<stdio.h>

main()

{intkj,m;

for(k=5:k>=kk-)

(m=0;

for(j=kj<=S:j++)

m=m+k*j;

}

prinif(M%d\n",m);

)

A)124B)25C)36D)15

3.如下程序的輸出成果是。D

#include<stdio.h>

main()

{intx=10,y=10,i;

for(i=0;x>8;y=++i)

printf("%d%d",x-,y);

}

A)10192B)9876C)10990D)101091

4.如下程序的輸出成果是。A

a=l;b=2:c=2:

whilc(a<b<c){t=a;a=b;b=l;c-;)

printf("%d.%d.%d".a.b.c);

A)1,2,0B)2,1,0C)1,2,1D)2,1,1

5.如下for循環(huán)體的執(zhí)行次數(shù)是。C

#includc<sidio.h>

main()

{intij;

for(i=0.j=1:i<=j+1;i+=2,j-)printf("%d\n'\i);

)

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

6.有如下程序:

#include<stdio.h>

mam()

{intn=9;

while(n>6){n-;printf("%d"ji):)

)

該程序段的輸出成果是。B

A)987B)87608765D)9876

7.有如下程序段:A

intk=0:

while(k=l)k++;

while循環(huán)執(zhí)行的次數(shù)姑。

A)無限次B)有語法借,不能執(zhí)行。一次也不執(zhí)行D)執(zhí)行一次

8.如卜.程序中,while循環(huán)的循環(huán)次數(shù)是.D

#include<stdio.h>

main()

{inti=0;

while(i<10)

{if(i<l)continue;

if(i==5)break;

i++;

}

1

A)1B)IO

C)6D)死循環(huán),不能確定次數(shù)

9.如下程序的輸出成果是。B

#include<stdio.h>

inain()

{inti=0.a=0;

while(i<20)

{for(:;)

{if((i%10)==0)break;

elsci-;

}

i+=ll;a+=i;

)

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

}

A)21B)32C)33D)ll

10.語句while(!E);中的條件!E等價于。A

A)E==0B)E!=1C)E!=0D)~E

IL如卜的for循環(huán)。C

for(x=0,y=0;(y!=123)&&(x<4):x++);

A)是無限循環(huán)B)循環(huán)次數(shù)不定

C)循環(huán)執(zhí)行4次D)循環(huán)執(zhí)行3次

12.執(zhí)行如下程序段的成果是。E

intx=23;

do

{printf("%d",x-);

}while(!x);

A)打印出321B)打印出23

C)不打印任何內(nèi)容D)陷入死循環(huán)

第7章:數(shù)組

1.有如下程序:

#includc<stdio.h>

#include<string.h>

main()

{chara[]=fa,;b,;c,;d\'e\'f,'g'/h'AO');

inti,j;

i=sizeof(a);j=strlen(a);

prinif("%d.%d\n',.i.j);

)

程序運(yùn)行后的輸出成果是。I)

A)9,9B)8,9C)L8D)9,8

2.如下程序中函數(shù)reverse。的功效是將a所指數(shù)組中的內(nèi)容進(jìn)行逆置存儲。

科include<stdio.h>

voidreverse(inta[],intn)

inti.t;

fbr(i=O;i<n/2;i++)

{t=a[i];a[i]=a[n-1-iJ;a[n-1-i]=t;}

)

main()

inib|IOJ={1,2,3,4,5,6,7,8,9,10);inti,s=O;

reverse(b,8);

for(i=6;i<IO;i++)s+=b[i];

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

)

則程序運(yùn)行后的輸出成果是。A

A)22B)IOC)34D)30

3.有如下程序:

main(intargc,char*argv(J)

intn.i=O;

while(argv[l][i]!='\O')

{n=fun():i++:)

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

}

intfun()

staticints=0;

s+=l;

rclurns;

}

假設(shè)程序經(jīng)編譯、連接后生成可執(zhí)行文獻(xiàn)cxam.cxc,若鍵入如下命令行

cxain123V回乍〉

則運(yùn)行成果為。A

A)6B)8C)3D;4

4.如下程序的輸出成果是。A

#include<stdio|fh>

#include<stringf-f-h>

main()

charstr[12]={'s7tVr,'iVnVg');

prinlf("%d\n",strlcn(slr));}

A)6B)7C)llD)12

5.若有闡明:inta[3][4];,則對數(shù)組a元素非法引用的是。I)

A)a[0][2*l]B)a[l][3]C)a[4-2][0]D)a[0][4]

6.若有闡明:inla[][4]={0,0};,則如下選項(xiàng)中,不正確的是。D

A)數(shù)組a的每個元素都可得到初值。

B)二維數(shù)組a的第一維大小為1

C)因?yàn)槎S數(shù)組a中初值的個數(shù)不能被第二維大小的值整除,則第?維的大小等于所得商數(shù)再加1,故數(shù)組a的

行數(shù)為1

D)只有元素a[0][0]和可得到初值0,其他元素均得不到初值0

7.如下程序中有錯誤的一行是,D

(1)main()

(2){

(3)intaf31=(ll:

(4)inli;

⑸scanf("%d".&a);

(6)fbr(i=l;i<3;i++)a[0]=a[C]+a[i];

(7)printf("%f\n';a[0]);

(8)}

A)3B)6C)7D)5

8.若有闡明:inia山3]={123,4,5,6,7};,則a數(shù)組第一維的大小是。3

A)2B)3C)4D:無確定值

9.若有數(shù)組定義:chararray]]='China";,則數(shù)組array所占的空間為。C

A)4個字節(jié)B)5個字節(jié)C)6個字節(jié)D)7個字節(jié)

10.如下程序的輸出成果是。A

#includc<stdio.h>

#includc<string.h>

main()

charan?⑵[4];

strcpy(arr."you");strcpy(arr[IJ,"me");

arrf0]|3]='&':

printf("%s\n',,arr);

)

A)you&mcB)youC)mcD)crr

11.有如下程序:

#inckide<stdio.h>

main()

intn(5]={0,0,0},i,k=2;

for(i=0;i<k;i++)n[il=n[i]+l;

prinlf("%<i\n",nlkj);

)

該程序的輸出成果是。D

A)不定值B)2C)lD)0

12.如下程序的輸出成果是。A

#includc<sldio.h>

main()

inta[3][3]=({l,2}.{3,4}.{5.6}}.i,j,s=O;

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

for(j=0:j<i:j++)s+=a[i][j]:

printf("%<i\n",s);

)

A)14B)19C)20D)21

13.當(dāng)執(zhí)行如下程序時,假如輸入ABC,則輸出成果是。A

科include<stdio桿h>

#include〈string桿h>

main()

{charss(101="1,2,3,4,5";

gets(ss);strcat(ss."6789"):printf(,,%s\n",ss);

)

A)ABC6789B)ABC67C)12345ABC6D)ABC456789

14.如下程序的輸出成果是。A

#include<stdio.h>

f(intb|],intn)

inti,s=0;

fbr(i=m;i<n;i=i+2)s=s+b[i];

returns;

)

main()

intx,a|]={1,2,3,4,5,6,7,89);

x=f(a,3.7);

prinlf("%<l\n",x);

1

A)10B)18C)8D)15

15.如下程序中函數(shù)sort。的功效是對數(shù)組a中的數(shù)據(jù)進(jìn)行由大到小的排序。

#include<stdio.h>

voidsort(intn)

{inti.j.t;

fbr(i=O;i<n-l;i++)

for(j=i+l:j<n;j++)

if(a(i]<a|j])(t=a(i];a[i]=a|j);a(j|=t;}

)

main()

intaa[10]={1,2,3,4,5,6,7,8,9,10),i;

sort(&aa[3],5);

for(i=0;i<10;i++)printf("%d,",aa|i]);

printf("\n");

)

程序運(yùn)行后的輸出成果是。C

A)1,2,34,5,6,7,8,9,10,B)109,8,7,6,5,4,3,2,1,

01.2,3,8,7,6,5,4,9,10,D)1,2,10,9,8,7,6,5,4.35

16.對兩個數(shù)組a和b進(jìn)行如下初始化:

charalJ="ABCDEF";

charb[]={,AVB,;C,,D\,EVF);

則如下論述正確的是。D

A)數(shù)組a與數(shù)組b完全相同B)數(shù)組a與數(shù)組b長度相同

C)數(shù)組a與數(shù)組b中都存儲字符串D)數(shù)組a比數(shù)組b長度長

17.有如下程序段:D

chara[3],b|J="China";

a=b;

printfC%s",a);

則。

A)運(yùn)行后將輸出ChinaB)運(yùn)行后將輸出ChC)運(yùn)行后將輸出ChiD)編譯犯錯

18.判斷字符串si是否不小于字符串s2,應(yīng)當(dāng)使用。D

A)if(sl>s2)B)if(strcmp(sl,s2))C)if(strcnip(s2,sl)>0)D)if(strcmp(sl,s2)>0)

19.如下程序的輸出成果是。A

#includc<sidio.h>

main()

{charch[7]={"12ab56"};

inti,s=O;

for(i=0;ch[i]>=,0'&&ch[i]<='9,;i+=2)

s=IO*s+ch[i]-'O';

printfC'%d\n",s);

)

A)IB)1256C)12ab56D)1

20.當(dāng)運(yùn)行如卜程序時,從健盤輸入:AhaMA[空格]Aha<回車>,則程序的輸出成果是。A

#include<stdio.h>

inain()

{chars[80],c='a';

inti=0;

scanf("%s”,s);

while(s[i]!='\O')

(if(s[i]==c)s[i]=s[i]-32;

elseif(s[i]==c-32)s[i]=s[i]+32;

i++;

)

puts(s);

)

A)ahAMaB)AbAMaC)AhAMa[空格]ahAD)ahAMa[空珞]ahA

操作題:

1.下列給定程序中,函數(shù)fun()的功效是:將形參a所指數(shù)組中的前半部分元素中的值與后半部

分元素中的值對換。形參n中存儲數(shù)組中數(shù)據(jù)的個數(shù),若n為奇數(shù),則中間的元素不動。

例如:若a所指數(shù)組中的數(shù)據(jù)為:1、2、3、4、5、6、7、8、9,則調(diào)換后為:6、7、8、9、5、

1、2、3、4。

請?jiān)诳瞻滋幪钊胝_內(nèi)容,使程序得出正確的成果。

(源程序在考生文獻(xiàn)夾“WEXAM\OOOOOOOO"下)

不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

#inchide<stdio.h>

科defineN9

voidfun(inta[].intn)

{inti,t,p;

p=(n%2==0)?n/2:n/2+1;

fbr(i=0;i<n/2;i++)

{t=afi];

ali]=alp+i];

a[p+i]=t;

I

)

main()

(intb[N|={i,2,3,4,5,6,7,8,9),i;

printf("\nTheoriginaldata:\nM);

for(i=O;i<N;i++)

printf("%4d",b|i]);

prinif("\n");

fun(b.N);

printf("\nThcdataaftermo\ing:\n");

for(i=0:i<N;i++)

printf("%4d",b|i));

printf("\n"):

}

第八章函數(shù)

1.如下函數(shù)值的類型是。A

fun(floatx)

{floaty:

y=3*x-4;

returny;

)

A)intB)不確定C)voidD)float

2.如下程序的輸出成果是。B

#inckide<stdio.h>

inta,b;

voidfun()

{a=100;b=200;}

main()

{inta=5,b=7;

fun();

prinlf("%d%d\n",a,b);

)

A)100200B)57C)00D)75

3.如下程序的輸出成果是。C

#include<stdio.h>

intx=3;

main()

(inti;

for(i=l;i<x;i++)incrc();

)

incre()

(staticintx=l;

x*=x+l;

prinlf("%d",x);

)

A)33B)22C)26D)25

4.如下程序的輸出成果是。B

#include<stdio.h>

intt(intn)

{if(n==l)rclumI;

elsereturnf(n-l)+l;

)

main()

{inti.j=O;

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

j+=f(i);

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

}

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

5.如下程序的輸出成果是。A

#include<stdioh>

intd=l;

fun(intp)

intd=5;

d+=p++;

printf("%d",d);

)

main()

{inta=3;

fun(a);

d+=a++;

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

)

A)84B)96C)94D)85

6.函數(shù)調(diào)用strcal(strcpy(sirl.slr2).slr3)的功效是。C

A)將字符串st"復(fù)制到字符串si”中后再連接到字符串sir3之后

B)將字符串和1連接到字符串str2之后冉熨制到字符即和3之后

。將字符串str2復(fù)制到字符串strl中后再將字符串str3連接到字符串stil之后

D)將字符串*r2連接到字符串sirl之后再將字符串sirl受制到字符串SU3中

7.有如下程序:

intsub(intn)

if(n<5)return0;

elseif(n>l2)return3:

return1;

if(n>5)return2;

)

main()

inta=10;

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

)

該程序的輸出成果是。B

A)0B)IC)2D;3

8.如下程序的輸出成果是。C

#include<stdio.h>

intd=l;

fun(intp)

{staticintd=5;

d+=p;

printf("%<l",d);

return(d);

)

main()

{inta=3:

prinlf("%d\n",fun(a+fun(d))):

}

A)699B)6690615151))6615

9.在一個源文獻(xiàn)中定義的外部變量的作用域?yàn)椤

A)本文獻(xiàn)的所有范闈B)本程序的所有范圍

C)小國數(shù)的所有范圍D)從定義該變量的位置開始至小義獻(xiàn)結(jié)束

10.如下論述中正確的是。B

A)全局變量的作用域一定比局部變量的作用域范圍大

B)靜態(tài)(static)類別變量的生存期貫通于整個程序的運(yùn)行期間

C)函數(shù)的形參都屬于全局變量

D)未在定義語句中賦初值的auto變量和static變量的初值都是隨機(jī)值

II.如下對C語言函數(shù)的描述中,正確的是。A

A)C程序由一個或一個以上的函數(shù)組成B)C函數(shù)既能好嵌套定義又能夠遞歸調(diào)用

C)函數(shù)必須有返回值,否則不能使用函數(shù)D)C程序中調(diào)用關(guān)系的所有函數(shù)必須放在同?個程序文獻(xiàn)中

12.C語言中形參的默認(rèn)存儲類別是。A

A)自動(auto)B)靜態(tài)(static)C)存儲器(register)D)外部(extern)

13.如下論述中不正確的是。B

A)在C語言中,調(diào)用函數(shù)時,只能把實(shí)參的值傳送給形參,形參的值不能傳送給實(shí)參

B)在C函數(shù)中,最佳使用全局變量

C)在C語言中,形式參數(shù)只是局限于所在函數(shù)

D)在C語言中,函數(shù)名的存儲類別為外部

14.C語言中函數(shù)返回值的類型由決定。D

A)relurn語句中的體現(xiàn)式類型B)調(diào)用函數(shù)的主調(diào)函數(shù)類型

。調(diào)用函數(shù)時的暫時類型D)定義函數(shù)時所指定的函數(shù)類型

15.C語言要求,調(diào)用一個函數(shù)時,實(shí)參變量和形參變量之間的數(shù)據(jù)傳遞是。C

A)地址傳遞B)由實(shí)參傳給形參,并由形參返回給實(shí)參

C)值傳遞D)由用戶指定傳遞方式

16.在C語言中。D

A)函數(shù)的定義能夠圾套,但函數(shù)的調(diào)用不能夠嵌套

B)函數(shù)的定義和調(diào)用均能夠嵌套

C)函數(shù)的定義和調(diào)用均不能夠嵌套

D)函數(shù)的定義不能夠嵌套,但函數(shù)的調(diào)用能夠嵌套

17.如下函數(shù)調(diào)用語句中,含有的實(shí)參個數(shù)是。A

fun(x+y,(eI,e2),fun(xy.d,(a,b)));

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

18.如下程序的輸出成果是。C

#inciude<sidio.h>

fun(intx)

{staticinta=3;

a+=x;

rciurn(a);

}

main()

{intk=2,m=i,n;

n=fun(k);

n=fun(m);

prinif("%d".n);

)

A)3B)4C)6D)9

19.如下程序的輸出成果是。0

#include<stdio.h>

intt'unc(inla,inlb)

(return(a+b);)

main()

{intx=2,y=5,z=8,r:

r=func(func(x,y),z);

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

}

A)12B)13C)14D)15

第9章指針

1.在闡明語句:int*f();中,標(biāo)識符f代表的是。D

A)一個用于指向整型數(shù)據(jù)的指針變量B)一個用于指向一維數(shù)組的行指針

。一個用于指向函數(shù)的指針變量D)一個返回僅為指針型的函數(shù)名

2.如下程序的輸出成果是。A

#includc<sldio.h>

#includc<slring.h>

main()

{char*p="abcde\Ofghjik\O";

printf(,'%d\n",$trlen(p));

)

A)12B)15C)6D)5

3.設(shè)有如下語句,則不是對a數(shù)組元素的正確引用,其中OWi<IO°D

inta[IO]=[0,1,2,3,4,567,8,9},*p=a;

A)a[p-a]B)*(&a[i])C:p[i]D)*(*(a+i))

4.如下程序段的輸出成果是。A

int*var.ab;

ab=IOO;var=&ab:ab=*var+10;

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

A)110B)100C)0D)出現(xiàn)錯誤

5.設(shè)有如下的程序段:B

charstr[]="Hello";

char*ptr;

ptr=str;

執(zhí)行上面的程序段后,*(p〔r+5)的值為。

A/o'B)'\0'C)不確定的值D)b的地址

6.若有如下定義和語句:A

#include<stdio.h>

inia=4,b=3,*p,*q,*w;

p=&a:q=&b:w=q:q=NULL;

則如下選項(xiàng)中錯誤的語句是。

A)*q=0;B)w=p;C)?p=a;D)*p=*w;

7.下面函數(shù)的功效是。B

sss(s,t)

char*s,*l;

{while((*s)&&(*t)&&(*t++==*s++));

rcturn(*s-*();

)

A)求字符串的長度B)比較兩個字符串的大小

。將字符串$復(fù)制到字符串I中D)將字符串S接續(xù)到字符串I中

8.有如下程序:

#include<stdlib.h>

main()

char*p.*q;

p=(char*)malloc(sizeof(char)*20);q=p;

scanf("%s%s",p,q)iprintf("%s%s\n",p,q);

)

若從鍵盤輸入:abcdefc回車〉,則輸出成果是。A

A)defdefB)abcdefC)abcdD)dd

9.若有如下闡明和定義:

typedefint*INTEGER;

INTEGERp.*q:

如下論述正確的是。B

A)p是ini型變量B)p是基類型為int的指針變量

C)q是基類型為ini的指針變量D)程序中可用INTEGER替代ini類型名

10.闡明語句int*(*p)();的含義是。D

A)p是一個指向ini型數(shù)組的指甘

B)p是指針變量,它組成了指針數(shù)組

C)p是一個指向函數(shù)的指針,該函數(shù)的返回值是一個整型

D)p是一個指向函數(shù)的指針,該函數(shù)的返回值是一個指向整型的指計(jì)

11.已知char選擇正確的語句。C

A)p*=3;B)p/=q;C)p+=3;D)p+=q:

12.已知inli,x⑶[4];,則不能將的值賦給變量i的語句是。C

A)i=*(*(x+l)+I);B)i=x[l][i];

C)i=*(*(x+l)):D)i=*(x[l]+l);

13.下列程序的輸出成果是。B

#include<stdio.h>

intb=2;

intfunc(int*a)

{b+=*a;return(b);

1

main()

{inta=2,res=2;

res+=func(&a);

printf("%(l\n",res);

}

A)4B)6C)8D)1O

14.有如下程序段:

int*p,a=10,b=l;

p=&a;a=*p+b;

執(zhí)行該程序段后,a的值為。B

A)12B)llC)1OD)編譯犯錯

15.對于基類型相同的兩個指釬變量之間,不能進(jìn)行的運(yùn)算是。C

A)<B)=C)+D)-

16.如下程序的輸出成果是。C

科include<sldio.h>

inain()

{charch⑵[5]={"6937","8254"),*p[2];

inti,j.s=O:

for(i=0;i<2;i++)p(i]=ch[i];

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

forO=0;p[i]|j|>'\0'j+=2)

s=10*s+pli][j]-'0';

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

)

A)69825B)63825C)6385D)693825

17.當(dāng)調(diào)用函數(shù)時,實(shí)參是?個數(shù)組名,則向函數(shù)傳遞的是。B

A)數(shù)組的長度B)數(shù)組的首地址

。數(shù)組每一個元素的地址D)數(shù)組每個元素中的值

18.若有闡明諳句:in【a,b,c,*d=&c:,則能止確從鍵盤讀入3個整數(shù)分別賦給變量a、b、c的諾句是。A

A)scanf("%d%d%d".&a,&b.d);B)scanf("%d%d%d".&a.&b,&d);

C)scanf("%d%d%d",a,b,d);D)scanf(,,%d%d%d",a,b,*d);

19.若定義:inta=511,*b=&a;,則prinlf("%d\n",*b);的輸出成果為。D

A)無確定值B)a的地址C)512D)51l

第10章編譯預(yù)處理和動態(tài)存儲分派

】.對下面程序段,止確的判斷是。B

#defineA3

#defineB(a)?A+l)*a)

x=3*(A+B(7));

A)程序錯誤,不許嵌套宏定義B)x=93

C)x=21D)程序錯誤,宏定義不許有參數(shù)

2.如下程序的輸出成果為。B

#include<stdio.h>

#dcfincF(y)3.84+y

#definePR(a)printf("%d",(int)(a))

#defincPRINT(a)PR(a);pulchar('\n')

main()

{intx=2;

PRINT(F(3)*x);

)

A)8B)9C)10D)11

3.如下說法中正確的是。C

A)#define和prinlf都是C語句B)#define是C語句,而prinif不是

C)prinif是C語句,但#define不是D)#define和prinlf都不是C語句

4.如下程序的愉出成果是。C

#definef(x)x*x

#includc<stdio.h>

inain()

{inta=6.b=2,c;

c=f(a)/f(b):

printf("%d\nM,c):

)

A)9B)6C)36D)I8

5.如下程序運(yùn)行后,輸出成果是。B

#definePT5.5

#defineS(x)PT*x*x

#include<stdio.h>

main()

(inta=l.b=2;

printf("%4.1f\n".S(a+b));

)

A)49.5B)9.5C)22.0D)45.0

6.卜列程序執(zhí)行后的輸出成果是。B

#defineMA(x)x*(x-l)

#include<stdio.h>

main()

{inta=l.b=2;printf("%d\n".MA(l+a+b));

)

A)6B)8C)1OD)12

7.有如下程序:

#defineN2

#dcfincMN+l

#detineNUM2*M+l

main()

(inti;

tbr(i=l;i<=NUM;i++)printf("%d\n",i);

I

該程序中的for循環(huán)執(zhí)行的次數(shù)是。C

A)5B)6C)7D)8

8.程序中頭文獻(xiàn)lypel.h的內(nèi)容是:

#defineN5

#defineMlN*3

程序如下:

#includc"typcl.h"

#defineM2N*2

main()

(inti;

i=Ml+M2;printf("%d\n",i);

)

程序編譯后運(yùn)行的輸出成果是。C

A)10B)20C)25D)30

9.如下正確的描述為。C

A)每個C語言程序必須在開頭使用預(yù)處理命令#include<sldio.h>

B)預(yù)處理命令必須位于C源程序的首部

C)在C忠言中預(yù)處理命令都以"#"開頭

D)C語言的預(yù)處理命令只能實(shí)現(xiàn)宏定義和條件編譯的功效

10.從下列選項(xiàng)中選擇不會引起二義性的宏定義是。I)

A)#definePOWER(x)x*xB)#definePOWER(x)(x)*(x)

C)#definePOWER(x)(x*x)D)#definePOWER(x)((x)*(x))

11.設(shè)有如下宏定義:

#defineN3

#defineY(n)((N+l)*n)

則執(zhí)行語句”z=2*(N+Y(5+D)丁后,z的值為。C

A)犯錯B)42C)48D)54

12.若有?宏定義#defineMOD(x,y;x%y,則執(zhí)行如下語句后的輸出為。B

iniz,a=i5,b=100;

z=MOD(b.a);

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

A)ilB)10C)6D)宏定義不合法

13.如下程序的輸出成果是D

#include<stdio.h>

inta[3][3]={l,2,3,4,5,6,7,8,9},*p;

main()

p=(int*)nialloc(sizeof(int));

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

free(p);

)

f(int*s.intp[H3])

{*s=p[1)(11:)

A)IB)4C)7D)5

第11章結(jié)構(gòu)體與共用體

1.在16位的PC機(jī)上使用C語言,若有如下定義:D

structdata

{inti;

charch:

doublef;

}b;

則結(jié)構(gòu)變量b占用內(nèi)存的字節(jié)數(shù)是。

A)IB)2C)8D)11

2.設(shè)有如下闡明和定義語句,則下面體現(xiàn)式中值為3的是。D

structs

{inti;

structs*i2;

);

staticstructsa[3]={1.&a[I].2.&a(2].3.&a[O]);

staticstructs*ptr;

ptr=&a(IJ:

A)ptr->i++B)ptr++->IC)*ptr->iD)++ptr->i

3.有如下程序:

main()

union{

unsignedintn;

unsignedcharc;

}ul;

ul.c='A';

printf("%c\n",ul.n);

)

執(zhí)行后輸出成果是C

A)產(chǎn)生語法錯B)隨機(jī)值C)AD)65

4.設(shè)有如下闡明語句:C

structstu

(inta;

floatb;

}stutype;

則下面的論述正確的是。

A)sirucl是結(jié)構(gòu)體類型名B)s【ruclstu是用戶定義的結(jié)構(gòu)體變量名

C)siutype是用戶定義的結(jié)構(gòu)體變量名D)a和b都是結(jié)構(gòu)體變量名

5.如F程序輸出成果是B

#include<stdio.h>

lypedefunion

(longi;

intk[5|;

charc;

}DATE;

structdate

intcat;

DATEcow:

doubledog;

}too;

DATEmax:

muin()

(pnntl("%d\n",sizcof(structdate)+sizcof(max));

)

A)25B)30C)18D)8

6.如下對結(jié)構(gòu)體變量slul中組員age的非法引用是。B

structstudent

{intage;

intnum;

}stul,*p;

p=&stul:

A)stuI.ageB)student.ageC)p->ageD)(*p).age

7.下列程序中,結(jié)構(gòu)體變量a所占內(nèi)存字節(jié)數(shù)是。C

unionU

(charst[4];

inti;

longI:

);

structA

(intc;

unionUu;

}a;

A)4B)5C)6D)8

8.設(shè)有如下闡明語句:

structex

intx;floaty;charz;

}example;

則下面的論述中不正確的是。B

A)strucl是結(jié)構(gòu)體類型的核心字B)cxamplc是結(jié)構(gòu)體類型名

C)x,y,z都是結(jié)構(gòu)體組員名D)struclex是結(jié)構(gòu)體類型名

9.若有下面的闡明和定義:

structtest(

intml;charm2;floatm3;

unionuu(

charul[5];

intu2[2];

}ua;

}myaa;

則sizeof(structtest)的值是。A

A)12B)16C)14D)9

10.已知:

union

(inti;

chare;

floata;

}test;

則sizeof(test)的值是。A

A)4B)5C)6D)7

II.如下對C語言中聯(lián)合類型數(shù)據(jù)的正確論述是。C

A)?旦定義了?個聯(lián)合變量后,即可引用該變量或該變量中的任意組員

B)一個聯(lián)合變量中能夠同時存儲其所有組員

C)一個聯(lián)合變量中不能同時存儲其所有組員

D)聯(lián)合類型數(shù)據(jù)能夠出目前結(jié)構(gòu)體類型定義中,但結(jié)構(gòu)類型數(shù)據(jù)不能出目前聯(lián)合類型定義中

結(jié)構(gòu)體操作題:

1.下列給定程序是建立一個帶頭節(jié)點(diǎn)的單向鏈表,并用隨機(jī)函數(shù)為各節(jié)點(diǎn)賦值。函數(shù)fun的功

效是將單向鏈表節(jié)點(diǎn)(不包括頭節(jié)點(diǎn))數(shù)據(jù)域?yàn)榕紨?shù)的值累加起來,并且作為函數(shù)值返同。

請更正函數(shù)fun中的錯誤,使它能得出正確的成果。

注意:不要改動main函數(shù)

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論