单选题
1、第300题 (1.0分) 题号:516 static char str[10]=“China”;数组元素个数为()。
A
5
B
6
C
9
D
10
答案解析
正确答案:D
解析:
**解析:**
在 C 语言中,数组的定义格式为 `类型 数组名[常量表达式]`。其中,方括号 `[]` 内的数字直接指定了数组的**总长度**(即数组元素的个数),而不是由初始化字符串的长度决定。
具体分析如下:
1. **定义分析**:语句 `static char str[10] = "China";` 明确声明了一个字符数组 `str`,其大小为 **10**。这意味着编译器会在内存中为该数组分配 10 个 `char` 类型的空间。
2. **初始化分析**:虽然初始化字符串 `"China"` 只有 5 个可见字符,加上末尾的空字符 `\0` 共占用 6 个字节,但这只是对数组前 6 个元素进行了初始化。
3. **剩余元素**:对于静态存储期(`static`)的数组,未显式初始化的剩余元素会自动初始化为 0(即 `\0`)。因此,`str[0]` 到 `str[4]` 存储 "China",`str[5]` 存储 `\0`,而 `str[6]` 到 `str[9]` 也均为 `\0`。
4. **结论**:无论初始化内容多长,只要定义时指定了大小,数组的元素个数就是定义的大小。因此,`str` 的元素个数为 10。
故正确答案为 **D**。
题目纠错
c语言选择判断题库
相关题目
单选题
1、〖第19题〗13) 执行下列语句后变量x和y的值是()。y=10;x=y++;
单选题
1、〖第18题〗21) 以下不符合C语言语法的赋值语句是()。
单选题
1、〖第17题〗89) 以下标识符中,不能作为合法的C用户定义标识符的是()。
单选题
1、〖第16题〗202) 设有如下定义: struct sk {int a; float b;} data,*p;
单选题
1、〖第15题〗33) 若有以下定义:char s='\092'; 则该语句()。
单选题
1、〖第14题〗211)fgets(str,n,fp)函数从文件中读入一个字符串,以下正确的叙述是()。
单选题
1、〖第13题〗205) 变量p为指针变量,若p=&a,下列说法不正确的是()。
单选题
1、〖第12题〗22) 以下不符合C语言语法的赋值语句是()。
单选题
1、〖第11题〗61)设j和k都是int类型,则for循环语句 for(j=0,k=-1;k=1;j++,k++) printf(”****\n”);()。
单选题
10.以下函数调用语句中实参的个数是()。 func((e1,e2),(e3,e4,e5));
