疯子阿海 发表于 2021-12-8 22:49:08

字符问题

本帖最后由 疯子阿海 于 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";



求解析,不会分析呜呜呜

傻眼貓咪 发表于 2021-12-8 23:15:13

D D C A

番杰 发表于 2021-12-9 18:27:53

我就给你说下错误的选项为啥错了,对的就不解释了,
因为它就是人家这么规定的,你问我为啥是对的,我也不知道。

第一题:
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个字节的长度,溢出了

疯子阿海 发表于 2021-12-9 22:26:14

三克油
页: [1]
查看完整版本: 字符问题