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

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

1、国家二级 C+机试(操作题)模拟试卷 45及答案与解析 一、基本操作题 1 使用 VC6打开考生文件夹下的源程序文件 modil cpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为: m=-10 n=-10 p=0 a=一 10 z=A 注意:错误的语句在 *error*的下面,修改该语句即可。 1 #include 2 void main() 3 4 double m=10; 5 float n=10 ; 6 bool P=1 ; 7 int q=10; 8 char Z=a; 9 m=一 m; 10 *error* 11 n= n ; 12 *error* 13 p=一 p

2、 ; 14 *error* 15 q= q; 16 z=z-32; 17 cout 2 #define N 100 3 int aNN; 4 int fun(int n) 5 6 7 8 void main() 9 10 int n ; 11 coutn: 13 for(int i=0 ; iaiJ; 18 19 cout 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 ; ilength; i+) 14 1

3、5 *2* 16 if(Arrayi=n) 17 return 0; 18 19 Arraylength+=n; 20 return 1; 21 22 int DeiMember(int n) 23 24 int i ; 25 for(i=0 ; ilength; i+) 26 27 if(Arrayi=n) 28 29 break; 30 31 32 *3* 33 if() 34 35 for(; ilength-1; i+) 36 37 Arrayi=Arrayi+1; 38 39 length-; 40 return1 ; 41 42 return 0 ; 43 44 int isInc

4、lude(int n) 45 46 for(int i=0; ilength; i+) 47 48 *4* 49 if() 50 51 return1 ; 52 53 154 return 0; 55 56 private: 57 int ArrayMAX_LENGTH; 58 int length; N来记录数组的个数 59 ; 60 int main() 61 62 CArray obj ; 63 obj AddMember(1); 64 obj AddMember(3); 65 obj AddMember(8); 66 obj AddMember(23); 67 coutobj isIn

5、clude(8)endl ; 68 coutobj isInclude(11)endl ; 69 obj DelMember(3); 70 obj DelMember(8); 71 coutobj isInclude(2)endl ; 72 coutobj iSInclude(1)endl; 73 return 0 ; 74 国家二级 C+机试(操作题)模拟试卷 45答案与解析 一、基本操作题 1 【正确答案】 (1)n=一 n; (2)p=!p ; (3)q=-q; 【试题解析】 本题主要考察了考生对算数运算符和逻辑运算符的掌握程度,考察的运算符包括负号运算符 “-”和取反运算符 “!”等基

6、本运算符。 解题思路 (1)程序中定义了多个变量,并做了一些基本的运算处理。 (2)由题目要求的运行结果可知,第 1个标识下和第 3个标识下是对变量 n和 q取反,求一个正数的相反数可以通过算数运算符 “-”得到,第 1个标识下和第 3个标识下应分别改为 “n=-n; ”和 “q=-q; ”,即只需要通过负号运算就可以实现。 (3)从题目要求输出的结果来分析,第 2标识下是对逻辑变量 P取反,对一个逻辑变量求反应该用取反运算符 “1”,第 2个标识下应改为 “P=!p; ”。 二、简单应用题 2 【正确答案】 1 int row; 2 int max; 3 int min; 4 int col

7、 ; 5 for(row=0 ; rown; row+) 外循环求行最大值中的最小值 6 7 for(max=arow0, col=l; coln; col+) 求每一行中的最大值 8 if(maxarowc01) 9 max=arowcol; 10 if(row=0) 求最小值 11 min=max; 12 else 13 if(maxmin) 14 min=max; 15 16 return min; 【试题解析】 (1)该程序功能是找出矩阵中所有行最大的数中的最小一个。它的解题思路,首先找出每一行的最大值,然后在这些值中进行比较,找出其中的最小值。 (2)从已给部分源程序的 main主函

8、数开始入手,核心函数 int fun(int n)中 的 n参数为矩阵中的列和行数。 解题思路 (1)两层循环,内层循环求每一行最大值,外层循环求最小值。 (2)求最大值,首先将最大值赋值为每行第一列的元素,然后依次循环比较。 (3)将求出的第一个最人值赋值为第一个最小值,然后将以后求得的最大值依次与之比较,求出所有值的最小值。 三、综合应用题 3 【正确答案】 (1)添加语句: length=0 ; (2)将 “if(Arrayi =n)”补充完整为: if(Arrayi=n)或 if(n=Arrayi) (3)将 “if()”补充完整为: if(ilength)或 if(i!=length

9、) (4)将 “if()”补充完整为: if(Arrayi=n)或 if(n=Arrayi) 【试题解析】 程序中定义了类 CArray,有两个数据成员和多个成员函数。变量为 length用来记录数组元素的个数,数组 ArrayMAX_LENGTH用来存放数组元素。成员函数 AddMember0和 DelMember()分别表示添加和删除元素,函数islnclude(int n)检查数组当中是否存在 值为 n的元素。 解题思路 (1)使 length的初始化为 0,因此添加语句: “length=0; ”。 (2)第 2个标识下是检查 n是否已经在数组当中存在,用 if语句来判断,即if(Ar

10、rayi=n)或 if(n=Arrayi)。 (3)DelMember(int n)函数删除指定的元素,由于元素在数组当中的位置未知,因此必须先查找该元素的位置,在该函数的实现过程当中通过 for循环来完成,即第一个 for循环查找 n在数组中的位置。如果 n存在于数组中,那么 if中的 break语句就会执行跳出循环,此时循环变量 i的值会小于 length,即通过判断 i的值是否小于 length值可以知道 n是否存在数组中,如果存在数组中接下来进行删除操作。即第 3个标识下应改为 if(ilength)或 if(i!=length)。 (4)islnclude(int n)成员函数用来判断 n是否存在数组当中,可用 if语句比较,即第 4个标识下应改为 “if(Arrayi=n)或 if(n=Arrayi)”。

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

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

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