2018贵州大学831真题_第1页
2018贵州大学831真题_第2页
2018贵州大学831真题_第3页
2018贵州大学831真题_第4页
2018贵州大学831真题_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2018 年贵州大学 831 真题及答案一、选择题大多都是前几年真题选择题的原题(群文件有前几年真题及答案) 下面列举今年易错和前几年真题未出现的选择题1、一个 C 语言程序是由()A. 主程序组成B.子程序组成C.过程组成D.函数组答案是由函数组成2、数据结构在计算机内存中的表示是指()A.数据结构B.数据的逻辑结构C.数据的存储结构D.数据元素之间的关答案是数据的存储结构3、栈通常采用的两种存储结构是()A.线性存储结构和链表存储结构B.散列方式和索引方式C.链表存储结构和数组D.性存储结构和非线性存储结构答案是线性存储结构和链表存储结构4、在有 N 个叶子节点的哈夫曼树中,其节点总数为(

2、)A.不确定B.2NC.2N+1D.2N-1答案是 2N - 15、以下定义正确的是()A.inta=1,2,3,4;B.inta2=1,2,3,4;C.inta2=1,2,3,4;D.inta=1,2,3,4;答案是 int a2=1,2,3,4;5、有 6 个节点的无向图,至少需要()条边才能构成一个连通图A.4B.5C.6D.7答案是 5二、看程序输出运行的结果1、#include int main()int a10 = 9,-3,-7,7,0,8,-1,5,-2,-6;int i;int sum = 0;for(i = 0; i 0)sum = sum + ai;printf(sum=

3、%dn, sum); return 0;答案:sum=292、#include int main()int a2;int s, i, j;for(i = 0; i 2; i+) ai = 2;for(i = 0; i 10; i+)s = 0;for(j = 0; j 2;j+)s = s + i +aj;printf(%dn, s); return 0;答案:223、#include int main()int a12 = 1,2,3,4,5,6,7,8,9,10,11,12;int *p;for(p = &a0; p a + 12; p+)if(*p % 4 = 0)printf(%dn,

4、 *p);return 0;答案:48124、#include int main()int a7 = 2,4,6,8,10,12,14;int *p;p = a + 5; int i;for(i = 3; i; i-)switch(i)case 1:case 2:printf(%d, *p+);break; case 3:printf(%d, *(-p);return 0;答案:1010125、#include int main()int _try(int n); int ans = printf(%dn, return0;int _try(intn)if(n 0)return n * _tr

5、y(n - 2); else return 1;答案:8三、简答题1、给定一个树如图所示、求前序遍历序列、中序遍历序列、后序遍历序列AABCDEFG答案:前序遍历:ABDGCEF 中序遍历:DGBAECF 后序遍历:GDBEFCA2、入栈顺序 ABCDE 已知,C 第一个出栈,D 第二个出栈,问总共有几种出栈的可能答案:3 种CDEBA CDBAECDBEA3、有 50 个叶子节点的二叉树,问二叉树的节点总数至少多少个答案:994、有向图和无向图的常用存储结构答案(5、单链表和双链表是否能从当前节点访问到链表中任一节点 答案:单链表不能、双向链表能四、编程题1、已知 5 名职工信息、编号、姓名

6、、工资、用结构体定义、编程求出工资最少的职工姓名答案:#include struct node char number30; char name30; float wage;people5;voidFind()int i;int min_id = 0;float min_wage = people0.wage; for(i = 1; i 5; i+)if(peoplei.wage min_wage)min_wage = peoplei.wage; min_id = i;printf(%sn, peoplemin_);intmain()inti;for(i = 0; i 5; i+

7、)scanf(%s %s %f, peoplei.number, , &peoplei.wage);Find(); return 0;2、一个不超过 5 位的正整数,编程实现求数有多少位以及逆序输出这个数答案:#include int main()int n; scanf(%d, int len = 0; while(n 0)int bit_num = n % 10; n = n / 10; printf(%d,bit_num); len+;printf(n);printf(%dn, len); return 0;3w=2,3,4,7,8,9WPL,未要求编程实现答案:

8、哈夫曼树构造如图则 WPL = 2*4 + 3*4 + 4*3 + 7*2 + 8*2 + 9*2 = 804、编程实现给定一个有向无环图,求图的最长路径,并估计时间复杂度 答案:#include int G105105 = 0;int n;int ans = 0; int sum;void dfs(int x)printf(xxxn); int i;for(i = 1; i 0)sum += Gxi; dfs(i);sum -= Gxi;if(sum ans) ans = sum;int main()scanf(%d, &n); int i, j;for(i = 1; i = n; i+)

9、for(j = 1; j = n;scanf(%d, &Gij); for(i = 1; i = n; i+)for(j = 1; j = n; j+) printf(%d , Gij);printf(n);for(i = 1; i = n; i+)sum = 0; dfs(i);printf(%dn, ans); return 0;/*测试数据40 2 040 0 032 0 000 0 00*/时间复杂度为 O(n3)5、编程实现双向冒泡排序,奇数趟从前往后比较相邻的两个数,将大的数放到后面,偶数趟从后往前比较相邻两个数,将小的数放到前面。答案:#include int arr105; i

10、nt main()int n; scanf(%d, int i,j;for(i = 1; i = n; i+) scanf(%d, &arri);int head = 1, tail = n; for(i = 1; i = n; i+)if(i % 2 = 1)head = head + 1; if(head = tail) break;for(j = head; j arrj)int temp = arrj; arrj = arrj - 1; arrj - 1 = temp;elsetail = tail - 1;if(head = tail) break; for(j = tail; j = 1; j-)if(arrj + 1 arrj)int temp =

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论