国家二级C++机试(选择题)模拟试卷229
选择题
1.下列叙述中正确的是( )。(D)
A. 一个逻辑数据结构只能有一种存储结构
B. 逻辑结构属于线性结构,存储结构属于非线性结构
C. 一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率
D. 一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率
解析:数据的存储结构是指数据的逻辑结构在计算机存储空间中的存放形式,一种数据结构可以根据需要采用不同的存储结构,常用的存储结构有顺序和链式结构。采用不同的存储结构,其处理的效率是不同的。
2.下列程序输出的结果是( )。
#include<stdio_h>
fun1(char a,char b){char c;c=a;a=b;b=c;}
fun2(char*a,char b){char c;c=*a;*a=b;b=c;}
fun3(char*a,char*b){char c;c=*a;*a=*b;*b=c;}
void main()
{
char a,b;
a=’A’;b=’B’;fun1(a,b);putchar(a);putchar(b);
a=’A’;b=’B’;fun2(&a,b);putchar(a);putchar(b);
a=’A’;b=’B’;fun3(&a,&b);putchar(a);putchar(b);
putchar(’\n’);
}(B)
A. BABBAB
B. ABBBBA
C. ABBABA
D. ABABBA
解析:由程序中的主函数main入手,分别调用fun1,fun2,fun3函数,得到输出结果。其中,三个函数都是实现两个形参的交换功能,只是参数传递的方式不同,有的是地址,有的是传值。第一个函数中参数采用的是值传递的方式,形参的变化不影响实参。所以调用fun1后,实参a和b并没有交换,仍然是AB。第二个调用中,实参a采用的是地址,即传递的是地址,所以形参a的改变会影响实参a的值,即BB。同理,调用fun3后为BA。
3.在函数中,可以用auto、extem、register和static这四个关键字中的一个来说明变量的存储类型,如果不说明存储类型,则默认的存储类型是( )。(A)
A. auto
B. extem
C. register
D. static
解析:此题考查的是存储类型。C++语言变量的存储类型分为如下几种类型:auto—函数内部的局部变量;static—静态存储分配;extern—全局变量:register—变量存储在硬件寄存器中。
4.下列循环语句中有语法错误的是( )。(D)
A. int i;for(i=1;i<10;i++)cout<<’*’;
B. int i,j;for(i=1,j=0;i<10;i++,j++)cout<<’*’;
C. int i=0;for(;i<10;i++)cout<<’*’;
D. for(1)cout<<’*’;
解析:这道题目主要考查for循环语句的语法。for循环语句的语法格式如下:for(;;),在三个表达式都省略的情况下,其格式如下for(∷),这时for。循环语句是一个死循环。
5.某二叉树中有n个度为2的结点,则该二叉树中的叶子结点数为(A)
A. n+1
B. n-1
C. 2n
D. n/2
解析:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。所以该二叉树的叶子结点数等于n+1。
6.有如下程序:
#include
using namespace std;
class test{
private:
int a:
public:
test0{cout+”constructor”+endl;}
test(int a){cout+a+endl;)
test(const test&test)
{
a=test.a:
cout+“copy constructor”+endl;
)
test(){Cout+”destructor”+endl;)
);
int main()
{
test A(3);
return 0:
}
运行时输出的结果是( )。(D)
A. 3
B. constructor
destructor
C. copy constructor
destructor
D. 3
destructor
解析:此题考查的是构造函数和析构函数。一个类可以有多个构造函数,但只能有一个析构函数。每一个对象在被创建时,都会隐含调用众多构造函数中的一个,而在销毁时又会隐含调用唯一的析构函数。此题中,主函数创建对象A是会隐含调用test(int a)这个构造函数,输出3:接着主函数结束,对象A销毁又隐含调用~test()析构函数输出destructor。
7.对于一个类定义,下列叙述中错误的是( )。(B)
A. 如果没有定义拷贝构造函数,编译器将生成一个拷贝构造函数
B. 如果没有定义缺省的构造函数,编译器将一定生成一个缺省的构造函数
C. 如果没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝构造函数
D. 如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数
解析:此题考查的是构造函数。如果一个类中没有定义任何构造函数,编译器将生成一个不带参数的公有缺省构造函数。但只要定义了一个任意的构造函数,就不会生成缺省构造函数了。
8.关于this指针的说法不正确的是( )。(D)
A. 不能在程序中修改this指针
B. this指针可以给其他指针赋值,但不能修改this指针
C. 静态成员函数中没有this指针
D. this指针可以被赋值
解析:this指针不能在程序中修改,不能被幅值;静态成员没有this指针,因为类中只有一个静态成员函数实例,使用this指针无意义。
9.在下列模式中,能够给出数据库物理存储结构与物理存取方法的是( )。(B)
A. 外模式
B. 内模式
C. 概念模式
D. 逻辑模式
解析:数据库有三层模式结构,逻辑模式是数据的全局逻辑结构的描述,外模式也称为子模式,是局部数据的逻辑结构描述,而内模式也称为存储模式,是数据库物理存储结构和存取方法的描述。
10.一般情况下,当对关系R和S进行自然连接时,要求R和S含有一个或者多个共有的( )。(C)
A. 记录
B. 行
C. 属性
D. 元组
解析:自然连接要满足两个条件:一是两关系之间有公共域。二是通过共域的相等值进行连接。
11.下列
本文档预览:3600字符,共7713字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载