目录
一、程序阅读与理解。(45分)
二、简答题(60分)
三、算法设计(45分)
1、
#include <stdio.h> int main() { int count = 5; while (count <= 7) { count++; printf("%d\n", count); } return 0; }
2、
#include <stdio.h> int main() { int *p, *q, k = 10, j = 6; p = &k; q = &j; if (*p < *q) printf("%d\n", *p); else printf("%d\n", *q); return 0; }
3、
#include <stdio.h> int main() { int i; int F[5] = {1, 1}; for (i = 2; i < 5; i++) F[i] = F[i - 2] + F[i - 1]; for (i = 0; i < 5; i++) printf("%d", F[i]); return 0; }
4、题目报错
#include <stdio.h> void function(int *x, int *y) { printf("%d %d", *x, *y); *x = 8; *y = 9; } int main() { int x = 5, y = 6; function(*y, *x); printf("%d %d", *x, *y); return 0; }
5、
#include <stdio.h> int main() { char string[20] = "Welcome to China!", *p = string; printf("%s\n", p + 11); return 0; }
6、没反应
#include <stdio.h> int main() { FILE *fp; int i, k = 0; fp = fopen("test.dat", "w"); for (i = 4; i <= 8; i++) fprintf(fp, "%d", i); fclose(fp); fp = fopen("test.dat", "r"); fscanf(fp, "%d", k); printf("%d\n", k); fclose(fp); return 0; }
7、
#include <stdio.h> void function(int a[]) { int i = 0; while (a[i] <= 10) { printf("%d", a[i]); i++; } } int main() { int D[] = {3, 6, 9, 10, 4, 12, 8}; function(D); return 0; }
8、
#include <stdio.h> int main() { int k; for (k = 1; k <= 10; k++) { if (k % 3 == 0) continue; printf("%d", k); } return 0; }
9、
#include <stdio.h> int main() { int *p1, *p2, *p, x, y; scanf("%d %d", &x, &y); p1 = &x; p2 = &y; if (x, y) { p = p1; p1 = p2; p2 = p; } printf("x=%d,y=%d\n", x, y); printf("max=%d,min=%d\n", *p1, *p2); return 0; }
1、已知用一维数组存放的一棵完全二叉树:ABCDEFGHIJKL,请画出该二叉树的结构,并写出该树的先序,中序和后序遍历序列。(10分)
2、已知有一组关键字为{16,3,7,11,9}的初始记录,请详细给出构造一棵AVL树的详细过程。(16分)
3、已知有一哈希表长度为9,哈希函数为H(K)=K%9(取模运算),给定的关键字集合{7,8,30,11,18,9,14,26},请计算集合中关键字的哈希地址,并用拉链法构建哈希表。(12分)
4、霍夫曼编码是一种变长编码方法,请为概率分别为{0.09,0.24,0.26,0.11,0.30}的字符集合{m,n,h,o,p}构造一棵霍夫曼树,并给出每个符号的编码。(13分)
5、请详细给出{5,10,20,2,8,7,11,9,14}的冒泡排序过程(升序)。(9分)
1、请用c语言写出直接选择排序算法的代码,该算法的函数定义如下:(15分)
void selectSort(int R[],int n){ }
2、现有单链表结点类型定义如下:
Typedef struct LNode { ElemType data; struct LNode *next; } HL;
请设计一个算法统计单链表HL中结点值等于某个给定值x的结点数。(15分)
3、链式存储的二叉树结点定义如下:
Typedef struct Node { ElemType data; struct Node *lchild; struct Node *rchild; } EBTNode;
请写出计算该二叉树高度的算法。(15分)