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

下載本文檔

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

文檔簡(jiǎn)介

第二章:C語(yǔ)言概述

1.以下(④)是不對(duì)的的轉(zhuǎn)義字符。

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

2.構(gòu)成C語(yǔ)言程序的基本單位是(@)。

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

3.C語(yǔ)言規(guī)定:在一個(gè)源程序中,main()函數(shù)的位置(C)。

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

C.可以任意D.必須在最后

4.為求出return語(yǔ)句返回計(jì)算100!的結(jié)果,此函數(shù)的類型說(shuō)明應(yīng)為(D)。

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

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

A.必須為字母

B.必須為下劃線

C.必須為字母或下劃線

D.可以是字母、數(shù)字和下劃線中的任意一種

6.以下選項(xiàng)中合法的用戶標(biāo)記符是(D)。

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

7.C語(yǔ)言中的簡(jiǎn)樸數(shù)據(jù)類型有(C)。

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

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

8.以下選項(xiàng)中不對(duì)的的整型常量是(B)。

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

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

A/\fBJA”C.67D.A

10.以下選項(xiàng)中不對(duì)的的實(shí)型常量是(A)。

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

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

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

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

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

第三章:運(yùn)算符與表達(dá)式(原先給的答案很多錯(cuò)誤)

1.以下敘述中不對(duì)的的是(B)。

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

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

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

D.以上表述都是對(duì)的的

2.若變量x、y、z均為double類型且已對(duì)的賦值,不能對(duì)的表達(dá)x/yXz的C語(yǔ)言表達(dá)式是(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?則邏輯表達(dá)式

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

A.OB.lC.2D.3

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

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

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

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

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

5.以下程序的輸出結(jié)果是(C)。

#include<stdio.h>

main()

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

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

)

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

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

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

printf("%d\nM,pad);

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

7.以下程序的輸出結(jié)果是(B)。

#include<stdio.h>

main()

{inti=010,j=10;

pHntf("%d,%d\n”,++i,j--);

)

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

8.已知由以下選項(xiàng)中對(duì)的的語(yǔ)句是(D)。

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

9.若有定義:intx=3,y=2;floata=2.5,b=3.5;則下面表達(dá)式的值為(B)。

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

A.1.0B.lC.2.0D.2

10.假設(shè)所有變量均為整型,則表達(dá)式(a=2,b=5,a++,b++,a+b)的值為(C)。

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

11.若有定義"intx=l,y=l;H,表達(dá)式(!x||y--)的值是(B)。

A.OB.lC.2D.-1

12.有以下程序:

main()

{unsignedchara,b,c;

a=0x3;

b=a|0x8;

c=b?l;

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

}

程序運(yùn)營(yíng)后的輸出結(jié)果是(D)。

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

13.若已定義x和y為double類型,則表達(dá)式x=l,y=x+3/2的值是(C)。

A.lB.2C.2.0D.2.5

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

intcl=l,c2=2,c3;

c3=1.0/c2*cl;

A.OB.0.5C.lD.2

15.以下程序的輸出結(jié)果是(D)。

#include<stdio.h>

main()

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

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

}

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

第四章:基本語(yǔ)句

1.以下選項(xiàng)中不是C語(yǔ)句的是Co

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

C)a=5,c=10D){;)

2.執(zhí)行以下程序時(shí)輸入1234567,程序的運(yùn)營(yíng)結(jié)果為」。

#include<stdio.h>

rnain()

{intx,y;

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

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

)

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

3.若有定義chara;intb;floatc;doubled;,則表達(dá)式a*b+c-d結(jié)果為型A。

A)doubleB)intC)floatD)char

4.若有定義inta,b;,則用語(yǔ)句scanf("%d%d”,&a,&b);輸入a,b的值時(shí),不能作為輸入數(shù)據(jù)分隔符的是工

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

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

ab〈回車)

cv回車,

def<回車>

則輸出結(jié)果為Co

#defineN6

#include<stdio.h>

main()

{charc[N];

inti=0;

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

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

}

A)

a

b

c

d

e

f

B)

a

b

d

C)

ab

d

D)abcdef

6.以下程序的輸出結(jié)果是上

#include<stdio.h>

main()

{printf(n%f,,2.5+1*7%2/4);

I

A)2.500000B)2.750000C)3.375000D)3.000000

7.根據(jù)定義和數(shù)據(jù)的輸入方式,輸入語(yǔ)句的對(duì)的形式是Bo

已有定義:float

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

3.5

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

C)scanf("%3.2f%2.1D)scanf("%3.2f,%2.1f;&flt&f2);

8.以下程序不用第3個(gè)變量,實(shí)現(xiàn)將兩個(gè)數(shù)進(jìn)行對(duì)調(diào)的操作,請(qǐng)?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;

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

)

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

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

1.以下選項(xiàng)中,能對(duì)的表達(dá)aN10或aWO的關(guān)系表達(dá)式是—D_。

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

2.假定所有變量均已對(duì)的定義,下列程序段運(yùn)營(yíng)后x的值是_B__。

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

if(!a)x-;

elseif(b);

if(c)x=3;

elsex=4;

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

3.以下程序的輸出結(jié)果

#include<stdio.h>

main()

(inta,b,c=246;

a=c/100%9;

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

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

}

A)2,lB)3,2C)4,3D)2,-l

4..已知a=l、b=3、c=5、d=5,下列程序段運(yùn)營(yíng)后,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.能對(duì)的表達(dá)a和b同時(shí)為正或同時(shí)為負(fù)的表達(dá)式是Do

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

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

6.以下程序的輸出結(jié)果是_C—。

#include<stdio.h>

main()

{inta=-l,b=l;

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

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

else

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

)

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

7.下列關(guān)于switch語(yǔ)句和break語(yǔ)句的結(jié)論中,對(duì)的的是_B_

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

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

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

D)break語(yǔ)句只能用于switch語(yǔ)句中

8.若有定義inta=l,b=O;,則執(zhí)行以下語(yǔ)句后,輸出為B

switch(a)

{case1:

switch(b)

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

case1:printf("**l**");break;

)

case2:printf("**2**");break;

}

A)**()**B)**()****2**

C)**0****l****2**D)有語(yǔ)法錯(cuò)誤

9.以下程序的輸出結(jié)果是A一。

#include<stdio.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=OD)a=2,b=2

10.以下程序的輸出結(jié)果是_C_o

#include<stdio.h>

main()

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

if(a>b)

if(b<0)c=O;

elseC++;

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

}

A)OB)1C)-2D)-3

11.閱讀以下程序:

#include<stdio.h>

main()

{intx;

scanf("%d",&x);

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

elseprintf(,'%d,',x++);

}

程序運(yùn)營(yíng)后,假如從鍵盤輸入5,則輸出結(jié)果是.B。

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

12.兩次運(yùn)營(yíng)下面的程序,假如從鍵盤上分別輸入6和4,則輸出的結(jié)果是_A_

#include<stdio.h>

main()

{intx;

scanf(H%dn,&x);

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

elseprintf("%d\n",x—);

}

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

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

1.在while(x)語(yǔ)句中的x與下面條件表達(dá)式等價(jià)的是。D

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

2.以下程序的輸出結(jié)果是。D

#include<stdio.h>

main()

{int

for(k=5;k>=l;k-)

{m=0;

for(j=k;j<=5;j++)

m=m+k*j;

)

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

}

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

3.以下程序的輸出結(jié)果是。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.以下程序的輸出結(jié)果是。A

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

while(a<b<c){t=a;a=b;b=t;c—;)

printf("%d,%d,%d”,a,b,c);

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

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

#include<stdio.h>

main()

{inti,j;

for(i=0,j=l;i<=j+l;i+=2,j-)printf(',%d\n';i);

)

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

6.有以下程序:

#include<stdio.h>

main()

{intn=9;

while(n>6){n—;printf("%d",n);}

)

該程序段的輸出結(jié)果是。B

A)987B)876C)8765D)9876

7.有以下程序段:A

intk=0;

while(k=l)k++;

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

A)無(wú)限次B)有語(yǔ)法錯(cuò),不能執(zhí)行。一次也不執(zhí)行D)執(zhí)行一次

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

#include<stdio.h>

main()

{inti=0;

while(i<IO)

{if(i<l)continue;

if(i==5)break;

i++;

)

}

A)1B)10

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

9.以下程序的輸出結(jié)果是。B

#include<stdio.h>

main()

{inti=0,a=0;

while(i<20)

{for(;;)

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

elsei—;

}

i+=ll;a+=i;

)

printf(H%d\n';a);

}

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

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

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

11.以下的for循環(huán)。C

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

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

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

12.執(zhí)行以下程序段的結(jié)果是。B

intx=23;

do

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

)vvhile(!x);

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

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

第7章:數(shù)組

1.有以下程序:

#include<stdio.h>

#include<string.h>

main()

{chara['f,'glh八0};

inti,j;

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

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

)

程序運(yùn)營(yíng)后的輸出結(jié)果是。D

A)9,9B)8,9c)1,8D)9,8

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

#include<stdio.h>

voidreverse(inta[],intn)

{inti,t;

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

{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;)

}

main()

{intb[10J=(1,2,3,4,5,6,7,8,9,10);inti,s=0;

reverse(b,8);

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

printf(H%d\n';s);

)

則程序運(yùn)營(yíng)后的輸出結(jié)果是。A

A)22B)10C)34D)30

3.有以下程序:

main(intargc,char*argv1])

{intn,i=0;

while(argv[l][i]!-\0')

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

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

}

intfun()

{staticints=0;

s+=l;

returns;

)

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

exam123〈回車〉

則運(yùn)營(yíng)結(jié)果為。A

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

4.以下程序的輸出結(jié)果是。A

#include<sidio桿h>

#include〈string桿h>

main()

{charstr[12]={'s,X,r\'iVn,;g'};

printf("%d\n",strlen(str));}

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

5.若有說(shuō)明:inta[3][4];,則對(duì)數(shù)組a元素非法引用的是。D

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

6.若有說(shuō)明:inta川4]={0,0};,則以下選項(xiàng)中,不對(duì)的的是。D

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

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

C)由于二維數(shù)組a中初值的個(gè)數(shù)不能被第二維大小的值整除,則第一維的大小等于所得商數(shù)再加1,故數(shù)組a的

行數(shù)為1

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

7.以下程序中有錯(cuò)誤的一行是。D

(l)main()

(2)(

(3)inta[3]={l);

(4)inti;

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

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

(7)printf("%f\n”,a⑼);

(8)}

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

8.若有說(shuō)明:inta[][3]={1,23,4,5,6,71;,貝必?cái)?shù)組第一維的大小是。B

A)2B)3C)4D)無(wú)擬定值

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

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

10.以下程序的輸出結(jié)果是。A

#includc<stdio.h>

#include<string.h>

main()

{chararr[2][4];

strcpy(arr,"you");strcpy(arr[l],"meH);

arr[0][3]=,&,;

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

)

A)you&meB)youC)meD)err

11.有以下程序:

#include<stdio.h>

main()

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

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

printf(H%d\n",n[k]);

}

該程序的輸出結(jié)果是。D

A)不定值B)2C)1D)0

12.以下程序的輸出結(jié)果是。A

#inchidc<stdio.h>

main()

{inta[3][3]={{l,2},{3,4},{5,6}),i,j,s=O;

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

forO=0;j<i;j++)s+=a[i][j];

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

)

A)14B)19C)2()D)21

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

#include<stdio桿h>

#include〈string桿h>

main()

{charSSU0]="1,2,3,4,5”;

gets(ss);strcat(ss,"6789u);printf(n%s\n*',ss);

}

A)ABC6789B)ABC67C)12345ABC6D)ABC456789

14.以下程序的輸出結(jié)果是。A

#include<stdio.h>

f(intb[],intm,intn)

{inti,s=O;

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

returns;

}

main()

{intx,a[]={1,23,4,5,6,7,8,9);

x=f(a,3,7);

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

}

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

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

#include<stdio.h>

voidsort(inta[],intn)

{int

for(i=0;i<n-l;i++)

forG=i+l;j<n;j++)

if(a[i]<aB]){t=a[i];a[i]=a[j];aU]=t;)

}

main()

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

sort(&aa[3],5);

for(i=();i<l();i++)printf(',%d,",aa[i]);

printf(H\n");

}

程序運(yùn)營(yíng)后的輸出結(jié)果是。C

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

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

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

chara[]=HABCDEFH;

則以下敘述對(duì)的的是。D

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

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

17.有以下程序段:D

chara[3],b[]=,fChinau;

a=b;

printf("%s”,a);

則。

A)運(yùn)營(yíng)后將輸出ChinaB)運(yùn)營(yíng)后將輸出ChC)運(yùn)營(yíng)后將輸出ChiD)編譯犯錯(cuò)

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

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

19.以下程序的輸出結(jié)果是。A

#include<stdio.h>

main()

{charch[7]={n12ab56,,l;

inti,s=O;

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

s=10*s+ch[i]-'0';

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

)

A)1B)1256C)12ab56D)1

20.當(dāng)運(yùn)營(yíng)以下程序時(shí),從鍵盤輸入:AhaMA[空格]Ahav回車》,則程序的輸出結(jié)果是。A

#include<stdio.h>

main()

{chars[801,c='a';

inti=O;

scanf("%s",s);

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

{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[空格]ahA口)@11人1\^[空格心1^

操作題:

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

分元素中的值對(duì)換。形參n中存放數(shù)組中數(shù)據(jù)的個(gè)數(shù),若n為奇數(shù),則中間的元素不動(dòng)。

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

1、2、3、4。

請(qǐng)?jiān)诳瞻滋幪钊雽?duì)的內(nèi)容,使程序得出對(duì)的的結(jié)果。

(源程序在考生文獻(xiàn)夾”WEXAM\00000000”下)

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

#include<stdio.h>

#defineN9

voidfun(inta[],intn)

{inti,t,p;

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

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

{t=a[i];

a[i]=a[p+i];

a[p+i]=t;

)

}

main()

(intb[N]={1,2,3,4,5,6,78,9”;

printf("\nTheoriginaldata:\n");

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

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

printf("\n");

fun(b,N);

printf("\nThedataaftermoving:\n");

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

printf(',%4d,',b[i]);

printf("\nn);

)

第八章函數(shù)

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

fun(floatx)

{floaty;

y=3*x-4;

returny;

)

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

2.以下程序的輸出結(jié)果是。B

#include<stdio.h>

inta,b;

voidfun()

{a=100;b=200;}

main()

{inta=5,b=7;

fun();

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

}

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

3.以下程序的輸出結(jié)果是。C

#include<stdio,h>

intx=3;

main()

{inti;

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

}

incre()

{staticintx=l;

x*=x+l;

printf("%d",x);

}

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

4.以下程序的輸出結(jié)果是。B

#includc<stdio.h>

intf(intn)

(if(n==1)return1;

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.以下程序的輸出結(jié)果是。A

#include<stdio.h>

intd=l;

fun(intp)

{intd=5;

d+=p++;

printf(n%d”,d);

)

main()

{inta=3;

fun(a);

d+=a++;

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

)

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

6.函數(shù)調(diào)用strcat(strcpy(strl,str2),str3)的功能是。C

A)將字符串strl復(fù)制到字符串st「2中后再連接到字符串str3之后

B)將字符串strl連接到字符串sir2之后再?gòu)?fù)制到字符串slr3之后

C)將字符串和2復(fù)制到字符串strl中后再將字符串str3連接到字符串strl之后

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

7.有如下程序:

intsub(intn)

{if(n<5)return0;

elseif(n>12)return3;

return1;

if(n>5)return2;

}

main()

{inta=10;

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

}

該程序的輸出結(jié)果是。B

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

8.以下程序的輸出結(jié)果是。C

#includc<stdio.h>

intd=l;

fun(intp)

{staticinid=5;

d+=p;

printf(H%d",d):

return(d):

)

main()

{inta=3;

printf(H%d\n'\fun(a+fun(d)));

)

A)699B)669Q61515D)6615

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

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

C)本函數(shù)的所有范圍D)從定義該變量的位置開(kāi)始至本文獻(xiàn)結(jié)束

1().以下敘述中對(duì)的的是。B

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

B)靜態(tài)(static)類別變量的生存期貫穿于整個(gè)程序的運(yùn)營(yíng)期間

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

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

11.以下對(duì)C語(yǔ)言函數(shù)的描述中,對(duì)的的是。A

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

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

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

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

13.以下敘述中不對(duì)的的是。B

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

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

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

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

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

A)rcturn語(yǔ)句中的表達(dá)式類型B)調(diào)用函數(shù)的主調(diào)函數(shù)類型

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

15.C語(yǔ)言規(guī)定,調(diào)用一個(gè)函數(shù)時(shí),實(shí)參變量和形參變量之間的數(shù)據(jù)傳遞是。C

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

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

16.在C語(yǔ)言中。D

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

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

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

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

17.以下函數(shù)調(diào)用語(yǔ)句中,具有的實(shí)參個(gè)數(shù)是。A

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

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

18.以下程序的輸出結(jié)果是。C

#include<stdio,h>

fun(intx)

{staticinta=3;

a+=x;

rcturn(a);

)

main()

{intk=2,m=l,n;

n=fun(k);

n=fun(m);

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

}

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

19.以下程序的輸出結(jié)果是。D

#include<stdio,h>

intfunc(inta,intb)

{retum(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.在說(shuō)明語(yǔ)句:int*f();中,標(biāo)記符f代表的是。D

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

C)一個(gè)用于指向函數(shù)的指針變量D)一個(gè)返回值為指針型的函數(shù)名

2.以下程序的輸出結(jié)果是。A

#include<stdio.h>

#include<string.h>

main()

{char*p=',abcde\Ofghjik\O'r;

printf("%d\n'\strlen(p));

)

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

3.設(shè)有以下語(yǔ)句,則不是對(duì)a數(shù)組元索的對(duì)的引用,其中0Wi<10。D

inta[l0]=[0,1,2,345,6,7,8,9),*p=a;

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

4.以下程序段的輸出結(jié)果是。A

int*var,ab;

ab=10O;var=&ab;ab=*var+10;

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

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

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

charstr[]="Hcllo";

char*ptr;

ptr=str;

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

A)bC)不擬定的值D)0的地址

6.若有以下定義和語(yǔ)句:A

#include<stdio.h>

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

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

則以下選項(xiàng)中錯(cuò)誤的語(yǔ)句是。

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

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

sss(s,t)

char*s,*t;

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

retum(*s-*t);

}

A)求字符串的長(zhǎng)度B)比較兩個(gè)字符串的大小

C)將字符串s復(fù)制到字符串t中D)將字符串s接續(xù)到字符串t中

8.有以下程序:

#inchide<stdlib.h>

main()

{char*p,*q;

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

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

)

若從鍵盤輸入:abcdefv回車〉,則輸出結(jié)果是。A

A)defdefB)abcdefC)abcdD)dd

9.若有以下說(shuō)明和定義:

typedefint*INTEGER;

INTEGERp,*q;

以下敘述對(duì)的的是。B

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

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

10.說(shuō)明語(yǔ)句int*(*p)();的含義是。D

A)p是一個(gè)指向im型數(shù)組的指針

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

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

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

11.已知char*p,*q;,選擇對(duì)的的語(yǔ)句。C

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

12.已知?jiǎng)t不能將的值賦給變量i的語(yǔ)句是。C

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

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

13.下列程序的輸出結(jié)果是。B

#includc<stdio.h>

intb=2;

intfunc(int*a)

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

}

main()

{inta=2,res=2;

res+=func(&a);

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

)

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

14.有如下程序段:

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

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

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

A)12B)llC)10D)編譯犯錯(cuò)

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

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

16.如下程序的輸出結(jié)果是。C

#include<stdio.h>

main()

{charch[2][5]={,'6937","8254,'h*p[2J;

inti,j,s=O;

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

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

ford=0;p[i][j]>'\(),;j+=2)

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

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

}

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

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

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

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

18.若有說(shuō)明語(yǔ)句:inlahc,叼=&c;,則能對(duì)的從鍵盤讀入3個(gè)整數(shù)分別賦給變量a、b、c的語(yǔ)句是。A

A)scanf(M%d%d%d';&a,&b,d);B)scanf("%d%d%d”,&a,&b,&d);

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

19.若定義:inta=51l,*b=&a;,則printf("%d\n”,*b);的輸出結(jié)果為。D

A)無(wú)擬定值B)a的地址C)512D)511

第10章編譯預(yù)解決和動(dòng)態(tài)存儲(chǔ)分派

1.對(duì)下面程序段,對(duì)的的判斷是。B

#defineA3

#defincB(a)((A+1)*a)

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

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

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

2.以下程序的輸出結(jié)果為。B

#include<stdio.h>

#defineF(y)3.84+y

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

#definePRINT(a)PR(a);putcharCVn1)

main()

{intx=2;

PRINT(F(3)*x);

)

A)8B)9C)1()D)11

3.以下說(shuō)法中對(duì)的的是。C

A)#define和prinlf都是C語(yǔ)句B)#deflne是C語(yǔ)句,而prinlf不是

C)p「intf是C語(yǔ)句,但#加住1?不是D)#define和printf都不是C語(yǔ)句

4.以下程序的輸出結(jié)果是。C

#definef(x)x*x

#include<stdio.h>

main()

{inta=6,b=2,c;

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

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

)

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

5.以下程序運(yùn)營(yíng)后,輸出結(jié)果是。B

#definePT5.5

#defineS(x)PT*x*x

#include<stdio.h>

main()

{inta=l,b=2;

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

)

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

6.下列程序執(zhí)行后的輸出結(jié)果是0B

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

#include<stdio.h>

rnain()

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

)

A)6B)8C)10D)12

7.有如下程序:

#defineN2

#defineMN+l

#defineNUM2*M+1

main()

{inti;

for(i=1;i<=NUM;i++)printf("%d\n'',i);

}

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

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

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

#defineN5

#defineMlN*3

程序如下:

#include"typel,hM

#defineM2N*2

main()

{inti;

i=M1+M2;printf(',%d\n,,,i);

)

程序編譯后運(yùn)營(yíng)的輸出結(jié)果是。C

A)10B)20C)25D)3()

9.以下對(duì)的的描述為。C

A)每個(gè)C語(yǔ)言程序必須在開(kāi)頭使用預(yù)解決命令#也日1111?<stdio.h>

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

C)在C語(yǔ)言中預(yù)解決命令都以〃#〃開(kāi)頭

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

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

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

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

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

#defineN3

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

則執(zhí)行語(yǔ)句"z=2*(N+Y(5+1));”后,z的值為。C

A)犯錯(cuò)B)42C)48D)54

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

intz,a=15,b=l(M);

z=MOD(b,a);

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

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

13.以下程序的輸出結(jié)果是D

#include<stdio.h>

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

main()

{p=(int*)malloc(sizeof(int));

f(p,a);

printfC%d\n",*p);

free(p);

)

f(int*s,intp[][3])

{*S=p[l][l];}

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

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

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

structdata

{inti;

charch;

doublef;

}b;

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

A)1B)2C)8D)11

2.設(shè)有以下說(shuō)明和定義語(yǔ)句,則下面表達(dá)式中值為3的是。D

structs

{inti;

structs*i2;

);

staticstructsa[3]={I,&a[1],2,&a[2],3,&a[0]};

staticstructs*ptr;

ptr=&a[l];

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í)行后輸出結(jié)果是C

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

4.設(shè)有以下說(shuō)明語(yǔ)句:C

structstu

{inta;

floatb;

}stutype;

則下面的敘述對(duì)的的是。

A)struct是結(jié)構(gòu)體類型名B)structstu是用戶定義的結(jié)構(gòu)體變量名

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

5.以下程序輸出結(jié)果是B

#includc<stdio.h>

typedefunion

(longi;

intk[5J;

charc;

}DATE;

structdate

{intcat;

DATEcow;

doubledog;

}too;

DATEmax;

main()

{printf("%d\n",sizeof(structdate)+sizeof(max));

}

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

6.以下對(duì)結(jié)構(gòu)體變量sail中成員age的非法引用是。B

structstudent

{intage;

intnum;

}siul,*p;

p=&stul:

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

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

unionU

{charsl[4];

inti;

long1;

};

structA

{intc;

unionUu;

}a;

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

8.設(shè)有以下說(shuō)明語(yǔ)句:

structex{

intx;floaty;charz;

}example;

則下面的敘述中不對(duì)的的是。B

A)struct是結(jié)構(gòu)體類型的關(guān)鍵字B)example是結(jié)構(gòu)體類型名

Ox,y,z都是結(jié)構(gòu)體成員名D)structex是結(jié)構(gòu)體類型名

9.若有下面的說(shuō)明和定義:

structtest{

intml;charm2;floatm3;

unionuu(

charul[5];

intu2[2];

}ua;

}myaa;

則sizeof(structtest)的值是。A

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

10.已知:

union

{inti;

charc;

floata;

}test;

則sizeof(test)的值是。A

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

11.以下對(duì)C語(yǔ)言中聯(lián)合類型數(shù)據(jù)的對(duì)的敘述是。C

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

B)一個(gè)聯(lián)合變量中可以同時(shí)存放其所有成員

C)?個(gè)聯(lián)合變量中不能同時(shí)存放其所有成員

D)聯(lián)合類型數(shù)據(jù)可以出現(xiàn)在結(jié)構(gòu)體類型定義中,但結(jié)構(gòu)類型數(shù)據(jù)不能出現(xiàn)在聯(lián)合類型定義中

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

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

能是將單向鏈表節(jié)點(diǎn)(不涉及頭節(jié)點(diǎn))數(shù)據(jù)域?yàn)榕紨?shù)的值累加起來(lái),并且作為函數(shù)值返回。

請(qǐng)改正函數(shù)fun中的錯(cuò)誤,使它能得出對(duì)的的結(jié)果。

注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論