360.00 120.00 50.00 zh ou
560.00 150.00 80.00
源程序(有错误的程序) 1 #include
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 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 点开始计时)。 输入输出示例 11:59:40 30 12:0:10 解答: #include void timecal(struct time *p,int n); int main(void) { int n; struct time time1,*p; scanf(\scanf(\p=&time1; timecal(p,n); printf(\} void timecal(struct time *p,int n) { p->s+=n; if(p->s>=60) { p->s-=60; p->m++; if(p->m==60) { p->m=0; p->h++; if(p->h==24) p->h=0; } } } 2.计算平均成绩。建立一个学生的结构记录,包括学号、姓名和成绩。输入整数n(n<10), 再输入n 个学生的基本信息,要求计算并输出他们的平均成绩(保留2 位小数)。 输入输出示例 n=3 1 zhang 70 2 wang 80 3 qian 90 80.00 解答: #include struct student{ /*学生信息结构定义*/ int num; /* 学号 */ char name[10]; /* 姓名 */ int score; /* 成绩 */ }; int main(void) { int i, n; double ave=0; struct student s1; /* 定义结构变量 */ printf(\scanf(\ for(i = 1; i <= n; i++){ scanf(\ave += s1.score; } ave = ave/n; printf(\return 0; } 3.利用结构变量求解两个复数之积: (3+4i) × (5+6i)。 提示:求解(a1+a2i)×(b1+b2i),乘积的实部为:a1×b1 - a2×b2,虚部为:a1×b2 + a2×b1。 输入输出示例 (3+4i) × (5+6i)= -9+38i 解答:参见9.3.2 程序设计题第3 题 4.编写程序,从键盘输入n(n<10)本书的名称和定价并存入结构数组中,从中查找定价最高 和最低的书的名称和定价,并输出。 输入输出示例 n=3 C 程序设计 21.5 VB 程序设计 18.5 Delphi 程序设计 25.0 价格最高的书:Delphi 程序设计,价格:25.00 价格最低的书:VB 程序设计,价格:18.50 解答: #include int i,n,max_index,min_index; struct{ char name[50]; double price; }book[10]; printf(“n=”); scanf(\for(i=0;i scanf(\max_index = min_index = 0; for(i=1;i if(book[i].price > book[max_index].price) max_index=i; if(book[i].price < book[min_index].price) min_index=i; } printf(\价格最高的书: %s, 价格: %.2lf\\n\book[max_index].name,book[max_index].price); printf(\价格最低的书: %s , 价格: %.2lf\\n\book[min_index].price); } 5.编写程序,输入一个日期(年、月、日),计算并输出该日是该年中的第几天。要求自定 义函数用于计算某日是该年中的第几天,用结构指针作为函数参数(注意闰年问题)。 输入输出示例 2006 3 5 64 解答: #include int day_of_year(struct DATE *p); int main(void) { scanf(\printf(\} int day_of_year(struct DATE *p) { int k, leap; int tab[2][13] = { {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} }; leap=(p->year%4==0&&p->year0!=0||p->year@0==0); 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C语言程序设计及实验指导练习及习题参考答案(8--10)(7)在线全文阅读。
相关推荐: