输入10名学生的序号和每个学生三门功课(数学、英语、C语言程序设
以下程序的功能是按顺序读入10名学生
以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每个学生的平均分数并输出,程序如下:以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每个学生的平均分数并输出,程序如下:#include<iostream>using namespace std;int main() { int n,k;float score,sum,ave;sum = 0.0;for(n = 1;n <=10;n++) { for(k =1;k <=4;k++) { cin>>score;sum += score;} ave=sum/4.0;cout<<"NO."<<n<<"ave:"<<ave<<end1;} return 0;} 上述程序运行后结果不正确,调式中发现有一条语句出现在程序中的位置不正确。
这条语句是非曲直()。
A.sum=0.0;B.sum+=score;C.ave= sum/4.0D.cout<<"NO."<<n<<"ave:"<<ave<<end1;有以下程序: #include <iostream> using namespace std; char *x[]={"First", "Second", "Third" }; void f(char *z[ ]) { cout<<*z++<<end1; } int main ( ) { char **y; y=x; f(y); return 0; }A.产生语法错误B.FirstC.SecpndD.Third以下程序的输出结果是( )。
#include <iostream> using namespace std; int f(int b[],int m, int n) { int i,s = O; for(i = m;i<n;i+=2) s+=b [i]; return s; } int main ( ) { int x a[] = {1,2,3,4,5,6,7,8,9}; x = f(a,3,7); cout<<x<<end1; return 0; }A.10B.18C.8D.15有以下程序: #include <iostream> using namespace std; class MyClass { int m; publ i c: static int n; MyClass ( ) { m = 0; } void setvalue() { m++; n++; } void output () { cout<<"m="<<m<<'' , n="<<n<<end1; } }; int MyClass :: n=0; int main() { MyClass obj1, obj2; obj1.setvalue(); objl.output(); obj2.setvalue( ); obj2.output(); return 0; }A.m= 1 ,n= 1 <换行>m= 1 ,n=1B.m= 1 ,n= 1 <换行>m=1 ,n=2C.m=1,n=1<换行>m=2,n=1D.m=1,n=1<换行>m=2,n=2。
C语言习题及答案(第九章)
9-3编写程序,使用结构体类型,输出一年十二个月的英文名称及相应天数。
解:#include "stdio.h"struct date{char month[10] ;int daynumber ;}main(){int i ;struct datea[12]={{"January",31},{"February",29},{"March",31},{"Aprial",30},{ "May",31},{"June",30},{"july",31},{"August",31},{"September",30}, {"October",31},{"November",30},{"December",31}} ;for(i=0;i<12;i++);printf("%d 月:%s %d\n",i+1,a[i].month,a[i].daynumber) ;}思考:如何对结构体变量进行初始化?对结构体变量的引用为何要体现为分量(或成员)的引用?9-4 编写程序求空间任一点到原点的距离,点用结构体描述。
并请考虑求空间中任意两点的距离的程序。
解:#include "stdio.h"#include "math.h"struct point{float x ;float y ;float z ;} main(){double d1,d2,d ;struct point p1,p2 ;printf("请输入第一个点的坐标:");scanf("%f,%f,%f",&p1.x,&p1.y,&p1.z);printf("请输入第二个点的坐标:");scanf("%f,%f,%f",&p2.x,&p2.y,&p2.z);d1=sqrt(p1.x*p1.x+p1.y*p1.y+p1.z*p1.z);d2=sqrt(p2.x*p2.x+p2.y*p2.y+p2.z*p2.z);d=sqrt((p2.x-p1.x)*(p2.x-p1.x)+(p2.y-p1.y)*(p2.y-p1.y)+(p2.z-p1.z)*( p2.z-p1.z));printf("第一个点到原点的距离:%f\n",d1);printf("第二个点到原点的距离:%f\n",d2);printf("两点间的距离:%f\n",d);}9-5 编写输入、输出10个朋友数据的通讯录程序,每个朋友数据包括姓名、地址、邮编、电话、传呼、手机等数据。
c语言数组应用题
c语言数组应用题以下是一个简单的C语言数组应用题示例:题目:一个班级有10个学生,每个学生有3门课程的成绩。
请使用数组来存储这些成绩,并计算每个学生的总分和平均分。
以下是C语言代码实现:```cinclude <>int main() {// 定义学生人数和每门课程成绩的数组大小const int STUDENT_COUNT = 10;const int COURSE_COUNT = 3;// 定义学生成绩的数组int scores[STUDENT_COUNT][COURSE_COUNT];// 输入每个学生的每门课程成绩printf("请输入每个学生的每门课程成绩:\n");for (int i = 0; i < STUDENT_COUNT; i++) {for (int j = 0; j < COURSE_COUNT; j++) {scanf("%d", &scores[i][j]);}}// 计算每个学生的总分和平均分for (int i = 0; i < STUDENT_COUNT; i++) {int total_score = 0;for (int j = 0; j < COURSE_COUNT; j++) {total_score += scores[i][j];}float average_score = (float)total_score / COURSE_COUNT; printf("学生%d的总分是%d,平均分是%.2f\n", i+1, total_score, average_score);}return 0;}```在这个示例中,我们首先定义了两个常量`STUDENT_COUNT`和`COURSE_COUNT`,分别表示学生人数和每门课程成绩的数组大小。
然后,我们定义了一个二维数组`scores`来存储每个学生的每门课程成绩。
C语言题解(1013)
第10章1.输入3个整数,按由小到大的顺序输出。
#include<>#include<>int main(){int i,j,k,temp;int *p1,*p2,*p3;printf("请输入三个数,中间用空格分隔:");scanf("%d %d %d",&i,&j,&k);p1=&i;p2=&j;p3=&k;if(*p1<*p2){temp=*p1;*p1=*p2;*p2=temp;}if(*p1<*p3){temp=*p1;*p1=*p3;*p3=temp;}if(*p2<*p3){temp=*p2;*p2=*p3;*p3=temp;}printf("三个数新的顺序是%d %d %d\n",*p1,*p2,*p3);return 0;}2.输入3个字符串,按由小到大的顺序输出。
void sort(char *s[],int k){char *temp;int i,j;for(i=0;i<k;i++)for(j=0;j<k;j++)if(strcmp(s[i],s[j])<0){temp=s[i];s[i]=s[j];s[j]=temp;}}3.输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。
写3个函数:①输入10个数;②进行处理;③输出10个数。
#include <>void main(){int number[10];void input(int *a,int n);void max_min_value(int *a, int n);void output(int *a,int n);input(number,10);max_min_value(number,10);output(number,10);}void input(int *a,int n){int i;printf("Input %d number: ",n);for(i=0;i<n;i++)scanf("%d",&a[i]);}void max_min_value(int *a,int n){int i;int min,max,temp;min=a[0];max=a[n-1];for(i=0;i<n;i++){if(a[i]<min){temp=a[0];a[0]=a[i];a[i]=temp;}if(a[i]>max){temp=a[n-1];a[n-1]=a[i];a[i]=temp;}}}void output(int *a,int n){int i;for(i=0;i<n;i++)printf("%d ",a[i]);printf("\n");}4.有n个整数,使前面各数顺序向后移动m个位置,最后m个数变成最前面m个数(循环移位)。
C语言编程:键盘输入10个学生的成绩,输出低于60分不及格的成绩。(可以有多个低于60的成绩)
C语言编程:键盘输入10个学生的成绩,输出低于60分不及格的成绩。
(可以有多个低于60的成绩)C语言编程:键盘输入10个学生的成绩,输出低于60分不及格的成绩。
(可以有多个低于60的成绩)#include <stdio.h>int main(){double score[10];int i;for(i=0;i<10;i++)scanf("%lf",&score[i]);for(i=0;i<10;i++)if(score[i] < 60)printf("%g ",score[i]);return 0;}C语言编程,从键盘输入10个学生的成绩,由高到低排序输出成绩。
#include<stdio.h>void main(){int nScore[10]={0};int i,j,nTemp;for(i=0;i<10;i++){scanf("%d",&nScore[i]);}/*冒泡法排序*/for(i=0;i<10;i++){for(j=0;j<10-i-1;j++){if(nScore[j]<nScore[j+1]) /*两两比较,小的放后放,一次循环后最小数在最后*/{nTemp=nScore[j];nScore[j]=nScore[j+1];nScore[j+1]=nT emp;}}}printf("由大到小排列为:\n")for(i=0;i<10;i++){printf("%d ",nScore[i]);}printf("\n");}输入八个学生的成绩,输出分数最高的成绩(C语言编程)这个可以使用冒泡法做!C语言编程,从键盘输入10个学生的成绩,试统计出他们的成绩总和及平均值#include <stdio.h>#define MAX 10struct student {char no[10];char name[10];float score[3];}stu[MAX];float ave_course[3] = {0};float ave_student[MAX] = {0};int max_ave_i = 0; 存储平均分最高的学生索引int max_course_i[3] = {0}; 存储单科分数,最高的学生索引录入学生成绩void input(int n) {int i;for(i=0; i<n; i++) {scanf("%s %s", stu[i].no,stu[i].name);scanf("%f %f %f", &stu[i].score[0], &stu[i].score[1], &stu[i].score[2]);}}计算平均成绩void average(int n){int i,j;float max_ave = 0.0f;float max_course[3] = {0};计算每门课的平均成绩for(i=0; i<n; i++) {for(j=0; j<3; j++) {ave_course[j] += stu[i].score[j];if(max_course[j]<stu[i].score[j]){max_course[j]<stu[i].score[j];max_course_i[j] = i;}}}for(j=0; j<3; j++) {ave_course[j] /= n;}计算每个学生的平均成绩for(i=0; i<n; i++) {for(j=0; j<3; j++) {ave_student[i] += stu[i].score[j];}ave_student[i] /= 3;if(max_ave < ave_student[i]) {max_ave = ave_student[i];max_ave_i = i;}}}void main () {int i,j;printf("请输入学生的学号姓名语文数学英语");input(MAX);average(MAX);printf("\n课程的平均成绩是: %6.2f %6.2f %6.2f\n",ave_course[0],ave_course[1],ave_course [2]);printf("\n学生的平均成绩是: \n");for(i=0; i<MAX; i++) {printf(" %s %s %6.2f\n", stu[i].no, stu[i].name, ave_student[i]);}printf("平均分,最高的学生:\n");printf(" 学号=%s, 姓名=%s, 平均分=%6.2f:\n", stu[max_ave_i].no, stu[max_ave_i].name, ave_student[max_ave_i]);printf("语文,最高分的学生:\n");i=max_course_i[0];printf(" 学号=%s, 姓名=%s, 成绩=%6.2f:\n", stu[i].no,stu[i].name, stu[i].score[0]);printf("数学,最高分的学生:\n");i=max_course_i[1];printf(" 学号=%s, 姓名=%s, 成绩=%6.2f:\n", stu[i].no, stu[i].name, stu[i].score[1]);printf("英语,最高分的学生:\n");i=max_course_i[2];printf(" 学号=%s, 姓名=%s, 成绩=%6.2f:\n", stu[i].no, stu[i].name, stu[i].score[2]);getchar();getchar();}C语言编程题用键盘输入10个学生的成绩,求出他们的平均成绩#include<stdio.h>void main(){int i,a[10],sum=0;float avg;printf("please input 10 numbers.\n");for(i = 0;i < 10;i++){scanf("%d",&a[i]);sum+=a[i];}avg=sum*1.0/10;printf("平均成绩为:%.1f\n",avg);}求C语言:输入三门课的成绩,输出不及格的有几门课,并将不及格的成绩输出maim(){int a[3],i=0,sum=0;for(i=0;i<=2;i++){scanf(%D,a[i]);}for(i=0;i<=2;i++){if(a[i]<=60){sum++;printf("%d,%d",a[i],sum);}}}------------------------------应该是这个样子,好久不用了,不太详细,自己好好阅读一下吧。
c语言设计及答案
1 写出下面各程序的运行结果1、#include<stdio.h>main ( ){int i=0, j=0, k=0, m;for (m=0; m<4; m++)switch (m){case 0: i=m++;case 1: j=m++;case 2: k=m++;case 3: m++;}printf(“\n%d, %d, %d, %d”, i, j, k, m);}2、#include<stdio.h>main ( ){int i=1;while (i<=15)if (++i% 3!=2)continue;elseprintf(“%d”, i);}3、#include<stdio.h>add1(int a[ ], int n){ int i;for(i =0;i<n;i++) a[i]++;} main(){ static int array[ ]={0,1,2,3,4,5,6,7,8,9}; int j;add1(array,10);for(j=0;j<10;j++)printf(“%d”,array[j]);}4、union data{ long w;float x;int y;char z;} beta;main( ){ beta.w=123456;beta.y=888;beta.x=3.14;beta.z=’x’;printf(“%c”,beta.y);}5、# include <string.h>typedef struct student{char name[10];long sno;float score;}STU;main( ){STU a={"zhangsan",2001,95},b={"Shangxian",2002,90},c={"Anhua",2003,95},d,*p=&d;d=a;if(strcmp(,)>0) d=b;if(strcmp(,)>0) d=c;printf("%ld%s\n",d.sno,p->name);}四、程序填空1、以下程序是从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入,请将缺省语句填上。
C语言程序:某班有10名同学,建立学生结构体类型,包括学号,姓名,3门课程的成绩,编写程序
C语言程序:某班有10名同学,建立学生结构体类型,包括学号,姓名,3门课程的成绩,编写程序编译代码:#include <stdio.h>#include"string.h"#include <stdlib.h>#define N 100000struct st{char a[15];char b[20];int x,y,z;};int fun1(int *x,int *y){int t;t=*x;*x=*y;*y=t;}int fun2(char *x,char *y){char *t;strcpy(t,x);strcpy(x,y);strcpy(y,t);}int main() {/*_________________________________________________*/ FILE *fp,*ok;char b[N + 1];//判断文件是否打开if ( (fp = fopen("D:\\操作文件1号.txt", "r")) == NULL )/*这里D:\\操作文件1号.txt 是路径;读取D盘下,名为(操作文件1号)的文本文件*/{puts("操作文件1号读取失败!");exit(0);}else{puts("操作文件1号读取成功");puts("开始计算");}/*__________________________________________*/struct st s[111];char t[20],str[N];int aver[111]={0};for(int i=0;i<5;i++){fscanf(fp,"%s%s%d%d%d",s[i].a,s[i].b,&s[i].x,&s[i]. y,&s[i].z);printf("%s %s %d %d %d\n",s[i].a,s[i].b,s[i].x,s[i].y, s[i].z);}printf("按平均成绩排序\n");for(int i=0;i<5;i++){aver[i]=(s[i].x+s[i].y+s[i].z)*1.0/3;}printf("\n");for(int i=0;i<5;i++){for(int j=0;j<4-i;j++){if(aver[j]<aver[j+1]){fun2(s[j].a,s[j+1].a);fun2(s[j].b,s[j+1].b);fun1(&aver[j],&aver[j+1]);fun1(&s[j].x,&s[j+1].x);fun1(&s[j].y,&s[j+1].y);fun1(&s[j].z,&s[j+1].z);}}}if ( (ok = fopen("D:\\操作文件2号.txt", "w")) == NULL )/*D:\\操作文件2号.txt 是路径;写入D盘下,名为(操作文件2号)的文本文件*/{puts("操作文件2号写入失败!");exit(0);}else{puts("操作文件2号写入成功");}for(int i=0;i<5;i++){fprintf(ok,"第%d名;%s %s %d %d %d\n",i+1,s[i].a,s[i].b,s[i].x,s[i].y,s[ i].z);printf("第%d名;%s %s %d %d %d\n",i+1,s[i].a,s[i].b,s[i].x,s[i].y,s[ i].z);}/*___________________________________________*///结束关闭文件fclose(ok);fclose(fp);return 0;}。
假设有10位同学,各有3门课程的成绩。从键盘输入每位同学的学号、姓名和3门课程的成绩,然后。。。
假设有10位同学,各有3门课程的成绩。
从键盘输⼊每位同学的学号、姓名和3门课程的成绩,然后。
代码#include<stdio.h>#include<stdlib.h>#define N 5struct student{char sno[10];char name[10];int grade[3];};void write(){FILE *fp;struct student s[10];int i,j;if((fp=fopen("test.txt","w"))==NULL){printf("⽆法打开⽂件。
\n");exit(1);}printf("请输⼊数据:\n");for(i=0;i<N;i++){printf("请输⼊学号:");scanf("%s",s[i].sno);printf("请输⼊3门课的成绩:");for(j=0;j<3;j++)scanf("%d",&s[i].grade[j]);printf("请输⼊姓名:");scanf("%s",s[i].name);}for(i=0;i<N;i++)fprintf(fp,"%s %s %d %d %d ",s[i].sno,s[i].name,s[i].grade[0],s[i].grade[1],s[i].grade[2]);fclose(fp);}void read(){FILE *fp;struct student s;if((fp=fopen("test.txt","r"))==NULL){printf("⽆法打开⽂件。
上机考试题c++ 抽签
1.某班有10个学生,进行了“数学”、“语文”、“英语”、“C++语言”等科目的考试,编写程序:(1)将考试成绩输入一个二维数组;(2)求每门课的平均成绩、每门课的不及格学生的人数及每门课的最高分与最低分;(3)求每个学生的平均成绩、总分、不及格门数;(4)按学生平均成绩的高低排序并输出。
2.定义一个时间类time,有3个私有成员变量hour,minute ,second,定义构造函数,析构函数以及用于改变,获取,输出时间信息的公有函数,主函数中定义时间对象,并通过调用各种成员函数完成时间的设定,改变,获取,输出等功能。
(1) 按要求完成类的定义与实现(2) 修改数据成员的访问形式(3) 在time类里定义一个成员函数,用于实现时间增加一秒的功能,主函数中通过调用该函数,并输出增加一秒后的时间信息3.输入一行字符,分别统计出其中英文字母、空格、数字字符、其它字符及单词的个数。
4.定义一个描述学生通讯录的类,数据成员包括:姓名、学校、电话号码和邮编;成员函数包括:输出各个数据成员的值,分别设置和获取各个数据成员的值。
5.用类来实现栈的压入和弹出。
提示:1)创建结点类和栈类2)可利用继承关系6.编写一个类,声明一个数据成员和一个整型静态数据成员。
构造函数初始化数据成员,并把静态数据成员加1,析构函数把静态数据成员减1,并且有输出函数。
7.定义Screen类,私有数据成员为屏幕的高度(height)屏幕的宽度(width)公有成员函数为:void print( ):输出高度与宽度int getHeight( ):返回高度int getWidth( ):返回宽度在上面定义的类的基础上,加入构造函数(有两个参数)和析构函数,用构造函数中初始化屏幕的高度和宽度。
在主函数中创建对象并调用print方法,在定义的类的基础上,在析构函数中加入输出语句,在主函数中创建多个对象,然后根据控制台输出理解对象的析构顺序。
C语言课堂练习
按要求完成如下问题: 三、按要求完成如下问题: 1、建立一整形数组并输出;输入一整数,在 、建立一整形数组并输出;输入一整数, 数组中查找与之相等的元素, 数组中查找与之相等的元素,并输出其位 。(要求先描述算法思想 要求先描述算法思想) 置。(要求先描述算法思想) 2、有如下定义:要求编程分别输出各字符串 、有如下定义: 及各串的首字符。 及各串的首字符。
char na[3][10]={"David","Jane Wang","Tom Lee"};
3、求一二维数组中最小值及其下标。 、求一二维数组中最小值及其下标。
按要求完成如下问题: 四、按要求完成如下问题: 1、阅读程序,说明其执行过程并写出执行结果。 、阅读程序,说明其执行过程并写出执行结果。
请问:对于声明: 请问:对于声明: struct data { int year; char month,day; } struct person { char name[15]; struct data birth; }men,*p; 下面的命题哪个正确,为什么? 下面的命题哪个正确,为什么? 结构体中的结构体。 (1) birth是person结构体中的结构体。 ) 是 结构体中的结构体 (2) 设置 ) 设置year时,可写成 时 可写成men.birth.year =1976。 。 (3) 可以使用语句:p->name=”Zhang”;。 ) 可以使用语句: 。
5、阅读下面的程序,指出它们的功能。 、阅读下面的程序,指出它们的功能。
void main() {int add(int m,int n,int arr[]); int total,a[3][4]={5,3,6,8,-2,-4,-7,9,1,0,7,2}; total=add(3,4,a[0]); printf("total=%d",total); } int add(int m,int n,int arr[]) { int i,j,sum=0; for(i=0;i<m;i=i+m-1) for(j=0;j<n;j++) sum+=arr[i*n+j]; for(j=0;j<n;j=j+n-1) for(i=1;i<m-1;i++) sum+=arr[i*n+j]; return (sum); }
学生成绩管理系统实验报告
学生成绩管理系统实验报告《高级语言程序设计》课程设计实验报告题目:学生成绩管理系统专业:班级:姓名:成绩:指导教师:完成日期:2008年06月24日一、目的1(进一步掌握和利用C语言进行程设计的能力; 2、进一步理解和运用结构化程设计的思想和方法; 3、初步掌握开发一个小型实用系统的基本方法; 4、学会调试一个较长程序的基本方法; 5、学会利用流程图或N-S图表示算法;6、掌握书写程设计开发文档的能力(书写课程设计报告);二、内容与设计思想.(1)(系统功能与分析(填写你所设计的菜单及流程图)。
(2).数据结构(3)。
模块设计根据功能需要:源文件函数名功能(3)总体设计思想:(4)调试过程:测试数据及结果,出现了哪些问题,如何修改的(5)程序有待改进的地方及本次实习的收获和建议(7)源程序清单(主要代码)最佳答案C语言课程设计任务书一、题目: 学生成绩管理二、目的与要求1。
目的:(1)基本掌握面向过程程序设计的基本思路和方法;(2)达到熟练掌握C语言的基本知识和技能;(3)能够利用所学的基本知识和技能,解决简单的程序设计问题 2. 要求基本要求:1。
要求利用C语言面向过程的编程思想来完成系统的设计; 2。
突出C语言的函数特征,以多个函数实现每一个子功能; 3。
画出功能模块图;4。
进行简单界面设计,能够实现友好的交互;5。
具有清晰的程序流程图和数据结构的详细定义;6。
熟练掌握C语言对文件的各种操作。
创新要求:在基本要求达到后,可进行创新设计,如系统用户功能控制,对管理员级和一般级别的用户系统功能操作不同三、信息描述输入一个班10个学生的学号和每个学生考试三门功课(数学、英语、计算机基础)的成绩。
编程计算出每个学生的总分和平均分,并按学生成绩优劣排序,最后打印一张按高分到低分名次排序的成绩单。
要求:1)排序用一个函数实现。
2)打印的成绩单表项包括:序号,学号、数学、英语、计算机、总分、平均分。
3)按实验报告电子模板格式填写实验内容。
C程序稍难题
程序设计题稍难题:1、输入10位学生的成绩,用函数实现:将10位学生的成绩按从高到低进行排名。
将源程序取名为sheji2.1.cpp并存入考生文件夹。
#include<stdio.h>void sort(int b[20]){int i,j;int temp;for(i=0;i<10;i++)for(j=0;j<10;j++){if(b[i]<b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}for(i=0;i<10;i++)printf("%d ",b[i]);printf("\n");}void main(){int i;int a[10];printf("Please input 10 students score!\n");for(i=0;i<10;i++){printf("Please input %d student score:",i+1);scanf("%d",&a[i]);}printf("排名前成绩:");for(i=0;i<10;i++)printf("%d ",a[i]);printf("\n");printf("排名后成绩:");sort(a);}2、输入3个学生3门课(语文、英语、数学)的成绩,用函数求:找出总分最高的分数所对应的学号和总成绩。
将源程序取名为sheji2.2.cpp并存入考生文件夹。
#include <stdio.h>struct student{int num;int chinese;int english;int math;int sum;}stu[3];void main(){void max(void);int i;for(i=0;i<3;i++){printf("请输入第%d个学生的成绩:\n",i+1);printf("请输入学号:");scanf("%d",&stu[i].num);printf("\n语文成绩:");scanf("%d",&stu[i].chinese);printf("\n数学成绩:");scanf("%d",&stu[i].math);printf("\n英语成绩:");scanf("%d",&stu[i].english);//scanf("%d%d%d%d",&stu[i].num,&stu[i].chinese,&stu[i].english,&stu[i].math);stu[i].sum=stu[i].chinese+stu[i].english+stu[i].math;}max();}void max(void){ int i,j,total=0,number=0;for(i=0;i<1;i++)for(j=i+1;j<3;j++)if(stu[i].sum<stu[j].sum){total=stu[j].sum;number=stu[j].num;}printf("总分最高的学生成绩是%d,学号是%d",total,number);}3、求1!-2!+3!-4! +……+49!-50!的和。
输入10名学生的序号和每个学生三门功课(数学、英语、C语言程序设计)的成绩,编程计算出每个学生的总分
#include<stdio.h>#include<stdlib.h>struct student{ int num;int math;int english;int c;int sum;int average;};void main(){struct student s[10];int i;void sum( student s[]);void average(student s[]);void sort(student s[]);void print(student s[]);void search(student s[]);for(i=0;i<10;i++){printf("请输入%d个学生的信息-------学号------数学成绩------英语成绩-----c语言成绩\n",i+1); scanf("%d,%d,%d,%d",&s[i].num,&s[i].math,&s[i].english,&s[i].c);}sum(s);average(s);sort(s);search(s);print(s);system("pause");//我用的是vs2010编译器,楼主用别的话改下这条}void sum( student s[]){ int i;for(i=0;i<10;i++)s[i].sum=s[i].math+s[i].english+s[i].c;}void average(student s[]){int i;for(i=0;i<10;i++)s[i].average=(s[i].math+s[i].english+s[i].c)/3;}void sort(student s[]){int i,j,k;struct student temp;for(i=0;i<10;i++){ k=i;for(j=i+1;j<10;j++)if(s[k].sum<s[j].sum)k=j;if(k!=i){temp=s[i];s[i]=s[k];s[k]=temp;}}}void search(student s[]){int mid,low,high,found;low=0;high=9;found=0;while(low<=high){mid=(high+low)/2;if(s[mid].average==85){found=1;break;}else if(85>s[mid].average)high=mid-1;else low=mid+1;}if(found==1)printf("平均分为85分的学生序号为%d\n",s[mid].num);else printf("平均分为85分的学生不存在\n");}void print(student s[]){int i;printf("学号--数学成绩---英语成绩---c语言课程设计成绩---平均分---总分\n");for(i=0;i<10;i++)printf("%-4d%5d%5d%5d%5d%5d\n",s[i].num,s[i].math,s[i].english,s[i].c,s[i].average,s[i].s um);}。
以下程序的功能是按顺序读入10名学生
以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:
main()
int n.k;
float score.sum,ave;
sum=0.0;
for(n=1;n<=10;n++)
for(k=1;k<=4;k++)
scanf("%f",&score);
sum+=score;
ave=sum/4.0;
printf("NO%d:%f\n",n,ave);
上述程序运行后结果不正确,调试中发现有―条语句出现在程序中的位置不正确。
这条语句是
A.sum=0.0;
B.sum+=score;
C.ave=sun/4.0;
D.printf("NO%d:%f\n",n,ave);
正确答案
A
答案解析
[解析] 程序中使用了两层for循环,外层循环的作用是控制人数,循环一次是求一个人的成绩和,然后除以4得到平均成绩。
每个人的成绩总和一开始时都必须清0,否则就会出现后面人的总成绩越来越大。
“sum=0.0”;应在外层循环中。
选项A正确。
设计10名学生成绩信息,同学有3门课程,计算同学的总成绩和平均分。排序输出
设计10名学⽣成绩信息,同学有3门课程,计算同学的总成绩和平均分。
排序输出import java.util.Scanner;public class StudGrade {private String name;private String num;private double english;private double math;private double chinese;public StudGrade(String name, String num, double english, double math, double chinese) { = name;this.num = num;this.english = english;this.math = math;this.chinese = chinese;}public double score() {return english + math + chinese;}public double everyaverage() {return score() / 3;}public void show(){System.out.println(name+"\t"+num+"\t"+english+"\t"+math+"\t"+chinese+"\t"+score()+"\t"+everyaverage()+"\n");}public static void main(String[] args) {StudGrade stud[] = new StudGrade[10];stud[0] = new StudGrade("张华", "001201", 66, 98, 100);stud[1] = new StudGrade("刘密", "001202", 78, 98, 99);stud[2] = new StudGrade("张疏风", "001203", 97, 99, 89);stud[3] = new StudGrade("黄伟", "001204", 88, 97, 100);stud[4] = new StudGrade("李晓丽", "001205", 90, 99, 90);stud[5] = new StudGrade("王轩", "001206", 78, 98, 100);stud[6] = new StudGrade("伍林", "001207", 89, 98, 90);stud[7] = new StudGrade("朱丽叶", "001208", 89, 98, 80);stud[8] = new StudGrade("⽅华强", "001209", 79, 98, 98);stud[9] = new StudGrade("杨慧", "001210", 67, 87, 100);System.out.println("排序前⼗个学⽣的信息为:\n姓名\t学号\t英语\t数学\t语⽂\t总分\t平均分\n");for(int i=0;i<10;i++){stud[i].show();}for(int i=0;i<10;i++){for(int j=i+1;j<10;j++)if(stud[j].score()>stud[i].score()) {StudGrade temp=stud[j];stud[j]=stud[i];stud[i]=temp;}}System.out.println("从⾼到低排序后⼗个学⽣的信息为:\n姓名\t学号\t英语\t数学\t语⽂\t总分\t平均分\n");for(int i=0;i<10;i++){stud[i].show();}for(int i=0;i<10;i++){double allscore=+stud[i].score();}double allscore=stud[0].score()+stud[1].score()+stud[2].score()+stud[3].score()+stud[4].score()+stud[5].score()+stud[6].score()+stud[7].score()+stud[8].score()+stud[9].score(); double allaverage=allscore/10;System.out.println("总成绩="+allscore+"\n"+"总平均分="+allaverage);}结果为:"C:\Program Files\JDK\bin\java" "-javaagent:D:\\IntelliJ IDEA Community Edition 2017.3.5\lib\idea_rt.jar=51249:D:\\IntelliJ IDEA Community Edition 2017.3.5\bin" -Dfile.encoding=UTF-8 -classpath D:\zuoye2\out\production\zuoye2 StudGrade排序前⼗个学⽣的信息为:姓名学号英语数学语⽂总分平均分张华 001201 66.0 98.0 100.0 264.0 88.0刘密 001202 78.0 98.0 99.0 275.0 91.66666666666667张疏风 001203 97.0 99.0 89.0 285.0 95.0黄伟 001204 88.0 97.0 100.0 285.0 95.0李晓丽 001205 90.0 99.0 90.0 279.0 93.0王轩 001206 78.0 98.0 100.0 276.0 92.0伍林 001207 89.0 98.0 90.0 277.0 92.33333333333333朱丽叶 001208 89.0 98.0 80.0 267.0 89.0⽅华强 001209 79.0 98.0 98.0 275.0 91.66666666666667杨慧 001210 67.0 87.0 100.0 254.0 84.66666666666667从⾼到低排序后⼗个学⽣的信息为:姓名学号英语数学语⽂总分平均分张疏风 001203 97.0 99.0 89.0 285.0 95.0黄伟 001204 88.0 97.0 100.0 285.0 95.0李晓丽 001205 90.0 99.0 90.0 279.0 93.0伍林 001207 89.0 98.0 90.0 277.0 92.33333333333333王轩 001206 78.0 98.0 100.0 276.0 92.0刘密 001202 78.0 98.0 99.0 275.0 91.66666666666667⽅华强 001209 79.0 98.0 98.0 275.0 91.66666666666667朱丽叶 001208 89.0 98.0 80.0 267.0 89.0张华 001201 66.0 98.0 100.0 264.0 88.0杨慧 001210 67.0 87.0 100.0 254.0 84.66666666666667总成绩=2737.0总平均分=273.7Process finished with exit code 0}。
C语言程序设计 作业8
作业八--用户定制数据类型1. 编写程序处理10个学生的信息,每个学生的信息包括:学号、姓名、三门课程成绩。
要求从键盘输入学生的数据,并输出成绩表(包括每个学生的学号、姓名、三门课程成绩及平均分数),并输出平均分在前3名的学生的姓名及平均分。
程序如下:#define N 10#include "stdio.h"struct data{int student_id;char name[10];int score[3];float average;};int i,j;struct data student[N],t;void average(struct data student[]){for(i=0;i<N-1;i++)for(j=0;j<N-1-i;j++)if(student[j].average<student[j+1].average){t=student[j];student[j]=student[j+1];student[j+1]=t;}printf("The top three student is:\n");for(i=0;i<3;i++)printf("name:%s , average:%f\n",student[i].name,student[i].average);}void list(struct data student[]){printf("student_id name score1 score2 score3 average\n");for(i=0;i<N;i++)printf("%5d %10s %3d %3d %3d %4.1f\n",student[i].student_id,student[i].name,student[i].score[0],student[i].score[1],student[i].score[2],student[i].average);}main(){for(i=1;i<=N;i++){printf("please input student[%d]_ID,name and three score:",i);scanf("%d%s%d%d%d",&student[i-1].student_id,student[i-1].name,&student[i-1].score[0],&student[i-1].score[1] ,&student[i-1].score[2]);}for(i=0;i<N;i++)student[i].average=(student[i].score[0]+student[i].score[1]+student[i].score[2])/3.0;average(student);list(student);getch();}}调试结果:2. 10个职工参加计算机等级考试,每个人的信息包括:考号、姓名、性别、成绩。
一道经典的C++结构体的题目
⼀道经典的C++结构体的题⽬题⽬描述:有10个学⽣,每个学⽣的数据包括学号、姓名、英语、数学、物理三门课的成绩,从键盘输⼊10个学⽣数据,要求打印出3门课程的总平均成绩,以及最⾼分的学⽣的数据(包括学号,姓名,3门课的平均成绩,平均分数)。
c++代码:#include<iostream>#include<string>using namespace std;struct Student{//声明结构体Studentstring num;string name;float english;float match;float physics;float average;};void shuchu(Student &s){//结构体内容输出的函数cout<<s.num<<"\t";cout<<<<"\t";cout<<s.english<<"\t";cout<<s.match<<"\t";cout<<s.physics<<"\t";cout<<s.average<<endl;}int main(){Student s[10];//声明结构体数组cout<<"num\tname\tenglish\tmatch\tphysics"<<endl;int i=0;for(;i<10;i++){//初始化结构统计数据cin>>s[i].num;cin>>s[i].name;cin>>s[i].english;cin>>s[i].match;cin>>s[i].physics;s[i].average=(s[i].english+s[i].match+s[i].physics)/3;}float max=s[0].average;int k=1;cout<<"=============show data======="<<endl;for(i=0;i<10;i++){shuchu(s[i]);//输出结构体的内容if(s[i].average>max){//通过打擂台法获得平均分最⾼的数据k=i;max=s[i].average;}}cout<<"The hightest:"<<endl;shuchu(s[k]);//输出最⾼分数据cout<<endl;return 0;}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include<stdio.h>
#include<stdlib.h>
struct student
{ int num;
int math;
int english;
int c;
int sum;
int average;
};
void main()
{struct student s[10];
int i;
void sum( student s[]);
void average(student s[]);
void sort(student s[]);
void print(student s[]);
void search(student s[]);
for(i=0;i<10;i++)
{
printf("请输入%d个学生的信息-------学号------数学成绩------英语成绩-----c语言成绩\n",i+1); scanf("%d,%d,%d,%d",&s[i].num,&s[i].math,&s[i].english,&s[i].c);
}
sum(s);
average(s);
sort(s);
search(s);
print(s);
system("pause");//我用的是vs2010编译器,楼主用别的话改下这条
}
void sum( student s[])
{ int i;
for(i=0;i<10;i++)
s[i].sum=s[i].math+s[i].english+s[i].c;
}
void average(student s[])
{
int i;
for(i=0;i<10;i++)
s[i].average=(s[i].math+s[i].english+s[i].c)/3;
}
void sort(student s[])
{
int i,j,k;
struct student temp;
for(i=0;i<10;i++)
{ k=i;
for(j=i+1;j<10;j++)
if(s[k].sum<s[j].sum)
k=j;
if(k!=i)
{temp=s[i];
s[i]=s[k];
s[k]=temp;
}
}
}
void search(student s[])
{int mid,low,high,found;
low=0;
high=9;
found=0;
while(low<=high)
{mid=(high+low)/2;
if(s[mid].average==85){found=1;break;}
else if(85>s[mid].average)
high=mid-1;
else low=mid+1;
}
if(found==1)
printf("平均分为85分的学生序号为%d\n",s[mid].num);
else printf("平均分为85分的学生不存在\n");
}
void print(student s[])
{int i;
printf("学号--数学成绩---英语成绩---c语言课程设计成绩---平均分---总分\n");
for(i=0;i<10;i++)
printf("%-4d%5d%5d%5d%5d%5d\n",s[i].num,s[i].math,s[i].english,s[i].c,s[i].average,s[i].s um);
}。