版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、模拟计算机二级(C+)笔试99一、选择题 (每小题 2 分,共 70分) 下列各题 A 、B 、C 、D 四个选项中,只有一个选项是正确的。第 1 题: 数据结构作为计算机的一门学科,主要研究数据的逻辑结构、对各种数据结构 进行的运算,以及A. 数据的存储结构B. 计算方法C. 数据映象D. 逻辑存储参考答案: A答案解析:数据结构是研究数据元素及其之间的相互关系和数据运算的一门学科, 它包含 3 个方面的内容,即数据的逻辑结构、存储结构和数据的运算。第 2 题: 串的长度是A .串中不同字符的个数B. 串中不同字母的个数C. 串中所含字符的个数且字符个数大于零D. 串中所含字符的个数参考答案
2、: D答案解析: 串的长度指的是串中的字符的个数,且其字符个数可以为零。第 3 题: 在计算机中,算法是指A. 加工方法B. 解题方案的准确而完整的描述C. 排序方法D. 查询方法参考答案: B答案解析:计算机算法是指解题方案的准确而完整的描述, 它有以下几个基本特征: 可行性、 确定性、有穷性和拥有足够的情报。第 4 题: 以下不属于对象的基本特点的是A. 分类性B. 多态性C. 继承性D. 封装性参考答案: C答案解析: 对象有如下一些基本特点,即标识惟一性、分类性、多态性、封装性和模块独立 性。第 5 题: 开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做A. 软件投机B
3、. 软件危机C. 软件工程D. 软件产生参考答案: B答案解析:软件工程概念的出现源自软件危机。 所谓软件危机是泛指在计算机软件的开发和 维护过程中所遇到的一系列严重问题。 总之,可以将软件危机归结为成本、 质量、 生产率等问题。第 6 题:下面不属于软件设计原则的是A. 抽象B. 模块化C. 自底向上D. 信息隐蔽参考答案: C答案解析:软件设计遵循软件工程的基本目标和原则, 建立了适用于在软件设计中应该遵循 的基本原理和与软件设计有关的概念, 它们是抽象、 模块化、 信息隐蔽和数据独 立性。自底向上是集成测试中增量测试的一种。第 7 题: 开发大型软件时,产生困难的根本原因是A. 大系统的
4、复杂性B. 人员知识不足C. 客观世界千变万化D. 时间紧、任务重 参考答案: A 答案解析:软件的显著特点是规模庞大, 复杂度超线性增长, 在开发大型软件时, 要保证高 质量,极端复杂困难, 不仅涉及技术问题, 更重要的是必须要有严格而科学的管 理。第 8 题:下列SQL语句中,用于修改表结构的是A. ALTERB. CREATEC. UPDATED. INSERT参考答案: A答案解析:SQL语句中凡创建都用 CREATE删除都用DROP改变用ALTER再跟类型和名 字,附加子句。第 9 题: 数据库、数据库系统和数据库管理系统之间的关系是A. 数据库包括数据库系统和数据库管理系统B. 数
5、据库系统包括数据库和数据库管理系统C. 数据库管理系统包括数据库和数据库系统D. 3 者没有明显的包含关系参考答案: B答案解析:数据库系统(Database System,简称DBS包括数据库(Database,简称DB.、 数据库管理系统(Database ManagementSystem,简称DBMS:数据库管理员、硬 件和软件。第 10 题:关系模型允许定义 3 类数据约束,下列不属于数据约束的是A. 实体完整性约束B .参照完整性约束C .域完整性约束D .用户自定义的完整性约束参考答案: C答案解析:关系模型允许定义 3 类数据约束, 它们是实体完整性约束、 参照完整性约束及用 户
6、自定义的完整性约束。 其中前两种完整性约束由关系数据库系统支持, 对于用 户自定义的完整性约束, 则由关系数据库系统提供完整性约束语言, 用户利用该 语言给出约束条件,运行时由系统自动检查。第 11 题:C+语言中标点符号中表示一条预处理命令开始的是A. #B. ;C. *D. 参考答案: A答案解析:C+语言中预处理语句的开始符号是#。第 12 题:每个C+g序中都必须有且仅有一个A. 类B. 预处理命令C. 主函数D. 语句参考答案: C答案解析:每个C+程序中都要有且仅有一个主函数,该函数是程序的人口,而语句、预处 理命令和函数及类在程序中都可以有多个。第 13 题:sizeof(flo
7、at) 是A. 一个双精度型表达式B. 一个整型表达式C. 一种函数调用D. 一个不合法的表达式参考答案: B答案解析:该函数用于数据类型和变量。注意: sizeof 操作符不能用 于函数,不完全类型 或位字段。 不完全类型指具有未知存储大小的数据类型, 如未知存储大小的数组 类型、 void 类型等。第 14 题:设有 int x=11 ;,则表达式 (x+*2/3) 的值是A. 7B. 8C. 11D. 12参考答案: A答案解析: 当自加运算符做后缀表达式的时候,表达式的值不变,只有变量的值增1,所以表达式 (x+*2/3) 相当于 (11*2/3) 取整后为 7。第 15 题:设有程序
8、段int k=10; while(k=0)k=k-1; 则下面描述中正确的是A. 循环执行10次B. 无限循环C. 循环体语句一次也不执行D. 循环体语句执行一次 参考答案: C答案解析:本题中,首先将0赋给k,表达式变为0,跳出循环,没有执行循环体语句。解 答本题的关键是掌握 while 语句。第 16 题:对表达式 for( 表达式 1; 表达式 3) 可理解为A. for( 表达式 1;0;表达式 3)B. for( 表达式 1;1;表达式 3)C. for( 表达式 1;表达式 1;表达式 3)D. for( 表达式 1;表达式 3; 表达式 3)参考答案: B答案解析:本题中,若要保
9、证 for 表达式能正常进行, 首先要保证第 2个表达式的条件判断 值应该为真,从而保证循环进行。第 17 题: 以下不正确的定义浯句是A. double x5=2.0, 4.0, 6.0, 8.0, 10.0 ;B. int y5=0, 1, 3, 5, 7, 9;C. char cl 口 =' 1' 2' , ' 3' , ' 4', 5' ;D. char c2=' x10 ' ,xa ,x8 ' ;参考答案: B答案解析:在一维数组中要注意的是作为下标表达式的常量表达式的值必须是大于等于 0, 并且
10、小于自身,本题中选项 B 的下标表达式的值超过了自身。第18题:有如下说明则数值为 9 的表达式是int a10=1,2,3,4,5,6,7,8,9,10,*p=a;A. *p+9B. *(p+8)C. *p+=9D. p+8参考答案: B答案解析:在C+语言的数组兀素的引用方法,如数组兀素a0,可以用表达式。(p+0),即*p来引用,对于数组元素a1,可以用表达式。(p+1)来引用,在这里,p+1 的值就是数组兀素 a1 的地址, 对此地址使用 “间接访问运算符” :*(P+1) 就代 表存储单兀 a1 ,注意:一对圆括号不可少。同样,对于数组兀素 a2 ,则可 以用表达式。(p+2)来引用
11、,对于数组元素a9,可以用表达式*(p+9)来引用。 因此,当指针变量p指向a数组的起始地址时,若0w i v 10,则数组元素ai 可以用, (p+i) 。第 19 题: 下列函数的运行结果是 #inClude<iostream.h> int f(int a,int b) int C;if(a>b)C=1;else if(a=b)C=0;else C=-1; return(C); void main() int i=2,j=3;int p=f(ij);Cout<<p;A. -1B. 1C. 2D. 编译出错,无法运行参考答案: A答案解析:本题的函数是根据 a
12、和 b 的值来给 C 赋值 第 20 题:以下对C+语言函数的有关描述中,正确的是A. 在C+语言中调用函数时,只能把实参的值传给形参,形参的值不能传送 给实参B. C+语言函数既可以嵌套定义又可以递归调用C. 函数必须无返回值,否则不能使用函数D. 函数必须有返回值,返回值类型不定 参考答案: A 答案解析: 形参的值的改变,不能影响实参的值。选项B.函数只能嵌套调用,不能嵌套定 义;函数要是有返回值其类型必须确定;函数也可无返回值,用 void 表示。第 21 题: 关于静态数据成员的描述中正确的是A. 类的静态数据成员不是类的所有对象共享的数据B. 类的静态数据成员不能被类的成员函数调用
13、C. 类的静态数据成员不能被类的构造函数调用D. 类的静态数据成员必须进行初始化参考答案: D 答案解析:C+啖中的静态成员变量是该类中所有对象所共有的,它能够被类中的任何函数 调用,所以选项A,选项B,选项C是错误的。而类的静态数据成员是必须 要进行初始化才能使用的。第 22 题: 拷贝构造函数的参数一般是A. 某对象名B. 某对象成员名C. 某对象的引用名D. 指向对象的指针名参考答案: C 答案解析:C+语言中拷贝构造函数的参数一般是某个对象的引用名。第 23 题: 参考答案: C 答案解析: 基类的私有成员在派生类中是隐藏的, 只能在基类内邮访问, 派牛类中的成员不 能访问基类中的私有
14、成员,可以访问基类中的公有和受保护的成员。第 24 题: 下面这个程序的结果是#include<iostream.h>class Aprivate: int a;public:void seta();int geta();void A 工 seta()a=1;int A 工 geta()return a;class Bpnvate:int a;public:void sera();int geta();void B 工 seta()a = 2; int B 工 geta()return a;class C:public A,public B private:int b;public
15、:void display();void C 工 display。 int b=geta();cout<<b;void main() C c;c seta(); cdisplay();A. 1B. 2C. 随机输出1或2D. 程序有错参考答案: D答案解析:在类A中有geta()函数,在类B中也有geta()函数,类C继承了类A和类B, 这样就产生了二义性,所以程序会出错。第 25 题: 下列运算符中全都可以被友元函数重载的是A. =, +, -,B. , +, (), newC. ->, +, *, >>D. <<, >>, +,参考答案
16、: D 答案解析:C+中只能用成员函数重载的运算符是=,(),->,只能用友元函数重载的是 <<,>>。第 26 题:对于模板定义关键字class和type name说法不正确的是A. 程序中的class并不能都替换为type nameB. class和type name都可互相替换C. 程序中的type name都能替换为classD. 程序中的部分class可以替换为type name参考答案: B 答案解析:在C+程序中的type name是都可以替换为class的,但class不能都替换为 typename。第 27 题: 对于下面的程序ifstream
17、fin(c:test.tXt);if(fin)cout<<"ok" ;elsecout<<"wrong" ;对于 if 语句中的内容可以换为A. fin.fail();B. fin.bad();C. fin.good();D. fin.eof();参考答案: C 答案解析:C+语言中判断文件操作成功主要有两个函数 good()和fail(),其中if文件流 名 good() 和 if(! 文件流名 fail() ,还有 if 文件流名 )都可以表示判断文 件操作是否成功。第 28 题:以下程序的输出结果是#include<i
18、ostream.h>long fun(int n) long s;if (n= 1| n=2)s=2;else s=n-fun(n-1); return s; void main() cout<<fun(3);A. 1B. 2C. 3D. 4参考答案: A答案解析:题中fun函数进行了递归调用,第1次调用:fun (3) n=3 s=3-fun (2),第次调用时:fun (2) n=2 s=2,返回第一次调用后,s=3-2=1。第 29 题:不合法的 main 函数命令行参数表示形式是A. main(inta , char*c)B. main(int arc, char *
19、 * arv)C. main(int argc, char * argv)D. main(int argv, char * argc)参考答案: C答案解析:在C+语言里,main函数也可以有参数,例如: main(int arvc ,char*argv), argc :是指向字符串的指针数组,而选项C.是第二个形参是指向字符变量的指 针,是错误的。第 30 题:有如下程序#include<iostream h>void main() charch 25="6937","8254",*p2; int i,j,s=0;for(i=0;i<
20、2;i+)pi=chi;for(i=0;<2;i+)for (j=O;p i j >'O' ;j+=2 ) s=10*s+p i j - ' 0'cout<<s;该程序的输出结果是A. 69825B. 63825C. 6385D. 693825参考答案: C答案解析: 该题主要要搞清楚以下几点: 定义了一个指针数组 char *p 2后,程序中 第一个循环 for (i=0;i<2;i+ )pi =chi ; 的作用是使指针数组的 p0 元素(它本身是一个指针)指向了二维数组 ch 的第一行字符串,并使指针数组 的 p 1元素指向了
21、二维数组 ch 的第二行字符串,这样,就使指针数组 p 和二 维数组 ch 建立起了一种对应关系, 以后对二维数组 ch 的某个元素的引用就有两 种等价的形式:ch i j 或p i j 。对二维数组ch的初始化,使其第一行ch 0中存入了字符串"6937",第二行ch 1中的内容为字符串 "8254"。 程序中第二个循环中的循环体 s=s*10+p i j - ' 0'的功 能是这样的,每执行一次,将 s 中的值乘以 10(也即,将 s 中的数值整体向左 移动一位,并在空出来的个位上添一个0),再将当前 pi j 中的字符量转换为相应的
22、数字,然后把这个数字加到s的个位上。注意到内层循环的循环条件p i j >'0'是指p i j 中的字符只要不是字符串结束 标志0'就继续循环,语句j+=2 ;是使下标j每次增加2,也即一个隔一个 地从 pi 所指向的字符串中取出字符。 经过上述解析后, 不难看出, 该程序首 先从p 0所指向的字符串"6937"中一个隔一个地取出字符,分别是"6"和"3", 然后从p 1所指向的字符串"8254"中一个隔一个地取出字符,分别是"8"和"5", 同
23、时经过转换和相加运算后,结果 s 中的值应该是 6385。第 31 题:下面叙述不正确的是A. 基类的保护成员在派生类中仍然是保护的成员B. 基类的保护成员在公有派生类中仍然是保护的C. 基类的保护成员在私有派生类中仍然是私有的D. 对基类成员的访问必须是无二义性 参考答案: A答案解析:C+语言中如果基类的成员址保护的,它被继承后在子类中该成员叫能是保护的, 也可能不是,主要看继承的权限是 public ,还足 protected 或 private 的,第 32 题:以下程序的输出结果是#include<iostream.h>void main() char x=040;cou
24、t<<(x<<1);A. 100B. 80C. 64D. 32参考答案: C答案解析:左移 l 位,相当于乘以 2,题中的 x 的值是一个八进制数,转换为十进制数是 32,再乘以 2,x 的值为 64。第 33 题:下面程序的功能是将从键盘输入的一对数 , 由小到大排序输出 , 当输入一对相等 数时结束循环 , 在划线处应填入的选项是#include<iosweam.h>void main() int a,b,t;cin>>a>>b;while(_)if(a>b) t=a;a=b;b=t; cout<<a<&l
25、t;""<<b<<endl; cin>>a>>b;A. !a=bB. a!=bC. a=bD. a=b参考答案: B答案解析:根据本题提出的条件可知, 控制循环的表达式应该是所输入的两数互不相等, 也 即只有满足这一条件时, 两数才能进行排序输出的操作, 由此得出循环的控制表 达式应该为 a!=b第 34 题: 对以下说明语句的正确理解是 int a10=6,7,8,9,10 ;A. 将5个初值依次赋给al至a5B. 将 5 个初值依次赋给 a0 至 a4C. 将5个初值依次赋给a6至al0D. 因为数组长度与初值的个数不相同
26、,所以此语句不正确参考答案: B答案解析:本题中,表达式将 5 个初值赋给 a0 至 a4 ,后面的部分,将自动会被依次补 零处理,第 35 题:类A是类B的友元,类B是类C的友元,则下列说法正确的是A. 类B是类A的友元B. 类C是类A的友元C. 类A是类C的友元D .以上都不对参考答案: D答案解析:选项A、选项B和选项C都不正确,因为友元关系是单项的,并且没确交换 性、传递性。二、填空题 ( 每空 2 分,共 30 分)第 36 题:长度为 n 的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时, 插入一个元素所需移动元素的平均个数为 。参考答案:n/2详细解答:在线性表的任何位
27、置插入一个元素的概率相等,即概率为 P=1/(n+1) ,则插 入一个元素时所需移动元素的平均次数为 E=1/(n+1)(n-i+1) =n/2。第 37 题: 用树型结构表示实体类型及实体间联系的数据模型称为 。参考答案: 层次模型详细解答: 用树形结构表示实体类型及实体间联系的数据模型称为层次模型, 用有向图 结构表示实体类型及实体间联系的数据模型称为网状模型, 用二维表格结构表示 实体及其联系的数据模型称为关系模型。第 38 题:类是一个支持集成的抽象数据类型,而对象是类的 。参考答案: 实例详细解答: 将属性、操作相似的对象归为类,也就是说,类是具有共同属性、共同方法 的对象的集合。所
28、以,类是对象的抽象,对象则是其对应类的一个实例。第 39 题:数据流图的类型有 和事务型 参考答案:变换型详细解答: 典型的数据流类型有两种:变换型和事务型,变换型是指信息沿输入通路进入系统, 同时由外部形式变换成内部形式, 进入系统的信息通过变换中心, 经 加工处理以后再沿输出通路变换成外部形式离开软件系统;在很多软件应用中, 存在某种作业数据流。 它可以引发一个或多个处理, 这此处理能够完成液作业要 求的功能,这种数据流就叫做事务。第 40 题:当数据的物理结构 ( 存储结构、存取方式等 ) 改变时,不影响数据库的逻辑结 构,从而不致引起应用程序的变化,这是指数据的 。参考答案:物理独立性
29、 详细解答: 数据独立性是数据与程序间的互不依赖性, 即数据库中数据独立于应用程序 而不依赖于应用程序。 也就是说,数据的逻辑结构、 存储结构与存取方式的改变 不会影响应用程序。数据独立性一般分为物理独立性与逻辑独立性两级。第 41 题:在C+语言的面向对象程序设计框架中, 程序的基本组成单元。参考答案: 类详细解答:C+语言面向对象程序设计的基本组成单元是class,面向过程的程序设计的基本组成单元是函数。第 42 题:C+语言程序的注释可以出现在程序中的任何地方,一个注释以 作为开始和结束的标记。参考答案:/*/详细解答:C+语言程序的注释可以出现在程序中的任何地方,一个注释以“/* ”开
30、始,以“*/ ”为结束。第 43 题: 以下程序的输出结果是 。#include<iostream.h>void fun()static int a=0;a+=2; cout<<a<<"" void main()int cc;for(cc=1;cc<4;cc+) fun();cout<<endl;参考答案:2 4 6详细解答:本题考查静态局部变量的使用。 用关键字 static :声明的局部变量为 “静态 局部变量” ,其值在函数调用结束后不消失而保留原值, 即其占用的存储单元不 释放,在下一次该函数调用时, 该变量已有值,就是上一次函数调用结束时的值。 第 44 题: 用以下语句调用库函数 malloc ,使字符指针 st 指向具有 11 个字节的动态存储 空间,请填空。 st=(char*) ; 参考答案:ma
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年2026年奶茶连锁经营合同
- 2026年高效率压路机租赁合同
- 1000吨水性色浆技改项目可行性研究报告模板立项申批备案
- 培训教学课件
- 园长妈妈培训课件
- 2024年求职模拟大赛策划书
- 徐冬梅课件教学课件
- 午睡安全培训反思课件
- 企业安全员消防培训内容课件
- 介绍一本书教学课件
- 幼儿园绘本故事《三只小猪盖房子》教学课件全文
- JJF(京) 151-2024 药物溶出度仪温度参数校准规范
- 调解实操指南:成为金牌调解员-笔记
- GB/T 27604-2024移动应急位置服务规则
- 苏教译林版五年级上册英语第八单元Unit8《At Christmas》单元测试卷
- 《合同能源管理介绍》课件
- 电力系统继电保护教案
- 《社会调查研究与方法》课程复习题-课程ID-01304试卷号-22196
- GB/T 43316.3-2023塑料耐环境应力开裂(ESC)的测定第3部分:弯曲法
- 科研伦理与学术规范-课后作业答案
- 2021年高考语文浙江卷现代文阅读《麦子》试题及答案
评论
0/150
提交评论