首页 > 全部 > 二级C++ > 国家二级C++机试(操作题)模拟试卷540

国家二级C++机试(操作题)模拟试卷540

本单篇文档共5833字,内容预览3600字,预览为有答案版,源文件无水印,下载后包含无答案空白卷版和有答案版,同时也有计算机类NCRE全国计算机二级整科真题模拟题,讲义课件,思维导图,易错高频题等下载。
二级C++ 章节练习 4317人下载
价格: 2.00 原价:¥8.00
收藏

国家二级C++机试(操作题)模拟试卷540

基本操作题

1.使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错,请改正其中的错误,使程序正确运行,并且使程序输出的结果为:

30

130

注意:错误的语句在//******error******的下面,修改该语句即可。

1 #include<iostream.h>

2 int a=10;

3 class CObj

4 {

5 public:

6 CObj()

7 {

8 a=b=0;

9 }

10 void display()

11 {

12 //******error********

13 cout<<a<<b<end1;

14 }

15 void func(int a)

16 {

17 //******error******

18 a+=a;

19 }

20 void func2()

21 {

22 //******error******

23 a+=a;

24 }

25 private:

26 int a,b;

27 };

28 void main()

29 {

30 CObj obj;

31 obj.func(3);

32 obj.display();

33 obj.func2();

34 obj.display();

35 }

(1)cout<<a<<b<<end1;

(2)this->a+=a;

(3)a+=::a;

解析:程序当中定义了全局变量a和类CObj,类CObj含有成员变量a和b,类CObj的变量a和全局变量a均为整型变量,名字完全一样,使用时需要注意区分。类CObj成员函数display()打印变量a和b的值,func(int a)函数和func2()均使类成员变量a增加,但是增加方式不同。

(1)成员函数display()打印变量a和b的值,即cout输出a和b的值,cout流中的数据是用流插入运算符“<<”顺序加入的,因此“<”不正确,因此第1个标识下应改成cout<<a<<b<<end1。

(2)在func(int a)中,参数a传递进来,其和成员变量a名字一样,因此第2个标识下的“a+=a”有歧义,从程序的运行结果来分析,CObj obj声明对象obj,初始化类成员变量a和b均为0,调用func函数后输出30,说明a为3,b:为0,因此这里应该是成员变量与参数a的和赋给成员变量a,正确的写法是“this->a+=a;”。

(3)func2()函数虽然没有参数,但是成员变量a和全局变量a重名,第3个标识下“a、+=a”也会有歧义,分不清楚是全局变量加倍还是类成员变量加倍或者其他情况,调用func2()函数后,输出“130”,说明a为13,b为0,因此是成员变量与全局变量a的和赋给成员变量a,正确的写法是“a+=::a;”,“::a”表示是全局变量a。

简单应用题

2.使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码。函数num(char*str)实现返回字符串中非数字的个数。

例如:abc123abc45

返回输出:6

将函数num()补充完整。

注意:请勿改动主函数。

1 #include<iostream.h>

2 int num(char*str)

3 {

4

5 }

6 int main()

7 {

8 char str[1024];

9 cout<<’’please input a strfng:’’<<end1;

10 cin.getline(str,1024);

11 cout<<’’char number is’’<<num(str)<<end1;

12 return 0;

13 }

1 int number=0;

2 for(int i=0;str[i]!=0;i++)

3 if( str[i] >’9’|| str[i]<’0’)//非数字字符

4 number++;

5 return number;

解析:函数num(char*str)实现返回字符串中非数字的个数,数字从0开始到9结束,共有10个,因此判断数组字符比较简单,即“’0’<=str[i]<=’9’”,除数字字符外其余的都是非数字字符,利用这个关系可迅速判断该字符是否是非数字字符。

(1)利用循环搜索数组str中的元素,循环变量从0开始,直到str[i]=0(到了字符数组的尾),不断地读取str中读取元素。

(2)每读到一个元素判断是否是非数字字符,即满足条件“str[i]>’9’|| str[i]<’0’的字符为非数字字符,非数字字符个数加1,循环结束就得到了非数字字符的个数。

综合应用题

3.使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能:

(1)完成构造函数,设置数组元素的个数为0,请在注释//********1********之后添加语句。

(2)完成函数AddMember(int n),如果参数n包含在类的数据成员数组中,则返回0,否则把数据写入数组,然后返回1,请在注释//********2********之后添加语句。

(3)完成函数DelMember(int n),如果变量在数据中,则删除该变量,并且返回1,如果不存在则返回0,请在注释//********3********之后添加语句。

(4)完成成员函数islnclude(int n)的定义,该函数检查参数n是否在类的数据成员数组elems中,如果在返回1,否则返回0。请在注释//********4********之后添加语句。

注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。

1 #include<iostream.h>

2 #define MAX LENGTH 500

3 class CArray

4 {

5 public:

6 CArray()

7 {

8 //********1********

9

10 }

11 int AddMember(int n)

12 {

13 for(int i=0;i<length;i++)

14 {

15 //********2********

16 if(Array[i]=n)

17 return 0;

18 }<

本文档预览:3600字符,共5833字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载

剩余未完,查看全文
收藏
国家二级C++机试(操作题)模拟试卷540

推荐资源

客服

扫码添加客服微信

热线

官方客服

如遇问题,请联系客服为您解决

电话客服:

客服微信:pujinet

工作时间:9:00-18:00,节假日休息

公众号

扫码关注微信公众号