华中科技大学 刷题C++ 题目 答案
华中科技大学2003-2006级信息学院《C语言程序设计》考试试题及答案(DOC)
2003级信息学院《C语言程序设计》考试试题系班级姓名学号成绩一. 判断下列语句或程序的对错。
(“×”表示错,“√”表示对)(10分)1int x=y=z=20; ( ×) y,z需要在前定义2 #define M 50; ( ×) 不能有分号3 printf(“%\t”,(40,50,60)); ( √)4float a[100],*p;p=a++; ( ×) 数组名是地址常量,不能做++操作5char str[20];str[20]=0; ( ×) str[20]单元不可用6int data[4]={0,1,2,3,4}; ( ×) 0,1,2,3,4是5个元素,与data[4]不匹配7int x=’\014’; ( √)8int xyz.1=2; ( ×) xyz.1不是合法的标识符(变量名)9char *p=”c:\test\prg.c”; ( ×) 修改为c:\\test\\prg.c10int *p;*p=20; ( ×) 指针不能用常量进行赋值二. 计算下列表达式的值(10分)设unsigned int a=15,b=21,c=5,d=1;float f;(1) f=b/c ( 4.0 ) b/c是整数除,先得到4,然后赋值给f(2) !(a+b)+c-1&&b+c/2 ( 1 )(3) a^b+b&0x55+c<<3|015 ( 0x000f )(4) d*=c--%b++ ( 5 )(5) a%=(c%=2) ( 0 )三.程序改错(10分)1从键盘上输入三个字符串,然后按字典(从小到大)顺序进行输出# include <stdio.h># include<string.h>void swap(char *,char *);//函数声明需要分号结束main(){char a[80],b[80],c[80];scanf(“%s%s%s”,&a,&b,&c); //去掉&号,数组名即表示地址if(a>b)swap(a,b); strcmp(a,b)>0 a,b比较需要用字符串比较函数if(b>c)swap(b,c); strcmp(b,c)>0 b,c比较需要用字符串比较函数printf(“%s\n%s\n%s\n”,a,b,c);}void swap(char *pstr1,char *pstr2){char *p; //char p[80];p=pstr1; //strcpy(p,pstr1);字符串赋值需要用拷贝函数pstr1=pstr2; //strcpy(pstr1,pstr2);pstr2=p; //strcpy(pstr2,p);}(2)求某班30个学生数学成绩的最高分和平均分.# include <stdio.h>flaot process(float *p1,int n,int *p2); 添加函数声明main(){float a[30],aver;int ;for(m=0;m<30;m++)scanf(“%f”,&a[m]);max=process(a,30,&aver);pr intf(“max=%f,ave=%f\n),max,aver);}float process(float *p1,int n,int *p2){char x;int temp; //float temp 与函数返回类型匹配for(x=0;x<=n;x++) //for(x=0;x<n;x++) 不能要等号{if (p1[x]>temp)temp=p1[x];*p2+=p1[x];}p2=p2/n; //*p2=*p2/n;return temp;}四.程序填空(1)有一分数系列:2/1,3/2,/5/3,8/5,13/8,21/13……求出这数列的前50项和# include <stdio.h>main(){int m;float__ ________; // t,s=0,a=2,b=1for(m=1;___ _______;m++) //m<=50{s=s+a/b;t=a;a=_a+b_____;b=_t_;}printf(“sum=%f\n:,s);(2)按如图所示格式打印杨辉三角形的前10行11 11 2 11 3 3 11 4 6 4 1………main(){int m,n,a[10][10];for(m=0;m<10;m++){a[m][0]=1;__________________; a[m][m]=1;}for(__m=2___;m<10;m++)for(___n=1____;__n<m__________;n++)a[m][n]=a[m-1][n-1]+a[m-1][n];for(m=0;m<10;m++){for(n=0;__n<=m_____________;n++)printf(“%6d”,a[m][n]);_printf(“%5d”,a[m][n]);}}五.写输出结果(1)#include <stdio.h>void main(){int m,n,p,s;s=0;for(m=1;m<=4;m++){for(n=1;n<=m;n++){ p=1;for(n=1;n<=m;n++)p=p*n;}s=s+p;}printf(“s=%d\n”,s);S = 33; //1!+2!+3!+4!;(2)# include <stdio.h>void auto_static();int g_val;main(){int m;for(m=0;m<5;m++)auto_static();}void auto_static(){int au=0;static int st=0;printf(“au=%d,st=%d,g_val=%d\n”,au++,++st,g_val++);}au=0,st=1,g_val=0au=0,st=2,g_val=1au=0,st=3,g_val=2au=0,st=4,g_val=3au=0,st=5,g_val=4(3)# include <stdio.h>main(){int i,j,a[][3]={2,4,6,1,2,3};int *p[2]={a[0],a[1]};for(i=0;i<2;i++){for(j=0;j<3;j++)printf(“%3d\t”,*(p[i]+j));printf(“\n”);}}2 4 61 2 3(4)# include <stdio.h># include <string.h>struct person{char name[20];int count;};void main(){struct person leader[3]={{“li”,0},{“zhang”,0},{“wang”,0}}; char name[20],m,n;for(m=1;m<7;m++){scanf(“%s”,name);for(n=0;n<3;n++)if(!strcmp(name,leader[j].name)){leader[j].count++;break;}}printf(“\n”);for(m=0;m<3;m++){printf(“%s:%d\n”,leader[m].name,leader[m].count);}}当程序运行时,键入情况如下:liwangleiliwangzhang写出程序的输出结果。
华中科技大学 刷题C++ 题目 答案
int m=a;
if(b<m)
m=b;
if(c<m)
m=c;
return m;
}
/********** End **********/
void main(void)
{
int a,b,c;
cout<<"输入三个整数a,b,c=";
cin>>a>>b>>c;
year=Y;
month=M;
day=D;
}
SetD(int Y,int M,int D){
year=Y;
month=M;
day=D;
}
int getDay(); void show(); };
int Date::getDay(){
int n,i,k=0;
if ((year%100!=0&&year%4==0)||year%400==0)i=1;
#include <iostream>
using namespace std;
/**********Program**********/
class Date{
int year,month,day;
public:
Date(){
year=0;
month=0;
day=0;
}
Date(int Y,int M,int D){
en[i]=s[i]-21;
else en[i]=s[i];
i++;
return en[i-1];
}
/********** End **********/
华中科技大学C++程序题集合1
HUST C++程序设计题答案集1 致华科的小学弟小学妹,这篇文档是学长我辛辛苦苦刷到一百分的程序题(各种单枪匹马深夜作战),留着吧,将来写到不会的时候拿出来查查(具体方法:Ctrl + H,输入关键字查询,会有你想要的答案。
)当然,这里面的程序仅作参考,如果你有更好的想法,呃,就用你自己的吧。
祝学业有成。
你们的苦逼的学长XX/*------------------------------------------------------- 【程序设计】--------------------------------------------------------- 题目:定义一个日期类Date,包括年、月、日三个数据成员,以及一个判断闰年的成员函数输出结果见图:样张.JPG-------------------------------------------------------*/ #include <iostream>using namespace std;class Data {public:Data(){};Data(int,int,int);boolLeapYear();void Print();private:int year;int month;int day;};/**********Program**********/bool Data::LeapYear(){if((year%4==0&&year%100!=0)||(year%400==0))return 1;else return 0;}Data::Data(inty,intm,int d){year=y;month=m;day=d;}/********** End **********/void Data::Print(){cout<<year<<"/"<<month<<"/"<<day;if(LeapYear())cout<<" is a leap year"<<endl;elsecout<<" is not a leap year"<<endl;}void main(){Data d1(2012,8,9),d2(2009,12,8);d1.Print();d2.Print();}/*------------------------------------------------------- 【程序设计】---------------------------------------------------------题目:设计一个点类Point,再设计一个矩形类,矩形类使用Point类的两个坐标点作为矩形的对角顶点,并可以输出4个坐标值和面积。
华科研究生C++复习50题和答案
复习范围:所有讲过的内容。
下面的复习题基本涵盖所有考试内容,请认真作答,并重在理解。
考试时间:2014.4.26 14:30——17:00简答题1.什么是程序?什么是程序设计?什么是程序设计语言?程序是用程序设计语言表示的计算机的解题算法或解题任务。
程序设计是将解题任务转变为程序的过程。
程序设计语言是由一些符号所构成的集合,这些符号可用于定义、组织并完成各种各样的计算任务。
2.类型的强弱指的是什么?什么是无类型语言、强类型语言、弱类型语言?C++语言属于哪种?强类型定义语言:一种总是强制类型定义的语言,要求变量的使用要严格符合定义,所有变量都必须先定义后使用。
java、.NET、C++等都是强制类型定义的。
也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。
与其相对应的是弱类型语言:数据类型可以被忽略的语言。
它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。
3.什么是抽象数据类型?C++是通过什么方式实现抽象数据类型的?由一组对象和一组在这些对象上的操作所组成,利用数据抽象机制把一个数据类型的表示和操作汇集起来,封装在一起,定义成一个新的数据类型,这种新的数据类型统称为抽象数据类型。
引入类类型。
4.C++中标识符的命名规则是什么?什么是合法的标识符,什么是不合法的标识符1、大小写英文字母,下划线(_),以及阿拉伯数字组成。
2、标识符的第一个字符必须是大小写英文字母或者下划线,而不能是数字。
合法命名非法命名wiggles $Z]** /* $、] 和* 都是非法字符*/cat2 2cat /* 不能以数字开头*/Hot_Tub Hot-Tub /* - 是非法字符*/taxRate tax rate /* 不能有空格*/_kcab don't /* ' 是非法字符*/5.什么是引用机制?指针和引用有什么区别和联系?允许程序正文中通过引用为已有名字的内存单元声明新的名字,这个新名字成为该内存单位已有名字的引用名,俗称别名。
华工C++习题及其解答(第3版)
习题1及其解答1.1选择题1.一个最简单的C++程序,可以只有一个( c )。
(a) 库函数(b) 自定义函数(c) main函数(d) 空函数2.用C++语言编制的源程序要变为目标程序必须要经过( d )。
(a) 解释(b) 汇编(c) 编辑(d) 编译3. C++程序中的简单语句必须以( b )结束。
(a) 冒号(b) 分号(c) 空格(d)花括号4.有说明 int a=0; double x=5.16; 以下语句中,( c )属于编译错误。
(a) x=a/x; (b) x=x/a; (c) a=a%x; (d) x=x*a;5. 执行C++程序时出现的“溢出”错误属于( c )错误。
(a) 编译(b) 连接(c) 运行(d) 逻辑6.下列选项中,全部都是C++关键字的选项为( c )。
(a) while IF Static (b) break char go(c) sizeof case extern (d) switch float integer7. 按C++标识符的语法规定,合法的标识符是( a )。
(a) _abc (b) new (c) π(d) “age“8.C++语句中,两个标识符之间( a )不能..作为C++的分隔符。
(a) 数字(b) ; (c) : (d) +9.下列正确的八进制整型常量表示是( b )。
(a) 0a0 (b) 015 (c) 080 (d) 0x1010.下列错误的十六进制整型常量表示是( c )。
(a) 0x11 (b) 0xaf (c) 0xg (d) 0x1f11.在下列选项中,全部都合法的浮点型数据的选项为( b )。
(a) -1e3.5 15. 2e-4 (b) 12.34 -1e+5 0.1E-12(c) 0.2e-2 -12345. e-5 (d) 5.0e(1+4) 0.1 8e+212.下列正确的字符常量为( d )。
(a) “a”(b) ‟(c) a (d) (101)13.下列选项中,( d )不能..交换变量a和b的值。
华工C++第二章习题及其解答
习题 2及其解答2.1选择题1.已知 int i=0, x=1, y=0 ; 在下列选项使i 的值变成1的语句是( c )。
(a) if( x&&y ) i++ ; (b) if( x==y ) i++ ; (c) if( x||y ) i++ ; (d) if( !x ) i++ ;2.设有函数关系为y=⎪⎩⎪⎨⎧>=<-010001x x x ,下面选项中能正确表示上述关系为( c )。
(a) y = 1 ; (b) y = -1 ;if( x >= 0 ) if( x != 0 )if( x == 0 ) y = 0 ; if( x > 0 ) y = 1 ; else y = -1; else y = 0;(c) if( x <= 0 ) (d) y = -1 ; if( x < 0 ) y = -1 ; if( x <= 0 )else y = 0 ; if( x < 0 ) y = -1 ; else y = 1 ; else y = 1 ; 3.假设i=2,执行下列语句后i 的值为( b )。
switch( i ) { case 1 : i ++ ; case 2 : i -- ; case 3 : ++ i ; break ; case 4 : -- i ; default : i ++ ; } (a) 1(b) 2(c) 3(d) 44.已知int i=0,x=0; 下面while 语句执行时循环次数为( d )。
while( !x && i< 3 ) { x++ ; i++ ; } (a) 4(b) 3(c) 2(d) 15.已知int i=3;下面do_while 语句执行时循环次数为( b )。
do{ i--; cout<<i<<endl;}while ( i!= 1 ); (a) 1(b) 2(c) 3(d) 无限6.下面for 语句执行时循环次数为( b )。
C++模拟题华中科技大学
C++模拟试卷一、单选题(每题2分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。
1. 下面选项中不属于面向对象程序设计特征的是(C) 。
A)继承性B)多态性C)相似性D)封装性2. 有如下程序段:int i=1;while(1){i++;if (i==10) break;if(i%2==0) cout<<’*’;}执行这个程序段输出字符*的个数是(C)A. 10B. 3C. 4D.53. 假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为(A)。
A)0 B) 4 C)8 D)64. 下列有关数组的叙述中,正确的是( B )A)C++中数组的存储方式为列优先存储B)数组名可以作为实参赋值给指针类型的形参C)数组下标索引从1开始,至数组长度n结束D)数组指针的语法形式为:类型名*数组名[下标表达式];5. 若有下面的函数调用:fun(a+b, 3, max(n-1, b));其中实参的个数是(A)A)3 B)4 C)5 D)66. 以下哪一关键字可用于重载函数的区分( C )A)extern B)static C)const D)virtual7. 下面程序的输出结果是( B )#include <iostream>using namespace std;int i = 0;int fun(int n){static int a = 2;a++;return a+n;}void main(){int k = 5;{int i = 2;k += fun(i);}k += fun(i);cout << k;}A)13 B)14 C)15 D)168. 下面的程序段的运行结果为( D )char str[] = "job", *p = str;cout << *(p+2) << endl;A)98 B)无输出结果C)字符’b’的地址D)字符’b’9. 下面的程序段的运行结果为( D )char str[] = "job", *p = str;cout << *(p+2) << endl;A)98 B)无输出结果C)字符’b’的地址D)字符’b’10. 以下程序的输出结果是:(D )#include <iostream>using namespace std;int fun(char *s){ char *p=s;while (*p!='\0') p++;return (p-s);}void main(){cout<<fun("abc")<<endl;}A.0 B. 1 C. 2 D. 311. 实现运行时多态的机制是(A)A)虚函数B)重载函数C)静态函数D)模版函数12. 假定AA为一个类,a为该类私有的数据成员,GetV alue( )为该类公有函数成员,它返回a的值,x为该类的一个对象,则访问x对象中数据成员a的格式为(X )。
华中科技大学数据结构(C语言版第2版_李云清)习题答案2012-12
数据结构(C语言版)(第2版)习题解析揭安全李云清杨庆红编著江西师范大学计算机信息工程学院联系方式:*****************2012年12月第1章绪论1.1什么是数据结构?【答】:数据结构是指按一定的逻辑结构组成的一批数据,使用某种存储结构将这批数据存储于计算机中,并在这些数据上定义了一个运算集合。
1.2 数据结构涉及哪几个方面?【答】:数据结构涉及三个方面的内容,即数据的逻辑结构、数据的存储结构和数据的运算集合。
1.3 两个数据结构的逻辑结构和存储结构都相同,但是它们的运算集合中有一个运算的定义不一样,它们是否可以认作是同一个数据结构?为什么?【答】:不能,运算集合是数据结构的重要组成部分,不同的运算集合所确定的数据结构是不一样的,例如,栈与队列它们的逻辑结构与存储结构可以相同,但由于它们的运算集合不一样,所以它们是两种不同的数据结构。
1.4 线性结构的特点是什么?非线性结构的特点是什么?【答】:线性结构元素之间的关系是一对一的,在线性结构中只有一个开始结点和一个终端结点,其他的每一个结点有且仅有一个前驱和一个后继结点。
而非线性结构则没有这个特点,元素之间的关系可以是一对多的或多对多的。
1.5 数据结构的存储方式有哪几种?【答】:数据结构的存储方式有顺序存储、链式存储、散列存储和索引存储等四种方式。
1.6 算法有哪些特点?它和程序的主要区别是什么?【答】:算法具有(1)有穷性(2)确定性(3)0个或多个输入(4)1个或多个输出(5)可行性等特征。
程序是算法的一种描述方式,通过程序可以在计算机上实现算法。
1.7 抽象数据类型的是什么?它有什么特点?【答】:抽象数据类型是数据类型的进一步抽象,是大家熟知的基本数据类型的延伸和发展。
抽象数据类型是与表示无关的数据类型,是一个数据模型及定义在该模型上的一组运算。
对一个抽象数据类型进行定义时,必须给出它的名字及各运算的运算符名,即函数名,并且规定这些函数的参数性质。
华工,C++课后答案
习题1及其解答选择题1.一个最简单的C++程序,可以只有一个( c )。
(a) 库函数(b) 自定义函数(c) main函数(d) 空函数2.用C++语言编制的源程序要变为目标程序必须要经过( d )。
(a) 解释(b) 汇编(c) 编辑(d) 编译3. C++程序中的简单语句必须以( b )结束。
(a) 冒号(b) 分号(c) 空格(d)花括号4.有说明int a=0; double x=; 以下语句中,( c )属于编译错误。
(a) x=a/x; (b) x=x/a; (c) a=a%x; (d) x=x*a;5. 执行C++程序时出现的“溢出”错误属于( c )错误。
(a) 编译(b) 连接 (c) 运行 (d) 逻辑6.下列选项中,全部都是C++关键字的选项为( c )。
(a) while IF Static (b) break char go(c) sizeof case extern (d) switch float integer7. 按C++标识符的语法规定,合法的标识符是( a )。
(a) _abc (b) new (c) π(d) “age“8.C++语句中,两个标识符之间( a )不能..作为C++的分隔符。
(a) 数字(b) ; (c) : (d) +9.下列正确的八进制整型常量表示是( b )。
(a) 0a0 (b) 015 (c) 080 (d) 0x1010.下列错误的十六进制整型常量表示是( c )。
(a) 0x11 (b) 0xaf (c) 0xg (d) 0x1f11.在下列选项中,全部都合法的浮点型数据的选项为( b )。
(a) 15. 2e-4 (b) -1e+5(c) -12345. e-5 (d) (1+4) 8e+212.下列正确的字符常量为( d )。
(a) “a”(b) ‘name’(c) a (d) ‘\101’13.下列选项中,( d )不能..交换变量a和b的值。
华中科技大学C++上机实验答案(全)
实验一/*要求从键盘输入三个不等的整数后按ENTER键,在屏幕上由大到小的输出。
*/ #include<iostream>using namespace std;int main(){int a,b,c,max,min;cout<<"请输入三个不同的整数:"<<endl;cin>>a>>b>>c;if(a>b){max=a;min=b;}else{max=b;min=a;}if(c>max)cout<<c<<'\t'<<max<<'\t'<<min<<endl;else if(c<min)cout<<max<<'\t'<<min<<'\t'<<c<<endl;else cout<<max<<'\t'<<c<<'\t'<<min<<endl;return 0;}实验二//输入两个数,将它们交换后输出。
#include<iostream>using namespace std;int main(){int a,b,temp;cout<<"输入a,b:";cin>>a>>b;cout<<"a="<<a<<'\t'<<"b="<<b<<endl;temp=a;a=b;b=temp;cout<<"a="<<a<<'\t'<<"b="<<b<<endl;return 0;}//求一个三角形的面积(例题程序)#include<iostream>#include<cmath>using namespace std;int main(){float a,b,c,s,area;cout<<"a,b,c=";cin>>a>>b>>c;s=(a+b+c)/2.0;area=sqrt(s*(s-a)*(s-b)*(s-c));cout<<"area="<<area<<endl;return 0;}//求一个三角形的面积(修改后的程序)#include<iostream>#include<cmath>using namespace std;int main(){int a,b,c,s,area;cout<<"a,b,c=";cin>>a>>b>>c;if(a<b+c&&b<a+c&&c<a+b){s=(a+b+c)/2.0;area=sqrt(s*(s-a)*(s-b)*(s-c));cout<<"area="<<area<<endl;}else cout<<"不能够成三角形"<<endl;return 0;}/*用sizeof运算符计算C++中char,short,int,long,float,double等基本数据类型所占的字节数,并按以下格式输出:sizeof(char)=1 bytesizeof(short)=2 bytessizeof(int)=4 bytes……..*/#include<iostream>using namespace std;int main(){cout<<"sizeof(char)="<<sizeof(char)<<"byte"<<endl;cout<<"sizeof(short)="<<sizeof(short)<<"byte"<<endl;cout<<"sizeof(int)="<<sizeof(int)<<"byte"<<endl;cout<<"sizeof(long)="<<sizeof(long)<<"byte"<<endl;cout<<"sizeof(float)="<<sizeof(float)<<"byte"<<endl;cout<<"sizeof(double)="<<sizeof(double)<<"byte"<<endl;return 0;}//修改后的程序#include<iostream>using namespace std;int main(){cout<<"char"<<'\t'<<sizeof(char)<<"byte"<<endl;cout<<"short"<<'\t'<<sizeof(short)<<"byte"<<endl;cout<<"int"<<'\t'<<sizeof(int)<<"byte"<<endl;cout<<"long"<<'\t'<<sizeof(long)<<"byte"<<endl;cout<<"float"<<'\t'<<sizeof(float)<<"byte"<<endl;cout<<"double"<<'\t'<<sizeof(double)<<"byte"<<endl;return 0;}//用数组列表输出#include<iostream>using namespace std;int main(){char datatype[]="char\tshort\tint\tlong\tfloat\tdouble";cout<<datatype<<endl;cout<<sizeof(char)<<'\t'<<sizeof(short)<<'\t'<<sizeof(int)<<'\t'<<sizeof(long)<<'\t'<<siz eof(float)<<'\t'<<sizeof(double)<<endl;return 0;}/*编写满足下列要求的程序:根据输入的球半径,分别计算球的表面积、体积和质量(假设球的密度为7.8kg/dm3),并输出计算结果。
华中科技大学c程序设计考试题
1.c++系统预定了4个用于标准数据流的对象,下;正确答案:【D】分值:【1】;2.设有说明:charw;intx;floaty;正确答案:【D】分值:【1】;3.下列对析构函数的描述中,正确的是(____);C.析构函数的定义只能在类体内D.析构函数可以有;正确答案:【A】分值:【1】;4.下列定义数组的语句中正确CPP程序设计模拟考试 1--第2套试卷1.c++系统预定了4个用于标准数据流的对象,下列选项中不属于此类对象的是(____) A.cout B.cin C.cerr D.cset正确答案:【D】2.设有说明:char w;int x;float y;double z;则表达式w*x+z-y 值的数据类型为(____) A.float B.char C.int D.double正确答案:【D】分值:【1】3.下列对析构函数的描述中,正确的是(____) A.一个类中只能定义一个析构函数 B.析构函数名与类名不同C.析构函数的定义只能在类体内D.析构函数可以有一个或多个参数正确答案:【A】分值:【1】4.下列定义数组的语句中正确的是(____)A.#define size 10 char str1[size],str2[size+2];B.char str[];C.i nt num['10'];D.int n=5; int a[n][n+2];正确答案:【A】分值:【1】5.关于this指针使用说法正确的是(____)A.保证每个对象拥有自己的数据成员,但共享处理这些数据的代码B.保证基类私有成员在子类中可以被访问。
C.保证基类保护成员在子类中可以被访问。
D.保证基类公有成员在子类中可以被访问。
正确答案:【A】分值:【1】6.所谓多态性是指(____)A.不同的对象调用不同名称的函数B.不同的对象调用相同名称的函数C.一个对象调用不同名称的函数D.一个对象调用不同名称的对象正确答案:【B】分值:【1】7.派生类构造函数的执行顺序是先执行________ 的构造函数,然后执行成员对象的构造函数,最后执行________ 的构造函数。
华中科技大学C++第四单元考试系统答案
华中科技大学C++第四单元考试系统答案【程序设计】---------------------------------------------------------题目:设计并测试一个矩形类(Rectangle),属性为矩形的左上与右下角的坐标,矩形水平放置。
操作为计算矩形周长与面积。
输出如下:left-top point is (100,200)right-bottom point is (300,400)面积40000 周长800-------------------------------------------------------*/#include#includeusing namespace std;/**********Program**********/class Rectangle{private:doubleleft,top;double right,bottom;public:Rectangle(double l=0,double t=0,double r=0,double b=0);~Rectangle(){};void Show();void Assign(double l,doublet,doubler,double b);double Area();double Perimeter();double getLeft();double getTop();double getRight();double getBottom();};Rectangle::Rectangle(double l,doublet,doubler,double b){left=l;top=t;right=r;bottom=b;}void Rectangle::Assign(double l,doublet,doubler,double b){ left=l;top=t;right=r;bottom=b;}void Rectangle::Show(){cout<<"left-top point is("<<left<<","<<top<<")"<<endl;< p="">cout<<"right-bottom point is("<<right<<","<<bottom<<")"<<endl;< p="">}double Rectangle::Area(){return fabs((left-right)*(top-bottom));}double Rectangle::Perimeter(){return 2*(fabs(left-right)+fabs(top-bottom));}double Rectangle::getLeft(){return left;}double Rectangle::getRight(){return right;}double Rectangle::getTop(){return top;}double Rectangle::getBottom(){return bottom;}/********** End **********/int main(){Rectangle rect;rect.Show();rect.Assign(100,200,300,400);rect.Show();Rectangle rect1(0,0,200,200);rect1.Show();Rectangle rect2(rect1);rect2.Show();cout<<"left-top point is ("<<rect.getleft()<<","<<rect.gettop()<<")"<<'\n';< p=""> cout<<"right-bottom point is ("<<rect.getright()<<","<<rect.getbottom()<<")"<<'\n';< p=""> cout<<"面积"<<rect.area()<<'\t'<<"周长"<<rect.perimeter()<<endl;< p="">return 0;}/*-------------------------------------------------------【程序设计】---------------------------------------------------------题目:补充构造一个日期时间类(Timedate),数据成员包括年、月、日和时、分、秒,函数成员包括设置日期时间和输出时间,其中年、月请用整型,并完成测试。
华中科技大学C语言期末考试题库试题及答案汇总
华中科技大学 C 语言期末考试题库试题及答案汇总1 .设int a=12 ,则执行完语句a+=a-=a*a 后,a 的值是__D____ 。
A、552 B 、264 C 、144 D 、-264知识点:算术表达式2 .以下变量x、y、z 均为double 类型且已正确赋值,不能正确表示数字式子x/(y*z) 的C 语言表达式是___A___ 。
A、x/y*z B 、x*(1/(y*z))C 、x/y*1/z D 、x/y/z知识点:算术表达式3 .若有定义:int a=8,b=5,c;, 执行语句c=a/b+0.4; 后,c 的值是__B____ 。
A、1.4 B 、1 C 、2.0 D 、2知识点:算术表达式4 .有如下程序main(){int a; char c=10;float f=100.0; double x;a=f/=c*=(x=6.5);printf("%d %d %3.1f%3.1f\n",a,c,f,x);}程序运行后输出结果是___B___ 。
A、1 65 1 6.5B 、1 65 1.5 6.5C 、1 65 1.0 6.5D 、2 65 1.5 6.5知识点:赋值表达式5 .若变量a、i 已正确定义,且i 已正确赋值,合法的语句是___B___ 。
A、a==1 B 、++i; C 、a=a++=5; D 、a=int(i);知识点:赋值表达式6 .若变量已正确定义并赋值,下面符合 C 语言语法的表达式是__B____ 。
A、a:=b+1 B 、a=b=c+2C 、int 18.5%3 D 、a=a+7=c+b知识点:赋值表达式7 .设变量x 为float 型且已赋值,则以下语句中能将x 中的数值保留到小数点后两位,并将第三位四舍五入的是__C____ 。
A、x=x*100+0.5/100.0B 、x=(x*100+0.5)/100.0C、x=(int)(x*100+0.5)/100.0D、x=(x/100+0.5)*100.0知识点:赋值表达式8 .在一个 C 程序中___B___ 。
华中科技大学2009级C++考试卷与答案
华中科技大学2009级C++考试卷与答案一、单项选择题(每题2分,共30分)1.以下叙述中正确的是( a )A) 构成C++语言程序的基本单位是类B) 可以在一个函数中定义另一个函数C) main()函数必须放在其他函数之前D) 所有被调用的函数一定要在调用之前进行定义2.C++语言的跳转语句中,对于break和continue说法正确的是(b)A)break语句只应用与循环体中B)continue语句只应用与循环体中C)break是无条件跳转语句,continue不是D)break和continue的跳转范围不够明确,容易产生问题3.for(int x=0,y=0; !x& &y<=5; y++)语句执行循环的次数是(d)A)0B)5C)6D)无次数4.假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为( b)。
A) x.a B) x.a() C) x->a D) x->a()5.下面有关重载函数的说法中正确的是( c )A)重载函数必须具有不同的返回值类型;B)重载函数形参个数必须不同;C)重载函数必须有不同的形参列表 D)重载函数名可以不同;6.下列关于构造函数的描述中,错误的是( d)A)构造函数可以设置默认参数;B)构造函数在定义类对象时自动执行C)构造函数可以是内联函数; D)构造函数不可以重载7.设有数组定义:char array[]=″China″;,则数组array所占的空间为( c )A)4个字节 B)5个字节 C)6个字节 D)7个字节8.下面选项中不属于面向对象程序设计特征的是( d ) 。
A)继承性 B)多态性 C)封装性 D)相似性9.在C++中用来实现运行时多态性的是( d )。
A)重载函数B)析构函数 C)构造函数D)虚函数10.以下程序的输出结果是( a )#includeusing namespace std;void reverse(int a[],int n){int i,t;for(i=0;i<="" p="">{ t=a[i]; a[i]=a[n-1-i];a[n-1-i]=t;}}void main(){int b[10]={1,2,3,4,5,6,7,8,9,10};int i,s=0;reverse(b,8);for(i=6;i<10;i++)s+=b[i];cout<<s;< p="">}A) 22 B) 10 C) 34 D) 3011. 下面叙述不正确的是( d )A )派生类一般都用公有派生B )对基类成员的访问必须是无两义性的C )赋值兼容则也适用于多重继承的组合D )基类的公有成员在派生类中仍然是公有的12. 下面程序的结果是( c )#includeusing namespace std;class test{private:int num;public:test();int getint(){return num;}~test( );};test::test(){num =0;}test::~test(){cout<<"Destructor is active"<<endl;< p=""> }void main(){test x[3];cout<<"Exiting main"<<="">A) Exiting is activeDestructor is activeDestructor is active Destructor is activeC) Exiting main D) Exiting main Destructor is activeDestructor is activeDestructor is active13. 下面描述中,表达错误的是( b )A) 公有继承时基类中的public 成员在派生类中仍是public 的B) Destructor is active Destructor is active Destructor is active Exiting mainB) 公有继承时基类中的private成员在派生类中仍是private的C) 公有继承时基类中的protected成员在派生类中仍是protected的D) 私有继承时基类中的public成员在派生类中是private的14.有以下程序#includeusing namespace std;void main( ){int a=5,b=0,c=0;if(a=b+c) cout<<"***"<<endl;< p="">else cout<<"$$$"<<endl;< p="">}下列选项叙述正确的是( d )A) 有语法错不能通过编译 B) 可以通过编译但不能通过连接C) 输出*** D) 输出$$$15.假定AB为一个类,则执行“AB x;”语句时将自动调用该类的( b )。
华科考试c++第二单元答案
p=s;
}
int fac::getn(){
return nn;}
2.class Counter{
int value;
public:
Counter(){value=0;};
~Counter(){};
int add();
int sub();
case 2:cout<<"这是长方形"<<endl;break;
case 3:cout<<"这是线段"<<endl;break;
case 4:cout<<"这是点"<<endl;break; }
void setP(int a=0,int b=0){x=a;y=b;}
int getx(){return x;}
int gety(){return y;}
};
class CRect{
Point m;
Point n;
public:
CRect(){m.setP(0,0);n.setP(0.0);}
输出结果见样张.JPG -------------------------------------------------------*/
#include <iostream>
using namespace std;
const double PI=3.14159;
/**********Program**********/
int get();
};
int Counter::add(){
华中科技大学标准C语言程序设计及应用习题答案
第二章一.选择题1.C2.B D 3。
A 4.A 5. D6。
C 7.D 8.C 9.A 10。
D 11。
B 12.D 13。
C 14.D 15.A 16。
B 17。
A 18。
B 100011 001111 二。
判断题1。
错2.错3.错4.错三。
填空题1. B 662。
n1=%d\nn2=%d\n3. 0四。
计算1(1)x|y = 0x002f(2)x^y = 0x0026(3)x&y = 0x0009;(4)~x+~y = 0xffc6(5)x<〈=3 0x0068(6)y〉〉=4 0x00022(1) 6(2)50(3) 1(4)–16(5) 1(6)203(1)0(2) 1(3) 1(4) 4(5)8(6) 14(1)12(2)0(3) 1(4)27(6) 6(7)24(8)27(9)–295(1)0(2) 1(3) 1(4)–3(5) 2五.程序分析题程序1b=20 a=3600程序2第三章一.填空题1.s=62.963。
(1)scanf(”%c",&c);(2) c-32 更好的答案:c-(’a’-’A’)2。
1main(){int a,b;printf(”please input a &b:");scanf("%d%d”,&a,&b);printf(”\nmax is %d\n",(a>b)?a:b);}2.2int max(int x,int y);main(){int a,b,c,max;printf(”please input a &b & c:”);scanf("%d%d%d",&a,&b,&c);max=a〉b?a:b;max=c〉max?c:max;printf("\nmax is %d\n”,max);}2.3{int i=0,sum=0;while(i〈=100){sum+=i;i++;}printf("1+2+3+.。
华科C++第四单元考试系统答案和第二单元部分复习题
【程序设计】---------------------------------------------------------题目:设计并测试一个矩形类(Rectangle),属性为矩形的左上与右下角的坐标,矩形水平放置。
操作为计算矩形周长与面积。
输出如下:left-top point is (100,200)right-bottom point is (300,400)面积40000 周长800-------------------------------------------------------*/#include <iostream>#include <cmath>using namespace std;/**********Program**********/class Rectangle{private:double left,top;double right,bottom;public:Rectangle(double l=0,double t=0,double r=0,double b=0);~Rectangle(){};void Show();void Assign(double l,double t,double r,double b);double Area();double Perimeter();double getLeft();double getTop();double getRight();double getBottom();};Rectangle::Rectangle(double l,double t,double r,double b){left=l;top=t;right=r;bottom=b;}void Rectangle::Assign(double l,double t,double r,double b){left=l;top=t;right=r;bottom=b;}void Rectangle::Show(){cout<<"left-top point is("<<left<<","<<top<<")"<<endl;cout<<"right-bottom point is("<<right<<","<<bottom<<")"<<endl;}double Rectangle::Area(){return fabs((left-right)*(top-bottom));}double Rectangle::Perimeter(){return 2*(fabs(left-right)+fabs(top-bottom));}double Rectangle::getLeft(){return left;}double Rectangle::getRight(){return right;}double Rectangle::getTop(){return top;}double Rectangle::getBottom(){return bottom;}/********** End **********/int main(){Rectangle rect;rect.Show();rect.Assign(100,200,300,400);rect.Show();Rectangle rect1(0,0,200,200);rect1.Show();Rectangle rect2(rect1);rect2.Show();cout<<"left-top point is ("<<rect.getLeft()<<","<<rect.getTop()<<")"<<'\n';cout<<"right-bottom point is ("<<rect.getRight()<<","<<rect.getBottom()<<")"<<'\n';cout<<"面积"<<rect.Area()<<'\t'<<"周长"<<rect.Perimeter()<<endl;return 0;}/*-------------------------------------------------------【程序设计】---------------------------------------------------------题目:补充构造一个日期时间类(Timedate),数据成员包括年、月、日和时、分、秒,函数成员包括设置日期时间和输出时间,其中年、月请用整型,并完成测试。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
radius=r;
}
SetCC(Point pp,int r){
p1.SetP(pp.getX(),pp.getY());
radius=r;
}
double getArea();
void show();
}; double Circle::getArea()
if(x>1&&x<1.6)
fx=sin(x)+x;
if(x>1.6&&x<3)
fx=1+sqrt(x);
/********** End **********/
cout<<"当x="<<x<<"时,函数值为"<<fx<<endl;
return 0;
}
题目:
从键盘上输入任意整数,逆序输出其各位数字,同时求出其位数及各位数字之和。
}
int main()
{
Point p1(9,2),p2; //9为x坐标,2为y坐标
Circle c1(p1,7),c2; //7为半径p1为圆心点
c1.show();
cout<<"圆的面积="<<c1.getArea()<<endl;
p2.SetP(1,1);//改变圆心坐标
c2.SetCC(p2,4);//以p2为圆心坐标,改变c2的半径
#include <iostream>
using namespace std;
/**********Program**********/
char s[10];
int i=0;
char encryptionCH(char x)
{
s[i]=x;
char en[10];
if(s[i]>='A'&&s[i]<='U'||s[i]>='a'&&s[i]<='u')
y=yy;
}
int getX(){
return x;
} int getY()
{
return y;
}
};
class Circle{
double radius; Point p1;
public: Circle(){
p1.SetP(0,0);
radius=0;} Circle(Point pp,int r){
电文加密的算法是:将字母A变成F,a变成f,B变成G,b变成g,依次类推,
V变成A,W变成B,等等。其他字符不变。
从键盘输入一串电文,用函数将其加密,再在主函数中输出加密后的串。
输出结果见图:样张.JPG
-------------------------------------------------------*/
if (k=1)
return n;
}
/********** End **********/
void Date::show()
{
cout<<year<<"/"<<month<<"/"<<day<<endl;
}
int main()
{
Date d1(2009,2,1),d2; //d1为2009年2月1日
{
char s;
do
{
s=cin.get();
cout<<encryptionCH(s);
}while(s!='\n');
}
题目:
编写一个函数min,返回三个整数形参中的最小值。
-------------------------------------------------------*/
#include <iostream>
c2.show();//显示c2
cout<<"圆的面积="<<c2.getArea()<<endl;
return 0;
}
题目:定义shape类,有三个表示长度的整型数据成员,分别为l、w、h。
编一个基于对象的程序,写一个成员函数is,可判定其形状:
当l、w、h均不为0时,判定形状为柱体,返回值为1;
V变成A,W变成B,等等。其他字符不变。
从键盘输入一串电文,用函数将其加密,再在主函数中输出加密后的串。
输出结果见图:样张.JPG
-------------------------------------------------------*/
#include <iostream>
using namespace std;
和表示圆心坐标的点类对象。圆类成员函数包括构造函数、求面积的函数和输出显示圆心
坐标及圆半径的函数。
输出结果见样张.JPG
-------------------------------------------------------*/
#include <iostream>
using namespace std;
using namespace std;
/**********Program**********/
int min(int a,int b,int c){
int m=a;
if(b<m)
m=b;
if(c<m)
m=c;
return m;
}
/********** End **********/
void main(void)
const double PI=3.14159;
/**********Program**********/
class Point{
int x,y;
public: Point(){x=y=0;
}
Point(int xx,int yy){
x=xx;
y=yy;
}
SetP(int xx,int yy){
x=xx;
if (month==5&&day<=31) {n=120+day+i;k=1;}
if (month==6&&day<=30) {n=151+day+i;k=1;}
if (month==7&&day<=31) {n=181+day+i;k=1;}
if (month==8&&day<=31) {n=212+day+i;k=1;}
s=cin.get();
cout<<encryptionCH(s);
}while(s!='\n');
}
题目:
定义一个日期类Date,包含年、月、日三个数据成员(int),定义带有3个参数的构造函数,
以及一个求日期是当年的第几天的成员函数和输出日期的成员函数,
日期的显示格式为年/月/日。编写主函数进行测试。
en[i]=s[i]+5;
else if(s[i]>='V'&&s[i]<='Z'||s[i]>='v'&&s[i]<='z')
en[i]=s[i]-21;
else en[i]=s[i];
i++;
return en[i-1];
}
/********** End **********/
void main()
/**********Program**********/
char s[10];
int i=0;
char encryptionCH(char x)
{
s[i]=x;
char en[10];
if(s[i]>='A'&&s[i]<='U'||s[i]>='a'&&s[i]<='u')
en[i]=s[i]+5;
d1.show();
cout<<d1.getDay()<<endl;
d2.SetD(2012,3,1); //d2为2012年3月1日
d2.show();
cout<<d2.getDay()<<endl;
return 0;
}
题目:
定义一个点类Point包括x坐标和y坐标(int)。定义一个圆类Circle,有数据成员半径
(每年各月天数分别为31,28,31,30,31,30,31,31,30,31,30,31,闰年2月为29天,
闰年的条件year%4==0&&year%100!=0)||year%400==0))
输出结果见样张.JPG
-------------------------------------------------------*/
if (month==9&&day<=30) {n=243+day+i;k=1;}
if (month==10&&day<=31){n=273+day+i;k=1;}
if (month==11&&day<=30) {n=304+day+i;k=1;}