第44练 单元9 枚举类型、使用typedef声明新类型《C语言程序设计》(高教版第2版)一课一练

| 2份
| 7页
| 28人阅读
| 0人下载

内容正文:

编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《C语言程序设计》(高教版第2版)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。 本卷是《C语言程序设计》(高教版第2版)一课一练的单元9的第44练,内容涵盖单元9“学生信息管理系统”的数据存储的9.2.6~9.2.7 枚举类型、使用typedef声明新类型。 《C语言程序设计》(高教版第2版)一课一练 第44练 单元9 “学生信息管理系统”的数据存储 9.2.6~9.2.7 枚举类型、使用typedef声明新类型 1、 单项选择题(本题共5小题) 1、以下枚举类型定义中,枚举元素GREEN的默认值是( ) enum Color{RED, GREEN, BLUE}; A. 0 B. 1 C. 2 D. 3 【答案】B 【解析】枚举元素的默认值从 0 开始依次递增,第一个元素RED为 0,第二个元素GREEN为 1,第三个元素BLUE为 2,因此正确选项为 B。 2、关于枚举变量的赋值操作,下列描述正确的是( ) A. 枚举变量只能直接赋值为定义好的枚举元素 B. 枚举变量本质是整型,可直接赋值任意整数 C. 枚举变量可以通过强制类型转换赋值为整数 D. 枚举变量不能赋值为自定义的枚举元素值 【答案】C 【解析】枚举变量的底层存储为整型,但直接赋值非枚举元素的整数会触发编译器警告,通过强制类型转换可以完成赋值;枚举变量允许直接赋值为定义好的枚举元素,包括自定义值的元素,因此正确选项为 C。 3、C 语言中typedef关键字的核心作用是( ) A. 创建一个全新的数据类型 B. 为已有数据类型指定别名 C. 直接定义变量并分配内存 D. 修改原有数据类型的存储大小 【答案】B 【解析】typedef并非创建新类型,只是为已有类型(如基本类型、枚举、结构体等)起一个简洁的别名,提升代码可读性,因此正确选项为 B。 4、以下枚举类型定义中,枚举元素Wed的值是( ) enum Week{Mon=3, Tue, Wed}; A. 3 B. 4 C. 5 D. 6 【答案】C 【解析】枚举类型中,给指定枚举常量赋值后,后续未赋值的枚举元素会在前一个元素值基础上自动加 1。Mon=3,则 Tue 值为4,Wed 值为5,因此选C。 5、下列定义枚举变量的方式中,语法正确的是( ) A. enum day {Sun, Mon}; day d; B. enum Day {Sun, Mon}; enum d; C. enum Day {Sun, Mon} d; D. enum Sun=0, Mon=1; int d; 【答案】C 【解析】选项 C 属于 “在定义枚举类型的同时定义变量” 的方式,语法正确;选项 A 中需用enum day d;声明变量;选项 B 中enum d;未指定具体枚举类型;选项 D 的枚举定义格式错误,因此正确选项为 C。 2、 判断题(本题共4题) 1、枚举元素是常量,在程序运行期间可以通过赋值语句修改其值,如Sunday=1;。( ) 【答案】× 【解析】枚举元素在编译时已被指定为常量,程序运行期间不允许修改其值,否则会触发编译错误。 2、使用typedef为已有类型起别名后,别名和原有类型是完全等价的,并非新类型。( ) 【答案】√ 【解析】typedef仅为已有类型提供别名,不会创建新的独立类型,别名和原有类型的语法功能完全一致。 3、枚举变量本质是整型变量,因此可以使用printf("%d", today);输出枚举变量对应的数值。( ) 【答案】√ 【解析】枚举变量的底层存储为整型数据,因此可以用整型格式符%d输出其对应的数值。 4、定义枚举类型时,如果给第一个枚举元素赋值为 5,后续未赋值的枚举元素会从 5 开始依次递增。( ) 【答案】√ 【解析】枚举类型中,未自定义赋值的元素默认值为前一个元素的值加 1,若第一个元素赋值为 5,后续元素依次为 6、7…… 以此类推。 3、 程序填空题(本题共1题) 1、题目描述:以下程序使用枚举类型表示四季,并用typedef简化枚举类型名,实现输入四季对应的数字,输出对应的季节名称,请补充缺失代码。 #include <stdio.h> // 定义枚举类型表示四季,并用typedef起别名 (1)____ Season {Spring=1, Summer, Autumn, Winter}; int main() { // 使用别名定义枚举变量 (2)____ now; int num; printf("请输入季节对应的数字(1=春季,2=夏季,3=秋季,4=冬季):"); scanf("%d", &num); // 将整型数值强制转换为枚举类型赋值 (3)____; // 根据枚举变量值输出季节名称 switch(now) { case Spring: printf("春季 "); break; case Summer: printf("夏季 "); break; case Autumn: printf("秋季 "); break; case Winter: printf("冬季 "); break; default: printf("输入错误! "); } return 0; } 【答案】(1)typedef enum (2)Season (3)now = (Season)num 【解析】 (1)需要同时定义枚举类型并通过typedef起别名,语法格式为typedef enum {元素} 别名;,此处别名是Season,因此填写typedef enum。 (2)使用typedef定义的别名Season声明枚举变量now,符合简化类型名的设计目的,因此填写Season。 (3)枚举变量本质为整型,但直接赋值整数会触发警告,需通过强制类型转换将num转换为Season类型后赋值给now,因此填写now = (Season)num。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $ 编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《C语言程序设计》(高教版第2版)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。 本卷是《C语言程序设计》(高教版第2版)一课一练的单元9的第44练,内容涵盖单元9“学生信息管理系统”的数据存储的9.2.6~9.2.7 枚举类型、使用typedef声明新类型。 《C语言程序设计》(高教版第2版)一课一练 第44练 单元9 “学生信息管理系统”的数据存储 9.2.6~9.2.7 枚举类型、使用typedef声明新类型 1、 单项选择题(本题共5小题) 1、以下枚举类型定义中,枚举元素GREEN的默认值是( ) enum Color{RED, GREEN, BLUE}; A. 0 B. 1 C. 2 D. 3 2、关于枚举变量的赋值操作,下列描述正确的是( ) A. 枚举变量只能直接赋值为定义好的枚举元素 B. 枚举变量本质是整型,可直接赋值任意整数 C. 枚举变量可以通过强制类型转换赋值为整数 D. 枚举变量不能赋值为自定义的枚举元素值 3、C 语言中typedef关键字的核心作用是( ) A. 创建一个全新的数据类型 B. 为已有数据类型指定别名 C. 直接定义变量并分配内存 D. 修改原有数据类型的存储大小 4、以下枚举类型定义中,枚举元素Wed的值是( ) enum Week{Mon=3, Tue, Wed}; A. 3 B. 4 C. 5 D. 6 5、下列定义枚举变量的方式中,语法正确的是( ) A. enum day {Sun, Mon}; day d; B. enum Day {Sun, Mon}; enum d; C. enum Day {Sun, Mon} d; D. enum Sun=0, Mon=1; int d; 2、 判断题(本题共4题) 1、枚举元素是常量,在程序运行期间可以通过赋值语句修改其值,如Sunday=1;。( ) 2、使用typedef为已有类型起别名后,别名和原有类型是完全等价的,并非新类型。( ) 3、枚举变量本质是整型变量,因此可以使用printf("%d", today);输出枚举变量对应的数值。( ) 4、定义枚举类型时,如果给第一个枚举元素赋值为 5,后续未赋值的枚举元素会从 5 开始依次递增。( ) 3、 程序填空题(本题共1题) 1、题目描述:以下程序使用枚举类型表示四季,并用typedef简化枚举类型名,实现输入四季对应的数字,输出对应的季节名称,请补充缺失代码。 #include <stdio.h> // 定义枚举类型表示四季,并用typedef起别名 (1)____ Season {Spring=1, Summer, Autumn, Winter}; int main() { // 使用别名定义枚举变量 (2)____ now; int num; printf("请输入季节对应的数字(1=春季,2=夏季,3=秋季,4=冬季):"); scanf("%d", &num); // 将整型数值强制转换为枚举类型赋值 (3)____; // 根据枚举变量值输出季节名称 switch(now) { case Spring: printf("春季 "); break; case Summer: printf("夏季 "); break; case Autumn: printf("秋季 "); break; case Winter: printf("冬季 "); break; default: printf("输入错误! "); } return 0; } 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $

资源预览图

第44练 单元9 枚举类型、使用typedef声明新类型《C语言程序设计》(高教版第2版)一课一练-第1页
1

由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。