C综合复习题docxWord格式.docx

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

C综合复习题docxWord格式.docx

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

C综合复习题docxWord格式.docx

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”,&

1020<回车〉

C.

a=10,b=20<

冋车〉

10,20<

回车〉

scanf(”%d,%d”,&

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

D.5和2

17.

设inta=2,b=3,c=4;

则表达式a>

b&

b<

c||b的值是

-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<

y;

x++,y・・)z++;

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语言屮,

C.4

B.2

D.4

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

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(a<

b)if(b>

c){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的值为()

44.设inta,*p;

则语句p=&

中的运算符“&

”的含义是()

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=&

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=&

C・px=x;

D.constint*px=&

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

#include<

stdio.h>

voidmain(){

printf(H\n*sl=%15s*M,HchinabejingM);

printf(,,\n*s2=%-5s*,,,"

chi"

);

*sl=chinabejing*

s2=**chi*

c.

B・

*sl=chinabejing

*s2=*chi*

D・

sl=chinabcjing*

*sl=chinabcjing*

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、是死循环

{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<

CR>

(_代表空格,<

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

#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];

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

{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

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);

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,&

数据的输入形式是。

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.

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

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

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

c=%d\nn,c);

2.

intf(intn)

{staticintm=5;

return++m+n;

{inti;

i++)printfC%5d"

f(i));

printfC\n〃);

3.

#defineSIZE4

{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);

{

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

5.

{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);

{printf(,'

SUM=%d\n'

,SUM(5));

7.

intfuc(intj)

{staticintk;

return(++k+j);

{intj;

for(j=l;

=3;

j++)printf(n%5dn,fuc(10));

printf(M\nn);

struct

{inta,b;

union{intM,N;

charch[10];

}in;

}Q?

P=&

Q;

{Q.a=3;

Q.b=6;

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

Q.in.N=p->

a*p->

%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);

inti,x=2;

2;

printf(n%5d"

fun(x++));

10.

ints=0

for(i=l;

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);

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

12.

#include<

{inti=0;

charc,s[]=”SABC”;

while(c=s[i])

switch(c)caseA:

i++;

bi・eak;

case'

B‘汁+i;

default:

putchar(c);

putcharC*1);

13.

#includc<

intal=300,a2=400;

voidsubl(intx.inty)

{al=x;

x=y;

y=al;

{inta3=l00,a4=200;

subl(a3,a4);

subl(al,a2);

%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