Daily practice——2021/4/12

1.下述对C语言字符数组的描述中错误的是()。
A.字符数组可以存放字符串
B.字符数组中的字符串可以整体输入、输出
C.可以在赋值语句中通过赋值运算符"=“对字符数组整体赋值
D.不可以用关系运算符对字符数组中的字符串进行比较
正确答案: C
解析:A正确 char a[]=“fsdfsa”;或者char a[]={“fsdfsdf”};都是字符数组存放字符串。
B正确 因为字符数组中直接使用数组名称时数组会退化为指针而且字符串结尾会有“\0”,指针遇到“\0”会结束输入或者输出。
用到的代码是:char ch[100]; gets(ch); //整体输入puts(ch);整体输出。(同时这里提个醒字符数组可以进行整体的输入输出,但是整型输出是不可以进行的整体输入输出)。
C错误 在赋值语句中通过赋值运算符”="对字符数组整体赋值,则就需要用到字符数组名,而对字符数组名进行操作时其会退化为常量指针,而进行赋值时左值必须是可以修改的变量。所以错误。
D正确 数组名会退化为指针,所以比较的其实就是指针所指向的内存地址的大小,这个跟比较字符串的大小没有关系。

2.执行语句 scanf(“%c,b=%d,f=:%f”,&a,&b,&c) 时,正确的键盘 输入方法是( )
A.a,4,6
B.4,b=4,f=:8.5
C.c,b=2,f=4
D.b,b=5,f=4.3
正确答案: B
解析:scanf(“输入控制符”, 输入参数);
在 scanf 中,所有的“非输入控制符”都要原样输入。所以在输入的时候b=,f=: 必须要原样输入。

3.共同体变量所占的内存长度一定等于最长的成员的长度。请问这句话的说法是正确的吗?
A.正确
B.错误
正确答案: B
解析:union(共用体)的各个成员是以同一个地址开始存放的,每一个时刻只可以存储一个成员,这样就要求它在分配内存单元时候要满足两点:
1.一般而言,共用体类型实际占用存储空间为其最长的成员所占的存储空间;
2.若是该最长的存储空间对其他成员的元类型(如果是数组,取其类型的数据长度,例int a[5]为4)不满足整除关系,该最大空间自动延伸, 延伸到可以整除为止。

4.已知int x=5;,执行下列语句后,x的值为( )。
x+=x-=x*x;
A.25
B.40
C.–40
D.20
正确答案: C
解析:先算x-=x*x,得出x=5-5*5,x=-20;再算x+=x;得出x=-20-20,x=-40。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值