版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、模拟二级C+语言程序设计模拟 97单项选择题第 1 题: 下列描述中正确的是 ( ) 。A. 软件工程只是解决软件项目的管理问题B. 软件工程主要解决软件产品的生产率问题C. 软件工程的主要思想是强调在软件开发过程中需要应用工程化原则D. 软件工程只是解决软件开发中的技术问题参考答案: C第 2 题:下列程序在构造函数和析构函数中申请和释放类的数据成员 int*a ,申请时使 用形参b初始化a,横线处应填写的语句是()。class Apublic :A(int b) ;A();private :int*a ;A: A(int b) A: A()delete a ;A. a=new int(b)
2、B. b=new int(a)C. a=int(b)D. b=int(a)参考答案: A第 3 题: 软件设计中划分模块的一个准则是 ()A. 低内聚低耦合B. 高内聚低耦合C. 低内聚高耦合D. 高内聚高耦合参考答案: B第 4 题:对于长度为 n 的线性表,在最坏情况下,下列各排序法所对应的比较次数中正 确的是 。A. 冒泡排序为 n/2B. 冒泡排序为 nC. 快速排序为nD. 快速排序为n(n-1)/2参考答案: D本题主要考查对排序算法的理解。 冒泡排序法首先将第一个记录的关键字与第二 个记录的关键字进行比较, 若逆序则交换,然后比较第二个与第三个, 以此类推, 直至第 n-1 个与
3、第 n 个记录的关键字进行比较。 第一趟冒泡排序使最大的关键字 元素放到最后。以此类推,进行第 2n次冒泡排序。如果在排序过程中不存在 逆序,则排序结束。在最坏情况下,冒泡排序中,若初始序列为“逆序”序列, 则需要比较 n(n-1)/2 次。快速排序是对冒泡排序的一种改进。 它的基本思想是: 通过一趟排序将待排记录分割成独立的两部分, 其中一部分记录的关键字比另一 部分记录的关键字小, 然后分别对这两部分记录继续进行排序, 最终达到整个记 录有序。 对于快速排序, 当初始记录序列按关键字有序或基本有序时, 快速排序 退化为冒泡排序,最坏情况下比较次数为 n(n-1)/2 。第 5 题:数据库系
4、统的核心是 ( )。A. 数据模型B. 软件开发C. 数据库设计D .数据库管理系统参考答案: D第 6 题: 结构化程序设计的 3 种结构是 () 。A. 顺序序结构,分支结构,跳转结构B. 顺序结构,选择结构,循环结构C. 分支结构,选择结构,循环结构D. 分支结构,跳转结构,循环结构参考答案: B第 7 题:有如下程序:#include iomanip # include iostrema uslng namespace std;int main()(cout setfill( '*') setw(6) 123 56;return 0; 运行时的输出结果是 。A. *12
5、3*456B. *123456*C. *123456D. 123456 参考答案: Csetfill() 函数表示用字符来填充空格。 setw() 函数的作用是设置当前域输出宽度,默认为adjustfield 为right,可以通过std:left 来变更为left或internal 。 第 8 题:下列关于线性链表的叙述中,正确的是 。A. 各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致B. 各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续C. 进行插入与删除时,不需要移动表中的元素D. 以上三种说法都不对参考答案: C线性链表的存储空间可以不连续, 其
6、存储顺序和逻辑顺序也不一定一致。进行插入和删除时,不需要移动表中元素。第 9 题: 下面对对象概念描述错误的是 。A. 任何对象都必须有继承性B. 对象是属性和方法的封装体C .对象间的通讯靠消息传递D. 操作是对象的动态性属性参考答案: A由题意可知,对对象概念描述错误的是选项A。第 10 题:有如下程序:#include iostream using namespace std ; classApublic :A()cout “A”; class Bpublic :B()cout “B”; ) ; class C :public AB b:public :C()cout “C”; );in
7、t main()C obj ;return 0 ; 执行后的输出结果是 () 。A. ABCB. BACC. ACBD. CBA 参考答案: A第 11 题:若要重载 +、 =、 、=和口运算符,则必须作为类成员重载的运算符是 ( ) 。A. +和-B. =和C. =和D. =和 参考答案: D第 12 题: 有如下模板声明:template typename T1,typename T2 class A; 下列声明中,与上述声明不等价的是 。A. template class T1,class T2class A;B. template class T1,typename T2class A
8、;C. template typename T1,class T2class A;D. template typename T1,T2 class A; 参考答案: D模板形参有 typename 参数名 、class 参数名 、 类型修饰 参 数名 3 种形式,即 typename 与 class 通用。第 13 题:下面关于运算符重载的描述错误的是 ( ) 。A .运算符重载不能改变操作数的个数、运算符的优先级、运算符的结合性和 运算符的语法结构B .不是所有的运算符都可以进行重载C .运算符函数的调用必须使用关键字 operatorD.在C+语言中不可通过运算符重载创造出新的运算符参考答
9、案: C第 14 题:将 E-R 图转换到关系模式时,实体与联系都可以表示成 A. 属性B. 关系C. 键D. 域参考答案: B关系数据库逻辑设计的主要工作是将 E-R图转换成指定RDBM中的关系模式。从 E-R图到关系模式的转换是比较直接的,实体与联系都可以表示成关系,E-R图中属性也可以转换成关系的属性。实体集也可以转换成关系。第 15 题:Sample是一个类,执行下面语句后,调用 Sample类的构造函数的次数是Sample a2,*p=new Sample;A. 0B. 1C. 2D. 3参考答案: D构造函数在对象被创建时由系统自动调用,本题共创建 3 个对象。 第 16 题:下列
10、描述中正确的是 ()。A. 程序就是软件B. 软件开发不受计算机系统的限制C. 软件既是逻辑实体,又是物理实体D. 软件是程序、数据与相关文档的集合参考答案: D第 17 题: 下面对静态数据成员的描述中,正确的是 ()。A. 静态数据成员是类的所有对象共享的数据B. 类的每个对象都有自己的静态数据成员C. 类的不I司对象有不同的静态数据成员值D. 静态数据成员不能通过类的对象调用 参考答案: A第 18 题:结构化分析方法是面向 的自顶向下、逐步求精进行需求分析的方法。A. 对象B. 数据结构C. 数据流D. 目标参考答案: C结构化分析方法是面向数据流进行需求分析的方法,采用自顶向下、逐层
11、分解, 建立系统的处理流程, 以数据流图和数据字典为主要工具, 建立系统的逻辑模型 第 19 题:执行如下程序将输出 ( ) :#include iostream using namespace std ; class Basepublic :Base()cout “BB”; fun() ;)void fun()cout “ Bfun ”; ;class Derived :public Basepublic :Derived()cout “DD”; )void fun()cout “ Dfun”; );int main()Derived d; retum 0 ; )A. DDB. BBDfun
12、DDDfunC. BBBfunDDD. DDBBBfun 参考答案: C第 20 题:( ) 使一个函数可以定义成对许多不同数据类型完成同一个任务。A. 函数模板B. 重载函数C. 递归函数D. 模板函数参考答案: A第 21 题: 有下列程序:#include stdio h void main() int a=5 , b=1,t ;t=(a << 2) | b; printf(" %dn", t); 程序运行后的输出结果是 ( ) 。A. 21B. 11C. 6D. 1 参考答案: A第 22 题:若已定义了类 Vehicle ,则下列派生类定义中,错误的是
13、 ( )A. class Car :Vehicle( *类体略 *);B. class Car :public Car( *类体略 *) ;C. class Car :public Vehicle( *类体略 *);D. class Car :virtual public Vehicle(*类体略 *) ;参考答案: B第 23 题:类 MyClass 的定义如下:class MyClasspublic:MyClass()value=0;SetVariable(int i)value=i;private:int value;则对下列语句序列正确的描述是 。A. 语句p=&my;是把对象
14、my赋值给指针变量pB. 语句MyClass*p,my;会调用两次类MyClass的构造函数C. 对语句*P.SetVariable(5)的调用是正确的D. 语句 p-SetVariable(5)与语句 my.SetVariable(5)等价 参考答案: D选项A,语句p=&my;是把对象my的地址值赋值给指针变量 P;选项B,语句 MyClass*p,my; 中由于 p 只是一个指向对象的指针,因此定义指针 p 不调用构造 函数,所以此语句只调用一次构造函数:对成员函数的引用可以通过两种形式: 指针-成员函数(形参表),或者对象名,成语函数名(形参表),故选项C错误, 选项 D 正确
15、。第 24 题:定义无符号整数为 Uint ,下面可以作为类 Uint 实例化值的是 ()。A. -369B. 369C. 0.369D. 整数集合1 , 2, 3, 4, 5参考答案: B第 25 题: 下列叙述中,不属于软件需求规格说明书的作用的是 ()A. 便于用户,开发人员进行理解和交流B. 反映出用户问题的结构,可以作为软件开发工作的基础和依据C. 作为确认测试和验收的依据D. 便于开发人员进行需求分析参考答案: D第 26 题: 以下程序的输出结果是 () 。#include iostream h main()int b33=0 , 1, 2,0, l , 2,0, 1, 2, i
16、, j, t=1; for( 、i=0 ;i 3 ;i+) for(j=i ;j =iIj+) t=t+bibjj ;cout t ;A. 2B. 3C. 4D. 5 参考答案: C第 27 题: 数据库的故障恢复一般是由 ()来执行恢复。A. 电脑用户B .数据库恢复机制C. 数据库管理员D. 系统普通用户 参考答案: C第 28 题: 针对数组定义 int data10; ,下列表述中错误的是 。A. 用*data可访问到数组的首元素B. 用data9可访问到数组的末元素C. 用data10访问数组元素会超出数组边界D. data 共有 10个元素,其首元素是 data1 参考答案: D数
17、组元素的下标是从 0到 数组长度 -1 ,所以数组 data 的首元素是 data0 , 尾元素是 data9 。其他选项的描述都是正确的。第 29 题:若MyTem是一个具有虚拟类型参数的类模板,且有如下语句序列:MyTemp double p2;MyTemp long p32 ;MyTem的实例的个数)的转换编译系统在处理上面的语句序列时,所生成的模板 是( ) 。A. 1B. 2C. 3D. 4 参考答案: B第 30 题:在 Internet 中,域名服务器的主要功能是实现 (A. IP 地址到域名 (主机名字 )B. 域名到 IP 地址C. 主机IP地址和路由器IP地址之间D. 路由
18、器IP地址之间 参考答案: B第 31 题: 下列二叉树描述中,正确的是 ( ) 。A. 任何一棵二叉树必须有一个度为2的结点B. 二叉树的度可以小于 2C. 非空二叉树有0个或1个根结点D. 至少有2个根结点 参考答案: B第 32 题: 下面程序的运行结果是 () 。#include iostream h class base protected :int a ;public : base()cout "0" ;class basel :virtual base public :basel()cout "1" ; ;class base2 :virt
19、ual base public :base2()cout "2" ; ;class derived :public basel ,public base2 public :derived()cout "3" ;void main()derived obj ;cout end1 ;A. 0123B. 3120C. 312D. 3012参考答案: A第 33 题:下列叙述中错误的是 。A. 派生类可以使用 private 派生B. 对基类成员的访问必须是无二义性的C. 基类成员的访问能力在派生类中维持不变D. 赋值兼容规则也适用于多继承的组合参考答案: C在
20、建立派生类时,并不是简单地把基类的私有成员直接作为派生类的私有成员, 把基类的公用成员直接作为派生类的公用成员。 涉及如何确定基类的成员在派生 类中的访问属性问题, 不仅要考虑对类成员所声明的访问属性, 还要考虑派生类 所声明的对基类的继承方式 根据这两个因素共同决定基类成员在派生类的访问 属性。所以本题选择选项 C。第 34 题:以下程序的输出结果是 () 。#include iostream using namespace std ;void fun(char*q)+q:cout *q end1 :main()static char*s="HI","HELLO
21、","TEST" ;char*p ;p=s;fun(p) :system( “PAUS”E ) :return 0 :A. 为空B. HIC. HELLOD. TEST参考答案: C第 35 题:有下列程序:#include stdio.h int fun(int x,my y) if(x=y)return(x);else return(x+y)/2);void main()int a=4,b=5,c=6;printf("%dn",fun(2*a,fun(b,c);程序运行后的输出结果是 。A. 3B. 6C. 8D. 12参考答案: B在程序
22、中子函数 fun(int x,int y) 的功能是如果 x 的值等于 y 的值,则返回 x 的值,否则返回这两个数的算术平均值,在主函数中首先计算fun(5 ,6) ,其值等于 5,然后再计算 fun(8 ,5) ,其值等于 6。所以正确答案为选项 B。第 36 题: 下列关于函数模板的描述中,正确的是 ( ) 。A. 函数模板是一个实例函数B. 使用函数模板定义的函数没有返回类型C. 函数模板的类型参数与函数的参数相同D. 通过使用不同的类型参数,可以从函数模板得到不同的实例函数 参考答案: D第 37 题: 有下列程序:#include stdio h intun(int(*s)4 ,
23、int n , int k)int m , i ;m=s0Ek ;for(i=1;i n ;i+) if(sikm)m=sik ;returnm;void main() int a44=1,2,3,4 ,11 ,12,13,14 ,21 ,22,23,24 ,31 ,32,33,34 ;printf("%dn", fun(a , 4, 0); 程序的运行结果是 ( )。A. 4B. 34C. 31D. 32 参考答案: C第 38 题: 下列关于类和对象的叙述中,错误的是 ( )。A. 个类只能有一个对象B. 对象是类的具体实例C. 类是对某一类对象的抽象D. 类和对象的关
24、系是一种数据类型与变量的关系 参考答案: A第 39 题: 一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工 作人员与实体计算机之间的联系是 ()。A. 一对一B. 一对多C. 多对多D. 多对一参考答案: C第 40 题:若变量已正确定义并赋值,以下符合C+语言语法的表达式是A. a:=b+1B. a=b=c+2C. int 18.5%3D. a=a+7=c+b参考答案: B本题考查C+语言的正确赋值方法。a=b=c+2实际上相当于a=(b=c+2),进而可 分解为两个表达式b=c+2和a=b。选项A中包含一个不合法的运算符":二";选项C应改为(in
25、t)18.5%3 ;选项D可理解为两个表达式 a+7=c+b和a=a+7,其中第一 个是错的,因为C+语言规定赋值号的左边只能是单个变量,不能是表达式或常 量。基本操作题第 41 题:使用VC+6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正程序中的错误,使程序输出的结果为1003732注意:错误的语句在 /*error* 的下面,修改该语句即可。 试题程序:#include iostream.h/*error*void main/*error*int m=0142;/*error*int n=0X27;int q=32;cout m endl;cout n endl;c
26、out q endl;return;参考答案:(1) “void main() ”。(2) “ int m=0144; ”。(3) “ int n=0X25;或“ int n=0x25; ”。本题主要考查了主函数定义及不同进制之间的转换,包括十进制到八进制, 十进制到十六进制。主函数定义的定义形式为“ maln() ”,函数名之后必须是一 对括号,因此第 1 处应改为“ void main() ”。 cout 输出默认是以十进制方式输 出的,根据题目要求输出的结果可发现变量的初值不正确, 十进制的 100 对应八 进制的 144,十进制的 37 对应十六进制的 25,因此 2 和 3 应分别改
27、成“ int m=0144;”,“ intn=OX25; ”或“ int n=0x25; ”。 简单应用题 第 42 题:使用VC+6.0打开考生文件夹下的源程序文件 2.cpp。阅读下列函数说明和代 码,完成空出部分程序。函数 fun(int n) 的功能是实现对一个整数的加密,具 体的加密方法是一个 4 位长的整数,用每位数字加上 3然后除以 9的余数代替 该数字,再将第 1 位和第 4 位交换,第 2 位和第 3 位交换,然后返回得到的密 码。程序输出结果为18642075注意:不能修改其他部分的代码。试题程序:#include iostrcam.h #include cmath int
28、 fun(int n)int main()int i=1357;cout fun(i) endl;i=2468;cout fun(i) endl;return 0; 参考答案:int i,a4,t;a0=n%10; / 取整型 n 的第 1 位数字a1=n%100/10;/ 取整型 n 的第 2 位数字 a2=n%1000/100;/ 取整型 n 的第 3 位数字a3=n/1000; / 取整型 n 的第 4 位数字 for(i=0;i =3;i+) / 每位数字 加 3,取余ai+=3;ai%=9;t=a0; / 根据加密算法交换 a0=a3;a3=t;t=a1;a1=a2;a2=t;ret
29、urn a3*1000+a2*100+a1*10+a0; /重组,返回加密数字本题首先取得要加密整数的每一位数字,并存入数组。根据加密算法,利用 循环实现每位数字加 3,再除以 9 取余。根据加密算法进行数字交换, 最后重组, 返回密码。综合应用题 第 43 题: 使用VC6打开考生文件夹下的源程序文件 modi3. cpp,其中定义了用于表示日 期的类Date,但类Date的定义并不完整。请按要求完成下列操作,将类Date的定义补充完成。定义私有数据成员year、mo nth和day,分别用于表示年、月和日,它们都 是 int 型的数据。请在注释 *1*后添加适当的语句。(2) 完成默认构造
30、函数 Date 的定义,使 Date 对象的默认值为: year=l ,month=l, day=l ,请在注释 *2*后添加适当的语句。(3) 完成重载构造函数 Date(int y,int m , int d) 的定义,把数据成员 year、 mo nth和day分别初始化为参数丫、m和d的值,请在注释 *3* 后添加适当的语句。(4) 完成成员函数 print() 的类外定义,使其以“年一月一日”的格式将 Date 对象的值输出到屏幕上,例如:2008-8-8 。请在注释 *4* 之后添加适当的语句。 注意:仅在函数指定位置添加语句,请勿改动主函数 main 与其他函数中的任何 内容。#include iostream . h class Datepublic :*Date(int y , int m , int d)/ *k*void print()const private : datamember *1*;void Date : print0 const *int main()Date national_day(1 949 ,1 0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学语文跨学科主题教学设计与实践
- 电阻器专用合金粉制造工岗前安全强化考核试卷含答案
- 高中信息技术必修一《2.2 做出判断的分支》教学设计
- 印染烧毛工岗前工作规范考核试卷含答案
- 晶体制备工岗前师带徒考核试卷含答案
- 高三语文辨析语病教学设计
- 小学三年级语文《海底两万里·小丑鱼的奇妙世界》整本书阅读教学设计
- 高中化学必修第一册 2.2.2 离子反应 教学设计
- 镗工10S考核试卷含答案
- 盐斤分装设备操作工岗前技能理论考核试卷含答案
- 中国临床肿瘤学会(CSCO)胃癌诊疗指南(2026版)
- T/CAR 24-2025数据中心泵驱两相冷板式液冷系统技术规范
- 4.2《让家更美好》 课件 2026-2027学年道德与法治七年级上册 统编版
- 分析化学-专 期末考试试题及参考答案
- 2026年硕士研究生《306临床医学综合能力(西医)》试题
- 2026年9月广东深圳市光明区事业单位选聘博士13人笔试备考试题及答案详解
- 石油化工仪表工程监理作业手册
- 2026年秋人教版新八年级英语上册 Unit 1(单元测试卷)
- 新教材语文五上20分钟微课创新教学设计详案:示儿
- (正式版)T∕CSNAME 178-2025 甲醇燃料动力大型油船 燃料系统联合调试试验指南
- (2025年)亳州市辅警协警笔试笔试真题(附答案)
评论
0/150
提交评论