字符问题
本帖最后由 疯子阿海 于 2021-12-8 22:54 编辑( D)(3)下面四个选项中,均是正确的数值常量或字符常量的选项是。
A)0.0 0f 8.9e '&' B)"a" 3.9e-2.5 1e1 '\"'
C)'3' 011 0xFF00 0aD)+001 0xabcd 2e2 50
则以下符合C语言语法的表达式是。
A)a=a*3=2 B)a+=a-=(b=4)*(a=3)
C)x+y=-3*a D)y=float(i)
C)(9)定义如下变量和数组;
int k;
int a={1,2,3,4,5,6,7,8,9};
for(k=0;k<3;k++) printf("%d ",a);
则上面语句输出的结果是。
A)3 5 7 B)3 6 9 C)1 5 9 D)1 4 7
( D)(10)下面是对字符型数组s的初始化,其中不正确的是。
A)char s={"abc"}; B)char s={'a','b','c'};
C)char s=" "; D)char s="abcdef";
求解析,不会分析呜呜呜 D D C A 我就给你说下错误的选项为啥错了,对的就不解释了,
因为它就是人家这么规定的,你问我为啥是对的,我也不知道。
第一题:
A:0f不能这么写,16进制的表达方式是0x0F,需要有0x作为前缀
B:"a"“” 双引号表示的是字符串,那怕它只有一个字符,它也是字符串。'a'单引号表示字符。
C:011 这个十进制前面不能有0,只能写成11,二进制表示应该是0b011,需要有0b作为前缀(有些编译器不支持二进制写法,可能会报错)
0a 同A
第二题:
A:a*3=2 不能这么写,a*3 不能作为一个左值,不知道左值可以参看这篇文章:什么是左值( lvalue)
B:a+=a-=(b=4)*(a=3)这么写的话,会报错
C:x+y不能作为左值
第三题:
int a={1,2,3,4,5,6,7,8,9}
相当于
int a={{1,2,3},{4,5,6},{7,8,9}}
分别打印:a、a、a
直接看数组呗,分别是:1、5、9
第四题:
char s="abcdef" ,s数组长度只有5个字节,赋值给了6个字节的长度,溢出了 三克油
页:
[1]