C 复习题A.docx

上传人:b****3 文档编号:26716758 上传时间:2023-06-22 格式:DOCX 页数:35 大小:23.23KB
下载 相关 举报
C 复习题A.docx_第1页
第1页 / 共35页
C 复习题A.docx_第2页
第2页 / 共35页
C 复习题A.docx_第3页
第3页 / 共35页
C 复习题A.docx_第4页
第4页 / 共35页
C 复习题A.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

C 复习题A.docx

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

C 复习题A.docx

C复习题A

一、单项选择题

(01)下列合法的变量名是()

A)2sp

B)qe$3

C)short

D)T_fe

(02)下列各表达式中,其值为零的是()

A)!

(1/2)

B)(4,1,3/7)

C)1&&1||0

D)3%11

(03)下列程序段运行的结果是()

#include

main()

{

inti=1,s=4;

do{

s+=i++;

if(s%7==0)

continue;

else

++i;

}while(s<15);

printf("%d",i);

}

A)9

B)7

C)8

D)6

(04)下面程序的执行结果是()

main()

{

intu=010,v=0x10,w=10;

printf("%d,%d,%d\n",u,v,w);

}

A)15,11,10

B)13,17,10

C)8,16,10

D)13,11,10

(05)以下程序中,while的循环次数是()

main()

{

inti=2;

while(i)

{

if(i=1)continue;

if(i>=5)break;

i++;

}

}

A)0

B)5

C)1

D)死循环

(06)执行下面循环的输出结果是()

main()

{

inty=7;

for(;y>0;y--)

if(y%2==0)printf("%d",--y);printf("\n");

}

A)74

B)52

C)531

D)753

(07)若有定义:

enumball{good,old,big,small}bl;则下面语句正确的是()

A)bl=2;

B)bl=small;

C)old=10;

D)bl.good=3;

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

main()

{

inta=5,b=3;

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

}

A)5B)3

C)1D)2

(09)下列程序的执行结果是()

unionlht

{

inta[2];

doubled;

floatu;

}len;

structdate

{

float*p;

unionlhtt;

intc;

}da;

main()

{

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

}

A)20B)22

C)18D)23

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

structstudent

{intnum;

charname[10];

intage;

}stu[3]={{9801,"Zhang",20},

{9802,"Wang",19},

{9803,"Zhao",18}};

main()

{

structstudent*p=stu;

printf("%s\n",p->name);

}

A)ZhangB)Zhao

C)WangD)18

(11)下面程序的输出结果是()

main()

{charstr[]="abc",*p=str;

printf("%c\n",*(p+3));

}

A)bB)c

C)0D)无输出

(12)若有以下定义:

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

则下面值为5的表达式是()。

A)p+=4,++*p

B)p+=4,*(p++)

C)p+=5,*p++

D)p+=4,*++p

(13)对于下述程序段,结构体变量stu的成员num的非法引用是()。

structst

{

intage;

intnum;

}stu,*p;

p=&stu;

A)stu.numB)*p->num

C)p->numD)(*p).num

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

voidf(intb[])

{inti=0;

while(b[i]<=10)

{printf("%d",b[i]);

i++;

}

}

main()

{intb[]={1,3,7,10,11,8};

f(b+3);

}

A)13710B)10

C)137D)运行时出错

(15)以下程序的输出结果是()。

main()

{

inta=5,t,s=6,*p1=&t,*p2=&s;

a=p1==p2;

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

}

A)4B)1

C)0D)运行时出错

(16)函数fun的返回值是()

intfun(char*a,char*b)

{

intnum=0,n=0;

while(*(a+num)!

='\0')num++;

num=0;

while(b[n])

{

*(a+num)=b[n];num++;n++;

}

returnnum;

}

A)字符串a的长度

B)字符串b的长度

C)字符串a和b的长度之差

D)字符串a和b的长度之和

(17)以下程序输出结果是()

voidsub(floatx,float*y,float*z)

{

*y=*y-3.0;*z=*z+x;

}

main()

{

floata=3.5,b=8.0,*pa,*pb;

pa=&a;pb=&b;

sub(b-a,pa,pb);

printf("%2.1f\n",a);

}

A)4.0B)2.0

C)3.5D)0.5

(18)以下程序的输出结果是()。

main()

{

chara[]="photoshop",b[]="proe";

char*p1,*p2;inti;

p1=a;p2=b;

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

if(*(p1+i)==*(p2+i))

printf("%c",*(p1+i));

}

A)phB)pr

C)poD)o

(19)以下程序中输入’B’,将输出的结果是()。

main()

{

charc;

c=getchar();

switch(c)

{

case'A':

case'a':

printf("$\n");break;

case'B':

case'b':

printf("#");

default:

printf("@\n");

}

}

A)#B)无输出

C)#@D)@

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

main()

{

char*ss[2]={"1234","5678"};

printf("%s\n",ss[0]);

printf("%c\n",**ss);

}

A)1234B)5678

55

C)1234D)5678

11

(21)下列程序的输出结果是()

voidfun()

{staticinta;

intb=1;

printf("%d",(a+=3,a+b));

}

main()

{

inti;

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

fun();

}

A)不确定B14

C)44D)47

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

voidbg(int*t,intm,intn)

{

*t=m%n;

}

main()

{inta,b,c;

bg(&a,8,3);

bg(&b,7,a);

bg(&c,a,b);

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

}

A)3,1,2B)2,1,0

C)2,1,2D)1,2,11

(23)以下程序的执行结果是()

intfun(intn)

{

if(n==1)return1;

else

returnn+fun(n-1);

return0;

}

main()

{

printf("%d\n",fun(4));

}

A)8B)10

C)1D)6

(24)以下程序的输出结果是()。

main()

{int*p,a=3,b=2;

p=&a;

p++;

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

}

A)0B)2

C)3D)不确定

(25)执行下列语句后,a的值是()。

inta=3;

a+=a-=a*a;

A)0B)-12C)-8D)6

(26)下面程序的输出结果是()

intss(char*s)

{

char*p=s;

while(*p)p++;

return(p-s);

}

main()

{

char*str="Ilovechina";

intn;

n=ss(str+7);

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

}

A)12B)5

C)13D)6

(27)以下程序的输出结果是()。

main()

{

intx,i;

for(i=1;i<50;i++)

{

x=i;

if(x++%2==0)

if(x++%3==0)

if(x++%7==0)

printf("%4d",x);

}

printf("\n");

}

A)2849B)42

C)29D)1435

(28)已知:

intx=5;下列do-while循环语句的循环次数是()。

do{

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

x--;

}while(!

x);

A)0

B)1

C)5

D)无限

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

#include

main()

{

chars1[20]="black",*s2="ball";

strcat(s1,s2);printf("%d\n",strlen(s1));

}

A)5B)4

C)9D)10

(30)已知:

intx=10,*px=&x;下列表达式中非法的是()

A)*&x=3B)*px=8

C)x=5D)px=x

(31)下面程序的执行结果是()

main()

{

charch1='d',ch2='h';

printf("%c\n",ch2-ch1+'A');

}

A)MB)E

C)FD)101

(32)下列程序段运行的结果是()

main()

{intk=3,s=5;

do{s+=k++;

if(s%3==0)

continue;

else++k;

}while(s<11);

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

}

A)8B)6

C)7D)9

(33)下列数组初始化错误的表示是()。

A)charstr[3]={'a','b','c'};

B)charstr[5]="abc";

C)charstr[]="ijkh";

D)charstr[5];

str[5]={'m','n','s','r'};

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

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+1)];

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

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

}

A)20B)21

C)22D)23

(35)下面程序的执行结果是()

main()

{

intx=1,y;

for(y=1;y<=10;y++)

{

if(x==10)break;

if(x%2==1)

{x+=5;continue;}

x-=3;

}

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

}

A)2B)4

C)6D)8

(36)下面程序的执行结果是()

main()

{

intj;

for(j=10;j>3;j--)

{

if(j%3)j--;

--j;--j;

printf("%d",j);

}

}

A)63B)74

C)62D)73

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

main()

{

union{inti[2];

doublek;

charc[2];

}r,*s=&r;

s->c[0]=0x39;

s->c[1]=0x38;

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

}

A)39B)9

C)38D)8

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

intd=1;

fun(intp)

{

intd=5;

d+=p++;

printf("%d",d);

}

voidmain()

{

inta=3;

fun(a);

d+=a++;

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

}

A)84B)96

C)94D)85

(39)下述对C语言字符数组的描术中错误的是()

A)字符数组可以存放字符串

B)字符数组中的字符串可以整体输入、输出

C)可以在赋值语句中通过赋值运算符"="对字符数组整体赋值

D)不可以用关系运算符对字符数组中的字符串进行比较

(40)执行以下程序后,y的值是()

main()

{

inta[]={2,4,6,8,10};

inty=1,x,*p;

p=&a[1];

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

y+=*(p+x);

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

}

A)17B)18C)19D)20

(41)C中运算符优先级由高到低排列正确的是()

A)?

:

%+!

B)<*||,

C)->+++||

D)%=,&&sizeof

(42)已知:

inta=8,b=4;表达式!

a&&++b的值及b的值是()。

A)05B)14C)04D)15

(43)设inta=3,b=2;则表达式b*a++的结果是()

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

(44)下面程序的运行结果为()

main()

{

for(ints=0,x=0;!

x&&s<=10;s++)

{

s++;

}

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

}

A)10B)12C)11D)0

(45)指出下面哪条语句中,变量a不被赋值()

A)a++;B)a==b;

C)a+=b;D)a%=b;

(46)以下程序的输出结果是()。

main()

{

inta=1,b=2,c=3;

b=a+3*a+b;

c%=(a+b+3);

a=b

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

}

A)1,6,9B)0,6,3

C)6,6,3D)6,6,9

(47)已知:

inta,*pa=&a;下列表达式中与&*pa相同的是()

A)*paB)aC)&aD)&pa

(48)下列不正确的转义字符是()

A)'\\'B)'\"C)'074'D)'\0'

(49)执行下列语句后,a的值是()。

inta=2;

a+=a-=a*a;

A)0B)2C)4D)-4

(50)以下程序的输出结果是()。

main()

{

inta=3,k,m=6,*p1=&k,*p2=&m;

a=p1!

=&m;

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

}

A)4B)0C)1D)运行时出错

51)以下程序的执行结果是()

main()

{

doubled=3.2;

intx,y;

x=1.2;

y=(x+3.8)/5.0;

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

}

A)0B)3C)3.2D)3.0

(52)设x,y,z,t均为int型变量,则执行以下语句后,t的值为()

x=y=z=1;

t=++x||++y&&++z;

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

(53)以下说法错误的是()

A)static型变量只初始化一次

B)auto型变量只在其定义的函数或分程序中有效

C)变量的存储类别分为四种

D)外部变量的作用域与它的定义位置无关

(54)以下程序段的输出结果是()。

charstr[]="BCDE",*p=str+3;

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

A)字符E的地址B)0

C)69D)不确定

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

main()

{

float*p,u;

p=&u;

*p=18.5;

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

}

A)4B)12.3C)2D)8

(56)以下程序的输出结果是()。

main()

{

inti=1,j=1,k=2;

if((j++||k++)&&i++)

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

}

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

(57)若有语句:

inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;

则下面对a数组元素的引用不正确的是()

A)*(*a+i)B)*(&a[i])

C)*pD)a[p-a]

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

#include

main()

{

char*s1="abcdef",*s2="abcd";

printf("%d\n",strlen(strcpy(s1,s2)));

}

A)5B)4C)9D)10

(59)下面程序的执行结果是()

main()

{

inta=5,b=0,c=0;

if(a=b+c)printf("***");

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

}

A)0B)编译错误C)5D)***

(60)对于下述程序段,结构体变量data的成员a的正确引用是()。

structsk

{

inta;

floatb;

}data,*p;

p=&data;

A)(*p).data.aB)(*p).a

C)p->data.aD)p.data.a

单选题答案:

01.D02.B03.A04.C05.D

06.C07.B08.C09.A10.A

11.D12.B13.B14.B15.C

16.B17.D18.C19.C20.C

21.D22.B23.B24.D25.B

26.B27.C28.B29.C30.D

31.B32.C33.D34.B35.C

36.B37.B38.A39.C40.C

41.C42.C43.C44.B45.B

46.B47.C48.C49.D50.C

51.A52.C53.D54.C55.C

56.A57.A58.B59.A60.B

二、改错题

(1)以下程序的功能是:

从键盘上输入5个学生的成绩,计算其平均值。

题中有两处错误,均在/********found******/下一行,请改正。

main()

{

inti;

floatx,sum=0,aver;

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

{

/*************found*************/

scanf("%f",x);

sum+=x;

}

aver=sum/5;

/*************found*************/

printf("%4.1f\n,aver");

}

(2)以下程序的功能是:

求二维数组中最大的元素值及其行列号。

题中有两处错误,均在/********found******/下一行,请改正。

main()

{

inta[3][4]={{1,2,3,4},

{9,8,7,6},

{-10,10,-5,2}};

inti,j,hang=0,lie=0,max;

max=a[0][0];

/*************found*************/

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

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

/*************found*************/

if(a[i][j]

{

max=a[i][j];

hang=i;

lie=j;

}

printf("%d,%d,%d\n",max,hang,lie);

}

(3)以下程序的功能是:

从键盘上输入10个数,用函数求其平均值。

题中有两处错误,均在/********found******/下一行,请改正。

floataverage(intstu[10],intn)

{

inti;

floatav,total=0;

for(i=0;i

av=total/n;

/*************found*************/

returntotal,av;

}

main()

{

intscore[10],i;

floatav;

printf("In

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

当前位置:首页 > 自然科学 > 物理

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

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