国家二级C++机试(操作题)模拟试卷560
基本操作题
1.使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错误,请补充程序中的丢失部分,使得程序运行。可以在修改处增加或者删除一条语句。
本程序完成以下功能:
(1)获得输入的两个数字x1,x2(例如x1=4,x2=2);
(2)输出两个中较小的一个(例如输出2);
(3)计算x1/x2如果x2等于0,返回-1(输出结果2);
(4)输出x1+x2的结果(输出结果6);
(5)输出x1+1的结果(输出结果5);
(6)输出x2-1的结果(输出结果1)。
注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在//******error******的下面。
1 #include<iostream.h>
2 void main()
3 {
4 int x1;
5 int x2;
6 int x3;
7 cout<<’’please input two number:’’<<end1;
8 cin>>x1>>x2;
9 //********error********
10 x3=(x1>x2)?x1:x2;
11 cout<<’’Min number is :’’<<x3<<end1;
12 //计算x1/x2如果x2等于0,返回-1
13 //********error********
14 x3=(x2)?x1\x2:-1;
15 cout<<’’x1/x2= ’’<<x3<<end1;
16 //********error********
17 x3= (–x1) + (x2++);
18 cout<<’’x1+x2= ’’<<x3<<end1;
19 cout<<’’x1+1= ’’<<x1<<end1;
20 cout<<’’x2-1= ’’<<x2<<end1;
21 return;
22 }
(1)x3=(x1<x2)?x1:x2;
(2)x3=(x2)?x1/x2:-1;
(3)x3=(x1++)+(x2–);
解析:本题首先求输出两个数字中的最小值,然后计算两个数相除的值,然后求得第一个数与第二个数的和,最后输出“x1+1”和“x2-1”的值。解题思路主要是要从main()主函数入手,依次完成题干中要求的各个要求。
(1)第1个标识下“x3=(x1>x2)?x1:x2;”语句是判断x1与x2其中哪个相对较小,并将其赋值给x3。条件运算符的格式:表达式1?表达式2:表达式3。执行顺序是先求解表达式1,若非则求解表达式3,此时表达式3的值就作为整个条件表达式值。所以求x1和x2中较小的一个,如果x1<x2为真,那么x1的值赋给x3,否则x2的值赋给x3,即第1个标识下为“x3=(x1<x2)?x1:x2;”。
(2)同理,第2个标识下计算x1/x2如果x2等于0,返回-1。即“x3=(x2)?x1/x2:-1;”。
(3)题干中求x1+1,而-x1是x1-1,所以改为x1++。同理X2++改为x2-。即“x3=(x1++)+(x2-);”。
简单应用题
2.使用VC6打开考生文件夹下的源程序文件modi2.cpp。请完成函数fun(int n),求出n×n矩阵的对角线数字的平方和。如果n为奇数,则对角线交叉部位数字只参与一次计算。
注意:请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
1 #include<iostream.h>
2 #define MAX N 10
3 int XX[MAX N][MAX N];
4 int fun(int n)
5 {
6
7 }
8 void main()
9 {
10 int n;
11 do
12 {
13 cout<<’’please input N(1<=N<10):’’<<end1;
14 cin>>n;
15 if(n<10 && n>=1)
16 {
17 break;
18 }
19 } while(1);
20 for(int i=0;i<n;i++)
21 {
22 for(int j=0;j<n;j++)
23 {
24 cout<<’’please input data:’’<<end1;
25 cin>>XX[i][j];
26 }
27 }
28 cout<<fun(n)<<end1;
29 return;
30 }
1 int data=0;//初始化求平方和变量
3 for(int i=0;i<n;i++)
3 {
4 data+=XX[i][i]*XX[i][i];//求正对角线平方和
5 if(i!=n-i-1)
6 data+=XX[i][n-i-1]*XX[i][n-i-1];//求逆对角线平方和
7 }
8 return data;
解析:本题函数中的功能是输出N行N列正方阵,然后求两条对角线上各元素之平方和。其中,假设矩阵行、列分别为i、i,那么对角线上的元素特点是主对角线上i=j,以及逆对角线j=n-i-1。
(1)首先初始化求平方和变量,设置求平方和的变量为0。
(2)然后利用for循环求得矩阵正对角线平方和。
(3)最后求得逆对角线平方和,返回平方和变量。
综合应用题
3.使用VC6打开源程序文件modi3.cpp。此程序的功能是将out1.txt文件中的内容输出到屏幕与文件中。输出如下:
李一 1.78m 21
王一 1.65m 23
out2.txt文件的内容如下:
李一 1.78m 21
王一 1.65m 23
其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。
(1)以输入方式打开文件out1.txt,请在注释//********1********后添加适当的语句。
(2)以输出方式打开文件out/txt,请在注释//********2********后添加适当的语句。
(3)从文件中获得一个字符,判断是否结束,如果结束则退出输出。请在注释//********3********后添加适当的语句。
(4)把获得的字符输出到文件中,请在注释//********4********后添加适当的语句。
注意:仅在函数指
本文档预览:3600字符,共4966字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载