2026年C_语言期末笔试自定义数据类型编程练习题及答案.docxVIP

  • 0
  • 0
  • 约7.46千字
  • 约 20页
  • 2026-01-21 发布于福建
  • 举报

2026年C_语言期末笔试自定义数据类型编程练习题及答案.docx

第PAGE页共NUMPAGES页

2026年C语言期末笔试自定义数据类型编程练习题及答案

一、结构体综合应用(共3题,每题20分,总计60分)

1.题目(20分):

设计一个结构体`Student`,包含学号(整型)、姓名(字符数组,长度20)、成绩(浮点型)。编写函数`inputStudent`用于输入学生信息,`printStudent`用于输出学生信息,并在主函数中创建一个结构体数组`students`(大小为5),遍历输入并打印所有学生信息。

2.题目(20分):

定义一个结构体`Car`,包含品牌(字符数组,长度20)、价格(浮点型)、年份(整型)。编写函数`sortCarByPrice`对结构体数组按价格升序排序,并在主函数中测试该函数。要求使用选择排序算法。

3.题目(20分):

设计一个结构体`Book`,包含书名(字符数组,长度50)、作者(字符数组,长度30)、页数(整型)。编写函数`searchBookByAuthor`在结构体数组中查找指定作者的所有书籍并打印,主函数中测试该函数。

二、链表操作(共2题,每题25分,总计50分)

1.题目(25分):

实现一个单向链表,节点包含数据域(整型)和指针域。编写函数`insertNode`在链表末尾插入新节点,`deleteNode`按值删除节点,`printList`打印所有节点。主函数中测试插入、删除和打印功能。

2.题目(25分):

设计一个双向链表,节点包含数据域(浮点型)、前指针和后指针。编写函数`insertFront`在头部插入新节点,`deleteLast`删除尾部节点,`printList`从头部到尾部打印。主函数中测试双向链表操作。

三、共用体应用(共1题,20分)

1.题目(20分):

定义一个共用体`Data`,包含整型、浮点型和字符型成员。编写函数`printData`根据输入选择打印共用体对应成员的值。主函数中测试共用体不同成员的赋值和打印。

四、枚举与联合体(共2题,每题15分,总计30分)

1.题目(15分):

使用枚举定义一周的七天(Sunday至Saturday)。编写函数`printDay`根据整型输入(1-7)打印对应星期名称。

2.题目(15分):

定义一个联合体`UnionTest`,包含字符型、整型和浮点型成员。编写函数`setUnion`设置联合体成员的值,`printUnion`打印当前成员的值。主函数中测试联合体的使用。

答案及解析

一、结构体综合应用

1.答案(20分):

c

includestdio.h

defineMAX_NAME_LEN20

typedefstruct{

intid;

charname[MAX_NAME_LEN];

floatscore;

}Student;

voidinputStudent(Students){

printf(EnterID:);

scanf(%d,s-id);

printf(Entername:);

scanf(%s,s-name);

printf(Enterscore:);

scanf(%f,s-score);

}

voidprintStudent(constStudents){

printf(ID:%d,Name:%s,Score:%.2f\n,s-id,s-name,s-score);

}

intmain(){

Studentstudents[5];

for(inti=0;i5;i++){

printf(Inputstudent%d:\n,i+1);

inputStudent(students[i]);

}

printf(\nStudentsinformation:\n);

for(inti=0;i5;i++){

printStudent(students[i]);

}

return0;

}

解析:

-结构体`Student`包含三个成员,使用`typedef`简化定义。

-`inputStudent`通过指针访问成员并输入数据。

-`printStudent`按格式输出学生信息。

-主函数创建数组并遍历输入输出。

2.答案(20分):

c

includestdio.h

includestring.h

defineMAX_BRAND_LEN20

typedefstruct{

charbrand[MAX_BRAND_LEN];

floatprice;

intyear;

}Car;

voidsortCarByPrice(Carcars[],intn){

for(int

文档评论(0)

1亿VIP精品文档

相关文档