C 错误是因为,字符串常量 只能 在字符数组定义并初始化使用,而C是 定义之后,然后重新赋值的
D 应该是 题目写错了,没有分号
CD都是错的, C,除了初始化的时候用等于,不能写=字符串这种形式。D那个分号显然也是错的
严格来说abc还有一个问题就是用了中文的引号
但是考虑到D可能是笔误,所以选择C
分析如下, 如有帮助给个采纳加关注下个问题不迷路 ,谢谢 ,
C选项 char s[10]; s="China"; 是错误的。在C语言中,字符数组不能通过简单的赋值来给字符串赋值。正确的做法是使用strcpy()函数将字符串复制到字符数组中。
D选项 char s[10]={'C,h', "i',;'n','a'}; 也是错误的,字符数组中的元素应该使用单引号包围,并且每个元素应该是一个字符。
在C语言中,字符数组不能通过赋值运算符 "=" 来赋值一个字符串。你需要使用字符串拷贝函数 strcpy 或者字符数组的初始化语法来完成字符串的赋值。
char s[10];
strcpy(s, "China");
不知道你这个问题是否已经解决, 如果还没有解决的话:/*C格式控制字符:输出单个字符
s格式控制字符:输出字符串
%s,%ms,%-ms
%m.ns:输出m位的字符,从字符串的左端开始截取n位的字符,如果n位小于m位,则左端补空格
*/
#include "stdio.h"
int main(void)
{
double f=123.456;
printf("%s\n","Helloworld"); // 按%s格式输出
printf("%10.3s\n","Helloworld"); // 按 %m.ns格式输出
printf("%-10.3s\n","Helloworld"); // 按%-m.ns格式输出
printf("%ms\n",f);
printf("%-ms\n",f);
return 0;
}