若char c[2][5]={"Good","Best"};则下面对数组元素使用正确的是? A)printf("%c",c[0]); B)printf("%s",c[0]); C)printf("%c",c[2][2]); D)printf("%s",c[2][2]);
时间: 2023-09-06 18:05:13 浏览: 79
详解C语言中Char型指针数组与字符数组的区别
5星 · 资源好评率100%
### 回答1:
A) printf("%c",c[0]); 错误,因为c[0]是字符串 "Good" 的首地址,%c 用于输出字符类型的数据,因此不能使用 %c 输出 c[0]。
B) printf("%s",c[0]); 正确,%s 用于输出字符串类型的数据,c[0] 是字符串 "Good" 的首地址,因此可以使用 %s 输出 c[0]。
C) printf("%c",c[2][2]); 错误,因为c[2]不存在,所以c[2][2]也不存在。
D) printf("%s",c[2][2]); 错误,同上。
### 回答2:
正确的选项是B)printf("%s",c[0]) 和 C)printf("%c",c[2][2])。
选项A)printf("%c",c[0])是错误的,因为c[0]是一个字符串数组,不能直接打印成一个字符。
选项B)printf("%s",c[0])是正确的,因为c[0]表示c数组的第一行,即"Good","%s"表示输出字符串,可以正确地打印出字符串"Good"。
选项C)printf("%c",c[2][2])是正确的,因为c[2][2]表示c数组的第三行第三列,即字符'd',"%c"表示输出字符,可以正确地打印出字符'd'。
选项D)printf("%s",c[2][2])是错误的,因为c[2][2]是一个字符,而"%s"表示输出字符串,不能直接打印字符。
### 回答3:
正确答案是 B)printf("%s",c[0])。
由于数组c是一个二维字符数组,其中每个元素都是一个字符串。字符串在C语言中是以字符数组的形式存在的,以空字符'\0'结尾。
选项A)printf("%c",c[0])是错误的,因为c[0]是一个字符数组,不能直接使用%c打印整个字符数组。
选项C)printf("%c",c[2][2])是错误的,因为数组c只有两行,索引从0开始,所以最大的索引为1,c[2]超出了数组的范围。
选项D)printf("%s",c[2][2])是错误的,因为c[2][2]是一个字符,而格式化字符串"%s"用于打印字符串。
正确的选项是B)printf("%s",c[0]),它可以打印第一行(索引为0)的字符串"Good"。
阅读全文