内容正文:
举一反三考点练
《C语言程序设计》数组与结构类型-课后自测
知识点一 结构类型的定义,结构类型变量定义、初始化和输出
1. (单项选择题)以下关于结构类型的描述,错误的是?( )
A. 结构类型可以将不同类型的数据组合在一起
B. 结构类型的定义使用关键字 union
C. 结构类型的成员可以是基本数据类型或其它结构类型
D. 结构类型变量可以在定义时进行初始化
【答案】B
【解析】结构类型的定义使用关键字 struct,而不是 union。
2. (判断题)结构类型变量定义时,成员之间必须用逗号分隔。( )
【答案】√
【解析】结构类型变量定义时,成员之间确实需要用逗号分隔。
3. (填空题)在C语言中,访问结构类型变量的成员使用______操作符。
【答案】点(.)
【解析】在C语言中,访问结构类型变量的成员使用点操作符(.)。
4. (单项选择题)以下哪个选项是正确的结构类型变量初始化方式?( )
A. struct Student stu = {"张三", 20, 90.5};
B. Student stu = {"张三", 20, 90.5};
C. struct Student stu = "张三", 20, 90.5;
D. Student stu = "张三", 20, 90.5;
【答案】A
【解析】选项A是正确的结构类型变量初始化方式,选项B需要先使用typedef为结构类型定义别名。
5. (判断题)结构类型变量可以包含指向自身的指针成员。( )
【答案】√
【解析】结构类型变量确实可以包含指向自身的指针成员。
6. (填空题)在定义结构类型的同时定义变量,需要在结构体定义后面加上变量名,如:struct Student { char name[20]; int age; }______;
【答案】stu1, stu2;
【解析】在定义结构类型的同时定义变量,需要在结构体定义后面加上变量名。
7. (单项选择题)以下哪个关键字用于为结构类型定义别名?( )
A. Define B. typedef C. struct D. union
【答案】B
【解析】关键字typedef用于为结构类型定义别名。
知识点二 一级指针访问变量和数组元素的方法
1. (单项选择题)以下关于一级指针的说法错误的是?( )
A. 一级指针用于存储变量的地址
B. 一级指针可以直接指向基本数据类型
C. 数组名是一个指向数组首元素的指针
D. 指针变量不需要初始化
【答案】D
【解析】指针变量必须进行初始化,否则可能指向未知地址,导致程序出错。
2. (判断题)在C语言中,解引用空指针会导致程序崩溃。( )
【答案】√
【解析】解引用空指针确实会导致程序崩溃,因此在解引用指针前,应确保指针非空。
3. (填空题)在C语言中,使用____运算符获取变量的地址。
【答案】&
【解析】在C语言中,使用取地址运算符&获取变量的地址。
4. (单项选择题)以下哪个操作不能通过一级指针实现?( )
A. 访问变量 B. 修改变量值 C. 访问数组元素 D. 删除数组元素
【答案】D
【解析】一级指针可以用于访问和修改变量值以及访问数组元素,但不能用于删除数组元素。
5. (判断题)指针加减整数表示移动指针指向的位置。( )
【答案】√
【解析】指针的运算遵循指针算术规则,指针加减整数表示移动指针指向的位置。
6. (填空题)若要定义一个指向字符型变量的指针,应使用____数据类型。
【答案】char *
【解析】指向字符型变量的指针应使用char *数据类型。
7. (单项选择题)以下哪个操作是获取数组arr[5]第3个元素的值?( )
A. *arr + 2 B. (arr + 2) C. arr[2] D. &arr[2]
【答案】B
【解析】(arr + 2)是获取数组arr[5]第3个元素的值。
知识点三 typedef 定义类型的别名
1. (单项选择题)以下关于typedef的说法错误的是?( )
A. typedef用于为已有的数据类型创建新的名字
B. typedef可以创建新的数据类型
C. 使用typedef可以提高程序的可读性
D. typedef声明的类型别名作用范围是从声明开始到文件结束
【答案】B
【解析】typedef并不创建新的数据类型,只是为已有的数据类型起了一个新的名字。
2. (判断题)typedef定义的类型别名可以提高程序的可移植性。( )
【答案】√
【解析】通过typedef定义的类型别名,可以在不同的平台上轻松地修改数据类型,而无需修改大量代码。
3. (填空题)使用typedef为int类型定义别名的语句是:typedef int _______;
【答案】INT
【解析】typedef int INT; 为int类型定义了一个新的别名INT。
4. (单项选择题)以下哪个选项是正确的typedef定义指针类型别名的语句?( )
A. typedef int* INT_PTR; B. typedef int PTR_INT;
C. typedef int INT_PTR; D. typedef PTR_INT int;
【答案】A
【解析】typedef int* INT_PTR; 正确地为指向int类型的指针定义了一个新的别名INT_PTR。
5. (判断题)typedef定义的结构体类型别名可以简化结构体变量的声明。( )
【答案】√
【解析】使用typedef定义结构体类型别名后,可以简化结构体变量的声明。
6. (填空题)使用typedef为包含10个int元素的数组定义别名的语句是:typedef int _______[10];
【答案】INT_ARRAY
【解析】typedef int INT_ARRAY[10]; 为包含10个int元素的数组定义了一个别名INT_ARRAY。
7. (单项选择题)以下关于typedef注意事项的说法错误的是?( )
A. typedef声明的类型别名作用范围是从声明开始到文件结束
B. 在使用typedef定义类型别名时,要注意区分类型别名和变量声明
C. typedef可以在任何位置声明类型别名
D. 如果需要在多个文件中使用typedef声明的类型别名,可以在头文件中声明
【答案】C
【解析】typedef声明的类型别名作用范围是从声明开始到文件结束,不能随意在任何位置声明。
原创精品资源学科网独家享有版权,侵权必究!2
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$
举一反三考点练
《C语言程序设计》数组与结构类型-课后自测
知识点一 结构类型的定义,结构类型变量定义、初始化和输出
1. (单项选择题)以下关于结构类型的描述,错误的是?( )
A. 结构类型可以将不同类型的数据组合在一起
B. 结构类型的定义使用关键字 union
C. 结构类型的成员可以是基本数据类型或其它结构类型
D. 结构类型变量可以在定义时进行初始化
2. (判断题)结构类型变量定义时,成员之间必须用逗号分隔。( )
3. (填空题)在C语言中,访问结构类型变量的成员使用______操作符。
4. (单项选择题)以下哪个选项是正确的结构类型变量初始化方式?( )
A. struct Student stu = {"张三", 20, 90.5};
B. Student stu = {"张三", 20, 90.5};
C. struct Student stu = "张三", 20, 90.5;
D. Student stu = "张三", 20, 90.5;
5. (判断题)结构类型变量可以包含指向自身的指针成员。( )
6. (填空题)在定义结构类型的同时定义变量,需要在结构体定义后面加上变量名,如:struct Student { char name[20]; int age; }______;
7. (单项选择题)以下哪个关键字用于为结构类型定义别名?( )
A. Define B. typedef C. struct D. union
知识点二 一级指针访问变量和数组元素的方法
1. (单项选择题)以下关于一级指针的说法错误的是?( )
A. 一级指针用于存储变量的地址
B. 一级指针可以直接指向基本数据类型
C. 数组名是一个指向数组首元素的指针
D. 指针变量不需要初始化
2. (判断题)在C语言中,解引用空指针会导致程序崩溃。( )
3. (填空题)在C语言中,使用____运算符获取变量的地址。
4. (单项选择题)以下哪个操作不能通过一级指针实现?( )
A. 访问变量 B. 修改变量值 C. 访问数组元素 D. 删除数组元素
5. (判断题)指针加减整数表示移动指针指向的位置。( )
6. (填空题)若要定义一个指向字符型变量的指针,应使用____数据类型。
7. (单项选择题)以下哪个操作是获取数组arr[5]第3个元素的值?( )
A. *arr + 2 B. (arr + 2) C. arr[2] D. &arr[2]
知识点三 typedef 定义类型的别名
1. (单项选择题)以下关于typedef的说法错误的是?( )
A. typedef用于为已有的数据类型创建新的名字
B. typedef可以创建新的数据类型
C. 使用typedef可以提高程序的可读性
D. typedef声明的类型别名作用范围是从声明开始到文件结束
2. (判断题)typedef定义的类型别名可以提高程序的可移植性。( )
3. (填空题)使用typedef为int类型定义别名的语句是:typedef int _______;
4. (单项选择题)以下哪个选项是正确的typedef定义指针类型别名的语句?( )
A. typedef int* INT_PTR; B. typedef int PTR_INT;
C. typedef int INT_PTR; D. typedef PTR_INT int;
5. (判断题)typedef定义的结构体类型别名可以简化结构体变量的声明。( )
6. (填空题)使用typedef为包含10个int元素的数组定义别名的语句是:typedef int _______[10];
7. (单项选择题)以下关于typedef注意事项的说法错误的是?( )
A. typedef声明的类型别名作用范围是从声明开始到文件结束
B. 在使用typedef定义类型别名时,要注意区分类型别名和变量声明
C. typedef可以在任何位置声明类型别名
D. 如果需要在多个文件中使用typedef声明的类型别名,可以在头文件中声明
原创精品资源学科网独家享有版权,侵权必究!2
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$