有c++的答案,卷子吗

如题所述

C++练习题大荟萃
本书共包含十个章节的内容
第一章 C++语言的概述
一、简答题
1. C++的单词包含那几种?
2. 一个标识符中的首字符必须是什么字符?其余位置上的字符必须是什么字符?
3. 数值常量、字符常量、字符串常量和标识符在表示上各有什么区别?
4. C++语句分为哪几类?
5. #include命令的格式和功能各是什么?使用尖括号和双引号在含义上有什么区别?
6. 你已经知道了那几个系统头文件?
7. cout和cin 标识符的含义是什么?他们后面分别使用什么运算符?各运算符的作用是什么?
8. 上机运行一个程序需要经过那些阶段?
二、填空题
1. 程序中的预处理命令是指以______字符开头的命令。
2. 一条简单语句是以______字符作为结束符的,一条复合语句是分别以______字符和______字符作为开始符和结束符的。
3. 空白符是______符、______符、和______符的统称。
4. 在#include命令中所包含的头文件,可以是______头文件,也可以是______头文件。
5. 使用#include命令可以包含一个头文件,也可以包含一个______文件。
6. 一个函数定义由______和______两部分组成。
7. 一个程序中必须有一个名为______的函数。
8. 函数头与______语句一样都能够提供出函数的参数和返回类型等信息。
9. 若一个函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的______语句。
10. 一个函数的函数体就是一条______。
11. C++头文件和源程序文件的扩展名分别为______和______。
12. 程序文件的编译错误分为______和______两类。
13. 当使用______保留字作为函数类型时,该函数不返回任何值。
14. 当函数参数表用______保留字表示时,则表示该参数表为空。
15. 从一条函数原型语句”int fun1(void);”可知,该函数的返回类型为______,该函数带有______个参数。
16. 当执行cout语句向C++显示输出屏幕输出一个数据项的值时,若该值的显示宽度(即所占显示位置的字符数)为n,则显示该值后光标将从原位置后移______个字符显示位置。
17. 当执行cout语句输出endl数据项时,将使C++显示输出屏幕上的光标从当前位置移动到______的开始位置。
18. 当执行cin语句时,从键盘上输入每个数据后必须输入一个______符,然后才能接着输入下一个数据。
三、写出下列程序运行结果,此题又作为上机实验题
1. #include<iostream.h>
void main()
{
int x,y;
x=5;y=6;
cout<<”x+y=”<<x+y<<’,’;
cout<<”x*y=”<<x*y<<endl;
}
2. #include<iostream.h>
int cube(int);
void main(void)
{
cout<<”cube(3)=”<<cube(3)<<endl;
cout<<”cube(5)=”<<cube(5)<<endl;
cout<<”cube(8)=”<<cube(8)<<endl;
}
int cube(int x)
{
return x*x*x;
}
3. #include<iomanip.h>
#include”abc.h”
void main()
{
double a,b,c;
double averageValue;
a=2;b=3;c=4;
averageValue=AVE(a,b,c);
cout<<”averageValue;”<<averageValue<<endl;
averageValue=AVE(a,b+1,c+2);
cout<<”averageValue:”<<averageValue<<endl;
}
其中abc.h文件的内容如下:
double AVE(double x,double y,double z)
{
return (x+y+z)/3;
}
4. #include<iostream.h>
#include”example.h”
void main()
{
int a,b,c;
cout<<”请输入3个整数:”
cin>>a>>b>>c;
cout<<”最大值:”<<max_value(a,b,c)<<endl;
cout<<”最小值:”<<min_value(a,b,c)<<endl;
}
其中example.h文件的内容如下:
int max_value(int a,int b,int c);
int min_value(int a,int b,int c);

这两个函数的定义(又称为函数的实现或具体实现)被保存在另一个程序文件中,它将被编译后连接到主文件中产生出可执行文件。该程序文件的内容如下:
int max_value(int a,int b,int c)
{
if(a<b) a=b;//若a小于b则将b的值赋给a
if(a<c) a=c;//若a小于c则将c的值赋给a
return a;
}
int min_value(int a,int b,int c)
{
if(a>b) a=b;// 若a大于b则将b的值赋给a
if(a>c) a=c;// 若a大于c则将c的值赋给a
return a;
}
请读者自行假定用于输入的3个整数。

第二章 数据类型和表达式
一、简答题
1. C++数据分为哪四种大的类型?在大的整数类型中又分为哪四种类型?
2. 整数类型分为哪三种类型,每种类型的长度各是多少?
3. 实数类型分为哪三种类型,它们的类型长度各是多少?
4. 单精度和双精度分别表示多少位有效数字?
5. 每一种C++具体类型的关键字是什么?
6. 哪四种保留字能够用来修饰int 保留字成为类型关键字?哪两种保留字能够用来修饰char保留字成为类型关键字?
7. 整型常数具有哪三种不同进制的表示?如何区分它们?
8. 一个整数后缀L或U分别具有什么含义?
9. 转义字符序列中的首字符是什么字符?
10. 实数具有哪两种表示方法?一个浮点数具有那些成分?什么叫规格化浮点数?
11. 定义符号常量和变量的语句有什么异同?
12. #define命令的作用是什么?
13. 一个C++运算符具有哪三种属性?
14. 左值和非左值(又称右值)有什么区别?
15. 在程序文件中使用系统数学函数或随机函数时,各需要通过#include命令引入哪个头文件?
16. 一个表达式是否必须有一个值,在什么情况下它没有值?
17. 执行一个函数调用的大致过程是什么?函数运算的优先级如何?
二、填空题
1. 数据类型int,char,bool,float,double的类型长度分别为______、______、______、______和______。
2. 短整型、整型和长整型的最简关键字分别为______、______和______。
3. 常数-4.205,1200和6.7E-9分别具有______、______和______位有效数字。
4. 数值常量46、0173和0x62对应十进制值分别为______、______和______。
5. 字符常量 ’k’,’\n’,’\\’,’/052’和’\xA2’对应的数值分别为______、______、______、______和______。
6. 字符串”It \’s\40an\40apple.\n”中包含有______个字符。
7. 枚举类型中的每个枚举值都是一个______,它的值是一个______,值的类型为______。
8. 实数340.0和0.027E8对应的规格化浮点数分别为______和______。
9. 常数100,-25,3.62,1E5和-4.73f的数据类型分别为______、______、______、______和______。
10. 若x的值为10,则x+=5的值和运算后的______的值相同,等于______。
11. 若x=5,y=10,则计算y*=++x表达式后,x和y的值分别为______和______。
12. 若x=25,则计算y=x++表达式后,x和y的值分别为______和______。
13. 假定x和ch分别为int 型和char型,则sizeof(x)和sizeof(ch)的值分别为______和______。
14. 假定x=64,y=88,则x<<2和y>>2的值分别为______和______。
15. 假定x是一个逻辑量,则x&&true的值与______的值相同,x||false的值也与______的值相同。
16. 假定x是一个逻辑量,则x&&!x的值分别为______和______。
17. 假定x=10,则表达式x<=10?20:30的值为______。
18. 假定x=10.5,y=-4.6,则表达式floor(fabs(x+y))的值为______。
19. 表达式sqrt(81)和pow(6,3)的值分别为______和______。
20. 随机函数rand()%20的值在______至______区间内。
21. 数学算式(1+x)sin48°和axbex+1对应的算术表达式分别为______和______。
三、试指出下列各表达式值的类型
假定a为int型,x为double型,

1. 327
2. -1.5e6
3. 42.0f
4. 48L
5. 0372
6. 0xabc
7. 1/3
8. 1%3
9. 1.0%3
10. a*3/x
11. a*(a+x)
12. 1+a*a
13. a+=3
14. x*=2
15. ‘x’
16. ‘x’+20
17. true
18. ++a
19. short(a)
20. bool(x)
21. (unsigned int)(0256)
22. x=a++
23. sizeof(bool)
24. char(a+10)
25. abs(x)
26. fabs(a)
27. floor(x)
28. ceil(a)
29. exp(4)+2
30. rand()
31. rand()/100
32. floor(log(x))
33. pow(a,4)
34. a>10?x:sqrt(x)
35. a>100
36. x!=10
37. a&&x
38. a<1||a>10
39. !x
40. !(a==0)

四、试求出下列每个表达式的值(各表达式互不影响)
已知a=20,x=4.7,r=’a’,

1. a++
2. ++r
3. a%5
4. a/5
5. r%18
6. 1+a/3%4
7. a/8.0
8. r+=4
9. x=2*(x+5)-1
10. char(a+30)
11. 10*sizeof(int)
12. (a<<3)+5
13. a>0
14. a==1
15. a++&&r!=’a’
16. ++a&&r==’a’
17. a||x<=10
18. a==r||a==floor(x)
19. a=(r>’A’?a+10:a-10)
20. a=(r<’A’?a+10:a-10)
21. x=(a++,r++)
22. x=(a++,r++,50)
23. x=pow(3,5)
24. x=fabs(-26.5)+4
25. a=abs(a)%8-10
26. floor(x+0.5)
27. ceil(x-0.5)
28. ceil((x-=0.5)-0.5)

五、把下列数学算式或不等式表示成C++表达式
1. 2x(1+x2/3)
2. (1+ex)/(1-ex)
3. (-b+(b2-4ac)1/2)/2a
4. 1/(3xln(2x+k))
5. sin3(x+π/4)/(3+cos3(x-π/4))
6. 1/7(1+ex+1) n
7. 0<=x<=20
8. ax-by!=c
9. 4x+7y-2=3ab
10. |2x2+1|/|3x+2|<-5同时3x+2!=0
11. age>=55或者pay>=820
12. place=”江苏”同时sex=”女”
13. ‘a’<=ch<=’z’或者’A’<=ch<=’Z’
14. s[0]=’0’同时(s[1]=’x’或者s[1]=’X’)
六、写出下列每个程序运行后的输出结果并自行上机验证
1. #include<iostream.h>
enum race{Black,White,Yellow};
void main()
{
race ra;
ra=Black;cout<<ra<<’,’;
ra=White;cout<<ra<<’,’;
ra=Yellow;cout<<ra<<’,’;
cout<<Black+White+Yellow<<endl;
}
2. #include<iostream.h>
#define PI 3.14159
const int R=10
void main()
{
double p,s;
p=2*R*PI;
cout<<”p=”<<p<<endl;
cout<<”s=”<<s<<endl;
}
3. #include<iostream.h>
void main()
{
int i=0,j=1,k;
k=i+=j;
cout<<i<<’ ’<<j<<’ ’<<k<<endl;
k=(i++)*(++j);
cout<<i<<’ ’<<j<<’ ’<<k<<endl;
k*=i++*j--;
cout<<i<<’ ’<<j<<’ ’<<k<<endl;
}
4. #include<iostream.h>
void main()
{
cout<<sizeof(bool)<<’ ’<<sizeof(char)<<’ ’;
cout<<sizeof(short)<<’ ’<<sizeof(int)<<’ ’;
cout<<sizeof(long)<<’ ’<<sizeof(float)<<’ ’;
cout<<sizeof(double)<<’ ’<<sizeof(long double)<<’ ’;
cout<<sizeof(int *)<<’ ’<<sizeof(double *)<<’ ’;
}
5. #include<iostream.h>
const int w=30;
void main()
{
int x,y;
x=w<<2;y=w>>2;
cout<<w<<’ ’<<x<<’ ’<<y<<endl;
x=w&10;y=w|10;
cout<<w<<’ ’<<x<<’ ’<<y<<endl;
x=w^10;y=-x&w;
cout<<w<<’ ’<<x<<’ ’<<y<<endl;
}
6. #include<iostream.h>
void main()
{
int x=10,y=-1;
cout<<((x>y)&&(y<0))<<’ ’;
cout<<((x>y)||(y<0))<<’ ’;
cout<<((x<=y)&&(y>=0))<<’ ’;
cout<<((x<=y)||(y>=0))<<’ ’;
cout<<((x==y)&&y)<<’ ’;
cout<<((x==y)||y)<<’ ’;
}
7. #include<iostream.h>
void main()
{
int x=5,y=10,k;
(k=x)+=y;cout<<x<<’ ’<<y<<’ ’<<k<<endl;
k=x+=y;cout<<x<<’ ’<<y<<’ ’<<k<<endl;
k=x*=y;cout<<x<<’ ’<<y<<’ ’<<k<<endl;
k=(x++,y++);cout<<x<<’ ’<<y<<’ ’<<k<<endl;
k=x++,y++;
cout<<x<<’ ’<<y<<’ ’<<k<<endl;
}
8. #include<iostream.h>
#include<math.h>
void main()
{
double x=15.72;
double y,z;
y=ceil(x);z=floor(x);
cout<<x<<’ ’<<y<<’ ’<<z<<endl;
y=floor(x+0.5);z=floor(x*10+0.5)/10;
cout<<x<<’ ’<<y<<’ ’<<z<<endl;
y=ceil(x-0.5);z=ceil(x*10-0.5)/10;
cout<<x<<’ ’<<y<<’ ’<<z<<endl;
}
七、编写下列程序
1. 已知一个三角形中三条边的长度分别为a,b和c,利用计算公式(s(s-a)(s-b)(s-c))1/2 求出三角形的面积,其中s=(a+b+c)/2,假定a,b和c的值由键盘输入,并确保任何两边的长度大于第三条边。
2. 假定一所大学2001年招生人数为3000人,若以后每年平均比上一年计划扩招10%,则2006年将计划招生多少人?
3. 已知有4个整数为a,b,c,d,试计算出它们的算术平均值和几何平均值。
4. 已知x=2a/2(a+b)sina,y=2b/3(a+b)cosb,试根据从键盘上输入的a和b的值分别计算出x和y的值。
八、上机实验题
1. 让计算机随机出10道两位整数加法题供用户计算,每道题10分,计算完成后打印出得分。
#include<iostream.h>
#include<stdlib.h>
#include<time.h>
const N=10;
void main()
{
srand(time(0));
int x,y,z,c=0;
for(int I=1;I<=N;I++)
{
x=rand()%90+10;
y=rand()%90+10;
cout<<x<<’+’<<y<<’=’;
cin>>z;
if(x+y==z)c++;
}
cout<<”得分:”<<c*10<<endl;
}
2. 打印出0°-90°之间每隔5°的正弦值和余弦值。
#include<iomanip.h>
#include<math.h>
const double RAD=3.14159/180;
void main()
{
int I=0;
while(I<=90)
{
cout<<setw(5)<<I<<setw(10)<<sin(I*RAD)<<’ ’;
//setw(n)使后面一个数据的输入宽度为n,
//它在iomanip.h头文件中有定义
cout<<setw(10)<<cos(I*RAD)<<endl;
I+=5;
}
}
3. 把从键盘上输入的一个正整数按数字位的相反次序输出。
#include<iostream.h>
void main()
{
int num,rem;
cout>>num;
do{
rem=num%10;
num/=10;
cout<<rem;
}while(num>0);
cout<<endl;
}
4. 打印出a-f中每个大小写字母所对应的ASCII码。
#include<iostream.h>
void main()
{
char c1=’A’,c2=’a’;
for(int I=1;I<=6;I++)
{
cout<<c1<<’:’<<int(c1)<<”,”;
cout<<c2<<’:’<<int(c2)<<endl;
c1++;c2++;
}
}
5. 从键盘上输入两个整数,由用户回答他们的和、差、乘和取余运算的结果,并统计出正确答案的个数。
#include<iostream.h>
void main()
{
int x,y,z,c=0;
cout<<”输入两个整数:”;
cin>>x>>y;
cout<<x<<’+’<<y<<’=’;
cin>>z;if(x+y==z) c++;
cout<<x<<’-’<<y<<’=’;
cin>>z;if(x-y==z) c++;
cout<<x<<’*’<<y<<’=’;
cin>>z;if(x*y==z) c++;
cout<<x<<’/’<<y<<’=’;
cin>>z;if(x/y==z) c++;
cout<<x<<’%’<<y<<’=’;
cin>>z;if(x%y==z) c++;
cout<<”答对”<<c<<”道题”<<endl;
温馨提示:答案为网友推荐,仅供参考