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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

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

2、设 int a=5,b=6,c=7; 则 cout(a+b)c&b!=c),(a+b) 0)若其包含的结点总数为 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和1 19 .以下关于关键字的描述中错误的是 C 。C) 不同元素的关键字值可以相同 D) 每个元素的关键字必须是唯一的20直接

3、插入排序在被排序的数据 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+d1;d1=d2;d2=t;return d2;void main()coutfun() “ ”; co

4、utendl;程序运行的结果是: 1 1 2 3 5 83 #include class A public: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(); n.print();m+=n;m.print(); n.print();程序运行的结果是:a=10, b=10a=25,b=28 a=

5、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;程序运行的结果是:firstsecondthird5 #include #include void fun(char *str)char t;int i,j;for(i=1;i=0&tstrj;j-)strj+1=strj;strj+1=t;void main()char s=CFBEAD

6、;fun(s);coutsendl;程序运行的结果是: ABCDEF6 .#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) y+=y1;virtual void disp()cout 点: (x,y);class line:public pointprivate:int xx,yy;public:line(int x1,int y1,int x2,int y2):point(x1,y1)xx=x2;yy=y2;void mov

7、e(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 项分别为 0 和 1,以后每个奇数编号的项是前两项之和,偶数编号 项是前两项之差的绝对值。下面程序的功能是生成该数列的前 20项并存入一个数组 x,然后将这 2

8、0 个数存入文本文件 data.txt 。#include #include void main() int x20,i;x0=0;x1=1i=2;doxi+1=abs(xi-1-xi);i= ; /i+2while( ); /i19 if(!fout) return;for( ;i20 ; j+) /i=0foutxi “ ”;fout.close();1234”。2以下程序实现将任意正整数转换成相应字符串。例如,将 1234 转换为#include class Cstack / 定义字符栈char s80;int top; / 栈顶指示器public:Cstack() top=-1 ; /

9、 把栈置为空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%10num/=10;char ch;for(int i=0;(ch=s1.pop()!=0;i+) ; /stri=chstri=0;void mai

10、n() 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以下程序输出数组 a 中重复出现最多的那个数以及该数重复出现的次数和首次出现的位 置。#include void main() int i,j,k,t,

11、,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= ; /new Nodeq-data=x;= head-next; /q-nexthead-next=q;elsecoutx 已存在 !n;四简答

12、题( 12 分)1.假设S和X分别表示进栈和出栈操作,由输入序列“ ABC ”得到输出序列“ BCA”的操作序列为SSXSXX,则由“ a*b+c/d ”得到“ ab*cd/+”的操作序列什么? ( 4分)。SXSSXXSSXSSXX2.已知一个散列表如下图所示:51642920353801 23 4567 89 10 1112其散列函数为h ( key)=key%13,处理冲突的方法为现行地址序列探查法。请回答下列问题:( 1 )将关键字 35, 20, 33, 38, 51 , 64 存入哈希表。( 3 分)(2)对表中关键字 29 和 64 进行查找时,所需进行的比较次数各为多少?( 1

13、 分)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