ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:19.87KB ,
资源ID:11603951      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11603951.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(完整版天津大学C++期末考试样卷及答案.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

完整版天津大学C++期末考试样卷及答案.docx

1、完整版天津大学C+期末考试样卷及答案天津大学C+期末考试样卷及答案一. 单项选择题(每题1分,共20分) 1C+源程序文件的扩展名是 。BA).C B).CPP C).DLL D).EXE2. 下列属于C+合法的字符常量是 C 。A)97 B)“A” C)t D) “0” 3设const int B=6; int a12; 则下列错误的是 _。AA)B+=3; B)a5=B+3; C)int xB+3; D)aB+3=25;4. a、b均为int型且b0,则表达式a-a/b*b的值为 C 。)0 ) a )a被b除的余数部分 )a被b除商的整数部分5. 设int a=5,b=6,c=7; 则c

2、out(a+b)c&b!=c),(a+b)c,b=c);的输出是 B 。 A) 0,0 B) 0,7 C) 1,0 D) 1,7 6. 以下关于编译预处理的叙述中,错误的是 C 。A)预处理命令必须以“#”开始 B)一条预处理命令行必须独占一行 C)一条预处理命令行必须以分号结束 D)预处理命令是在正式编译之前先被处理的7设int型数据占4个字节,若有定义:int x10=0,2,4; 则sizeof(x)的值为 C 。A) 3 B) 12 C) 40 D) 108.下列关于C+函数的叙述中,正确的是 。A)每个函数至少要有一个形参 B)C每个函数都必须有返回值C)函数在被调用之前必须先声明

3、D)函数不能自己调用自己 9下面有关重载函数的说法中正确的是 C 。A) 重载函数必须具有不同的返回值类型 B) 重载函数形参个数必须不同C) 重载函数必须有不同的形参表 D) 重载函数名可以不同10. 表达式strcmp(box,boss) 的值是 A 。A) 正整数 B) 负整数 C) 0 D) 不确定的数 11设int a34,*p=a0; 以下不能正确访问数组元素aij的是 A 。 A) *(a+i+j) B) *(*(a+i)+j) C) *(ai+j) D) p4*i+j 12当一个派生类公有继承一个基类时,基类的所有public成员成为派生类的 D 。A) 友元 B) priva

4、te成员 C) protected成员 D) public成员13设int a=3,*p=&a; 则*p的值是 D 。A) 变量a的地址值 B) 无意义 C) 变量p的地址值 D) 314设int i=5,f=15; 则执行语句 if(i=0) f-=5; 后i和f的值分别是 C 。A) 5,15 B) 5,10 C) 0,15 D) 0,10 15设int *p;以下对new运算符的正确使用形式是 C 。A) p=new a10; B) *p=new int10;C) p=new int10; D) p=new int5=1,2,3,4,5,6;16下列关于动态联编的描述错误的是 C。A)

5、动态联编在运行时选择联编函数 B) 动态联编也称为动态多态性C) 函数重载和运算符重载属于动态联编 D) 动态联编可用来选择虚函数17设二叉树的高度为k(k0),若其包含的结点总数为2k+1-1,则该二叉树是 B 。A) 完全二叉树 B) 满二叉树 C) 二叉排序树 D) 普通的二叉树18设用一个大小为6的一维数组存储顺序循环队列,若当前front和rear的值分别为3和5,当从队列中删除一个元素,再加入两个元素后,front和rear的值分别是 D 。A)5和0 B)4和7 C)无法完成要求的操作 D)4和119以下关于关键字的描述中错误的是 C 。A)关键字可由元素的一个或多个数据项组成

6、B) 可以按关键字进行查找C) 不同元素的关键字值可以相同 D) 每个元素的关键字必须是唯一的20直接插入排序在被排序的数据 B 时效率较高。A) 完全无序 B) 基本有序 C) 逆序排列 D) 最大值与最小值相差不大 二写出以下程序的运行结果(每题4分,共20分) 1. #include void main()int a8=12,25,33,5,8,16,51,22,i;int *p=a;for(i=0;i4;i+) cout*(p+i*2)endl;程序运行的结果是:12 33 8 512 #include int fun() static int d2=0,d1=1;int t=d2+d

7、1;d1=d2; d2=t;return d2;void main()for(int i=0;i6;i+) coutfun()“ ”;coutendl;程序运行的结果是:1 1 2 3 5 8 3 #include class Apublic:A() a=b=10; A(int i,int j) a=i; b=j; void operator+=(const A &x) a+=x.a; b+=x.b; void print();private:int a,b;void A:print() couta= a,b= bendl; void main()A m,n(15,18); m.print()

8、; n.print();m+=n;m.print(); n.print();程序运行的结果是:a=10, b=10a=15,b=18a=25,b=28a=15,b=184 #include void main()int x=3,y=3;switch(x%2) case 1: switch (y%x)case 0:coutfirstn;case 1:coutsecondn;break; default: couthellown;case 2:coutthirdn; 程序运行的结果是:firstsecond third5 #include #include void fun(char *str)c

9、har t;int i,j;for(i=1;i=0&tstrj;j-)strj+1=strj;strj+1=t;void main()char s=CFBEAD;fun(s);coutsendl;程序运行的结果是:ABCDEF 6 .#include class pointprivate:int x,y;public:point(int x1=0,int y1=0)x=x1;y=y1;virtual void move(int x1,int y1)x+=x1;y+=y1;virtual void disp()cout点:(x,y); ;class line:public pointprivat

10、e:int xx,yy;public:line(int x1,int y1,int x2,int y2):point(x1,y1)xx=x2;yy=y2;void move(int x1,int y1)point:move(x1,y1);xx+=x1;yy+=y1;void disp()point:disp ();cout-点:(xx,yymove (4,4);p.disp ();coutdisp ();coutendl;结果:点:(5,7) 点:(6,8)-点:(10,12) Press any key to continue三程序填空(每空2分,共32分):1. 设一个数列的第1、2项分别

11、为0和1,以后每个奇数编号的项是前两项之和,偶数编号项是前两项之差的绝对值。下面程序的功能是生成该数列的前20项并存入一个数组x,然后将这20个数存入文本文件data.txt。 #include #include void main() int x20,i;x0=0;x1=1i=2;doxi= ; /xi-1+xi-2xi+1=abs(xi-1-xi);i= ; /i+2while( ); /i19;if(!fout) return;for( ;i20 ; j+) /i=0foutxi“ ”;fout.close();2以下程序实现将任意正整数转换成相应字符串。例如,将1234转换为“1234

12、”。 #include class Cstack /定义字符栈 char s80;int top; /栈顶指示器 public:Cstack() top=-1 ; /把栈置为空 void push(char ch) /将ch入栈 if(top=79) return;s+top= ch ; char pop() /出栈并返回栈顶元素值(栈空时返回0) if(top=-1)return 0;return ; /stop-;void itos(int num, char *str) /将num转换为字符串并存入strCstack s1;while(num!=0)s1.push( ); / 0+num

13、%10num/=10;char ch;for(int i=0;(ch=s1.pop()!=0;i+) ; /stri=chstri=0;void main() char s80; itos(1234,s); coutsendl; 3以下函数的功能是删除字符串最前面和最后面的所有空格。 #include void DelSpace(char *s)for(int i=strlen(s)-1;i=0;i-) if(si!= ) break; /删除后面的空格 s =0; /i+1char *p=s;while(*s!=0 ) s+; /&*s= /删除前面的空格 strcpy( ); /p,s4以

14、下程序输出数组a中重复出现最多的那个数以及该数重复出现的次数和首次出现的位置。 #include void main()int i,j,k,t, ,n(0); /M=20int a20=1,2,3,4,5,6,7,8,4,5,4,5,4,6,7,1,2,3,4,5;for(i=0;iM-1;i+)for( k=1;j=i+1 ;jM;j+) if( ) k+; /ai=ajif(nk) ;t=i; /n=kcout重复最多的数是:at 重复次数:n 首次位置:tnext , *q;while( ) p = p - next; /p!=NULL&p-data!=xif( p=NULL)q= ;

15、/new Nodeq-data=x;= head-next; /q-nexthead-next=q;else coutx已存在!n; 四简答题(12分) 1 假设S和X分别表示进栈和出栈操作,由输入序列“ABC”得到输出序列“BCA”的操作序列为SSXSXX,则由“a*b+c/d”得到“ab*cd/+”的操作序列什么?(4分)。SXSSXXSSXSSXX2 已知一个散列表如下图所示:5164292035380123456789101112其散列函数为h(key)=key%13,处理冲突的方法为现行地址序列探查法。请回答下列问题:(1)将关键字35,20,33,38,51,64存入哈希表。(3分

16、) (2)对表中关键字29和64进行查找时,所需进行的比较次数各为多少?(1分) 29 1次 , 64 3次 3 以下是两个重载函数的原型声明:void overload(int a,int b,double c=5.5);void overload(int x,int y);请问此函数重载正确吗?如果不正确请说明原因。(4分) 不正确,因为第一个函数的第三个参数有缺省值,调用时也可以给两个实参;而第2个函数与第1个函数形成重载,调用时也需要2个参数,此时,将会产生二义性,系统无法判断应该调用哪一个函数。 五编写程序。(12分) 编写函数用辗转相除法求整数a和b的最大公约数。算法为:将较大的数放在变量a中,较小的数放在b中。然后求a除以b的余数r。如果r为0,则除数b即为最大公约数;否则,将b存入a,将r存入b,反复求a和b的余数,直到余数为0。 在主函数中从键盘输入两个整数,调用上述函数求出它们的最大公约数并输出。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1