上海市C语言二级考试模拟题Word文档格式.docx
- 文档编号:16082627
- 上传时间:2022-11-18
- 格式:DOCX
- 页数:20
- 大小:36.19KB
上海市C语言二级考试模拟题Word文档格式.docx
《上海市C语言二级考试模拟题Word文档格式.docx》由会员分享,可在线阅读,更多相关《上海市C语言二级考试模拟题Word文档格式.docx(20页珍藏版)》请在冰豆网上搜索。
}
main()
printf("
5!
=%ld\n"
fac(5));
7,假定建立了以下链表结构,如图所示。
指针p及q指向2个不同的结点,t为及data同类型的数据变量,则交换2结点数据的语句为:
t=p->
data;
___________;
和___________;
1)以下程序按每行5个数的格式输出1至n范围内能被7或17整除的整数,并求出其和。
如输入:
50
则输出:
714172128
34354249
Sum=247
源程序:
voidmain()
inti,n,ct=0,sum=0;
scanf("
%d"
&
n);
for(i=1;
i<
=n;
i++)
if(____
(1)_____)
{
printf("
%d\t"
i);
_____
(2)_______;
ct++;
if(___(3)______)
printf("
\n"
);
}
\nSum=%d\n"
sum);
}__
2)
以下程序输入10个整数到a数组,找到并输出其中最大的整数及其下标。
80290150520330-160-9902009
a[3]=520
#defineN10
intget_max_index(inta[],intn)
inti,k=0;
n;
if(____
(1)____)
k=i;
return______
(2)_____;
inti,k,a[N];
for(i=0;
N;
scanf("
a[i]);
k=_______(3)______;
a[%d]=%d\n"
k,a[k]);
}______
3)
以下程序从文件“student.txt”读取学生的学号、姓名、平时成绩和考试成绩,从键盘上输入平时成绩在总成绩中所占比重,计算每个学生的总成绩(四舍五入为整数)后输出到屏幕上。
文件的最后一行为0表示学生数据结束。
设文件student.txt的内容为
101Zhao9558
103Qian7581
105Sun9991
107Li8067
运行时键盘输入:
0.1
则屏幕输出:
101Zhao955862
103Qian758180
105Sun999192
107Li806768
voidcalc(FILE*fp,floatx)
intnum,score1,score2;
floatscore3;
charname[20];
while(!
feof(fp))
{/*文件还有未读数据时*/
num=0;
fscanf(fp,"
%d%s%d%d"
num,name,&
score1,&
score2);
if(num>
0)
{/*学生数据有效时*/
score3=score1*x+score2*(1-x);
/*计算总成绩*/
%3d%-7s%3d%3d%3d\n"
num,name,score1,
score2,______
(1)______);
/*总成绩四舍五入为整数*/
}
FILE*fp;
floatx;
fp=fopen("
student.txt"
"
r"
if(____
(2)____)/*如果文件打开失败*/
{
printf("
Error!
return;
%f"
x);
calc(____(3)____);
/*调用calc函数*/
fclose(____(4)____);
/*关闭文件*/
四、程序调试题(本大题2小题,第1题4分,第2题6分,共10分)
1.程序调试题1(B_3_1.C)
调试要求:
下列程序不能得到正确的结果,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。
将结果(包括B_3_1.c文件和B_3_1.exe文件)保存到目录C:
\KS\中。
功能说明:
程序计算并输出1!
+2!
+……+n!
(1至n阶乘的累加和),其中函数fact(n)计算n!
的值,返回类型为double。
10
1!
+2!
+…+10!
=4037913
原程序(见C:
\KS\B_3_1.C):
doublefact(intn)
inti;
doubleresult=1;
result=result*i;
returnresult;
inti,n;
doublesum=0;
for(i=1;
sum+=fact(inti);
+...+%d!
=%.0lf\n"
n,sum);
2.程序调试题2(B_3_2.C)
下列程序有3处错误,请按题中的功能要求,在不改变程序结构(不增加、删除语句,不调整语句顺序)的情况下调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。
将结果(包括B_3_2.c文件和B_3_2.exe文件)保存到目录C:
程序输入任意一行字符串(设字符数不大于20),提取该字符串中的数字字符并组成一个整数,输出该整数及其两倍的值。
abc12e3fgh4i
12342468
\KS\B_3_2.C):
inti,n=0;
charstr[80];
gets(str[80]);
str[i]!
='
\0'
;
if(str[i]>
=0&
&
str[i]<
=9)
n=n*10+str[i];
printf("
%d%d\n"
n,2*n);
五、编程题(本大题2小题,每题18分,共36分)
1.编程题1(B_5_1.C)
编程要求:
请按题中的功能要求,编写程序并能得到正确的结果。
将结果(包括B_5_1.C文件和B_5_1.exe文件)保存到目录C:
输入5个整数,输出其中正整数的累加和及正整数的平均值,输入输出格式如以下示例。
10020-531
Sum=61,Average=20.3
2.编程题2(B_5_2.C)
将结果(包括B_5_2.C文件和B_5_2.exe文件)保存到目录C:
输入正整数m和n(设100≤m≤n≤999),输出m到n之间满足下列条件的三位数:
它的个位数的立方加十位数的平方再加上百位数等于该数的本身(例如135=1+3*3+5*5*5)。
135555
135175518
二
1,表达式strlen(“C2009”)的值是________
2,设inta=3,b=4,c=5;
则a*a+b*b==c*c的结果为_____________
3,设a=2,b=3,x=3.5,y=2.5,表达式(float)(a+b)/2+(int)x%2/4的值为____________
4,设a,b,c为整型变量,写出表达式:
当a比b、c都大时结果为真__________
5,
及下列语句等价的条件表达式语句是_______
switch(x!
=0)
case0:
y=1;
break;
case1:
y=-1;
6,
设有下述描述学生信息的结构定义及变量说明,则使学生变量s的出生年份为1990的赋值语句是___________
structdate
{intyear;
/*年*/
intmonth;
/*月*/
intday;
/*日*/
};
structstudent
{intno;
/*学号*/
char*name;
/*姓名*/
charsex;
/*性别*/
structdatebirth;
/*出生年月日*/
}s,
7,假定建立了下图所示的链表结构,指针p、q分别指向如图所示的结点,则将q所指结点从链表中删除的C语句是__________
1),下面程序实现的功能是打印n以内的水仙花数,水仙花数是指其本身的值等于每一位数字的立方和,例如:
153是一个水仙花数,153=1*1*1+5*5*5+3*3*3.
400
1153370371
intn,digit,k,m,s;
for(k=1;
____
(1)____;
k++)
s=0;
m=k;
while(m!
=0)
digit=____
(2)____;
s=s+digit*digit*digit;
m
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 上海市 语言 二级 考试 模拟