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

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

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

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

基本操作题

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

i=5

i=10

i=15

i=20

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

1 #include<iostream.h>

2 class CMyClass

3 {

4 public:

5 template<class T>

6 void func(T x,T y)

7 {

8 /********error********/

9 T i=0;

10 if(x>=i)

11 {

12 i=i+x;

13 }

14 else

15 {

16 i=i+y;

17 }

18 cout<<’’i=’’<<i<<end1;

19 }

20 };

21 void main()

22 {

23 CMyClass t;

24 t.func(5,0);

25 /********error********/

26 t.func(68,(char)1);

27 float i=10.0;

28 /********error********/

29 t.func(i,1);

30 t.func(5,5);

31 }

(1)static T i=0;

(2)t.func((char)68,(char)1);

(3)t.func((int)i,1);

解析:程序当中定义了类CMyClass,含有一个成员函数模板func(T x,T y),在函数内定义一个变量i,如果参数x大于i,则i和x的和赋值给i,否则i和Y的和赋值给i。

(1)在主函数内定义了类CMyClass对象t,第一次调用func()函数传入整型参数5和0,此时T表示整型(int),5>0,此时i和x的和为5,故屏幕输出i的值为i=5;第二次调用func()函数,传入参数为char型数据,此时T表示字符型(char),chari=0,68>0,故i为68,屏幕输出ASCII码为68的字符,即i=D;第三次调用func()函数,传入整型数据10和1,此时T表示整型(int),输出为i=15,显然如果i为一般的局部变量, 输出应该是i=10(10>0,i=10+0=10),这里i记忆了第一次调用func()函数后的值(i=5,10>5,10+5=15),故i为静态变量,因此第1个标识下应改为“static T i=0;”。

(2)func()函数两个参数类型一致,从输出结果看,第二次调用func()传入的参数均是char型的,故第2个标识下应改为“t.func((char)68,(char)1);”,(char)68和(char)1含义是做强制类型转换,将整型转换成char型。

(3)第3个标识下传入参数1为整型,局部变量i为float型,由输出结果可知,第四次调用func()函数也改变了静态变量i(static int i)的值,故传入的参数均为整型,因第3个标识下的局部变量i(float型)也要强制类型转换,故第3个标识下应改为“t.func((int)i,1);”。

简单应用题

2.使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,补充空出的代码。完成函数ToUpper(char*des,char*str),该函数实现把str字符串中小写字符转换成大写字符,并存发在des中。

例如:str=’’aBcdrFGHijK’’;

则:des=’’ABCDEFGHIJK’’:

注意:不能修改程序的其他部分,只能补充ToUpper()函数。

1 #include<iostream.h>

2 #define MAXLEN 1024

3 void ToUpper(char*des,char*str)

4 {

5

6 }

7 void main()

8 {

9 char dest[MAXLEN];

10 char* str=’’aBcdrFGHijK’’;

11 ToUpper(dest,str);

12 cout<<dest<<end1;

13 return;

14 }

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

2 {

3 if( str[i] >=’a’ && str[i]<=[z[) //比较是否是小写字母

4 {

5 des[i]=str[i]-’a’+’A’;//替换成大写字母

6 }

7 else

8 {

9 des[i]=str[i];//其他情况不变

10 }

11 des[i+1]=0;

12 }

解析:函数ToUpper(char*des,char*str),该函数实现把str字符串中小写字符转换成大写字符,可利用循环检查字符串str中的每一个字符,判断该字符是不是小写字母,如果是则转换成大写字母。

(1)由审题分析可知,可利用循环来逐个检索str中的字符,循环变量i从0开始,直到str数组的结束,即str[i]==0为循环结束条件。

(2)小写字母的判别方式为:str[i]>=’a’&&str[i]<=’z’,即该字符比’z’小,而且比’a’大,如果满足该条件则在该字符基础上加上(’A’-’a’)值转换为大写字母;如果是其他字符的话,无需转换,直接刚该字符放到des数组中。

综合应用题

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

(1)定义类CPlanet的保护数据成员distance和revolvePeriod,它们分别表示行星距太阳的距离和行星的公转周期。其中,distance为double型,revolvePeriod为int型。请在注释//********1********之后添加适当的语句。

(2)定义类CEarth的构造函数CEarth(double d.intr),并在其中计算地球绕太阳公转的轨道周长。假定:circumference=2*d*3.1416。请在注释//********2********之后添加适当的语句。

(3)定义类Earth的成员display(),用于显示所有信息。包括地球距太阳的距离,地球的公转周期,以及地球绕太阳公转的轨道周长。请在注释//********3********之后添加适当的语句。

注意:增加代码,或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。

1 #include<iostre

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号