1
初始化指针的值:
*p=NULL (注意:因为 #define NULL 0) 所以, 初始化的值可以为0;
当然, p=&a 初始化的值可以是地址。
所以: 不可以是 1;
2.
注意: unsigned 表明了是 无符号类型数据
记住; ox 代表了16 进制数 所以: ox31 为 十进制的49.
同时,在初始定义的时候,a1为 字符型(无符号)
所以,在输出的时候,对应ASCII码,而49 对应的ASCII码为 ‘1’。
所以,选择 1.
3.
同样,为函数的递归调用。按部就班即可,
所以,选择 5
4.
数组的正确初始化:
int x[5]={1,2,3,4,5};
int x[5]={1,2,3};
int x[]={1,2,3,4,5}
但是: int x[]={} 不可以!!!
5.
注意: n-- 为后缀算法! 所以: for(n=2;n-->0;); -> 就相当于 for(n=2;n>0,n--;);
所以,一共执行了两次
6.
注意该switch 函数: 缺少了 break; 所以,会一直持续下去!
所以: 为-3
7.
注意这里的判断条件,是= 而不是==
所以,while语句的判断条件一直为 “真” 所以,无穷循环!
8.
注意:字符数组的末尾处,系统会自动加入 结束字符 '\0' 所以:
str[3]="xyz" 超出了空间大小,应该定义为 char[4]
同理于 C.D
注意: 可以这样表达 char a[5]="xzc" char a[]="asdqwe" char a[80]={a,x,c,s,a,"sdasda"};
9.
注意:以运算等级最高的是: !
运算等级:
赋值运算符、|| && 、 关系运算符 、 算术运算符。
10.
注意: 数组a[5] a不可以进行自加自减,是一个常量,非变量!
而指针是一个变量, *pp=a (pp指针指向了a数组)
所以: pp++ pp+1 a+1 都是表示了a[1] 。 说明: a+1 时,a的值没有改变。
11.
这段代码涉及了: 赋值兼容原则,继承(基类,派生类),虚函数的概念。
首先,对x1中的x进行表达式的赋值,所以x=1; 同理于派生类的XX 所以,y=2;
指针p指向基类,并调用函数print() 输出 1;
指针p指向派生类,调用了同名函数,根据赋值兼容原则,且根据virtual 虚函数的概念,指向了谁,就调用哪个对象的函数。 所以输出2,!而不是1!
若,未加上 virtual 关键字 则 输出 1 1.
12.
正确的函数声明:
①: 不用写上代码;
②: 形参列表里面,可以不写 变量名,但一定要写 类型 所 int sun(x,y) 错误;
所以,选择 int sub(long,long)
13.
注意题目所问!
不是 输入流的 !类! 是:
所以 : istream ifstream iostream .... 包含stream的都是 类
所以,cin 是输入流的 !对象!
14.
需要注意两点:
①: *(p+i)=*p 中,*(p+i)未改变列,只改变了行。
②: cout<<*p+3 全部代码中,指针的指向并未改变! 所以,一直是指向首地址的。 所以:*p+3 就是 1+3
所以,答案是为 4.
15.
运算符成员函数 ,可以是 友元函数,普通函数,成员函数。
所以,A 选项错误
16.
注意 y==x+1 是一个判断问题: 明显 y!=x+1 所以,返回值是0(不可以大于0);
17.
数组中,也是不可以超过空间的大小,A选项 中 明显超过了!
18.
字符型数组和数字型的数组,只要定义的内容不超过 定义长度即可(除了 !字符串定义的以外!)
static char s[10] 表示数组的元素均为空字符。'\0'
19.
同理于第八题!
所以选择 B
20.
2||y%x&&!z 2||..... ||左边的2以是为“真”, 对于“或”逻辑判断符,一个为真,就不用看别的了!
所以选择:B (因为为真,所以放回值是 1 (大于0))
真-> 1 假-> 0