- 相关推荐
c语言二级考试真题
欢迎参加 C 语言二级考试!本次考试真题将全面检验你的 C 语言编程能力。题目涵盖多种题型,从基础语法到复杂算法,挑战与机遇并存。认真审题,冷静作答,发挥出你的最佳水平。相信通过这次考试,你能更好地认识自己的实力,为未来的学习和职业发展打下坚实基

一、单选题 ( 本大题 10 道小题 ,每小题 1.5 分,共15 分),从下面题目给出的A、B、C、D四个可供选择的答案中选择一个正确答案。
1.下面标识符中,可以作为合法变量名的是( )。
A.m@q
B.Mo_day
C.mn/5
D.char
2.设有如下语句:
int s,num;
s=1005;num=2;
则表达式(float)s/num的值是()。
A.502.000000
B.502
C.502.500000
D.503.000000
3.设有如下定义语句:
chara[10]="ABC";
则printf("%s" , a+1);的输出结果为( )。
A.ABC
B.C
C.AB
D.BC
4.下列语句的输出结果是( )。
inta=0123,b=0456;
printf("%o ",b-a);
A.0456
B.0123
C.333
D.579
5.以下的for语句循环执行的次数是()。
for(x=0,y=0;(y!=20&&(x<20));x++);
A.无限次
B.不确定
C.20次
D.19次
6.关于局部变量,下列说法正确的是( )。
A.定义该变量的程序文件中的函数都可以访问
B.定义处以下的任何语句都可以访问
C.形式参数也是一种局部变量,可用于函数之间传递数据
D.定义在复合语句中的局部变量,允许在该复合语句外访问
7.有如下语句:
chars[20]="welcome";
char*ps=s;
则不能引用字母c的表达式是( )。
A.ps+3
B.s[3]
C.ps[3]
D.ps+=3,*ps
8.设有如下语句:
int x,*p=&x;
则*&x相当于( )。
A.x
B.p
C.&x
D.&*p
9.若在fopen函数中使用文件的方式是"ab",该方式的含义是( )。
A.为读/写打开一个文件
B.向二进制文件尾增加数据
C.为输出打开一个文本文件
D.为读/写建立一个新的二进制文件
10.建立了如下图所示的链表结构,p,q为指向结点的指针。p指向当前数据为M的结点,以下( )语句段能够输出p所指结点的直接后继结点的数据项。
A.printf("%c",p->next);
B.printf("%c",p->data);
C.q=p->next; printf("%c",q);
D.p = p->next;
printf("%c",p->data);
二、程序填空题 ( 本大题 2 道小题 ,每空 2.5 分,共20 分)。
1.程序功能:从键盘输入一个整数,查找是否在数组中有相同的数值,如果有,则输出该值在数组中的位置,如果没有,则输出“not find”,结果请输出到文件out2.txt中。
#include
int main(void)
{
inta[10]={12,-5,0,45,100,-89,33,260,-1,92},i,x;
FILE *fp;
fp=fopen("out2.txt",_____(1)_____);
printf("input x:");
scanf("%d",_____(2)_____);
for(i=0;i<10;i++)
if(x==a[i])
_____(3)_____;
if(i<10)
fprintf(fp,"the pos of x is:%d ",i);
else
fprintf(fp,"no find ");
_____(4)_____; /* 关闭文件 */
return 0;
}
2.程序功能:输入一个包含数字的字符串,把字符串中的数字字符转换成数字,存放到数组中并输出。例如:输入aBcD123e45XYZ682,输出结果为:12345682。
#include
int fun(char s[],int arr[],int num)
{
inti,n=0;
for(i=0;i { if(_____(1)_____ ) { arr[n] = _____(2)_____; n++; } } return n; } int main(void) { charstr[80]; int arr[80]; intnum=0,n,i; printf("Enter a string:
"); gets(_____(3)_____ ); while(str[num]!= ) num++; n = fun(_____(4)_____ ); for(i=0;i printf("%d",arr[i]); return 0; } 三、操作题 (一)程序调试题(3小题,第1、2小题各3处错,第3小题4处错,每错误点3分,共30分) 1. 程序调试题1 调试要求:下列程序(C:KSC_2_1.c)包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。将程序结果(包括C_2_1.c文件和C_2_1.EXE文件)保存到目录C:KS中。 功能说明:输入某用户某一个月的用电度数,计算并输出该月份他应缴的电费。电费实施阶梯电价分段计算方法,具体为:月用电量不超过100度(含100度,以下同),单价为0.6元/度;月用电量超过100度但不超过200度的,超过部分的单价为0.7元/度;月用电量在200度以上的部分,单价为0.9元/度。 运行示例: 输入:请输入月用电量: 280 输出:电费为: 202.00 说明:月用电量280度中100度单价为0.6元,100度单价为0.7元,80度单价为0.9元。 含错误源程序: #include int main(void) { float quantity;money; printf("请输入月用电量: "); scanf("%f", &quantity); if (quantity<=100) mquantity*0.6; else if (quantity<=200) m100*0.6+(quantity-100) 0.7; else money=100*0.6+ (quantity-200)*0.9; printf("电费为: %.2f
", money); return 0; } 2. 程序调试题2 调试要求:下列程序(C:KSC_2_2.c)包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。将程序结果(包括C_2_2.c文件和C_2_2.EXE文件)保存到目录C:KS中。 功能说明:自定义一个表示平面中点的结构体类型,在主函数中输入两个点的坐标,通过调用函数计算两个点的中点坐标,最后在主函数中输出计算的结果。 运行示例: 含错误源程序: #include struct { float x; float y; }; struct point mid( struct point a,struct point b) { struct point c; c.x=(a.x+b.x)/2; c.y=(a.y+b.y)/2; return c; } int main(void) { struct point p1,p2,p0(0,0); printf("请输入第一个点坐标:"); scanf("%f,%f",&p1.x,&p1.y); printf("请输入第二个点坐标:"); scanf("%f,%f",&p2.x,&p2.y); p0=mid(p1,p2); printf("中点坐标为:(%6.1f,%6.1f)
", p0); return 0; } 3. 程序调试题3 调试要求:下列程序(C:KSC_2_3.c)包含4个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。将程序结果(包括C_2_3.c文件和C_2_3.EXE文件)保存到目录C:KS中。 功能说明:输入两个由整型数构成的集合(元素个数均为5)分别放到数组A和B中,求这两个集合的并集(并集的元素由两个集合中的所有元素构成,但重复的元素只取一个),最后输出并集中的元素。 运行示例: 含错误源程序: #include int join(int s1[],int s2[],ints3[]) int main(void) { int a[5],b[5],c[10]; int i,n; printf ("请输入第一个集合内容,5个整型数
"); for(i=0;i<5;i++) scanf("%d",&a[i]); printf ("请输入第二个集合内容,5个整型数
"); for(i=0;i<5;i++) scanf("%d",&b[i]); n=join(a,b,c); printf ("A,B并集元素为:
"); for(i=0;i<=n;i++) printf("%4d", &c[i]); printf("
"); return 0; } int join(int s1[],int s2[],ints3[]) { int i ,j ,k=5; for(i=0;i<5;i++) { s3[i]=s1[i]; for(j=0;j<5;j++) if (s2[i]==s1[j]) return ; if(j>=5) s3[k++]=s2[i] ; } return k; } (二)编程题(2小题,共35分,其中第1小题15分,第2小题20分) 1.编程题1 编程要求:请按题中的功能要求,编写程序并能得到正确的结果。将程序结果(包括C_4_1.c文件和C_4_1.EXE文件)保存到目录C:KS中。 程序功能:按示例格式完成以下要求。 (1) 输入10个整数(存入数组a),再输入整数x。 (2) 数组元素向左偏移x个位置后循环输出。 运行示例: 输入:22 55 66 99 44 33 77 11 0 88 3 输出:99 44 33 77 11 0 88 22 55 66 说明:输入x=3,先输出a[3]至a[9],再输出a[0]至a[2] 2.编程题2 编程要求:请按题中的功能要求,编写程序并能得到正确的结果。将程序结果(包括C_4_2.c文件和C_4_2.EXE文件)保存到目录C:KS中。 程序功能:按示例格式完成以下要求(验证西西弗斯串数学黑洞:任意一个数字串,连续进行特定运算,经有限步骤后,都无法逃逸123这个黑洞)。 (1) 输入整数n,如果n为零、负数或超过9位数,输出"Error"并结束运行。 (2) 拆分整数n的各个位数,统计各位数中的偶数位数、奇数位数和总位数,按"偶数位数-奇数位数-总位数"顺序组成一个新的整数(仍存为n),输出生成的新数。 (3) 如果生成的新数等于123,则结束运行,否则重复步骤(2)与(3)。 运行示例1: 输入:1507 输出:[1507] {1}134 {2}123 说明:原始数字为1507,第1次生成的数为134,第2次生成的数为123。示例中{1}与{2}为生成的次数标记,[]、{}与间隔空格都必须保留。 运行示例2: 输入:0 输出:Error 说明:输入为0、负数或超过9位数,输出"Error"。 【c语言二级考试真题】相关文章: 最新计算机二级考试C语言预习自测题09-21 历年全国计算机等级考试二级C语言笔试填空完整版真题07-17 计算机二级C语言考试选择题(带答案)07-13 9月计算机二级C语言考试自测题08-17 C语言编程题06-15 3月计算机二级C语言真题及答案(完整版)08-26 计算机二级C语言考试技巧09-17 职称英语理工类c级考试真题06-12 职称英语卫生类c级考试真题及答案10-20 9月计算机二级考试C语言预习自测题07-23