C++程序设计
6 写出运行结果:
void foo( int &c){ static a = 1; c += a++; }
int main() {
int a;
int &b = a; a = 10; foo(a);
cout << a << endl; foo(++b);
cout << a << endl; return 0; }
7 写出运行结果
template
int main()
{ int a[] = {4,5,2,8,9,3};
double b[] = {3.5,6.7,2,5.2,9.2};
cout << \cout << \return 0; }
template
T maxv = x[0]; for(i=1;i if (maxv < x[i]) maxv = x[i]; return maxv; } A 卷 总8页 第 5 页 C++程序设计 8. 写出运行结果 int f(int n) { int p; if (n == 0 || n == 1) return 1; else { p = 2 * f(n-1) + f(n-2); return p; } } int main() { cout << f(4); cout << endl; return 0; } 9.请写出下列程序的功能,以及当输入为“12345”时的输出结果。 int main() {int num = 0, i; char ch[10]; cin >> ch; for (i = 0; ch[i] != '\\0'; ++i) num = num * 10 + ch[i] - '0'; cout << num << endl; return 0; } 10. 下面是解决汉诺塔问题的函数,假如每搬动一次盘子需要1秒钟,请问完成64个盘子的汉诺塔问题 需要多少秒? void Hanoi(int n, char start, char finish, char temp) { if (n==1) cout << start << \ else { Hanoi(n-1, start, temp, finish); cout << start << \ Hanoi(n-1, temp, finish, start); } } A 卷 总8页 第 6 页 C++程序设计 四.程序填空(每空2分,共24分) 1.下面程序计算任意多个数的平均数,数据作为命令行的参数传入。 int main(int argc, char *argv[]) { char *tmp; int sum = 0, value ; for(int i=1; ; ) { value = 0; tmp = argv[i]; while ( ) { value = ; ++tmp; } sum += value; } cout << < 2.以下是选择排序法的递归实现,其中array是要排序的数组,n是要排序的元素个数。请填空。 void sort(int array[], int n) { int i, min, tmp; if (n>1) { min = 0; for (i = 0; i < n; ++i) if ( ) min=i; if ( ) { tmp = array[0]; array[0] = array[min]; array[min] = tmp; } sort( ); } } A 卷 总8页 第 7 页 return 0; C++程序设计 3.Conj函数的功能是将两个字符串s和t连接起来,连接后的串存放在动态内存分配区,返回指向连接 后的串的指针 char *conj ( char *s, char *t) { char *p, *q; p = q = ; while (*s) ; while (*t) { *q = ; q++; t++; } *q = ?\\0?; ; } 五. 编程题(共20分) 1、(5分)有这样的一个算式:ABCD×E=DCBA。其中,A、B、C、D、E代表不同的数字。编一个程序找出A、 B、C、D、E分别代表的的什么数字。 评分标准:采用枚举法 2分 程序逻辑 3分 2、(5分)用级数展开法计算平方根。根据泰勒公式 (x?a)2(x?a)3(x?a)n'''(n), f(x)?f(a)?f(a)(x?a)?f(a)?f(a)???f(a)2!3!n!'''可求得 11(x?1)23(x?1)315(x?1)4x?1?(x?1)????? 242!83!164!设计一个函数计算x的值。要求误差小于10-6。 评分标准:正确计算每一项 1分 循环控制 1分 其他逻辑 3分 3、(10分)Julian历法是用年及这一年中的第几天来表示日期。设计一个函数char *Julian(int year, int day)将Julian历法表示的日期转换成月和日,如Mar 8(注意闰年的问题)。函数返回一个字符串,即转换后的月和日。如果参数有错,如天数为第370天,返回NULL。 评分标准:正确使用动态变量 1分 闰年计算 2分 参数检查 2分 转换过程 3分 其他 2分 A 卷 总8页 第 8 页