[计算机类试卷]国家二级C++机试(操作题)模拟试卷267及答案与解析.doc

上传人:李朗 文档编号:497340 上传时间:2018-11-28 格式:DOC 页数:6 大小:31KB
下载 相关 举报
[计算机类试卷]国家二级C++机试(操作题)模拟试卷267及答案与解析.doc_第1页
第1页 / 共6页
[计算机类试卷]国家二级C++机试(操作题)模拟试卷267及答案与解析.doc_第2页
第2页 / 共6页
[计算机类试卷]国家二级C++机试(操作题)模拟试卷267及答案与解析.doc_第3页
第3页 / 共6页
[计算机类试卷]国家二级C++机试(操作题)模拟试卷267及答案与解析.doc_第4页
第4页 / 共6页
[计算机类试卷]国家二级C++机试(操作题)模拟试卷267及答案与解析.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、国家二级 C+机试(操作题)模拟试卷 267及答案与解析 一、基本操作题 1 使用 VC6打开考生文件夹下的源程序文件 modi1 cpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为: 1 0 注意:错误的语句在 *error*的下面,修改该语句即可。 #include iostream h struct struct union int a; char c4; ; int b; *error* void main() Struct m: *error* m c0=0; m c1=0; m c2=0; *error* m c3=1; m b=m c3; cout m a end

2、l m b endl; 二、简单应用题 2 使用 VC6打开考生文件夹下的源程序文件 modi2 cpp。阅读下列函数说明和代码,补充空出的代码。函数 convert(char*des, char*str, char c, char*str2)的功能是: 如果 str中包含字符 “!”,则替换成 a; 如果 str中包含字符 “&”,则替换成 b; 如果 str中包含字符 “*”,则替换成 str2。 并用函数返回目标转换后的指针。 注意:只能补充函数 convert(char*des*char*str, char*str2) #include iostream h #include cstr

3、ing #defineMAXLEN1024 void convert(char*des, char*Str, char*str2) void main() char destMAXLEN; char* str=“!&cefghi*!&“; char*str2=“jklm“; convert(dest, str, str2); cout dest endl; return; 三、综合应用题 3 使用 VC6打开考生文件夹下的源程序文件 modi3 cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能: (1)定义私有常量 PI,请在注释 *1*后添加适当的语句。 (

4、2)完成类的私有常量 PI的赋值,以及完成对半径 radius的赋值 。请在注释*2*后添加适当的语句。 (3)完成计算圆面积的函数 GetArea()。请在注释 *3*后添加适当的语句。 (4)完成计算圆周长的函数 GetGinh()。请在注释 *4*后添加适当的语句。 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。 #include iostream h #define CONST_PI3 141592 class CCircle private: double radius; *1* public: *2* CCircle(int radius) (this- radius

5、=radius; double GetArea() *3* double GetGirth() *4* void SetRadius(int m) radius=m; ; int main() CCircle circle(5); cout circle GetArea() endl; cout circle GetGirth() endl; circle SetRadius(10); cout Circle GetArea() endl; cout circle GetGirth() endl; return0; 国家二级 C+机试(操作题)模拟试卷 267答案与解析 一、基本操作题 1 【

6、正确答案】 (1); (2)m c0=1; (3)m c3=0; 【试题解析】 (1)第 1表示在结构体定义内,结构体定义的一般形式为: struct结构体名 成员列表 变量名列表; 这里定义的结构体并没有变量名列表,但是结构体定义一定是以 “; ”结束的,因此第 1个标识下应改为 “”。 (2)根据题目要求程序输出结果分别为 “1”和 “0”,即结构体变量 m的成员变量 a的值为 1, b的值为 0,又 a和字符数组 c4存放在同一段内存单元中,因此 a的值可由数组 c4决定 (两者使用同一地址单元 ),故 c0表示 a的低 8位, c1为 a的第二个 8位, c2为 a的第 三个 8位,

7、c3为 a的最高 8位, a=0,所以 c0=1,c1=c21=c3=0,故第 2个标识下应改为 “m c0=1; ”。 (3)由 (2)分析可知第 3个标识下应改为 “m c3=0; ”。 二、简单应用题 2 【正确答案】 des0=0; char temp2=0, 0; for(int i=0; stri!=NULL; i+) if(stri=!) temp0=a;替换成 a strcat(des, temp); else if(stri=&) temp0=b; strcat(des, temp);替换成 b else if(stri=*) strcat(des, str2);替换成 st

8、r2 else temp0=stri; strcat(des, temp);其他情况则添加在后面 【试题解析】 (1)由审题分析可知,利用循环中不断检索 str字符串每一个字符,循环变量 i从 0开始,直到到了 str字符结束,即 srti=NULL为循环判断结束条件。 (2)在循环体 内,用 ifelse语句判断是不是 “!”、 “&”或 “*”这些特定的字符,如果是这些特定的字符则进行相应的替换,如果不是则将该字符直接加在 des后面。 (3)字符串的连接可以使用字符串连接函数 strcat(),将新字符连接在 des后面,即strcat(des temp)。 三、综合应用题 3 【正确答

9、案】 (1)添加语句: const double PI; (2)将 “CCircle(int radius)”补充完整为: CCircle(int radius): PI(CONST PI) (3)添加语句: return radius*radius*PI; (4)添加语句: return2*radius*PI; 【试题解析】 (1)第 1个标识下定义私有常量 PI,常数据成员是使用 const说明的数据成员,因此第 1个标识下应添加 “constdouble PI; ”。 (2)常数据成员的初始化只能通过构造函数的成员初始化列表进行,构造函数CCircle(int radius)应对常数据成员 PI进行初始化,第 2个标识下应改为“CCircle(int radius): PI(CONST_PI)”。 (3)第 3个标识下返回圆面积值 ,圆面积为半径平方与 PI的乘积值,即第 3标识下应添加 “return radius*radius*PI; ”。 (4)第 4个标识下返回周长,即第 4表示下应添加 “return2*radius*PI: ”。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1