上海计算机二级C语言考试真题Word文档下载推荐.docx
《上海计算机二级C语言考试真题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《上海计算机二级C语言考试真题Word文档下载推荐.docx(17页珍藏版)》请在冰豆网上搜索。
case1:
case2:
putchar('
X'
);
case3:
case4:
Y'
break;
default:
Z'
}
2填空
设有以下程序段,则执行完该程序段后,变量i的值是________
inti;
chars[]="
Hello!
"
*p=s;
for(i=0;
*(p+i)!
='
\0'
;
i++);
阅读以下程序并写出运行结果___________
#include<
stdio.h>
main()
{
intk,n=0;
for(k=1;
k<
=1000;
k++)
if(k%3==0&
&
k%5==0)
{
printf("
%d"
k);
n++;
if(n==3)break;
}
3程序填空
以下程序输入n和n个大于1的正整数,输出其中素数。
如输入:
51993113715
则输出:
191137
例示说明:
先输入n为5,再输入5个正整数,输出5个整数中的素数
voidmain()
intn,a,i,j,ct;
scanf("
n);
for(i=0;
____
(1)____;
i++)
{
______
(2)______;
scanf("
a);
for(j=2;
j<
a;
j++)
if(____(3)____)
ct++;
if(ct==0)
a);
}
printf("
\n"
);
以下程序从文件“student.txt”读取学生的学号、姓名、平时成绩和考试成绩,再从键盘上输入一个成绩,将所有考试成绩达到或超过该成绩的学生数据写到新的文本文件“studentD.txt”。
文件的最后一行为0表示学生数据结束。
设文件student.txt的内容为
101Zhao9558
103Qian7581
105Sun9991
107Li8067
运行时键盘输入:
80
则生成新文件studentD.txt的内容为:
student.txt中考试成绩在80分以上的Qian与Sun信息写到studentD.txt
源程序:
voidselect(FILE*fp1,FILE*fp2,intx)
intnum,score1,score2;
charname[20];
while
(1)
num=0;
fscanf(fp1,"
%d%s%d%d"
num,name,&
score1,&
score2);
if(num==0)
____
(1)____;
if(____
(2)____)
fprintf(fp2,"
%3d%-7s%3d%3d\n"
num,name,
score1,score2);
fprintf(fp2,"
0"
FILE*fp1,*fp2;
intx;
fp1=fopen("
student.txt"
"
r"
fp2=fopen("
studentD.txt"
____(3)____);
if(fp1==NULL||fp2==NULL)
{/*文件打开失败*/
printf("
FileOpenError!
return;
x);
select(____(4)____);
fclose(fp1);
fclose(fp2);
以下程序输入一个10进制整数,转换为16进制,计算16进制的各个位数,并从高位到低位依次输出。
687
2AF
10进制687等于16进制2AF,输出时2、A、F中间包含空格
inta[10],i,n;
n>
0;
a[i]=____
(1)____;
n/=16;
for(i--;
____
(2)____;
____(3)____)
%X"
a[i]);
三、程序调试题(本大题2小题,第1题4分,第2题6分,共10分)
1.程序调试题1(D_3_1.C)
调试要求:
下列程序不能得到正确的结果,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。
将结果(包括D_3_1.c文件和D_3_1.exe文件)保存到目录C:
\KS\中。
功能说明:
以下程序计算并输出等差数列的累加和,数列的首项为a0,公差为d,项数为n。
-354
sumx=18
-3为首项,5为公差,4为项数,前4项之和为18
原程序(见C:
\KS\D_3_1.C):
intsumx(inta0,d,n)
inti,k,s=0;
k=a0;
i<
n;
s+=k;
k+=d;
returns;
inta0,d,n;
%d%d%d"
a0,&
d,&
sumx=%d\n"
sumx(a0,d,n));
2.程序调试题2(D_3_2.C)
下列程序有3处错误,请按题中的功能要求,在不改变程序结构(不增加、删除语句,不调整语句顺序)的情况下调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。
将结果(包括D_3_2.c文件和D_3_2.exe文件)保存到目录C:
以下函数length返回字符串中字母A到字母Z所包含字符的长度。
主程序输入一行字符串,调用length函数输出该字符串中大写字母A到Z的子串长度。
Z2009-AShanghaiZ
Length=8
从A到Z的子串为Shanghai,其长度为8
\KS\D_3_2.C):
intlength(char*p)
char*q,*r;
for(q=p;
*q!
||*q!
A'
q++)
;
for(r=q;
*r!
&
r++)
returnr-q;
charstr[81];
intn;
gets(str[0]);
n=length(str);
Length=%d\n"
n);
五、编程题(本大题2小题,每题18分,共36分)
1.编程题1(D_5_1.C)
编程要求:
请按题中的功能要求,编写程序并能得到正确的结果。
将结果(包括D_5_1.C文件和D_5_1.exe文件)保存到目录C:
键盘输入5个整数,按由小到大的顺序排序后输出。
10020-531
-50102031
2.编程题2(D_5_2.C)
将结果(包括D_5_2.C文件和D_5_2.exe文件)保存到目录C:
键盘输入正整数n,计算并输出
的值,输出结果保留6位小数。
10
0.645635