版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
全国计算机等级考试二级C语言试题及答案一、选择题1.以下叙述中正确的是()A.C语言的源程序不必通过编译就可以直接运行B.C语言中的每条可执行语句最终都将被转换成二进制的机器指令C.C源程序经编译形成的二进制代码可以直接运行D.C语言中的函数不可以单独进行编译答案:B解析:C语言编写的源程序需要经过编译、链接才能生成可执行文件运行,A、C错误;C语言中的函数可以单独进行编译,D错误。程序中的每条可执行语句最终都将被转换成二进制的机器指令。2.以下选项中,合法的C语言常量是()A.'cd'B.0.234E1.5C.1.0/2D.'x17'答案:D解析:字符常量是用单引号括起来的一个字符,A选项错误;指数形式的实型常量中,字母E(或e)之前必须有数字,且E后面的指数必须为整数,B选项错误;C选项1.0/2是一个表达式,不是常量。D选项'x17'是用单引号括起来的字符,是合法的字符常量。3.以下选项中,能用作数据常量的是()A.0115B.0118C.1.5e1.5D.115L答案:D解析:八进制数中数字为0到7,A选项0115中出现了数字8,错误;八进制数中没有8,B选项错误;指数形式的实型常量中,字母E(或e)之前必须有数字,且E后面的指数必须为整数,C选项错误;115L表示长整型常量,是合法的。4.若有定义:inta=0,b=0,c=0,d=0;,以下关于C语言表达式:(a=b=1)==(c=d=1)的值的叙述正确的是()A.表达式值为0B.表达式值为1C.表达式值无确定值D.表达式值为2答案:A解析:先计算a=b=1,此时a、b的值都为1,表达式(a=b=1)的值为1;再计算c=d=1,此时c、d的值都为1,表达式(c=d=1)的值为1。最后比较两个表达式的值,1==1结果为真,值为1,但这里是用“==”连接两个赋值表达式,赋值表达式的结果是赋值后变量的值,而不是比较的结果,所以整个表达式(a=b=1)==(c=d=1)的值为0。5.有以下程序include<stdio.h>main(){inta=1,b=2,c=3,d=0;if(a==1&&b++==2)if(b!=2||c!=3)printf("%d,%d,%d\n",a,b,c);elseprintf("%d,%d,%d\n",a,b,c);elseprintf("%d,%d,%d\n",a,b,c);}程序运行后的输出结果是()A.1,2,3B.1,3,2C.1,3,3D.3,2,1答案:C解析:首先判断if(a==1&&b++==2),a==1为真,b++==2时,先判断b==2为真,然后b自增变为3,所以该条件成立。接着判断if(b!=2||c!=3),b!=2为真,所以整个条件成立,执行printf("%d,%d,%d\n",a,b,c);此时a=1,b=3,c=3。6.有以下程序include<stdio.h>main(){inta=1,b=2,c=3,d=0;if(a==1)if(b!=2)if(c==3)d=1;elsed=2;elseif(c!=3)d=3;elsed=4;elsed=5;printf("%d\n",d);}程序运行后的输出结果是()A.1B.2C.3D.4答案:A解析:首先判断if(a==1)成立,进入内层判断。再判断if(b!=2)成立,继续判断if(c==3)成立,所以d=1。7.有以下程序include<stdio.h>main(){inta=0,b=0,c=0,d=0;if(a=1)b=1;c=2;elsed=3;printf("%d,%d,%d,%d\n",a,b,c,d);}程序运行后的输出结果是()A.0,1,2,0B.0,0,0,3C.1,1,2,0D.编译有错答案:D解析:在if语句中,if(a=1)这里是赋值表达式,而不是判断表达式,会导致编译错误。8.有以下程序include<stdio.h>main(){inta=1,b=2,c=3,d=0;if(a==1&&b++==2)if(b!=2||c!=3)printf("%d,%d,%d\n",a,b,c);elseprintf("%d,%d,%d\n",a,b,c);elseprintf("%d,%d,%d\n",a,b,c);}程序运行后的输出结果是()A.1,2,3B.1,3,2C.1,3,3D.3,2,1答案:C解析:同第5题解析。9.有以下程序include<stdio.h>main(){inta=1,b=2,c=3,d=0;if(a==1)if(b==2)if(c==3)d=1;elsed=2;elseif(c!=3)d=3;elsed=4;elsed=5;printf("%d\n",d);}程序运行后的输出结果是()A.1B.2C.3D.4答案:A解析:同第6题解析。10.有以下程序include<stdio.h>main(){inta=1,b=2,c=3,d=0;if(a==1&&b++==2)if(b!=2||c!=3)printf("%d,%d,%d\n",a,b,c);elseprintf("%d,%d,%d\n",a,b,c);elseprintf("%d,%d,%d\n",a,b,c);}程序运行后的输出结果是()A.1,2,3B.1,3,2C.1,3,3D.3,2,1答案:C解析:同第5题解析。11.若有定义:intx=0,p=&x;,则语句printf("%d\n",p);的输出结果是()A.随机值B.0C.x的地址D.p的地址答案:B解析:p指向x的地址,p表示取p所指向地址的值,所以输出结果是0。12.有以下程序include<stdio.h>main(){inta=1,b=2,c=3,d=0;if(a==1&&b++==2)if(b!=2||c!=3)printf("%d,%d,%d\n",a,b,c);elseprintf("%d,%d,%d\n",a,b,c);elseprintf("%d,%d,%d\n",a,b,c);}程序运行后的输出结果是()A.1,2,3B.1,3,2C.1,3,3D.3,2,1答案:C解析:同第5题解析。13.有以下程序include<stdio.h>main(){inta=1,b=2,c=3,d=0;if(a==1)if(b==2)if(c==3)d=1;elsed=2;elseif(c!=3)d=3;elsed=4;elsed=5;printf("%d\n",d);}程序运行后的输出结果是()A.1B.2C.3D.4答案:A解析:同第6题解析。14.有以下程序include<stdio.h>main(){inta=1,b=2,c=3,d=0;if(a==1&&b++==2)if(b!=2||c!=3)printf("%d,%d,%d\n",a,b,c);elseprintf("%d,%d,%d\n",a,b,c);elseprintf("%d,%d,%d\n",a,b,c);}T程序运行后的输出结果是()A.1,2,3B.1,3,2C.1,3,3D.3,2,1答案:C解析:同第5题解析。15.有以下程序include<stdio.h>main(){inta=1,b=2,c=3,d=0;if(a==1)if(b==2)if(c==3)d=1;elsed=2;elseif(c!=3)d=3;elsed=4;elsed=5;printf("%d\n",d);}程序运行后的输出结果是()A.1B.2C.3D.4答案:A解析:同第6题解析。16.若有定义:inta=2,b=3,c=4;,则值为0的表达式是()A.'a'&&'b'B.a<=bC.a||b+c&&bcD.!(a<b)&&!c||1答案:A解析:'a'和'b'是字符常量,其ASCII码值不为0,逻辑与运算时都为真,'a'&&'b'结果为真,值不为0;a<=b,2<=3为真,值不为0;a||b+c&&bc,b+c=7,bc=1,b+c&&bc为真,a为真,所以整个表达式为真,值不为0;!(a<b)为假,!c为假,1为真,!(a<b)&&!c||1结果为真,值不为0。17.有以下程序include<stdio.h>main(){inta=1,b=2,c=3,d=0;if(a==1&&b++==2)if(b!=2||c!=3)printf("%d,%d,%d\n",a,b,c);elseprintf("%d,%d,%d\n",a,b,c);elseprintf("%d,%d,%d\n",a,b,c);}程序运行后的输出结果是()A.1,2,3B.1,3,2C.1,3,3D.3,2,1答案:C解析:同第5题解析。18.有以下程序include<stdio.h>main(){inta=1,b=2,c=3,d=0;if(a==1)if(b==2)if(c==3)d=1;elsed=2;elseif(c!=3)d=3;elsed=4;elsed=5;printf("%d\n",d);}程序运行后的输出结果是(M)A.1B.2C.3D.4答案:A解析:同第6题解析。19.有以下程序include<stdio.h>main(){inta=1,b=2,c=3,d=0;if(a==1&&b++==2)if(b!=2||c!=3)printf("%d,%d,%d\n",a,b,c);elseprintf("%d,%d,%d\n",a,b,c);elseprintf("%d,%d,%d\n",a,b,c);}程序运行后的输出结果是()A.1,2,3B.1,3,2C.1,3,3D.3,2,1答案:C解析:同第5题解析。20.有以下程序include<stdio.h>main(){inta=1,b=2,c=3,d=0;if(a==1)if(b==2)if(c==3)d=1;elsed=2;elseif(c!=3)d=3;elsed=4;elsed=5;printf("%d\n",d);}程序运行后的输出结果是()A.1B.2C.3D.4答案:A解析:同第6题解析。二、程序填空题1.请补充fun函数,该函数的功能是:把从主函数中输入的由数字字符组成的字符串转换成一个无符号长整数,并且逆序输出。例如,输入:1234,输出:4321。```cunsignedlongfun(chars){unsignedlongt=0;intk;while(s){k=s'0';t=t10+k;s++;}unsignedlongn=0;while(t){n=n10+t%10;t/=10;}returnn;}```2.请补充fun函数,该函数的功能是:计算并输出下列级数的前N项之和SN,直到SN+1大于q为止。```cdoublefun(doubleq,intn){doubles=1.0,t=1.0;inti;for(i=1;i<=n;i++){t=ti;s=s+1.0/t;if(s+1.0/(t(i+1))>q)break;}returns;}```3.请补充fun函数,该函数的功能是:删除字符数组中比指定字符小的字符,指定字符从键盘输入,结果仍保存在原数组中。```cvoidfun(chars[],charc){inti,j=0;for(i=0;s[i];i++){if(s[i]>=c){s[j]=s[i];j++;}}s[j]='\0';}```4.请补充fun函数,该函数的功能是:将字符串str中的小写字母都改为对应的大写字母,其他字符不变。```cvoidfun(charstr){while(str){if(str>='a'&&str<='z')str=str32;str++;}}```5.请补充fun函数,该函数的功能是:求一维数组x[N]的平均值,并对所得结果进行四舍五入(保留两位小数)。```cdoublefun(doublex[],intN){doublesum=0.0;inti;for(i=0;i<N;i++)sum+=x[i];doubleavg=sum/N;avg=(double)((int)(avg100+0.5))/100;returnavg;}```6.请补充fun函数,该函数的功能是:从字符串str中删除指定的字符c,str的内容由主函数给定。```cvoidfun(charstr,charc){inti,j=0;for(i=0;str[i];i++){if(str[i]!=c){str[j]=str[i];j++;}}str[j]='\0';}```7.请补充fun函数,该函数的功能是:将字符串str中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的先后顺序。```cvoidfun(charstr){chartemp[100];inti,j=0,k=0;for(i=0;str[i];i++){if(!isdigit(str[i]))temp[j++]=str[i];elsetemp[k++]=str[i];}for(i=0;i<j;i++)str[i]=temp[i];for(i=0;i<k;i++)str[i+j]=temp[i+j];str[i+j]='\0';}```8.请补充fun函数,该函数的功能是:计算并输出下列多项式的值:```cdoublefun(intn){doubles=0.0,t=1.0;inti;for(i=1;i<=n;i++){s=s+t;t=ti/(i+1);}returns;}```9.请补充fun函数,该函数的功能是:在字符串str中找出ASCII码值最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。```cvoidfun(charstr){inti,max=0;charch;for(i=1;str[i];i++){if(str[i]>str[max])max=i;}ch=str[max];while(max>0){str[max]=str[max1];max;}str[0]=ch;}```10.请补充fun函数,该函数的功能是:将数组a中的元素向右平移k个位置,k的值由主函数传入。平移的方法是将a中最后k个元素依次放在a数组的最前面,再将a中前Nk个元素依次后移。```cvoidfun(inta[],intn,intk){inti,j,b[100];for(i=0;i<k;i++)b[i]=a[nk+i];for(i=nk1;i>=0;i)a[i+k]=a[i];for(i=0;i<k;i++)a[i]=b[i];}```三、程序设计题1.编写一个函数fun,它的功能是:计算并输出给定整数n的所有因子(不包括1与自身)之和。例如,若n的值为12,则输出的值为2+3+4+6=15。```cinclude<stdio.h>intfun(intn){intsum=0;inti;for(i=2;i<n;i++){if(n%i==0)sum+=i;}returnsum;}```2.编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串“1234”,则函数返回值为1234。```cinclude<stdio.h>intfun(chars){intsign=1;intnum=0;if(s==''){sign=1;s++;}while(s){num=num10+(s'0');s++;}returnsignnum;}```3.编写一个函数fun,它的功能是:在字符串中找出第一个只出现一次的字符。例如,若输入字符串“abaccdeff”,则输出字符'b'。```cinclude<stdio.h>charfun(charstr){inti,j;for(i=0;str[i];i++){for(j=0;str[j];j++){if(i!=j&&str[i]==str[j])break;}if(!str[j])returnstr[i];}return'\0';}```4.编写一个函数fun,它的功能是:计算并输出下列级数的和:```cinclude<stdio.h>doublefun(intn){doublesum=0.0;inti;for(i=1;i<=n;i++){sum+=1.0/(i(i+1));}returnsum;}```5.编写一个函数fun,它的功能是:将一个3×3矩阵转置。```cinclude<stdio.h>voidfun(inta[3][3]){inti,j,t;for(i=0;i<3;i++){for(j=i+1;j<3;j++){t=a[i][j];a[i][j]=a[j][i];a[j][i]=t;}}}```6.编写一个函数fun,它的功能是:计算并输出正整数n的所有正因子的和。```cinclude<stdio.h>intfun(intn){intsum=0;inti;for(i=1;i<=n;i++){if(n%i==0)sum+=i;}returnsum;}```7.编写一个函数fun,它的功能是:计算并输出斐波那契数列的前n项。斐波那契数列的定义为:F(0)=0,F(1)=1,F(n)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基于大数据的医院运营成本智能管控方案
- 基于六西格玛的成本管控应用
- 基于作业成本法的成本核算
- 基于价值医疗的科室成本绩效优化路径
- 医美护理质量控制与持续改进
- 2026年春节期间城管工作安排
- 2026年年尾工作安排部署方案
- 2026年电子技术员年终报告
- 基于PDCA的持续成本改进机制
- 2025年功能性预制菜生产线
- 瑶山夜歌二声部合唱谱
- 2024届新高考语文高中古诗文必背72篇 【原文+注音+翻译】
- 感光高分子完整版本
- 《液压支架乳化油、浓缩油及其高含水液压液》
- MOOC 风景背后的地貌学-华中师范大学 中国大学慕课答案
- MOOC 大学物理 I-(力学、相对论、电磁学)-北京交通大学 中国大学慕课答案
- (2024年)大学四级仔细阅读课件
- VDA6完整版本.3-2023检查表
- 山东大学世界经济史(高德步教材)
- NB-T 47013.1-2015 承压设备无损检测 第1部分-通用要求
- 道路环卫保洁投标方案
评论
0/150
提交评论