国家二级C++机试(操作题)模拟试卷453
基本操作题
1.使用VC6打开考生文件夹下的源程序文件modil.cpp。本程序要求输入一字符串,然后将其中的小写字母改变成大写字母,字符可能输入多行,当输入字符“?”时,默认字符输入结束,最后把结果输出到界面。
注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在//******error******的下面。
#include
void main()
(
int i=0;
char str[120];
cout<<”Enter a string end
with’?’.\\
(1)cin.getline(str,120,’?’);
(2)while(str[i])
(3)if(str[i]>=’a’&&str[i]<=’z’)
解析:(1)题目中要求以输入字符“?”为结束,用于字符输入的流成员函数getline函数读入一行字符,格式cin.getline(字符数组,字符个数,终止标志字符),所以第1个标识下为“cin.getline(str,120,’?’);”。
(2)第2个标识下的“while(str)”语句应该是判断字符串str中的每一个字符是否为尾符,若不是尾符在循环中判断每一个字符是否为小写,若为小写,转换。所以应该修改为“while(str[i])”。
(3)第3个标识下的“if(str[i]>=’a’)”语句是判断字符str[i]是否为小写字符,而现有的语句只是判断字符是否大于’a’,但是小写字符应该是’a’到’z’,所以修改为“if(str[i]>=’a’&&str[i]<=’z’)”。
简单应用题
2.使用VC6打开考生文件夹下的源程序文件modi2.cpp。完成函数fun(char*str,char*s)空出部分。函数fun(char*str,char* s)的功能是:将在字符串str中下标为偶数位置上的字符,紧随其后重复出现一次,放在一个新串s中,s中字符按原字符串中字符的顺序排列。(注意0为偶数)
例如:当str中的字符串为:\\
int 1;
for(i=0;str[i]!=0;i++) //循环
判断每一个字符
{
if(i%2==0) //判断字符串
中下标为偶数位置
{
s[i]=str[i];
s[i+1]=str[i];
s[i+2]=’\0’; //新串添加尾符
}
}
解析:(1)判断一个字符串中的某一字符下标i是否为偶数,可用“i%2=0”来判断。
(2)对串str中各个字符串逐个进行考查,满足条件的字符就顺序放在新串S中,否则就不存放。
(3)所有字符处理完后,记得在新串S的末尾加上结束符“’\0’”。
综合应用题
3.使用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义了用于表示日期的类Date,但类Date的定义并不完整,按要求完成下列操作,将类的定义补充完整。
(1)定义私有成员变量year、month、day,分别表示年、月、 日,类型为int。请在注释//********1********后添加适当的语句。
(2)完成构造函数,分别给year、month、day赋值,请在注释//********2********后添加适当的语句。
(3)完成重载符号“+=”的定义,请在注释//********3********后添加适当的语句。
(4)完成print()打印函数,如2008年8月8日到屏幕和文件modi3.txt格式相同,请在注释∥********4********后添加适当的语句。
注意:仅在函数指定位置添加语句,请勿改动主函数main与其他函数中的任何内容。
#include
#include
#include
#include
using namespace std;
void WriteFile(int c)
{
ofstream out1;
out1.open(\\
(1)添加语句:int year,month,day;
(2)添加语句:year=y;month=m;day=d;
(3)添加语句:Date&operator+=(int m)
(4)添加语句:cout<<year<<\\
解析:(1)题目1要求“定义私有成员变量year、month、day”。在C++程序的private区域中添加变量year、month、day的定义,即在第1个标识下添加“int year,month,day;”。
(2)题目2要求“完成构造函数,分别给year、month、day赋值”。在程序中“Date(int y,int m,int d)”的构造函数中添加给year、month、day赋值的语句,即在第2个标识下添加“year=y;month=m;day=d;”。
(3)题目3要求“完成重载符号“+=”的定义”。在C++中,运算符重载的定义方法是定义一个重载运算符的函数,格式为函数operator+重载运算符号+,所以这里补全“Date&operator+=(int m)”。
(4)题目4要求“完成函数print()打印函数”。在C++中的print()函数中补全其打印功能,即在第四个标识下添加“cout<<year<<\\
本文档预览:3600字符,共2809字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载