上海计算机等级考试二级C(B卷)_上海市计算机等级考试

2020-02-28 其他范文 下载本文

上海计算机等级考试二级C(B卷)由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“上海市计算机等级考试”。

2015二级C(B卷)

一、单项选择题(答案在最后)

二、填空题(答案在最后)

程序功能:输入一个正整数,将其各位上为偶数的数字去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并将其输出到文件out1.txt中。例如,输入:134456779,输出到文件:135779。代码:

#include int main(void){ long n;int k,i=1;int _____(1)_____;FILE *fp;fp=fopen(“out1.txt”,“w”);scanf(“%ld”,&n);while(_____(2)_____){ k = _____(3)_____;n = n/10;if(k%2 == 1){ z = z+k*i;i = 10*i;} } fprintf(fp,“%dn”,z);_____(4)_____;/* 关闭文件 */ return 0;}

程序功能:从键盘输入一个字符串和一个字符,统计字符串中该字符出现的次数,并输出结果。例如,输入字符串:aBEddfghDdd,输入字符:d,输出结果:4。代码:

#include int num(char str[]){ char ch;int i=0,count=0;printf(“输入字符:”);scanf(“%c”,&ch);while(_____(1)_____){ if(_____(2)_____)count++;i++;} return count;} int main(void){ char str[80];int n;printf(“输入字符串:”);gets(_____(3)_____);n = _____(4)_____;printf(“输出结果: %dn”,n);return 0;}

三、操作题

(一)程序调试题(3小题,第1、2小题各3处错,第3小题4处错,每错误点3分,共30分)1.程序调试题1

调试要求:下列程序(C:KSB_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%,2000元的税利为10%。含错误源程序:

#include int main(void){ float salary,tax;printf(“请输入月收入: ”);scanf(“%d”, &salary);if(salary

}

参考答案: #include int main(void){

float salary,tax;

printf(“请输入月收入: ”);

scanf(“%f”, &salary);

/*******/

if(salary

/*******/

else if(salary

else tax=1500*0.03+(salary-5000)*0.1;

/*******/

printf(“个人所得税为: %.2fn”, tax);}

2.程序调试题2

调试要求:下列程序(C:KSB_2_2.c)包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。将程序结果(包括B_2_2.c文件和B_2_2.EXE文件)保存到目录C:KS中。

功能说明:自定义一个表示分数的结构体类型,在主函数中输入两个分数,通过调用函数计算两个分数的和,最后在主函数中输出计算的结果(不化简)。运行示例: return 0;

含错误源程序: #include struct Frac { int Mol;int Den;};struct add(struct Frac a,struct Frac b){ struct Frac c;c.Mol=a.Mol*b.Den+a.Den*b.Mol;c.Den=a.Den+b.Den;return c;} int main(void){ struct Frac n,m,t;printf(“请输入第一个分数:”);scanf(“%d/%d”,&n.Mol,&n.Den);printf(“请输入第二个分数:”);scanf(“%d/%d”,&m.Mol,&m.Den);t= struct add(n,m);printf(“%d/%d+%d/%d=%d/%dn”,n.Mol,n.Den,m.Mol,m.Den,t.Mol,t.Den);return 0;}

参考答案:

#include struct Frac { int Mol;int Den;};struct Frac add(struct Frac a,struct Frac b)/*******/ { struct Frac c;c.Mol=a.Mol*b.Den+a.Den*b.Mol;c.Den=a.Den*b.Den;/*******/ return c;} int main(void){ struct Frac n,m,t;printf(“请输入第一个分数:”);scanf(“%d/%d”,&n.Mol,&n.Den);printf(“请输入第二个分数:”);scanf(“%d/%d”,&m.Mol,&m.Den);t= add(n,m);/*******/ printf(“%d/%d+%d/%d=%d/%dn”,n.Mol,n.Den,m.Mol,m.Den,t.Mol,t.Den);return 0;}

3.程序调试题3

调试要求:下列程序(C:KSB_2_3.c)包含4个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。将程序结果(包括B_2_3.c文件和B_2_3.EXE文件)保存到目录C:KS中。

功能说明:输入两个由整型数构成的集合(元素个数均为5)分别放到数组A和B中,求这两个集合的交集(交集的元素由两个集合中的相同元素构成),最后输出交集中的元素。运行示例:

含错误源程序:

#include void inter(int s1[],int s2[],int s3[]);int main(void){ int a[5],b[5],c[5];int i,n;printf(“请输入第一个集合内容,5个整型数n”);for(i=0;i

{ for(j=0;j

参考答案:

#include int inter(int s1[],int s2[],int s3[]);

/*******/ int main(void){

int a[5],b[5],c[5];

int i,n;

printf(“请输入第一个集合内容,5个整型数n”);

for(i=0;i

scanf(“%d”,&a[i]);

printf(“请输入第二个集合内容,5个整型数n”);

for(i=0;i

scanf(“%d”,&b[i]);

n=inter(a,b,c);

printf(“A,B交集元素为:n”);

for(i=0;i

/*******/

printf(“%4d”, c[i]);

printf(“n”);

return 0;} int inter(int s1[],int s2[],int s3[]){ int j,i,k=0;

/*******/

for(i=0;i

{

for(j=0;j

if(s1[i]==s2[j])break;

if(j

/*******/

}

return k;}

(二)编程题(2小题,共35分,其中第1小题15分,第2小题20分)1.编程题1 编程要求:请按题中的功能要求,编写程序并能得到正确的结果。将程序结果(包括B_4_1.c文件和B_4_1.EXE文件)保存到目录C:KS中。程序功能:按示例格式完成以下要求。

(1)输入10个整数(存入数组a),再输入整数x。(2)输出数组a中大于等于x的所有元素。运行示例:

输入:22 55 66 99 44 33 77 11 0 88 60 输出:66 99 77 88

参考答案:

#include #define N 10 int main(void){ int a[N],i,x;for(i=0;i=x)printf(“%d ”,a[i]);printf(“n”);}

2.编程题2 编程要求:请按题中的功能要求,编写程序并能得到正确的结果。将程序结果(包括B_4_2.c文件和B_4_2.EXE文件)保存到目录C:KS中。

程序功能:按示例格式完成以下要求(验证数学上考拉兹猜想:任意一个大于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: 输入:0 输出:Error

说明:输入为0、1或负数,输出“Error”。参考答案: #include int main(void){

long n;

int i,j;

scanf(“%ld”,&n);

if(n

{

printf(“Errorn”);

return-1;

}

printf(“[%ld] ”,n);

for(i=1;1;i++)

{

if(n%2==0)

n = n/2;

else

n = 3*n + 1;

printf(“{%d}%ld ”,i,n);

if(n==1)

break;

}

printf(“n”);

return 0;}

二级 C 程序设计 B 场 参考答案

一、单选题

1.D 2.D 3.B

4.B

5.B

6.C

7.D

8.A

9.D

二、程序填空题参考答案

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]!=''】【str[i]】【str[i]!=0】【i

2):【str[i]==ch】【ch==str[i]】 3):【str】 4):【num(str)】

三、改错题

四、编程题

10.C

《 上海计算机等级考试二级C(B卷).docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
 上海计算机等级考试二级C(B卷)
点击下载文档
相关专题 上海市计算机等级考试 上海 计算机等级考试二级 上海市计算机等级考试 上海 计算机等级考试二级
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文