已知指针p的指向如下图所示.
C语言复习题02

二级C语言笔试模拟试卷(第2套)一、选择题(11) 若已定义:int a[ ]={0,1,2,3,4,5,6,7,8,9}, *p=a, i;其中0≤i≤9, 则对a数组元素不正确的引用上A} a[p-a] B) *(&a[i]) C) p[i] D) a[10](12) 下列程序执行后的输出结果是A) 6 B) 7 C) 8 D) 9void func(int *a,int b[]){ b[0]=*a+6; }main(){ int a,b[5];a=0; b[0]=3;func(&a,b); printf("%d \n” ,b[0]);}(13) 下列程序的运行结果是A) a=%2,b=%5 B) a=2,b=5C) a=d, b=d D) a=%d,b=%d#include <stdio.h>main(){ int a=2,c=5;printf("a=%d,b=%d\n",a,c); }(14) 设有数组定义: char array [ ]="China"; 则数组array所占的空间为A) 4个字节B) 5个字节C) 6个字节D) 7个字节(15) 下列程序的输出结果是A) 4 B) 2 C) 1 D) 0main(){ int i, j, m=0, n=0;for(i=p; i<2; i++)for(j=0; j<2; j++)if(j>=i) m=1; n++;printf("%d \n",n);}(16) 下列程序的输出结果是A) 5 B) 6 C) 7 D) 8struct abc{ int a, b, c; };main(){ struct abc s[2]={{1,2,3},{4,5,6}}; int t;t=s[0].a+s[1].b;printf("%d \n",t);}(17) 设int b=2;表达式(b>>2)/(b>>1)的值是A) 0 B) 2 C) 4 D) 8(18) 下列程序执行后的输出结果是A) -32767 B) FFFE C) -1 D) -32768main(){ char x=0xFFFF; printf("%d \n",x--); }(19) 若有定义: float w; int a, b; 则合法的switch语句是A)switch(w) B) switch(a){ {case 1.0: printf(“*\n”); case 1 printf(“*\n”); case 2.0: printf(“**\n”);} case 2 printf(“**\n”);} C)switch(b) D) switch(a+b){ {case 1: printf(“*\n”); case 1 printf(“*\n”); default: printf(“\n”); case 2 printf(“**\n”); case 1 + 2: printf(“**\n”) default: printf(“\n”);} }(20) 以下程序段的执行结果是A) a=12 y=12 B) a=12 y=12a=14 y=16 a=16 y=28a=16 y=20a=18 y=24C) a=12 y=12 D) a=12 y=12 a=14 y=26 a =14 y=44 int a, y;a=10; y=0;do{ a+=2; y+=a;printf("a=%d y=%d\n",a,y);if(y>20) break;} while(a=14);.(21) 若有以下调用语句,则不正确的fun函数的首部是A)void fun(int m, int x[]) B)void fun(int s, int h[41])C)void fun(int p, int *s) D) void fun(int n, int a)main(){ …int a[50],n;…fun(n, &a[9]);…}(23) 已知指针p的指向如下图所示,则执行语句*--p;后*p的值是A) 30 B) 20 C) 19 D) 29(25) 假定下列程序的可执行文件名为prg.exe,则在该程序所在的子目录下输入命令行: prg hello good<回车>后,程序的输出结果是A) hello good B) hg C) hel D) hellogoodmain()(int argc, char *argv[]){ int i;if(argc<0) return;for(i=1;i<argc;i++) printf("%c", *argv[i]);}(26) 下列程序执行后的输出结果是A) 6 B) 8 C) 10 D) 12#define MA(x) x*(x-1)main(){ int a=1,b=2; printf("%d \n",MA(1+a+b));}(27) 有以下结构体说明和变量的定义,且如下图所示指针p指向变量a,指针q指向变量b。
南京大学《数据结构》试卷(含答案)

(1+7+1+1+2+1+4+1+1) / 9 = 19/9
得分
5、 程序设计题。(每小题 15 分,本题满分 30 分)
1. 设计一个算法,根据一棵二叉树的前序序列和中序序列,构造出这棵二叉
树。 二叉树的结点都用字符表示。前序序列和中序序列都是字符串。二叉树的结点定
义如下:
struct binTreeNode {char data; binTreeNode *leftChild, *rightChild; }
考试科目名称
数据结构
得分
1、填空题。(每小题 2 分,本题满分 20 分)
(A1 卷)
(1) C++语言中,数组是按行优先顺序存储的,假设定义了一个二维数组 A[20][30],每个元
素占两个字节,其起始地址为 2140,则二维பைடு நூலகம்组 A 的最后一个数据元素的地址为
数据结构各章复习题

11.在下面的程序段中,对x 的赋值语句的频度为(c )FOR i:=1 TO n DOFOR j:=1 TO n DOx:=x+1;A. O(2n) B.O(n) C.O(n2) D.O(log2n)12.程序段 FOR i:=n-1 DOWNTO 1 DOFOR j:=1 TO i DOIF A[j]>A[j+1]THEN A[j]与A[j+1]对换;其中 n 为正整数,则最后一行的语句频度在最坏情况下是(d )A. O(n) B. O(nlogn) C. O(n3) D. O(n2)3. 数据的逻辑结构是指数据的各数据项之间的逻辑关系;( f)5.健壮的算法不会因非法的输入数据而出现莫名其妙的状态。
( t)8.数据的物理结构是指数据在计算机内的实际存储形式。
(t )13. 数据的逻辑结构说明数据元素之间的顺序关系,它依赖于计算机的储存结构. (f ) 3.数据的逻辑结构是指:数据的组织形式,即数据元素之间逻辑关系的总体。
而逻辑关系是指数据元素之间的关联方式或称“邻接关系”4.一个数据结构在计算机中称为存储结构:表示(又称映像)9.已知如下程序段FOR i:= n DOWNTO 1 DO {语句1}BEGINx:=x+1;{语句2}FOR j:=n DOWNTO i DO {语句3}y:=y+1; {语句4}END;语句 1 执行的频度为(1);语句2 执行的频度为(2);语句3 执行的频度为(3);语句4 执行的频度为(4)。
9.(1)n+1 (2)n (3)n(n+3)/2 (4)n(n+1)/2。
10.在下面的程序段中,对x的赋值语句的频度为______(表示为n 的函数)FOR i:=1 TO n DOFOR j:=1 TO i DOFOR k:=1 TO j DOx:=x+delta;10.1+(1+2++(1+2+3)+…+(1+2+…+n)=n(n+1)(n+2)/6 O(n3)3. 数据类型和抽象数据类型是如何定义的。
数据结构(本)形考作业答案

形考作业一题目1把数据存储到计算机中,并具体体现数据元素间的逻辑结构称为(). 选择一项:A。
逻辑结构B. 给相关变量分配存储单元C。
算法的具体实现D。
物理结构题目2下列说法中,不正确的是().选择一项:A。
数据可有若干个数据元素构成B. 数据元素是数据的基本单位C。
数据项是数据中不可分割的最小可标识单位D. 数据项可由若干个数据元素构成题目3一个存储结点存储一个( ).选择一项:A. 数据结构B。
数据类型C。
数据项D。
数据元素题目4数据结构中,与所使用的计算机无关的是数据的()。
选择一项:A。
物理结构B。
逻辑结构C。
物理和存储结构D. 存储结构题目5下列的叙述中,不属于算法特性的是()。
选择一项:A. 有穷性B。
可行性C. 可读性D。
输入性题目6正确获得2.00分中的2.00分A。
研究算法中的输入和输出的关系B。
分析算法的易懂性和文档性C. 分析算法的效率以求改进D. 找出数据结构的合理性题目7算法指的是()。
选择一项:A。
排序方法B。
解决问题的计算方法C。
计算机程序D。
解决问题的有限运算序列题目8算法的时间复杂度与()有关。
选择一项:A. 所使用的计算机B。
数据结构C。
算法本身D. 计算机的操作系统题目9设有一个长度为n的顺序表,要在第i个元素之前(也就是插入元素作为新表的第i个元素),插入一个元素,则移动元素个数为()。
选择一项:A. n—i+1B. n—i-1C. n—iD。
i题目10设有一个长度为n的顺序表,要删除第i个元素移动元素的个数为( )。
选择一项:A。
n-iB。
n-i—1C。
n—i+1D。
i题目11在一个单链表中,p、q分别指向表中两个相邻的结点,且q所指结点是p所指结点的直接后继,现要删除q所指结点,可用语句()。
选择一项:A。
p—>next=q—>nextB. p=q->nextC. q—〉next=NULLD。
p—>next=q题目12在一个单链表中p所指结点之后插入一个s所指的结点时,可执行()。
高等教育自学考试--数据结构试题

一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.在数据结构中,数据的逻辑结构可以分成()A.内部结构和外部结构 B.线性结构和非线性结构C.紧凑结构和非紧揍结构 D.动态结构和静态结构2.在以单链表为存储结构的线性表中,数据元素之间的逻辑关系用()A.数据元素的相邻地址表示 B.数据元素在表中的序号表示C.指向后继元素的指针表示 D.数据元素的值表示3.设p指向单链表中的一个结点,s指向待插入的结点,则下述程序段的功能是()s -> next = p -> next; p -> next = s;t = p -> data; p -> data = s -> data; s ->data = t;A.结点*p与结点*s的数据域互换B.在p所指结点的元素之前插入元素C.在p所指结点的元素之后插入元素D.在结点*p之前插入结点*s4.栈和队列都是()A.限制存取位置的线性结构 B.顺序存储的线性结构C.链式存储的线性结构 D.限制存取位置的非线性结构5.若数组s[0..n-1]为两个栈s1和s2的共用存储空间,且仅当s[0..n-1]全满时,各栈才不能进行进栈操作,则为这两个栈分配空间的最佳方案是:s1和s2的栈顶指针的初值分别为()A.1和n+1 B.1和n/2C.-1和n D.-1和n+16.执行下列程序段后,串X的值为()S=??abcdefgh??; T=??xyzw??;substr (X,S,2,strlen(T));substr (Y,S, stelen(T),2);strcat (X,Y);A.??cdefgh?? B.??cdxyzw??C.??cdefxy?? D.??cdefef??7.多维数组之所以有行优先顺序和列优先顺序两种存储方式是因为()A.数组的元素处在行和列两个关系中 B.数组的元素必须从左到右顺序排列C.数组的元素之间存在次序关系 D.数组是多维结构,内存是一维结构8.从广义表LS=((p, q), r, s)中分解出原子q的运算是()A.tail (head (LS)) B.head (tail (head (LS)))C.head (tail (LS)) D.tail (tail (head (LS)))9.在具有n个叶子结点的严格二叉树中,结点总数为()A.2n+1 B.2nC.2n-1 D.2n-210.若<V i, v j>是有向图的一条边,则称()A.v i邻接于v j B.v j邻接于v iC.v i和v j相互邻接 D.v i与v j不相邻接11.在一个带权连通图G中,权值最小的边一定包含在G的()A.最小生成树中 B.深度优先生成树中C.广度优先生成树中 D.深度优先生成森林中12.当在二叉排序树中插入一个新结点时,若树中不存在与待插入结点的关键字相同的结点,且新结点的关键字小于根结点的关键字,则新结点将成为()A.左子树的叶子结点 B.左子树的分支结点C.右子树的叶子结点 D.右子树的分支结点13.希尔排序的增量序列必须是()A.递增的 B.随机的C.递减的 D.非递减的14.如果在排序过程中,每次均将一个待排序的记录按关键字大小加入到前面已经有序的子表中的适当位置,则该排序方法称为()A.插入排序 B.归并排序C.冒泡排序 D.堆排序15.设置溢出区的文件是()A.索引非顺序文件 B.ISAM文件C.VSAM文件 D.顺序文件二、填空题(本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。
最新湖北师范学院专升本《c语言程序设计》试卷

湖北师范学院2010年“专升本”招生考试《C语言程序设计》试题一、选择题(本题共20小题,每题2分,共40分)1.以下不合法的用户标识符是()。
A)S2_KEY B)Int C) 4s D)_char 2.设有 int x=11; 则表达式 (++x)%3 的值是()。
A)0 B)1 C)2 D)33.C语言源程序名的后缀是()。
A).exe B).cp C).obj D).c4.若在定义语句:int a,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是()。
A)scanf("%d",a,b,c); B)scanf("%d%d%d",a,b,c);C)scanf("%d",p); D)scanf("%d",&p);5.C语言中运算对象必须是整型的运算符是()。
A) %= B)/C) =D) 〈=6.若有定义语句:int a[3][6]; ,按在内存中的存放顺序,a数组的第10个元素是()。
A)a[0][4] B)a[0][3] C)a[1][4] D)a[1][3]7.若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是A)#define N 10 Int a[N]B)#define n 5 Int a[2*n]C)int a[5+5]D)int n=10,a[n] 8.语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是()。
(说明:'\b'是退格符)A)re'hi'you B)abre'hi'y\bou C)a\bre\'hi\'y\bou D)a\bre\'hi\'y\\\bou 9.下列程序执行后的输出结果是()。
C语言指针章节选择题(新)

1. 若已定义: int a[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,则对a数组元素不正确的引用是A) a[p-a] B) *(&a[i])C) p[i] D) a[10]D2. 已知指针p的指向如下图所示,则执行语句*--p;后*p的值是a[0] a[1] a[2] a[3] a[4]┌──┬──┬──┬──┬──┐│10 | 20 | 30 │40 | 50 |└──┴──┴──┴──┴──┘p↑A) 30 B) 20C) 19 D) 29B3. 下面程序运行时,如果从键盘上输入3,5<回车>,程序输出的结果是________。
main( ){ int a,b,*pa,*pb;pa=&a; pb=&b;scanf("%d,%d",pa,pb);*pa=a+b;*pb=a+b;printf("a=%d,b=%d\n",a,b);}A) a=13,b=13 B) a=8,b=8C) a=8,b=13 D) 出错C4. 下面程序段的输出结果是________。
main( ){ char string1[20],string2[20]={"ABCDEF"};strcpy(string1,string2);printf("%s\n",string1+3);}A) EF B) DEFC) CDEF D) ABCDEFB5. 下列程序执行后的输出结果是________。
main(){ int a[3][3],i,*pmul;pmul=&a[0][0];for(i=0;i<9;i++) pmul[i]=i+1;printf("%d\n",a[1][2]);}A) 3 B) 6C) 9 D) 随机数B6. 有如下程序段int *p,a=10,b=1;p=&a; a=*p+b;执行该程序段后,a的值为________。
《数据结构》平时测试试题

临沂大学2015-2016学年度第一学期《数据结构》平时测试试题一一、判断题(共14题,每题1分,共14分)1.线性表的长度是线性表所占用的存储空间的大小。
( )2.顺序存储结构只能用来存放线性结构;链式存储结构只能用来存放非线性结构。
( )3.线性表采用链表方式和顺序表方式存储,执行插入和删除运算的时间复杂度都是O(N),因而两种存储方式的插入、删除运算所花费的时间相同。
( )4.双循环链表中,任一个结点的后继指针均指向其逻辑后继。
( )5.在链队列中,即便不设置尾指针也能进行入队列操作。
( )6.在顺序表中取出第i个元素所花费的时间与i成正比。
( )7.已知指针P指向链表L中某结点,执行语句P=P->next不会删除该链表中结点。
( )8.在带头结点的单循环链表中,任一结点的后继指针均不空。
( )9.完全二叉树中,若一个结点没有左孩子,则它必是树叶。
( )10.二叉树的先序遍历序列中,任意一个结点均处在其孩子结点的前面。
( )11.设与一棵树T所对应的二叉树为BT,则与T中的叶子结点所对应的BT中的结点也一定是叶子结点。
( )12.当一棵具有n个叶子结点的二叉树的WPL值为最小时,称其树为Huffman树,且其二叉树的形状必是唯一的。
( )13.二叉树的前序遍历并不能唯一确定这棵树,是因为我们不知道该树的根结点是哪一个。
( )14.对于有n个结点的二叉树,其高度为log2n。
( )二、选择题(共40题,每题1分,共40分)1. 通常从正确性、易读性、健壮性、高效性等四个方面评价算法(包括程序)的质量。
以下解释错误的是( )A、正确性算法应能正确地实现预定的功能(即处理要求)B、易读性算法应易于阅读和理解以便于调试修改和扩充C、健壮性当环境发生变化时,算法能适当地做出反应或进行处理,不会产生不需要的运行结果D、高效性即达到所需要的时间性能2. 数据的存储结构是指()A、数据所占的存储空间量B、数据的逻辑结构在计算机中的表示C、数据在计算机中的顺序存储方式D、存储在外存中的数据3.下列属于线性数据结构的是( )A.队列B.树C.图D.不确定4.线性表是具有n个( )的有限序列A.表元素B.字符C.数据元素D.数据项5. 对于顺序表的优缺点,以下说法错误的是()A、无需为表示结点间的逻辑关系而增加额外的存储空间B、可以方便地随机存取表中的任一结点C、插入和删除运算较方便D、容易造成一部分空间长期闲置而得不到充分利用6. 对顺序表上的插入、删除算法的时间复杂性分析来说,通常以()为标准操作A、结点移动B、条件判断C、算术表达式D、赋值语句7.若线性表最常用的操作是存取第i个元素及其前驱的值,则采用( )存储方式节省时间A.单链表B.双向链表C.单循环链表D.顺序表8. 单链表的每个结点中包括一个指针link,它指向该结点的后继结点。
数据结构 线性表 习题

第二章线性表一、选择题1.线性表是()A.一个有限序列,可以为空B.一个有限序列,不可以为空C.一个无限序列,可以为空D.一个无限序列,不可以为空2.一维数组与线性表的特征是()。
A.前者长度固定,后者长度可变B.两者长度均固定C.后者长度固定,前者长度可变D.两者长度均可变3.用单链表方式存储的线性表,存储每个结点需要两个域,一个数据域,另一个是( ).A.当前结点所在地址域B.指针域C.空指针域D.空闲域4.用链表表示线性表的优点是()。
A.便于随机存取B.便于进行插入和删除操作C.占用的存储空间较顺序表少D.元素的物理顺序与逻辑顺序相同5.在具有 n 个结点的单链表中,实现___的操作,其算法的时间复杂度都是O(n)。
A.遍历链表和求链表的第i个结点D.删除地址为P的结点的后继结点B.在地址为P的结点之后插入一个结点 C.删除开始结点6.下面关于线性表的叙述中,错误的是()。
A.线性表采用顺序存储必须占用一片连续的存储单元B.线性表采用顺序存储便于进行插入和删除操作C.线性表采用链式存储不必占用一片连续的存储单元D.线性表采用链式存储便于进行插入和删除操作7.已知单链表的每个结点包括一个指针域next,它指向该结点的后继结点。
现要将指针 q 指向的新结点插入到指针 p 指向的结点之后,下面的操作序列中正确的是()。
A . q = p->next; p->next = q->next ;B . p->next = q->next; q = p->next ;C . q->next = p->next; p->next = q ;D . p->next = q; q->next = p->next ;8.设 a l,a2, a3为三个结点; p , 10 , 20 代表地址,则如下的链表存储结构称为()。
A.链表B.单链表C.双向循环链表D.双向链表9.单链表的存储密度()。
C语言指针选择题

A) *(p+2)
B) *(s+2)
C) p="ABCD"
D) s="ABC"
D 33. 设有定义语句"double d[3][5]={{1},{2},{3}},(*p)[5]=d;", 则下列表达式中值不为 0.0 的表达式是
A) *&d[1][2]
B) p[1][2]
C) *(p+1*5+2)
D) *(*p+1)+2)
C) char *s; s="ABCDE";
D) char *s; scanf("%s",&s);
C
20. 若有以下定义语句,则不能表示 a 数组元素的表达式是
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
A) *p
B) a[10]
C) *a
D) a[p-a]
B
21. 若有以下定义语句,则值为 3 的表达式是
D) *P=*P*(*q)
B 38. 设有变量定义语句"int a[2][3];",能正确表示数组 a 中元素 地址的表达式是
A) a[1]+3
B) *(a+2)
C) *(a[1]+2)
D) *(a+1)
D
6
39. 设有变量定义语句"int b[5];", 能正确引用数组 b 中元素的 表达式是
A) *&b[5]
B) A B C D
C) B
D) BCD
C
CD
D
D
D
12. 下列程序的输出结果是
数据结构期末复习题库(215道)

数据结构期末复习1、算法分析的目的是分析算法的效率以求改进,算法分析的两个主要方面是()——[单选题]A 空间复杂性和时间复杂性B 正确性和简明性C 可读性和文档性D 数据复杂性和程序复杂性正确答案:A2、两类存储结构为()——[单选题]A 线性结构和非线性结构B 逻辑结构和非逻辑结构C 顺序结构和链式结构D 逻辑结构和物理结构正确答案:C3、计算机算法指的是解决问题的有限运算序列,它必具备输入、输出和()等五个特性。
——[单选题]A 可行性、可移植性和可扩充性B 可行性、确定性和有穷性C 确定性、有穷性和稳定性D 易读性、稳定性和安全性正确答案:B4、在 C 语言中,有一种适用于不同数据类型构成的数据的结构称为()——[单选题]A 结构体B 数组C 变量D 常量正确答案:A5、在定义数组 int a[10]后,需要访问数组中第 3 个元素,正确的是()——[单选题]A a[0]B a[1]C a[2]D a[3]6、分析以下程序段,其时间复杂度为 T(n)=() for( i =0; i<n;i++)For(j=0;j<i;j++) A[i][j] = 0;——[单选题]A O(n)B O(n^2)C O(n^3)D O(1)正确答案:B7、数据元素之间存在一对多的关系,这种数据间的结构属于()——[单选题]A 集合B 线性结构C 树型结构D 图型结构正确答案:C8、有一个结构体及其变量定义如下: struct date{Int year; int month; intday;}birthday;此时要调用变量中的 year,正确的书写格式是()——[单选题]A yearB birthday.yearC date.yearD struct.year正确答案:B9、在数据结构中,从逻辑上可以把数据结构分成()——[单选题]A 动态结构和静态结构B 紧凑结构和非紧凑结构C 线性结构和非线性结构D 内部结构和外部结构正确答案:C10、分析下面算法(程序段),该算法的时间复杂度 T(n)=() for (i=0;i<n;i++)For (j=0;j<n; j++) A[i][j]=0;——[单选题]A O(n)B O(n^2)C O(n^3)D O(1)11、当定义一个结构体变量时,系统为它分配的内存空间是()——[单选题]A 结构体中一个成员所需的内存容量B 结构体中第一个成员所需的内存容量C 结构体中占内存容量最大者所需的容量D 结构体中各成员所需内存容量之和正确答案:D12、分析以下程序段,其时间复杂度为 T(n)=() x=0;For(i=1;i<n;i++);for(j=1;j<n;j++);For(k=1;k<n;k++); x++;——[单选题]A O(n)B O(n^2)C O(n^3)D O(1)正确答案:A13、有结构体定义及结构体类型数组如下: struct worklist{Int no;Char name[20]; char sex;}person[5];需要给结构体数组中第 2 个变量的 no 成员赋值为 5,正确的写法是()——[单选题]A no=5;B person.no=5;C person[2].no=5;D person[1].no=5;正确答案:D14、分析以下程序段,其时间复杂度为 T(n)=() i=1;While(i<=n) i=3*i;——[单选题]A O(n)B O(n^2)C O(n^3)D O(1)正确答案:D15、线性表是具有 n 个()的有限序列。
二级C语言-2-1

二级C语言-2-1(总分:84.00,做题时间:90分钟)一、{{B}}选择题{{/B}}(总题数:35,分数:52.00)1.数据库系统的核心是______。
∙ A. 数据模型∙ B. 数据库管理系统∙ C. 数据库∙ D. 数据库管理员(分数:2.00)A.B. √C.D.解析:[解析] 数据库管理系统是负责数据库中的数据组织和数据操纵数据维护、控制及保护的数据服务。
它是一种系统软件,是数据库系统的核心。
2.有以下程序#include<stdio.h>#include<string.h>typedef struct{char name[9];char sex;float score[2];)STU;STU f(STU a){ STU b={"Zhao",'in',85.0,90.0);int i;strcpy(,);a.sex=b.sex;for(i=0;i<2;i++) a.score[i]=b.score[i];return a;}main(){ STU c={"Qian",'f',95.0,92.0},d;d=f(c);printf("%s,%c,%2.0f,%2.0f",,d.sex,d.score[0],d.score[1]);}程序的运行结果是{{U}} {{/U}}。
∙ A.qian,f,95,92∙ B.qian,m,85,90∙ C.ZhaO,m,85,90∙ D.Zhao,f,95,92(分数:1.00)A.B.C. √D.解析:[解析] f()函数的功能是对形参a的各个成员用结构体变量b的各个成员进行赋值后,返回变量a。
3.已知小写字母a的ASCII码为97,大写字母A的ASCII码为65,以下程序的结果是 ______。
main(){unsigned int a=32,b=66;printf("%c/n",a|B) ;}∙ A. 66∙ B. 98∙ C. b∙ D. B(分数:2.00)A.B.C. √D.解析:[解析] 位运算符“|”的作用是按位或,即两个二进制数的相应位中只要有一个为1,该位的结果值为1。
南京大学数据结构试卷含答案

择:
( A)
A. 利用最小堆存储边
B. 利用栈存储结点
C. 利用二维数组存储结点
D. 利用并查集存储边
(8) 已知一算术表达式的后缀形式为 ABC*+DE/-,其前缀形式为:( D )
A. -A+B*C/DE
B. -A+B*CD/E
C. -+*ABC/DE
D. -+A*BC/DE
(9) n 个关键码排序,如果选用直接插入排序方法,则元素的移动次数在最坏情况下可以达
如果使用别的办法,参考其效率,酌情给分。只要效率过得去,也可以得满分。 但是纯粹枚举则得分不高。
2. 设计非递归算法实现图的深度优先遍历。(图用邻接表表示,已经定义了一个顺序栈 stack[top],top 为栈顶指针,使用 visit(node)来表示对顶点 node 的访问。) 图的邻接表结构定义如下: struct Edge { int dest; Edge *link; //下一条边链指针 } struct Vertex { int data; Edge *adj; //边链表的头指针 } class Graph { private: Vertex *Nodetable; //顶点表 int cnt }
得分
2、选择题。(每小题 2 分,本题满分 20 分)
(1) 如果能够在只知道指针 p 指向链表中任一结点,不知道头指针的情况下,将结点*p 从链
表中删除,则这个链表结构应该是: ( B,C )(多选题)
A. 单链表 B. 循环链表 C. 双向链表 D. 带头结点的单链表
(2) 以下哪种矩阵压缩存储后会失去随机存取的功能?( A )
解: Graph : : DFS(int v)//从 v 开始搜索; {
2019计算机考研真题(8)

2019年全国硕士研究生入学统一考试计算机学科专业基础综合模拟试题2(总分:150.00,做题时间:150分钟)一、单项选择题(总题数:40,分数:80.00)1.循环链表的主要优点是()。
A.不再需要头指针了B.已知某个结点的位置后,能很容易找到它的直接前驱结点C.在进行删除操作后,能保证链表不断开D.从表中任一结点出发都能遍历整个链表√头指针不能省略,因为没有头指针就没有办法引用该链表了。
循环链表还是单链表,要找到直接前驱结点,必须至少循环遍历整个链表一次才行。
无论链表是不是循环的,都能保证在删除时链表的不断开。
选项D 是正确选项,因为循环链表首尾相接,形成一个环,从任何一个结点开始都能遍历整个链表。
2.在一个单链表中,已知指针 p 指向其中的某个结点,若在该结点前插入一个由指针 s 指向的结点,则需执行()。
A.s->next=p->next; p->next= s;B.p->next=s; s->next=p;C.r=p->next; p->next=s; s->next=r;D.仅靠已知条件无法实现√由于单链表的单向性,在某个结点前插入结点时,必须有一个指针指向该结点的前驱结点。
所以仅靠此题己知条件无法实现所要求的插入。
3.在一个具有 n 个单元的顺序栈中,假定以高端(即第 n-1 单元)作为栈底,以 top 为栈顶指针,则当作出栈运算时, top 变化为()。
A.top 不变B.top=0C.top--D.top++ √注意此题中顺序栈的栈底是在高端,出栈时 top 指针应当加 1。
4.假定在一棵二叉树中,双分支结点数为 15 个,单分支结点数为 30 个,则叶子结点数为()个。
A.15B.16 √C.17D.47根据二叉树的性质,叶子结点的个数取决于双分支结点数,与单分支结点数无关。
对任何一棵二叉树T,如果其叶子结点数为 n0,双分支结点数为 n2,则 n0 = n2 + 1。
计算机二级考试C语言程序设计试题及答案

计算机二级考试C语言程序设计试题及答案计算机二级考试C语言程序设计试题及答案计算机二级考试采用全国统一命题、统一考试的形式。
下面店铺整理了计算机二级考试C语言程序设计试题及答案,希望对大家有帮助!一、选择题((1)--(40)每小题1分, (41)--(50)每小题2分, 共60分)下列各题 A) 、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项在答题卡相应位置上涂黑,答在试卷上不得分。
(1) 下列述叙中正确的是A) 显示器和打印机都是输出设备 B) 显示器只能显示字符C) 通常的彩色显示器都有7种颜色D) 打印机只能打印字符和表格(2) 微型计算机中运算器的主要功能是进行A) 算术运算 B) 逻辑运算 C) 算术和逻辑运算 D) 初等函数运算(3) COMMAND。
COM是DOS系统的最外层模块,通常称之为A) 引导程序 B) 输入输出系统 C) 命令处理系统 D) 文件管理系统(4) 电子邮件是A)网络信息检索服务B)通过Web网页发布的公告信息C)通过网络实时交互的信息传递方式D)一种利用网络交换信息的非交互式服务(5) 和十进制数225相等的二进制数是A) 11101110 B) 11111110 C) 10000000 D) 11111111(6) 下列叙述中正确的是A) 指令由操作数和操作码两部分组成B) 常用参数xxMB表示计算机的速度C) 计算机的一个字长总是等于两个字节D) 计算机语言是完成某一任务的指令集(7) 计算机的内存储器比外存储器A) 价格便宜 B) 存储容量大 C) 读写速度快 D) 读写速度慢(8) 设当前盘为C盘,执行DOS命令"COPY B:A.TXT PRN"之后,结果是A) B盘上的A.TXT文件被复制到C盘的PRN文件B) 屏幕上显示B盘上的A.TXT文件内容C) B盘上的A.TXT文件内容在打印机上输出D) B盘上的A.TXT文件被复制到B盘上的PRN文件(9) 要将当前盘当前目录下的两个文件X1.TXT和B1.TXT连接起来之后存入B盘当前目录下并且命名为Z.TXT,无论B盘当前目录是什么,完成这件任务可以使用的命令是A) COPY A:X1.TXT+C:B1.TXT Z.TXTB) COPY X1.TXT+C:WSB1.TXT B:.TXTC) COPY A:X1.TXT+C:WSB1.TXTD) COPY X1.TXT+B1.TXT B:Z.TXT(10) 下列四组DOS命令中,功能等价的一组是A) COPY A:*.* B:与DISKCOPY A: B:B) COPY ABC.TXT+XYZ.TXT 与TYPE XYZ.TXT>>ABC.TXTC) COPY ABC.TXT+XYZ.TXT与COPY XYZ.TXT+ABC.TXTD) TYPE *.FOR>CON与COPY *.FOR CON(11) 设当前目录为D:BB,现要把D:AA目录下首字符是A的文本文件全部删除,应该使用命令A) DEL A*.TXT B) DEL AAA.TXTC) DEL AAA*.TXT D) DEL AAA?.TXT(12) 在Windows中,启动应用程序的正确方法是A) 用鼠标指向该应用程序图标B) 将该应用程序窗口最小化成图标B) 将该应用程序窗口还原D) 用鼠标双击该应用程序图标(13) 在Windows中,终止应用程序执行的正确方法是A) 将该应用程序窗口最小化成图标B) 用鼠标双击应用程序窗口右上角的还原按钮C) 用鼠标双击应用程序窗口中的标题栏D) 用鼠标双击应用程序窗口左上角的控制菜单框(14) 在微机系统中,对输入输出设备进行管理的基本程序模块(BIOS)存放在A) RAM中 B) ROM中 C) 硬盘中 D) 寄存器中(15) 使计算机病毒传播范围最广的媒介是A) 硬磁盘 B) 软磁盘 C) 内部存储器 D) 互联网(16) 设有 int x=11; 则表达式 (x++ * 1/3) 的值是A) 3 B) 4 C) 11 D) 12(17) 下列程序的输出结果是A) 3 B) 3.2 C) 0 D) 3.07main(){ double d=3.2; int x,y;x=1.2; y=(x+3.8)/5.0;printf("%d ", d*y);}(18) 下列程序执行后的输出结果是(小数点后只写一位)A) 6 6 6.0 6.0 B) 6 6 6.7 6.7C) 6 6 6.0 6.7 D) 6 6 6.7 6.0main(){ double d; float f; ling l; int i;i=f=1=d=20/3;printf("%d %ld %f %f ", i,l,f,d);}(19) 下列变量定义中合法的是A) short _a=1-.le-1; B) double b=1+5e2.5;C) long do=0xfdaL; D) float 2_and=1-e-3;(20) 设 int x=1, y=1; 表达式(!x||y--)的值是A) 0 B) 1 C) 2 D) -1(21) 与 y=(x>0?1:x<0?-1:0);的功能相同的if语句是A) if (x>0) y=1; B) if(x)else if(x<0)y=-1; if(x>0)y=1;else y=0; else if(x<0)y=-1;else y=0;C) y=-1 D) y=0;if(x) if(x>=0)if(x>0)y=1; if(x>0)y=1;else if(x==0)y=0; else y=-1;else y=-1;(22) 以下循环体的执行次数是A) 3 B) 2 C) 1 D) 0main(){ int i,j;for(i=0,j=1; i<=j+1; i+=2, j--)printf("%d ",i);}(23) 以下叙述正确的是A) do-while语句构成的循环不能用其它语句构成的循环来代替。
数据结构自考试题

B . p ->next = q ->next ; q = p ->next ;
C . q ->next = p ->next; p ->next = q ;
D . p ->next = q ; q ->next = p->next ;
B7.具有n个顶点的有向图最多有( )条边.
A.n B.n(n-1) C n(n+1) D. n2
C10.假设一棵完全二叉树按层次遍历的顺序依次存放在数组BT[m]中,其中根结点存放在BT[0],若BT[i]中的结点有左孩子,则左孩子存放在( )
A.BT[i/2] B.BT[2*i-1] C.BT[2*i] D.BT[2*i+1]
C. pl -> next = p2 -> next;free ( p2 ); D. pl = p2 -> next ; free ( p2) ;
B6.假设S=〃I AM A STUDENT〃,则运算substr(S,4,8)的结果为( )
A.〃M A S〃B.〃M A STUD〃C.〃A STUDEN〃D.〃STUD〃
稳定算法:在排序算法中关键字相同的记录在排序前后不改变排列的位置成为稳定的排序,否则称为不稳定的排序
10.设数据元素关键字序列为{475, 137, 481, 219, 382, 674, 350, 326, 815, 506},分别写出执行下列排序算法时,各趟排序后的关键字序列:
(1)冒泡排序(2)基数排序
A3.在具有n个结点的单链表中,实现___的操作,其算法的时间复杂度都是O(n)。
2022年上海应用技术大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)

2022年上海应用技术大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)一、选择题1、n个结点的完全有向图含有边的数目()。
A.n*nB.n(n+1)C.n/2D.n*(n-1)2、用数组r存储静态链表,结点的next域指向后继,工作指针j指向链中结点,使j沿链移动的操作为()。
A.j=r[j].nextB.j=j+lC.j=j->nextD.j=r[j]->next3、若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用()存储方式最节省时间。
A.顺序表B.双链表C.带头结点的双循环链表D.单循环链表4、已知串S='aaab',其next数组值为()。
A.0123B.1123C.1231D.12115、动态存储管理系统中,通常可有()种不同的分配策略。
A.1B.2C.3D.46、若一棵二叉树的前序遍历序列为a,e,b,d,c,后序遍历序列为b, c,d,e,a,则根结点的孩子结点()。
A.只有e B.有e、b C.有e、c D.无法确定7、循环队列放在一维数组A中,end1指向队头元素,end2指向队尾元素的后一个位置。
假设队列两端均可进行入队和出队操作,队列中最多能容纳M-1个元素。
初始时为空,下列判断队空和队满的条件中,正确的是()。
A.队空:end1==end2;队满:end1==(end2+1)mod MB.队空:end1==end2;队满:end2==(end1+1)mod (M-1)C.队空:end2==(end1+1)mod M;队满:end1==(end2+1) mod MD.队空:end1==(end2+1)mod M;队满:end2==(end1+1) mod (M-1)8、有关二叉树下列说法正确的是()。
A.二叉树的度为2B.一棵二叉树的度可以小于2C.二叉树中至少有一个结点的度为2D.二叉树中任何一个结点的度都为29、设X是树T中的一个非根结点,B是T所对应的二叉树。
云南专升本-数据结构历年试题及答案

1一、单项选择题1.算法指的是( D ) D .解决问题的有限运算序列2.线性表采用链式存储时,结点的存储地址( B )B .连续与否均可3.将长度为n 的单链表链接在长度为m 的单链表之后的算法的时间复杂度为( C )A .O (1)B .O (n)C .O (m)D .O(m+n )4.由两个栈共享一个向量空间的好处是:( B ) B .节省存储空间,降低上溢发生的机率5.设数组data[m ]作为循环队列SQ 的存储空间,front 为队头指针,rear 为队尾指针,则执行出队操作后其头指针front 值为( D) D .front=(front+1)%m6.如下陈述中正确的是( A ) A .串是一种特殊的线性表7.若目标串的长度为n ,模式串的长度为[n/3],则执行模式匹配算法时,在最坏情况下的时间复杂度是( C ) C .O (n 2)8.一个非空广义表的表头( D ) D .可以是子表或原子9对应的稀疏矩阵是( A ) ⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡--00000405000000076080.A10.在一棵度为3的树中,度为3的结点个数为2,度为2 的结点个数为1,则度为0的结点个数为( C ) C .611.在含n 个顶点和e 条边的无向图的邻接矩阵中,零元素的个数为( D ) D .n 2-2e12.假设一个有n 个顶点和e 条弧的有向图用邻接表表示,则删除与某个顶点v i 相关的所有弧的时间复杂度是( C ) C .O(n+e)13.用某种排序方法对关键字序列(25,84,21,47,15,27,68,35,20)进行排序时,序列的变化情况如下:20,15,21,25,47,27,68,35,8415,20,21,25,35,27,47,68,8415,20,21,25,27,35,47,68,84则所采用的排序方法是( D ) D .快速排序14.适于对动态查找表进行高效率查找的组织结构是( C ) C .三叉排序树15.不定长文件是指(B ) B .记录的长度不固定二、填空题16.数据的逻辑结构是从逻辑关系上描述数据,它与数据的 存储(存储结构) 无关,是独立于计算机的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、选择题
1、下面说明不正确的是_______
A、 char a[10]="china";
B、 char a[10],*p=a;p="china";
C、 char *a;a="china";
D、 char a[10],*p;p=a="china";
2、已知指针p的指向如下图所示,则执行语句 *--p;后*p的值是_______
a[0] a[1] a[2] a[3] a[4]
10 20 30 40 50
p
A、 30
B、 20
C、 19
D、 29
3、下面程序段的运行结果是_______
char *s="abcde";
s+=2;printf("%d",s);
A、 cde
B、字符'c'
C、字符'c'的地址
D、无确定的输出结果
4、设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是_______
A、c=*p1+*p2;
B、 p2=c;
C、 p1=p2;
D、 c=*p1*(*p2);
5、若有下面的程序段_______
char s[]="china";char *p; p=s;
则下列叙述正确的是
A、 s和p完全相同
B、数组s中的内容和指针变量p中的内容相等
C、 s数组长度和p所指向的字符串长度相等
D、 *p与s[0]相等
6、下面程序段的运行结果是_______
char *format="%s,a=%d,b=%d\n";
int a=11,b=10;
a+=b;
printf(format,"a+=b",a,b);
A、 for,"a+=b",ab
B、 format,"a+=b"
C、 a+=b,a=11,b=10
D、以上结果都不对
7、下面程序段的运行结果是_______
char str[]="ABC",*p=str;
printf("%d\n",*(p+3));
A、67
B、 0
C、字符'C'的地址
D、字符'C'
8、下面程序段的运行结果是_______
char *p="abcdefgh";
p+=3;
printf("%d\n",strlen(strcpy(p,"ABCD")));
A、 8
B、 12
C、 4
D、 7
9、下面程序段中,for循环的执行次数是_______
char *s="\ta\018bc";
for(;*s!='\0';s++) printf("*");
A、 9
B、5
C、 6
D、 7
10、若有说明语句
char a[]="It is mine";
char *p="It is mine";
则以下不正确的叙述是_______
A、 a+1表示的是字符t的地址
B、 p指向另外的字符串时,字符串的长度不受限制
C、 p变量中存放的地址值可以改变
D、 a中只能存放10个字符
11、在说明语句:int *f();中,标识符f代表的是_______
A、一个用于指向整型数据的指针变量
B、一个用于指向一维数组的行指针
C、一个用于指向函数的指针变量
D、一个返回值为指针型的函数名
12、已定义以下函数_______
fun(char *p2, char *p1)
{ while((*p2=*p1)!='\0') {p1++;p2++;}}
函数的功能是
A、将p1所指字符串复制到p2所指内存空间
B、将p1所指字符串的地址赋给指针p2
C、对p1和p2两个指针所指字符串进行比较
D、检查p1和p2两个指针所指字符串中是否有'\0'
13、有以下程序
#include <stdio.h>
main()
{ char str[][20]={"Hello","Beijing"},*p=str;
printf("%d\n",strlen(p+20));
}
程序运行后的输出结果是_______
A、 0
B、 5
C、 7
D、 20
14、有以下程序段
main()
{ int a=5,*b,**c;
c=&b; b=&a;
……
}
程序在执行了c=&b;b=&a;语句后,表达式:**c的值是 _______
A、变量a的地址
B、变量b中的值
C、变量a中的值
D、变量b的地址
15、有以下程序
void ss(char *s,char t)
{ while(*s)
{ if(*s==t) *s=t-‘a’+’A’;
s++;
}
}
main()
{ char str1[100]=“abcddfefdbd”,c=’d’;
ss(str1,c); printf(“%s\n”,str1);
}
程序运行后的输出结果是_______
A、 ABCDDEFEDBD
B、 abcDDfefDbD
C、 abcAAfefAbA
D、Abcddfefdbd
二、填空题
1、以下程序通过函数指针p调用函数fun,请在填空栏内,写出定义变量p的语句。
void fun(int *x,int *y)
{ …… }
main()
{ int a=10,b=20;
________ ; /* 定义变量p */
p=fun; p(&a,&b);
……
}
2、以下程序中给指针p分配三个double型动态内存单元,请填空。
# include <stdlib.h>
main ( )
{ double *p;
p=(double *) malloc(_________);
p[0]=1.5;p[1]=2.5;p[2]=3.5;
printf(“%f%f%f\n”,p[0],p[1],p[2]);
}
3、下面程序实现的功能是________,并在行后/* */做注释。
#include<string.h>
main()
{ int i,n;
char *p,sttr[80];
p=str;
strcpy(p,”I love China!”); __________
i=0;n=0;
for(,*p!=’\0’;p++)
if(*p==’’)
i=0; __________
else if(i==0) __________
{ n++;
i++;
}
printf(“\nn=%d”,n);
}
4、程序实现:对键盘输入的任意两个数排序,请按注释要求完成程序行。
main()
{
float a,b,max,min,*pmax=&max,*pmin=&min;
__________ /*定义两个指针变量pa、pb分别指向a、b*/
__________ /**pa与*pb中的较大数放入*pmax中*/
__________ /**pa与*pb中的较小数放入*pmin中*/
__________ /*排出升序排序的结果*/
__________ /*排出降序排序的结果*/
}
5、下面程序的运行结果是: ________ 。
void swap(int *a,int *b)
{ int *t;
t=a; a=b; b=t;
}
main()
{ int x=3,y=5,*p=&x,*q=&y;
swap(p,q);
printf(“%d%d\n”,*p,*q);
}
三、编写程序
1、输入一行文字,找出其中大写字母、小写字母、空格、数字以及其他字符有多少个?
2、输入3个字符串,按小到大的顺序排列并输出
3、编写程序,将任意一个字符串从第一个字符开始间隔地输出该串。
例如:字符串是abcdef,那么输出ace。
4、写一个函数,求一个字符串的长度(不能调用strlen函数)。
5、将一个长度不超过4的数字字符串转换成一个整数。
如字符串是“3248”,则转换的整数是3248。