1、C++中将公共基类说明为虚基类的最重要目的是____。
- A:提高程序的执行效率
- B:简化程序,提高可读性
- C:消除对基类成员访问的二义性
- D:减少目标代码占用的资源
解析
虚基类,如果有一个a为基类,子类b和c都继承了a,d继承了b和c,那么子类d最后会接受分别来自b和c的同一个或多个相同拷贝,从而产生了多个拷贝,即不止一次地通过多个路径继承类在内存中创建了基类成员的多分拷贝。而这些是b和c从父类继承而来,所以子类d该继承b还是c传下来的,还是都接受呢?这样就会产生歧义,虚基类的基本原则是在内存中只有基类成员的一份拷贝。这样,通过把基类继承声明为虚拟的,就只能继承基类的一份拷贝,从而消除歧义。
答案:C
2、若有以下的定义,则值为3的表达式是____。
int a[] = {1,2,3,4,5,6,7,8,9,10}, *p = a;
- A:p += 2,*(p++)
- B:p += 2;*++p
- C:p += 3;*p++
- D:p += 2; ++*p
解析
p++的结果是a[3],也就是4;但是p++本身的值是a[2],即为3。
换句话说,p++后,p的值会加1,但是你在程序里加一句n=p++,就可以看到n的值还是p。
A的意思应该是p++本身的值。
如果是++p的话,值就是a[3]了。不管是p++还是++p,结果都会自增1,但是它本身的值要看加号在前还是在后。
答案:A
3、下面的C++关键字中,哪个不能用于变量的说明语句____。
- A:extern
- B:int
- C:static
- D:inline
解析
inline是一种用于实现的关键字,而不是一种用于声明的关键字。extern用来定义外部变量,int用来定义整型变量,static用来定义静态变量。
答案:D
4、以下叙述正确的是____。
- A:C程序基本组成单位是语句
- B:C程序每一行只能写一个语句
- C:简单C语句必须以分号作为结束符
- D:注释语句可以嵌套
解析
C程序是由函数构成的,一个C源程序至少包含一个main函数,也可以包含一个main函数和若干个其他函数,因此,函数是C程序的基本单位,故选项A错误。
C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上,故选项B,D错误。
C语言规定,每个语句和数据定义的最后必须有一个分号,分号是C语句的必要组成部分。
答案:C
5、以下关于C语言语句的叙述中正确的是____。
- A:所有语句都包含关键字
- B:所有语句都包含表达式
- C:所有语句都可以出现在源程序中的任何位置
- D:除复合语句外的其他语句都以分号结束
解析
在C程序中,分号是语句结束符。每个语句必须以分号结束,除了复合语句。它表明一个逻辑实体的结束。
答案:D
6、编译程序绝大多数时间花在____上。
- A:出错处理
- B:词法分析
- C:目标代码生成
- D:管理表格
解析
编译阶段所需的信息多数从表格中读取,产生的中间结果都记录在相应的表格中,可以说整个编译过程就是造表、查表的过程。
答案:D
7、利用汇编语言编制程序的过程中,若汇编正常通过,表示____。
- A:没有语法错误
- B:已产生可执行文件
- C:没有逻辑错误
- D:已产生运算结果
解析
利用汇编语言编制程序的过程中,若汇编正常通过,表示没有语法错误。汇编程序在对源程序的汇编过程中,若检查出某语句有语法错误,随时在屏幕上给出出错信息。
答案:A
8、C语言源程序文件经过C编译连接之后产生一个后缀为____的文件。
- A:“.c”
- B:“.obj”
- C:“.exe”
- D:“.bas”
解析
文件编辑的时候源码时CPP扩展名,C++头文件是.H扩展名。编译源程序文件转换成.obj扩展名的目标文件。链接将一个或多个目标文件与程序用到的库文件链接起来,形成一个可以在操作系统直接运行的执行程序.exe。
答案:C
9、汉字的拼音输入码属于汉字的____。
- A:外码
- B:内码
- C:ASCII码
- D:标准码
解析
汉字输入码属于外码。
答案:A
10、若有C语言定义语句:int a[5], *p=a;则与a[1]不等价的是____。
- A:p[1]
- B:*(p+1)
- C:*(++p)
- D:*(p++)
解析
p++的值是p自增前的值,++p的值是p自增后的值。