您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > C++期末考试试卷(含答案)
第1页共8页南昌大学2003~2004学年第二学期期末考试试卷试卷编号:(A)卷课程名称:计算机(C++语言程序设计)适用班级:姓名:学号:班级:专业:学院:系别:考试日期:题号一二三四五六七八九十总分累分人签名题分2020301218100得分一、单项选择题(每小题1分,共20分)得分评阅人1.‘A’的ASCII码为65,n为int型,执行n=‘A’+‘6’-‘3’;后,n的值为B。A)‘D’B)68C)不确定的值D)编译出错2.下列变量名中,A是合法的。A)CHINAB)byte-sizeC)doubleD)A+a3.在staticintB[3][3]={{1},{3,2},{4,5,6}};中,a[2][2]的值是C。A)0B)5C)6D)24.若有定义inta=3,*p=&a;则*p的值是B。A)常量a的地址值B)3C)变量p的地址值D)无意义5.下列关于指针运算的各叙述中,不正确的叙述是D。A)指向同一数组的两个指针,可以进行相等或不等的比较运算;B)可以用一个空指针赋值给某个指针;C)指向数组的指针,可以和整数进行加减运算;D)指向同一数组的两个指针,可以进行有意义的相加运算。6.已知x、y、z是int型变量,且x=3,y=4,z=5;则下面各表达式中,值为0的是D。A)‘x’&&‘y’B)x=yC)x||y+z&&y-zD)!((xy)&&!z||1)7.下列各选项中,正确的选项是A。A)0和‘\0’值相等。B)0和‘0’值相等。C)‘\0’和‘0’值相等。D)0、‘\0’和‘0’值都不相等。8.若有说明语句:charch=‘\72’;则变量chA。A)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法第2页共8页9.在下列关于C++与C语言关系的各描述中,D是错误的。A)C语言是C++的一个子集;B)C语言与C++是兼容的;C)C++对C语言进行了一些改进;D)C++和C语言都是面向对象的。10.在下列关于类概念的各描述中,A是错误的。A)类就是C语言中的结构体类型;B)类是具有共同行为的若干对象的统一描述体;C)类是创建对象的样板;D)类是抽象数据类型的实现。11.在下列各选项中,符合C++语法的赋值表达式是C。A)d=3+=d+6B)d=6+e=d+8C)d=e+=f+6D)d=2+e,d+5=112.对for(表达式1;;表达式3)可理解为B。A)for(表达式1;0;表达式3)B)for(表达式1;1;表达式3)C)for(表达式1;表达式1;表达式3)D)for(表达式1;表达式3;表达式3)13.若有定义:inta[3][4];则对a数组某一元素的正确表示是C。A)a[2][4]B)a[1,3]C)a[1+1][0]D)a(2)(1)14.若有初始化staticcharstr[]=“NDJSZX”;则其中的str[]相当于B。A)str[8]B)str[7]C)str[6]D)str[2]15.一维整型数组a的正确定义是D。A)inta(10);B)intn=10;inta[n];C)intn;cinn;inta[n];D)constintSIZE=10;inta[SIZE];16.采用函数重载的目的在于D;A)实现共享B)减少空间C)提高速度D)使用方便,提高可读性17.下列的各类函数中,C不是类的成员函数。A)构造函数B)析构函数C)友元函数D)拷贝初始化构造函数18.若有定义:intx,*p;则正确的赋值表达式是D。A)*p=*xB)*p=&xC)p=xD)p=&x19.下列静态数据成员特性中,D是错误的。A)说明静态数据成员时前边要加修饰符static;B)静态数据成员要在类体外进行初始化;C)引用静态数据成员时,要在静态数据成员名前加类名和作用域分辨符;D)静态数据成员不是所有对象共有的。20.以下各选项中,正确的函数声明是C。A)doublefunc(intx,inty)B)intfunc(intx;inty);C)floatfunc(intx,inty);D)charfunc(intx,y);第3页共8页二、填空题(每空1分,共20分)。得分评阅人1.一个C++程序的执行从main函数开始,到main函数结束。2.设有定义intx=3,y=4;则表达式x*=y+5的值为27。若有定义inta=2;则执行完语句a+=a-=a*a;之后,a的值为-4。3.在C++中,只能用于整型操作数的算术运算符是%;表达式3/2的结果为1。4.在C++中,变量的三个基本要素是指:变量名、变量类型和变量值。5.设有定义intx=3,y=4,t;则实现x,y两变量值交换的三个语句是:t=x;x=y;y=t;。6.在C++中,有两种给出注释的方法。一种是沿用C语言的注释符,即/**/。另一种是从它开始,直到它所在行尾的字符都为注释的注释符,即//。7.在C++中,函数在定义时可以预先定义出默认的形参值。默认形参值必须按从右到左的顺序定义。因为在调用时,实参初始化形参是按从左到右的顺序。8.在C++程序中,对刚创建的对象进行初始化的工作由构造函数来完成;而对象被删除前的一些清理工作则是由析构函数来完成的。9.VisualC++6.0集成开发环境界面由标题栏、菜单栏、工具栏、项目工作区窗口、文档窗口、输出窗口以及状态栏等组成。10.类是逻辑上相关的函数与数据的封装。特殊类的对象拥有其一般类的全部属性与服务,称作特殊类对一般类的继承。三、程序阅读题(每小题5分,共30分)请在各程序的右侧空白部分,写出对应程序运行后的输出结果。得分评阅人1.源程序如下:#includeiostream.hvoidmain(){char*s=″abcdefg″;coutsendl;s+=2;coutsendl;}abcdefgcdefg第4页共8页2.源程序如下:#includeiostream.h#defineN5voidmain(){inti,j;for(i=N;i=1;i--){for(j=1;j=N-i;j++)cout″″;//双引号内含一空格for(j=1;j=2*i-1;j++)cout″*″;coutendl;}}3.源程序如下:#includestdio.hvoidmain(){intfun(inta);inta=2,i;for(i=0;i3;i++)printf(“%3d”,fun(a));}intfun(inta){intb=1;staticintc=1;b=b+1;c=c+1;return(a+b+c);}4.源程序如下:#includestdio.hvoidmain(){intprime(intx);staticinta[6]={5,9,6,11,13,8};inti,*p=a,sum=0;for(i=0;i6;i++)if(prime(*(p+i))==1){printf(“%d\t”,*(a+i));sum+=*(a+i);}printf(“\nTheSum=%d\n”,sum);}*************************67851113TheSum=29第5页共8页intprime(intx){inti;for(i=2;ix;i++)if(x%i==0)return(0);return(1);}5.源程序如下:#includeiostream.hvoidf1(intI){I+=10;}voidf2(int*I){*I+=10;}voidf3(int&n){n+=10;}voidmain(){intI=0;f1(I);cout“Iis”Iendl;f2(&I);cout“Iis”Iendl;f3(I);cout“Iis”Iendl;}6.源程序如下:#includeiostream.hclassClass{public:Class(intn=6,intm=7);~Class();voidSet(intn,intm){x=n;y=m;}private:intx,y;};Class::Class(intn,intm){Set(n,m);cout“Construct:x=”x“,y=”yendl;}Class::~Class(){cout“Destruct:x=”x“,y=”yendl;}Iis0Iis10Iis20第6页共8页voidmain(){Classa(5);Classb(1,3);cout“exiting…\n”;}四、程序填空题(每小题6分,共12分)。得分评阅人1.本程序用递归的方法计算并输出Fibonacci数列的前20项。Fibonacci数列的规律是:数列前两项均为1,从第三项开始,每一项都是其前两项的和。请补全fac函数。#includeiostream.hintfac(intn);voidmain(){inti;for(i=0;i20;i++)coutfac(i)″″;}intfac(intn){//红色显示的部分为参考答案ints;if(n==0||n==1)s=1;elses=fac(n-1)+fac(n-2);returns;}2.本程序的功能是输出三角形式的九九乘法表。请在横线上填空。#includestdio.hvoidmain(){inti,j;for(i=1;i=___9___;i++){for(j=1;j=___i_____;j++)printf(“%1d*%1d=%2d”,j,i,i*j);printf(“\n”);}}Construct:x=5,y=7Construct:x=1,y=3exiting…Destruct:x=1,y=3Destruct:x=5,y=7第7页共8页五、程序设计题(每小题9分,共18分)得分评阅人1.设学生的人数已知,他们的考试成绩也已知。请编程补全下面的程序,使该程序能完成:(1)计算出这些成绩的平均成绩并显示出来;(2)计算出这些成绩的最高成绩并显示出来。#includeiostream.h#defineN8voidmain(){staticfloatscore[N]={86,67,98,80,78,95,56,78};inti;floats,aver,max;s=0;for(i=0;iN;i++)s=s+score[i];aver=s/N;cout”aver=”averendl;max=score[0];for(i=1;iN;i++)if(maxscore[i])max=score[i];cout”max=”maxendl;}第8页共8页2.编一程序,其功能是:对键盘输入的年、月、日,计算并输出该日是该年的第几天。要求:年、月、日分别用year、month、day表示;用函数leap来判别year年是否闰年。提示:非闰年各月的天数可预先放入一个数组中。voidmain(){intyear,month,day,s,i;boolleap(intyear);staticdofm[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};//0下标(0月)不用cinyearmonthday;s=0;for(i=1;imonth;i++)//统计month月之前的那些月的总天数s=s+dofm[i];s=s+day;//统计非闰年时到month月day日的总天数if(month2&&leap(year)==true)s=s+1;coutday“该日是该年的第”s“天”endl;}boolleap(intyear){boolflag=false;//先设输入的该年不是闰年if((year%400==0)||(year%4==0&&year%100!=0))flag=true;returnflag;}
本文标题:C++期末考试试卷(含答案)
链接地址:https://www.777doc.com/doc-2901766 .html