上海计算机等级考试二级CB卷文档格式.docx
《上海计算机等级考试二级CB卷文档格式.docx》由会员分享,可在线阅读,更多相关《上海计算机等级考试二级CB卷文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
,&
n);
while(_____
(2)_____)
{
k=_____(3)_____;
n=n/10;
if(k%2==1)
z=z+k*i;
i=10*i;
}
fprintf(fp,"
%d\n"
z);
_____(4)_____;
/*关闭文献*/
return0;
}
从键盘输入一种字符串和一种字符,记录字符串中该字符浮现次数,并输出成果。
例如,输入字符串:
aBEddfghDdd,输入字符:
d,输出成果:
4。
intnum(charstr[])
charch;
inti=0,count=0;
printf("
输入字符:
"
%c"
ch);
while(_____
(1)_____)
if(_____
(2)_____)
count++;
i++;
returncount;
charstr[80];
intn;
输入字符串:
gets(_____(3)_____);
n=_____(4)_____;
输出成果:
n);
三、操作题
(一)程序调试题(3小题,第1、2小题各3处错,第3小题4处错,每错误点3分,共30分)
1.程序调试题1
调试规定:
下列程序(C:
\KS\B_2_1.c)包括3个错误,请按题中功能规定,调试并修改该程序(在所修改语句后加/*******/字样注释),使其运营能得到对的成果。
将程序成果(涉及B_2_1.c文献和B_2_1.EXE文献)保存到目录C:
\KS\中。
功能阐明:
输入某人某一种月月收入(在2500元到8000元之间),计算并输出该月份她应缴个人所得税。
个人所得税采用分段计算办法计算,详细为:
月收入不超过3500元(含3500元,如下同)免税;
月收入超过3500元但不超过5000元,超过某些税率为3%;
月收入超过5000元但不超过8000元,超过5000元某些税率为10%。
运营示例:
输入:
请输入月收入:
7000
输出:
个人所得税为:
245.00
阐明:
月收入7000元中3500元免税,1500元税利为3%,元税利为10%。
含错误源程序:
floatsalary,tax;
%d"
,&
salary);
if(salary<
=3500)tax=0
elseif(salary<
=5000)tax=(salary-3500)*0.03;
elsetax=1500*0.03+(salary-3500)*0.1;
%.2f\n"
,tax);
参照答案:
{
%f"
salary);
/*******/
=3500)tax=0;
/*******/
elsetax=1500*0.03+(salary-5000)*0.1;
2.程序调试题2
\KS\B_2_2.c)包括3个错误,请按题中功能规定,调试并修改该程序(在所修改语句后加/*******/字样注释),使其运营能得到对的成果。
将程序成果(涉及B_2_2.c文献和B_2_2.EXE文献)保存到目录C:
自定义一种表达分数构造体类型,在主函数中输入两个分数,通过调用函数计算两个分数和,最后在主函数中输出计算成果(不化简)。
#include<
structFrac
{intMol;
intDen;
};
structadd(structFraca,structFracb)
{structFracc;
c.Mol=a.Mol*b.Den+a.Den*b.Mol;
c.Den=a.Den+b.Den;
returnc;
{structFracn,m,t;
请输入第一种分数:
%d/%d"
n.Mol,&
n.Den);
请输入第二个分数:
m.Mol,&
m.Den);
t=structadd(n,m);
%d/%d+%d/%d=%d/%d\n"
n.Mol,n.Den,m.Mol,m.Den,t.Mol,t.Den);
structFrac
structFracadd(structFraca,structFracb)/*******/
c.Den=a.Den*b.Den;
t=add(n,m);
3.程序调试题3
\KS\B_2_3.c)包括4个错误,请按题中功能规定,调试并修改该程序(在所修改语句后加/*******/字样注释),使其运营能得到对的成果。
将程序成果(涉及B_2_3.c文献和B_2_3.EXE文献)保存到目录C:
输入两个由整型数构成集合(元素个数均为5)分别放到数组A和B中,求这两个集合交集(交集元素由两个集合中相似元素构成),最后输出交集中元素。
voidinter(ints1[],ints2[],ints3[]);
intmain(void)
inta[5],b[5],c[5];
inti,n;
printf("
请输入第一种集合内容,5个整型数\n"
for(i=0;
i<
5;
i++)
a[i]);
请输入第二个集合内容,5个整型数\n"
b[i]);
n=inter(a,b,c);
A,B交集元素为:
\n"
%4d"
,c[i]);
intinter(ints1[],ints2[],ints3[])
{intj,i=k=0;
for(j=0;
j<
j++)
if(s1[i]==s2[j])break;
if(j<
5)s3[k]=s1[i];
returnk;
intinter(ints1[],ints2[],ints3[]);
n;
i++)/*******/
{intj,i,k=0;
{
if(s1[i]==s2[j])break;
5)s3[k++]=s1[i];
(二)编程题(2小题,共35分,其中第1小题15分,第2小题20分)
1.编程题1
编程规定:
请按题中功能规定,编写程序并能得到对的成果。
将程序成果(涉及B_4_1.c文献和B_4_1.EXE文献)保存到目录C:
按示例格式完毕如下规定。
(1)输入10个整数(存入数组a),再输入整数x。
(2)输出数组a中不不大于等于x所有元素。
225566994433771108860
66997788
#defineN10
inta[N],i,x;
for(i=0;
N;
x);
if(a[i]>
=x)
%d"
a[i]);
2.编程题2
将程序成果(涉及B_4_2.c文献和B_4_2.EXE文献)保存到目录C:
按示例格式完毕如下规定(验证数学上考拉兹猜想:
任意一种不不大于1正整数,持续进行特定运算,经有限环节后,计算成果得到1)。
(1)输入整数n,如果n不大于2,输出"
Error"
并结束运营。
(2)如果整数n为偶数,计算n/2,否则计算3*n+1,生成新整数(仍存为n)。
(3)如果生成整数成果等于1,则结束运营,否则重复环节
(2)与(3)。
运营示例1:
12
[12]{1}6{2}3{3}10{4}5{5}16{6}8{7}4{8}2{9}1
输入12,第1次计算生成6,第2次计算生成3,……,第9次计算生成1。
示例中{1}、{2}至{9}为生成次数标记,[]、{}与间隔空格都必要保存。
运营示例2:
Error
输入为0、1或负数,输出"
。
inti,j;
if(n<
=0)
Error\n"
return-1;
[%ld]"
for(i=1;
1;
if(n%2==0)
n=n/2;
else
n=3*n+1;
{%d}%ld"
i,n);
if(n==1)
break;
二级C程序设计B场参照答案
一、单选题
1.D2.D3.B4.B5.B6.C7.D8.A9.D10.C
二、程序填空题参照答案
1.1):
【z=0】
2):
【n!
=0】【n】【n>
0】【n>
=1】
3):
【n%10】【k=n%10】【n-n/10*10】
4):
【fclose(fp)】
2.1):
【str[i]!
='
\0'
】【str[i]】【str[i]!
=0】【i<
strlen(str)】
【str[i]==ch】【ch==str[i]】
【str】
【num(str)】
三、改错题
四、编程题