2017年计算机基础知识和应用能力等级考试上机试卷14二级 C++ 语言

更新时间:2023-12-03 23:17:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

计算机基础知识和应用能力等级考试上机试卷二级 C++ 语言

一、改错题(20分)

[题目]以下程序计算奥运会鞍马比赛参赛选手的得分。假设共有N个裁判,每个裁判给参赛选手打分(分值在0到10之间),去掉两个最高分和两个最低分之后的平均分为运动员的最后得分。程序正确的运行结果为:

9.37 9.52 9.98 10 9.85 9.73 9.93 9.76 9.81 9.08 Average score=9.76667 含有错误的源程序如下: #include #define N 10;

double getscore(double *score)

{ double *pstart=score,*pend=score+N;

double max1,max2; //max1存放最大数,max2存放次大数。 double min1,min2; //min1存放最小数,min2存放次小数。 max1=max2=min1=min2=*score; for(score++;score

max2=*score; }

else if(min2>*score) { if(min1>*score ) { min2=min1; min1=*score; }

else min2=*score; } }

int aver=0;

for(score--;score>=pend;score--) aver+=*score;

return(aver-max1-max2-min1-min2)/N; }

void main()

{ double scr[N]={9.37,9.52,9.98,10,9.85,9.73,9.93,9.76,9.81,9.08}; for(int i=0;i

cout<<”average score=”<

[要求]

1. 将上述程序录入到文件myfa.cpp中,根据题目要求及程序中语句之间的逻辑关系对

程序中的错误进行修改。程序中的注解可以不输入。

2. 改错时,可以修改语句中的一部分内容,增加少量的变量说明、函数原型说明或编

译预处理命令,但不能增加其他语句,也不能删除整条语句。

3. 改正后的源程序文件myfa.cpp必须放在T:盘的根目录下,供阅卷用。 二、编程题(20分)

[题目]试定义一个类Plus,实现两个不同进制的正整数相加,参与计算的两个正整数用字符串表示,若字符串第一个字符为‘0’,但第二个字符不为‘x’或‘X’,则其表示八进制数,若前两个字符为“0x”或“0X”,则其表示十六进制数,其他情况为十进制数。例如,字符串“0xA23”、“0456”、“789”分别表示十六进制数、八进制数和十进制数。计算结果用十进制整数表示。 具体要求如下: (1) 私有成员

char *p1,*p2:p1,p2指向以字符串形式表示的参与加法运算的两个正整数。 int s:存储两个正整数相加的结果。 (2)公有成员

Plus(char *st1,char *st2):构造函数,分别利用参数st1和st2初始化数据成员p1和p2。 int dec(char *t,int n):将字符串t表示的n进制的数转换为十进制整数,并将结果返回。 int num(char *t):确定t所指向字符串的进制后,调用函数dec()将该字符串转换为十进制整数,并将结果返回。

void fun():利用函数num()实现由数据成员p1,p2所指向的两个整数的加法运算,结果存入数据成员s中。

void print():按一定格式输出计算结果。

~Plus():析构函数,释放动态分配的存储空间。

在主函数中输入两个字符串(八进制、十进制或十六进制形式),利用其初始化一个Plus对象。调用相关成员函数完成对类Plus 的测试。 输入/输出示例(标有下划线部分为键盘输入): 输入两个整数:034 0xA3c

计算结果为:034+0xA3c=28+2620=2648 [要求]

源程序文件名必须为myfb.cpp,并放在T:盘的根目录下,供阅卷用。

本文来源:https://www.bwwdw.com/article/ltot.html

Top