C综合复习题docx.docx

上传人:b****4 文档编号:3693778 上传时间:2022-11-24 格式:DOCX 页数:32 大小:193.97KB
下载 相关 举报
C综合复习题docx.docx_第1页
第1页 / 共32页
C综合复习题docx.docx_第2页
第2页 / 共32页
C综合复习题docx.docx_第3页
第3页 / 共32页
C综合复习题docx.docx_第4页
第4页 / 共32页
C综合复习题docx.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

C综合复习题docx.docx

《C综合复习题docx.docx》由会员分享,可在线阅读,更多相关《C综合复习题docx.docx(32页珍藏版)》请在冰豆网上搜索。

C综合复习题docx.docx

C综合复习题docx

C程序设计综合复习题

一、单项选择题1

二、填空题8

三、程序分析题9

四、程序填充题16

五、编程题21

1.分支结构21

2.循环结构22

3.数组、函数、指针22

4.结构体22

一、单项选择题

1.可以作为自定义标识符的是(

A.2x

B•break

C.m-n

D•m_n

2.C语言的保留字(关键字)是(

A.define

B.enum

C.main

3•错误的实型(浮点型)常数是()

••

D.includc

A.0

B.0.E0

C.0.0

D.0E4-0.0

4.无条件转移语句的一般形式是:

goto语句标号;,其中的语句标号可以是()

A.整型数

B.标识符

C.保留字

D.实型数

5.正确的变量定义是()

A.unsignedlongd=1000;

B.floatml=m2=10.0;

C.charcl=,A,,c2=A;

D・doublex=0.618,x=3.14;

6.表达式的值为0的是()

A.5/5%5

B.5>2

C・!

4

D・0x7&7

7•设inta;侧表达式a=2,4,a+l的值是(

A.lB.2

C.3D.4

&设inti;Hoatf;doubled;longintc;,则表达式10+'a'+i*f-d/c结果的类型是()

A.doubleB.long

C.intD.float

9.设inta;,则语句for(a=0;a==0;a++);和语句for(a=0;a=0;a++);执行循环的次数分别是()

A.0,0B.0,1

C.l,0D.l,1

10.if(表达式)和while(表达式)中的“表达式”()

A.只能是逻辑的B.只能是关系的

C.只能是算术的D.以上三种都可以

11.设inta=0,b=0,m=0,n=0;,则执行(m=a==b)II(n=b==a)后m和n的值分别是()

B.0,1

A.0,0

12.设inta?

b;为使变量a和b分别获得数据10和20,则下列正确的是()

A.scanf(”%d,%d”,&a,&b);输入数据:

10,20<回车〉

B.scanf(”%d,%d”,&a,&b);输入数据:

1020<回车〉

C.

a=10,b=20<冋车〉

10,20<回车〉

scanf(”%d,%d”,&a,&b);输入数据:

D.scanf("%d,%d",a,b);输入数据:

13.对于函数,正确的说法是()

A.可以嵌套定义

B•定义时有些函数名前可以带星号

C•必须有返回语句

14•设inta[3][4];,则与元素a

D•必须有形式参数

[0][0]不等价的表达形式是()

A.*a

B.**a

D.*(*(a+O)+O)

C.*a[0]

15.设charsi[]={,a,;b';c,},s2[]="abc";,则数组si和s2的长度分别是()

A.2,3

B.3,3

C.3,4

D.4,4

16.

A.

设inta=l,b=2;,则执行a=b+2,a++,a+b;后a和b的值分别是()

1和2B.3和2

C.

D.5和2

17.

设inta=2,b=3,c=4;,则表达式a>b&&b

A.

-1

B.0

 

D.2

设chars[10]=nabcdeH,t[]=M12345°;,则s和t在内存中分配的字节数分别是()

6和5B.6和6

20.

设inta=10,*p=&a;,则执行printf(n%d\nM,*p+a);的结果是()

B.当函数的形参是数组时形实结合为值传递方式

C.程序中只能有一个main函数

D.无参函数的函数体内不能出现return语句

24.执行下列程序段后输出的结果是()

intx,y,z=l;

for(x=1,y=・1;x

printf(M%d\nM,z);

A.1B.2

C.5D.6

25.设staticinta[3]={l,2,3};int*p[]={&a[0],&a[l],&a[2]};

则与数组元素a[l]等价的是()

A.*p[l]B・p[l]

C.*p+lD.p+1

26.设struct

{charname[10];

intage;

}stu[2]={{”Tom",25},{〃Mary",26}}?

p=stu;

则执行语句printf("%s%d\rT,p->name,stu[1].age);后输出结果是()

A.Tom25B・Tom26

C.Mary25D.Mary26

27.设typedefdoubleDB;,则与DBu[5];的等价形式是()

A.doubledb[5];B・doubleDB[5];

C.doubleu;D.doubleu[5];

2&设charch,str[4],*strp;,则正确的赋值语句是()

A.ch=”MBA”;B.str=nMBAn;

C.stip=”MBA“;D.*strp=”MBA”;

29.设typedefchar*POINT;

POINTp,q[3],*r;,则p、q和1•分别是字符型的()

A.变量、一维数组和指针变量

B.变量、二维数组和指针变量

C.指针变量、一维数组指针和二级指针变量

D.指针变量、一维指针数组和二级指针变量

30.若变量定义时未初始化,则其值不确定的是()

A.静态全局变量B.局部变量

C.静态局部变量D.全局变量

31.设struct{inta;charb;}Q,*p=&Q;,则够谡的表达式是()

B.

(*p).b

D.p->a

32.在某文件中,若全局变量与局部变量同名,贝!

)()

A.视为同一个变量B.变量作用域不确定

C.不允许D.允许33•设宏定义#defineP(x)x/x

则执行语句printf(u%d\nn,P(4+6));后的输出结果是()

A.lB.8.5

C.11

D.11.5

34•屈于C语言基本数据类型的是(B)

A.指针型

C.数组型

B.无符号整型

D.结构型

 

35.C语言的长整型数值在计算机中占用的字节个数是()

A.1

C.3

36.C语言屮,

A.1

C.4

B.2

D.4

”\x3d”在内存屮占用的字节数是(B)

B.2

D.5

37•设intx;则执行printf(n%x\nH^xAx);的结果是()

A.OB.1

C.ffD.ffff

38.对于while语句,错误的说法是()

•••

A.用条件控制循环体的执行次数

B.循环体至少要执行一次

C.循坏体有可能一次也不执行

D.循环体中可以包含若干条语句

39.设inta=9,b=20;则printf(,'%d,%d,%d\n,,,a+b,a—的输出结果是()

C、28,10,19

D、30,10,20

A、2&9,19B、29,9,20

40.执行下列语句

inta=8,b=7,c=6;

if(ac){a=c;c=b;}printf("%d,%d,%d\n",a,b,c);

后输出的结果是()

A.6,7,7B.6,7,8

C.8,7,6D.8,7,8

41.设staticcharx[]=,,12345,,;chary[;那么()

A、x数组的长度等于y数组的长度

B、x数组的长度大于y数组的氏度

C、x数组的长度少于y数组的长度

D、x数组与y数组的存储区域相同

42.设inti,x[3][3]={l,2,3,4,5,6,7,8,9};

则下面语句

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

printfC%d",x[i][2-i]);的输出结果是()

A.l47

B.l59

C.357D.369

43.设intb[]={l,2,3,4},y,*p=b;

则执行语句y=*p++;之后,变量y的值为()

A.lB.2

C.3D.4

44.设inta,*p;则语句p=&a;中的运算符“&”的含义是()

A.位与运算B.逻辑与运算

C.取指针内容D.取变量地址

45.若函数能被其它编译单位引用,那么函数定义时的存储类型应选用()

A.autoB.static

C.externD.register

46.下面函数定义有错误的是()

•••

A・fl(xl,x2)

intxl,x2;

intxl;intx2;

{函数体}

{函数体}

47.C语言屮计算a?

正确的表达是(

{函数体}

{函数体}

C.fl(intx1,x2)D.fl(intx1Jntx2)

A.aA3

C.a**3

4&下列定义正确的是(

A.anumt={a,b}x;

C.anum{'+T—'}x;

B.pow(a,3)

D.power(a,3)

B.enumt{l,2}x;

D.cnumt{a,b}x;

49•设有定义:

unionu{inta[4];floatb[3]};

charc[16];}aa;

则printf(/,%d\n",sizeof(aa));的输出是()

A.32

B.16

C.12D.8

50.在下列有关宏替换的叙述中,正确的说法是()

A.宏替换占用运行时间

B.宏名有类型

C.带参数的宏替换和函数等价

D.宏替换只是字符替换

51•下列程序的运行结果是()

#defineA5

#defineBA+l

main()

{inta;

a=B;

 

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

}

A.6B.5C.4D•出错

52.设有如下定义:

structsk

{inta;

floatb;

{data;int*p;

若要使p指向data中的a成员,正确的赋值语句是()

A.p=&a;B・p=data.a;C・p=&data.a;D.*p=data.a;

53.下列四组选项中,均是合法转义字符的选项是()

A.'n‘\\’B.•Mil1‘\017‘

C.‘\01&'\f'\x4b,C.'\\0''\ior'\xaf

54.设intx=0,*px;,则经过()后,*px的值为0。

A.px=&x;B.*px=&x;C・px=x;D.constint*px=&x;

55.以下程序的输出结果是()

#includevoidmain(){

printf(H\n*sl=%15s*M,HchinabejingM);printf(,,\n*s2=%-5s*,,,"chi");

A.

*sl=chinabejing*

s2=**chi*

c.

B・

*sl=chinabejing

*s2=*chi*

D・

sl=chinabcjing*

*s2=*chi*

*sl=chinabcjing*

*s2=*chi*

56.有关以下函数的哪些说法是正确的()

intadd(intx;inty)

{intz;z=x+y;

returnz;

}

A.此函数能单独运行

C.此函数通过main函数能调用

57.设有如下枚举类型定义:

B.此函数存在语法错误

D.此函数没有语法错误

enumnumber{first=1,second,ten=l,eleven};

枚举项eleven的值为()

A.0B.1C.2

58.下面的程序()

A、输出的是1B、输出的是1和・2

D.4

C、输出的是3和0

D、是死循环

main()

{intx=3;

 

do{

printf(”%d\n“,x・=2);

}while(!

(--x));

}

59.以下叙述中不正确的是()

A、预处理命令行都必须以#号开始

B、在程序中凡是以#号开始的语句行都是预处理命令行

C、C程序在执行过程中对预处理命令行进行处理

D、以下是正确的宏定义

#defineIBM_PC(注:

此处的_表示下划线)

60.sizcof(float)是()

A、一个双精度型表达式B、一个整型表达式

C、一种函数调用D、一个不合法的表达式

61.当运行以下程序时,从键盘输入:

AhaMA_Aha(_代表空格,代表回车),则下面程序的运行结果是()

#include

voidmain()

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

inti=0;

scanf(”%s“,s);

whilc(s[i]!

='\0,)

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

i++;

}

puts(s);

}

A、ahAMaB、AhAMAC、AhAMaahAD、ahAMaahA

62.以下scanf函数调用语句中对结构体变量成员的不正确引用是()

structpupil

{charname[20];

intage;

intsex;

}pup[5],*p;

p=pup;

A、scanf(H%s",pup[O].name);

B、scanf("%dn,&pup[O].agc);

C、scanf(”%d”,&(p・>sex));

D、scanf("%d'\p->age);

63.下面程序的输出是()

^defineSUB(X,Y)(X)*Y

main()

{inta=3,b=4;

A、12

C、16D.20

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

 

2.填空题

1.一个字符型变量所占内存的字节数是O

2.写出公式丄L+卫对应的C语言表达式。

25x

\/

3.执行语句printf(',%s\nM,MWorld\0Wide\0Webu);后的输出结果是。

4.设inta,b=5;,则执行表达式a=b-2==3后a的值是。

5.设chars[20]=nMyn;,则执行strcat(s,HSun!

n)后s的内容是。

6.设floatx=23.65;贝!

J执行语句printfC%d\n",(int)(x+0.5));后输出结是。

7.若定义函数char*fun(){-},则该函数的返回值类型是字符指针。

8.设intx=-9,y;,则执行y=x>=0?

x:

・x;后y的值是。

9.若函数调用语句为f(a,b,f(a+b,a-b,b));则函数f的参数个数是。

10.设inta=10;,则执行语句a+=a-=a+a;后a的值是。

11.在C语言中,预处理功能主要包括:

、文件包含和条件编译。

12.表达式4&5・3&&5的值是。

13.设intj=5;,则执行语句后j的值是。

14.设inta,b=2,c=3;执行表达式a=(b>c)?

(b+l):

(c+2),3

后a的值是。

15.设inta[3][2]={2,4,6,8,10};则*(a[1]+1)的值是。

16.在C语言中,++运算符的结合性是o

17.在C语言中,若函数的形参是整型变量,而对应的实参是整型数,则形实结合的方式是传递。

1&在C语言中,数组名除名字的功能之外还代表数组的o

19.设enumen{a,b=3,c=4};,则a的序值是。

20.continue语句可以出现在for>while和语句中。

21.设inty;执行表达式(y=4)||(y=5)||(y=6)后,y的值是。

22.设charch^A1;贝0printf(”%c“,(ch>='A'&&chv='Z')?

ch+32:

ch);的值是。

23.结构化程序设计的三种基本结构是:

选择结构、循环结构和o

24.下列程序

intx=3;

do{printf(n%d",-x);}while(!

x);

循环执行的次数是O

25.在C语言屮,一个二维数组可以看成若干个数组。

26.设inta⑶[4]={{1,3,5,7},{2,4,6,8}};则*(*a+l)的值为。

27.若函数定义为

intdata()

{floatx=9.9;

return(x);

}

则函数返回的值是。

28.设structstudent

{intno;charnamc[12];

floatscore[3];

}sl,*p=&sl;.

用指针变量p给si的成员no赋值1234的方法是。

29.已有定义inti;floatx;为将・10赋给i,410.34赋给x,scanf函数调用语句:

scanf(”%o%e",&i,&x);数据的输入形式是。

30.右移运算:

inta=7,c=a»l;变量c的值是。

31.存储”ch\\\i•“需要个字节。

32.for(a=2;a==l;)printf("%d",a・・);循环体执行的次数是。

33.若ch为char*类型,则sizeof(ch)的值为。

34.写出语句printf(n%d,%o,%xn,0x12,12,012);的输出结果,,

35.表达式98&&8&&31&6的值为。

36.下列程序段的输出是。

printf(M%o\nH,010«lAl);

37.表达式〜3&(2&1人4)的值为。

38.对于以下递归函数f,调用f(3)的返回值是。

f(intn)

{return((n<=0)?

n:

f(n-l)+f(n-2));

三、程序分析题

写出程序输出结果。

1.

voidmain()

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

if(a<=c)if(b==c)printf(,,a=%d\nn,a);

elseprintf(”b=%d\n”,b);

printf("c=%d\nn,c);

}

2.

intf(intn)

{staticintm=5;

return++m+n;

}

voidmain()

{inti;

for(i=0;i<3;i++)printfC%5d",f(i));printfC\n〃);

}

3.

#defineSIZE4

voidmain()

{intn[SIZE]={8,3,4,l};

inti,j;

for(i=O;ivSIZE;i++){printf(”%d”,n[i]);

for(j=l;j<=n[i];j++)printf("*");

printf(M\nM);

4.

intfm(inta,intb)

{if(b==l)returna;

elsereturna+fm(a,b・1);

}

voidmain()

{

printfC%d\n〃,fm(4,3));

5.

voidmain()

{inta=10,b=20,c=30;

if(a>b)if(a>c)printf(”a=%d\n”,a);

elseprintf(nb=%d\nM,b);

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

}

6.

SUM(intn)

{if(n==l)return1;

elsereturnn*n+SUM(n-1);

}

voidmain()

{printf(,'SUM=%d\n',,SUM(5));

}

7.

intfuc(intj)

{staticintk;

return(++k+j);

}

voidmain()

{intj;

for(j=l;j<=3;j++)printf(n%5dn,fuc(10));

printf(M\nn);

}

&

struct

{inta,b;

union{intM,N;charch[10];}in;

}Q?

P=&Q;

main()

{Q.a=3;Q.b=6;

Q.in.M=(*p).a+(*p).b;Q.in.N=p->a*p->b;

printf("%d,%d,%d\n",sizeof(Q.in),Q.in.M,Q.in.N);}

intfun(intx)

inty=0;

staticintz=3;

z++;++y;

return(x+y+z);

}

voidmain()

{

inti,x=2;

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

printf(n%5d",fun(x++));

}

10.

voidmain()

{

ints=0

for(i=l;;i++)

{

if(s>50)break;

if(i%2==0)s+=i;

}

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

}

11.

intgcd(intmjntn)

{if(m==n)returnm;

elseif(m>n)returngcd(m,n);

elsereturngcd(m,n-m);

}

voidmain()

{

printf(wGcd=%d\n,r,gcd(24,36));

}

12.

#include

voidmain()

{inti=0;

charc,s[]=”SABC”;

while(c=s[i])

switch(c)caseA:

i++;bi・eak;

case'B‘汁+i;

default:

putchar(c);i++;

}

putcharC*1);

}

}

13.

#includc

intal=300,a2=400;

voidsubl(intx.inty)

{al=x;

x=y;

y=al;

}

voidmain()

{inta3=l00,a4=200;

subl(a3,a4);

subl(al,a2);

printf("%d,%d,%d,%d\nn,a1,a2,a3,a4);

14.

structprob

{char*a;

intb;

}x[]={MZhangSan'1,19,"LiSi”,21,“WangWu”,20};

voidmain()

{inti,ml,m2;

ml=m2=x[0].

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1