版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机二级c语言考试题库及答案一、选择题(每题1分,共40分)1.以下选项中,合法的C语言标识符是()。A.123abcB._intC.a-bD.char答案:B2.若有定义:`inta=5,b=2;`,则表达式`(float)(a+b)/2`的值是()。A.3B.3.0C.3.5D.4.0答案:C3.以下关于C语言数据类型的叙述中,错误的是()。A.字符型变量可以存放字符串B.利用`typedef`可以增加新的类型C.空类型字节长度为0D.定义数组时,数组长度可以是整型常量表达式答案:A4.若有定义:`inta[10];`,则对a数组元素的正确引用是()。A.a[10]B.a[3.5]C.a(5)D.a[10-10]答案:D5.若有定义:`chars[10]="hello";`,则`strlen(s)`和`sizeof(s)`的值分别是()。A.5,6B.5,10C.6,10D.6,6答案:B6.以下程序的输出结果是()。```c#include<stdio.h>intmain(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;}printf("a=%d,b=%d\n",a,b);return0;}```A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2答案:A7.以下关于函数的叙述中,正确的是()。A.函数必须返回一个值B.函数体内可以定义另一个函数C.函数调用可以作为一个独立的语句存在D.函数形参的类型必须与实参完全一致答案:C8.若有宏定义:`#defineM(x)x*x`,则执行`printf("%d",M(2+3));`后的输出是()。A.11B.25C.13D.10答案:A9.以下程序的输出结果是()。```c#include<stdio.h>intf(intn){staticinta=1;a+=n;returna;}intmain(){inti,s=0;for(i=1;i<=3;i++)s+=f(i);printf("%d",s);return0;}```A.12B.15C.18D.21答案:B10.若有定义:`inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};`,则`*(a[1]+2)`的值是()。A.5B.6C.7D.8答案:C11.以下关于指针的叙述中,错误的是()。A.指针变量可以指向任何类型的数据B.指针变量可以进行自增、自减运算C.指针变量存储的是内存地址D.两个指针变量在一定条件下可以相减答案:A12.若有定义:`charp="abcdef";`,则`(p+3)`的值是()。A.'c'B.'d'C.地址值D.不确定答案:B13.以下程序的输出结果是()。```c#include<stdio.h>structSTU{charname[10];intnum;};voidf(structSTUc){structSTUb={"LiSiGuo",2042};c=b;}intmain(){structSTUa={"YangSan",2041};f(a);printf("%d",a.num);return0;}```A.2041B.2042C.编译错误D.运行错误答案:A14.以下程序的输出结果是()。```c#include<stdio.h>intmain(){inta=5,b=4,c=3,d=2;if(a>b>c)printf("%d",d);elseif((c-1>=d)==1)printf("%d",d+1);elseprintf("%d",d+2);return0;}```A.2B.3C.4D.5答案:B15.以下程序的输出结果是()。```c#include<stdio.h>intmain(){inti,j,x=0;for(i=0;i<2;i++){x++;for(j=0;j<=3;j++){if(j%2)continue;x++;}x++;}printf("x=%d",x);return0;}```A.x=4B.x=8C.x=12D.x=16答案:C16.以下程序的输出结果是()。```c#include<stdio.h>#defineSUB(X,Y)(X)*Yintmain(){inta=3,b=4;printf("%d",SUB(a++,b++));return0;}```A.12B.15C.16D.20答案:A17.以下程序的输出结果是()。```c#include<stdio.h>intmain(){inta[5]={2,4,6,8,10},*p,**k;p=a;k=&p;printf("%d",*(p++));printf("%d",**k);return0;}```A.24B.22C.44D.46答案:A18.以下程序的输出结果是()。```c#include<stdio.h>intfun(intx){intp;if(x==0||x==1)return3;p=x-fun(x-2);returnp;}intmain(){printf("%d",fun(9));return0;}```A.7B.8C.9D.10答案:A19.以下程序的输出结果是()。```c#include<stdio.h>intmain(){chars[]="ABCD",*p;for(p=s;p<s+4;p++)printf("%s\n",p);return0;}```A.ABCDBCDCDDB.ABCDC.DCBAD.ABCDABCABA答案:A20.以下程序的输出结果是()。```c#include<stdio.h>intf(inta[],intn){if(n>1)returna[0]+f(&a[1],n-1);elsereturna[0];}intmain(){intaa[10]={1,2,3,4,5,6,7,8,9,10};printf("%d",f(aa,3));return0;}```A.6B.10C.15D.55答案:A21.以下关于文件操作的叙述中,正确的是()。A.对文件操作必须先关闭文件B.对文件操作必须先打开文件C.对文件操作顺序没有要求D.对文件操作前必须先测试文件是否存在答案:B22.以下程序的输出结果是()。```c#include<stdio.h>intmain(){inta=0,b=0,c=0,d=0;if(a=1)b=1;c=2;elsed=3;printf("%d,%d,%d,%d",a,b,c,d);return0;}```A.编译有错B.0,1,2,3C.1,1,2,0D.1,1,2,3答案:A23.以下程序的输出结果是()。```c#include<stdio.h>intmain(){inti,j,m=1;for(i=1;i<3;i++){for(j=3;j>0;j--){if(i*j>3)break;m*=i*j;}}printf("m=%d",m);return0;}```A.m=6B.m=2C.m=4D.m=5答案:A24.若有定义:`inta[2][3]={0};`,则以下叙述中正确的是()。A.数组a中每个元素均可得到初值0B.只有元素a[0][0]可得到初值0C.此语句是错误的D.数组a中各元素都可得到初值,但其值不一定为0答案:A25.以下程序的输出结果是()。```c#include<stdio.h>intmain(){intk=5,n=0;do{switch(k){case1:case3:n+=1;k--;break;default:n=0;k--;case2:case4:n+=2;k--;break;}printf("%d",n);}while(k>0&&n<5);return0;}```A.235B.0235C.02356D.2356答案:A26.以下程序的输出结果是()。```c#include<stdio.h>intmain(){inta[3][3]={{1,2,3},{4,5,6},{7,8,9}};intb[3]={0},i;for(i=0;i<3;i++)b[i]=a[i][2]+a[2][i];for(i=0;i<3;i++)printf("%d",b[i]);return0;}```A.101214B.101316C.121416D.121314答案:B27.以下程序的输出结果是()。```c#include<stdio.h>intmain(){charw[][10]={"ABCD","EFGH","IJKL","MNOP"},k;for(k=1;k<3;k++)printf("%s\n",w[k]);return0;}```A.ABCDFGHKLB.ABCDEFGIJMC.EFGJK0D.EFGHIJKL答案:D28.以下程序的输出结果是()。```c#include<stdio.h>intmain(){inta=1,b;for(b=1;b<=10;b++){if(a>=8)break;if(a%2==1){a+=5;continue;}a-=3;}printf("%d",b);return0;}```A.3B.4C.5D.6答案:B29.若有定义:`intx=10,y=3,z;`,则语句`printf("%d\n",z=(x%y,x/y));`的输出结果是()。A.1B.0C.4D.3答案:D30.若有定义:`inta=2,b=3,c=4;`,则下列选项中值为0的表达式是()。A.(!a==1)&&(!b==0)B.(a<b)&&!c||1C.a&&bD.a||(b+b)&&(c-a)答案:A31.以下程序的输出结果是()。```c#include<stdio.h>intmain(){inti,a[10];for(i=9;i>=0;i--)a[i]=10-i;printf("%d%d%d",a[2],a[5],a[8]);return0;}```A.258B.741C.852D.369答案:C32.以下程序的输出结果是()。```c#include<stdio.h>intmain(){inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=2;case1:case2:a+=3;default:a+=5;}}printf("%d",a);return0;}```A.31B.13C.10D.20答案:A33.以下程序的输出结果是()。```c#include<stdio.h>intmain(){inti,n[]={0,0,0,0,0};for(i=1;i<=4;i++){n[i]=n[i-1]*2+1;printf("%d",n[i]);}return0;}```A.13715B.0137C.1248D.0123答案:A34.以下程序的输出结果是()。```c#include<stdio.h>intfun(intx){staticintt=0;return(t+=x);}intmain(){ints,i;for(i=1;i<=5;i++)s=fun(i);printf("%d",s);return0;}```A.1B.10C.15D.55答案:C35.以下程序的输出结果是()。```c#include<stdio.h>intmain(){inta[3][3]={1,2,3,4,5,6,7,8,9};intb[3]={0},i;for(i=0;i<3;i++)b[i]=a[i][i]+a[i][2-i];printf("%d%d%d",b[0],b[1],b[2]);return0;}```A.21016B.41016C.456D.256答案:B36.以下程序的输出结果是()。```c#include<stdio.h>intmain(){chars[]="012xy\08s34f4w2";inti,n=0;for(i=0;s[i]!=0;i++)if(s[i]>='0'&&s[i]<='9')n++;printf("%d",n);return0;}```A.0B.3C.7D.8答案:B37.以下程序的输出结果是()。```c#include<stdio.h>intmain(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=p;p=q;q=r;printf("%d,%d,%d,%d",*p,*q,a,b);return0;}```A.8,7,7,8B.7,8,7,8C.8,7,8,7D.7,8,8,7答案:A38.以下程序的输出结果是()。```c#include<stdio.h>intmain(){inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf("%d",*(p+2));return0;}```A.1B.2C.3D.4答案:C39.以下程序的输出结果是()。```c#include<stdio.h>intmain(){inta=1,b=2,c=3,d=0;if(a==1&&b++==2)if(b!=2||c--!=3)printf("%d,%d,%d",a,b,c);elseprintf("%d,%d,%d",a,b,c);elseprintf("%d,%d,%d",a,b,c);return0;}```A.1,2,3B.1,3,2C.1,3,3D.3,2,1答案:C40.以下程序的输出结果是()。```c#include<stdio.h>intmain(){inti,j;for(i=1;i<4;i++){for(j=i;j<4;j++)printf("%d*%d=%d",i,j,i*j);printf("\n");}return0;}```A.1*1=11*2=21*3=32*2=42*3=63*3=9B.1*1=11*2=21*3=32*1=22*2=43*1=33*2=63*3=9C.1*1=11*2=22*2=41*3=32*3=63*3=9D.1*1=12*1=23*1=32*2=43*2=63*3=9答案:A二、程序填空题(每空2分,共30分)1.下列给定程序中,函数fun的功能是:将形参n中各位上为偶数的数取出,并按原来从高位到低位的顺序组成一个新数,作为函数值返回。例如,从主函数输入一个整数27638496,则函数返回值为26846。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。```c#include<stdio.h>unsignedlongfun(unsignedlongn){unsignedlongx=0,s,i;intt;s=n;i=1;while(____(1)____){t=s%10;if(t%2==0){x=____(2)____+t;i=i*10;}s=s/10;}return____(3)____;}intmain(){unsignedlongn=-1;while(n>99999999||n<0){printf("Pleaseinput(0<n<100000000):");scanf("%ld",&n);}printf("\nTheresultis:%ld\n",fun(n));return0;}```答案:(1)s>0或s!=0(2)t*i+x或x+t*i(3)x2.下列给定程序中,函数fun的功能是:把形参a所指数组中的奇数按原顺序依次存放到a[0]、a[1]、a[2]、……中,把偶数从数组中删除,奇数个数通过函数值返回。例如,若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7,删除偶数后a所指数组中的数据为:9、1、3、5、7,返回值为5。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。```c#include<stdio.h>#defineN9intfun(inta[],intn){inti,j;j=0;for(i=0;i<n;i++)if(a[i]%2==____(1)____){a[j]=a[i];____(2)____;}return____(3)____;}intmain(){intb[N]={9,1,4,2,3,6,5,8,7},i,n;printf("\nTheoriginaldata:\n");for(i=0;i<N;i++)printf("%4d",b[i]);printf("\n");n=fun(b,N);printf("\nThenumberofodd:%d\n",n);printf("\nTheoddnumber:\n");for(i=0;i<n;i++)printf("%4d",b[i]);printf("\n");return0;}```答案:(1)1(2)j++或++j或j=j+1(3)j3.下列给定程序中,函数fun的功能是:将s所指字符串中下标为偶数的字符删除,串中剩余字符形成的新串放在t所指数组中。例如,当s所指字符串为"ABCDEFGHIJK"时,t所指数组中的内容应是"BDFHJ"。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。```c#include<stdio.h>#include<string.h>voidfun(char*s,chart[]){inti,j=0;for(i=0;i<____(1)____;i++)if(i%2!=0)t[j++]=s[i];____(2)____;}intmain(){chars[100],t[100];printf("\nPleaseenterstringS:");scanf("%s",s);fun(s,t);printf("\nTheresultis:%s\n",t);return0;}```答案:(1)strlen(s)(2)t[j]='\0'或t[j]=0三、程序修改题(每处错误5分,共30分)1.下列给定程序中函数fun的功能是:将长整型数中各位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为87653142时,t中的数为7531。请改正程序中的错误,使它能得出正确的结果。```c#include<stdio.h>voidfun(longs,long*t){intd;longsl=1;*t=0;while(s>0){d=s%10;if(d%2!=0){*t=d*sl+*t;sl*=10;}s\=10;}}intmain(){longs,t;printf("\nPleaseenters:");scanf("%ld",&s);fun(s,&t);printf("Theresultis:%ld\n",t);return0;}```答案:错误1:`s\=10;`应改为`s/=10;`错误2:`*t=d*sl+*t;`应改为`*t=d*sl+*t;`(此句逻辑正确,但原题可能意在考察`*t=d*sl+*t;`与`*t=*t+d*sl;`等价,此处无语法错误,但常见错误是`sl`初始化或使用不当。根据题意,可能隐含错误在于`sl`的初始值应为1,且累加顺序。原程序逻辑正确,但若按常见错误点,可能是`sl`的初始化或`*t`累加顺序。但严格检查,此程序段无明显语法和逻辑错误。典型修改题错误点常为:`\=`应为`/=`,以及`if(d%2!=0)`的条件。此处仅`\=`是明确错误。)2.下列给定程序中函数fun的功能是:计算n的5次方的值(规定n的值大于2且小于8),通过形参指针传回主函数,并计算该值的个位、十位、百位上数字之和作为函数值返回。例如,7的5次方是16807,其低3位数字之和是15。请改正程序中的错误,使它能得出正确的结果。```c#include<stdio.h>#include<math.h>intfun(intn,int*value){intd,s,i;d=0;s=0;for(i=1;i<=5;i++)d=d*n;*value=d;for(i=1;i<=3;i++){s=s+d%10;d=d/10;}returns;}intmain(){intn,sum,v;do{printf("\nEntern(2<n<8):");scanf("%d",&n);}while(n<=2||n>=8);sum=fun(n,&v);printf("\n\nTheresult:\nvalue=%dsum=%d\n",v,sum);return0;}```答案:错误1:`d=0;`应改为`d=1;`错误2:`for(i=1;i<=5;i++)d=d*n;`应改为`for(i=1;i<=5;i++)d=d*n;`(但初始d应为1,否则结果总是0。所以主要错误是d初始化为0。)3.下列给定程序中函数fun的功能是:统计一个无符号整数中各位数字值为零的个数,通过形参传回主函数,并把该整数中各位上最大的数字值作为函数值返回。例如,若输入无符号整数30800,则数字值为零的个数为3,各位上数字值最大的是8。请改正程序中的错误,使它能得出正确的结果。```c#include<stdio.h>intfun(unsignedn,int*zero){intcount=0,max=0,t;do{t=n%10;if(t=0)count++;if(max<t)max=t;n=n/10;}while(n);*zero=count;returnmax;}intmain(){unsignedn;intzero,max;printf("\nInputn(unsigned):");scanf("%d",&n);max=fun(n,&zero);printf("\nTheresult:max=%dzero=%d\n",max,zero);return0;}```答案:错误1:`if(t=0)`应改为`if(t==0)`错误2:`while(n);`应改为`while(n);`(逻辑正确,但若n为0,则循环不执行,无法统计数字0。但题目要求统计无符号整数,若输入0,应返回1个0。但原程序do-while循环至少执行一次,当n=0时,t=0,count++,然后n=0/10=0,循环条件while(n)为假,退出,可以正确统计数字0。所以此处无逻辑错误。常见错误是赋值运算符`=`误用为相等运算符`==`。)四、程序设计题(每题20分,共4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国民经济-鹅的饲养行业(2025年)分析报告
- 一年级秋季开学习惯活动
- 国民经济·其他酒制造行业(2025年)分析报告
- 生活大课堂:小学主题班会课件
- 爱国主义教育主题班会课件传承红色基因强信念
- 续签合作协议告知函5篇
- 客户在线客服指南解决方案
- 维修工设备维护绩效考核表
- 终端销售业绩提升计划函(3篇)范文
- 第8章智能体的安全性与伦理问题
- 2026年新教材八年级上册历史全册必背知识点考点提纲
- 2026年湖北专升本汉语言文学专业(现代汉语中国古代文学)题库附答案
- 2026年四川省拟任县处级领导干部理论(任职资格考试)全真模拟试题及答案
- SD22推土机使用说明书完整版
- 2026潍坊第二人民医院招聘(3人)建设笔试备考试题及答案解析
- 湖北省荆州市松滋市2025-2026学年上学期八年级物理期末试题(含答案)
- 社区食堂规范运营制度范本
- 2026年深圳市离婚协议书规范范本
- GB/T 21873-2025橡胶密封件给、排水管及污水管道用接口密封圈材料规范
- 2024人教版七年级上册数学期中模拟试卷(第一章 有理数~第三章 代数式)(含答案)
- 限额设计控制细则限额
评论
0/150
提交评论