C++题库答案
cout << endl; #include
int a[10] = {2, 4, 5, 8, 9, 19}, an = 5; int b[10] = {2, 3, 4, 8, 12, 18}, bn = 5; int i, j, k, c[20], max = 999; a[an + 1] = b[bn + 1] = max; i = j = k = 0;
while ((a[i] != max) || (b[j] != max)) if (a[i] < b[j]) {
c[k] = a[i]; k++; i++; } else {
c[k] = b[j]; k++; j++; }
for (i = 0; i < k; i++) cout << c[i] << \; cout << endl; return 0; }
Q37.(10分)请输出如下方阵:
1 2 2 2 2 2 1 3 1 2 2 2 1 4 3 3 1 2 1 4 4 3 3 3 1 4 4 4 3 3 1 5 1 4 4 3 1 5 5 5 1 4 1 5 5 5 5 5 1
输出格式要求:数据之间用2个空格隔开。 #include
int a[7][7], i, j;
for (i = 0; i < 7; i++)
- 21 -
C++题库答案
for (j = 0; j < 7; j++) {
if (i == j || i + j == 6) a[i][j] = 1;
else if (i < j && i + j < 6) a[i][j] = 2;
else if (i > j && i + j < 6) a[i][j] = 3;
else if (i < j && i + j > 6) a[i][j] = 4; else
a[i][j] = 5; }
for (i = 0; i < 7; i++) {
for (j = 0; j < 7; j++)
cout << a[i][j] << \; cout << endl; }
return 0; }
Q38.(10分)输入20个整数,统计非负数的个数,并计算它们的和,然后将
非负数从小到大进行排序并输出。 输入信息提示要求:无
输出提示信息格式要求:cout<<\非负数有:\个\ cout<<\非负数是:\ cout << setw(5) << a[i];
cout<<\非负数的和是:\
cout<<\将非负数从小到大排序输出:\ cout << setw(5) << a[i]; #include
int a[20], s = 0, n = 0, i, j, t; for (i = 0; i <= 19; i++) cin >> a[i];
for (i = 0; i <= 19; i++) {
if (a[i] > 0)
- 22 -
C++题库答案
{
a[n] = a[i]; n++; } }
cout << \非负数有:\ << n << \个\ << endl; cout << \非负数是:\ << endl; for (i = 0; i < n; i++)
cout << setw(5) << a[i]; cout << endl;
for (i = 0; i < n; i++) s = s + a[i];
cout << \非负数的和是:\ << s << endl; for (i = 0; i <= n - 2; i++)
for (j = i + 1; j <= n - 1; j++) if (a[i] > a[j]) {
t = a[i]; a[i] = a[j]; a[j] = t; }
cout << \将非负数从小到大排序输出:\ << endl; for (i = 0; i < n; i++)
cout << setw(5) << a[i]; cout << endl; return 0; }
Q39.(10分)输入10名学生语文、数学、外语课成绩,计算每名学生三门课
的平均成绩,输出每人各科成绩及平均成绩,并分析三门课程的优秀率,90分以上为优秀。
输入提示信息格式控制:cout<<\输入第\个学生成绩:\输出提示信息格式控制:cout<<\第\个学生的各科成绩:\ cout<<\平均成绩:\ cout<<\第\门课程的优秀率为:\
#include
- 23 -
C++题库答案
{
int score[10][3],sum; int i,j,n;
for (i=0;i<10;i++) {
cout<<\输入第\<
cin >>score[i][j]; }
for (i=0;i<10;i++) {
sum=0;
cout<<\第\<
sum +=score[i][j];
cout< cout<<\平均成绩:\< for (j=0;j<3;j++) { n=0; for (i=0;i<10;i++) if(score[i] [j] >=90) n++; cout<<\第\< return 0; } Q40.(10分) 程序设计,已知平面上有一个圆,圆心坐标为(2,2),半径r为1。请输入一个点M的坐标(x,y),判断点M是在圆内、圆上还是在圆外。 - 24 - C++题库答案 要点分析:点M到圆心之间的距离d=圆的关系。 ,比较d和r的大小确定点与 输入格式要求:cout << \请出入点M的坐标(x,y):\ 输出格式要求:\点M在圆外。\ \点M在圆上。\ \点M在圆内\ #include using namespace std; int main () { double x,y,d; cout << \请出入点M的坐标(x,y):\; cin>>x>>y; d=sqrt((x-2)*(x-2)+(x-2)*(x-2)); if(d>1) cout<<\点M在圆外。\< cout<< \点M在圆上。\ < cout<<\点M在圆内\< Q41.(10分)有若干个数放入数组中,计算其中正数的平均值aver. 设:float a[6] = {39, -47, 21, 2, -8, 15}, aver; 输入格式要求:无 输出结果为:aver=19.25 #include - 25 -