版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
全国计算机等级考试二级C语言历年试题及答案1.下列叙述中正确的是A)算法的时间复杂度是指算法执行过程中所需要的基本运算次数B)算法的时间复杂度是指算法执行的时间C)算法的时间复杂度是指算法所处理的数据量D)算法的时间复杂度是指算法程序中的指令条数答案:A解析:算法的时间复杂度是执行算法所需要的工作量,即算法执行过程中所需基本运算的次数,与执行时间、数据量、指令条数无直接等价关系。2.设栈的顺序存储空间为S(1:m),初始状态为top=0。现经过一系列正常的入栈与退栈操作后,top=m+1,则栈中的元素个数为A)0B)mC)不可能D)m+1答案:C解析:栈的存储空间最大容量为m,top最大取值为m,当top=m时栈已满,无法继续入栈,因此top不可能出现m+1的取值。3.结构化程序设计的三种基本控制结构不包括A)顺序结构B)跳转结构C)选择结构D)循环结构答案:B解析:结构化程序设计的三种基本控制结构为顺序、选择(分支)、循环,不包含跳转结构,goto语句属于非结构化跳转语句,应尽量避免使用。4.下列属于软件概要设计阶段任务的是A)设计软件的数据结构B)编写程序代码C)制定软件确认测试计划D)确定软件系统的模块结构答案:D解析:概要设计的核心任务是划分模块、确定模块间的接口和调用关系;设计数据结构、编写代码属于详细设计和实现阶段任务,制定确认测试计划属于需求分析阶段任务。5.有关系R和S如下:RABCa12b21c31ADEa12c31A)1B)2C)3D)4答案:B解析:自然连接以公共属性A为匹配依据,R和S中A属性匹配的元组为(a,1,2)和(c,3,1),因此连接后结果的元组个数为2。6.以下选项中,合法的C语言常量是A)1.2e0.5B)'C++'C)"\0"D)2.5e答案:C解析:A选项指数部分必须为整数;B选项单引号包裹的是字符常量,只能包含单个字符;D选项e后必须接整数,不能省略;C选项是字符串常量,内容为转义字符\0,合法。7.若有定义:inta=1,b=2,c=3;,以下表达式中值为0的是main(){intx=0,y=5,a=3,b=4;switch(x){case0:switch(y){case4:a++;break;case5:b++;break;}case1:a++;b++;break;case2:a++;b++;}printf("%d,%d\n",a,b);}程序运行后的输出结果是A)3,4B)4,5C)5,5D)4,6答案:D解析:x取值为0,匹配外层switch的case0分支,进入内层switch判断y=5,匹配case5分支,执行b++后b取值为5,遇到break跳出内层switch;由于外层case0分支未设置break,继续向下执行case1分支的a++、b++语句,a自增为4,b自增为6,遇到break跳出外层switch,最终输出4,6。9.有以下程序main(){inti,j;for(i=1;i<4;i++){for(j=i;j<4;j++)printf("%d*%d=%d",i,j,i*j);printf("\n");}}程序运行后的输出结果是A)1*1=11*2=21*3=32*1=22*2=43*1=3B)1*1=11*2=21*3=32*2=42*3=63*3=9C)1*1=11*2=22*2=41*3=32*3=63*3=9D)1*1=12*1=22*2=43*1=33*2=63*3=9答案:B解析:外层i从1到3循环,内层j从i到3循环,每次输出i*j的等式,每行内层循环结束后换行:i=1时j取1、2、3,输出3个等式;i=2时j取2、3,输出2个等式;i=3时j取3,输出1个等式,符合B选项格式。10.若有定义:intarr[10];,则以下对arr数组元素的正确引用是A)arr[10]B)arr[3.5]C)arr(5)D)arr[10-10]答案:D解析:数组下标范围为0~9,A选项下标越界;B选项下标必须为整数;C选项数组引用使用[]而非();D选项下标为0,合法。11.有以下程序main(){inta=10,*p;p=&a;printf("%d\n",(*p)++);}程序运行后的输出结果是A)10B)11C)0D)变量地址答案:A解析:*p取指针p指向的变量a的值为10,后置++先返回原值再自增,因此输出10,输出后a的值变为11。12.若有定义:chars[]="Hello",*p=s;,则以下表达式中不等于字符'e'的是A)*(p+1)B)p[1]C)*s+1D)s[1]答案:C解析:A选项p指向s首地址,p+1指向第二个字符'e',解引用得到'e';B选项数组下标访问等价于*(p+1),值为'e';C选项*s为第一个字符'H',ASCII码加1得到'I',不等于'e';D选项s[1]为第二个字符'e'。13.有以下程序intfun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printf("%d,",k);k=fun(j,m);printf("%d\n",k);}程序运行后的输出结果是A)5,5B)5,11C)11,11D)11,5答案:B解析:static修饰的变量仅初始化一次,第一次调用fun时,i=2+0+1=3,m=3+1+1=5,返回5;第二次调用fun时,i=3+5+1=9,m=9+1+1=11,返回11,输出结果为5,11。程序填空题2023年9月真题给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),作为函数值返回;并将大于平均值的数放在形参y所指数组中,在主函数中输出。例如,有10个正数:4630324061745154826,平均值为30.500000,主函数中输出:4632404548。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。给定源程序:doublefun(doublex[],double*y){inti,j;doubleav;/*found*/av=___1___;for(i=0;i<N;i++)av=av+___2___;av/=N;for(i=j=0;i<N;i++)/*found*/if(x[i]>av)y[___3___]=x[i];y[j]=-1;returnav;}main(){inti;doublex[N],y[N],av;for(i=0;i<N;i++){x[i]=rand()%50;printf("%4.0f",x[i]);}printf("\n");av=fun(x,y);printf("Theaverageis:%f\n",av);for(i=0;y[i]>=0;i++)printf("%4.0f",y[i]);printf("\n");}参考答案:1.0.0解析:平均值变量av初始值需要设为0,用于累加数组元素和,double类型填0.0符合类型要求。2.x[i]解析:遍历数组x的每个元素,累加到av中,因此此处填x[i]。3.j++解析:j作为y数组的下标计数器,每次找到大于平均值的元素后存入y[j],j自增指向下一个存储位置。2023年3月真题给定程序中,函数fun的功能是:统计形参s所指的字符串中数字字符出现的次数,并存放在形参t所指的变量中,最后在主函数中输出。例如,若形参s所指的字符串为"abcdef35adgh3kjsdf7",则输出结果为4。给定源程序:voidfun(char*s,int*t){inti,n;n=0;for(i=0;___1___!='\0';i++)/*found*/if(s[i]>='0'&&s[i]<='___2___')n++;/*found*/___3___;}main(){chars[80]="abcdef35adgh3kjsdf7";intt;fun(s,&t);printf("Theresultis:%d\n",t);}参考答案:1.s[i]解析:for循环遍历字符串s的每个字符,终止条件是遇到字符串结束符'\0',因此判断条件为s[i]!='\0'。2.9解析:数字字符的ASCII码范围是'0'到'9',因此此处填9。3.*t=n解析:形参t是指针变量,需要将统计结果n赋值给t指向的内存空间。程序修改题2023年9月真题给定程序MODI1.C中函数fun的功能是:求出两个非零正整数的最大公约数,并作为函数值返回。例如,若给num1和num2分别输入49和21,则输出的最大公约数为7;若给num1和num2分别输入27和81,则输出的最大公约数为27。请改正程序中的错误,使它能得出正确结果。给定源程序:intfun(inta,intb){intr,t;if(a<b){/*found*/t=a;b=a;a=t;}r=a%b;while(r!=0){a=b;b=r;r=a%b;}/*found*/return(a);}main(){intnum1,num2,a;printf("Inputnum1num2:");scanf("%d%d",&num1,&num2);printf("num1=%dnum2=%d\n\n",num1,num2);a=fun(num1,num2);printf("Themaximuncommondivisoris%d\n\n",a);}参考答案:1.错误行:t=a;b=a;a=t;改正为:t=a;a=b;b=t;解析:此处功能是交换a和b的值,保证a大于b,原交换逻辑错误,正确的交换逻辑是将a的值暂存到t,把b的值赋值给a,再把t中暂存的原a值赋值给b。2.错误行:return(a);改正为:return(b);解析:辗转相除法终止时,b中存储的是最大公约数,因此返回值应为b。2022年3月真题给定程序中函数fun的功能是:计算前n项的和,S=1-1/2+1/3-1/4+…+(-1)^(n+1)/n,返回计算结果。给定源程序:doublefun(intn){doubles=0.0,f=1.0;inti;/*found*/for(i=1;i<=n;i++);{s=s+f/i;/*found*/f=1/f;}returns;}main(){intn=5;printf("sum=%f\n",fun(n));}参考答案:1.错误行:for(i=1;i<=n;i++);改正为:for(i=1;i<=n;i++)解析:for语句末尾多余的分号会导致循环体为空,后续花括号内的代码仅执行一次,无法完成循环累加,删除分号即可。2.错误行:f=1/f;改正为:f=-1*f;(或f*=-1;)解析:每一项的符号交替变化,原代码逻辑错误,正确的符号切换逻辑是每次乘以-1,实现正负交替。程序设计题2023年9月真题编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。例如,当a=45,b=12时,调用该函数后,c=4152。给定源程序:voidfun(inta,intb,long*c){}main(){inta,b;longc;printf("Inputa,b:");scanf("%d%d",&a,&b);fun(a,b,&c);printf("Theresultis:%ld\n",c);}参考答案:voidfun(inta,intb,long*c){inta10=a/10;//提取a的十位inta1=a%10;//提取a的个位intb10=b/10;//提取b的十位intb1=b%10;//提取b的个位*c=a10*1000+b10*100+a1*10+b1;}解析:分别提取两个两位数的十位和个位,按照题目要求的位数权值相加,赋值给c指向的内存空间即可:a的十位对应千位,权值1000;b的十位对应百位,权值100;a的个位对应十位,权值10;b的个位对应个位,权值1。2023年3月真题编写函数fun,其功能是:求出1到1000之间能被7或11整除、但不能同时被7和11整除的所有整数,并将它们放在a所指的数组中,通过n返回这些数的个数。给定源程序:voidfun(int*a,int*n){}main(){intaa[1000],n,k;fun(aa,&n);for(k=0;k<n;k++)if((k+1)%10==0)printf("\n");elseprintf("%5d",aa[k]);}参考答案:voidfun(int*a,int*n){inti,count=0;for(i=1;i<=1000;i++){//满足能被7或11整除,且不被7和11的最小公倍数77整除a[count]=i;count++;}}*n=count;}解析:遍历1到1000的所有整数,符合条件的存入数组a,计数器count累加,最后将count赋值给n指向的内存空间返回符合条件的数的总个数。常考核心考点汇总1.公共基础部分:算法时间复杂度计算、栈和队列的进出规则、结构化程序设计原则、软件生命周期各阶段任务、E-R图的实体-属性-联系对应关系、关系代数运算(交、并、差、自然连接)、二叉树的三种遍历顺序、各类排序算法的时间复杂度对比。2.C语言基础:C语言程序的执行入口为main函数、常量合法性判断、标识符命名规则、基本数据类型的存储长度、运算符优先级(算术运算符>关系运算符>逻辑
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 玻璃钢制品检验员岗前核心能力考核试卷含答案
- 纯碱生产工复测知识考核试卷含答案
- 办公设备再制造工岗前工作质量考核试卷含答案
- 野生动物实验辅助工班组评比强化考核试卷含答案
- 2026年药店经营管理规范课件
- 2026年脑卒中患者康复护理课件
- 桥梁巡视养护工安全素养测试考核试卷含答案
- 电力机车钳工5S执行考核试卷含答案
- 绒线编织工技能掌握考核试卷含答案
- 客运计划员操作能力评优考核试卷含答案
- 2025年常德市石门县事业单位考试笔试试题及答案
- 2026医师定期考核口腔试题题库(附答案)
- 2026临沂兰山产业投资发展集团有限公司 权属子公司公开招聘(33人)笔试参考题库及答案详解
- 合作项目启动联络函(8篇)
- T-GDNAS 083-2026 主动脉内球囊反搏导管护理
- 2026年水利工程高级工程师答辩题库
- 社区异地务工人员关怀融入手册
- 脑寄生虫病诊疗技术规范
- 2025年华为车辆工程技术笔试及答案
- 医院保洁院感培训课件
- 交通行政执法培训课件
评论
0/150
提交评论