国家二级(C++)机试模拟试卷244
选择题
1.有如下程序:
int x=3:
do{
x-=2:
cout<<x;
}while(!(–x));
执行这个程序的输出结果是( )。(C)
A. 1
B. 3 0
C. 1-2
D. 死循环
解析:本题考查do…while语句,执行do…while语句时,先执行循环体内的语句,然后判断while中表达式的值,表达式为非零时,返回最新执行循环体语句。在本题中,先执行循环体内的语句,输出,然后判断表达式,为非零,且此时x为0;再次执行循环体时,输出-2,然后判断表达式为0,不执行,退出,昕以答案为C。
2.下列对模板的声明中,正确的是( )。(C)
A. template
B. template
C. template
D. template
解析:声明一个函数模板的格式为:template<模板形参表声明>函数声明。调用模板函数时,如果与模板实参中最后的若干个参数有关的信息可以从模板函数的实参中获得,则相关的模板实参可以省略。
3.在下列枚举符号中,用来表示\\(A)
A. ios_base::cur
B. ios_base::beg
C. ios_base::out
D. ios_base::end
解析:streamoff定义于iostream.h中,定义有偏移量offset所能取得的最大值,seek_dir表示移动的基准位置,是一个有以下值的枚举:ios::beg:(文件开头)、ios::cur:(文件当前位置)、ios::end:(文件结尾)。
4.有以下程序段:
#include
#define MAX(x,y)(x)>(y)?(x):(y)
void main()
{int i,j,k;
i=10;
j=15;k=MAX(i,j)*10;
cout<<k<<endl;
}
程序执行后的输出结果是( )。(C)
A. 15
B. 100
C. 150
D. 10
解析:题目程序中的MAX函数是利用条件运算符为?:求最大值。即(x>y)?(x):(y)是当x大于y时取x,否则取y。当i:10,j=15时,“MAX(i,j)”的值为15,所以“k=MAX(i,i)*10;”答案为:150。
5.数据库应用系统中的核心问题是( )。(A)
A. 数据库设计
B. 数据库系统设计
C. 数据库维护
D. 数据库管理员培训
解析:数据库应用系统中的核心问题是数据库的设计。
6.将E-R图转换为关系模式时,实体和联系都可以表示为( )。(C)
A. 属性
B. 键
C. 关系
D. 域
解析:从E-R图到关系模式的转换是比较直接的,实体与联系都可以表示成关系,E-R图中属性也可以转换成关系的属性。
7.有如下程序段:
int i=0,j=1;
nt &r=i;//①
r=j;//②
int * p=&i://③
*p=&r;//④
其中会产生编译错误的语句是( )。(A)
A. ④
B. ③
C. ②
D. ①
解析:本题考查指针和引用。①为引用,使用正确;④中&r表示一个地址,而*p已经是一个值了,不能将一个指针赋值给一个值,所以编译错误。
8.为了提高函数调用的实际运行速度,可以将较简单的函数定义为( )。(A)
A. 内联函数
B. 重载函数
C. 递归函数
D. 函数模板
解析:一般函数进行调用时,要将程序执行权转到被调用函数中,然后再返回到调用它的函数中;而内联函数在调用时,是将调用表达式用内联函数体来替换,一般只将规模很小而使用频繁的函数声明为内联函数,可以避免函数调用时间开销,从而提高运行速度。
9.有如下函数模板:
template
T cast(U u){return u;)
其功能是将U类型数据转换为T类型数据。已知i为int型变量,下列对模板函数cast的调用中正确的是( )。(D)
A. cast(i);
B. cast◇(i);
C. cast(i);
D. cast(i);
解析:选项D)是将double类型的数据转化成int类型的数据,正确。
10.若要对Data类中重载的加法运算符成员函数进行声明,下列选项中正确的是( )。(B)
A. Data +(Data);
B. Data operator+(Data);
C. Data+operator(Data);
D. operator+(Data,Data);
解析:根据重载加法运算符的格式,只有B选项正确。
11.下列语句中错误的是(C)
A. constint*p=0;
B. constinty=99;
C. constintx;
D. constint*p=newint(100);
解析:const是一个C++语言的关键字,它限定一个变量http://baike.baidu.com/view/296689.htm>不允许被改变,C++定义const类型变量时必须初始化,否则编译不通过。所以C选项错误。
12.下列关于二叉树的叙述中,正确的是( )。(B)
A. 叶子结点总是比度为2的结点少一个
B. 叶子结点总是比度为2的结点多一个
C. 叶子结点数是度为2的结点数的两倍
D. 度为2的结点数是度为l的结点数的两倍
解析:根据二叉树的基本性质3:在任意一棵二叉树中,度为0的叶子结点总是比度为2的结点多一个。所以选择B)。
13.假定int类型变量占用两个字节,其有定义int x[10]={0,2,4};,则数组x在内存中所占字节数是( )。(D)
A. 3
B. 6
C. 10
D. 20
解析:x数组共有10个元素,在花括号内只提供3个初值,这表示只给前面的3个成员赋值,后7个元素的值为0,所以,一共有20个字节。
14.下列程序的输出结果为( )。
#include<iostream.h>
void main( )
{
char*a[ ]={ }\\(B)
A. hello
B. the
C. world
D. hellotheworld
解析:本题主要考查的是指针数组和指向指针的指针之间的关系,其中a是指针数组,pa是指向指针数组行的指针,所以pa自加1相当于指向下一行。
本文档预览:3600字符,共15579字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载