2019年大學(xué)《C語言程序設(shè)計(jì)》期末考核題庫500題(含標(biāo)準(zhǔn)答案)_第1頁
2019年大學(xué)《C語言程序設(shè)計(jì)》期末考核題庫500題(含標(biāo)準(zhǔn)答案)_第2頁
2019年大學(xué)《C語言程序設(shè)計(jì)》期末考核題庫500題(含標(biāo)準(zhǔn)答案)_第3頁
2019年大學(xué)《C語言程序設(shè)計(jì)》期末考核題庫500題(含標(biāo)準(zhǔn)答案)_第4頁
2019年大學(xué)《C語言程序設(shè)計(jì)》期末考核題庫500題(含標(biāo)準(zhǔn)答案)_第5頁
已閱讀5頁,還剩89頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2019年大學(xué)C語言期末考試題庫500題含答案

一、選擇題

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

main()

{inta=7,b=5;

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

)

A5BlCOD不確定值

2.以下函數(shù)調(diào)用語句中含有()個(gè)實(shí)參。

func((el,e2),(e3,e4,e5));

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

ttdefineN2

#defineMN+2

#defineCUBE(x)(x*x*x)

include"stdio.h"

main()

{inti=M;

i=CUBE(i);

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

)

4.A)17(B)64(C)125(D)53

5.在下列程序段中,枚舉變量cl,c2的值依次是(),()。

enumcolor{red,yellow,blue=4,green,white}cl,c2;

cl=yellow;c2=white;

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

6.A)abc(B)123(C)abcl23(D)123abc

7.B)w.birth.day=25;w.birth.month=10;w.birth.year=1993;

8.C)w.day=25;w.month=10;w.year=1993;

9.D)birth.day=25;birth.month=10;birth.year=1993;

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

main()

{inti,k,a[10],p[3];

k=5;

for(i=0;i<10;i++)a[i]=i;

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

for(i=0;i<3;i++)k+=p[i]*2;

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

}

A、20B、21C、22D、23

11.若有下面的變量定義,以下語句中合法的是()。

inti,a[10],*p;

Ap=a+2;Bp=a[5];Cp=a[2]+2;Dp=&(i+2);

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

main()

{intkl=l,k2=2,k3=3,x=15;

if(!kl)x-;

elseif(k2)if(k3)x=4;elsex=3;

printf(/zx=%d\n,,,x);

)

Ax=4Bx=15Cx=14Dx=3

13.以下函數(shù)調(diào)用語句中含有()個(gè)實(shí)參。

func((el,e2),(e3,e4,e5));

A2B3C5D語法錯(cuò)誤

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

#defineADD(x)x*x

main()

{inta=4,b=6,c=7,d=ADD(a+b)*c;

printf("d=%d',,d);

}

Ad=70Bd=80Cd=140Dd=700

15.已知職工記錄描述如下,在TurboC中,系統(tǒng)為變量w分配()字節(jié)的空間。

structworker

{intno;

charname[20];

charsex;

union

{intday;intmonth;intyear;}birth;

}w;

A29B20C25D6

16.C語言中的文件類型只有()。

A索引文件和文本文件兩種B文本文件一種

C二進(jìn)制文件一種DASCII碼文件和二進(jìn)制文件兩種

17.已知函數(shù)fread的調(diào)用形式為fread(buffer,size,count,fp),其中buffer代表的是

()。

A存放讀入數(shù)據(jù)項(xiàng)的存儲(chǔ)區(qū)B存放讀入數(shù)據(jù)的地址或指向此地址的指針

C一個(gè)指向所讀文件的文件指針D一個(gè)整形變量,代表要讀入的數(shù)據(jù)項(xiàng)總數(shù)

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

main()

{inti=010,j=10;

printf("%d,%d\n",i++,j-);}

A11,9B9,10C8,10D9,9

19.VeryGood

Good

VeryGood

Fail

Pass

Pass

三、閱讀程序,寫出運(yùn)行結(jié)果

20.

21.8921

22.設(shè)a為整型變量,初值為12,執(zhí)行完語句a+=a-二a*a后用的值是()。

A552B144C264D-264

23.下面的程序運(yùn)行結(jié)果為—D.

main()

intx=3,y=0,z=0;

if(x=y+z)printf("****");

elseprintf("####");

}

A、有語法錯(cuò)誤不能通過編譯B、輸出****。

C、可以通過編譯,但是不能通過連接,因而不能運(yùn)行。D、輸出####。

24.有以下程序

main()

{

inti,s=O;

for(i=l;i<10;i+=2)s+=i+l;

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

}

程序執(zhí)行后的輸出結(jié)果是_D_。

A、自然數(shù)1?9的累加和B、自然數(shù)1?10的累加和

C、自然數(shù)1?9中奇數(shù)之和D、自然數(shù)1?10中偶數(shù)之和

25.要求通過while循環(huán)不斷讀入字符,當(dāng)讀入字母N時(shí)結(jié)束循環(huán)。若變量已正確定義,

以下正確的程序段是—A—o

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

B、while(ch=getchar()!='N'printf("%c",ch);

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

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

26.有以下程序段

intk=0;

while(k=l)k++;

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

A、無限次B、有語法錯(cuò),不能執(zhí)行C、一閃也不執(zhí)行D、執(zhí)行1次

27.有以下程序

main()

(

inti,n=0;

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

(

do

continue;

n++;

)

while(!i);

n++;

)

printf("n=%d\n"/n);

}

程序執(zhí)行后的輸出結(jié)果是—D—o

A、n=5B、n=2C>n=3D、n=4

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

A、將串strl復(fù)制到串str2中后再連接到串str3之后

B、將串strl連接到串str2之后再復(fù)制到串str3之后

C、將串str2復(fù)制到串strl中后再將串str3連接到串strl之后

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

29.數(shù)字字符0的ASCII值為48,若有以下程序—C—。

main()

(

chara=,l',b=,2,;

printf("%c/"/b++);

printf("%d\n"zb-a);

}

程序運(yùn)行后的輸出結(jié)果是

A、3,2B、50,2C、2,2D、2,50

知識(shí)點(diǎn):字符型常量

30.若變量a是int類型,并執(zhí)行了語句:a='A'+1.6;,則正確的敘述是

A、a的值是字符CB、a的值是浮點(diǎn)型

C、不允許字符型和浮點(diǎn)型相加D、a的值是字符,A'的ASCII值加上1

31.下列程序執(zhí)行后的輸出結(jié)果是—A-o

main()

(

intx='f';

printf("%cXn'VA'+fx-'a'+l));

}

A、GB、HC、ID、J

32.有以下程序

main()

{intnum[4][4]={{l,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;

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

{for(j=l;j<=i;j++)printfC'%^";');

for(j=____;j<4;j++)printf("%4d",num[i][j]);

printf("\n");

}

)

若要按以下形式輸出數(shù)組右上半三角

1234

678

1112

16

則在程序下劃線處應(yīng)填入的是—

B—o

A、i-1B、IC、i+1D、4-i

33.A)過程(B)函數(shù)(C)子程序(D)標(biāo)識(shí)符

34.要求以下程序的功能是計(jì)算:s=l+X/2+V3+...+l/10

main()

{intn;

floats;

s=1.0;

for(n=10;n>l;n-)

s=s+l/n;

printf("%6,4f\n",s);

}

程序運(yùn)行后輸出結(jié)果錯(cuò)誤,導(dǎo)致錯(cuò)誤結(jié)果的程序運(yùn)行是_c—。

A、s=1.0;B、for(n=10;n>l;n-);C、s=s+l/n;D、printf("%6.4f\n",s);

35.關(guān)于return語句,下列正確的說法是()。

A可以在同一函數(shù)中出現(xiàn)多次B必須在每個(gè)函數(shù)中出現(xiàn)

C只能在除主函數(shù)之外的函數(shù)中出現(xiàn)一次D在主函數(shù)中不能出現(xiàn)

若執(zhí)行以下程序時(shí)從鍵盤上輸入則輸出結(jié)果是

36.9,B_o

main()

{intn;

scanf("%d",&n);

if(n++<10)printf("%d\n",n);

elseprintf("%d\n",n-);

)

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

37.以下敘述中正確的是—A—o

A、C程序中注釋部分可以出現(xiàn)在程序中任意合適的地方

B、花括號(hào)"{"和,只能作為函數(shù)體的定界符

C、構(gòu)成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名

D、分號(hào)是C語言之間的分隔符,不是語句的一部分

填空復(fù)習(xí)題

38.以下程序的輸出結(jié)果是0

main()

{inta[3][3]={{l,2,9},{3,4,8},{5,6,7}},i,s=0;

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

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

)

答案:30

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

inti=9;

printf("%o\n",i);

答案:11

40.以下程序的輸出結(jié)果是—B—o

#include<stdio.h>

main()

(

inta,b,d=241;

a=d/100%9;

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

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

)

A、6,1B、2,1C、6,0D、2,0

知識(shí)點(diǎn):賦值表達(dá)式

41.要打開一個(gè)已存在的非空文件“file”用于修改,選擇正確的語句()。

Afp=fopen("file"/"r");Bfp=fopen("file","w");

,,,

Cfp=fopen("file;r+");Dfp=fopen("file"z"w+");

{intm,k,i,n=O;四寫出下列程序的運(yùn)行結(jié)果。(28分)

42.V)(9)C語言規(guī)定,實(shí)參應(yīng)與其對(duì)應(yīng)的形參類型一致。

43.ttdefineMAX100

main()

{intf[MAX],i,j,k=2,m=5;

for(i=0;i<=m;i++)f[i]=l;f[k-l]=2;

for(i=k;i<=m;i++)

for(j=i-k;j<=i-l;j++)f[i]+=f[j];

printf("%d%5d%5d\n",k,m,f[m]);

}

44.main()

{intx,g,s,b;

for(x=100;x<1000;x++)

{b=x/100;s=x%100/10;g=x%10;

if((g*g*g+s*s*s+b*b*b)==x)

printf(〃%d\n〃,x);}

)

2.main()

{inti,s=0,f=l;

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

{s=s+f*(i-l)/i;f=-f;}

printf(s=%f\n,,,s);

}

六、選做題

45.有以下程序

main()

{inta=l,b;

for(b=l;b<=10;b++)

{if(a>=8)break;

if(a%2==l)

a+=5;continue;}

a-=3;

}

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

)

程序運(yùn)行后的輸出結(jié)果是_Bo

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

知識(shí)點(diǎn):程序分析

46.設(shè)有定義語句staticinta[3][4]={{1},{2},{3}};則a⑴⑼值為,a[l][l]值為,a⑵[1]的值

為。2,0,0

47.SUM=2468

四、程序改錯(cuò)

48.已知指針p的指向(圖一)的a[l],則執(zhí)行語句*p++;后,*p的值是(B)。

A、20B、30C、21D、31

a[0]a[l]a[2]a[3]a[4]

10

20

30

40

50

49.圖一)

50.已知指針p的指向(圖一)的a⑴,則表達(dá)式++*p的值是(C)。

A、20B、30C、21D、31

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

A、23B、24C、25D、26

#include<stdio.h>

voidprtv(int*x)

{printf("%d\n,;++*x);}

voidmain()

inta=25;prtv(&a);

}

52.若已定義char*p;,使指針p指向變量ch的賦值語句是p=&ch;。

53.在(1)的基礎(chǔ)上,通過指針p給變量ch讀入字符的scant調(diào)用語句是

scanf("%c〃,p);o

54.以下程序輸出的是C。

voidmain()

{inti=3,j=2;

char*a="DCBA";

printf("%c%c\n",a[i],a[j]);

}

55.以下函數(shù)的功能是,把兩個(gè)整數(shù)指針?biāo)傅拇鎯?chǔ)單元中的內(nèi)容進(jìn)行交換。請(qǐng)?zhí)羁铡?/p>

voidexchange(int*x,int*y)

{intt;

t=*y;*y=*x;*x=t;

)

B部分(本科必做)

程序填空:

56.若有定義:intx,*pb;則以下正確的表達(dá)式是(A)

A、pb=&xB、pb=xC、*pb=&xD、*pb=*x

57.為了建立結(jié)構(gòu)體(含有兩個(gè)成員,data是數(shù)據(jù)成員,next是指向自身結(jié)構(gòu)體的指針成

員),請(qǐng)?zhí)羁眨?/p>

Structlink

(

chardata;

structlink*next;

}

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

A、15B、100C、10D、150

#defineMIN(x,y)(x)<(y)?(x):(y)

voidmain()

(

intlj,k;

i=10;j=15;k=10*MIN(i,j);

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

)

59.若有以下整型的a數(shù)組,數(shù)組元素和它們得值如下所示:

數(shù)組元素:a[0]a[l]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]

元素的值:941282107513

①請(qǐng)寫出對(duì)該數(shù)組的說明,并賦以上初值。

②該數(shù)組的最小下標(biāo)值為一,最大下標(biāo)值為—O

③寫出下面各式的值:a[a[9]]的值為—;a[a[4]+a[8]]的值為—。

inta[10]={9,4,12,8,2,10,7,5,1,3};0988

60.字符串"ab\n\\012\\\""的長度為—。10

三.判斷題

61.x)⑵字符數(shù)組不要求它的最后一個(gè)字符為'0、甚至可以不包含,\0,。

62.V)⑷在對(duì)全部數(shù)組元素賦初值時(shí),可以不指定數(shù)組長度。

63.x)⑸定義s為5x6(5行6列)的數(shù)組可寫成floata[5,6];

64.x)⑺數(shù)組定義inta[10];表示數(shù)組名為a,此數(shù)組有10個(gè)元素,第10個(gè)元素為

a[10]o

65.以下函數(shù),真正地沒有返回值。B

A.inta(){inta=2;return(a);}B.voidb(){printf("c");}

C.inta(){inta=2;returna;}D,以上都是

66.x)(1)函數(shù)說明指的是在程序中設(shè)定一個(gè)函數(shù)模塊。

67.V)⑵形參只有在被調(diào)用時(shí)才分配存儲(chǔ)空間。

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

structsk

{inta;floatb;}data,*p;

若有p=&data;,則對(duì)data中的a域的正確引用是(B)。

A)(*p).data.aB)(*p).aC)p->data.aD)p.data.a

2、根據(jù)以下定義,能輸出字母M的語句是(D)。

A、printf("%c\n〃,class⑶.name);B、printf("%c\n",class[3].name[l]);

C、printf(〃%c\n”,class[2].name[l]);D、printf(/z%c\n,,,class[2].name[0]);

structperson{charname[9];intage;};

structpersonclass[10]={/zJohn,,,17/Paul,,,19,,,Mary,,,18/Adam,,,16,};

69.合法的數(shù)組定義是()。A

A.chara[]="string";B.inta[5]={0,1,2,3,4,5};C.chara="string";D.chara[]={0,l,2,3,4,5}

70.若有以下程序段,則值為6的表達(dá)式是()。

structst{intn;structst*next;};

staticstructsta[3]={5,&a[l],7,&a[2],9/\0,},*p;p=&a[0];

Ap++->nBp->n++C(*p).n++D++p->n

71.以下4個(gè)字符串函數(shù)中,()所在的頭文件與其他3個(gè)不同。A

A.getsB.strcpyC.strlenD.strcmp

72.以下4個(gè)數(shù)組定義中,()是錯(cuò)誤的。D

A.inta[7];B.#defineN5longb[N];C.charc[5];D.intn,d[n];

73.以下程序運(yùn)行后的輸出結(jié)果是o

main()

{inta=l,b=3,c=5;

if(c=a+b)printf("yes\n");

elseprintf("no\n");

)

答案:yes

74.若有以下程序

main()

{intp,a=5;

if(p=l!=O)

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

else

printf("%d\n",p+2);

)

執(zhí)行后輸出結(jié)果是=

答案:1

75.以下程序運(yùn)行后的輸出結(jié)果是o

main()

{intp=30;

printf("%d\n",(p/3>0?p/10:p%3));

)

答案:3

知識(shí)點(diǎn):條件表達(dá)式構(gòu)成的選擇結(jié)構(gòu)

76.以下程序的功能是計(jì)算:1+12+123+1234+12345。請(qǐng)?zhí)羁铡?/p>

Main()

{intt=O,s=O,l;

for(l=l;l<=5;l++)

{t=l+;s=s+t;}

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

)

答案:t*10-10*t

知識(shí)點(diǎn):程序分析

77.設(shè)a為int型變量,執(zhí)行下列賦值語句后,a的取值分別是()。

a=125.534;a=(int)125.521%4;a=5?2;

A125,31,1B125,1,20C125,31,20D125.534,2,20

78.在C語言程序中,以下說法正確的是()。

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

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

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

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

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

A、因變量無定義輸出不定值B、0C、-ID、1

#include<stdio.h>

voidmain()

{printf(〃%d\n〃,NULL);}

80.設(shè)有以下程序段,則值為6的表達(dá)式是()。

structst{intn;structst*next;};

staticstructsta[3]={5,&a[l],7,&a[2],9,0},*p;

P=&a[0];

Ap++->nB++p->nCp->n++D(*p).n++

81.main()

{inti=200,n=0;/*n用來記錄每行已打印數(shù)的個(gè)數(shù)*/

while(i<=300)

{if(i%7==0)

{//break;

printf("%5d"J);n=n+l;

if(n=5)/*滿5個(gè)換行*/

{printfCXn1');n=0;}

)

i++;}}

2).main()

{inti,s=O,t=l;

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

{t=t*i;s=s+t;}

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

}

五、程序設(shè)計(jì)題

82.合法的數(shù)組定義是()。D

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

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

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

A.chara[3][10]={"China","American",''Asia"};B.intx[2][2]={l,2,3,4};

C.floatX[2][]={1,2,4,6,8,10};D.intm[][3]={l,2,3,4,5,6};

84.下面哪一項(xiàng)是不正確的字符串賦值或賦初值的方式()。C

A.char*str;str="string";

B.charstr^^'s'/t'/r'/i'/n'/g'};

C.charstrl[10];strl="string";

D.charstrl[]="string,,,str2[]="12345678";

85.strlen(s)為求字符串s的長度的函數(shù))

chars[12]="abook!";

printf("%d",strlen(s));

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

86.,可以不進(jìn)行函數(shù)類型說明。D

A.被調(diào)函數(shù)的返回值是整型或字符型時(shí)B.被調(diào)函數(shù)的定義在主調(diào)函數(shù)定義之前時(shí)

C.在所有函數(shù)定義前,已在函數(shù)外預(yù)先說明了被調(diào)函數(shù)類型D.以上都是

87.以下對(duì)C語言函數(shù)的有關(guān)描述中,正確的是。A

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

B.C函數(shù)既可以嵌套定義又可遞歸調(diào)用

C.函數(shù)必須有返回值,否則不能使用函數(shù)

D.C程序中有調(diào)用關(guān)系的所有函數(shù)必須放在同一個(gè)源程序文件中

88.函數(shù)中的形參和調(diào)用時(shí)的實(shí)參都是數(shù)組名時(shí),傳遞方式為,都是變量時(shí),傳遞方式

為。址傳遞,值傳遞

89.若自定義函數(shù)要求返回一個(gè)值,則應(yīng)在該函數(shù)體中有一條語句,若自定義函數(shù)要求不

返回一個(gè)值,則應(yīng)在該函數(shù)說明時(shí)加一個(gè)類型說明符。return,void

90.

include<stdio.h>

ints();

intx,y;

main()

(

intn;

x=l;y=2;

n=s();

printf("x=%d,y=%d,n=%d",x,y,n);

}

ints()

(

intz;

x=3;y=4;

z=x+y;

return(z);

}

程序運(yùn)行后輸出:―3,4,7

(9)以下程序的輸出結(jié)果是a=___,b=___,c=___o

#include<stdio.h>

intfunc(inta,int*p);

voidmain()

(

inta=l,b=2,c;

c=func(a,&b);

b=func(c,&a);

a=func(b,&c);

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

)

intfunc(inta,int*p)

a++;

*p=a+2;

return(*p+a);

}

361619

第九章預(yù)處理

A部分(本、??票刈?

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

#defineADD(x)x*x

main()

{inta=4,b=6,c=7,d=ADD(a+b)*c;

printf("d=%d',,d);

}

Ad=70Bd=80Cd=140Dd=700

92.若有以下程序

include<stdio.h>

voidf(intn)

main()

(

voidf(intn);

f⑸;

}

voidf(intn);

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

則以下敘述不正確的是—c—。

A、若只在主函數(shù)中對(duì)函數(shù)f進(jìn)行說明,則只能在主函數(shù)中正確調(diào)用函數(shù)f

B、若在主函數(shù)前對(duì)函數(shù)f進(jìn)行說明,則在主函數(shù)和其它函數(shù)中都可以正確調(diào)用函數(shù)f

C、對(duì)于以上程序,編譯時(shí)系統(tǒng)會(huì)出提示出錯(cuò)信息:提示對(duì)f函數(shù)重復(fù)說明

D、函數(shù)f無返回值,所以可用void將其類型定義為無值型

93.有定義語句:intx,y;,若要通過scanf("%d,%d",&x,&y);語句使變量x得到數(shù)據(jù)ll,變量

y得到數(shù)值12,下面四組輸入形式中,錯(cuò)誤的是—A—o

A、1112〈回車〉B、11,12〈回車>C、11,12〈回車〉D、11,<回車>12〈回車〉

94.若t為double類型,表達(dá)式t=l,t+5,t++的值是_D_。

A、1B、6.0C、2.0D、1.0

95.以下敘述中正確的是_B。

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

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

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

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

96.有以下程序

intfun(intx[],intn)

(

staticintsum=O,i;

for(i=0;i<n;i++)sum+=x[i];

returnsum;

)

main()

(

inta[]={l,2,3,4,5},b[]={6,7,8,9,},s=0;

s=fun(a,5)+fun(b,4);

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

}

程序執(zhí)行后的輸出結(jié)果是—c_

A、45B、50C、60D、55

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

main()

(

intk=4,m=l,p;

p=func(k,m);printf("%d,",p);

p=func(k,m);printf("%d\n",p);

}

func(inta,intb)

(

staticintm=0,i=2;

i+=m+l;m=i+a+b;

return(m);

}

A、8,17B、8,16C、8,20D、8,8

98.有以下程序

voidf(intvjntw)

intt;

t=v;v=w;w=t;

)

main()

{

intx=l,y=3,z=2;

if(x>y)f(x,y);

elseif(y>z)f(y,z);

elsef(x,z);

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

}

執(zhí)行后輸出結(jié)果是—C—o

A、1,2,3B、3,1,2C、1,3,2D、2,3,1

99.有以下程序

charfun(charx,chary)

(

if(x<y)returnx;

returny;

}

main()

(

inta='9',b='8,,c=,7,;

printf("%c\n",fun(fun(a,b),fun(b,c)));

)

程序的執(zhí)行結(jié)果是—D—o

A、函數(shù)調(diào)用出錯(cuò)B、8C、9D、7

100.能正確表示邏輯關(guān)系:"a210或aVO"的C語言表達(dá)式是_D_。

A、a>=10ora<=0B、a>=0|a<=10

C、a>=10&&a<=0D、a>=10||a<=10

101.若程序中定義了以下函數(shù)

doublemyadd(doublea,doubleb)

{return(a+b);}

并將其放在調(diào)用語句之后,則在調(diào)用之前應(yīng)該對(duì)該函數(shù)進(jìn)行說明,以下選項(xiàng)中錯(cuò)誤的說明

是Ao

A、doublemyadd(doublea,b);B、doublemyadd(double,double);

C>doublemyadd(doubleb,doublea);D、doublemyaddfdoublex,doubley);

102.有如下程序

main()

(

inta=l,b=2,m=0,n=0,k;

k=(n=b>a)||(m=a<b);

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

}

程序運(yùn)行后的輸出結(jié)果是—C—O

A、0,0B、0,1C、1,0D、1,1

103.下列敘述中正確的是—D—o

A、C語言編譯時(shí)不檢查語法B、C語言的子程序有過程和函數(shù)兩種

C、C語言的函數(shù)可以嵌套定義D、C語言所有函數(shù)都是外部函數(shù)

104.main()

{inta[6]={10,6,23,-90,0,3},i;

invert(a,0,5);

for(i=0;i<6;i++)printf("%d,a[i]);

printf(〃\n〃);

}

invert(int*s,inti,intj)

{intt;

if(i<j)

{invert(s,i+lj-l);

t=*(s+i);*(s+i)=*(s+j);*(s+j)=t;

}

}

105.以下數(shù)組定義中不正確的是—D—o

A>inta[2][3];B、intb[][3]={0,l,2,3};

Cintc[100][100]={0};D、intd[3][]={{l,2},{l,2,3},{l,2,3,4});

106.以下程序的輸出結(jié)果是—C—o

main()

{inti,a[10];

for(i=9;i>=0;i-)a[i]=10-i;

printf("%d%d%d",a[2],a[5],a[8]);

)

A、258B、741C、852D、369

107.以下能正確計(jì)算定義且賦初值的語句是—B—o

A、intnl=n2=10;B、charc=32;

C、fioatf=f+l.l;D、doublex=12.3E2.5

108.執(zhí)行下列程序時(shí)輸入:123〈空格>456(空格>789〈回車〉,輸出結(jié)果是—D

main()

{chars[100];

intc,i;

scanf("%c",&c);

scanf("%d",&i);

scanf("%s",s);

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

)

A、123,456,789B、1,456,789C、1,23,456,789D、1,23,456

109.請(qǐng)讀程序:

#include<math.h>

#include<stdio.h>

main()

{floatx,y,z;

scanf("%f%f",&x,&y);

z=x/y;

while(z)

{if(fabs(z)>1.0)

{x=y;y=z;z=x/y;}

elsebreak;

)

printf("%f\n",y);

}

若運(yùn)行時(shí)從鍵盤上輸入3.62.4<CR>(<CR>表示回車),則輸出的結(jié)果是___B___。

A、1.500000B、1.600000C、2.000000D、2.400000

110.有以下程序

include<stdio.h>

main()

{charcl,c2,c3,c4,c5,c6;scanf("%c%c%c%c",&cl,&c2,&c3,&c4);

c5=getchar();

c6=getchar();

putchar(cl);

putchar(c2);

printf("%c%c\n",c5,c6);

}

程序運(yùn)行后,若從鍵盤輸入(從第1列開始)—D—o

123〈回車〉

45678V回車〉

則輸出結(jié)果是

A、1267B、1256C、1278D、1245

111.以下函數(shù)值的類型是—A—o

fun(floatx)

(

floaty;

y=3*x-4;

returny;

)

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

112.能正確表示a和b同時(shí)為正或同時(shí)為負(fù)的邏輯表達(dá)式是_D_

A、(a>=0IIb>=0)&&(a<0IIb<0)B、(a>=0&&b>=0)&&(a<0&&b<0)

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

知識(shí)點(diǎn):條件表達(dá)式構(gòu)成的選擇結(jié)構(gòu)

113.若變量a、i已正確定義,且i已正確賦值,合法的語句是—B.

A、a==lB、++i;C>a=a++=5;D、a=int(i);

知識(shí)點(diǎn):賦值表達(dá)式

114.假定w、x、v、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;

則該程序執(zhí)行后,m的值是D。

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

以下程序段中與語句功能等價(jià)的是—

115.k=a>b?(b>c?l:O):O;A_o

A、if((a>b)&&(b>c))k=l;elsek=0;

B、if((a>b)||(b>c))k=l;elsek=0;

C、if(a<=b)k=O;elseif(b<=c)k=l;

D、if(a>b)k=l;elseif(b>c)k=l;elsek=0;

116.設(shè)變量x為float型且已賦值,則以下語句中能將x中的數(shù)值保留到小數(shù)點(diǎn)后兩位,

并將第三位四舍五入的是_C—。

A、x=x*100+0.5/100.0B、x=(x*100+0.5)/100.0

C、x=(int)(x*100+0.5)/100.0???D、x=(x/100+0.5)*100.0

知識(shí)點(diǎn):賦值表達(dá)式

117.以下說法中正確的是_Do

A、#define和printf都是C語句B^#define是C語句,而printf不是

C、printf是C語句,但#define不是D、#define和printf都不是C語句

知識(shí)點(diǎn):簡單C語言程序的構(gòu)成和格式

118.下列定義變量的語句中錯(cuò)誤的是_Do

A、int_intB、doubleint_C、charForD、floatUS$

知識(shí)點(diǎn):常量、變量和標(biāo)識(shí)符

119.以下定義語句中正確的是_Co

A、chara='A'b='B';B、floata=b=10.0;(正解a=10.0b=10.0)

C、inta=10,*b=&a;D、float*a,b=&a;???

知識(shí)點(diǎn):常量、變量和標(biāo)識(shí)符

120.兩次運(yùn)行下面的程序,如果從鍵盤上分別輸入6和4,則輸出結(jié)果是_A__。

main()

(

intx;

scanf("%d",&x);

if(x++>5)

printf("%d",x);

else

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

}

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

121.下列選項(xiàng)中,合法的C語言關(guān)鍵字是_Do

A>VARB、cherC、integerD、default

知識(shí)點(diǎn):常量、變量和標(biāo)識(shí)符

122.若有定義:inta=8,b=5,c;,執(zhí)行語句c=a/b+0.4;后,c的值是_B

A、1.4B、1C、2.0D、2

知識(shí)點(diǎn):算術(shù)表達(dá)式

123.設(shè)有intx=ll;則表達(dá)式(x++*V5)的值是—A_。??

A、3B、4C、11D、12

知識(shí)點(diǎn):算術(shù)表達(dá)式

124.請(qǐng)讀程序片段:

inti=65536;

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

上面程序片段的輸出結(jié)果是_B_o

A、65536B、0C、有語法錯(cuò)誤,無輸出結(jié)果D、-1

知識(shí)點(diǎn):整型數(shù)據(jù)

125.在C語言中,不正確的int類型的常數(shù)是—A—o

A、32768B、0C、037D、OxAF

知識(shí)點(diǎn):整型數(shù)據(jù)

126.下面程序的輸出是_C=

main()

(

unsigneda=32768;

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

)

A、a=32768B、a=32767C、a=-32768D、a=-l

知識(shí)點(diǎn):整型數(shù)據(jù)

127.設(shè)有定義:inta=2,b=3,c=4;,則以下選項(xiàng)中值為。的表達(dá)式是A

A、(!a==l)&&(!b==O)B、(avb)&&!c|11C、a&&bD、a||(b+b)&&(c-a)

128.設(shè)intx=l,y=l;表達(dá)式(!x||y--)的值是_B___。

A、0B、1C、2D、-1

129.在C語言中,合法的長整型常數(shù)是—A.

A、OLB、4962710C、324562&D、216D

知識(shí)點(diǎn):整型數(shù)據(jù)

130.設(shè)有如下程序段

intx=2002,y=2003;

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

則以下敘述中正確的是_Do

A、輸出語句中格式說明符的個(gè)數(shù)少于輸出項(xiàng)的個(gè)數(shù),不能正確輸出

B、運(yùn)行時(shí)產(chǎn)生錯(cuò)誤信息

C輸出值為2002

D、輸出值為2003

131.以下有4組用戶標(biāo)識(shí)符,其中合法的一組是—C—。

A、For-subCaseB、4dDOSizeC、f2_G3IFabcD、WORDVoiddefine

知識(shí)點(diǎn):常量、變量和標(biāo)識(shí)符

132.x=4

y=ll

四、編程題

133.正確的程序?yàn)?/p>

main()

{inta,b,s,l;

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

s=a*b;l=2*(a+b);

printf("l=%d,s=%d\n",I,s);

}

三、寫出程序運(yùn)行結(jié)果

134.正確的程序?yàn)?/p>

#include"stdio.h"

main()

{charc;

getchar(c);

putchar('\007');/*鳴笛*/

putchar();

)

135.554

554

334

136.下列說法不正確的是()。

A主函數(shù)main中定義的變量在整個(gè)文件或程序中有效

B不同函數(shù)中,可以使用相同名字的變量

C形式參數(shù)是局部變量

D在一個(gè)函數(shù)內(nèi)部,可以在復(fù)合語句中定義變量,這些變量只在本復(fù)合語句中有效

137.函數(shù)調(diào)用語句:fseek(fp,-10L,2);的含義是()。

A將文件位置指針從文件末尾處向文件頭的方向移動(dòng)10個(gè)字節(jié)

B將文件位置指針從當(dāng)前位置向文件頭的方向移動(dòng)10個(gè)字節(jié)

C將文件位置指針從當(dāng)前位置向文件末尾方向移動(dòng)10個(gè)字節(jié)

D將文件位置指針移到距離文件頭10個(gè)字節(jié)處

138.下面的選項(xiàng)中正確的賦值語句是(chara[5],*p=a;)()。

Ap="abed";Ba="abed";C*p=〃abcd”;D*a="abed";

139.定義由n個(gè)指向整形數(shù)據(jù)的指針組成的數(shù)組p,其正確的方式為()。

Aintp;Bint(*p)[n];Cint*p[n];Dint(*p)();

140.有以下程序

main()

{intt=l,i=5;

for(;i>=0;i-)t*=i;

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

}

執(zhí)行后輸出結(jié)果是O

答案:0

知識(shí)點(diǎn):for語句和用for語句構(gòu)成的循環(huán)結(jié)構(gòu)

141.若從鍵盤輸入58,則以下程序輸出的結(jié)果是o

main()

{inta;

scanf("%d",&a);

if(a>50)printf("%d",a);

if(a>40)printf("%d",a);

if(a>30)printf(”%cT,a);

}

答案:585858

142.在數(shù)組中,數(shù)組名表示()。A

A.數(shù)組第1個(gè)元素的首地址B.數(shù)組第2個(gè)元素的首地址

C.數(shù)組所有元素的首地址D.數(shù)組最后1個(gè)元素的首地址

143.main()

{inta,b,c,sum;

floatave;

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

sum=a+b+c;ave=sum^.O;

printf(/zsum=%d,ave=%.2f\n,,,sum,ave);

}

五、選做題

144.s=s+t*it=-t

三、閱讀下列程序,寫出程序運(yùn)行的輸出結(jié)果

145.ch=getchar()ch>=,A,&&ch<=/Z,

146.B2.A3.A4.C5.A6.B7.A8.C9.D10.D

二、填空題

147.對(duì)字符數(shù)組進(jìn)行初始化,()形式是錯(cuò)誤。B

A.charcl[]={'l','2','3'};B.charc2[]=123;C.charc3[]={'1','2','3','\0'};D.charc4[]="123";

148.已知函數(shù)fread的調(diào)用形式為fread(buffer,size,count,fp),其中buffer代表的

是()。

A存放讀入數(shù)據(jù)項(xiàng)的存儲(chǔ)區(qū)B存放讀入數(shù)據(jù)的地址或指向此地址的指針

C一個(gè)指向所讀文件的文件指針D一個(gè)整形變量,代表要讀入的數(shù)據(jù)項(xiàng)總數(shù)

149.設(shè)a為int型變量,執(zhí)行下列賦值語句后,a的取值分別是()。

a=125.534;a=20.0/3;a=(int)125.521%4;a=5?2;

A125,6,31,1B125,6,1,20C125,6.666666,31,20D125,534,6.666666,2,20

150.A)執(zhí)行3次(B)執(zhí)行4次

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

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

',,|

152.A)fp=fopen(file,"r");(B)fp=fopen("file","w");

153.a,b為整形變量,二者均不為0,以下關(guān)系表達(dá)式中恒成立的是()。

154.C)fp=fopen("file","r+");(D)fp=fopen(',file,,,,,w+");

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

main()

{inta=7,b=5;

printf(/z%d\n,,,b=b/a);

}

A不確定值B5C1D0

156.數(shù)組名作為實(shí)參傳遞給形參時(shí),數(shù)組名被處理為()。

A該數(shù)組的長度B該數(shù)組的元素個(gè)數(shù)C該數(shù)組的首地址D該數(shù)組中各元素的值

157.C)a/b*b+a%b==a(D)a/b*b==a

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

main()

{charc;

inti;

for(i=65;i<68;i++)

{c=i+32;

switch(c)

{case/a,:printf("%c,",c);break;

case'b':case'e':printf("okj);

default:printf("end");

)

}

)

Aa,ok,endBa,ok,endendCa,ok,end,endDa,ok,ok

159.在C語言程序中,以下說法正確的是()。

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

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

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

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

160.假設(shè)變量a,b均為整型,表達(dá)式(a=5,b=2,a>b?a++:b++,a+b)的值是()。

A7B8C9D2

161.執(zhí)行以下程序后,輸出卡號(hào)的個(gè)數(shù)是o

#include<stdio.h>

main()

{inti,j;

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

for(j=2;j<=i;j++)putchar('#');

}

答案:6

知識(shí)點(diǎn):循環(huán)結(jié)構(gòu)的嵌套

162.若給定條件表達(dá)式(M)?(a++):(a-),則其中表達(dá)式M和()等價(jià)。

AM==0BM=1CM!=1DM!=0

163.下列整數(shù)值中,不正確的八進(jìn)制或十六進(jìn)制數(shù)值常量是()。

AOxcdB-017C-oxl23DOxfdc

164.下列標(biāo)識(shí)符中,不能作為合法的C用戶定義標(biāo)識(shí)符的是()。

Aa3_b3BvoidC_123DIF

165.A)day=25;month=10;year=1993;

166.已知職工記錄描述如下,設(shè)變量w中的"生日”是"1993年10月25日",下列對(duì)"生

日”的正確賦值方式是()。

structworker

{intno;charname[20];charsex;

struct{intday;intmonth;intyear;}birth;

);

structworkerw;

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

main()

{charsl[20]=//abc,,,s2[20]=zz123w;

if(strcmp(sl,s2)>0)printf("%s\n〃,sl));

elseprintf("%s\n",s2);

}

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

#defineA3

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

main()

{intx;

x=3*A+B(7);

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

)

Ax=93Bx=37Cx=60Dx=90

169.以下程序的輸出結(jié)果是o

main()

{ints,i;

for(s=0,i=l;i<3;i++,s+=i);

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

)

答案:5

170.V)(6)數(shù)組定義inta[10];表示數(shù)組名為a,此數(shù)組有10個(gè)元素。

171.x)⑶數(shù)組定義inta[10];也可以寫成inta(10);。

172.x)(9)staticcharc[]={'a'','b','o','o','k','\0'};與staticcharc[]={'a'','b','o','o','k'};等價(jià)。

173.根據(jù)以下說明,寫出正確的說明語句:men是一個(gè)有10個(gè)整型元素的數(shù)組。

step是一個(gè)有4個(gè)實(shí)型元素的數(shù)組,元素值分別為1.9,-2.33,0,20.6?

grid是一個(gè)二維數(shù)組,共有4行,10列整型元素。

intmesh[10];floatstep[4]={1.9,-2.33,0,20.6};intgrid[4][10];

174.x)(10)設(shè)已有說明:staticcharcl[10],c2[10];下面程序片段是合法的。cl={"book"};

c2=cl;

四.判斷題

執(zhí)行后,

175.staticintb[5],a[][3]={l,2,3,4,5,6};b[4]=,a[l][2]=P0,6

176.以下程序的運(yùn)行結(jié)果是2002Shangxian。

#include<string.h>

typedefstructstudent{

charname[10];

longsno;

floatscore;

}STU;

main()

(

STUa={/zzhangsan,,,2001,95},b={/zShangxian,,,2002,90},

c={/zAnhua,,,2003,95},d,*p=&d;

d=a;

if(strcmp(,)>0)d=b;

if(strcmp(c,name,)>0)d=c;

printf(/z%ld%s\n,,,d.sno,p->name);

}

B部分(本科必做)

程序填空:

以下程序的功能是:處理由學(xué)號(hào)和成績組成的學(xué)生記錄,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放

入結(jié)構(gòu)體數(shù)組s中,它的功能是:把分?jǐn)?shù)最高的學(xué)生數(shù)據(jù)放在b所指的數(shù)組中,注意:分

數(shù)最高的學(xué)生可能不只一個(gè),函數(shù)返回分?jǐn)?shù)最高學(xué)生的人數(shù)。請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

ttdefineN16

typedefstruct

(

charnum[10];

ints;

}STREC;

intfun(STREC*a,STREC*b)

(

inti,j=0,max=a[0].s;

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

if(max<a[i].s)max=a[i].s;

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

if(a[i].s==max)b[j++]=a[i];

returnj;

)

voidmain()

STRECs[N]={{"GA005,;85},{//GA003,;76},{"GA002,;69},{"GA004,;85},

zz",z/,,zz,,//,//,,

{GA001,91},{GA007,72}/{GA008,64},{GA006;87},{GA0015,85},

{“GA0013〃,91},{〃GA0012〃,64},{〃GA0014〃,91},{〃GA00ir,66},{〃GA0017〃,64},

{〃GA0018〃,64},{〃GA0016〃,72},};

STRECh[N];

inti,n;

n=fun(s,h);

printf(〃The%dhighestscore:\n,/,n);

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

printf("%s%4d\n,,,h[i].num,h[i].s);

printf(〃\n〃);

}

177.已知字符0的ASCII碼的十進(jìn)制的值是48,且數(shù)組的第0個(gè)元素在低位,以下程序的

輸出結(jié)果是(B)。

A、39B、9C、38D、8

voidmain()

(

union{inti[2];longk;charc⑷;}r,*s=&r;

s->i[0]=0x39;s->i[l]=0x38;

printf(,,%x\n,/,s->c[0]);

)

178.array是一個(gè)一維整形數(shù)組,有10個(gè)元素,前6個(gè)元素的初值是9,4,7,49,32,-5,正確的說

明語句為:

。該數(shù)組下標(biāo)的取值范圍是從—到—(從小到大)。用scanf函數(shù)輸入數(shù)組的第二個(gè)元素表

示為:。用賦值語句把39存入第一個(gè)元素表示為:。

把第六個(gè)和第四個(gè)元素之和存入第一個(gè)元素表示為:。

intarray[10]={9,4,7,49,32,-5};09scanf("%d",&array[l]);array[0]=39;array[0]=

array[5]+array[3];

179.被調(diào)函數(shù)返回給主調(diào)函數(shù)的值稱為。C

A.形參B.實(shí)參C.返回值D.參數(shù)

180.x)⑷在調(diào)用函數(shù)時(shí),實(shí)參傳值給形參,調(diào)用結(jié)束時(shí),形參值傳給實(shí)參。

181.使指針p指向變量ch的定義語句是char*p=&ch;。

182.函數(shù)在定義時(shí),省略函數(shù)類型說明符,則該函數(shù)值的類型為。A

A.intB.floatC.longD.double

183.C語言總是從函數(shù)開始執(zhí)行。A

A.mainB.處于最前的C.處于最后的D.隨機(jī)選一個(gè)

184.閱讀程序,分析程序的功能。

185.C語言中的文件類型只有()。

A索引文件和文本文件兩種B文本文件一種

C二進(jìn)制文件一種DASCII碼文件和二進(jìn)制文件兩種

186.設(shè)有以下定義,值為5的枚舉常量是()。

enumweek{sun,mon=4,tue,wed,thu,fri,sat

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論