C++题库答案
day = 30; break; case 2:
if (year % 400 == 0 || year % 4 == 0 && year % 100 != 0) day = 29; else
day = 28; break; }
cout << year << \年\ << month << \月\ << \是\ << day << \天。\ << en return 0; }
Q21.(10分)
编写程序,求解下面的分段函数:
输入格式要求: cout << \请输入x:\; 输出格式要求: cout << \<< y << endl;
#include
double x,y; cout<<\请输入x:\; cin>>x;
if(x>-10&&x<0) y=x-8; if(x==0) y=x;
if(x>0&&x<10) y=x*x; cout<<\< - 11 - C++题库答案 Q22.(10分)用“辗转相除方法”计算两个数 x,y 的最大公约数。 输入格式要求:无,直接输入 输出格式要求:无,直接输出结果 #include int x, y, n; cin >> x >> y; n = x % y; while (n != 0) { x = y; y = n; n = x % y; } cout << y << endl; return 0; } Q23.(10分)利用选择法将下面10个数按降序排列。 有如下定义:int n[10] = {5, 6, 4, 2, 3, 7, 8, 5, 6, 7};输入格式要求:无 输出格式要求:以逗号分隔降序数列 #include int n[10] = {5, 6, 4, 2, 3, 7, 8, 5, 6, 7}, i, j, k, t; for (i = 0; i < 9; i++) { k = i; for (j = i + 1; j < 10; j++) if (n[k] < n[j]) k = j; t = n[i]; n[i] = n[k]; n[k] = t; } for (j = 0; j < 10; j++) cout << n[j] << \; - 12 - C++题库答案 return 0; } Q24.(10分)定义数组,输入不多于20名若干学生成绩,统计高于平均分的 人数k,用-1做结束标志。 输入格式要求:无 输出格式要求:cout << \高于平均分的人数:\#include double cj[20], aver, sum = 0; int n = 0, k = 0, i; cin >> cj[0]; while (cj[n] >= 0) { sum += cj[n]; n++; cin >> cj[n]; } aver = sum /( n-1); for (i = 0; i < n-1; i++) if (cj[i] > aver) k++; cout << \高于平均分的人数:\ << k << endl; return 0; } Q25.(10分)已知三个数a,b,c,按由小到大的顺序存入a,b,c中并输出. 输入格式要求:cout << \输入三个整数:\输出格式要求:cout << \由小到大的顺序是:\<< a << \<< b << \#include int a, b, c, t; cout << \输入三个整数:\; cin >> a >> b >> c; if (a > b) { t = a; - 13 - C++题库答案 a = b; b = t; } if (a > c) { t = a; a = c; c = t; } if (b > c) { t = b; b = c; c = t; } cout << \由小到大的顺序是:\ << a << \ << b << \< Q26.(10分)编程计算 sum=1!+2!+...+9!。 输入格式要求: 无 输出格式要求: cout <<\#include int sum=0; for (int i=1; i<=9; i++) { int x=1; for (int j=1;j<=i;j++) x=x*j; sum=sum+x; } cout <<\ << sum << endl; return 0; } Q27.(10分)编写函数,删除字符串中的指定字符,函数原型为: void deletechar(char *string, char ch); 设char c[100] = \输出结果:bcdbcd bbccdd #include - 14 - C++题库答案 #include void deletechar(char *string, char ch) { int i(0), k(0); while (string[i++] != '\\0') if (string[i] != ch) string[k++] = string[i]; string[k] = '\\0'; } int main () { char c[100] = \; deletechar(c, 'a'); cout << c << endl; return 0; } Q28.(10分)编写函数,将一个十进制无符号整数转换为二进制整数,函数 原型为: void transform(char*p,long i,int base=2); #include void transform(char*p, long i, int base = 2) { int r(0), k(0); char t[128]; while (i > 0) { r = i % base; if (r < 10) t[k] = r + 48; else t[k] = r + 55; i = i / base; k++; } k--; r = 0; while (k >= 0) { *(p + r) = t[k]; r++; k--; - 15 - 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库大学最新C++题库及答案(3)在线全文阅读。
相关推荐: