国家计算机二级(C++)67
(总分460, 做题时间120分钟)
选择题(每小题2分,共70分) 下列各题四个选项中,有一个是正确的,请选择正确答案。
1.
有以下程序:
main()
{ int m,n,p; scanf("m=%dn=%dp=%d",&m,&n,&p); printf("%d%d%d\n",m,n,p);
}
若想从键盘上输入数据,使变量 m 中的值为 123,n 中的值为 456,p 中的值为 789,
则正确的输入是______。
A m=123n=456p=789
B m=123 n=456 p=789
C m=123,n=456,p=789
D 123 456 789
分值: 2
答案:A
根据本题的数据输入形式“scanf("m=%dn=%dp=%d",&m,&n,&p);”说明在输入数据时,必须输入“m=”、“n=”、“p=”字符,且中间不能含有空格。
2.
下面程序的运行结果是( )。
#nclude<iostream.h>
int fun(inta[],int n)
{
int result=1;
for(int i=1;i<n;++)
result=result*a[i];
return result;
}
void main( )
{
int a[3] ={3,4,5};
cout<<fun(a,3)<<endl;
}
A 2
B 0
C -2
D 1
分值: 2
答案:B
单目的++运算优先级高于双目的+运算,不过++的结合性是自右向 左的,而+是自左至右的,所以上面的两个表达式都是先计算a+b的值之后,a再自加1。
3.
程序流程图中带有箭头的线段表示的是
A 图元关系
B 数据流
C 控制流
D 调用关系
分值: 2
答案:C
程序流程图是人们对解决问题的方法、思路或算法的一种描述。其中,图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作的先后次序。带箭头的线段在数据流程图中表示数据流。带箭头的线段在程序流程图中表示控制流。题中给出的选项中,
在图元之间用带有箭头的线段表示图元关系。在模块之间用带有箭头的线段表示调用关系。构成程序流程图的基本图符及含义:→或↓表示控制流;□表示加工步骤;◇表示逻辑条件。
4.
有如下说明int a[10]={l,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是【 】
A *p+9
B *(p+8)
C *p+=9
D p+8
分值: 2
答案:B
p为指向a数组的一个指针,冰p对应于数组元素a[O]。(p+8)表示一维数组a[8]的地址,而*(p+8)表示一维数组a[8]的值,即9。
5.
如果利用C++流进行输入输出,下面的叙述中正确的是
A 只能借助于流对象进行输入输出
B 只能进行格式化输入输出
C 只能借助于cin和cout进行输入输出
D 只能使用运算符>>和<<进行输入输出
分值: 2
答案:A
在C++中输入输出流,相应的运算符是cin与eout。C语言中原有的输入输出语句,在C++程序中同样可以使用。
6.
只能作为成员函数重载的是( )。
A 类创建时
B 创建对象时
C 删除对象时
D 不自动调用
分值: 2
答案:C
析构函数就是用来释放对象的,它的调用完成之后,对象也就消失了,相应的内存空间也被释放了。
7.
对如下二叉树进行后序遍历的结果为______。
A ABCDEF
B DBEAFC
C ABDECF
D DEBFCA
分值: 2
答案:D
后序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后遍历右子树,最后访问根结点;并且遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后访问根结点。
8.
设有如下三个关系表下列操作中正确的是
A T=R∩S
B T=R∪S
C T=R×S
D T=R/S
分值: 2
答案:未知
9.
已知一程序运行后执行的第一个输出操作是cout<<setw(10)<<setfill(’*’)<<1234;则此操作的输出结果是
A 1234
B ******1234
C **********1234
D 1234******
分值: 2
答案:B
本题考查的是输出流对象,先输出6个“*”号,再输出“1234”,宽度为10,答案B是正确的。
10.
有以下类定义
classPoint{
public:
Point(int x=0,int y=0){_x=x;_y=y;}
void Move (int xOff,int yOff
{_x +=xOff;_y+yOff}
void Print() const
{cout<<''(''<<_x<<'',''<<_y<<'')''<<endl;}
private:
int_x_y;
};
下列语句中会发生编译错误的是【 】
A Pointpt;pt;Print();
B const Point pt;pt.Print();
C Pointpt;pt.Move(1,2);
D const Point pt;pt.Move(1,2);
分值: 2
答案:D
本题考核常对象、常数据成员与常成员函数。如果将一个对象说明为常对象,则通过该常对象只能调用它的常成员函数,不能调用其他的成员函数,D选项中对象 pt为常对象,而成员函数Move()不是常成员函数,所以这样调用会发生编译错误。
11.
以下叙述中正确的是______。
A 调用 printf 函数时,必须要有输出项
B 使用 putchar 函数时,必须在之前包含头文件 stdio.h
C 在 C 语言中,整数可以以十二进制、八进制或十六进制的形式输出
D 调用 getchar 函数读入字符时,可以从键盘上输入字符所对应的 ASCII 码
分值: 2
答案:B
在使用标准输入输出库函数(除了 printf 和 scanf)前,必须要用预编译命令“#include”将头文件“stdio.h” 包括到用户源文件中。
12.
以下叙述中错误的是______。
A C 语言中对二进制文件的访问速度比文本文件快
B C 语言中,随机文件以二进制代码形式存储数据
关于printf函数正确的是C 语句 FILE fp;定义了一个名为 fp 的文件指针
D C 语言中的文本文件以 ASCII 码形式存储数据
分值: 2
答案:C
FILE 是由系统定义的一个结构体类型,并用该类型来定义若干个 FILE 类型的变量,以便存放若干 个文件。所以用 FILE 定义的变量必须是数组或指针,所以选项 C 中的“FILE fp;”改为“FILE *fp;”就 对了。
13.
下面关于数组的描述错误的是( )。
A 报表页眉
B 页面页眉
C 组页眉
D 以上说法都不对
分值: 2
答案:B
将标题移动到页面页眉中,则标题在每一页上都显示。如果将标题移动到报表页眉中,则打印时只在第一页的开始位置出现。
14.
关于C++语言与C语言关系描述中错误的是( )。
A C++语言是C语言的超集
B C++语言对C语言进行了扩充
C C++语言包含C语言的全部语法特征
D C++语言与C语言都是面向对象的程序设计语言
分值: 2
答案:D
C语言是一种面向过程的程序设计语言,而C++语言是一种面向对象的设计语言,C++语言是C语言的超集,它包含了C语言的所有语言特性,并进行了扩充。
15.
下面程序的运行结果为( )。
# include <iostream.h>
class A
{
int num;
public:
A(inti){hum=i;}
A(A&a){num=a.num++;}
void print( ){cout << num;}
};
void main( )
{
Aa(1),b(a);
a.print( );
b.print( );
}
A 显示“打开文件”对话框
B 显示“保存文件”对话框
C 显示“字体”对话框
D 显示“打印”对话框
分值: 2
答案:C
选项卡是用来分页的,而选项组控件是用来选择列表的,文本框控件主要用来输入或编辑字段数据。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论