全国软件专业人才设计与开发大赛校内选拔赛C语言程序设计试题_第1页
全国软件专业人才设计与开发大赛校内选拔赛C语言程序设计试题_第2页
全国软件专业人才设计与开发大赛校内选拔赛C语言程序设计试题_第3页
全国软件专业人才设计与开发大赛校内选拔赛C语言程序设计试题_第4页
全国软件专业人才设计与开发大赛校内选拔赛C语言程序设计试题_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

全国软件专业人才设计与开发大赛校内选拔赛

C语言程序设计试题

说明:本试题共15页,请把答案写在答题卡上。

一、单选题(共60小题,每题1分,共60分)

1.执行下列程序中的输出语句后,x的值是_____.

main()

lintx;

printf("%d\n",(x=5*6,x*2,x+20));}

A)30B)60C)50D)80

2.下列程序的输出结果是_____.

main()

{intx=l,y=0,z;

z=(x<=0)&&(y--->=0);

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

A)0-1-1B)0-10C)010D)01-1

3.在C语言中,下列选项属于合法的长整型常数的是.

A)0LB)1234567C)0.0234567D)3.14159e3

4.下列选项中属于不正确的赋值语句的是.

A)t++;B)nl=(n2=(n3=0));C)k=i==j;D)a=b,c=l;

5.若有定义:inta,b;charx,y;并有以下输入数据:1422XxYy(回车)

则能给a赋整数14,给b赋整数22,给x赋字符x,给y赋字符y的正确程序段是

A)scanf(“%d%d”,&a,&b);

x=getchar();y=getchar();

B)scanf(u%d%d%c枇",&a,&b,&x,&x,&y,&y);

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

D)scanf(u%d%d%c%c",&a,&b,&x,&y);

6.下列转义字符不正确的是.

A)'\\‘B)'\'C)''053'D),\0,

7.下列选项可作为C滔言赋值语句的是.

A)x=3,y=5B)a=b=6C)i—;D)y=int(x);

8.当c的值不为。时,下列选项中能正确将c的值赋给变量a、b的是.

A)c=b=a;B)(a=c)II(b=c);C)(a=c)&&(b=c);D)a=c=b;

9.有以下程序:

main()

{unsignedinta;

intb=-l;

a=b;

printf("%u”,a);}

该程序运行后的输出结果是,(知识点4.5)

A)-1B)65535C)32767D)-32768

10.若x、b、m、n均为int型变量,执行下面语句后b的值为.

田二20;n二6;

x=(—m==n++)?—m:++n;

b=m++;

A)11B)6C)19D)18

H.有以下程序:

main()

{inta=l11,b=222;

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

)

该程序运行后的输出结果是______.

A)错误信息B)111C)222D)111,222

12.以下程序的输出结果是.

main()

{inta=2,c=5;

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

A)a=%2,b=%5B)a=2,b=5C)a=%%%d,b=%%%dD)a=%%d,b=%%d

13.对于浮点型变量f,能实现对f中的值在小数点后第三位进行四舍五入的表达式

是•

A)f=(f*100+0.5)/100.0B)f=(f*100+0.5)/100

C)f=(int)(f*100+0.5)/100.0D)f=(f/100+0.5)*100

14.设a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a>b)&&(n=c>d)后m,

n的值为.

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

15.语句printf(“%d\n”,strlen("asd\n\xl2\l\\"));的输出结果是.

A)9B)11C)7D)8

16.有以下程序:

main()

(

inty=1234;

printf(“y=%6d”,y):

printf(“y』+06d\n",y);

)

该程序的运行结果是______.

A)尸1234y=001234B)y=1234y:+01234

C)y=1234y=+01234D)y=1234y=1234

17.语句:printf(飞d",!9);的输出结果是.

A)0B)1C)有语法错误,不能执行D)-9

18.已有定义语句:intx=6,y=4,z=5;执行以下语句后,能正确表示x、y、z值

的选项是.

if(x<y)z=x;x=y;y二z;

A)x=4,y=5,z=6B)x=4,y=6,z=6

C)x=4,y=5,z=5D)x=5,y=6,z=4

19.下列选项中属于正确的switch语句的是

A)switch(1.0)B)swicth(1)

{case1.0:printf(“A\n”);{case1:printf("A\n");

case2.0:printf}case2:printf("B\n");}

C)switch((int)(1.0+2.5))D)switch("a");

{case1:printf("A\n”);{case“a":printf("A\n");

case1+2:printf}case"b":printf(“B\n”);}

20.若k为int型变量,以下语句段执行后的输出结果是

k=-3;

if(k<=0)printf("####")

elseprintf(“****”);

A)####B)****C)####****D)有语法错误,不能执行

21.当a=2,b=3,c=4,d=5时,执行下面一段程序后x的值为.

if(a>b)

if(c<d)x=l;

else

if(a<c)

if(b>d)x=2;

elsex=3;

elsex=4;

elsex=5;

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

22.下列程序的运行结果是.

main()

{inty=10;

do{y--;}while(--y);

printfy—);}

A)-1B)1C)8D)0

23.下列程序的运行结果是.

#include<stdio.h>

main()

inti;

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

{if(i%2)printf(“*”);

elsecontinue;

printf("#");

)

printf("$\n");

}

A)*#*#$B)#*#*#*$C)*#*#*#$D)***#$

24.若x是int型变量,且有下面的程序片段:

for(x=5;x<8;x++)

printf((x%2)?(“#部d\n"),x);

该程序片段的输出结果是.

A)**5##6B)##5C)##5**6##7D)**5##6**7**7**6##7

25.有以下程序:

main()

{inta=l,b=0;

switch(a)

{case1:switch(b)

{case0:printf(“****”);break;

case1:printf("####");break;}

case2:printf(“$$$$”);break;}

该程序的输出结果是

A)****B)****$$$$C)****####$$$$D)####$$$$

26.下列程序段的输出结果是.

intx=3;

do{printf(<<%3d,\x-=2);}

while(!(----x));

A)1B)30C)1-2D)死循环

27.有以下程序,其中x、y为整型变量;

for(x=0,y=0;(x<=L)&.&(y=1);x++,y---);

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

该程序的输出结果是____.

A)x=2,y=0B)x=l,y=0C)x=l,y=lD)x=0,y=0

28.有以下程序段:

intn=0,p;

do{scanf&p);n++;}while(p!=12345&&n<3);

此处do-while循环的结束条件是.

A)p的值不等于12345并且n的值大于3

B)p的值等于12345并且n的值大于等于3

C)p的值不等于12345或者n的值小于3

D)p的值等于12345或n的值大于等于3

29.在下述程序中,if(i>j)语句共执行的次数是.

main()

{inti=0,j=10,k=2,s=0;

for(;;)

(ii=k;

if(i>j)

{printfs);

break;

)

s+=i;

}

}

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

30.以下程序的功能是:按顺序读入10名学生和4门课程的成绩,计算出每位学生

的平均分进行输出,但运行结果不正确。

main()

{intn,k;floatscore,ave;

ave=0.0;

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

{for(k=l;k<=4;k++)

{scanf&score);

ave+=score/4;}

printfNO%d:%f\nr\n,ave);}

}造成程序计算结果错误的语句行是.

A)ave=0.0;B)for(n=l;n<=10;n++)

C)ave+=score/4;D)printf(“N0%d:n,ave);

31.若有以下定义:chars[10]={'a','b','c','O',''0','2','\x32','\0'};

执行语句printfstrlen(s));的结果是_____.

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

32.设有数组定义:chararray[]=uabcdefw;则数组array所占的空间为_.

A)4个字节B)5个字节C)6个字节D)7个字节

33.有以下程序:

main()

{charstr[][10]={"China","Beijing"},*p=str;

printf("%s\n”,p+10);}

该程序运行后的输出结果是.

A)ChinaB)BeijingC)ngD)ing

34.阅读下面程序,该程序段的功能是.

^include<stdio.h>

main()

{intc[]={23,1,56,234,7,0,34},i,j,t;

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

{t=c[i];j=i-l;

while(j>=0&&t>c[j])[c[j।l]=c[j];j;}

c[j+l]=t;}

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

putcharC\n,);

)

A)对数组元素的升序排列B)对数组元素的降序排列

C)对数组元素的倒序排列D)对数组元素的随机排列

35.下列程序的输出结果是.

main()

{intn[3][3],i,j:

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

for(j=0;j<3;j++)n[i][j]=i+j;

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

for(j=0;j<2;j++)n[i+l][j+l]+=n[i][j];

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

}

A)14B)0C)6D)值不确定

36.下列函数调用语句中含有个参数。

func((fl,f2),(f2,f3,f4),f5)

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

37.下列程序的运行结果是.

ttinclude<string.h>

main()

{char*pl,*P2,ch:20]="ABCDEFabcdef”;

pl=“1234”;p2=“abed”;

strepy(ch+1,p2+l):strepy(ch+3,pl+3);

pintf("%s\n",ch);}

A)Abc4EFabcdeB)Abc4EFC)AbcdEFD)Abc4

38.下列程序的运行结果是.

#include<stdio.h>

intf(inta)

{switch(a)

{case0:return0;

case1:case2:return1;

)

return(f(a-2)+f(a-3));

)

main()

{intb;

b=f(10);

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

)

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

39.有以下程序:

fun(intn)

{if(n==1||n==2)return2;

returns=n-fun(n-2);}

main()

{printf(“%d\n”,fun(7));}

该程序运行后的输出结果是.

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

40.下列程序中函数sort的功能是对a数组中的数据进行由大到小的排序:

voidsort(inta[],intn)

{inti,j,t;

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

for(j=i+l;j<n;j++)

if(a[i]<a[j]){t=a'i];a[i]=a[j];a[j]=t;}

}

main()

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

sort(&aa[3],5);

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

printf

}

该程序运行后的输出结果是____.

A)1,2,3,4,5,6,7,8,9,10,B)10,9,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,

41.下列程序的运行结果是.

main()

{inta=3,y;

y=fn(a,a++);

printf("%d”,y);}

intfn(x,c)

{intb;

if(x<c)b=l;

elseif(x==c)b=0:

elseb=-l;

return(b);

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

42.下列程序的运行结果是.

main()

{chararr[2][4];

strcpy(arr,“you"):strcpy(arr[1],“me”);

printf(“%s\n”,arr);}

A)youmeB)youC)meD)arr

43.下列程序的输出结果是.

intf()

{staticinti=0;

ints=l;

s+二i;i++;

returns;}

main()

{inti,a=0;

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

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

A)20B)24C)25D)15

44.程序中对fun函数有如下说明:

void*fun();

此说明的含义是.

A)fun函数无返回值

B)fun函数的返回值可以是任意的数据类型

C)fun函数的返回值是无值型的指针类型

D)指针fun指向一个函数,该函数无返回值

45.设有下列定义:staticintx,*p=&x,*q;

scanf("%d,%d,\p,q);

若输入3,4,则x的值为.

A)3B)4C)0D)无法确定

46.设有以下程序:

intfun(char*s)

{intn=0;

while(*s){n++;s++;}

returnn;)

main()

{chary[]=athis_is_anexample.n;

printf(“%d\n”,fun(&y[6]));

)

该程序的输出结果是____.

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

47.下列程序的功能是.

intfun(char*a)

{char*b=a;

while(*b)b++;

{returnb-a;}

}

A)比较两个字符串的大小B)字符串的复制

C)计算字符串的长度D)字符串的连接

48.下列程序的输出结果是.

main()

(

intk=3,m=5,n=7;

int*pk=&k,*pm=&m,*p;

*(p=&n)=*pk*(*pm);

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

)

A)5B)7C)15D)21

49.下列程序的执行结果是.

main()

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

printf("%d",*----p);}

A)非法B)a[4]的地址C)5D)4

50.以下函数返回a所指的数组中最小值所在的下标值:

fun(int*a,intn)

{inti,j=0,p;

P二j;

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

if(a[i]<a[p]);

return(p);}

在下划线处应填入.

A)i=pB)a[p]=a[i]C)p=jD)p=i

51.下列程序的运行结果是.

voidfun(int*a,int*b)

{int*k;

k二a;a=b;b=k;}

main()

{inta=3,b=6,*x=&a,*y=&b;

fun(x,y);

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

)

A)63B)36C)编译出错D)00

52.有如下程序:

Sdefinef(x)x*x

main()

{inti;

i=f(4+4)/(2+2);

printf(“与d\n",i);)

该程序执行后的输出结果是.

A)28B)21C)16D)4

53.下列程序的输出结果是______.

structtt;

{intnl;charn2;floatn3;

unionuu{intul[2];charu2[2];}su;

);

main()

{printf("为d\n",sizeof(structtt));}

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

54.下列程序的输出结果是.

structLH

{intn;structLH*m;}p[4];

main()

{inti;

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

{p[i].n=i;p[i].m=&p[i+l];}p[i].m=p;

printf("%d,%d\n”,(p[l].m)->n,p[3].m->n);

}A)1,2B)1,3C)2,0D)程序出错

55.下列程序的输出结果是______.

structst

{intx;int*y;}*p;

intdt[4]={10,20,30,40};

structstaa[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3]};

main()

{P=aa;

printf("%d”,++p->x);

printf(“%d”,(++p)->x);

printf(^%d",++(*p->y));}

A)102020B)506021C)516021D)607031

56.字符0的ASCH码的十进制数为48,且数蛆的第0个元素在低位,则以下程序

的执行结果是.

#include<stdio.h>

main()

{union

{inti[4];

longk;

charc[6];

}a,*s=&a;

s->i[0]=0x39;

s->i[l]=0x38;

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

)

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

57.下列程序的运行结果是.

main()

{unsignedcl=0xff,c2=0x00;

cl=c2|cl»2;c2=cr0236;

printf("%x,%x\n”,cl,c2);

}

A)0x3f,0XA1B)3f,AlC)ffff,61D)3f,al

58.若有运算符<〈,sizeof,\&=,则它们按优先级由高至低的排列次序正确的是

A)sizeof,&=,<<,八B)sizeof,<<,八,&=

C)"«,sizeof,&二D)<<,八,&二,sizeof

59.有以下程序:

^include<stdio.h>

voidfun(char*fname,char*st)

{FILE*niyf;inti;

myf=fopen(fname,"w");

for(i=0;i<strlen(st);i++)fputc(st[i],myf);

fclose(myf);

main()

{fun("test,t",“newworld");fun("test,t","hello,”);}

执行该程序后,文件test,t中的内容是.

A)hello,B)newworldhello,C)newworldD)hello,rid

60.有以下程序:

Sinclude<stdio.h>

main()

{FILE*fp;inti=20,j=30,k,n;

fp=fopen("dl.dat","w");

fprintf(fp,i);fprintf(fp,j);

fclose(fp);

fp=fopen("dl.dat","r");

fscanf(fp,&k,&n);printf(w%d%d\n”,k,n);

fclose(fp);}

该程序运行后的输出结果是.

A)2030B)2050C)3050D)3020

二、多选题(共20小题,每题2分,共40分)

1.下列符号串中,不属于C语言合法标识符的有____.

A)_1_2_3B)a-b-cC)intD)9cd

2.当把下列四个表达式用作if语句的控制表达式时,含义相同的选项有.

(假设k>0)

A)k%2B)k%2==1C)(k%2)!=0D)!k%2==0

3.已有定义inta=-2;和输出语句printf("艇lx”,a);下列叙述不正确的有

A)整型变量的输出形式只有刎一种

B)%x是格式符的一种,它可以适用于任何一种类型的数据

C)%x是格式符的一种,其变量的值按十六进制输出,但%81x是错误的

D)胧lx不是错误的格式符,其中数字81规定了输出字段的宽度

4.下列选项中,没有构成死循环的程序段有.

A)inti=100;B)for(;;)

while(1)

{i=i%100+l;

if(i>=100)break;}

C)intk=0;D)ints=36;

do{++k;}while(k>=0);while(s);----s;

5.t为int类型,进入下面的循环之前,t的值为0:

while(t=l)

{......o}

则下列叙述不正确的有.

A)循环控制表达式的值为0B)循环控制表达式的值为1

C)循环控制表达式不合法D)循环有可能是个无限循环

6.下列判断正确的是.

A)char*a="china";等价于char*a;*a="china”;

B)charstr[6]={"china”};等价于charstr[]={"china”};

C)char*s="china";等价于char*s;s="china”;

D)charc[4]="abc",d[4]="abc";等价于charc[4]=d[4]="abc";

7.若变量已正确定义,以下能正确计算1+2+3+4+5的程序段有.

A)i=l;s=l;B)i=0;s=0;

dodo

{s=s+i;i++;{i++;s=s+i;

while(i<5);while(i<5);

C)i=l;s=0;D)i=0;s=0;

dodo

{s=s+i;i++;{s=s+i;i++;

while(i<6);while(i<=5);

8.下面程序把数组元素中的最小值放入a[0]中,则在if语句中条件表达式可以是

main()

{inta[10]=(5,2,9,6,7,1,12,8,23,0},*p=a,i;

for(i=0;i<10;i++,p++)

if()*a=*p:

printf*a);

)

A)p>aB)*p<a[0]C)*p<*a[0]D)*p<*a

9.设有如下定义:

char*s[2]={“abed”,“ABCD”}:

则下列说法正确的有.

A)s数组元素的值分别是“abed”和“ABCD”两个字符串的首地址

B)s是指针数组名,它含有两个元素分别指向字符型一维数组

C)s数组的两个元素分别存放的是含有四个字符的一维字符数组中的元素

D)s数组的两个元素中分别存放了字符'a'和'A'的地址

10.以下有关字符串赋值、赋初值的语句错误的有_____.

A)charsz[2][40];sz[l]二“stringl”;

B)char*sz[2];sz[l]="string2”;

C)charsz[][40]="string3”;

D)char*sz[]="string4”;

11.若有以下说明:inta[5][9];则下列选项中对数组元素a[i][j]的引用错误的

有.(0<=i<4,0<=j<9)

A)*(&a[0][0]+9*i+j)B)*(a+i)(j)C)*(*(a+i)+j)D)*(a[i]+j)

12.若有定义:char*st="howareyou!”;下面程序段正确的有.

A)chara[l1],*p;strcpy(p=a+l,&st[4]);

B)chara[l1];strcpy(++a,st);

C)chara[ll];strcpy(a,st);

D)chara[],*p;strcpy(p=st+2);

13.设有以下说明语句:

Structstu

{inta;

floatb;

}stutype;

则下列叙述正确的有.

A)struct是结构体类型的关键字

B)structstu是用户定义的结构体类型

C)stutype是用户定义的结构体类型名

D)a和b都是结构体成员名

14.若已建立如图所示的单向链表:

则下列选项中能将S所指的结点插入到链表尾部,构成新的单项链表的语句组有

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论