练习题Ⅱ 1.单项选择题(从下列各题四个备选答案中选出一个正 确答案,将其代号(A,B,C,D写在题干前面的括号内) ()(1)一个数据对象是的集合。 A.相同类型的数据项B.相同类型的数据元素 C不同类型的数据项D.不同类型的数据元素 ()(2)是数据的基本单位。 A.数据项 B.关键字 C.数据元素D数据类型 2.一个算法具有哪几个特点?举例说明之
练 习 题 1 1.单项选择题(从下列各题四个备选答案中选出一个正 确答案,将其代号(A,B,C,D)写在题干前面的括号内) ( )(1)一个数据对象是____的集合。 A.相同类型的数据项 B.相同类型的数据元素 C.不同类型的数据项 D.不同类型的数据元素 ( )(2)___是数据的基本单位。 A.数据项 B.关键字 C.数据元素 D.数据类型 2.一个算法具有哪几个特点?举例说明之
3.下列描述不符合算法的什么特征和要求? (1) void suanfal() i int i, s: =0 for(i=0;i>=0;i++) s+t (2 )float suanfa2(float x) i float y; y=sgrt(x) return (y);
3.下列描述不符合算法的什么特征和要求? (1) void suanfa1( ) { int i,s; s=0; for(i=0;i>=0;i++) s++; } (2) float suanfa2(float x) { float y; y=sqrt(x); return(y); }
4.执行和分析下面的C程序 main() I int i, j; for(i=0,j=0;j+,i<5;i+) printf(%d,, i) printf(%d, %d, 1, j); 试问 (1)表达式“i++”共计执行多少次? (2)表达式"j++"共计执行多少次? (3)程序的输出结果是多少?
4.执行和分析下面的C程序: main( ) { int i,j; for(i=0,j=0;j++,i<5;i++) printf("%d,",i); printf("%d,%d",i,j); } 试问 (1)表达式“i++” 共计执行多少次? (2)表达式"j++" 共计执行多少次? (3)程序的输出结果是多少?
5.执行和分析下面的算法,回答问题。 int suanfal(int m, int n I int i, j,s=0; for(i=1; i<=m; i++) I for(j=1; j-n; j++) s++ printf( %d, s) return s; (1)试问语句" printf("%d",s);"共计执行多少次? (2)试问语句"s++;"共计执行多少次? (3)该算法的时间复杂度是多少? (4)当m=n=5时,算法的输出结果是什么? (5)当m=n=5时,算法的返回值是多少?
5.执行和分析下面的算法,回答问题。 int suanfa1(int m,int n) { int i,j,s=0; for(i=1;i<=m;i++) { for(j=1;j<=n;j++) s++; printf("%d",s); } return s; } (1) 试问语句 "printf("%d",s); " 共计执行多少次? (2) 试问语句 "s++; " 共计执行多少次? (3)该算法的时间复杂度是多少? (4)当m=n=5时,算法的输出结果是什么? (5)当m=n=5时,算法的返回值是多少?
6.执行和分析下面的算法,回答问题。 int suan fan (int n) i int i, j, x=0; for(i=; i<n: i++) i for(j=1; j<i; j++) printf( x=%d\n"x return X: (1)试问语句“x++;”共计执行多少次? (2)试分析算法的时间复杂度; (3)假定n=6,试指出算法的输出结果 (4)假定n=6,算法的返回值是多少?
6.执行和分析下面的算法,回答问题。 int suan_fan(int n) { int i,j,x=0; for(i=1;i<n;i++) { for(j=1;j<i;j++) x++; printf("x=%d\n",x); } return x; } (1) 试问语句“x++; ”共计执行多少次? (2) 试分析算法的时间复杂度; (3) 假定n=6,试指出算法的输出结果; (4) 假定n=6,算法的返回值是多少?
7.执行和分析下面的算法,回答问题: void abc(int n t int i=1 whilei<=n) i=i*2; printf( i=%d\n", i (1)试问“i<=n”共计执行多少次? (2)试问“i=i*2”共计执行多少次? (3)试分析算法的时间复杂度; (4)假定n=1000,试指出算法的输出结果
7.执行和分析下面的算法,回答问题: void abc(int n) { int i=1; while(i<=n) i=i*2; printf("i=%d\n",i); } (1) 试问 “i<=n” 共计执行多少次? (2) 试问 “i=i*2” 共计执行多少次? (3) 试分析算法的时间复杂度; (4) 假定n=1000,试指出算法的输出结果
练习题2 1.下列表示哪是线性表? (1)(10,-3,55,7) (2)(1,2,3,4,.) (3){A,B,C,D,E} (4){a’,”b’,’c’} 2.线性表的顺序存储结构有什么优点和缺点? 3.对单链表可以进行哪几种操作? 4.试比较单链表、双链表、循环链表的优、缺点 5.线性表的存储结构,在什么情况下使用顺序结构? 在什么情况下使用链表结构?为什么?
练 习 题 2 1.下列表示哪是线性表? (1)(10,-3,55,7) (2)(1,2,3,4,...) (3){A,B,C,D,E} (4){'a','b','c'} 2.线性表的顺序存储结构有什么优点和缺点? 3.对单链表可以进行哪几种操作? 4.试比较单链表、双链表、循环链表的优、缺点。 5.线性表的存储结构,在什么情况下使用顺序结构? 在什么情况下使用链表结构?为什么?
6.在下列双向链表中,已知指针p指向结点A,在A、C之间 插入结点B,写出要执行的操作: p □A十 B 7.已知线性表L=(a1,a2,,an)存放在一维数组A[O..n-1] 中,将线性表L就地逆置为L=(an,,.,a2,a1),试写出算法
6.在下列双向链表中,已知指针p指向结点A,在A、C之间 插入结点B,写出要执行的操作: A C B p f 7.已知线性表L=(a1,a2,...,an)存放在一维数组A[0..n-1] 中,将线性表L就地逆置为 L=(an,...,a2,a1),试写出算法
练习题3 1.设输入元素B,C,A,D到栈中,能得当哪几种输出? 不能得到哪几种输出序列? )A,B,C,D(7)B,A,C,D(13)C,A,B,D(19)D,B,C,A (2)A,B,D,C(8)B,A,D,C(14)C,A,D,B(20)D,B,A,C (3)A,C,B,D(9)B,C,A,D(15)C,B,A,D(21)D,C,B,A (4)A,C,D,B(10)B,C,D,A(16)C,B,D,A(22)D,C,A,B (5)A,D,B,C(11)B,D,A,C(17)C,D,A,B(23)D,A,B,C (6)A,D,C,B(12)B,D,C,A(18)C,D,B,A(24)D,A,C,B 2.设链式栈的栈顶头指针为top,弹出栈顶元素送e,试写 出退栈算法pop(top,e)
练 习 题 3 1.设输入元素B,C,A,D到栈中,能得当哪几种输出? 不能得到哪几种输出序列? (1) A,B,C,D (7) B,A,C,D (13) C,A,B,D (19) D,B,C,A (2) A,B,D,C (8) B,A,D,C (14) C,A,D,B (20) D,B,A,C (3) A,C,B,D (9) B,C,A,D (15) C,B,A,D (21) D,C,B,A (4) A,C,D,B (10) B,C,D,A (16) C,B,D,A (22) D,C,A,B (5) A,D,B,C (11) B,D,A,C (17) C,D,A,B (23) D,A,B,C (6) A,D,C,B (12) B,D,C,A (18) C,D,B,A (24) D,A,C,B 2.设链式栈的栈顶头指针为top,弹出栈顶元素送e,试写 出退栈算法 pop(top,e)
练习题5 5.1试分别画出有3行4列元素的数组a[1..3,1..4]的以 行为主序和以列序为主序的顺序存储结构图 5.2选择题(从下列各题四个备选答案中选出1个正确答案, 将其代号(A,B,C,D写在题干前面的括号内) 是’Data* element’的子串 A. Data e.' Dataelement’C.’**eleD.'data ()2.设数组a[0.6,0..5]的基地址为1024,每个元素占2个存 储单元,若以行序为主序顺序存储,则元素a[2,4的存储 地址是。 A.1058B.1056C.1098D.答案A,B,C都不对 )3.设数组a[0..6,0..5]的基地址为1024,每个元素占2个存 储单元,若以列序为主序顺序存储,则元素a[2,4的存储 地址是。 A.1084B.1056C.1098D.答案A,B,C都不对
练 习 题 5 5.1 试分别画出有3行4列元素的数组a[1..3, 1..4 ]的以 行为主序和以列序为主序的顺序存储结构图。 5.2 选择题(从下列各题四个备选答案中选出1个正确答案, 将其代号(A,B,C,D)写在题干前面的括号内) ( )1.____是'Data**element'的子串。 A.Data B.'Dataelement' C.'**ele' D.'data' ( )2.设数组a[0..6,0..5]的基地址为1024,每个元素占2个存 储单元,若以行序为主序顺序存储,则元素a[2,4]的存储 地址是__。 A.1058 B.1056 C.1098 D.答案A,B,C都不对 ( )3.设数组a[0..6,0..5]的基地址为1024,每个元素占2个存 储单元,若以列序为主序顺序存储,则元素a[2,4]的存储 地址是___。 A.1084 B.1056 C.1098 D.答案A,B,C都不对