概述
1.下列程序的输出结果为:(B)
#include<iostream.h>
void main()
{
char* a[ ] = { "hello", "the", "world"};
char** pa = a;
pa++;
cout<<”*pa<<endl;
}
A) theworld B) the C) ello D) ellotheworld
分析:考察二维数组和指针的题目,pa++指针直接就指向二维数组表示的矩阵中第二行了,输出结果为B
2.下面关于数组的初始化正确的是:(B)
A) char str[2] = {“a”,”b”};
B) char str[2][3]={“a”,”b”};
C) char str[2][3]={{‘a’,’b’},{‘e’,’d’},{‘e’,’f’}};
D) char str[] = {“a”, “b”};
分析:A中字符变量不能存放字符串,C中维度错了,D和A的问题一样
3. 下列运算符中,在C++语言中不能重载的是:(C)
A) * B) >= C) :: D) delete
4.下面关于多态性的描述,错误的是:(C)
A) C++语言的多态性分为编译时的多态性和运行时的多态性
B) 编译时的多态性可通过函数重载实现
C) 运行时的多态性可通过模板和虚函数实现
D) 实现运行时多态性的机制称为动态绑定
分析:模板的是编译时多态性,而虚函数是运行时。
5.引用标准库时,下面的说法你认为哪个是正确的:(B)
A) 语句#include “stdlib.h”是正确的,但会影响程序的执行速度
B) 语句#include <stdlib.h>是正确的,而且程序执行速度比#include “stdlib.h”要快
C) 语句#include <stdlib.h>和#include “stdlib.h”都是正确的,程序执行速度没有区别
D) 语句#include “stdlib.h”是错误的
分析:include ""是先从本地目录开始寻找,然后去寻找系统路径,而Include<> 相反先从系统目录,后从本地目录。
6.设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为:(C)
A) 0 B) 1 C) 2 D) 7
分析:m=a>b后m=0,表达式为假,&&后半部分不会操作,因此n为初始值2
7.下列for循环的循环体执行次数为:(A)
for(int i(10), j(1); i=j=0; i++, j--)
A) 0; B) 1; C) 无限; D)以上都不对
分析:条件判断为假,不执行
8.
有下列程序段:
char *p, *q;
p = (char*) malloc(sizeof(char) * 20);
q = p;
scanf(“%s %s”, p, q);
printf(“%s %s/n”, p, q);
若从键盘输入:abc def, 则输出结果是(A)
A) def def B) abc def
C) abc d D) d d
分析:q=p;因此p,q指向的是同一段内存.scanf先是把abc写到p指向的空间,再把def写到q指向的空间,也就是同一段空间,因此abc被def覆盖了。
9.函数fun(char* p) { return p;}的返回值是(B)
A)无确切值 B) 行参p中存放的地址值
C) 一个临时存储单元的地址 D) 行参p自身的地址值
10.设有如下说明:
typedef struct ST{ long a; int b; char c[2]; } NEW;
则下面叙述中正确的是:(C)
A)以上的说明形式非法 B)ST是一个结构体类型
C)NEW是一个结构体类型 D)NEW是一个结构体变量
11. 下列表达式正确的是:(C)
A) 9++ B) (x+y)++ C) c+++c+++c++ D) ++(a-b--)
12.在int b[ ][3] = {{1},{3,2},{4,5,6},{0}};中,sizeof(b) = (D)
A) 4 B) 12 C) 28 D) 48
13若有以下定义和语句:
int u=010, v= 0x10, w=10;
printf(“%d,%d,%d/n”,u,v,w);
则输出结果是:(A)
A)8,16,10 B)10,10,10 C)8,8,10 D)8,10,10
分析:各种进制之间的转换,简单题,0x表示十六进制,0表示八进制。
14有如下程序段:
int i, n = 0;
double x = 1, y1 = 2.1/1.9, y2 = 1.9/2.1;
for( i = 1; i<22; i++)
x = x*y1;
while( x!=1.0)
{
x =x*y2;
n++;
}
printf(“%d/n”, n);
请问执行结果是:(A)
A) 21 B) 22 C)无限循环 D) 程序崩溃
15用树形结构表示实体之间联系的模型是(C)
A) 关系模型 B) 网状模型 C) 层次模型 D)以上三个都是
16.用递归将合数分解为质因数相乘形式,如12=2*2*3(因为分解质因数是一个可递归的过程)
void toPrimMulti(int n, int m) {
if (n >= m) {
while (n % m != 0)
m++;
n /= m;
printf("%d ", m);
toPrimMulti(n, m);
}
}
void main()
{
toPrimMulti(12, 2);
}
运行结果:
17.有语句char str[] = "abcde";请问表达式sizeof(str)的值是(D)
A、1 B、4 C、5 D、6
18.函数的局部变量所需存储空间,是在哪里分配的(D)
A、进程的数据段 B、进程的栈上 C、进程的堆上 D、以上都可以
19在使用浏览器打开一个网页的过程中,浏览器会使用的网络协议包括(ABC)
A、DNS B、TCP C、HTTP D、Telnet
20.下列关于虚函数的说法正确的是(BCD)
A、在构造函数中调用类自己的虚函数,虚函数的动态绑定机制还会生效。
B、在析构函数中调用类自己的虚函数,虚函数的动态绑定机制还会生效。
C、静态函数不可以是虚函数
D、虚函数可以声明为inline
原链接:http://www.lampw3c.com/?p=4749
最后
以上就是忧心时光为你收集整理的C/C++易错题解析的全部内容,希望文章能够帮你解决C/C++易错题解析所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复