1. 下面指针所指向的内容,可以修改的是()
A:const int* a
B:int const* b
C:int* const c
D:const int* const d
const 在 * 左侧,指针指向的内容不可以修改;
const 在 * 右侧,指针本身不可修改
2. 假设变量a,b均为整型,表达式值为()
(a = 5, b = 2, a > b ? a++ : b++, a + b)
A:7
B:8
C:9
D:2
????????本题考查的是一个逗号表达式,逗号表达式要依次计算每个表达式的结果,但是逗号表达式的结果是最后一个逗号后面的表达式结果。要依次计算的原因是前面的表达式会影响到最后一个表达式计算的结果。
3. 以下程序的输出结果是( )
#include <stdio.h>
int main()
{
unsigned char a = 235;
unsigned char b = ~a;
unsigned char c = b >> 1;
printf(“%d”, c);
}
A:6
B:2
C:4
D:10
4. 有以下定义,下列选项的表达式哪些会被编译器禁止?()【多选】
int a = 248, b = 4;
int const c = 21;
const int *d = &a;
int *const e = &b;
int const * const f = &a;
A:*c=32
B:*d=43
C:e=&a
D:f=0x321f
E:d=&b
F:*e=34
5. 以下程序的输出是()
#include <stdio.h>
struct HAR
{
int x,y;
struct HAR *p;
} h[2];
int main()
{
h[0].x = 1;
h[0].y = 2;
h[1].x = 3;
h[1].y = 4;
h[0].p = &h[1];
h[1].p = h;
printf("%d,%d \n", (h[0].p)->x, (h[1].p)->y);
}
A:1,2
B:2,3
C:1,4
D:3,2