杭州师范学院 2007 年招收攻读硕士研究生入学考试题 考试科目代码 : 427 考试科目名称 : 1!"#$ %&' 计算机基础 2 ()*+,-./0' 3 12345 678934:;<=>?@AB CDE 一 选择题 ( 每小题 2 分, 共 20 分 ) (1) 若变量已正确定义并赋值, 下面符合 C 语言语法的表达式是 A) a:=b+1 B) a=b=c+2; C) int 18.5%3 D) a=a+7=c+b (2) 若有以下程序段, int c1=1,c2=2,c3; c3=1.0/c2*c1; 则执行后,c3 中的值是 A) 0 B) 0.5 C) 1 D) 2 (3) 能正确表示逻辑关系 : a 1 0 或 a 0 的 C 语言表达式是 A) a>=10 or a<=0 B) a>=0 a<=10 C) a>=10 && a<=0 D) a>=10 a<=0 (4) 设有说明语句 :char a= \72 ; 则变量 a A) 包含 1 个字符 B) 包含 4 个字符 C) 包含 3 个字符 D) 说明不合法 (5) 有如下程序 { int y=3,x=3,z=1; printf( %d %d\n,(++x,y++),z+2); 运行该程序的输出结果是 A) 3 4 B) 4 2 C) 4 3 D) 3 3 (6) 有如下程序段 int *p,a=10,b=1; p=&a; a=*p+b; 执行该程序段后,a 的值为 A) 12 B) 11 C) 10 D) 编译出错
(7) 有以下函数 char fun(char *p) { return p; 该函数的返回值是 A) 无确切的值 B) 形参 p 自身的地址值 C) 形参 p 中存放的地址值 D) 一个临时存储单元的地址 (8) 有如下说明 int a[10]={1,2,3,4,5,6,7,8,9,10,*p=a; 则数值为 9 的表达式是 A) *P+9 B) *(P+8) C) *P+=9 D) P+8 (9) 有如下定义 struct person{char name[9]; int age;; struct person class[10]={ Johu, 17, Paul, 19, Mary, 18, Adam, 16; 根据上述定义, 能输出字母 M 的语句是 A) prinft( %c\n,class[3].mane); B) pfintf( %c\n,class[3].name[1]); C) prinft( %c\n,class[2].name[1]); D) printf( %^c\n,class[2].name[0]); (10) 设一个栈的输入序列为 1,2,3,4, 则借助一个栈所得到的输出序列不可能是 A)1,2,3,4 B)4,3,2,1 C)1,3,2,4 D)3,1,2,4 二 读程序, 回答问题 ( 每小题 3 分, 共 15 分 ) (1) 有如下程序, 该程序的输出结果是什么? { int x=1,a=0,b=0; switch(x){ case 0: b++; case 1: a++; case 2: a++;b++; printf( a=%d,b=%d\n,a,b); (2) 有如下程序 { char ch[7]={ 12ab56 ;
int i,s=0; for(i=0;ch[i]>= 0 &&ch[i]<= 9 ;i+=2) s=10*s+ch[i]- 0 ; printf( %d\n,s); 该程序的执行结果是什么? (3) 有如下程序 int func(int a,int b) { return(a+b); { int x=2,y=5,z=8,r; r=func(func(x,y),z); printf( %d\n,r); 该程序的输出的结果是什么? (4) 以下程序段的功能是什么? { int m,i,k; scanf( %d, &m); k = sqrt(m); for(i=2; i<=k;i++) if(m%i==0) break; if(i>=k+1) printf( true ); else printf( false ); (5) 有如下程序 long func(int g) { switch(g){ case 0: return 0; case 1: case 2: return 1; return (func(g-1)+func(g-2)); { long k; k = func(7); printf( k=%d\n,k);
该程序的输出结果是什么? 三 C 语言编程题 ( 共 35 分 ) (1) 函数 pi 的功能是根据以下近似公式求 π 值 : π/4=1-1/3+1/5-1/7+1/9-1/11+1/13-1/15+, 请编写函数 pi(long n) 完成求 π 的功能 (2) 有一个学生管理系统, 每个学生信息包括学号 姓名 班级和总分 写一个 C 程序, 完成以下功能 :(1) 用数组存储这些学生信息 (2) 将输入的学生信息按照总分从大到小排序输出 ; (3) 输入一个学号, 找出并显示出该学生的信息 报考 多媒体网络教育 和 网络与信息安全 方向的请选做一下第 4 至第 11 题! 四 假定用于通信的电文仅由 8 个字母 c1, c2, c3, c4, c5, c6, c7, c8 组成, 各字母在电文中出现的频率分别为 5, 25, 3, 6, 10, 11, 36, 4 试为这 8 个字母设计不等长 Huffman 编码, 并给出该电文的总码数 (10 分 ) 五 试判断以下序列是否为堆 ( 小顶堆或大顶堆 ), 若不是, 请把它调整为堆 ( 要求记录交换次数最少 ), 并画出调整的过程 (15 分 ) (1) 90,85,48,72,36,40,43,56,59,18 (2) 13,75,68,84,39,41,43,67,80,29 六 如下所示的连通图, 请画出 (10 分 ) (1) 以顶点 1 为根的深度优先生成树 ; (2) 如果有关节点, 请找出所有的关节点 七 设散列表为 HT[0..12], 即表的大小为 m = 13 采用双散列法解决冲突 散列函数和再散列函数分别为 : H 0 ( key ) = key % 13; 注 :% 是求余数运算 (= mod ) H i = ( H i-1 + REV ( key + 1) % 11 + 1) %13; i = 1, 2, 3,, m-1 其中, 函数 REV(x) 表示颠倒 10 进制数 x 的各位, 如 REV(37) = 73,REV(7) = 7 等 若插入的关键码序列为 { 2, 8, 31, 20, 19, 18, 53, 27 试画出插入这 8 个关键码后的散列表 (10 分 ) 八 以关键字序列 (26 5 37 1 61 11 59 15 48 19) 为例, 手工执行快速排序 (quick sort) 排序算法, 写出算法前二趟排序结束时的关键字状态 ( 假定每趟排序的 pivot 取最左边的数值 ) (10 分 )
九 无连接通信和面向连接通信的最主要区别是什么?(10 分 ) 十 网桥和路由器有什么不同? (5 分 ) 十一 网络操作系统结构设计模式主要有三种, 即客户 / 服务器模式 对象模式和对称多处理模式, 请简述客户 / 服务器设计模式 (10 分 ) 报考 智能控制 方向的请选做以下以下第 12 至第 16 题! 十二 用代数法化简 : ( 共 15 分, 每小题 5 分 ) (1) Y 1 (2) Y (3) Y 2 3 = ABC + A + B + C = ABCD + ABD + ACD = AC( CD + AB) + BC( B + AD + CE) 十三 设有函数 F(A, B, C, D)=Σ1,3, 4, 5, 13, 15( 共 15 分, 每小题 5 分 ) 1. 用 K 图表示该函数 2. 用 K 图法求出该函数的最简与或式 3. 用反相器和与非门实现最简化后的该函数 十四 用图 1 所示 8 选 1 数据选择器实现此函数, 规定用 A, B, C 作为地址变量, 写出设计过程, 画出电路 ( 共 10 分 ) Y = ACD + ABCD + BC + BCD rs rt ru rv rw rx ry rz {v {t {s Y 图 1 十五 试用 JK 触发器及与非门设计一个七进制同步加法计数器, 要求电路能自启动 ( 共 20 分 ) 十六 分析图 2 所示电路的功能 ( 共 20 分 )
CP FF 0 FF 1 FF 2 1D C1 Q 0 1D C1 Q 1 1D C1 Q 2 Q 0 Q 1 Q 2 2