南昌大学C++期末考试试卷(答案全).pdf

上传人:索**** 文档编号:76199343 上传时间:2023-03-08 格式:PDF 页数:7 大小:45.43KB
返回 下载 相关 举报
南昌大学C++期末考试试卷(答案全).pdf_第1页
第1页 / 共7页
南昌大学C++期末考试试卷(答案全).pdf_第2页
第2页 / 共7页
点击查看更多>>
资源描述

《南昌大学C++期末考试试卷(答案全).pdf》由会员分享,可在线阅读,更多相关《南昌大学C++期末考试试卷(答案全).pdf(7页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、南昌大学2003 2004 学年第二学期期末 考试试卷A 卷一单项选择题1 A 的 ASCII码为 65,n 为 int 型,执行n=A+6 3;后,n 的值为B。A)D B)68 C)不确定的值D)编译出错2。下列变量名中,A 是合法的。A)CHINA B)byte-size C)double D)A+a 3在 static int B3 3=1,3,2,4,5,6 ;中,a 2 2的值是C。A)0 B)5 C)6 D)2 4若有定义int a=3,*p=a;则*p 的值是B。A)常量 a 的地址值B)3 C)变量 p 的地址值D)无意义5下列关于指针运算的各叙述中,不正确的叙述是D。A)指

2、向同一数组的两个指针,可以进行相等或不等的比较运算;B)可以用一个空指针赋值给某个指针;C)指向数组的指针,可以和整数进行加减运算;D)指向同一数组的两个指针,可以进行有意义的相加运算.6。已知 x、y、z 是 int 型变量,且x=3,y=4,z=5;则下面各表达式中,值为0 的是D。A)x y B)x=y C)x|y+z y-z D)!((xn;int a n;D)const int SIZE=10;int aSIZE ;16采用函数重载的目的在于D;A)实现共享B)减少空间C)提高速度D)使用方便,提高可读性17下列的各类函数中,C 不是类的成员函数。A)构造函数B)析构函数C)友元函数

3、D)拷贝初始化构造函数18若有定义:int x,*p;则正确的赋值表达式是D.A)*p=x B)p=&x C)p=x D)p=&x 19下列静态数据成员特性中,D 是错误的.A)说明静态数据成员时前边要加修饰符static;B)静态数据成员要在类体外进行初始化;C)引用静态数据成员时,要在静态数据成员名前加类名和作用域分辨符;D)静态数据成员不是所有对象共有的。20以下各选项中,正确的函数声明是C。A)double func(int x,int y)B)int func(int x;int y);C)float func(int x,int y);D)char func(int x,y);二、

4、填空题(每空1 分,共 20 分)1一个 C+程序的执行从main 函数开始,到main 函数结束。2 设有定义int x=3,y=4;则表达式x*=y+5的值为27.若有定义int a=2;则执行完语句a+=a=a*a;之后,a 的值为-4.3在 C+中,只能用于整型操作数的算术运算符是;表达式3/2 的结果为1。4在C+中,变量的三个基本要素是指:变量名、变量类型和变量值。5设有定义int x=3,y=4,t;则实现 x,y 两变量值交换的三个语句是:t=x;x=y;y=t;.6在C+中,有两种给出注释的方法。一种是沿用C 语言的注释符,即/*/。另一种是从它开始,直到它所在行尾的字符都为

5、注释的注释符,即/.7在C+中,函数在定义时可以预先定义出默认的形参值.默认形参值必须按从右到左的顺序定义。因为在调用时,实参初始化形参是按从左到右的顺序。8在 C+程序中,对刚创建的对象进行初始化的工作由构造函数来完成;而对象被删除前的一些清理工作则是由析构函数来完成的。9 Visual C+6。0 集成开发环境界面由标题栏、菜单栏、工具栏、项目工作区窗口、文档窗口、输出窗口以及状态栏等组成。10类是逻辑上相关的函数与数据的封装。特殊类的对象拥有其一般类的全部属性与服务,称作特殊类对一般类的继承。三、程序阅读题(每小题5 分,共 30 分)请在各程序的右侧空白部分,写出对应程序运行后的输出结

6、果1源程序如下:include void main()char s=abcdefg ;cout s endl;s+=2;cout s endl;2源程序如下:include iostream。h define N 5 void main()int i,j;for(i=N;i =1;i-)for(j=1;j=N-i;j+)cout ;/双引号内含一空格for(j=1;j=2*i 1;j+)cout *;cout endl;3源程序如下:include void main()int fun(int a);int a=2,i;for(i=0;i 3;i+)printf(“%3d ,fun(a));i

7、nt fun(int a)int b=1;static int c=1;b=b+1;c=c+1;return(a+b+c);4源程序如下:include stdio.hvoid main()int prime(int x);static int a 6=5,9,6,11,13,8 ;int i,p=a,sum=0;for(i=0;i 6;i+)if(prime(*(p+i)=1)printf(“%d t”,*(a+i));sum+=(a+i);printf(“n The Sum=n”,sum);int prime(int x)int i;for(i=2;i x;i+)if(x i=0)retu

8、rn(0);return(1);5源程序如下:include iostream.h void f1(int I)I+=10;void f2(int I)I+=10;kl,void f3(int&n)n+=10;void main()int I=0;f1(I);cout “I is”I endl;f2(I);cout “I is”I endl;f3(I);cout “I is”I class Class public:Class(int n=6,int m=7);Class();void Set(int n,int m)x=n;y=m;private:int x,y;Class::Class(i

9、nt n,int m)Set(n,m);cout“Construct:x=x “,y=”y endl;Class::Class()cout “Destruct:x=x “,y=”y endl;void main()Class a(5);Class b(1,3);cout “exitingn”;四、程序填空题(每小题6 分,共12 分).1本程序用递归的方法计算并输出Fibonacci 数列的前20 项。Fibonacci 数列的规律是:数列前两项均为1,从第三项开始,每一项都是其前两项的和。请补全 fac 函数。#include iostream。hint fac(int n);void ma

10、in()int i;for(i=0;i 20;i+)cout fac(i);int fac(int n)/红色显示的部分为参考答案int s;if(n=0 n=1)s=1;else s=fac(n 1)+fac(n 2);return s;2本程序的功能是输出三角形式的九九乘法表.请在横线上填空。include define N 8 void main()static float score N=86,67,98,80,78,95,56,78 ;int i;float s,aver,max;s=0;for(i=0;iN;i+)abcdefg cdefg*6 7 8 5 11 13 The Su

11、m=29I is 0 I is 10 I is 20 s=s+score i;aver=s/N;cout aver=”aver endl;max=score0;for(i=1;i N;i+)if(max scorei)max=score i;cout”max=”month day;s=0;for(i=1;i month;i+)/统计 month 月之前的那些月的总天数s=s+dofmi;s=s+day;/统计非闰年时到month 月 day 日的总天数if(month2&leap(year)=true)s=s+1;cout day “该日是该年的第 s “天 void main()int i,

12、sum;sum=0;for(i=1;【18】;【19】)【20】;coutsum=sum;二、判 断 题(每 小 题1 分,共10分)得分评阅人1、C+程序中的变量,必须先定义(声明),才能使用。()2、While 循环语句的循环体至少执行一次。()3、C+中允许对数组进行动态定义。()4、double 数据类型属于简单数据类型。()5、类中所提供的成员函数可以直接访问私有成员。()6、返回值类型、参数个数和参数类型都相同的函数也可以重载。()7、友元函数是类的成员函数,所以可以存取或修改该类中的私有成员.()8、析构函数是函数体为空的函数。()9、C+中,当我们定义了数组int a5;则数组

13、元素的下标从1 到 5。()10、就是某个变量的别名,对引用的操作,实质上就是对被引用的变量的操作。()三、程序阅读题(每小题 5 分,共 20 分)写出下列程序的运行结果。1、include void main()int x=3,y=3;switch(x%2)case 1:switch(y)case 0:cout Firstt;case 1:cout”Second t”;break;default:cout Hellowt;case 2:cout”Third n;2、include iostream。hvoid main()int a=50,b(0);b=+a;couta,”bendl;b=

14、a+;couta ”,”b endl;3、#include”iostream.h”void main()int i=1;while(i=15)i+;if(i 3!=2)continue;else cout i “”;4、include iostream.h class A int a;public:A(int aa=0)a=aa;A()cout Destructor A!a endl;class B:public A int b;public:B(int aa=0,int bb=0):A(aa)b=bb;B()cout ”Destructor B!”b endl;void main()B x(

15、5),y(6,7);程序设计题(每小题 10 分,共20 分)1、编写一个判断素数的函数,并输出 100-300 之间的全部素数之和。2、定义并实现一个时钟类,要求能设置并显示时间.南昌大学2008 2009 学年第二学期期末考试试卷C+程序设计(B 卷)参考答案一、选择题(每小题2 分,共 30 分)二、填空题(每空1 分,共 20 分)【1】分号(;)【2】编译【3】链接【4】成员函数【5】private【6】public【7】MyClass()【8】MyClass()【9】内联函数【10】AB AC【11】数组【12】0【13】double*p;【14】this 指针【15】friend

16、【16】MyClass【17】MyClass【18】i=100【19】i+【20】sum+=i 三、判断题(每小题1 分,共10 分)四、程序阅读题(每小题5 分,共 20 分)1、Hellow Third 2、2 5 8 11 14 2、51,51 4、Destructor B!7 52,51 Destructor A!6 Destructor B!0 Destructor A!5 1 A 2 D 3 C 4 A 5 B 6 D 7 B 8 A 9 A 10 A 11 B 12 D 13 D 14 C 15 C 1 2 3 4 5 6 7 8 9 10 五、程序设计题(每小题10 分,共20

17、 分)1、include iostream。hbool prime(int n);void main()int sum=0;for(int i=100;i300;i+)if(prime(i)sum+=i;cout Sum=”sum endl;bool prime(int n)for(int i=2;in;i+)if(n%i=0)return false;return TRUE;2、#include iostreamusing namespace std;class Clock public:void SetTime(int h=0,int m=0,int s=0);void ShowTime(

18、);private:int Hour,Minute,Second;void Clock::SetTime(int h,int m,int s)Hour=h;Minute=m;Second=s;void Clock:ShowTime()cout Hour:”Minute ”:”Second endl;void main()Clock MyClock;MyClock。SetTime(8,10,30);MyClock。ShowTime()南昌大学2009 2010 学年第一学期C+程序设计期末考试试题A 卷一、说明:请将前面4 个大题的答案写到答题卡上单项选择题(每小题2 分,共30 分)1、C+程

19、序从上机到得到结果的几个操作步骤依次是_.A。编译、编辑、连接、运行B。编辑、编译、连接、运行C。编译、运行、编辑、连接D。编辑、运行、编辑、连接2、设 int a=15,b=26;,则 cout0&x=10 的相反表达式为_.A。x0 x10 4、在下面循环语句中循环体执行的次数为_.int i=0,s=0;while(s 20)i+;s+=i;A。4 B。5 C。6 D。7 5、在下面的二维数组定义中,正确的是_.A。int a 5 ;B。int a 5;C.int a 3=1,3,5,2 ;D.int a (10);6、以下叙述中不正确的是_。A.在一个函数中,可以有多条return 语

20、句B.函数的定义不能嵌套,但函数的调用可以嵌套C。函数必须有返回值D。不同的函数中可以使用相同名字的变量7、为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择_。A.内联函数B。重载函数C。递归函数D.函数模板8、若用数组名作为函数调用的实参,传递给形参的是_.A.数组的首地址B。数组中第一个元素的值C.数组全部元素的值D.数组元素的个数9、类的构造函数是在定义该类的一个_ 时被自动调用执行的。A.成员函数B.数据成员C。对象D。友元函数10、设存在函数int max(int,int)返回两参数中较大值,若求22,59,70 三者中最大值,下列表达式不正确的是_ A int m

21、=max(22,max(59,70);B int m=max(max(22,59),70);Cint m=max(22,59,70);Dint m=max(59,max(22,70));11、对 class point,如使用point*ptr=new point 2;创建对象数组,则删除此数组使用的语句是_.A.delete ptr2;B.delete ptr;C.delete ptr ;D.delete 2ptr;12 类 A 中存在静态数据成员x,设 a 和 b 是类 A 的两个对象,在执行 a.x=10 之后,b。x 的值为 _。A.未初始化B。等于 a。x C.等于 0 D。随机13

22、、假定一条定义语句为“int a 10,x,*pa=a;,若要把数组 a 中下标为3 的元素值赋给x,则不正确的语句为_。A。x=pa 3;B。x=(a+3);C。x=a 3;D。x=pa+3;14、假定 k 是一个double 类型的变量,则关于变量p的正确定义语句为_。A。double p=k;B.int p=k;C。double&p=k;D.char*p=Thank you!”;15、定义 p 并使 p 指向动态空间中的包含30 个整数的数组所使用的定义语句为_.A。int p=new int 30;B.int p=new int(30);C。int*p=new 30;D。p=new i

23、nt30 ;二、判断题,对的画,错的画(每小题1 分,共10 分)()1、在说明语句int a(15),b=a,p=a;中,b 的值与p 的值是不相等的.()2、break 语句也可以用于switch 体内,它可退出switch 语句.()3、在一个被调用函数中,一个return 语句可返回多个值给调用函数。()4、宏定义命令是以分号结束的.()5、do while 循环语句的循环体至少执行一次。()6、函数形参的作用域是该函数的函数体。()7、静态类标识符在它的作用域之外是不存在的。()8、对象成员的表示与结构变量成员表示相同,使用运算符.或-。()9、某类中的友元类的所有成员函数可以存取或

24、修改该类中的私有成员。()10、const char p 说明了 p 是指向字符串的常量指针。三、填空题(每空2 分,共20 分)1、一个完整程序中必须有一个名为_【1】_的函数。2、程序中的预处理命令是指以_【2】_字符开头的命令。3、假定 x=5,y=6,则执行表达式y*=x+计算后,y 的值为 _【3】_。4、为语句标号使用的C+保留字 case和 default 只能用于 _【4】_语句的定义体中。5、若只需要通过一个成员函数读取数据成员的值,而不需要修改它,则应在函数头的后面加上_【5】_关键字。6、若在类的定义体中只给出了一个成员函数的原型,则在类外给出完整定义时,其函数名前必须加

25、上_【6】_ 和两个冒号分隔符。7、假定用户只为类AB 定义了一个构造函数“AB(int aa,int bb=0)a=aa;b=bb;”,则定义该类的对象时,其实参表中至多带有_【7】_个实参。8、完成下面类中的成员函数的定义。class point private:int m,n;public:point(int,int);point(point&);;point:point(int a,int b)m=a;n=b;point::point(_【8】_)m=t.m;n=t.n;9、完成下面类中的成员函数的定义.class A int a,b;public:A(int aa=0,int bb=

26、0)_【9】_/分别用 aa和 bb 对应初始化a 和 b;main()A x(5),y(x);/定义类A 的对象 x 并用 5 初始化,同时定义 y 并用 x 初始化_【10】_;/定义 p 指针,使之指向对象x 四、阅读程序,写出各程序运行后的输出结果(每小题 5 分,共20 分)1、include iostreamusing namespace std;void fun(int a,int*b,int c,int d);void main()int a1=10,a2=20,a3=30,a4=40;fun(a1,a2,a3,a4);cout”a1=”a1 endl;cout a2=”a2

27、endl;cout”a3=”a3 endl;cout a4=a4 endl;void fun(int a,int b,int*c,int d)a+;b+;(*c)+;d+;return;2、#include iostream.h void main()int i,j,k;for(i=1;i=4;i+)for(k=1;k=4 i;k+)cout ;for(j=1;j=2i-1;j+)cout ;cout endl;3、#include iostream.h class CE private:int a,b;int getvalue()return(a b?a:b);public:int c vo

28、id SetValue(int x1,int x2,int x3)a=x1;b=x2;c=x3;int GetValue();;int CE:GetValue()int d=getvalue();return(d c?d:c);void main()int x=5,y=12,z=8;CE ex;ex。SetValue(x,y,z);cout ex.GetValue()endl;ex.SetValue(x+y,y z,20);coutex。GetValue()endl;4、#include class Point int x,y;public:Point(int x1=0,int y1=0):x

29、(x1),y(y1)cout”Point:x y n;Point()cout ”Point destructor!n”;;class Circle Point center;/圆心位置int radius;/半径public:Circle(int cx,int cy,int r):center(cx,cy),radius(r)cout”Circle radius:”radius n;Circle()cout ”Circle de structor!n”;void main()Circle c(3,4,5);五、程序设计题(每小题 10 分,共 20 分)1、设计一程序,它输入10 个整数到一个

30、数组中,调整这10 个数在数组中的位置,使得其中最小的一个数成为数组的首元素,最大的一个数成为数组的末元素。2、定义一个处理日期的类CDate,它有 3 个私有数据成员:Year,Month,Day 和若干个公有成员函数,并实现如下要求:构造函数重载;成员函数设置缺省参数;定义一个成员函数PrintDate 来打印日期;定义一个非静态成员函数SetDate 来设置日期。南昌大学2009 2010 学年第一学期期末考试试卷C+程序设计(A 卷)参考答案一、单项选择题(每小题2 分,共 30 分)1 B2 D3A4C5C6C7A8A9C10C11 B12B 13D 14D15A 二、判断题(每小题

31、1 分,共10 分)1 2 3 4 5 67 8 9 10三、填空题(每空 2 分,共 20 分)【1】main(或主)【2】【3】30【4】switch【5】const【6】类名【7】两(或2)【8】point&t【9】:a(aa),b(bb)【10】A*p=&x 四、程序阅读题(每小题 5 分,共 20 分)1、错 1 个扣 1 分a1=10 a2=20 a3=31 a4=41 2、有三角形状,得3 分*3、格式不对,扣1 分12 20 4、顺序不对,扣1 分Point:3 4 Circle radius:5 Circle destructor!Point destructor!五、程序设

32、计题(每小题 10 分,共 20 分)1、#include define SIZE 10 void main()int data SIZE;int m;cout请输入 datam;int j=0,k=0;for(int i=1;idata j)j=i;else if(datai datak)k=i;if(j0)int d=data 0;data 0=datak ;datak=d;if(kSIZE 1)int d=data SIZE-1 ;data SIZE-1 =dataj;data j=d;cout endl”排序后:”;for(m=0;mSIZE;m+)coutdatam ”;2、incl

33、ude iostream。hclass CDate public:CDate()/函数重载 Year=1990;Month=1;Day=1;CDate(int y,int m=1,int d=1)/成员函数设置缺省参数 Year=y;Month=m;Day=d;void PrintDate();/打印日期void SetDate(int sy,int sm,int sd)/非静态函数设置日期Year=sy;Month=sm;Day=sd;private:int Month,Day,Year;/3 个私有数据成员;void CDate::PrintDate()cout Year”-Month”-”Day endl;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com