“中国航信杯”C语言程序设计-答案解析版_第1页
“中国航信杯”C语言程序设计-答案解析版_第2页
“中国航信杯”C语言程序设计-答案解析版_第3页
“中国航信杯”C语言程序设计-答案解析版_第4页
已阅读5页,还剩114页未读 继续免费阅读

下载本文档

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

文档简介

(比赛科目:C语言程序设计)软件要求与硬件要求软件要求WinTC(版本:V1.9.1)DevC++(版本:4.9)VisualC++(版本:6.0)以上三个软件任选其ー硬件要求处理器:Intel®Pentium®IV或更高版本处理器。RAM:至少512MB内存。硬盘:750M磁盘空间(仅限于安装)。显示器:1024x768VGA,真彩色,需要支持Windows的显示适配器。运行环境推荐WindowsXP系统题型、题量、考试方式和时间预赛题题型为客观题(单选题、多选题)和主观题(基础操作题和综合操作题)。主客观题分值比例为1:2。题量总计87道,其中单选题60道,每道题1分;多选题20道,每道题2分;程序填充题5道,每道题6分;编程操作题2道,每道题10分。试卷满分150分。比赛方式采用全国统ー时间在线考试的形式,客观题系统自动阅卷,主观题由大赛组委会提供评分标准,各考点自行组织阅卷。比赛时间为3小时。复赛题题型为编程操作题。题量为2道操作题+1道附加题。试卷满分为150分,其中附加题为50分。比赛方式为上机操作,由大赛组委会安排专家组统ー阅卷。比赛时间为3小时。决赛题题型为复杂或者创造性比较高的编程操作题。题量为2道,其中一道考察参赛者解决复杂问题的能力,另一道考察参赛者创造性发挥能力,满分为120分。比赛方式为上机操作,由大赛组委会安排专家组统ー阅卷。比赛时间为5小时。比赛大纲基本要求.熟练掌握C语言基本语句、语法、数据类型、运算符和表达式。.熟练掌握顺序、选择、循环结构程序设计。.熟练掌握数组、函数、指针、文件、结构体类型变量、共用体类型变量等的使用。.能够使用C语言进行应用程序设计。预赛部分预赛主要考察C语言的基本语法规则、概念辨析、典型程序设计方法和对运算结果的分析判断。具体内容如下:(一)C语言的结构1)程序的构成,main函数和其他函数2)头文件、数据说明、函数的开始和结束标志3)源程序的书写格式C语言的风格(二)数据类型及其运算C的数据类型(基本类型、构造类型、指针类型、空类型)及其定义方法C运算符的种类、运算优先级和结合性3)不同类型数据间的转换与运算4)C表达式类型(赋值表达式、算术表达式、关系表达式、逻辑表达式、条件表达式、逗号表达式)和求值规则(三)基本语句1)表达式语句,空语句,复合语句2)数据的输入与输出,输入输出函数的调用3)复合语句4)goto语句和语句标号的使用(四)选择结构程序设计1)用if语句实现选择结构2)用switch语句实现多分支选择结构3)选择结构的嵌套(五)循环结构程序设计for循环结构While和dowhile循环结构continue语句和break语句4)循环的嵌套(六)数组的定义和引用一维数组和多维数组的定义、初始化和引用2)字符串与字符数组(七)函数1)库函数的正确调用2)函数的定义方法3)函数的类型和返回值4)形式参数与实在参数,参数值的传递5)函数的正确调用,嵌套调用,递归调用6)局部变量和全局变量7)变量的存储类别(自动,静态、寄存器、外部),变量的作用域和生存期8)内部函数与外部函数(ハ)编译预处理1)宏定义:不带参数的宏定义;带参数的宏定义“文件包含”处理(九)指针1)指针与指针变量的概念,指针与地址运算符2)变量、数组、字符串、函数、结构体的指针以及指向变量、数组、字符串、函数、结构体的指针变量。通过指针引用以上各类型数据3)用指针作函数参数4)返回指针值的指针函数5)指针数组,指向指针的指针,main函数的命令行参数(十)结构体(即“结构”)与共用体(即“联合”)1)结构体和共用体类型数据的定义方法和引用方法2)用指针和结构体构成链表,单向链表的建立、输出、删除与插入(十一)位运算1)位运算符的含义及使用2)简单的位运算(十二)文件操作1)文件类型指针(FILE类型指针)2)文件的打开与关闭(fopen,fclose)3)文件的读写(fputc,fgetc,fputs,fgets,fread,fwrite,fprintf,fscanf函数)4)文件的定位(rewind,fseek函数)复赛部分复赛为编程操作题,主要考察参赛者使用C语言进行综合程序设计及解决实际问题的能力。要求参赛者除了能够熟练掌握预赛所考察的タト,还应掌握下列内容:1)熟悉WinTC等软件的集成环境,能够在该环境下进行程序设计、纠错及调试。2)熟练掌握结构化程序设计的方法,具有良好的程序设计风格。3)熟悉ANSIC常用库函数的使用方法。4)掌握程序设计中常用的数据结构和算法。5)熟练掌握C语言程序设计的基本技能,并能利用C语言解决实际问题。决赛部分决赛为编程操作题,在全面考察C语言应掌握的基本语法和基本编程技能的基础上,重点考察参赛者对问题的抽象、分解、转化能力和对C语言的理解和综合运用能力,考察参赛者在软件建模方面的基本能力和问题陈述能力。附注参赛者在比赛准备期间,可以参考由人民邮电出版社出版的《C语言程序设计:现代方法(第2版)》,本次比赛的参赛,是以此书作为基础蓝本,同时对教材知识体系加以适当扩展进行考题设计的。第一届全国信息技术应用水平大赛模拟题……C语言程序设计注意:在指定的保存路径下创建以准考证号和姓名共同命名的文件夹,并将试题答案存放在以题号命名的子文件夹中。1、输入ー个五位整数,将它反向输出。例如输入12345,输出应为54321。(15分)#include"stdio.huvoidmain()(printf("请输入ー个五位整数:");intnum;scanf(n%dn,&num);if(num<10000)printf("%d不是ー个五位数",num);else(inttemp;intnumarr[5];temp=num;for(inti=0;i<5;i++)〃将用户输入的数字侄ij转存入数组{numarr[i1=temp%10;temp/=10;)printf("转换后的数字为:");for(i=0;i<5;i++)printf("%d",numarr[i]);//输出转换结果printf("\n");}}2、用两种循环结构分别编程计算1+2+3…+100的值。运行结果为“l+2+...+100=5050”(15分)#includeHstdio.hnvoidmain()(〃方法1,for循环intsum=0;for(inti=l;i<=100;i++)sum+=i;if(i!=100)printf("%d+",i);elseprintf("%d=%d\n",i,sum);)〃方法2,while循环sum=O;i=l;while(i<=100){sum+=i;if(i!=100)printf("%d+",i);elseprintf("%d=%d\n",i,sum);i++;3,从终端读入20个数据到数组中,统计其中正数的个数,并计算它们之和。(15分)#include"stdio.h"voidmain()!longsum=0;〃存放结果intarr[20];for(inti=0;i<20;i++)(printf("请输入%d第个数:",i+l);scanf("%d",&arrロ]);//将用户输入的数读入数组中sum+=ar巾]; 〃计算结果printf("这20个数的和是:%d\n",sum);〃输出结果4、利用指针实现将5个整数输入到数组a中,然后将a逆序复制到数组b中,并输出b中各单元的值。(20分)5、要将五张100元的大钞票,换成等值的50元,20元,10元,5元一张的小钞票,要求换成30张小钞票,每种面值的至少ー张,编程输出所有可能的换法,程序应适当考虑减少重复次数。(25分)〃500块钱,分成30张零钱#include<iostream>usingnamespacestd;intmain()|for(inta=l;avl0;a++)for(intb=l;b<25;b++)for(intc=l;cv28;c++)for(intd=l;d<28;d++)(if((a*50+b*20+c*10+d*5)==500&&(a+b+c+d==30))cout«"507U"<<a<ぐ张,20元 "张,10元"<<c<ぐ张,5元"<<d<ぐ张。"«endl;1return0;)6、求n以内(不包括n)同时能被3和7整除的所有自然数之和的平方根s,并作为函数值返回,最后结果s输出到文件out.dat中。例如若n为1000时,函数值应为:s=153.909064。(30分)#include"stdio.h"#include"stdlib.h"#include"math.h"voidmain()intn;doublesum=0;FILE*fp;printf("请输入n:");scanf("%d",&n);for(inti=l;ivn;i++)if(i%3==0&&i%7==0)sum+=i;sum=sqrt(sum);printf(n结果为:%f\nn,sum);fp=fopenC,out,,,nwbn);fwrite(&sum,sizeof(double),1,fp);fclose(fp);}第四届全国ITAT教育工程就业技能大赛预赛试题……C语言ー、单选题(共60小题,每题1分,共60分).执行下列程序中的输出语句后,x的值是.(3.10)main(){intx;printf("%d\n”,(x=5*6,x*2,x+20));}A)30B)60050D)80解析:题中问的是x的值,并非输出结果。答案:A.下列程序的输出结果是.(3.8)main(){intx=l,y=0,z;z=(x<=0)&&(y-->=0);printf("%d%d%d%\n”,z,x,y);}A)0-1-1B)0-1OC)01OD)01-1解析:x<=0为假,&&且运算,ー个为假结果为假,产生逻辑判断短路,不会再判断y-->=0答案:C.在C语言中,下列选项属于合法的长整型常数的是.(3.3)A)OLB)123456700.0234567D)3.14159e3解析:考察概念,长整型会在数值后加L或1答案:A.下列选项中属于不正确的赋值语句的是.(3.6)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的正确程序段是.(4.2)A)scanf("%d%d”,&a,&b);x=getchar();y=getchar();scanf("%d%d%c%c”,&a,&b,&x,&x,&y,&y);scanf(“%d%d%c%c%c%c",&a,&b,&x,&x,&y,&y);D)scanf(“%d%d%c%c“,&a,&b,&x,&y);.下列转义字符不正确的是.(3.5)A),WB)'VC)'\053'D)'\0'.下列选项可作为C语言赋值语句的是.(4.2)A)x=3,y=5B)a=b=6C)i--;D)y=int(x);.当c的值不为〇时,下列选项中能正确将c的值赋给变量a、b的是.C5.2)A)c=b=a;B)(a=c)II(b=c);C)(a=c)&&(b=c);D)a=c=b;.有以下程序:main(){unsignedinta;intb=-l;a=b;printf a);}该程序运行后的输出结果是.(4.5)A)-1B)65535C)32767D)-32768.若x、b、m、n均为int型变量,执行下面语句后b的值为.(3.10)m=20;n=6;x=(--m==n++)?--m:++n;b=m++;A)11B)6019D)18.有以下程序:main(){inta=ll1,b=222;printf("%d\n",a,b);}该程序运行后的输出结果是.(4.5)A)错误信息B)1110222D)111,222.以下程序的输出结果是.(4.5)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.对于浮点型变量f,能实现对f中的值在小数点后第三位进行四舍五入的表达式是.A)f=(f*100+0.5)/100.0B)f=(f*100+0.5)/100C)f=(int)(f*100+0.5)/100.0D)f=(17100+0.5)*100.设a=5.b=6,c=7,d=8,m=2,n=2.执行(m=a>b)&&(n=c>d)后m,n的值为.(5.2)A)2,2B)2,0C)0,2D)0,0.语句printf(“%d\n",strlen("asd\n\xl2\l\\"));的输出结果是.(7.3)A)9B)11C)7D)8.有以下程序:main()|inty=1234;printf("y=%6d”,y);printf("y=%+06d\n”,y);)该程序的运行结果是.(4.5)A)y=1234y=001234B)y=1234y=+01234C)y=l234y=+01234D)y=1234y=l234.语句:printf(“%d",!9);的输出结果是.(5.2)A)OB)1C)有语法错误,不能执行D)-9.已有定义语句: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=6C)x=4,y=5,z=5D)x=5,y=6,z=4191下列选项中属于正确的switch语句的是.(5.4)A)switch(1.0)B)swicth(1){case1.0:printf("A\n");{case1:printf("A\n");case2.0:printf("B\n");}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(“B'n”);}case"b":printf(“B\n”);}.若k为int型变量,以下语句段执行后的输出结果是.(5.3)k=-3;if(k<=0)printf("####")elseprintf(“****”);A)####B)****C)用##****D)有语法错误,不能执行.当a=2,b=3,c=4,d=5时,执行下面一段程序后x的值为.(5.3)if(a>b)if(c<d)x=l;elseifCa<c)if(b>d)x=2;elsex=3;elsex=4;elsex=5;A)2B)304D)5.下列程序的运行结果是.(6.3)main(){inty=10;do{y--;}while(--y);printf("%d\n",y--);)A)-1B)1C)8D)0.下列程序的运行结果是.(6.5)#include<stdio.h>main()(inti;for(i=l;i<=5;i++){if(i%2)printf(“*”);elsecontinue;printf("#");printf(u$\nv);)A)***#$B)#*#*#*$C)*#*#*#$D)***#$.若x是int型变量,且有下面的程序片段:(6.5)for(x=5;x<8;x++)printf((x%2)?("**%d”):(“##%d\n"),x);该程序片段的输出结果是.A)**5##6B)##5C)##5**6##7D)**5##6**7**7**6##7.有以下程序:main(){inta=l,b=0;switch(a){case1:switch(b){case0:printf("****");break;case1:printf("####");break; }case2:printf("$$$$");break; }该程序的输出结果是.(5.4)A)****B)****$$$$〇****####$$$$D)####$$$$.下列程序段的输出结果是.(6.4)intx=3;do{printf("%3d”,x-=2);}while(!( x));A)1B)3001-2D)死循环.有以下程序,其中x、y为整型变量;for(x=0,y=0;(x<=l)&&(y=1);x++,y );printf("x=%d,y=%d",x,y);该程序的输出结果是.(6.5)A)x=2,y=0B)x=l,y=0Ox=l,y=lD)x=0,y=0.有以下程序段:intn=0,p;do{scanf("%d”,&p);n++;}while(p!=12345&&n<3);此处do-while循环的结束条件是.(6.4)p的值不等于12345并且n的值大于3p的值等于12345并且n的值大于等于3p的值不等于!2345或者n的值小于3p的值等于12345或n的值大于等于3.在下述程序中,if(i>j)语句共执行的次数是.(6.5)main(){inti=O,j=10,k=2,s=0;for(;;){i+=k;if(i>j){printf("%d”,s);break;)s+=i;))A)4B)705D)630.以下程序的功能是:按顺序读入10名学生和4门课程的成绩,计算出每位学生的平均分进行输出,但运行结果不正确。main(){intn,k;floatscore,ave;ave=0.0;for(n=l;n<=10;n++){for(k=l;k<=4;k++){scanf("%f”,&score);ave+=score/4;}printf("NO%d:%f\n”,n,ave);}}造成程序计算结果错误的语句行是.(6.6)A)ave=0.0;B)for(n=l;n<=10;n++)C)ave+=score/4;D)printf(“NO%d:%f\n”,n,ave);31.若有以下定义:chars[10]={'a',"b','c',’〇',"\0",2,332',ヘ〇'}:执行语句printf("%d”,strlen(s));的结果是.(7.3)A)3B)408D)10.设有数组定义:chararray[]="abcdef";则数组array所占的空间为.(7.3)A)4个字节B)5个字节C)6个字节D)7个字节.有以下程序:main(){charstr[][10]={"China","Beijing"},*p=str;printf("%s\n",p+10);}该程序运行后的输出结果是.(10.4)A)ChinaB)BeijingC)ngD)ing.阅读下面程序,该程序段的功能是.(7.1)#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>=O&&t>c|j]){c[j+l]=c[j];j--;}cU+U=t;}for(i=0;i<7;i++)printf("%d",c[i]);putchar('\n');)A)对数组元素的升序排列B)对数组元素的降序排列〇对数组元素的倒序排列D)对数组元素的随机排列.下列程序的输出结果是.(7.2)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]U+l]+=n[i]UJ;printf("%d\n",n[i皿);)A)14B)OC)6D)值不确定36,下列函数调用语句中含有个参数。(8.3)func((fl,f2),(f2,f3,f4),f5)A)3B)405D)6.下列程序的运行结果是.(7.3)#include<string.h>main(){char*pl,*p2,ch[20]="ABCDEFabcdef”;pl二“1234”;p2="abed”;strepy(ch+1,p2+l);strepy(ch+3,pl+3);pintf(“%$\n”,ch);)A)Abc4EFabcdeB)Abc4EFC)AbedEFD)Abc4.下列程序的运行结果是.(8.6)#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)IOC)9D)8.有以下程序:fun(intn){if(n==111n==2)return2;returns=n-fun(n-2);}main(){printf("%d\n”,fun(7));}该程序运行后的输出结果是.(8.6)A)1B)203D)4.下列程序中函数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("\n");)该程序运行后的输出结果是.(8.4)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.下列程序的运行结果是.(8.3)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)042.下列程序的运行结果是.(7.3)main(){chararr⑵⑷;strcpy(arr,“you");strcpy(arr[1],“me”);printf("%s\n",arr);}A)youmeB)youC)meD)arr43.下列程序的输出结果是.(8.8)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)24025D)1544.程序中对fun函数有如下说明:void*fun();此说明的含义是.(10.6)A)fun函数无返回值B)fun函数的返回值可以是任意的数据类型〇fun函数的返回值是无值型的指针类型D)指针fun指向ー个函数,该函数无返回值45.设有下列定义:staticintx,*p=&x,*q;scanf("%d,%d”,p,q);若输入3,4,则x的值为.(8.8)A)3B)40OD)无法确定46.设有以下程序:intfun(char*s){intn=0;while(*s){n++;s++;}returnn;main(){chary[]=this_is_an_example.printf("%d\n”,fun(&y[6]));}该程序的输出结果是.(:10.4)A)12B)13014D)16.下列程序的功能是.(:10.4)intfun(char*a){char*b=a;while(*b)b++;{returnb-a;}}A)比较两个字符串的大小B)字符串的复制〇计算字符串的长度D)字符串的连接.下列程序的输出结果是.(10.2)main()(intk=3,m=5,n=7;int*pk=&k,*pm=&m,*p;*(p=&n)=*pk*(*pm);printf("%d\n",n);)A)5B)7015D)21.下列程序的执行结果是.(10.3)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.以下函数返回a所指的数组中最小值所在的下标值:fun(int*a,intn)p=j;for(i=j;i<n;i++)if(a[i]<a[p]);return(p);}在下划线处应填入.(10.2)A)i=pB)a[p]=a[i]C)p=jD)p=i.下列程序的运行结果是.(10.2)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)360编译出错D)00.有如下程序:#definef(x)x*xmain(){inti;i=f(4+4)/(2+2);printf("%d\n",i);}该程序执行后的输出结果是.(9.1)A)28B)21C)16D)4.下列程序的输出结果是.(11.4)structtt;{intnl;charn2;floatn3;unionuu{intul[2];charu2[2];}su;);main(){printf("%d\n",sizeof(structtt));}A)11B)1207D)9.下列程序的输出结果是.(11.6)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,302,OD)程序出错.下列程序的输出结果是.(11.6)structst{intx;int*y;}*p;intdt[4]={10,20,30,40};structstaa[4]={50,&dt[O],60,&dt[l],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.字符〇的ASCH码的十进制数为48,且数组的第〇个元素在低位,则以下程序的执行结果是.(11.8)#include<stdio.h>main(){union{inti[4];longk;charc[6];}a,*s=&a;s->i[0]=0x39;s->i[l]=Ox38;printf("%c\n",s->c[〇]);A)5B)306D)9.下列程序的运行结果是.(12.2)main(){unsignedcl=0xff,c2=0x00;cl=c2lcl»2;c2=c1A0236;printfぐ%x,%x\n",cl,c2);)A)0x3f,0XA1B)3f,AlC)ffff,61D)3f,al.若有运算符号,sizeof,ハ,&=,则它们按优先级由高至低的排列次序正确的是.(3.8)A)sizeof,&=,<<,AB)sizeof,<<,A,&=C)A,",sizeof,&=D)",A,&=,sizeof.有以下程序:#include<stdio.h>voidfun(char*fname,char*st){FILE*myf;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中的内容是.(13.4)A)hello,B)newworldhello,C)newworldD)hello,rid.有以下程序:#include<stdio.h>main(){FILE*fp;inti=20,j=30,k,n;fp=fopen(“dl.dat","w");fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j);fclose(fp);fp=fopen("dl.dat","r");fscanf(fp,"%d%d”,&k.&n);printf("%d%d\n”,k,n);fclose(fp);}该程序运行后的输出结果是.(13.4)A)2030B)205003050D)3020二、多选题(共20小题,每题2分,共40分)1.下列符号串中,不属于C语言合法标识符的有.(3.2)A)_1_2_3B)a-b-cC)intD)9cd.当把下列四个表达式用作if语句的控制表达式时,含义相同的选项有.(假设k>0)(5.3)A)k%2B)k%2==lC)(k%2)!=0D)!k%2==0.已有定义inta=-2;和输出语句printf(“%81x”,a):下列叙述不正确的有.(知今识点4.5)A)整型变量的输出形式只有%d一种B)%x是格式符的ー种,它可以适用于任何ー种类型的数据0%x是格式符的ー种,其变量的值按十六进制输出,但%81X是错误的D)%81x不是错误的格式符,其中数字81规定了输出字段的宽度4.下列选项中,没有构成死循环的程序段有.(6.7)A)inti=100;B)for(;;)while(1){i=i%100+1;if(i>=100)break;}C)intk=0;D)ints=36;do{++k;}while(k>=0);while(s); s;5.t为int类型,进入下面的循环之前,t的值为〇;while(t=l){ 〇)则下列叙述不正确的有.(6.3)A)循环控制表达式的值为0B)循环控制表达式的值为1〇循环控制表达式不合法D)循环有可能是个无限循环6.下列判断正确的是.(10.3)char*a="china”;等价于char*a;*a="china";charstr[61={"china"};等价于charstr[]={"china"};char*s="china";等价于char*s;s="china";charc[4]="abc",d[4]="abc等价于charc[4]=d[4]="abc”;7.若变量已正确定义,以下能正确计算1+2+3+4+5的程序段有.(:6.7)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);i=l;s=0;D)i=0;s=0;dodo{s=s+i;i++;{s=s+i;i++;while(i<6);while(i<=5);.下面程序把数组元素中的最小值放入a[0]中,则在if语句中条件表达式可以是.(10.2)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ぐ’%d”,*a);)A)p>aB)*p<a[0]C)*p<*a[0]D)*p<*a.设有如下定义:char*s[2]={“abed”,“ABCD”};则下列说法正确的有.(:10.3)s数组元素的值分别是“abed”和“ABCD”两个字符串的首地址s是指针数组名,它含有两个元素分别指向字符型ー维数组〇S数组的两个元素分别存放的是含有四个字符的ー维字符数组中的元素s数组的两个元素中分别存放了字符宣和A的地址.以下有关字符串赋值、赋初值的语句错误的有.(10.4)charsz⑵[40];sz[l]=“string1”;char*sz[2];sz[l]="string2”;charsz[][40]=“string3”;char*sz[]=“string4”;.若有以下说明:inta[5][9];则下列选项中对数组元素a[i皿的引用错误的有.(0<=i<4,0<=j<9)(10.3)A)*(&a[0][0]+9*i+j)B)*(a+i)(j)C)*(*(a+i)+j)D)*(a[i]+j).若有定义:char*st=ahowareyou!下面程序段正确的有.(:7.3)chara[ll],*p;strcpy(p=a+l,&st[4]);chara[ll];strcpy(++a,st);chara[ll];strcpy(a,st);chara[],*p;strcpy(p=&a[1],st+2);.设有以下说明语句:Structstu{inta;floatb;Jstutype;则下列叙述正确的有.(11.2)struct是结构体类型的关键字structstu是用户定义的结构体类型stutype是用户定义的结构体类型名a和b都是结构体成员名.若已建立如图所示的单向链表:则下列选项中能将s所指的结点插入到链表尾部,构成新的单项链表的语句组有.(11.7)s->link=a->link->link;a->link->link=s;a=a->link;a->link=s;s->link=NULL;s->link=NULL;a=(*a)olink; (*a)。!ink=s;a=a->link;s->link=a->link;a->link=s->link;.设有定义语句:intx[6]={2,4,6,8,5,7},*p=x,i;要求依次输出x数组6个元素中的值,下列选项中能完成次操作的语句有.(10.3)for(i=0;i<6;i++)printf(“%2d”,*(p++));for(i=0;i<6;i++)printf(“%2d”,*(p+i));for(i=0;i<6;i++)printf("%2d”,*p++);for(i=0;i<6;i++)printf("%2d”,(*p)++);.下列叙述正确的有.(8.5)A)函数可以嵌套定义,但不能嵌套调用B)函数可以嵌套调用,也可以嵌套定义〇函数不可以嵌套定义,但可以递归调用D)函数可以嵌套调用,但不能嵌套定义.下列叙述不正确的有.(8.8)A)全局变量可以为本文件中其他函数所调用,编译时分配在静态存储区B)局部变量只在本函数范围内有效,形式参数属于局部变量〇局部变量如没有被说明为静态的存储类别,则会被分配动态存储空间,存储在动态存储区中D)局部静态变量在函数调用结束后依然存在,但其他函数不能引用它.若变量已正确定义,要求程序段完成求5!的计算,下列选项中不能完成此操作的程序段有(6.7)for(i=l,p=l;i<=5;i++)p*=i;for(i=l;i<=5;i++){p=l;p*=i;}i=l;p=l;while(i<=5)p*=i;i++;i=l;p=l;do{p*=i;i++;}while(i<=5);.若有以下说明,则对strcpy库函数的调用不正确的有.(10.4)char*str1="copy”,str2[10],*str3="abcde",*str4,*str5="hijk"A)strcpy(str2,strl);B)strcpy(str3,strl);C)strcpy(str4,strl);D)strcpy(str5,strl);.下列选项中可以将变量n清零的表达式有.(12……2)A)n=n&-nB)n=n&0C)n=nAnD)n=nln第四届全国ITAT教育工程就业技能大赛复赛试题ー…C语言程序设计(A卷)请考生仔细阅读并严格遵守题目中关于文件保存和命名的要求。请务必按照试卷要求为文件命名。考生答题完毕后,首先创建以“准考证号”命名的文件夹(形式如:433034683),并将考试结果严格按题目上的命名要求进行命名并直接保存在该文件夹下。注意:考生不得在该文件夹下创建任何子文件夹,所有考试结果均直接保存在该文件夹根目录下。然后选中整个文件夹,用Winrar压缩工具打包后存放在本考场指定的考试结果存放地址,经监考老师确认上传无误后方可离开考场。注意:在提交答案时,请务必选中上述存放作品的文件夹(如前面创建的433034683文件夹,而不是文件夹下的全部文件)进行压缩,在完成答案提交后,请确保上述压缩包仍保存在本地计算机中。请务必按照试卷要求提交指定的文件,不得包含非题目要求的过程文件和临时文件,不得包含本试题文件和试题素材。注意:凡违反上述规定的考生,其成绩一律按零分处理。题目命名要求:请将编写好的源程序以题号命名,例如第1题的源程序保存为“LC")〇重要提示:(1)由于时间有限,请考生首先保证编写的程序在Turboc2.0英文版环境下可以编译通过并执行,在此基础上保证完成考题要求的全部功能,以免因编译不通过影响考生的考试成绩;(2)由于编程算法不同,提供的库函数不会包含考生需要的所有内容,但保证所提供函数一定能够完成本考题全部功能。1、编写ー个程序,让它有以下功能:从键盘上输入一个五位数,对此整数中的五个数值进行从大到小排序,形成一个新的五位数,输出这个整数。(15分)2、输入年、月、日,输出该日期是该年的第几天。(25

温馨提示

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

评论

0/150

提交评论