第29练 第6章 字符数组的定义、初始化与引用《C语言程序设计》(电子工业出版社)一课一练
|
2份
|
6页
|
58人阅读
|
0人下载
内容正文:
编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《C语言程序设计》(电子工业出版社)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。
本卷是《C语言程序设计》(电子工业出版社)一课一练的第6章的第29练,内容涵盖第6章数组的6.3.1~6.3.3 字符数组的定义、初始化与引用。
《C语言程序设计》(电子工业出版社)一课一练 第29练
第6章 数组
6.3.1~6.3.3 字符数组的定义、初始化与引用
1、 单项选择题(本题共4小题)
1、下列一维字符数组定义中,语法正确的是( )
A. char arr [5];
B. char arr [];
C. char arr [3.5];
D. char arr [5] = {'a','b','c','d','e','f'};
2、用字符串常量初始化字符数组char str[] = "hello";,该数组实际占用的字节数是( )
A. 5
B. 6
C. 4
D. 7
3、关于二维字符数组char ch[3][4];,下列描述正确的是( )
A. 该数组共有 3 行 4 列,总计 12 个元素
B. 数组元素的行下标范围是 1-3,列下标范围是 1-4
C. 只能存储 3 个长度为 4 的字符串
D. 定义时可以省略第二维的长度
4、下列字符数组元素引用的写法中,合法的是( )
A. char arr [5] = "test"; arr [5] = '!';
B. char arr [5]; arr [0] = "a";
C. char arr [3][3] = {{'a'},{'b'}}; printf ("% c", arr [1][0]);
D. char arr [] = "abc"; arr = "def";
2、 判断题(本题共3题)
1、字符数组中的每个元素只能存放一个字符。( )
2、用字符串常量初始化字符数组时,系统不会自动添加结束标志 '\0'。( )
3、定义二维字符数组时,若对全部元素赋初值,可以省略第一维和第二维的长度。( )
3、 填空题(本题共2题)
1、一维字符数组的定义格式为:____ 数组名 [常量表达式];
2、用字符串常量初始化字符数组时,系统会自动在字符串的末尾添加____作为结束标志。
4、 读程序写结果题(本题共1题)
1、阅读下面的 C 语言程序,写出程序运行后的输出结果。
【程序代码】
#include <stdio.h>
int main() {
char str[] = "china";
printf("%c %s
", str[1], str);
return 0;
}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$
编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《C语言程序设计》(电子工业出版社)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。
本卷是《C语言程序设计》(电子工业出版社)一课一练的第6章的第29练,内容涵盖第6章数组的6.3.1~6.3.3 字符数组的定义、初始化与引用。
《C语言程序设计》(电子工业出版社)一课一练 第29练
第6章 数组
6.3.1~6.3.3 字符数组的定义、初始化与引用
1、 单项选择题(本题共4小题)
1、下列一维字符数组定义中,语法正确的是( )
A. char arr [5];
B. char arr [];
C. char arr [3.5];
D. char arr [5] = {'a','b','c','d','e','f'};
【答案】A
【解析】选项 B 未指定数组长度且无初始化,不符合语法规则;选项 C 的常量表达式不能为浮点数;选项 D 初始化元素个数超过数组定义的长度,只有选项 A 的定义符合 C 语言语法要求。
2、用字符串常量初始化字符数组char str[] = "hello";,该数组实际占用的字节数是( )
A. 5
B. 6
C. 4
D. 7
【答案】B
【解析】字符串常量 "hello" 包含 5 个可见字符,系统会自动在其末尾添加一个 '\0' 作为字符串结束标志,因此数组实际占用 6 个字节的存储空间。
3、关于二维字符数组char ch[3][4];,下列描述正确的是( )
A. 该数组共有 3 行 4 列,总计 12 个元素
B. 数组元素的行下标范围是 1-3,列下标范围是 1-4
C. 只能存储 3 个长度为 4 的字符串
D. 定义时可以省略第二维的长度
【答案】A
【解析】二维字符数组ch[3][4]表示 3 行 4 列的结构,每个元素可存储一个字符,总计 12 个元素;选项 B 的下标从 0 开始;选项 C 可存储多个不同长度的字符串(不超过列数即可);选项 D 不能省略第二维长度,因此只有 A 的描述正确。
4、下列字符数组元素引用的写法中,合法的是( )
A. char arr [5] = "test"; arr [5] = '!';
B. char arr [5]; arr [0] = "a";
C. char arr [3][3] = {{'a'},{'b'}}; printf ("% c", arr [1][0]);
D. char arr [] = "abc"; arr = "def";
【答案】C
【解析】选项 A 的arr[5]超出数组下标范围;选项 B 的arr[0]是字符类型,不能赋值字符串常量;选项 D 不能直接给字符数组名赋值字符串;选项 C 引用的arr[1][0]是合法下标,写法符合语法规则。
2、 判断题(本题共3题)
1、字符数组中的每个元素只能存放一个字符。( )
【答案】√
【解析】字符数组的元素类型为 char,每个元素的存储空间仅能容纳一个 ASCII 字符,因此该表述符合 C 语言语法规则。
2、用字符串常量初始化字符数组时,系统不会自动添加结束标志 '\0'。( )
【答案】×
【解析】根据字符数组初始化规则,用字符串常量初始化时,系统会自动在字符串末尾添加 '\0' 作为字符串结束标志,方便后续字符串处理函数识别边界,因此该表述错误。
3、定义二维字符数组时,若对全部元素赋初值,可以省略第一维和第二维的长度。( )
【答案】×
【解析】定义二维字符数组时,即使对全部元素赋初值,也只能省略第一维的长度,第二维的长度必须明确指定,否则编译器无法确定数组的列数,因此该表述错误。
3、 填空题(本题共2题)
1、一维字符数组的定义格式为:____ 数组名 [常量表达式];
【答案】char
【解析】char 是 C 语言中表示字符类型的关键字,作为字符数组的类型标识符,才能确保数组每个元素可存储单个字符。只有使用 char 作为类型标识,定义的数组才符合字符数组的语法规范。
2、用字符串常量初始化字符数组时,系统会自动在字符串的末尾添加____作为结束标志。
【答案】'\0'
【解析】'\0' 是 ASCII 码值为 0 的特殊字符,用于标记字符串的结束位置。C 语言中如 printf、strlen 等字符串处理函数,都是通过识别 '\0' 来确定字符串的边界。
4、 读程序写结果题(本题共1题)
1、阅读下面的 C 语言程序,写出程序运行后的输出结果。
【程序代码】
#include <stdio.h>
int main() {
char str[] = "china";
printf("%c %s
", str[1], str);
return 0;
}
【答案】
程序运行结果:
h china
【解析】
程序中char str[] = "china";定义并初始化了一个字符数组,系统自动添加 '\0' 作为结束标志。str[1]引用数组的第二个元素(下标从 0 开始),即字符 'h';使用%s格式符输出时,会从数组首地址开始读取字符,直到遇到 '\0',因此输出完整字符串 "china"。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$