六、编程题
1. 编一程序求出满足不等式1+1/2+1/3+…+1/n≥5的最小n值。
2. 计算1+3+32+…+310的值并输出,假定分别用i,p,s作为循环变量、累乘变量和累加变量的标识符。
3. 求满足不等式22+42+…+n2<1000的最大n值,假定分别用i和s作为取偶数值和累加值的变量,并限定使用do循环编程。
4. 已知 ,求出并显示当x依次取从键盘输入的不同值时所对应的y值,要求把a定义为常量,其值设定为10.2,x的每个值由键盘输入,并假定用-100作为键盘输入数据的终止标志,求平方根函数为sqrt(x)。
C++语言程序设计自测练习(一)参考解答
一、单项选择题
1. A 2. C 3. B 4. B 5. B 6. C 7. A 8. D 9. B 10. D
11. D 12. C 13. D 14. D 15. C 16. A 17. B 18. A 19. C 20. B
21. B 22. C 23. C 24. B 25. D 26. C 27. A 28. A 29. C 30. B
31. D 32. C 33. D 34. C 35. C 36. A 37. B 38. B 39. C 40. A
41. C 42. C 43. A 44. B 45. B 46. A 47. B 48. B 49. C 50. B
二、填空题
1. C 2. .cpp 程序 3. // 4. /* */ 5. cout 6. cin
7. main 8. 复合 9. 空白 10. #include 11. # 12. 分号
13. 用户(或编程者)14. 程序 15. 函数头 函数体 16. 原型(或声明)
17. .h .cpp 18. 警告(warning)致命(error)
19. void 20. void 21. int 0 22. 下一行 23. 35 24. 25
25. 6 30 26. 4 11 27. 325 28. 2 29 29. 0xF5 (F大小写均可)
30. 0365 31. -128 +127 32. 4 4 33. 4 8 34. 1 1 35. 2 4
36. 15 37. 15 38. 7 39. 6 40. 1 3 41. 3 3.2
42. x 43. true (或1) 44. false (或0) 45. x 46. !x
47. false (或0) 48. true (或1) 49. (x+y)/(2*x*y) 50. 3*x*y/(x+y)
51. 1/(a*x*x+b*y*y) 52. 1 53. 3 54. 4 2 55. 枚举常量 整数
56. int double 57. 6 60 58. 4 1 59. 20 60. 9 216
三、程序填充题,对程序、函数或类中划有横线的位置,根据题意按标号把合适的内容填写到程序下面相应标号的后面
1. (1) f1+f2 (2) i%5==0 (3) f
2. (1) x (2) I (3) -j
3. (1) n<=99 (2) i<=temp (3) break
4. (1) b<=0 (2) a=b (3) b=r
5. (1) x<3 (或x<=2) (2) x%i==0 (3) i++
6. (1) b%i==0 (2) i++ (或++i) (3) b>=i
7. (1) i<=5 (2) j>=5+i (3) cout<<’*’
8. (1) str>=’A’ && str<=’Z’ (2) num++ (3) return num
9. (1) void fun(char ss[]) (2) fun(s) (3) i<n/2
10. (1) a (或a!=’\0’) (2) a!=c 3) ‘\0′
四、写出程序运行结果
1. max:85
min:18
2.
1 2 3 5 8 13 21 34
55 89
3. s=60 //6分
4. 121
a,b,c=7,12,30
5. 11 14 switch end.
6. 36 139 -5 1 73 8 8 67
7. 114 138 55
8. 1 1 1
2 2 3
3 6 9
4 24 33
9. 10 6 4
10. *****
****
***
**
*
11. 1 5 7 11 13 37
五、指出程序或函数的功能
1. 计算并输出22+42+62+…+302的值。
2. 随机产生出10个10至99之间的素数并显示出来。
3.此函数用于把十进制整数x转换为十六进制数字串输出。
4. 计算并输出1+ 的值,其中a的值由键盘输入。
5. 以参数a和b为运算对象,以参数op为四则算术运算符,求出运算结果并返回。
6. 把从键盘上输入的一个整数x分解为所有可能的每两个因子之积。
7. 计算并输出 的值,其中N值由键盘输入。
8. 让计算机随机产生出10道20以内整数的加法题供用户计算,每道题10分,计算完成后打印出得分。
9. 求出1+22+32+…+n2的值。
10. 实现字符串系统函数strcpy的功能,把b所指的字符串拷贝到a所指的字符数组空间中。
11. 函数模板,从一维数组a[n]中查找值为key的元素,若查找成功则返回真否则返回假。
六、编程题
1. void main()
{
int i=0; double s=0;
while(s<5) s+=double(1)/++i;
cout<<”n=”<<i<<endl;
}
若采用for循环编写程序,则如下所示:
#include<iostream.h>
void main()
{
int i; double s=0;
for(i=1; s<5; i++) s+=1.0/i;
cout<<”n=”<<i-1<<endl;
//注意:此i-1的值为所求的n值
}
2. #include<iostream.h>
void main()
{
int i; //用i作为循环变量
int p=1; //用p作为累乘变量
int s=1; //用s作为累加循环变量
for(i=1;i<=10;i++) {p*=3; s+=p;}
cout<<s<<endl;
}
3. #include<iostream.h>
void main()
{
int i=0; //用i作为依次取值偶数的变量
int s=0; //用s作为累加变量
do {
i+=2;
s+=i*i;
}while(s<1000);
cout<<”n=”<<i-2<<endl;
}
4. #include<iomanip.h>
#include<math.h>
const double a=10.2;
void main()
{
double x,y;
cin>>x;
while(x!=-100) {
if(x<=0) y=sqrt(a*a+x*x);
else y=3*a*x*x+4*a*x-1;
cout<<x<<’ ’<<y<<endl;
cin>>x;
}
}
>> 本文固定链接: http://www.vcgood.com/archives/912