1、国家二级 C+机试(操作题)模拟试卷 437及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.使用 VC6打开考生文件夹下的源程序文件 modi1cpp,但该程序运行时有错,请改正程序中的错误,使该程序的输出结果为: 100 注意:错误的语句在*error*的下面,修改该语句即可。#includeiostreamhstatic int x=50;int t=0;int *func(int x,int y,int z) t=t+x+y+z; *error* return t;void main() int y=30; int x=10; int z
2、=20; *error* x=x; *error* coutfunc(x,y,z)end1;(分数:2.00)_二、简单应用题(总题数:1,分数:2.00)2.使用 VC6打开考生文件夹下的源程序文件 modi2cpp。阅读下列函数说明和代码,完成空出部分程序,使该程序输出倒 99口诀。 程序分析:分行与列考虑,共 9行 9列,设置两个变量 i和 j,i 控制行,j控制列。 程序运行结果如下: 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9= 63 8*9=72 9*9=81 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=
3、48 7*8= 56 8*8=64 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7= 42 7*7=49 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*4=4 2*4=8 3*4=12 4*4=16 1*3=3 2*3=6 3*3=9 1*2=2 2*2=4 1*1=1 注意:只能补充函数 show(),请勿改动其他部分的内容。 #include void show() void main() cout“9*9 倒乘法口诀”国家二级 C+机试(操作题)模拟试卷
4、 437答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.使用 VC6打开考生文件夹下的源程序文件 modi1cpp,但该程序运行时有错,请改正程序中的错误,使该程序的输出结果为: 100 注意:错误的语句在*error*的下面,修改该语句即可。#includeiostreamhstatic int x=50;int t=0;int *func(int x,int y,int z) t=t+x+y+z; *error* return t;void main() int y=30; int x=10; int z=20; *error* x=x; *
5、error* coutfunc(x,y,z)end1;(分数:2.00)_正确答案:(正确答案:(1)return &t; (2)x=:x; (3)cout*func(x,y,z)end1;)解析:解析:(1)由审题分析可知,函数 fun(intx,int y,int z)返回的是整型数据指针,而第 1个标识下的 return t表示返回一个整型数据,和要求的返回数据类型不匹配,应改为“return &t;”。 (2)第 2个标识下 x=x表示局部变量 x自己给自己赋值,调用 func(x,y,z)函数后,返回的运算结果是30+10+20=60,与输出 100不同,而全局静态变量 x值为 50
6、,30+50+20=100,刚好满足条件,因此第 2个标识下是将全局静态变量 x的值赋给局部变量 x,即第 2个标识下应该为“x=:x;”,“:”表示的是引用全局变量。 (3)func(x,y,z)返回一个整型数据指针,通过该指针可以得到运算结果,而coutfunc(x,y,z)输出的 fun(x,y,z)返回的地址值(变量 t的地址值),而不是该地址内存储的变量的值(t 的值),运行程序后会发现输出的是奇怪的一串数字,而不是我们所想要的 100,应加上取指针运算符“*”,*func(x,y,z)为变量 t,故第 3个标识下应改为“cout*func(x,y,z)end1;”。二、简单应用题(
7、总题数:1,分数:2.00)2.使用 VC6打开考生文件夹下的源程序文件 modi2cpp。阅读下列函数说明和代码,完成空出部分程序,使该程序输出倒 99口诀。 程序分析:分行与列考虑,共 9行 9列,设置两个变量 i和 j,i 控制行,j控制列。 程序运行结果如下: 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9= 63 8*9=72 9*9=81 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8= 56 8*8=64 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7= 42 7*7=49 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*4=4 2*4=8 3*4=12 4*4=16 1*3=3 2*3=6 3*3=9 1*2=2 2*2=4 1*1=1 注意:只能补充函数 show(),请勿改动其他部分的内容。 #include void show() void main() cout“9*9 倒乘法口诀”