《C语言程序设计》结构体-知识点训练 2026版山东省软件与应用技术类专业 考纲百套卷 第14卷

2025-07-08
| 2份
| 15页
| 97人阅读
| 0人下载

资源信息

学段 中职
学科 职教专业课
课程 C语言程序设计
教材版本 -
年级 -
章节 -
类型 题集-专项训练
知识点 结构体和共用体
使用场景 中职复习
学年 2025-2026
地区(省份) 山东省
地区(市) -
地区(区县) -
文件格式 ZIP
文件大小 127 KB
发布时间 2025-07-08
更新时间 2025-07-08
作者 xkw_069767526
品牌系列 学易金卷·考纲百套卷
审核时间 2025-07-08
下载链接 https://m.zxxk.com/soft/52951618.html
价格 3.00储值(1储值=1元)
来源 学科网

内容正文:

编写说明:2026版《软件与应用技术考纲百套卷》依据2026版山东省《软件与应用技术类专业知识考试标准》编写,本套试卷共100份,分为三个部分,第一部分是知识点训练卷,每个知识点2份试卷共76份,第二部分是常考题训练卷,每个知识模块2份训练卷共12份,第三个部分是专业综合训练卷,参考历年软件与应用技术类专业真题试卷,编写了12份。 本试卷是2026版《软件与应用技术考纲百套卷》的第14卷,按知识模块1 C语言程序设计知识7.结构体的两点范围要求编写。其两点要求是: (1)了解结构体变量的定义及初始化。 (2)理解结构体变量的引用。 2026版山东省《软件与应用技术考纲百套卷》 第14卷 知识模块1 C语言程序设计知识 7.结构体 知识点训练卷 一、单项选择题(本大题共20小题,每题3分,共60分) 1. C语言中,下列哪个关键字用于定义结构体类型?( ) A. struct B. union C. enum D. class 【答案】A 2. 下列叙述正确的是( ) A. 只有一个成员一直驻留内存 B. 没有成员驻留内存 C. 部分成员驻留内存 D. 所有成员一直驻留内存 【答案】D 3. 下列哪个操作符用于通过指针访问结构体成员?( ) A. -> B. . C. :: D. * 【答案】A 4. 下列哪个关键字用于声明结构体变量?( ) A. struct B. union C. enum D. class 【答案】A 5. 关于结构体数组初始化的说法,下列哪个是错误的?( ) A. 可以在声明时对结构体数组的全部或部分成员进行初始化 B. 初始化时可以省略数组长度,根据初始化列表自动确定 C. 初始化列表中的数据类型必须与结构体成员类型一致 D. 结构体数组初始化时,可以只对部分成员进行初始化,未初始化的成员自动赋值为0 【答案】D 6. 以下结构体类型变量的定义中,不正确的是( ) A.typedef strcut aa {int n; float m; }AA; AA td1; B.struct aa {int n; float m; }td1; C.struct {int n; float m; }aa; struct aa td1; D.struct {int n; float m; }aa; D.1 【答案】C 7. 叙述不正确的是( ) struct m{ int a; float b; char c; }d1; A.struct是结构体类型的关键字 B.d1是结构体类型名 C.a、b、c都是结构体成员 D.struct m是结构体类型名 【答案】B 8. 以下程序运行结果是(  ) #include <stdio.h> #include <conio.h> struct st1 {float a; int b[5];}c; main( ) {printf("%d,%d,%d ", sizeof(c.a), sizeof(c.b), sizeof(c));} A. 4,20,24 B. 4,20,24 C. 8,20,28 D. 8,10,18 【答案】A 9. 结构体mn共有几个成员(  ) struct st {float a; int b;}c; struct mn {struct st stul; int d; char e;} A. 3 B. 5 C. 4 D. 6 【答案】A 10. 下面的结构体的定义语句中,错误的是( ) A.struct m{int i;int j;int k;};stryct m a; B.struct m{int i;int j;int k;}struct m a; C.struct m{int i;int j;int k;}a; D.struct{int i;int j;int k;}a; 【答案】B 11. 所有自定义类型变量的定义均有三种方法,其中以下哪种不是( ) A. 先定义类型,后定义变量 B. 先定义变量,后定义类型 C. 类型和变量同时定义 D. 直接定义变量 【答案】B 12. 下列哪个操作符用于对结构体指针进行解引用?( ) A. & B. * C. -> D. . 【答案】B 13. 结构体mn共有几个成员( ) struct st {float a;int b;}c; struct mn {stryct st stu1;int d;char e;} A.3 B.5 C.4 D.6 【答案】A 14. 下列哪个操作符用于对结构体成员进行间接访问?( ) A. & B. * C. -> D. . 【答案】B 15. 若程序中有下面的说明和定义: struct abc {int d; } struct abc e1;则会发生的情况是( ) A.编译错误 B.能顺利编译、连接 C.能顺利编译、连接,但不能执行 D.用typedef说明新类型的作用是用一个新的标识符来代表已存在的类型名称 【答案】B 16. 以下程序的输出结果为(  ) #include <stdio.h> struct abc { int a, b; } con[2] = {{1, 2}, {3, 4}}; main() { printf("%d", con[0].b / con[0].a * con[1].a); } A. 5 B. 6 C. 7 D. 8 【答案】B 17. 程序运行结果是(  ) #include <stdio.h> struct ord { int x, y; } dt[2] = {1, 2, 3, 4}; main() { int m; m = dt[0].x * dt[1].x % dt[0].y; printf("%d", m); } A. 1 B. 3 C. 2 D. 4 【答案】A 18. 若有以下语句,以下叙述中正确的是( ) typedef struct s{int m;}T; A.可用S定义结构体变量 B.可用T定义结构体变量 C.S是struct类型的变量 D.T是struct S类型的变量 【答案】B 19. 以下关于结构体的叙述中,错误的是(  ) A. 结构体是一种可由用户构造的数据类型 B. 结构体中的成员可以具有不同的数据类型 C. 结构体中的成员不可以与结构体变量重名 D. 可以在定义结构体变量的同时,对结构体变量进行初始化。 【答案】C 20. 以下对结构体类型变量st的定义中,错误的是(  ) A. `struct { char c; int a; } st;` B. `struct ss { char c; int a; } st;` C. `typedef struct { char c; int a; } TT; TT st;` D. `struct { char c; int a; } TT; struct TT st;` 【答案】D 二、简答题(本大题共5小题,每题6分,共30分) 1. 什么是结构体指针? 【答案】结构体指针是一个指向结构体变量的指针,它存储的是结构体变量的地址。通过结构体指针,可以使用`->`操作符来访问结构体的成员。 2. 如何初始化结构体? 【答案】可以在声明结构体变量时使用花括号`{}`对其进行初始化。例如: struct Person person2 = {"Bob", 25, 180.0}; 3. 结构体变量可以赋值吗? 【答案】可以,C语言允许将一个结构体变量的值赋给另一个同类型的结构体变量,这是通过复制结构体中所有成员的值来完成的。 4. 怎么引用结构体变量? 【答案】结构体变量作为一个整体只能做赋值运算。每个结构体变量中的各个元素(域)都可通过句点运算符来访问。其格式是在结构体变量名和域名之间加个“.”符号。 结构体变量.域名 5. 结构体和联合有什么区别? 【答案】结构体的所有成员都有自己的存储空间,而联合的成员共享同一块存储空间。在联合中,任何时候只能存储一个成员的值。 三、编程题(本大题共1小题,共10分) 1.定义结构体变量,用来记录年月日,输入年月日,输出日期是本年的第几天。 【答案】 #include<stdio.h> main(){ int i; struct{ int year,month,day; }s; scanf("%d%d%d",&s.year,&s.month,&s.day); for(i=1;i<s.month;i++){ if(i==4||i==6||i==9||i==11) s.day+=30; else if(i==2){ if(s.year%4==0&&s.year%100!=0||s.year%400==0) s.day+=29; else s.day+=28; }else s.day+=31; } printf("本年%d天",s.day); } 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $$ 编写说明:2026版《软件与应用技术考纲百套卷》依据2026版山东省《软件与应用技术类专业知识考试标准》编写,本套试卷共100份,分为三个部分,第一部分是知识点训练卷,每个知识点2份试卷共76份,第二部分是常考题训练卷,每个知识模块2份训练卷共12份,第三个部分是专业综合训练卷,参考历年软件与应用技术类专业真题试卷,编写了12份。 本试卷是2026版《软件与应用技术考纲百套卷》的第14卷,按知识模块1 C语言程序设计知识7.结构体的两点范围要求编写。其两点要求是: (1)了解结构体变量的定义及初始化。 (2)理解结构体变量的引用。 2026版山东省《软件与应用技术考纲百套卷》 第14卷 知识模块1 C语言程序设计知识 7.结构体 知识点训练卷 一、单项选择题(本大题共20小题,每题3分,共60分) 1. C语言中,下列哪个关键字用于定义结构体类型?( ) A. struct B. union C. enum D. class 2. 下列叙述正确的是( ) A. 只有一个成员一直驻留内存 B. 没有成员驻留内存 C. 部分成员驻留内存 D. 所有成员一直驻留内存 3. 下列哪个操作符用于通过指针访问结构体成员?( ) A. -> B. . C. :: D. * 4. 下列哪个关键字用于声明结构体变量?( ) A. struct B. union C. enum D. class 5. 关于结构体数组初始化的说法,下列哪个是错误的?( ) A. 可以在声明时对结构体数组的全部或部分成员进行初始化 B. 初始化时可以省略数组长度,根据初始化列表自动确定 C. 初始化列表中的数据类型必须与结构体成员类型一致 D. 结构体数组初始化时,可以只对部分成员进行初始化,未初始化的成员自动赋值为0 6. 以下结构体类型变量的定义中,不正确的是( ) A.typedef strcut aa {int n; float m; }AA; AA td1; B.struct aa {int n; float m; }td1; C.struct {int n; float m; }aa; struct aa td1; D.struct {int n; float m; }aa; D.1 7. 叙述不正确的是( ) struct m{ int a; float b; char c; }d1; A.struct是结构体类型的关键字 B.d1是结构体类型名 C.a、b、c都是结构体成员 D.struct m是结构体类型名 8. 以下程序运行结果是(  ) #include <stdio.h> #include <conio.h> struct st1 {float a; int b[5];}c; main( ) {printf("%d,%d,%d ", sizeof(c.a), sizeof(c.b), sizeof(c));} A. 4,20,24 B. 4,20,24 C. 8,20,28 D. 8,10,18 9. 结构体mn共有几个成员(  ) struct st {float a; int b;}c; struct mn {struct st stul; int d; char e;} A. 3 B. 5 C. 4 D. 6 10. 下面的结构体的定义语句中,错误的是( ) A.struct m{int i;int j;int k;};stryct m a; B.struct m{int i;int j;int k;}struct m a; C.struct m{int i;int j;int k;}a; D.struct{int i;int j;int k;}a; 11. 所有自定义类型变量的定义均有三种方法,其中以下哪种不是( ) A. 先定义类型,后定义变量 B. 先定义变量,后定义类型 C. 类型和变量同时定义 D. 直接定义变量 12. 下列哪个操作符用于对结构体指针进行解引用?( ) A. & B. * C. -> D. . 13. 结构体mn共有几个成员( ) struct st {float a;int b;}c; struct mn {stryct st stu1;int d;char e;} A.3 B.5 C.4 D.6 14. 下列哪个操作符用于对结构体成员进行间接访问?( ) A. & B. * C. -> D. . 15. 若程序中有下面的说明和定义: struct abc {int d; } struct abc e1;则会发生的情况是( ) A.编译错误 B.能顺利编译、连接 C.能顺利编译、连接,但不能执行 D.用typedef说明新类型的作用是用一个新的标识符来代表已存在的类型名称 16. 以下程序的输出结果为(  ) #include <stdio.h> struct abc { int a, b; } con[2] = {{1, 2}, {3, 4}}; main() { printf("%d", con[0].b / con[0].a * con[1].a); } A. 5 B. 6 C. 7 D. 8 17. 程序运行结果是(  ) #include <stdio.h> struct ord { int x, y; } dt[2] = {1, 2, 3, 4}; main() { int m; m = dt[0].x * dt[1].x % dt[0].y; printf("%d", m); } A. 1 B. 3 C. 2 D. 4 18. 若有以下语句,以下叙述中正确的是( ) typedef struct s{int m;}T; A.可用S定义结构体变量 B.可用T定义结构体变量 C.S是struct类型的变量 D.T是struct S类型的变量 19. 以下关于结构体的叙述中,错误的是(  ) A. 结构体是一种可由用户构造的数据类型 B. 结构体中的成员可以具有不同的数据类型 C. 结构体中的成员不可以与结构体变量重名 D. 可以在定义结构体变量的同时,对结构体变量进行初始化。 20. 以下对结构体类型变量st的定义中,错误的是(  ) A. `struct { char c; int a; } st;` B. `struct ss { char c; int a; } st;` C. `typedef struct { char c; int a; } TT; TT st;` D. `struct { char c; int a; } TT; struct TT st;` 二、简答题(本大题共5小题,每题6分,共30分) 1. 什么是结构体指针? 2. 如何初始化结构体? 3. 结构体变量可以赋值吗? 4. 怎么引用结构体变量? 5. 结构体和联合有什么区别? 三、编程题(本大题共1小题,共10分) 1.定义结构体变量,用来记录年月日,输入年月日,输出日期是本年的第几天。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $$

资源预览图

《C语言程序设计》结构体-知识点训练 2026版山东省软件与应用技术类专业 考纲百套卷 第14卷
1
《C语言程序设计》结构体-知识点训练 2026版山东省软件与应用技术类专业 考纲百套卷 第14卷
2
《C语言程序设计》结构体-知识点训练 2026版山东省软件与应用技术类专业 考纲百套卷 第14卷
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。