一、C 语言基础考题(40)
选择题 20 分每题 2 分
1、已知字母 A 的 ASCII 码为十进制数值 65,且 S 为字符型,则执行语句 S='A'+'6'-'3';
后 S 中的值为 ( A)
A.'D' B.68 C.不确定的值 D.'C'
2、若有定义语句:int a=12;,则执行语句:a+= a-= a*a;后,a 的值是 (D )
A.264 B.552 C.144 D.-264
3、设有以下程序段 int y;y=rand() % 30+1;则变量 y 的取值范围是 ( D)
A.1<y<30 B.0≤y≤30 C.0<y≤30 D.1<y≤30
4、已知 int x=10,y=20,z=30;以下语句执行后 x,y,z 的值是 ( B)
if (x>y) z=x; x=y; y=z;
A.x=10,y=20,z=30 B.x=20,y=30,z=30 C.x=20,y=30,z=10 D.x=20,y=30,z=20
5.请读程序:
#define ADD(x) x+x
main()
{
int m=1,n=2,k=3;
int sum=ADD(m+n)*k;
printf("sum=%d",sum);
}
输出结果是 (D )
A.sum=9 B.sum=10 C.sum=12 D.sum=18
6.以下程序有错误,错误原因是( )
main()
{
int *p,I;char *q,ch;
p=&I;
q=&ch;
*p=40;
*p=*q;
...
}
A.p 和 q 的类型不一致,不能执行*p=*q;语句
B.p 中存放的是地址值,因此不能执行*p=40;语句
C.q 没有指向具体的存储单元,所以*q 没有实际意义