武汉大学计算机学院
2001-2002学年度第一学期2001级
《高级语言程序设计》期末考试试卷
姓名:学号:专业:
未经主考教师同意,考试试卷、答题纸、草稿纸均不得带离,否则视为违规。
一.选择最合适的答案填空(每题1分,共10分)
( )1.?????? ______不是C语言的基本控制结构。
A.????? 转移
B.????? 循环
C.????? 顺序
D.?????选择
( )2.?????? 表达式65|9和65&9的值为______。
A.????? 74和74
B.????? 73和1
C.????? 74和405
D.????? 73和9
( )3.?????? 设变量int m,n,a,b的值均为1,则执行表达式(m=a>b) &&(n=a>b)后,m,n的值为______。
A.????? 1和1
B.????? 0和1
C.????? 1和0
D.????? 0和0
( )4.?????? 表达式35<<3的值为______。
A.????? 4
B.????? 38
C.????? 105
D.????? 280
( )5.?????? 设有如下宏定义 #define WIDTH 80 #define LENGTH WIDTH+1 则执行赋值语句 v=LENGTH*20;/*v为int型变量*/后,v的值为______。
A.????? 1620
B.????? 1601
C.????? 100
D.?????1600
( )6.?????? 假如指针p已经指向某个整型变量,语句____使指针q与p指向同一变量。
A.?????? q=**p
B.?????? q=*&p
C.????? q=&&p
D.????? q=*p
( )7.???????? 设long a[50],*p;执行p=a; p+=4;后*(p+4)等价于____。
A.?????? a[8]
B.?????? a[4]
C.????? a[2]
D.????? 无法确定
( )8.?????? 执行fp=fopen(”A:Exam1_8.txt”,”wb”);后fp为null,最可能的原因是____。
A.????? 按二进制方式打开文本文件
B.????? 文件A:Exam1_8.txt不存在
C.????? 文件写保护
D.????? 文件A:Exam1_8.txt大小写不一致
( )9.?????? ______不是对象的基本特性。
A.????? 封装
B.????? 多态(重载)
C.????? 非结构
D.????? 继承
( )10.?? 结构化程序设计追求的首要目标是程序的______。
A.?????? 运行速度快
B.?????? 存储空间少
C.?????? 结构优
D.?????? 代码长度最短
二.程序纠错(10分)
下列两个程序段有若干错误,请你错误之处下方标明,如有必要可以简要说明原因(在程序右侧)。
重要提示:任何一种程序语言其数据类型的存储空间将受到计算机制约。
程序段A
/*输入不超过20个正整数,计算其乘积*/
#define num 20
int a[num],count=0, buf=1;
for(int i=0; (i0); i++)
{ scanf(“%u”, buf);
a[++count] = buf;
}
num = count;
long sum=0;
for ( i=0; i
程序段B
/*下列函数递归函数求f(n) = (2n)!*/
long f(int n)
{ int tmp
if (n<2) tmp = 1;
tmp = (2*n)*(2*n-1) * f(n-2);
return (long ) tmp;
}
三.程序阅读与分析(32分)
1.????? (6分)下面的程序求矩阵A(m,m)的右下三角区的所有元素的和,请在程序的空白处填上适当的内容。
#define m 100
main()
{ int a[m][m];
int i, j;
① sum = 0;
for (i=0; i
for (j=0;j
for (i=③; i
for (j=⑤;j
}
2.????? (6分)写出下列程序的运行结果。
#include
main()
{ i