国家二级(C++)机试模拟试卷160
选择题
1.若有以下程序:
#include
using namespace std;
int fun()
{
static int i=0;
int s=1;
s+=i:
i++;
Feturn S;
}
intmain()
{
hati,a=0;
for(i=0;i<5;i++)
a+=fun();
cout<<a<<endl;
return();
}
程序运(D )
A. 20
B. 24
C. 25
D. 15
解析:由主函数入手,在for循环中调用fun函数,其中调用次数为5。fun中i为静态变量,有效到文件结束。第一次调用fun后为s=1,a=1;第二次调用后s=2,a=3第三次s=3,a=6;第四次s=4,a=10;第五次s=5,a=15。
2.有如下函数模板:
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。
3.数据流图中带有箭头的线段表示的是( )。(D)
A. 控制流
B. 事件驱动
C. 模块调用
D. 数据流
解析:数据流图中带箭头的线段表示的是数据流,即沿箭头方向传送数据的通道,一般在旁边标注数据流名。
4.设某循环队列的容量为50,头指针front=5(指向队头元素的前一位置),尾指针rear=29(指向队尾元素),则该循环队列中共有( )个元素。(A)
A. 24
B. 34
C. 45
D. 55
解析:在循环队列中因为头指针指向队头元素的前一个位置,所以是从第6个位置开始有数据元素,所以队列中的数据元素的个数为29-5=24。
5.为了取代C中带参数的宏,在C++中使用( )。(B)
A. 重载函数
B. 内联函数
C. 递归函数
D. 友元函数
解析:一般函数进行调用时,要将程序执行权转到被调用函数中,然后再返回到调用它的函数中;而内联函数在调用时,是将调用表达式用内联函数体来替换,即类似于宏。
6.设程序如下:
#include
using narnespace std;
int main()
{
int**p,*q,r=10;
q=&ri;
p=&q;
tout<<**p+1<<endl;
return 0;
}
以上程序的输出结果是( )。(C)
A. P的地址
B. r的地址
C. 11
D. 运行错误
解析:p为一个二级指针,其存放的是指针变量q的地址,而q存放的又是r的地址。故式子**p相当于对r的引用。所以最后输出的结果为11。
7.下面关于指针的说法中错误的是( )。(B)
A. 在指针定义的同时可以对其进行初始化
B. 指针根据其所指向变量的类型的不同,所占用内存大小也不同
C. 指针中存放的是内存单元的地址
D. 相同类型的指针之间可以相互赋值
解析:指针是一种用来存放其他变量地址的数据类型,它的声明形式为: (类型)*(变量名),可以在声明的时候对其进行初始化。由于其存放的是内存单元的地址,所以大小一般都是4个字节。
8.多继承的构造顺序可分为如下四步:
①所有非虚基类的构造函数按照它们被继承的顺序构造
②所有虚基类的构造函数按照它们被继承的顺序构造
③所有子对象的构造函数按照它们声明的顺序构造
④派生类自己的构造函数体
这四个步骤的正确顺序是( )。(C)
A. ④③①②
B. ②④③①
C. ②①③④
D. ③④①②
解析:多继承派生类的构造顺序是:首先调用虚基类的构造函数,然后调用非虚基类的构造函数按照它们被继承的顺序构造,其次调用子对象的构造函数,最后是派生类构造函数中的内容。
9.( )使一个函数可以定义成对许多不同数据类型完成同一个任务。(A)
A. 函数模板
B. 重载函数
C. 递归函数
D. 模板函数
解析:函数模板是一系列相关函数的模型或样板,这些函数的源代码形式相同,只是所针对的数据类型不同。因此,函数模板使一个函数可以定义成对许多不同数据类型完成同一个任务。
10.C++中的模板包括( )。(C)
A. 对象模板和函数模板
B. 对象模板和类模板
C. 函数模板和类模板
D. 变量模板和对象模板
解析:本题考查函数模板和类模板,所以答案为C。
11.有如下程序段:
int i=1;int j=4;
int main() {
int i=8, j=i;
cout<<i<<j<<endl;
}
运行时的输出结果是(C)
A. 14
B. 81
C. 88
D. 18
解析:全局变量也称为外部变量,它是在函数外部定义的变量。 它不属于哪一个函数,它属于一个源程序文件。其作用域是整个源程序。在函数中使用全局变量,一般应作全局变量说明,本题中定义了两个全局变量i,j,所以主函数中对全局变量重新赋值输出后为88,所以答案为C。
12.在C++中,实现封装性需借助于( )。(B )
A. 枚举
B. 类
C. 数组
D. 函数
解析:此题考查的是C++语言中对象概念的理解。所谓封装性是指将数据和算法捆绑成一个整体,这个整体就是对象。C++语言通过建立用户定义类型“类”来支持封装性和信息隐藏。
13.当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为( )。(D)
A. ios::in
B. ios::out
C. los::in |
本文档预览:3600字符,共16329字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载