上海C二级考题3Word文件下载.docx
《上海C二级考题3Word文件下载.docx》由会员分享,可在线阅读,更多相关《上海C二级考题3Word文件下载.docx(15页珍藏版)》请在冰豆网上搜索。
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;
}
}
6、
一个C程序总是从_______函数开始执行的
7、
假定建立了如下图所示的链表结构,指针p、q分别指向相邻的2个结点,则将r所指结点插入p、q所指结点之间的C语句是___________;
和____________;
三、程序填空
以下程序输入n和n个大于1的正整数,输出其中素数。
如输入:
51993113715
则输出:
191137
例示说明:
先输入n为5,再输入5个正整数,输出5个整数中的素数
voidmain()
intn,a,i,j,ct;
scanf("
%d"
&
n);
for(i=0;
____
(1)____;
i++)
{
______
(2)______;
scanf("
a);
for(j=2;
j<
a;
j++)
if(____(3)____)
ct++;
if(ct==0)
a);
}
printf("
\n"
);
以下程序输入一个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)____)
printf("
%X"
a[i]);
以下程序从文件“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)
{/*文件打开失败*/
FileOpenError!
return;
x);
select(____(4)____);
fclose(fp1);
fclose(fp2);
四、程序调试题(本大题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!
&
Z'
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
第3套参考答案
单选题
1.A2.A3.C4.B5.A6.C7.C8.B9.C10.D
填空题
1.1)
【1】2)
【sizeof】
2.【x>
x<
】
3.【(int)(value*10+5)/10】【(int)(value+0.5)】
4.【6】
5.【153045】
6.【main】
7.【r->
next=q】【p->
next=r】
程序填空题
1.1)
【i<
n】
2)
【ct=0】
3)
【a%j==0】
2.1)
【n%16】
【i>
=0】
【i--】
3.1)
【break】
【score2>
=x】
【"
w"
4)
【fp1,fp2,x】
三、程序调试题
第1题(D_3_1.C)参考答案
intsumx(inta0,intd,intn)/*modified*/
{/*modified*/
}/*modified*/
第2题(D_3_2.C)参考答案
returnr-q-1;
/*modified*/
gets(str);
Length=%c\n"
五、编程题
第1题(D_5_1.C),参考程序
inta[5],i,j,t;
5;
a[i]);
5-1;
for(j=0;
5-1-i;
if(a[j]>
a[j+1])
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
第2题(D_5_2.C),参考程序
intn,i,k;
floats;
s=0;
k=1;
for(i=1;
=n;
s+=(float)k/i;
k*=-1;
%f\n"
s);