收藏 分享(赏)

C语音模拟题.doc

上传人:eukav 文档编号:9468606 上传时间:2019-08-09 格式:DOC 页数:12 大小:48.50KB
下载 相关 举报
C语音模拟题.doc_第1页
第1页 / 共12页
C语音模拟题.doc_第2页
第2页 / 共12页
C语音模拟题.doc_第3页
第3页 / 共12页
C语音模拟题.doc_第4页
第4页 / 共12页
C语音模拟题.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、C 语音模拟题- C+期末考试题(二)void main( )char a=0,b=9;float x;x=(b-a)/(F-B);printf(“%dn“,(int)(3.14*x);22 以下程序的输出结果是 。 #includevoid main()int i;for (i=0;i#define N 100class CStackpublic:CStack() top=0;coutpush (10);ptr-push(50);cout pop( )class Bpublic:B()coutint a =2,5,6,8,10;int *p =a,a+1,a+2,a+3,a+4;void m

2、ain( )printf(“%dt%dt%dn“,a4,*(a+2),*p1);printf(“%dt%dt%dn“,*(p+1)+a2,*(p+4)-*(p+0),*(a+3)%a4);二、 问答题(每小题 5 分,共 20 分)1 在定义拷贝构造函数时,为什么通常还要定义一个重载的赋值运算符?2 简述局部作用域、全局作用域和类作用域的异同。3 虚函数是否一定要有 virtual 关键字?什么叫纯虚函数和抽象类?多态调用需要满足怎样的条件?4 数组和链表是两种重要的线性数据结构,使用链表有什么优点?三、找出下面程序(或程序段)中的语法错误,并予以纠正(每小题 4 分,共 8 分)(1)程序功

3、能是将某年某月的几号转换成这一年的第多少天。#include struct date int y; int m; int d;int daytab2 =0,31,28,31,30,31,30,31,31,30,31,30,31,0,31,29,31,30,31,30,31,31,30,31,30,31; void main( )int n;struct date d;int days (struct date *pd);printf(“Input:Year=? Mouth=? Day=? n“);scanf(“%d%d%d“,y,m,d);n=days(printf(“N=%d daysn“,

4、n);int days (struct date *pd)int i,day,leap;day=pd.d;leap=pd.y%4=0for(i=1;im;+i)day+=daytableapi;return(day);(2)程序功能是打印 Object 类型变量的分量 a。#include struct Objectint a;int b;void main()ObjectObjectcout a = a;o-b = b;return o;四、 (8 分)下列 shape 类是一个表示形状的抽象类,area( )为求图形面积的函数,total( )则是一个通用的用以求不同形状的图形面积总和的函

5、数。请从 shape 类派生梯形类(trapezoid) 、圆形类(circle) ,并给出具体的求面积函数 class shape public: virtual float area( )=0 ; float total(shape *s ,int n) float sum=0.0; for(int i=0;iarea( ); return sum; 五、 (6 分)函数 binary()实现折半查找,即查寻给定的单词 word 是否在关键字表 tab 中(关键字按字典顺序排列) ,折半查找每次把 word 与 tab 表中相应部分的位于中间位置的关键字进行比较,最终结果:或者与某个关键字

6、相同,或者与所有关键字都不相同。 #include struct keychar *keyword; int count;struct key *binary(char *word,struct key tab,int n)/word: a searching word/tab: keyword table/n: the sum of keywordsint cond;struct key *low=tab;struct key *high=struct key *mid;while(lowkeyword)0) ;else return mid;return(NULL); 六、 (8 分)下面

7、程序实现汉诺塔游戏。规则是:三个立柱(分别为A、B、C) ,开始 A 上串有 n 个(用户输入值)大小不等的圆盘,大的在下,小的在上。要求借助于 B 把它们从 A 移到 C。每次只能移一个盘,而且三个柱上的盘总是大的在下,小的在上#include int i=0;void main( )int n;void movetower(int m,char from, char to,char usg);for (;)printf(“input the number of disks of hanoi tower:“);scanf(“%d“,if (n=0) ;printf(“nn“);printf(

8、“The moving step is as below:n“);movetower(n,A,C,B);printf(“tTotal:%dn“,i);void movetower (int m,char from, char to,char usg)void movedisk(char source,char destination);if ( )movetower(m-1,from,usg,to);movetower(m-1, );else movedisk(from,to);void movedisk(char source,char destination)i+;printf(“%c-%

9、cn“,source,destination); 五、 (6 分)函数 binary()实现折半查找,即查寻给定的单词 word 是否在关键字表 tab 中(关键字按字典顺序排列) ,折半查找每次把 word 与 tab 表中相应部分的位于中间位置的关键字进行比较,最终结果:或者与某个关键字相同,或者与所有关键字都不相同。 #include struct keychar *keyword; int count;struct key *binary(char *word,struct key tab,int n)/word: a searching word/tab: keyword table

10、/n: the sum of keywordsint cond;struct key *low=tab;struct key *high=struct key *mid;while(lowkeyword)0) _; /low=mid+1else return mid;return(NULL);六、 (8 分)下面程序实现汉诺塔游戏。规则是:三个立柱(分别为A、B、C) ,开始 A 上串有 n 个(用户输入值)大小不等的圆盘,大的在下,小的在上。要求借助于 B 把它们从 A 移到 C。每次只能移一个盘,而且三个柱上的盘总是大的在下,小的在上#include int i=0;void main(

11、)int n;void movetower(int m,char from, char to,char usg);for (;)printf(“input the number of disks of hanoi tower:“);scanf(“%d“,if (n=0) _; /break 或 returnprintf(“nn“);printf(“The moving step is as below:n“);movetower(n,A,C,B);printf(“tTotal:%dn“,i);void movetower (int m,char from, char to,char usg)void movedisk(char source,char destination);if (_) /m!=1 或 m1movetower(m-1,from,usg,to);_; /movedisk(from,to)movetower(m-1, _); /usg,to,fromelse movedisk(from,to);void movedisk(char source,char destination)i+;printf(“%c-%cn“,source,destination);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报