c语言中printf函数是显示输出函数,其中百分号后面的字符定义如下:
%a(%A) 浮点数、十六进制数字
%c 字符
%d 有符号十进制整数
%f 浮点数(包括float和doulbe)
%e(%E) 浮点数指数输出[e-(E-)记数法]
%g(%G) 浮点数不显无意义的零\
%i 有符号十进制整数(与%d相同)
%u 无符号十进制整数
%o 八进制整数
%x(%X) 十六进制整数0f(0F)
%p 指针
%s 字符串
%% \
至于\\n表示是换行的意思。
main() { int m=5;
1
if(m++>5) //m++,此时先使用m=5去比较,结果为假,跳到else,但是m还要加1变为6,即m=6 printf(\
else printf(\此时先使用m=6去输出,然后m还要减1变为5,即m=5 }
所以输出结果为:6
1
单选题:(每题2分,共80分)
1、下列不合法的十六进制数是( ) (2分) A. oxff B. 0Xcde C. Oxll D. Ox23
参考答案: A
2、将三个数排序需要比较______次。 (2分) A. 2 B. 3 C. 4 D. 不确定
参考答案: B
3、以下程序的输出结果是 main( )
{ int k=17;
printf(\十进制,%o八进制,%x 十六进\\n\,k,k,k); } (2分)
A. 17,021,0x11 B. 17,17,17 C. 17,0x11,021 D. 17,21,11
参考答案: D
2
4、在C语言中,合法的字符常量是______. (2分)
A. '\\084' \\0表明是8进制,只能出现0--7的数字
B. '\\x43'
C. 'ab' 单引号里只能一个字符
D. ″\\0″有双引号,是字符串
参考答案: B
5、在C语言中,int、char和short三种类型数据在内存中所占用的字节数 (2分)
A. 由用用户自己定义 B. 均为2个字节 C. 是任意的
D. 由所用机器的机器字长决定
参考答案: D
6、若有定义:int a=8,b=5,C;,执行语句C=a/b+0.4;后,c的值为
(2分) A. 1.4
B. 1
C. 2.0 D. 2
参考答案: B
7、设有说明语句:char a='\\72';则变量a (2分)
A. 包含1个字符
B. 包含2个字符 C. 包含3个字符 D. 说明不合法
3
参考答案: A
\\72表示的是一个字符哦
\\是转义符号,这里的72是八进制的,换成十进制为58
如果是\\92那就是错误的,因为9已经超过8进制的取值范围。
8、若有以下说明和语名: int a=5,m; m=a++;
此处表达式m的值是____ (2分) A. 7 B. 6 C. 5 D. 4
程序是按照步骤来的,如果是a++的话,在那一行代码中,a的值是不变的,下一行才发生变化,++a则是在那一行已经发生了变化。
参考答案: C
9、以下程序的输出结果是______ main() {
int x=10,y=10;
printf(\}
(2分) A. 10 10 B. 9 9 C. 9 10
D. 10 9
参考答案: D
10、下列选项中,不正确的赋值语句是_____ (2分) A. ++t;
B. n1=(n2=(n3=0)); C. k=1=j; D. a=b+c=1;
1是常量,j是变量,变量不能赋值给常量 参考答案: C
4
11、以下程序段的输出结果是 int a=1234;
printf(\ (2分) A. 12 B. 34 C. 1234
D. 提示出错、无结果
printf()函数的输出格式,当整数的值超过格式要求输出范围时,原样输出。本题中要求输出两个有效数字,而实际上a有4个有效数字,故原样输出,输出1234。
如果你打的是:
int a=1234; printf(\那么输出应该是:
_1234 【这里_表示一个空格】
如果是(\,那么1234之前就有50-4=46个空格。 这样明白了吧。
参考答案: C
12、为表示关系x ≥ y ≥ z,应使用C语言表达式_________。 (2分)
A. (x > =y)&&(y > =z)
B. (x > =y)AND(y > =z) C. (x > =y > =z) D. (x > =y)&(y > =z)
参考答案: A
13、设有:int a=1,b=2,c=3,d=4,m=2,n=2; 执行 (m=a>b)&&(n=c>d)后n的值是 (2分) A. 1 B. 2 C. 3 D. 4
先求m = (a > b) = false = 0,足以判断(m=a>b)&&(n=c>d) = false,所以不在计算n = (c > d)的值,故n保持原来的值2不变。
参考答案: B
14、判断char型变量cl是否为小写字母的正确表达式是
5