国家二级(C++)机试模拟试卷146 (题后含答案及解析)
题型有:1. 选择题 2. 基本操作题 3. 简单应用题 4. 综合应用题
选择题
1. 下列关于栈叙述正确的是(    )。
A.栈顶元素最先能被删除
B.栈顶元素最后才能被删除
C.栈底元素永远不能被删除
D.栈底元素最先被删除
正确答案:A
解析:栈是先进后出的数据结构,所以栈顶元素最后入栈却最先被删除。栈底元素最先入栈却最后被删除。所以选择A。 
2. 下列叙述中正确的是(    )。
A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化
B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化
C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化
D.以上说法都不正确
正确答案:C
解析:栈是先进后出的数据结构,在整个过程中,栈底指针不变,入栈与出栈操作均由栈顶指针的变化来操作,所以选择C。 
3. 某二叉树共有7个结点,其中叶子结点只有1个,则该二-X树的深度为(假设根结点在第1层)(    )
A.3
B.4
C.6
D.7
正确答案:D
解析:根据二叉树的基本性质3:在任意一棵二叉树中,度为0的叶子结点总比度为2的结点多一个,所以本题中度为2的结点为1-1=0个,所以可以知道本题目中的二叉树的每一个结点都有一个分支,所以共7个结点共7层,即度为7。 
4. 软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是(    )。
A.学生成绩管理系统
B.C语言编译程序
C.UNIX操作系统
D.数据库管理系统
正确答案:A
解析:软件按功能可以分为:应用软件、系统软件、支撑软件。操作系统、编译程序、汇编程序、网络软件、数据库管理系统都属于系统软件。所以B、C、D都是系统软件,只有A是应用软件。 
5. 结构化程序所要求的基本结构不包括(    )。
A.顺序结构
B.GOTO跳转
C.选择(分支)结构
D.重复(循环)结构
正确答案:B
解析:1966年Boehm和Jacopini证明了程序设计语言仅仅使用顺序、选择和重复三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。 
6. 下面描述中错误的是(    )。
A.系统总体结构图支持软件系统的详细设计
B.软件设计是将软件需求转换为软件表示的过程
C.数据结构与数据库设计是软件设计的任务之一
D.PAD图是软件详细设计的表示工具
正确答案:A
解析:详细设计的任务是为软件结构图中而非总体结构图中的每一个模块确定实现算法和局部数据结构,用某种选定的表达工具表示算法和数据结构的细节,所以A错误。 
7. 负责数据库中查询操作的数据库语言是(    )。
A.数据定义语言
B.数据管理语言
C.数据操纵语言
D.数据控制语言
正确答案:C
解析:数据定义语言:负责数据的模式定义与数据的物理存取构建;数据操纵语言:负责数据的操纵,包括查询及增、删、改等操作;数据控制语言:负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。 
8. 一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程间的联系是(    )。
A.1:1联系
B.1:m联系
C.m:1联系
D.m:n联系
正确答案:D
解析:因为一个教师可讲授多门课程,而一门课程又能由多个老师讲授,所以他们之间是多对多的关系,可以表示为m:n。 
9. 有三个关系R、S和T如下:    则由关系R和S得到关系T的操作是(    )。
A.自然连接
B.并
C.交
D.差
正确答案:D
解析:关系T中的元组是关系R中有而关系S中没有的元组的集合,即从关系R中除去与关系S中相同元组后得到的关系T。所以做的是差的运算。 
10. 定义无符号整数类为UInt,下面可以作为类UInt实例化值的是(    )。
A.-369
B.369
C.0.369
D.整数集合{1,2,3,4,5}
正确答案:B
解析:只有B选项中369可以用无符号整数来表示和存储。A选项中-369有负号,选项C中0.369是小数都不能用无符号整数类存储。选项D是一个整数集合得用数组来存储。 
11. C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是(    )。
A.增加了一些新的运算符
B.允许函数重载,并允许设置默认参数
C.规定函数说明符必须用原型
D.引进了类和对象的概念
正确答案:D
解析:C++语言最重要的特点是其为一种面向对象的程序设计语言,但是C++语言也包含了C语言的全部特征。 
12. 下列(    )是C++语言的有效标识符。
A._Nol
B.No.1
C.12345
D.int
正确答案:A
解析:标识符是一个以字母或下画线开始的,由字母、下画线和数字组成的字符串,标识符不能与任意关键字同名。 
13. 设有定义int x;float y;,则10+x+y值的数据类型是(    )。
A.int
B.double
C.float
D.不确定
正确答案:C
解析:由算术运算符组成的表达式中,若含有不同类型的操作数,则系统隐含地将低类型转
化为高类型,由低至高的顺序为int→float→double。 
14. 下列程序的执行结果为(    )。    #include<iostream.h>    void main( )    {    int a=3,b=0;    int * p=&a;    b=+a++:    cout<<*p<<<<b<<end1;    }
A.3,4
B.4,3
C.3,4
D.4,4
正确答案:B
解析:*p为所指对象a的值,语句“b=+a++:”等价于“b=b+a;a=a+1;”。 
15. 下面程序的运行结果为(    )。    #include<iostream.h>    void main( )    {    for(int a=0,x=0;!x&&a<=10;a++)    {    a++:    }    cout<<a<<end1;    }
A.10
B.11
C.12
D.0
正确答案:C
解析:在进入最后一次循环时a=10,在循环体内执行“a++;”后a=11,执行完该次循环体计算for循环的增量部分后a=12小于10,循环结束。 
16. 下面有关for循环的正确描述是(    )。
A.for循环只能用于循环次数已经确定的情况
B.for循环是先执行循环体语句,后判断表达式
C.在for循环中,不能用break语句跳出循环体
D.在for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
正确答案:D
解析:选项A中for循环可以用于循环次数不确定的情况;选项B中for循环是先判断表达式,后执行循环体语句;选项C中for循环可以用break语句跳出循环体,从而接着执行循环体后面的语句。 
17. 以下程序中调用cin函数给变量a输入数值的方法是错误的,其错误原因是(    )。    #include<iostream.h>    void main( )    {int * p,*q,a,b;    p=&a;    cout<<input a::    cin>>p;    }
A.*p表示的是指针变量p的地址
B.p表示的是变量a的地址,而不是变量a的值
C.*P表示的是指针变量P的值
D.*P只能用来说明P是一个指针变量
正确答案:B
解析:p表示的是变量a的地址,定义后*p表示的是变量a的值。 
18. 假定int类型变量占用两个字节,其有定义int x[10]={0,2,4};则数组x在内存中所占字节数是(    )。
A.13
B.6
C.10
D.20
正确答案:D
while语句都可以用for改写解析:x数组共有10个元素,在花括号内只提供3个初值,这表示只给前面的3个成员赋值,后7个元素的值为0,所以,一共有20个字节。 
19. 下列选项,不正确的是(    )。
A.for(int a=1;a<=10;a++);
B.int a=1;    do    {    a++;    }while(a<=10);
C.int a=1;    while(a<=10)    {    a++:    }
D.for(int a=1;a<=10;a++)a++;
正确答案:B
解析:本题考查的是基本循环语句的使用,选项A,选项C和选项D都为正确的形式,在选项B中的while(a<=10)后缺少结束符分号“;”。 
20. 下面关于数组的初始化正确的是(    )。
A.char str[ ]={a,~b,~c}
B.char str[2]={abc}
C.char str[2][3]={{ab},{cd},{ef}}
D.char str( )={abc}
正确答案:A
解析:本题考查的是字符数组的初始化。选项B中用3个元素初始化大小为2的数组,越界了;选项C中应该是2行3列的数组,题中使用3行2列初始化;选项D中数组合后应用方括号。 
21. 下列程序的输出结果为(    )。    #include<iostream.h>    void main( )    {    char*a[ ]={ }hellotheworld};    char * * pa=a:    pa++;    cout<< * pa<<end1:    }
A.hello
B.the
C.world
D.hellotheworld
正确答案:B
解析:本题主要考查的是指针数组和指向指针的指针之间的关系,其中a是指针数组,pa是指向指针数组行的指针,所以pa自加1相当于指向下一行。 
22. 决定C++语言中函数的返回值类型的是(    )。
A.return语句中的表达式类型
B.调用该函数时系统随机产生的类型
C.调用该函数时的主调用函数类型
D.在定义该函数时所指定的数据类型
正确答案:D
解析:C++语言中,在定义该函数时所指定的数据类型决定函数的返回值类型。 
23. 有以下程序:    椭nclude<iostream.h>    void fun(int a,int b,int c)    {a=456,b=567,c=678;}    void main(  )    {    int x=10,y=20,z=30;    fun(x,y,z);    cout< <x< < < <y< <   < <z< <end1;    }    输出结果是(    )。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。