全国软件专业人才设计与开发大赛题目选拔试题及参考答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

全国软件专业人才设计与开发大赛题目选拔试题一、基础篇(50分)1、单选(每题1分,10小题共10分)1).执行下列程序中的输出语句后,x的值是_____.main(){intx;printf(“%d\n”,(x=5*6,x*2,x+20));}A)30B)60C)50D)802).在C语言中,下列选项属于合法的长整型常数的是_______.A)0LB)1234567C)0.0234567D)3.14159e33).若有定义: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(“%d%d%c%c”,&a,&b,&x,&x,&y,&y);C)scanf(“%d%d%c%c%c%c”,&a,&b,&x,&x,&y,&y);D)scanf(“%d%d%c%c”,&a,&b,&x,&y);4).当c的值不为0时,下列选项中能正确将c的值赋给变量a、b的是_______.A)c=b=a;B)(a=c)‖(b=c);C)(a=c)&&(b=c);D)a=c=b;5).语句printf(“%d\n”,strlen(“asd\n\x12\1\\”));的输出结果是______.A)9B)11C)7D)86).下列程序的运行结果是________.main(){inty=10;do{y--;}while(--y);printf(“%d\n”,y--);}A)-1B)1C)8D)07).阅读下面程序,该程序段的功能是_____.#includestdio.hmain(){intc[]={23,1,56,234,7,0,34},i,j,t;for(i=1;i7;i++){t=c[i];j=i-1;while(j=0&&tc[j]){c[j+1]=c[j];j--;}c[j+1]=t;}for(i=0;i7;i++)printf(“%d”,c[i]);putchar('\n');}A)对数组元素的升序排列B)对数组元素的降序排列C)对数组元素的倒序排列D)对数组元素的随机排列8).有如下程序:#definef(x)x*xmain(){inti;i=f(4+4)/(2+2);printf(“%d\n”,i);}该程序执行后的输出结果是_______.A)28B)21C)16D)49).下列程序的运行结果是_______.main(){unsignedc1=0xff,c2=0x00;c1=c2|c12;c2=c1^0236;printf(“%x,%x\n”,c1,c2);}A)0x3f,0XA1B)3f,A1C)ffff,61D)3f,a110).有以下程序:#includestdio.hmain(){FILE*fp;inti=20,j=30,k,n;fp=fopen(“d1.dat”,“w”);fprintf(fp,“%d\n”,i);fprintf(fp,“%d\n”,j);fclose(fp);fp=fopen(“d1.dat”,“r”);fscanf(fp,“%d%d”,&k,&n);printf(“%d%d\n”,k,n);fclose(fp);}该程序运行后的输出结果是_______.A)2030B)2050C)3050D)30202、多选(每题2分,共10题,共20分,错选,漏选均不得分)1).下列符号串中,不属于C语言合法标识符的有_____.A)_1_2_3B)a-b-cC)intD)9cd2).下列选项中,没有构成死循环的程序段有_____.A)inti=100;B)for(;;)while(1){i=i0+1;if(i=100)break;}C)intk=0;D)ints=36;do{++k;}while(k=0);while(s);——s;3).下列判断正确的是_______.(知识点10.3)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”;4).设有如下定义:char*s[2]={“abcd”,“ABCD”};则下列说法正确的有_____.A)s数组元素的值分别是“abcd”和“ABCD”两个字符串的首地址B)s是指针数组名,它含有两个元素分别指向字符型一维数组C)s数组的两个元素分别存放的是含有四个字符的一维字符数组中的元素D)s数组的两个元素中分别存放了字符'a'和'A'的地址5).若有以下说明:inta[5][9];则下列选项中对数组元素a[i][j]的引用错误的有_______.(0=i4,0=j9)A)*(&a[0][0]+9*i+j)B)*(a+i)(j)C)*(*(a+i)+j)D)*(a[i]+j)6).若有定义:char*st=“howareyou!”;下面程序段正确的有_____.(知识点:7.3)A)chara[11],*p;strcpy(p=a+1,&st[4]);B)chara[11];strcpy(++a,st);C)chara[11];strcpy(a,st);D)chara[],*p;strcpy(p=&a[1],st+2);7).设有以下说明语句:Structstu{inta;floatb;}stutype;则下列叙述正确的有_______.A)struct是结构体类型的关键字B)structstu是用户定义的结构体类型C)stutype是用户定义的结构体类型名D)a和b都是结构体成员名8).设有定义语句:intx[6]={2,4,6,8,5,7},*p=x,i;要求依次输出x数组6个元素中的值,下列选项中能完成次操作的语句有_______.A)for(i=0;i6;i++)printf(“-”,*(p++));B)for(i=0;i6;i++)printf(“-”,*(p+i));C)for(i=0;i6;i++)printf(“-”,*p++);D)for(i=0;i6;i++)printf(“-”,(*p)++);9).下列叙述正确的有_____.A)函数可以嵌套定义,但不能嵌套调用B)函数可以嵌套调用,也可以嵌套定义C)函数不可以嵌套定义,但可以递归调用D)函数可以嵌套调用,但不能嵌套定义10).下列选项中可以将变量n清零的表达式有_______.A)n=n&~nB)n=n&0C)n=n^nD)n=n|n3、程序填空(每空2分,共10空,共20分)1)、请补充函数fun(),该函数的功能是:把从主函数中输入的字符串str2接在字符串str1的后面。例如:str1=“Howdo”,str2=“youdo?”,结果输出:Howdoyoudo?注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。试题程序:#includestdio.h#includeconio.h#defineN40voidfun(char*str1,char*str2){inti=0;char*p1=str1;char*p2=str2;while(【1】)i++;for(;【2】;i++)*(p1+i)=【3】;*(p1+i)='\0';}main(){charstr1[N],str2[N];clrscr();printf(*****Inputthestringstr1&str2*****\n);printf(\nstr1:);gets(str1);printf(\nstr2:);gets(str2);printf(**Thestringstr1&str2**\n);puts(str1);puts(str2);fun(str1,str2);printf(*****Thenewstring*****\n);puts(str1);}2)、请补充函数fun(),该函数的功能是求一维数组x[N]的平均值,并对所得结果进行四舍五入(保留两位小数)。例如:当x[10]={15.6,19.9,16.7,15.2,18.3,12.1,15.5,11.0,10.0,16.0},结果为:avg=15.030000。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。试题程序:#includestdio.h#includeconio.hdoublefun(doublex[10]){inti;longt;doubleavg=0.0;doublesum=0.0;for(i=0;i10;i++)【1】;avg=sum/10;avg=【2】;t=【3】;avg=(double)t/100;returnavg;}main(){doubleavg,x[10]={15.6,19.9,16.7,15.2,18.3,12.1,15.5,11.0,10.0,16.0};inti;clrscr();printf(\nTheoriginaldatais:\n);for(i=0;i10;i++)printf(%6.1f,x[i]);printf(\n\n);avg=fun(x);printf(average=%f\n\n,avg);}3)、请补充函数fun(),该函数的功能是:从‘a’到‘z’统计一个字符串中所有字母字符各自出现的次数,结果保存在数组alf中。注意:不区分大小写,不能使用字符串库函数。例如,输入:“A=abc+5*c”,结果为:a=2,b=1,c=2。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。试题程序:#includeconio.h#includestdio.h#defineN100voidfun(char*tt,intalf[]){inti;char*p=tt;for(i=0;i26;i++)【1】;while(*p){if(*p='A'&&*p='Z')【2】;if(*p='a'&&*p='z')alf[*p-'a']++;p++;}}main(){charstr[N];chara='a';intalf[26],k;clrscr();printf(\nPleaseenteracharstring:);scanf(%s,str);printf(\n**Theoriginalstring**\n);puts(str);fun(str,alf);printf(\n**Thenumberofletter**\n);for(k=0;k26;k++){if(k%5==0)printf(\n);printf(%c=%d,a+k,alf[k]);}printf(\n);}4)、从键盘上输入两个整数m和n,求其最大公约数。main(){inta,b,num1,num2,temp;scanf(%d,%d,&num1,&num2);if(【1】){temp=num1;num1=num2;num2=temp;}a=num1;b=num2;while(b!=0){temp=【2】;a=b;b=temp;}printf(%d,%d,a,num1*num2/a);}二、智力题(30分)1、单选题:(每小题4分,5小题,共20分)1)给你8颗小石头和一架托盘天平。有7颗石头的重量是一样,另外一颗比其它石头略重,除此之外,这些石头完全没有分别。你不得假设那颗石头到底比其它的石头重了多少。请问:最少要称量几次,你才能把那颗较重的石头找出来?A1次B2次C3次D4次

1 / 11
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功