判断题
1-1 C的double类型数据可以精确表示任何实数。F,想想也不可能啊
1-2 在C 语言中,常量和变量都有数据类型。T
1-3 与float型数据相比,double型数据的精度高,取值范围大。T float单精度,dounle双精度
1-4 08是正确的整型常量。F 八进制不会出现8和9
1-5 表达式0195是一个八进制整数。F 同上
单选题
2-1 下面合法的C语言字符常量是()。
A.'\t'
B."A"
C.'xx'
D.A
选择A,转义字符以“\”开头,后面接一个或几个字符,A正确;字符常量只能用单引号,且单引号内只能有一个字符,B、C、D错误;
2-2
下面程序段的输出是( )。
int x=023;
printf("%d\n",--x);
A.17 B.18 C.23 D.24
选择B,023转为十进制为19,--x得到18
2-3 下面的程序段输出是( )。
int k=11;
printf("k=%d,k=%o,k=%x\n",k,k,k);
A.k=11,k=12,k=11
B.k=11,k=13,k=13
C.k=11,k=013;k=0xb
D.k=11,k=13,k=b
选择D,%d输出十进制,%o输出八进制(前面不带0),%x输出十六进制(前面不带0x)
2-4
下面的程序段输出是( )。
short int a;
int b = 65536;
a = b;
printf("%d\n", a);
A.65536 B.0 C.-1 D.1
选择B,将int向short int转化,short int占2字节,int占4字节,将超出short int范围的int值赋给它时int会被截断为short int的最大值或最小值
2-5 已知字符'c' 的ASCII码为99,语句printf ("%d,%c",'c','c'+1); 的输出为( )。
A.99,c B.99,100 C.99,d D.语句不合法
选择C
2-6 阅读以下程序段,如果从键盘上输入1234567<回车>,则程序的运行结果是( )。
int i,j;
scanf("%3d%2d",&i,&j);
printf("i = %d, j = %d\n",i,j);
A.i = 123, j = 4567 B.i = 1234, j = 567 C.i = 1, j = 2 D.i = 123, j = 45
选择D,1234567的123赋值给i(%3d),45赋值给j(%2d)
2-7 阅读以下程序段,如果从键盘上输入abc<回车>,则程序的运行结果是( )。
char ch;
scanf("%3c",&ch);
printf("%c",ch);
A.a B.b C.c D.语法出错
选择A,scanf("%3c",&ch);确实将abc赋值给了ch,但是因为ch只能存储一个字符,所以输出为a
2-8 已知字母A的ASCII码为十进制的65,下面程序段的输出是( )。
char ch1,ch2;
ch1='A'+'5'-'3';
ch2='A'+'6'-'3';
printf("%d,%c\n",ch1,ch2);
A.67,D B.B,C C.C,D D.不确定的值
选择A,65+5-3=67;65+6-3=68,D的ASCII码为十进制的68