《计算机二级考试C++上机考试试题.docx》由会员分享,可在线阅读,更多相关《计算机二级考试C++上机考试试题.docx(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 计算机二级考试C+上机考试试题 一、程序改错题 使用VC+6.0翻开考生文件夹下的源程序文件1.cpp。本程序要求输入一个字符串,然后将其中的小写字母改成大写字母,字符可能输入多行,当输入字符“?”时,默认字符输入完毕,最终把结果输出到屏幕中。 留意:不要改动main函数,不能增加或删除行,也不能更改程序的构造,错误的语句在/*error*的下面。 试题程序: #include voidmain() inti=0; charstr120; coutEnterastringendwith?. /*error* cin.getline(str,120); /*error* while(str)
2、/*error* if(stri)=a) stri=stri-a+A; i+; cout return; 二、简洁应用题 使用VC+6.0翻开考生文件夹下的源程序文件2.cpp。完成函数fun(char*sl,char*s2)的空出局部。函数fun(char*s1,char*s2)的功能是将在字符串s1中下标为偶数的字符,紧随其后重复消失一次,放在一个新串s2中,s2中字符按原字符串中字符的挨次排列。(留意0为偶数) 例如:当s1中的字符串为“abcdef”时,s2中的字符串应为“aaccee”。 留意:不要改动main函数,不得增行或删行,也不得更改程序的构造。 试题程序: #include
3、(iostream.h) voidfun(char*s1,char*s2) voidmain() charsi100】,s2【1OO; coutPleaseenterstringstrin9: cin.getline(s1,100); fun(s1,s2); coutTheresultis: return; 三、综合应用题 使用VC+6.0翻开考生文件夹下的源程序文件3.cpp,其中定义了用于表示日期的类Date,但类Date的定义并不完整,按要求完成以下操作,将类的定义补充完整。 (1)定义私有成员变量year、month、day。分别表示年、月、日,类型为int。请在解释1后添加适当的语句
4、。 (2)完成构造函数,分别给year、month、day赋值,请在解释2后添加适当的语句。 (3)完成重载符号“十=”的定义,请在解释3后添加适当的语句。 (4)完成print打印函数,输出到屏幕和文件的格式一样,请在解释4后添加适当的语句。 留意:仅在函数指定位置添加语句,请勿改动主函数main与其他函数中的任何内容。 程序正常运行,输出的结果为2023年11月813。 试题程序: #include(iostream.h) #include(fstream) #include(iomanip) #include usingnamespacestd; voidWriteFile(intc)
5、ofstreamout1; out1.open(3.txt,ios_base:app); out1 out1.close(); voidWriteFile(char*str) ofstreamoutl; out1.open(3.txt,ios_base:app); out1 out1.close(); voidClearFile() ofstreamout1; out1.open(3.txt); out1.close(); classDate public: Date(inty,intm,intd) /*1* voidprint(); /*2* month+=m; inti=month/12:
6、 intj=month; if(j=0) year+=(i-1); month=12; else year+=i: month=j; return*this; private: /*3* ; voidDate:print() /*4* WriteFile(year): WriteFile(年); WriteFile(month); WriteFile(月); WriteFile(day); WriteFile(日); intmain() ClearFile(); DateOly_day(2023,8,8); Olyday+=3: Oly_day.print(); return0; 上机考试试题
7、答案与解析 一、程序改错题 (1)应改为“ein.getline(str,120,?);”。 (2)应改为“while(stri)”。 (3)应改为“if(stri=astri=2)”。 【解析】此题中要求以输入字符“?”为完毕符,用于字符输入的流成员函数getline函数读入一行字符,格式为“cin.getline(字符数组,字符个数,终止标志字符)”,所以第1处改为“cin.getline(str,120,?);”。第2处的“while(str)”语句应当是推断字符串str中的每一个字符是否为完毕符,若不是完毕符,在循环中推断每一个字符是否为小写,若为小写,则转换。所以应当修改为“whil
8、e(stri)”。第3处的“if(stri=a)”语句是推断字符stri是否为小写字符,而现有的语句只是推断字符是否大于a,但是小写字符应当是a到2,所以修改为“if(stri=astri=z)”。 二、简洁应用题 inti; for(i=0;s1i!=0;i+)/循环推断每一个字符 if(i%2=0)/推断字符串中下标为偶数位置 s2i=s13; s2i+1=s1i; s2i+2=;/新串添加尾符 【解析】推断一个字符串中的某一个字符下标i是否为偶数,可用“i%2=0”来推断。对串s1中各个字符串逐个进展考察,满意条件的字符就挨次放在新串s2中,否则就不存放。全部字符处理完成后,记得在新串s
9、2的末尾加上完毕符“。 三、综合应用题 (1)应添加“year=y;month=m;day=d;”。 (2)应添加“Dateoperator+=(intm)”。 (3)应添加“intyear,month,day;”。 (4)应添加“cout 【解析】此题中第1处要求“完成构造函数,分别给year、month、day赋值”。在程序中“Date(inty,intm,intd)”的构造函数中添加给year、month、day赋值的语句,即在第1处添加“year=y;month=m;day=d;”。第2处要求“完成重载符号+=的定义”。在C+中,运算符重栽的定义方法是定义一个重载运算符的函数,格式为函数operator+重载运算符号+,所以这里补全“Dateoperator+=(intm)”。第3处要求“定义私有成员变量year、month、day”。在C+程序的private区域中添加变量year、month、day的定义,即在第3处添加“intyear,month,day;”。第4处要求“完成函数print()打印函数”。在C+中的print函数中补全其打印功能,即在第四个标识下添加“eout