[说明] 本程序接收输入的学生信息,包括学号、姓名,成绩,原样输出信息并计算学生的平均成绩。其中学生粪Stud除了包括no(学号)、name(姓名)和grade(成绩)数据成员外,有两个静态变量sum和num,分别存放总分和人数,另有一个构造函数、一个普通成员函数disp()和一个静态成员函数 avg()用于计算平均分。[C++程序]#include <stdio.h>#include <string.h>class Stud{ int no; char name [10]; int deg; (1) int sum; static int num; public:Stud(int n,char na[],int d) { no=n; deg=d; strcpy(name,na); (2) ; (3) ; } static double avg() { return (4) ;} void disp() { printf("% -5d% -8s%3d\n",no,name,deg);}};int Stud:: sum = 0;int Stud:: num=0;void main(){ Stud s1(1,"Li",81), s2(2,"Zhao",84.5),s3(3,"Zhang",87); printf("\nNo. Name Grade\n"); s1.disp(); s2.disp(); s3.disp(); printf("Avg=%g\n\n", (5) );}
参考答案:
解析:(1) static (2) sum+=d (3) num++ (4) sum/num (5) Stud::avg() (1)根据题意,sum数据成员是静态变量;(2)~(3):在Stud类的构造函数中,应该对sum数据成员累加并对num成员增1;(4)avg函数是计算平均数的,所以应该返回syam/num;(5)C++语言程序设计中,类的静态数据成员或函数可以利用类名加作用域分辨符“::”来访问或调用。