国家二级C++机试(操作题)模拟试卷332
基本操作题
1.使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错,请改正错误,使得程序正确执行,并且输出以下语句:
TestClass1:0
TestClass2
注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在
//********error********的下面。
#inClude
struct TestClass1
{
TestClass1(int i=0)
{
m i=i;
}
Void print()
{
cout<<\\
(1)public:
(2)TestClass1 obj1(0);或TestClass1 obj1;
(3)TestClass2 obj2;
解析:(1)第1个标识下的“private:
~TestClass20”是析构函数,它不是私有的,所以这里应该为“删除private:或修改为public:”。
(2)第2个标识下的“TestClass1 obj1();”语句是定义一个TestClass1类型的对象obj1(),根据类TestClass1构造函数的定义“TestClass1(int i=0)”,知道存在整型参数,应该补充参数,或者只是先定义一个对象名,然后在使用时补充参数,即修改为“TestClass1 obj1(0);或TestClass1 obj1;”。
(3)同理第3个标识下的“TestClass2 obj2)_;”语句修改为“TestClass2 obj2;”。
简单应用题
2.使用VC6打开考生文件夹下的源程序文件modi2.cpp。请完成函数fun(char*data),此函数的功能是,找出字符串数组中最小的ASCII值,如果有相同变量,则输出最后一个所在的位置;如果字符串为空,则返回-1;或者不存在时也返回-1。
注意:请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。计算数字如果第一个字母最小,则返回0。依次增加。
#include
int fun(char*data)
{
}
void main()
{
char str[1024];
cout<<\\
int MinPos=0; //初始化最小值位置
if(data==NULL) //判断输入字符串是否为空
return -1;
char MinData=data[0];//设置字符串第一个字符为最小值
if(MinData==0) //判断第一个字符是否存在
return -1;
for(int i=1;data[i]!=0;i++)
{
if(data[i]<=MinData)
{
MinData=data[i]; //逐个判断每个字母是否小于标记字符
MinPos=i; //最小值位置
}
}
return MinPos;
解析:(1)MinPos变量首先指向字符串data的第一个字符,同时将标志位MinPos初始值赋为0。
(2)然后利用for循环对每一个当前字符与MinPos标记的字符进行比较。
(3)循环中将求得的最小数据data[i]赋值给MinData,并将该数据项数组标志位赋给标志位MinPos。
综合应用题
3.使用VC6打开考生:丈件夹下的源程序文件modi3.cpp。学校教务处要为任课老师开发一个学生管理系统,需求如下:
(1)学生的信息是要受到严密保护和限制的,包括姓名、五个英文字符的学号,以及精确到小数点后一位的一科成绩,只有任课老师可以修改,如果学生升学了,比如由本科升到研究生,原来的信息还有效,而只需添加研究生的必要信息,不过现在不必马上实现,但应当有所考虑。
(2)学生的所有信息可以查看,但也只有学生自己才有这个权利。
(3)学生的信息可以从文件中读取来构造信息库,需要把信息输出到屏幕以便核实,但这需要任课老师来完成。
(4)老师能提供所教学生的完整信息列表,同时可按成绩高低排序。
(5)为了便于学校评定奖学金,需要单独查找成绩最高的同学(一般不采用把成绩单全部排列后来选取,可能这比较耗费时间,虽然要求不太合理,但要按用户的需求操作,同时需要指出的是,如果成绩最高者有数名,需要一一列出)。
(6)由于学校的机器比较老,内存严重不足,每个老师带的学生数不一样,但也不会超过50人。
以上功能的程序框架已经形成,考生需要按照需求来逐个实现。
(1)请在注释//********1********之后添加适当的语句,以便实现功能需求(1)。
(2)请在注释//********2********处添加适当的语句,成绩单排序功能。
(3)请在注释//********3********处实现奁找成绩最高学生名单。
无需修改main()主函数,当得到下面的结果,该系统可能被采用。
输入的学生信息:
姓名 学号 成绩
周华 0001 78.5
李强 0002 98
刘星 0003 89
贺兰 0004 78
周红 0005 76.5
赵邦 0006 85
高俊 0007 98
排序后的学生信息:
姓名 学号 成绩
李强 0002 98
高俊 0007 98
刘星 0003 89
赵邦 0006 85
周华 0001 78.5
贺兰 0004 78
周红 0005 76.5
查询成绩最高的学生信息:
高俊 0007 98
李强 0002 98
注意:除在指定位置添加语句之外,请不要改动
程序中的其他内容。
#include
#include
#include
#define NMAX 50
class Teacher;
class Student
{
public:
Student(char *name=“未知
”,char *number=“00000”,double
mark=0.01
{
int len=strien(name);
m name:new char[len+1];
strcpy(m name,name);
本文档预览:3600字符,共4407字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载