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

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

1、国家二级( C+)机试模拟试卷 1及答案与解析 一、选择题 1 算法的时间复杂度是指 ( )。 ( A)算法的长度 ( B)执行算法所需要的时间 ( C)算法中的指令条数 ( D)算法执行过程中所需要的基本运算次数 2 以下数据结构中,属于非线性数据结构的是 ( )。 ( A)栈 ( B)线性表 ( C)队列 ( D)二叉树 3 数据结构中,与所使用的计算机无关的是数据的 ( )。 ( A)存储结构 ( B)物理结构 ( C)逻辑结构 ( D)线性结构 4 内聚性是对模块功能强度 的衡量,下列选项中,内聚性较弱的是 ( )。 ( A)顺序内聚 ( B)偶然内聚 ( C)时间内聚 ( D)逻辑内

2、聚 5 在关系中凡能惟一标识元组的最小属性集称为该表的键或码。二维表中可能有若干个键,它们称为该表的 ( )。 ( A)连接码 ( B)关系码 ( C)外码 ( D)候选码 6 检查软件产品是否符合需求定义的过程称为 ( )。 ( A)确认测试 ( B)需求测试 ( C)验证测试 ( D)路径测试 7 数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是 ( )。 ( A)控制流 ( B)加: 12 ( C)存储文件 ( D)源和潭 8 待排序的关键码序列为 (15, 20, 9, 30, 67, 65, 45, 90),要按关键

3、码值递增的顺序排序,采取简单选择排序法,第一趟排序后关键码 15被放到第 ( )个位置。 ( A) 2 ( B) 3 ( C) 4 ( D) 5 9 对关系 S和关系 R进行集合运算,结果中既包含关系 S中的所有元组也包含关系 R中的所有元组,这样的集合运算称为 ( )。 ( A)并运算 ( B)交 运算 ( C)差运算 ( D)除运算 10 下列选项中,不属于数据管理员 (DBA)职责的是 ( )。 ( A)数据库维护 ( B)数据库设计 ( C)改善系统性能,提高系统效率 ( D)数据类型转换 11 假定 MyClass为一个类,则该类的拷贝构造函数的声明语句为 ( )。 ( A) MyC

4、lass(MyClass x); ( B) MyClass(MyClass&x); ( C) MyClass(&x); ( D) MyClass(x); 12 下列函数的功能是判断字符串 str是否对称,对称 则返回 true,否则返回 false,则横线处应填上 ( )。 Bool fun(char*str) int i=0,j=0; while(strj)j+; for(j一; i= ( B) 11 ( C) & ( D) 13 有以下程序,输出结果 ( )。 #include using namespace std; class ComDlex public: Complex(doubl

5、e r=0, double i=0): re(r), im(i) double realoconstreturn re; ) double imagOconstreturn im; ) Complex operator+(Complex c)constreturn Complex(re+c re, im+c im); ) private: double re, im; ; int main() Complex a=Complex(1, 1)+Complex(5); cout+ ( A) 6+i ( B) 2i+5 ( C) 6+1i ( D) 1i+5 14 有以下程序段: #include

6、#define MAX(x, Y)(x)(y)?(x): (y) void main() int i,j, k; i=10: j=15; k=MAX(i,j)*10; cout int fun(int n); void main() couta; result=fun(a); cout void main() int x: int&y=x; 11变量引用 y=99; cout void fun(int a, int b) int temp; temp=a: a=b: b=temp; void main() int m, 11; m=1; n=2: fun(m, n); cout void ma

7、in() static int b3=1, 2, 3, 4, 5,6; b02=12,b2=18 : cout using namespace std; void fun(int&r1 r*=2: int main() int n=50; fun(n); cout class A1 public: void showl() cout #include using namespace std; class point private: double x: double y; public: point(double a,double b) X=a: y=b; friend double dist

8、ances(point a,point b); ; double distances(point a,point b) return sqrt(a Xb x)*(a Xb x)+(a Yb y)*(a Yb y); int main() point p1(1, 2); point p2(5, 2); cout using namespace std; class R public: R(int r1, int r2) R1=r1; R2=r2; void print(); void print()const; private: int R1, R2; ; void R: print() cOu

9、t int main() *error* COUI #include #include using namespace std; void WriteFile(char*str) ofstream out1; outl open(”modi2 tXt“,iosbase: binaryiosbase: app); for(inti=0; stri!: 0; i+) outl put(stri); out 1 close(); void fun(int x1 void ClearFile() Ofstream outl; outl open(”modi2 txt”); outl close();

10、int main() ClearFile(); fun(13); return 0; 四、综合应用题 43 使用 VC6打开考生文件夹下的源程序文件 modi3 cpp,其中定义了用于表示坐标的类 TestClass!,但类 estClass的定义并不完整,按要求完成下列操作,将类的定义补充完整。 (1)声明 TestClass2类为 TestClassl类的友元类,请在注释 *1*后添加适当的语句。 (2)完成类的构造函数,分别对成员变量赋值,请在注释 *2*后添加适当的语句。 (3)完成类的构造函数,分别对成员变量赋值,请在注释 *3*后添加适当的语句。 (4)完成计算平面上两点之间的距离

11、函数 Distance,计算的方法如下: X坐标之芹的平方与 Y坐标之差的平方之和的开方。 请在注释 *4*后添加适当的语句。 注意:仅在函数指定位置添加语句,请勿改动主函数 main与其他函数中的任何内容。 #include #include using namespace std; class TestClass 1 *1* public: *2* X=a; Y=b; *3* X=a: Y=0: void print() touty)?(x): (y)是当 x大于 y时取 x,否则取 y。当 i=10, j=15时, “MAX(i.j)”的值为 15,所以 “k=MAX(i.j)*10;

12、”答案为: 150。 15 【正确答案】 B 【试题解析】 enum;其中:关键词 “enum”表示定义的是枚举类型,枚举类型名由标识符组成,而枚举元素表由枚举元素或枚举常量组成。本题中的枚举类型中的数据值 Wednesday为 2,而 Friday的值赋值为2,所以判断 Wednesday等于 Friday的表达式值为真,即 true。 16 【正确答案】 D 【试题解析】 程序中首先定义字符数组 a,然后在 while循环中统计字符 a和 b的个数。其中 j记录 a的个数, k记录 b的个数。第一个 if语句是当第 i个字符为a时, j加 1;第二个 if语句是当第 i个字符为 b时, k

13、加 1。 17 【正确答案】 C 【试题解析】 由程序 main主函数入手,调用 fun函数获得返回值 result输出。题目中假定 a=3,即调用语句 fun(a)中的输入参数为 a,进入 fun函数,在 for循环中当 i小于等于 n,即输入参数 3时,循环 3次执行 “p*=i; result+=p; ”语句。即执行三次 p=p*i, result=result+p, result的结果为 9。返回的 fun函数结果为9,即 “cout=0; i-) 计算二进制 ifx2)stri=1; 求余,如果余不为零字符串 str第 i位 为 1 else stri=0; 否则为 0 x=1: i

14、f(!x)break; str31= 0; 串加尾符 cout 【试题解析】 (1)该程序功能是实现十进制转换成二进制数。十进制到二进制的转换是对十进制的数字进行 2的取余运算,余数不为零则取 1,否则为 0,然后对余数进行循环取余运算,直到余数为 0。 (2)从已给部分源程序的 main主函数开始入手,核心函数 fun (intx)中的 x参数为输入的十进制数。 解题 思路 (1)定义存放二进制的字符串 str。 (2)然后利用 for循环对十进制数字 x进行取余运算,直到余数为 0结束。 (3)如果取余结果为 0,则二进制字符串这个字符位的值为 0,否则为 1。 (4)最后调用 Write

15、File将运算结果存入文件。 四、综合应用题 43 【正确答案】 (1)添加语句: friend class TestClass2; (2)添加语句: TestClassl(float a,floatb) (3)添加语句: TestClassl(float a) (4)添加语句: result=sqrt(p X-q X)*(p Xq X)+(p Y-q Y)*(p Y-q Y); 【试题解析】 在 VC环境下打开程序,根据题干给出的几条功能要求,对程序中给出注释下的内容逐个补全或修改。从已给定源程序的 main主函数开始入手,可以看出程序通过调用类 TestClass实现各种输出操作。 解题思

16、路 (1)题目 1要求 “声明 TestClass2类为 TestClass1类的友元类 ”。 C+中声明友元类的一般形式为 friend类名;,所以这里补全 “friend class TestClass2; ”。 (2)题目 2要求 “完成类的构造函数,分别对成员变量赋值 ”。程序中 TestClassl类的构造函数缺少定义,构造函数首部的一般格式为:构造函数名 (类型 1形参 1,类型 2形参 2, ) ,所以在第 2个标识下补全 “TestClass1(foat a,float b)”。 (3)题目 3要求 “完成类的构造函数,分别对成员变量赋值 ”。同理,第三个标识下补全 “TestClassl(float a)”。 (4)题目 4要求 “完成计算平面上两点之间的距离函数 Distance”。题目中已经给出了计算方法, x坐标之差的平方与 Y坐标 之差的平方之和的开方。利用 C+中的开方函数 sqrt补全函数中的两点之间的距离。 即 “result=sqrt(p X q x)*(p X-q X)+(p Y-q Y)*(p Y-q Y); ”。

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

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

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