长沙理工大学试卷标准答案课程名称:C++程序设计语言试卷编号:9第1页共2页一.填空题(每空1分,共15分)1.多态性2.43.134.455.(*p)--6.int*p17.传地址8.private9.const10.友元二、单选题(每小题2分,共20分)1.D2.D3.C4.A5.D6.B7.C8.C9.B10.C三、阅读程序填空(15分)1、(1)*(p+i)(2)p(a+10)(3)*p2、(4)fun(a)(5)coutsetw(4)''(6)a[i][j](7)a[i][j]=1(8)a[i][j]=a[i-1][j-1]+a[i-1][j+1]四、阅读程序,写出程序的运行结果(每小题5分,共20分)。1.答案:该程序定义了一个函数模板,其功能是对两个可序列化的数据进行比较并返回较大值。程序运行结果是:16820242.运行结果:该程序实现一个开关语句,根据m的不同值对四个变量赋值。0123运行结果:205050404.答案:计算数组num中大于零的数据之和24五.编程(每小题10分,共30分)1.从键盘上输入若干个学生的成绩,统计学生的平均成绩,并输出低于平均分的学生成绩,输入负数结束输入。#includeiostream.hvoidmain(){floatx[100],sum=0.0,ave,a;intn=0,i;cout″Entermark:″;cina;whil(a>=0.0&&n<=100){sum+=a;x[n]=a;n++;cina;}ave=sum/n;cout″average=″ave;for(i=0;i<n;i++)if(x[i]ave)coutx[i];)2.设一个二维数组a[2][4],编写一个函数voidSumColumMin(inta,intsum)的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。C++程序设计语言第2页共2页#includeiostream.h#defineM2#defineN4voidSumColumMin(inta[M][N],intsum){inti,j,k,s=0;for(i=0;iN;i++){k=0;for(j=1;jM;j++)if(a[k][i]a[j][i])k=j;s+=a[k][i];}sum=s;}main(){intx[M][N]={3,2,5,1,4,1,8,3},s;SumColumMin(x,s);couts=s;}3.定义一个复数类complex,其中至少包括一个构造函数用于构造复数对象,定义两个成员函数用于复数的加法和乘法运算。用C++代码实现之。classcomplex{doublereal,image;public:complex(doubler=0,doublei=0){real=r;image=i;}doubleadd(complexc1,complexc2);doublemulti(complexc1,complexc2);}doublecomplex::add(complexc1,complexc2){complexc;c.real=c1.real+c2.real;c.image=c1.image+c2.image;returnc;}doublecomplex::add(complexc1,complexc2){complexc;c.real=c1.real*c2.real-c1.image*c2.image;c.image=c1.image*c2.real+c1.real*c2.image;returnc;}