高级语言程序设计 试题 (A)
题号 分数 一 二 哈工大 2009 年 秋 季学期
学号 姓名 四 总分 三 说明:本试卷卷面满分为100分。总成绩将按平时实验成绩和卷面笔试成绩各自所占比例折合后累加计算。如此卷为补考试卷,则按卷面分数记入补考成绩。 考试时间:120分钟。 考试方式:开卷考试,可以带一切纸质资料,不能携带任何电子设备,并只可以参考自己的资料,不可以相互交流。
一、单项选择题(共10小题,每题3分,共30分。每题只有一个正确答案,请将正确答案对应的索引字母填入括号内。)
1. 取地址运算符是: ( a ) A) & B) * C) ~ D) ^
2. 取数组a的第5个元素的地址,正确的写法是 ( b ) A) *a[4] B) &a[4] C) a[4] D) *(a+4)
? 3. 若有语句int a = 1, b = 2, c = 3;则以下值为0的表达式是 ( ) A)’a’ && ’b’ B)a <= b
C)((a>b) || (b 4. 在循环语句的循环体中执行break语句,其作用是 ( a ) A) 跳出该循环体,提前结束循环 B) 继续执行break语句之后的循环体各语句 C) 结束本次循环,进行下次循环 D) 终止程序运行 5. 执行语句for ( i = 10; i > 0; i --);后,变量i 的值为 ( c ) A)10 B)9 C)0 D)1 第 1 页 (共 8 页) 试 题:高级语言程序设计(A) 班号: 姓名: 6. 下面程序段输出结果是 ( a ) int main() { double number = 12345.12345678; cout << setw(10) << setprecision(5) << number << endl; cout << setw(10) << setprecision(10) << number << endl; return 0; } A) 12345 B) 12345 C) 12345 D) 12345 12345.12346 12345.12345 12345.12345 12345.1235 ?7. 关于C++中同一个类的构造函数,正确的说法是: ( c ) A) 构造函数不允许有参数 B) 构造函数不允许重载 C) 构造函数不允许声明返回值类型 D) 构造函数不允许有多个 8. 同一作用域中定义的多个对象的构造函数和析构函数的调用顺序是: ( ) A) 先构造的后析构,后构造的先析构 B) 先构造的先析构,后构造的后析构 C) 调用构造函数的顺序与调用析构函数的顺序相同 D) 由用户编程时对构造函数和析构函数的显式调用顺序确定 9. 以下各语句或语句组中,执行出现警告的是 ( ) A) char s[ ] = ”abcde”; B) char *s; gets(s); C) char *s ; s=”abcde”; D) char a[300]; cin.getline(a, 20); 10. 下面的函数声明不合法的是 ( ) A. void t1(int x, int y = 0, int z) ; B. void t1(int x, int y = 0, int z = 0) ; C. void t1(int x =0, int y = 0, int z = 0) ; D. void t1(int x, int y , int z) ; 第 2 页 (共 8 页) 试 题:高级语言程序设计(A) 班号: 姓名: 二、改错题(共2小题,每题10分,共20分) 1. 编写下面这个程序main.cpp的目的是从键盘输入时、分、秒的值并输出这个时间。请找到并改正其中的任意五行错误或不当的代码,不改正不得分(可以在题目上直接改)。 #include int main() { Time t; t::set_time(); t::show_time(); return 0; } class Time { void set_time() { cin >> hour; cin >> minute; cin >> sec; } void show_time() { cout << hour << \ } int hour; int minute; int sec; void Time() : hour(0), minute(0), sec(0) { } } 第 3 页 (共 8 页) 试 题:高级语言程序设计(A) 班号: 姓名: 2. 分析下面的程序,请找到并改正其中的任意五行错误或不当的代码,不改正不得分(可以在题目上直接改)。 统计字符数。判断一个由’0’ ~ ‘9’这10个字符组成的字符串中哪个字符出现的次数最多。 输入数据:第一行是测试数据的组数m,每组测试数据占1行,每行数据不超过1000个字符且非空。 输出要求:m行,每行对应一组输入,包括出现次数最多的字符和该字符出现的次数。如果有多个字符出现的次数相同且最多,那么输出ASCII码最小的那一个。 #include using namespace std; main() { int cases, sum[10], i, max; char str[1000]; cin >> case; while (cases > 0) { cin.getline(str, 1000); for (i = 0; i < 10; i++) sum[i] = 0; for (i = 0; i < strlen(str); i++) ++sum[str[i] - 0]; max = 0; for (i = 1; i < 10; i++) if (sum[i] >= sum[max]) max = i; cout << max + '0' << sum[0]; cases--; } } 第 4 页 (共 8 页) 试 题:高级语言程序设计(A) 班号: 姓名: 三、填空题(共2空,每空5分,共10分) 1. 有一个名为main.cpp的文件,内容如下: #include class C { public: string toString() { return \ } }; class B : public C { virtual string toString() { return \ } }; class A : public B { string toString() { return \ } }; void displayObject(C *p) { cout << p->toString(); } int main() { displayObject(&A()); displayObject(&B()); displayObject(&C()); return 0; } 程序的输出结果是:_____________________________________________ 第 5 页 (共 8 页) 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库2009秋试题在线全文阅读。
相关推荐: