2021-12-06 自动化专业C语言上机作业参考答案15

news/2024/12/22 2:58:16/

上机练习15

p765.c

 根据要求编写程序P765.C的指定部分:程序P765.C已编写部分代码(单击此处下载),请根据程序中的要求完善程序——注意,除指定位置外,不能对程序中已有部分作任何修改或重新编写一个程序,否则作0分处理。程序的功能是:有五个学生,每个学生的数据包括学号、姓名(最长19字节)、三门课的成绩,从键盘输入五个学生的数据,计算每个学生的平均成绩并按平均成绩由高到低排序,并将排序结果显示。要求用结构体编程,变量数据类型的选择应适当,在保证满足设计要求精度的情况下,养成不浪费内存空间和计算时间的好习惯。编程可用素材:printf("Please input info of students:No Name Math English Computer\n")...。程序的运行效果应类似地如图1所示,图1中的:2001 wanghai    78 83 902003 zhangzhong 82 80 982005 liumei     95 81 902006 sunqian    70 77 902009 jiansansa  63 87 90是从键盘输入的内容。
#include <stdio.h>
#include <stdlib.h>/* User Code Begin(考生可在本行后添加代码,行数不限) */
typedef struct
{int num;char name[20];int math;int english;int computer;float average;
} STUDENT;
void input(STUDENT *pStu, int n);
void sort(STUDENT *pStu, int n);/* User Code End(考生添加代码结束) */int main(void)
{STUDENT myclass[5], *pStu = myclass;int i;const int N = 5;/* User Code Begin(考生可在本行后添加代码,行数不限) */input(myclass, N);sort(myclass, N);/* User Code End(考生添加代码结束) */printf("\nResult of sort:\n");printf("Num   Name                 Math     English  Computer Average\n");for (i = 0; i < N; i++){printf("%-5d %-20s %-8d %-8d %-8d %-.2f\n", (pStu + i)->num, (pStu + i)->name,(pStu + i)->math, (pStu + i)->english, (pStu + i)->computer, (pStu + i)->average);}return 0;
}/* User Code Begin(考生在此后根据设计需要完成程序的其它部分,行数不限) */
void input(STUDENT *pStu, int n)
{int i;printf("Please input info of students:No Name Math English Computer\n");for (i = 0; i < n; i++){printf("%d:", i + 1);scanf("%d %s %d %d %d", &pStu[i].num, pStu[i].name, &pStu[i].math, &pStu[i].english, &pStu[i].computer);pStu[i].average = 1.0 / 3.0 * (pStu[i].math + pStu[i].english + pStu[i].computer);}
}void sort(STUDENT *pStu, int n)
{int i, j;STUDENT tmp;for (i = 0; i < n - 1; i++) // 只需n-1轮{for (j = i + 1; j < n; j++) // 从i的身后开始比较,比到最一个元素{if (pStu[i].average < pStu[j].average){tmp = pStu[i];pStu[i] = pStu[j];pStu[j] = tmp;}}}
}

p801.c

根据要求编写程序P801.C的指定部分:程序P801.C已编写部分代码(单击此处下载),请根据程序中的要求完善程序——注意,除指定位置外,不能对程序中已有部分作任何修改或重新编写一个程序,否则作0分处理。程序的功能是:有五个学生,每个学生的数据包括学号、姓名(最长19字节)、三门课的成绩,从键盘输入五个学生的数据,并计算每个学生的平均成绩,最后显示最高平均分的学生的信息(包括学号,姓名,三门课的成绩,平均分数)。程序的运行效果应类似地如图1所示,图1中的:2001 wanghai    78   83.5 902003 zhangzhong 82   80   98.52005 liumei     95.2 81   902006 sunqian    70   77.2 902009 jiansansa  63   87   90.3是从键盘输入的内容。
#include <stdio.h>struct student
{int num;char name[20];float score1, score2, score3;float aver;
};void Input(struct student *pStu, int n);
int Highest(struct student *pStu, int n);int main(void)
{int high; /* high记录平均分最高的学生的序号,具体使用参考后面的代码 */struct student myClass[5];/* 本部分代码功能建议:调用相应的函数完成数据输入和统计 *//* User Code Begin(Limit: lines<=2, lineLen<=50, 考生可在本行后添加代码、最多2行、行长<=50字符) */Input(myClass, 5);high = Highest(myClass, 5);/* User Code End(考生添加代码结束。注意:空行和单独为一行的{与}均不计行数、行长不计行首tab缩进) */printf("\nThe Highest is %s(%d)\nscore1=%.2f  score2=%.2f  score3=%.2f  aver=%.2f\n",myClass[high].name, myClass[high].num,myClass[high].score1, myClass[high].score2, myClass[high].score3, myClass[high].aver);return 0;
}/* 输入N个学生的信息并计算平均分 */
void Input(struct student *pStu, int n)
{int i;struct student tmpStu;printf("Please input students  info:Num Name score1 score2 score3\n");for (i = 0; i < n; i++){printf("%d:", i + 1);scanf("%d%s%f%f%f", &tmpStu.num, tmpStu.name,&tmpStu.score1, &tmpStu.score2, &tmpStu.score3);pStu[i] = tmpStu;pStu[i].aver = (pStu[i].score1 + pStu[i].score2 + pStu[i].score3) / 3.0f;}
}/* 找出并通过函数值返回最高平均分学生的序号 */
int Highest(struct student *pStu, int n)
{int i, pos = 0;/* User Code Begin(考生可在本行后添加代码,行数不限) */float tmpAver = pStu[0].aver;for (i = 1; i < n; i++){if (tmpAver < pStu[i].aver){pos = i;}}/* User Code End(考生添加代码结束) */return pos;
}

p807.c

根据要求编写程序P807.C的指定部分:程序P807.C已编写部分代码(单击此处下载),请根据程序中的要求完善程序——注意,除指定位置外,不能对程序中已有部分作任何修改或重新编写一个程序,否则作0分处理。程序的功能是:有五个学生,每个学生的数据包括学号、姓名(最长19字节)、三门课的成绩,从键盘输入五个学生的数据,并计算每个学生的平均成绩,最后显示最高平均分的学生的信息(包括学号,姓名,三门课的成绩,平均分数)。程序的运行效果应类似地如图1所示,图1中的:2001 wanghai    78   83.5 902003 zhangzhong 82   80   98.52005 liumei     95.2 81   902006 sunqian    70   77.2 902009 jiansansa  63   87   90.3是从键盘输入的内容。
#include <stdio.h>/* User Code Begin(考生可在本行后添加代码,定义程序中使用的数据类型SCORE,行数不限) */
typedef struct
{int num;char name[20];float score1;float score2;float score3;float aver;
} SCORE;
/* User Code End(考生添加代码结束) */void Input(SCORE *pStu, int n);
int Highest(SCORE *pStu, int n);int main(void)
{int high; /* high记录平均分最高的学生的序号,具体使用参考后面的代码 */SCORE myClass[5];/* 本部分代码功能建议:调用相应的函数完成数据输入和统计 *//* User Code Begin(Limit: lines<=2, lineLen<=50, 考生可在本行后添加代码、最多2行、行长<=50字符) */Input(myClass, 5);high = Highest(myClass, 5);/* User Code End(考生添加代码结束。注意:空行和单独为一行的{与}均不计行数、行长不计行首tab缩进) */printf("\nThe Highest is %s(%d)\nscore1=%.2f  score2=%.2f  score3=%.2f  aver=%.2f\n",myClass[high].name, myClass[high].num,myClass[high].score1, myClass[high].score2, myClass[high].score3, myClass[high].aver);return 0;
}/* 输入N个学生的信息并计算平均分 */
void Input(SCORE *pStu, int n)
{int i;SCORE tmpStu;printf("Please input students  info:Num Name score1 score2 score3\n");for (i = 0; i < n; i++){printf("%d:", i + 1);scanf("%d%s%f%f%f", &tmpStu.num, tmpStu.name,&tmpStu.score1, &tmpStu.score2, &tmpStu.score3);pStu[i] = tmpStu;pStu[i].aver = (pStu[i].score1 + pStu[i].score2 + pStu[i].score3) / 3.0f;}
}/* 找出并通过函数值返回最高平均分学生的序号 */
int Highest(SCORE *pStu, int n)
{int i, pos = 0;/* User Code Begin(考生可在本行后添加代码,行数不限) */float tmpAver = pStu[0].aver;for (i = 1; i < n; i++){if (tmpAver < pStu[i].aver){pos = i;}}/* User Code End(考生添加代码结束) */return pos;
}

p814.c

根据要求编写程序P814.C的指定部分:程序P814.C已编写部分代码(单击此处下载),请根据程序中的要求完善程序(在指定的位置添加代码或将__________换成代码)——注意,除指定位置外,不能对程序中已有部分作任何修改或重新编写一个程序,否则作0分处理。程序的功能是:输入3行3列的矩阵,输出所有元素的累加和。
#include <stdio.h>/* userCode(<50字符): 自定义函数之原型声明 */
int getSum(int num[3][3]);int main(void)
{int num[3][3], i, j, sum;printf("Please input the 3x3 Matrix:\n");for (i = 0; i < 3; i++){for (j = 0; j < 3; j++){scanf("%d", &num[i][j]);}}sum = getSum(num); /* userCode(<50字符): 调用函数计算矩阵所有元素之和 */printf("\nsum=%d\n", sum);return 0;
}/* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */
int getSum(int num[3][3])
{int i, j;int sum = 0;for (i = 0; i < 3; i++){for (j = 0; j < 3; j++){sum += num[i][j];}}return sum;
}

p816.c

 根据要求编写程序P816.C的指定部分:程序P816.C已编写部分代码(单击此处下载),请根据程序中的要求完善程序(在指定的位置添加代码或将__________换成代码)——注意,除指定位置外,不能对程序中已有部分作任何修改或重新编写一个程序,否则作0分处理。程序的功能是:输入两个整数m和n,输出大于等于m(m>5)的n个素数,输出的各素数间以空格相隔。注:素数(Prime Number),亦称质数,指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。
#include <stdio.h>
#include <math.h>/* userCode(<50字符): 自定义函数之原型声明 */
int isPrime(int m);int main(void)
{int m, n, cnt;printf("Input the m, n: ");scanf("%d,%d", &m, &n);printf("\nThe result:\n");for (cnt = 0; cnt < n; m++){if (isPrime(m)) /* userCode(<50字符): 调用函数判断m是否为素数 */{printf("%d ", m);cnt++;}}putchar('\n');return 0;
}/* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */
int isPrime(int m)
{int flag = 1;int i;for (i = 2; i < m; i++){if (m % i == 0){flag = 0;break;}}return flag;
}

p818.c

根据要求编写程序P818.C的指定部分:程序P818.C已编写部分代码(单击此处下载),请根据程序中的要求完善程序(在指定的位置添加代码或将__________换成代码)——注意,除指定位置外,不能对程序中已有部分作任何修改或重新编写一个程序,否则作0分处理。程序的功能是:找出任意的一个m×n矩阵每一行上的最大值的列下标并按示例格式要求显示。m、n(2<=m<=20、2<=n<=20)及矩阵元素从键盘输入。编程可用素材:printf("The max value in line %d is %d\n"…。
#include <stdio.h>#define N 20/* userCode(<50字符): 自定义函数之原型声明 */
void show(int arr[N][N], int m, int n);int main(void)
{int m, n;int hang, lie, juZhen[N][N];printf("Please input m and n: ");scanf("%d%d", &m, &n);printf("Please input a juZhen(%d hang, %d lie):\n", m, n);for (hang = 0; hang < m; hang++){for (lie = 0; lie < n; lie++){scanf("%d", &juZhen[hang][lie]);}}puts("");show(juZhen, m, n); /* userCode(<50字符): 调用函数找出每一行上的最大值的列下标并按示例格式要求显示 */return 0;
}/* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */
void show(int arr[N][N], int m, int n)
{int col, data;int i, j;for (i = 0; i < m; i++){data = arr[i][0];col = 0;for (j = 1; j < n; j++){if (data < arr[i][j]){data = arr[i][j]; // 擂主更新col = j;          // 书记员记数}}printf("The max value in line %d is %d\n", i, col);}
}

p820.c

 根据要求编写程序P820.C的指定部分:程序P820.C已编写部分代码(单击此处下载),请根据程序中的要求完善程序(在指定的位置添加代码或将__________换成代码)——注意,除指定位置外,不能对程序中已有部分作任何修改或重新编写一个程序,否则作0分处理。程序的功能是:从键盘输入一个整数n,计算对应的函数f(n)值,并按示例格式输出相应信息。函数f(n)的定义如下:┌ 1             (n=1)f(n)= ├ 2*f(n/2) + n  (n>1)└ 0             (n<1)
#include <stdio.h>/* userCode(<50字符): 自定义函数之原型声明 */
long int fn(int n);int main(void)
{int n;long int Fn;printf("Please input a number: ");scanf("%d", &n);Fn = fn(n); /* userCode(<50字符): 调用函数计算f(n) */printf("\nf(%d) = %ld\n", n, Fn);return 0;
}/* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */
long int fn(int n)
{if (1 == n){return (long int)1;}else if (n > 1){return 2 * fn(n / 2) + n;}else{return 0;}
}

p821.c

根据要求编写程序P821.C的指定部分:程序P821.C已编写部分代码(单击此处下载),请根据程序中的要求完善程序(在指定的位置添加代码或将__________换成代码)——注意,除指定位置外,不能对程序中已有部分作任何修改或重新编写一个程序,否则作0分处理。程序的功能是:从键盘输入一个整数n(n≥0)和x,计算对应的n阶勒让德多项式Pn(x)的值,并按示例格式输出相应信息。n阶勒让德多项式Pn(x)的定义如下:┌ 1                                  (n=0)Pn(x)= ├ x                                  (n=1)└((2n-1)xPn-1(x) - (n-1)Pn-2(x)) / n   (n>1)
#include <stdio.h>/* userCode(<50字符): 自定义函数之原型声明 */
double pnx(int n, int x);int main(void)
{double Pnx;int n, x;printf("please input n, x: ");scanf("%d,%d", &n, &x);Pnx = pnx(n, x); /* userCode(<50字符): 调用函数计算Pn(x) */printf("\nThe answer is %.6f.\n", Pnx);return 0;
}/* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */
double pnx(int n, int x)
{if (0 == n){return 1;}else if (1 == n){return x;}else if (n > 1){return ((2 * n - 1) * x * pnx(n - 1, x) - (n - 1) * pnx(n - 2, x)) / n;}
}

p823.c

根据要求编写程序P823.C的指定部分:程序P823.C已编写部分代码(单击此处下载),请根据程序中的要求完善程序(在指定的位置添加代码或将__________换成代码)——注意,除指定位置外,不能对程序中已有部分作任何修改或重新编写一个程序,否则作0分处理。程序的功能是:将m(2<=m<=20)行m列的二维数组arrayA中的最后一行放到二维数组arrayB的第0列中,把二维数组arrayA中的第0行放到二维数组arrayB的最后一列中,二维数组arrayB中的其他数据和arrayA一致。
#include <stdio.h>#define MAX 20/* userCode(<80字符): 自定义函数之原型声明 */
void set(int arrayA[MAX][MAX], int arrayB[MAX][MAX], int m);int main(void)
{int arrayA[MAX][MAX], arrayB[MAX][MAX], i, j, m;printf("Please input m: ");scanf("%d", &m);printf("Please input arrayA:\n");for (i = 0; i < m; i++){for (j = 0; j < m; j++){scanf("%d", &arrayA[i][j]);}}set(arrayA, arrayB, m); /* userCode(<60字符): 调用函数实现数组内容变换 */printf("\nafter rotate:\n");for (i = 0; i < m; i++){for (j = 0; j < m; j++){printf("%6d", arrayB[i][j]);}putchar('\n');}return 0;
}/* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */
void set(int arrayA[MAX][MAX], int arrayB[MAX][MAX], int m)
{int i, j;for (i = 0; i < m; i++){for (j = 0; j < m; j++){arrayB[i][j] = arrayA[i][j];}}for (i = 0; i < m; i++){arrayB[i][0] = arrayA[m - 1][i];arrayB[i][m - 1] = arrayA[0][i];}
}

p833.c

根据要求编写程序P833.C的指定部分:程序P833.C已编写部分代码(单击此处下载),请根据程序中的要求完善程序(在指定的位置添加代码或将__________换成代码)——注意,除指定位置外,不能对程序中已有部分作任何修改或重新编写一个程序,否则作0分处理。程序的功能是:先从键盘读入m与n(约定m,n的范围为2~20),再读入m×n矩阵,然后对该矩阵进行转置,最后输出转置后的矩阵。
#include <stdio.h>#define MAX 20/* userCode(<100字符): 自定义函数之原型声明 */
void rotate(int arrA[MAX][MAX], int arrB[MAX][MAX], int m, int n);int main(void)
{int arrA[MAX][MAX], arrB[MAX][MAX], i, j, m, n;printf("请输入 m n: ");scanf("%d %d", &m, &n);printf("请输入 %d 行 %d 列矩阵:\n", m, n);for (i = 0; i < m; i++){for (j = 0; j < n; j++){scanf("%d", &arrA[i][j]);}}rotate(arrA, arrB, m, n); /* 调用函数进行转置 */printf("\n转置后的矩阵为:\n");for (i = 0; i < n; i++){for (j = 0; j < m; j++){printf("%5d ", arrB[i][j]);}putchar('\n');}return 0;
}/* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */
void rotate(int arrA[MAX][MAX], int arrB[MAX][MAX], int m, int n)
{int i, j;for (i = 0; i < m; i++){for (j = 0; j < n; j++){arrB[j][i] = arrA[i][j];}}
}

http://www.ppmy.cn/news/900057.html

相关文章

P800W利用局域网连接到Internet设置方法

前天新上手的 P800W&#xff0c;无论如何设置&#xff0c;始终不能通过数据线共享PC网络上Internet,连接时始终自动连接GPRS&#xff0c;很是郁闷。本人PC是利用局域网上网&#xff0c;难道快速GPS也要付GPRS流量费吗&#xff1f;我们的口号是“能省一分是一分&#xff01;&am…

dopod p800不能同步的问题

症状&#xff1a;ActiveSync连不上&#xff0c;或有时可以有时不可以。 1。防火墙 选同意&#xff0e; 注释&#xff1a;比如天网&#xff0c;可以重新写一个规则&#xff0c;允许如 &#xff15;&#xff17;&#xff12;&#xff11;等端口开放&#xff0e; 2。VPN 删除&…

计算机作业 配置一台计算机,一台计算机的配置标有PⅢ1000,其中1000代表()。A.CPU主频B.计算机价格C.硬盘容量D.以上均不是 - 作业在线问答...

相关题目与解析 2&#xff0e;一台计算机的配置标有PⅢ1000&#xff0c;其中1000代表()。A&#xff0e;CPU主频B&#xff0e;计算机价格C&#xff0e; 一台计算机的配置标有PⅢ800&#xff0c;其中800代表()。A&#xff0e;CPU主频B&#xff0e;计算机价格C&#xff0e;硬盘容量…

对DOPOD P800W GPS设置一文的质疑.

原文地址是, http://blog.sina.com.cn/s/blog_5408bdc50100061y.html 内容如下: " DOPOD P800W GPS设置 1.蓝牙 DOPOD P800W 虽然内置了GPS接收模块,但GPS接收模块与PDA之间是用蓝牙进行通信,所以使用GPS功能时,需要打开蓝牙功能. 2.端口设置与波特率 机器硬起时可以看到…

主客观语音质量评估

在语音降噪和盲源分离、语音合成等任务中&#xff0c;最后都会用语音质量评估指标来说明自己的算法效果&#xff0c;今天来详细梳理一下都有哪些方法。 音频质量评价当前主要分三种评价标准&#xff1a; 主观评价&#xff1a;主要是依靠人为的听&#xff0c;然后按照5分或者7…

\t\twince下的重起和关屏、休眠调用方法,Wm6.1 P800测试通过

一、重启PPC ExitWindowsEx(2,0); &#xff08;注意在Uses中必须加入aygshell&#xff0c;否则不能调用&#xff0c;为这个我找了好久的资料&#xff09;二、休眠 最简单&#xff0c;直接调用 GwesPowerOffSystem; 三、关屏&#xff0c;比较复杂一些&#xff0c;提供一段完…

第十一次c语言答案,第十一次c语言作业.doc

第十一次c语言作业 第次课作业 请指针 题-1 题码:  章节:  考查点:  难度:1 根据要求编写程序P803.C的指定部分:  程序P803.C已编写部分代码 单击此处下载 ,请根据程序中的要求完善程序——注意,除指定位置外,不能对程序中已有部分作任何修改或重新编写一个程序…

「主板」华硕 P4P800 Deluxe (INTEL 865PE +INTEL ICH5R)

华硕 P4P800 Deluxe ------产品上市日期: 2004-03-10 现价1299&#xff08;已停产&#xff09; 主要性能TOP 产品名称华硕 P4P800 Deluxe    类型台式主板集成声卡&#xff1b;网卡芯片组Intel 865PE芯片组描述ICH5R南桥音频芯片ADI AD1985 SoundMAX…