第一范文网 - 专业文章范例文档资料分享平台

C语言程序设计及实验指导练习及习题参考答案(8--10)

来源:用户分享 时间:2025/5/29 4:41:01 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

scanf(\}

count = set_grade(ptr);

printf(\printf(\for(i = 0; i < N; i++)

printf(\return 0; }

int set_grade(struct student *p) {

int i, n = 0;

for(i = 0; i < N; i++, p++){ if(p->score >= 85) p->grade = 'A';

else if(p->score >= 70) p->grade = 'B';

else if(p->score >= 60) p->grade = 'C'; else{

p->grade = 'D'; n++; } }

return n; } 7.在本章例题的基础上编写一个学生信息综合管理程序,要求能够实现对学生信息的新建、 输出、修改、查询、按平均成绩排序等功能。 解答:

例9-1 中的函数new_student()、search_student()、output_student()分别实现了学生信息的 新建、查询和输出;

例9-3 实现了按学生平均成绩排序,将其排序功能程序封装在自定义函数sort(struct student students[ ], int n)中;

例9-3 中的函数update_score()实现了学生成绩修改;

将这5 个函数放在一个程序文件中,主函数在例9-1 的基础上修改如下: #include #define MaxSize 50

struct student{ /*学生信息结构类型定义*/ int num; /* 学号 */

char name[10]; /* 姓名 */

int computer, english, math; /* 三门课程成绩 */ double average; /* 个人平均成绩 */ };

int Count = 0; /* 全局变量,记录当前学生总数 */

int main(void) {

int choice, num, course, score;

struct student students[MaxSize]; /* 定义学生信息结构数组 */ do{ /* 用户操作界面 */

printf(\scanf(\switch(choice){

case 1: new_student(students); break;

case 2: printf(“Please input the student?s number:”); scanf(“%d”, &num);

search_student(students, num); break;

case 3: output_student(students); break; case 4: sort(students, Count); break;

case 5: printf(\scanf(“%d”, &num);

printf(\scanf(“%d”, &course);

printf(\scanf(“%d”, &score);

update_score(students, Count, num, course, score); break; case 0: break; }

} while(choice != 0); printf(\return 0; }

3 实验指导教材参考答案

一、调试示例

改正下列程序中的错误。输入一个正整数n(3≤n≤10),再输入n 个职员的信息(表

9.1),要求输出每位职员的姓名和实发工资(实发工资=基本工资+浮动工资-支出)。(源程

序error09_1.c)

表9.1 工资表

姓 名

基本工资 浮动工资 支出 zh ao

240.00 400.00 75.00 qi an

360.00 120.00 50.00 zh ou

560.00 150.00 80.00

源程序(有错误的程序) 1 #include 2 int main (void ) 3 {

4 struct emp{ 5 char name[10]; 6 float jbgz; 7 float fdgz; 8 float zc; 9 };

10 emp s[10]; 11 int i, n; 12

13 printf(\14 scanf(\15 for (i = 0; i < n; i++)

16 scanf(\17 for (i = 0; i < n; i++) /* 调试时设置断点 */

18 printf (\,实发数:%.2f\\n\19

20 return 0;

21 } /* 调试时设置断点 */

运行结果(改正后程序的运行结果) n=3

zhao 240 400 75 qian 360 120 50 zhou 560 150 80

zhao 实发数:565.00 qian 实发数:430.00 zhou 实发数:630.00 改错汇总

错误行号: 10 正确语句: struct emp s[10];

错误行号: 16 正确语句: scanf(\&s[i].zc); 二、改错题

建立一个有n(3

1 黄岚 78 83 75

2 王海 76 80 77 3 沈强 87 83 76 4 张枫 92 88 78 5 章盟 80 82 75

总分最高的学生是:张枫,258 分 源程序(有错 .的程序) 1 #include 2 int main (void) 3 { struct students{ 4 int number; 5 char name[20]; 6 int score[3]; 7 int sum; 8 };

9 int i, j, k, n, max=0; 10 printf(\11 scanf(\12 for (i = 0; i < n; i++){

13 scanf(\14

15 for(j = 0; j < 3; j++){

16 scanf(\17 student[i].sum += student[i].score[j]; 18 } 19 }

20 k = 0; max = student[0].sum; 21 for(i = 1; i < n; i++)

22 if(max < student[i].sum) { 23 k = i; 24 25 }

26 printf(\总分最高的学生是: %s,%d 分\\n\27 return 0; 28 }

改错汇总

错误行号: 8 正确语句: }student[10];

错误行号: 14 正确语句: student[i].sum=0; 错误行号: 24 正确语句: max=student[i].sum; 三、编程题

1.时间换算。用结构类型表示时间内容(时间以时、分、秒表示),输入一个时间数值,再

输入一个秒数n(n<60),以h:m:s 的格式输出该时间再过n 秒后的时间值(超过24 点就从0 点开始计时)。 输入输出示例

C语言程序设计及实验指导练习及习题参考答案(8--10).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c6zb3q5xf6l7l7tx2asjh_8.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top