2012年C++第四套笔试模拟试题及答案分析.doc_第1页
2012年C++第四套笔试模拟试题及答案分析.doc_第2页
2012年C++第四套笔试模拟试题及答案分析.doc_第3页
2012年C++第四套笔试模拟试题及答案分析.doc_第4页
2012年C++第四套笔试模拟试题及答案分析.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2012年计算机二级C+第四套笔试模拟试题及答案分析来源: :91UP快学堂 时间:2012/7/31 一、选择题在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。(1)下列叙述中正确的是A)线性表是线性结构B)栈与队列是非线性结构C)线性链表是非线性结构D)二叉树是线性结构(2)非空的循环单链表head的尾结点(由p所指向),满足A)p-next=NULLB)p=NULLC)p-next=headD)p=head(3)已知数据表A中每个元素距其最终位置不远,为节省时间,应采用的算法是A)堆排序B)直接插入排序C)快速排序D)直接选择排序(4)对建立良好的程序设计风格,下面描述正确的是A)程序应简单、清晰、可读性好B)符号名的命名只要符合语法C)充分考虑程序的执行效率D)程序的注释可有可无(5)下列不属于结构化分析的常用工具的是A)数据流图B)数据字典C)判定树D)PAD图(6)在软件生产过程中,需求信息的给出是A)程序员B)项目管理者C)软件分析设计人员D)软件用户(7)下列工具中为需求分析常用工具的是)PAD)PFD)N-S)DFD(8)NULL是指A)0B)空格C)未知的值或无任何值D)空字符串(9)数据库的故障恢复一般是由A)数据流图完成的B)数据字典完成的C)DBA完成的D)PAD图完成的(10)下列说法中,不属于数据模型所描述的内容的是A)数据结构B)数据操作C)数据查询D)数据约束(11)面向对象程序设计思想的主要特征中不包括A)继承性B)功能分解,逐步求精C)封装性和信息隐藏D)多态性(12)C+语言是以哪种语言为基础逐渐发展演变而成的一种程序设计语言A)ASPB)CC)VBD)Java(13)设变量a是int型,f是double型,i是float型,则表达式10+a+ i * f值的数据类型A)intB)floatC)doubleD)不确定(14)能正确表示逻辑关系:a10或a0的C+语言表达式是A)a=10 or a=0|a=10 & a=10a=0(15)以下程序的输出结果是#includevoid main() int i,j,x=0;for(i=0;i2;i+) x+;for(j=0;j3;j+) if(j%2)continue;x+;x+;cout x= a b;k=a;if(ak=a%b;elsek=b%a;cout k endl;A)5B)3C)2D)0(17)有以下程序#include#includevoid main() char *p=abcde0fghjik0 ;cout strlen(p);程序运行后的输出结果是A)12B)15C)6D)5(18)若有说明语句char a=It is mine;char *p=It is mine;则以下不正确的叙述是A)a+1表示的是字符t的地址B)p指向另外的字符串时,字符串的长度不受限制C)p变量中存放的地址值可以改变D)a中只能存放10个字符(19)以下程序的运行结果是#includevoid sub(int x,int y,int *z) *z=y-x;void main() int a,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);cout a , b, c endl;A)5,2,3B)-5,-12,-7C)-5,-12,-17D)5,-2,-7(20)下列程序是用来判断数组中特定元素的位置所在,则输出结果为#include#includeint fun(int *s, int t, int *k) int i;*k=0;for(i=0;iif(s*kreturn s*k;void main() int a10= 876,675,896,101,301,401,980,431,451,777,k;fun(a, 10, &k);cout k , B);cout n;A)0B)1C)2D)3(22)关于this指针的说明不正确的是A)不能在程序中修改this指针B)this指针可以给其他指针赋值,但不能修改this指针C)静态成员函数中没有this指针D)this指针可以被赋值(23)下面程序的结果是#includeclass A public:A()cout construtA endl;virtual A()cout destructA endl;class B : public A ;class C : public A ;class D : public B,public C ;void main()D d;A)constructAdestructAB)constructAconstructAdestructAdestructAC)constructAconstructAconstructAdestructAdestructAdestructAD)constructAconstructAconstructAconstructAdestructAdestructAdestructAdestructA(24)关于虚函数下面说的正确的是A)若在重定义虚函数时使用了virtual,则该重定义函数还是虚函数B)虚函数不能声明为友元C)子类必须重定义父类的虚函数D)虚函数不能是static的(25)如果表达式+x/y中,+是作为友元函数重载的,/是作为成员函数重载的,则该表达式还可为A)(operator+(x).operator/(y)B)(operator+(0).operator/(y)C)operator/(operator+(x,0),y)D)operator/(operator+(0),y)(26)要想使23.78965421的输出为23.7887应用的语句是A)cout 23.78965421;B)cout fixed 23.78965421;C)cout 23.78965421 -0.001;D)cout fixed 23.78965421 - 0.001;(27)有以下语句,则对a数组元素的引用不正确的是(0i9)int a10=0,1,2,3,4,5,6,7,8,9,*p=a;A)ap-aB)*(&ai)C)piD)*(*(a+i)(28)有以下程序#includefloat fun(int x,int y) return(x+y); void main() int a=2,b=5,c=8;cout fun(int)fun(a+c,b),a-c);程序运行后的输出结果是A)编译出错B)9C)21D)9.0(29)下列程序的运行结果是#includeclass Location private:int X, Y;public:void init(int=0, int=0);void valueX( int val )X=val;int valueX() return X;void valueY(int val)Y=val;int valueY( )return Y;void Location:init(int initX, int initY) X=initX;Y=initY;void main( ) Location A,B;A.init( );A.valueX (5);cout a.valuex()endla.valuey()B.init(6,2);/a.valuex()endla.valuey()B.valueY (4);coutb.valuex()endlb.valuey()A)5/b.valuex()endlb.valuey()064B)0064C)5062D)0062(30)在C+语言中,封装是借助于什么达到的?A)结构B)类C)数组D)函数(31)在位运算中,操作数每左移一位,其结果相当于A)操作数乘以2B)操作数除以2C)操作数除以4D)操作数乘以4(32)有如下程序#include#define N 2#define M N+1#define NUM 2*M+1void main() int i;for(i=1;i=NUM;i+)cout i;该程序中的for循环执行的次数是A)5B)6C)7D)8(33)下列程序的输出结果是#includeint b=2;int func(int *a) b += *a; return(b);void main() int a=2, res=2;res += func(&a);cout 2)return(fib(n-1)+fib(n-2);else return (2);void main() cout b)max=a;else max=b;(8)以下程序的输出结果是 8 。#includevoid main() char s=defghijk;s4=0;cout s endl;(9)下面程序的功能是将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变,请填空。#include#includevoid main() char a=clanguage,t;int i, j, k;k=strlen(a);for(i=0; i=k-2; i+=2)for(j=i+2; j=k; 9 )if ( 10 ) t=ai; ai=aj; aj=t; cout a;cout next=head。(3)B解析: 当数据表A中每个元素距其最终位置不远,说明数据表A按关键字值基本有序,在待排序序列基本有序的情况下,采用插入排序所用时间最少,故答案为选项B)。(4)A解析: 程序设计应该简单易懂,语句构造应该简单直接,不应该为提高效率而把语句复杂化。(5)A解析: 结构化分析的常用工具有数据流图、数据字典、判定树和判定表。而PAD图是常见的过程设计工具中的图形设计。(6)D解析: 软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。(7)D解析: 需求分析中的常用工具有PAD、PFD及N-S等,而DFD(数据流图)为结构化分析工具。(8)C解析: 此题属于记忆性的题目,NULL是指未知的值或无任何值。(9)C解析: 一旦数据库中的数据遭受破坏,需要及时进行恢复,RDBMS一般都提供此种功能,并由DBA负责执行故障恢复功能。(10)C解析: 数据模型所描述的内容有3个部分,它们是数据结构、数据操作和数据约束。其中,数据模型中的数据结构主要描述数据的类型、内容、性质,以及数据库的联系等;数据操作主要是描述在相应数据结构上的操作类型与操作方式。(11)B解析: 面向对象程序设计的主要特征是继承性,封装性和信息隐藏,多态性。(12)B解析: C+语言是对C语言进行了扩充,继承了它的语法,并增加了面向对象的设计方法。(13)C解析: 根据混合运算规则,如果有一个数据是double型,则其他数据类型先转化为double型,运算的结果最终也是double型。为保证精度的不丢失,表达式的数据类型是变量和常量中精确度最高的变量类型。(14)D解析: 逻辑运算符表示或的意思。(15)B解析: 该题是一个for循环嵌套语句。第一层for循环循环2次,第二层循环3次,但当j等于0和1时,将执行continue语句,不执行x+运算,所以每次执行完内循环后,x的增量为1。最后一个x+运算将每次累加起来就是x的值。(16)C解析: 本题考查简单的ifelse语句。先执行条件if(a(17)D解析: C+语言规定了一个字符串结束标志,以字符0代表,在遇到0时,表示字符串结束,由它前面的字符组成字符串。(18)D解析: 本题考查字符串数组和指针的引用方式。在C+语言中,系统在每个字符串或数组的最后自动加入一个字符0,作为字符的结束标志,在本题中,char a=It is mine;所表示的a字符串实际含有11个字符。(19)B解析: 在C+语言中,调用函数不可能改变实参指针变量的值,但可以改变实参指针变量所指变量的值。了解了实参指针变量的改变情况,本题只剩下简单的加减法了。(20)D解析: 本题中直接使用指针变量k,但在使用时要注意对k的指针运算,此外,一开始应认为*k的值为数组中的某一下标值,即*k=0。(21)B解析: 按位与运算符&是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。逻辑与运算符&需要两边的结果都为1时,其结果才为1。(22)D解析: C+的this指针是系统默认产生的一个指针,它是const的,所以是不能够被改变,不能够被赋值的。(23)B解析: 类D继承了类C和类B,所以在构造的时候分别构造类B和类C。(24)D解析: 虚函数一定不能定义为静态的。虚函数可以声明为友元,子类也不是必须重定义父类的虚函数,若在重定义虚函数时使用了virtual,则该重定义函数不一定还是虚函数。(25)A解析: C+中用成员函数重载+x为:x. operator+(),用友元函数重载+x为:operator+(x),用成员函数重载x/y为:x. operator/(y),用友元函数重载x/y为:operator/(x,y)。(26)C解析: C+语言中默认小数的输出位一共是6位,fixed的意义是在小数点后保留6位。(27)D解析: 选项D)第一层括号中为数组a中第i项元素的值,外面再加指针运算符没有意义。(28)B解析: 本题的运算过程是fun(int)fun(a+c,b),a-c),fun(int)fun(10,5),2-8),fun(int)15000000,-6),fun(15,-6)=9。(29)A解析: 本题中有成员函数和它的重载函数,要注意它们的不同,在本题中先调用了init函数,初始化了X,Y,都为0,valueX(5);又将X变为5,所以输出5和0,然后初始化init(6,2),接着又valueY(4);将X,Y设为6和4,所以输出6和4。(30)B解析: C+基本的性质就是它的封装性,而封装性主要是靠类来实现的。(31)A解析: 左移运

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论