问题 问答题

[说明]
本程序接收输入的学生信息,包括学号、姓名,成绩,原样输出信息并计算学生的平均成绩。其中学生粪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++语言程序设计中,类的静态数据成员或函数可以利用类名加作用域分辨符“::”来访问或调用。

单项选择题
单项选择题 案例分析题