没有合适的资源?快使用搜索试试~ 我知道了~
武汉大学计算机学院C语言历年试题
5星 · 超过95%的资源 需积分: 10 12 下载量 128 浏览量
2013-09-02
12:46:10
上传
评论 1
收藏 229KB DOC 举报
温馨提示
武大计算机学院2001-2006年的考试题目,希望能帮助你们。
资源推荐
资源详情
资源评论
武汉大学计算机学院
2001-2002 学年度第一学期 2001 级
《高级语言程序设计》期末考试试卷
姓名: 学号: 专业:
未经主考教师同意,考试试卷、答题纸、草稿纸均不得带离,否则视为违规。
一. 选择最合适的答案填空(每题 1 分,共 10 分)
( )1.HHHHHH ______ 不是 C 语言的基本控制结构。
A. 转移 B. 循环 C. 顺序 D. 选择
( )2.HHHHHH 表达式 65|9 和 65&9 的值为______ 。
A. 74 和 74 B. 73 和 1 C. 74 和 405 D. 73 和 9
( )3 . HHHHHH 设 变 量 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.HHHHHH 表达式 35<<3 的值为______ 。
A. 4 B. 38 C. 105 D. 280
( )5.HHHHHH 设有如下宏定义HH#define WIDTH 80
#define LENGTH WIDTH+1
则执行赋值语句 v=LENGTH*20;/*v 为 int 型变量*/后,v 的值为______ 。
A. 1620 B. 1601 C. 100 D. 1600
( )6.HHHHHH 假如指针 p 已经指向某个整型变量,语句____ 使指针 q 与 p 指向同一变量。
A. q=**p B. q=*&p C. q=&&p D. q=*p
( )7.HHHHHHHH 设 long a[50],*p;执行 p=a; p+=4;后*(p+4)等价于____ 。
A. a[8] B. a[4] C. a[2]
D. 无法确定
( )8.HHHHHH 执行 fp=fopen(”A:Exam1_8.txt”,”wb”);后 fp 为 null,最可能的原因是____ 。
A. 按二进制方式打开文本文件
B. 文件 A:Exam1_8.txt 不存在
C. 文件写保护 D. 文件 A:Exam1_8.txt 大小写不一致
( )9.HHHHHH ______ 不是对象的基本特性。
A. 封装 B. 多态(重载) C. 非结构 D. 继承
( )10.HH 结构化程序设计追求的首要目标是程序的______ 。
A. 运行速度快 B. 存储空间少 C. 结构优 D. 代码长度最短
二. 程序纠错(10 分)
下列两个程序段有若干错误,请你错误之处下方标明,如有必要可以简要说明原因(在程序
右侧)。
重要提示:任何一种程序语言其数据类型的存储空间将受到计算机制约。
程序段 A
/*输入不超过 20 个正整数,计算其乘积*/
#define num 20
int a[num],count=0, buf=1;
for(int i=0; (i<num)&(buf>0); i++)
{ scanf(“%u”, buf);
a[++count] = buf;
}
num = count;
long sum=0;
for ( i=0; i<count; i++) sum *= a[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<m; i++)
for (j=0;j<m;j++) scanf(“%d”, ② );
for (i= ③ ; i< ④ ; i++)
for (j= ⑤ ;j< ⑥ ;j++) sum += (double) a[i][j];
}
2. (6 分)写出下列程序的运行结果。
#include <stdio.h>
main()
{ int i,b,k=0;
for(i=1;i<=5;i++)
{ b=i%2;
while(b-->=0) k++;
}
printf(“%d,%d”,k,b);
}
3. (6 分)写出下列程序的运行结果。
int fat(int n)
{ static int f=1;
f=f*n*2;
return (f);
}
main()
{ int i,j;
for(i=1;i<=5;++i)
printf(“%d\t”,fat(i));
}
4. (6 分)下列程序段将一个单链表写入一个文件:
p=head;
if (fp = fopen (“Exam5.dat”,”w”) != null)
{ while (p != null)
{
fwrite(p,sizeof(struct node),1,fp);
p = (*p).next;
}
};
请问用下面的程序段,可以将这个链表从该文件中生成到内存中吗?为什么?
if (fp = fopen (“Exam5.dat”,”r”) != null)
{ while !feof(fp)
{ p = malloc(sizeof(struct node))
fread(p,sizeof(struct node),1,fp);
p = (*p).next;
}
};
5. (8 分)阅读以下递归函数,并用非递归方法改写该函数。
#include <stdio.h>
void convert(int n)
{ int i;
if (( i=n/7)!=0) convert(i);
putchar(n%7+’0’);
}
四. 子程序设计(每题 10 分,共 30 分)
本题说明:完成函数设计时,请自行说明所有的形式参数的类型
1. 设计一个函数 arrsum(a, n)计算一维整数数组 a 中前 n 个元素的平均值。
2. 设计函数 prime(n),其中 n 为任意一个整数,当 n 为素数时,函数返回
真,否则返回假。
3. 调用函数 reverse(h)将 h 指向的单链表倒置。实在参数 h 应该指向倒置后链表的头
节点。五. 算法设计(选做一题 18 分)
说明:
仅需任意
选做一题
。多选者,以卷面先列出的为判分依据;
分析思路、重要数据类型的定义、模块的功能、形式参数、函数返回值说明;(9 分)
用伪代码或其它方法描述子程序;(9 分)
不必完整写出函数程序的代码,完整代码将不作为判分依据。
1. 用字符数组模拟实现字符串,给出下列函数:两个字符串的并接、找
一个字符在串中的位置、统计一个字符在串中的数目。
2. 模拟实现大小写(52 个)英文字母的集合运算,给出集合的表示方法,
及运算属于∈、并∪、差─的子程序。
3. 模拟实现复数类型,给出复数的加法、减法和乘法的子程序。
武汉大学计算机学院
2002-2003 学年度第一学期 2002 级
《高级语言程序设计》期末考试试卷
姓名: 学号: 专业:
未经主考教师同意,考试试卷、答题纸、草稿纸均不得带离,否则视为违规。
一. 选择最合适的答案填空(每题 2 分,共 20 分)
( )1.在一个整常量后面加一个字母,如 213L,则表示该常量为HHHHHHHHH型常量。
A. 长整数 B. 常量 C. 地址 D. 八进制
( )2.HHHHHH 定义变量时冠以关键字 ,则表示此标识符是静态外部变量,可
以供其他文件共用。
A. register B. extern C. void D. static
( )3.HHHHHH ______ 不是 C 语言的基本控制结构。
A. 转移 B. 循环 C. 顺序 D. 选择
( )4.HHHHHH 表达式 0x0Kf&0x3345 的值为______ 。
A. 3345 B. 0x3345 C. 0x345 D. 0x3Kf
( )5.HHHHHH 设变量 int x=10,y=20,则执行 x=x+y;y=x-y;x=x-y 后 x 为___
___ 。
A. 30 B. 20 C. 10 D. 0
( )6.HHHHHH 表达式 27<<2 的值为______ 。
A. 54 B. 13 C. 81 D. 108
( )7.HHHHHH 设有如下宏定义HH#define WIDTH f(x,y) (x>y)?x-y:x+y; 则表达式 f(10,20)的
值为______ 。
A. 30 B. 20 C. -10 D. 10
( )8.HHHHHH 与*p.data 指等价的表达式为____ 。
A. *&p B. *&p C. p->data D. p->*data
( )9.HHHHHHHH 设 int a[50],q; long *p;执行 p=(long *)a; p+=4;q=(int *)p;后*(q+2)等价于___
_ 。
A. a[6] B. a[4] C. a[10]
D. 无法确定
( )10.HH 执行 fp=fopen(”A:Exam1_8.txt”,”rb”);后 fp 为 null,最可能的原因是____ 。
A. 源文件不是二进制文件
B. 文件 A:Exam1_8.txt 不存在
C. 文件写保护 D. 文件 A:Exam1_8.txt 长度太大
二. 文字填空(15 分)
1.变量名实际上是一个符号地址,对于已经定义的一个整型变量 X,要获取其
地址则可以用操作 来实现。
2.如果将变量 c 定义为无符号字符类型,定义形式为 ,其数值取值范围
(写成十六进制)为 至 。
3.设有 int a = 2, b = 3; float c = 2.5; 则算术表达式 (a + b) / (int) c + (float) (a +
b) / c 的值是 。
4.对于 c = a < b ? b : a; 如果已知 a = 5; b = 4; 则 c 的值为 。
5.已知 char *name[ ] = {“Basic”, “C”, ”Pascal”, “VB”, “VC++”}; char **p; p =
name +2; 则语句 printf (“%o\n”, *p);的输出为 , 语句 printf (“%s\n”,
*p);的输出为 。
6.在定义函数时,如果在函数首部的最左端冠以关键字 ,则表示此函数是
外部函数,可以供其他文件调用。
7.声明一个结构体类型的一般形式为 。
三. 程序阅读与分析(20 分)
1. 一个 int 型变量的最大允许值为 32767,请写出程序的执行结果。(6 分)
main ( )
{ int a, b;
long c;
a = 32767;
b = a + 1;
c = a + 1;
printf (“%d, %d, %u”, a, b, c);
}
2. (6 分)下面的程序对数组 A[m]进行排序,并计算它们的和。请在程序的空
白处填上适当的内容。
#define m 50
剩余28页未读,继续阅读
资源评论
- 斯亦好2014-07-04对于想了解武大c语言考试题的同学来说很有用
咖喱鸡蛋
- 粉丝: 2
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- js基础但是这个烂怂东西要求标题不能少于10个字才能上传然后我其实还没有写完之后再修订吧.md
- electron-tabs-master
- Unity3D 布朗运动算法插件 Brownian Motion
- 鼎微R16中控升级包R16-4.5.10-20170221及强制升级方法
- 鼎微R16中控升级包公版UI 2015及强制升级方法,救砖包
- 基于CSS与JavaScript的积分系统设计源码
- 生物化学作业_1_生物化学作业资料.pdf
- 基于libgdx引擎的Java开发连连看游戏设计源码
- 基于MobileNetV3的SSD目标检测算法PyTorch实现设计源码
- 基于Java JDK的全面框架设计源码学习项目
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功