数据结构与算法分析java课后答案
数据结构(Java版)习题解答

AI N D E X练习题答案第一章练习题答案(a) n+(n–1)+(n–2)+…+2+1=2)1(+ n n (b) n+(n–1)+(n–2)+…+2+1=2)1(+nnf(n)≦c.g(n) →f(n)=O(g(n))(a) f(n)=100n+9c=101, g(n)=n, n0=10得知f(n)=O(n)(b) f(n)=1000n2+100n–8c=2000, g(n)= n2, n0=1得知f(n)=O(n2)(c) f(n)=5*2n+9 n2+2c=10, n0=5得知f(n)=O(2n)f(n)≧c g(n) →f(n)=Ω(g(n)) (a) f(n)=3n+1c=2, n0=1, g(n)=n得知f(n)=Ω(n)(b) f(n)=100n2+4n+5c=10, n0=1, g(n)= n2得知f(n)=Ω(n2)(c) f(n)=8*2n+8n+16c=8, n0=1, g(n)= 2n得知f(n)=Ω(n2)c1.g(n)≦f(n)≦c2.g(n) →f(n)= Θ(g(n))(a) f(n)=3n+2c1=3, c2=6, n0=1得知f(n) = Θ (n)(b) f(n)=9n2+4n+2c1=9, c2=16, n0=1得知f(n) = Θ (n2)(c) f(n)=8n4+5n3+5c1=8, c2=20, n0=1得知f(n) = Θ (n4)A-2练习题解答第二章练习题答案1. 分别以行为主和以列为主说明之。
(a) 以行为主A(i, j)=l0+(i–1)*u2*d+(j–1)*d(b) 以列为主A(i, j)=l0+(j–1)*u1*d+(i–1)*d2. 以列为主A(i, j)=l0+(j–12)*md+(i–l1)dm=u1–l1+1=5–(–3)+1=9m=u2–l2+1=2–(–4)+1=7A(1, 1) =100+(1–(–4))*9+(1–(–3))=100+45+4=1493. 分别以行为主和以列为主的说明。
数据结构与算法课后习题解答

数据结构与算法课后习题解答数据结构与算法课后习题解答第一章绪论(参考答案)1.3 (1) O(n)(2) (2) O(n)(3) (3) O(n)(4) (4) O(n1/2)(5) (5) 执行程序段的过程中,x,y值变化如下:循环次数x y0(初始)91 1001 92 1002 93 100。
9 100 10010 101 10011 9112。
20 9921 91 98。
30 101 9831 91 97到y=0时,要执行10*100次,可记为O(10*y)=O(n)数据结构与算法课后习题解答1.5 2100 , (2/3)n , log2n , n1/2 , n3/2 , (3/2)n , nlog2n , 2 n , n! , n n第二章线性表(参考答案)在以下习题解答中,假定使用如下类型定义:(1)顺序存储结构:#define ***** 1024typedef int ElemType;// 实际上,ElemTypetypedef struct{ ElemType data[*****];int last; // last}sequenlist;(2*next;}linklist;(3)链式存储结构(双链表)typedef struct node{ElemType data;struct node *prior,*next;数据结构与算法课后习题解答}dlinklist;(4)静态链表typedef struct{ElemType data;int next;}node;node sa[*****];2.1 la,往往简称为“链表la”。
是副产品)2.2 23voidelenum个元素,且递增有序,本算法将x插入到向量A中,并保持向量的{ int i=0,j;while (ielenum A[i]=x) i++; // 查找插入位置for (j= elenum-1;jj--) A[j+1]=A[j];// 向后移动元素A[i]=x; // 插入元素数据结构与算法课后习题解答} // 算法结束24void rightrotate(ElemType A[],int n,k)// 以向量作存储结构,本算法将向量中的n个元素循环右移k位,且只用一个辅助空间。
数据结构+算法+第二版+课后+答案+部分

算法与数据结构课后习题答案第一章一、选择题CCADB二、判断题FFFFT三、简答题5.(1) n-1 (2)1 (3)n(n+1)/2 (4)if(a<b) n , a++ n/2(5)if(x>100) 11*100-1, x-=10;y-- 1006.(1)O(log3n) (2) O(n2) (3) O(n2)第二章一、选择题1~5: AADCD 6~10:BCBAD 11~12:BD二、判断题1~5:FTFTF 6~10:TFTTF 11~12:FF三、算法设计题1.#define arrsize 100int Inserseqx(datatype A[ ], int *elenum, datatype x ) { int i=*elenum-1;if(*elenum==arrsize) return 0;while(i>=0&&A[i]>=x ){ A[i+1]=A[i]; i--; }A[i+1]=x; *elenum ++;return 1;}6.typedef struct node{ dataype data;struct node *next;}LNode, *LinkList;int Inserlinkx(LinkList L,datatype x ){ LNode *p=L,*s;s=(LNode *)malloc(sizeof(LNode));if(!s) return 0;s->data=x;while(p->next&&p->next->data<=x) p=p->next;s->next=p->next; p->next=s;return 1;}第三章一、选择题1~5:CBDBB 6~10: CBDCC二、判断题1~5:TTTFF三、简答题4. 共14种顺序:4321 3214 3241 3421 2134 2143 23142341 2431 1234 1243 1324 1342 1432四、简答题1.#define MAXSIZE 1000typedef struct{datatype data[MAXSIZE];int top;}SeqStack;SeqStack *Init_SeqStack(); /*栈初始化*/int Empty_SeqStack(SeqStack *s);/*判栈空*/int Push_SeqStack(SeqStack *s,datatype x); /*x入栈*/ int Pop_SeqStack(SeqStack *s,datatype *x); /*出栈*/int judgehuiwen(char *str)/*返回1表示是回文,否则不是*/{ SeqStack *s=Init SeqStack( );char *ch=str,ch1;while(*ch!=’@’){Push_SeqStack(s, *ch);ch++;}ch=str;while(!Empty_SeqStack(s)){ Pop_SeqStack(s,&ch1);if(*ch!=ch1) return 0;ch++;}return 1;}5.#define MAXSIZE 1000typedef struct{datatype data[MAXSIZE];int top;}SeqStack;SeqStack *Init_SeqStack(); /*栈初始化*/int Empty_SeqStack(SeqStack *s);/*判栈空*/int Push_SeqStack(SeqStack *s,datatype x); /*x入栈*/ int Pop_SeqStack(SeqStack *s,datatype *x); /*出栈*/ int judge(char *str)/*返回1表示是匹配,否则不是*/{ SeqStack *s=Init SeqStack( );char *ch=str,ch1;while(*c h!=’\0’){ if(*ch==’(‘) Push_SeqStack(s, *ch);else if(*ch==’)‘)if(!Pop_SeqStack(s,&ch1)) return 0;ch++;}if(Empty_SeqStack(s)) return 1;else return 0;}4.typedef struct node{ dataype data;struct node *next;}Lqnode, *LqList;置空:LqList Init_lq(){ LqList rear=(LqList *)malloc(sizeof(LqList)); rear->next=rear;return rear;}入队:int in_lq(LqList *rear, datatype x){ Lqnode *p=(LqList *)malloc(sizeof(LqList)); if(!p) return 0;p->data=x;p->next=*rear->next; *rear->next=p; *rear=p; return 1;}出队:int out_lq(LqList *rear, datatype x){ Lqnode *p;if(*rear->next==*rear) return 0;p=*rear->next->next;if(p==*rear){*rear=*rear->next;*rear->next=*rear;} else *rear->next->next=p->next;free(p);return 1;}第四章一、选择题1-3:CBA 4:DAB 5:CCC 6:C二、判断题FTFFFFF三、简答题2.4. k=i+j-2+(i+1)%2 或k=i+j-1+i%26.第五章一、选择题:1~5:CCBBB 6~10:CBDAD 11~15:DCBDB3 5 6 7 98 13 17二、判断题:1~5:FTFFT 6~10:FFFTF 11~15:TFTFF 16~20:FTFFT 三、简答题:((2)4、条件:森林中既没有孩子也没有右边的兄弟的结点11. 最大值:2h-1 最小值:2h-116.0.31 0.16 0.10 0.08 0.11 0.20 0.04 0.12 0.21 0.28 0.410.59a b c d e f ga:01 b:001 c:110 d:0000 e:111 f:10 g:0001四、算法设计题:typedef struct bitnode{ datatype data;struct bitnode *lchild, *rchild;}BiTNode, *BiTree;1.计算结点数目int counttotal(BiTree bt){ if(bt==NULL) return 0;return counttotal(bt->lchild)+counttotal(bt->rchild)+1;}计算度为1的结点数目:int countdegree1(BiTree bt){ if(bt==NULL) return 0;if( bt->lchild==NULL&& bt->rchild==NULL) return 0;if( bt->lchild==NULL|| bt->rchild==NULL)return countdegree1(bt->lchild)+ countdegree1(bt->rchild)+1; return countdegree1(bt->lchild)+ countdegree1(bt->rchild);}3.求深度;int depth(BiTree bt){ int ld,rd;if(bt==NULL) return 0;ld= depth(bt->lchild); rd=depth(bt->rchild);if( ld>=rd) return ld+1;return rd+1;}第6章作业讲评一、选择题1-4:BABC 5:BD 6-10:DBACB二、判断题1-5:FTTFF 6-10:TTFFT 11-15:FTFFF三、简答题1.(1)ID(1)=2 OD(1)=1ID(2)=2 OD(2)=2ID(3)=1 OD(3)=3ID(4)=3 OD(4)=0ID(5)=2 OD(5)=3ID(6)=1 OD(6)=2(2)0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 0 1 0(3) (4)54 3 2 1 0 54 3 2 1 0(5) 2. (1)0 1 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 1 0 1 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 1 0(2)(4)(5)v1 v2 v3 v4 v5 v6 v73. 邻接矩阵表示图时,与顶点个数有关,与边的条数无关。
数据结构与算法分析课后习题解答

p.136 4.16Show the result of inserting 2, 1, 4, 5, 9, 3, 6, 7 into an initially empty AVL tree.p.136 4.22Write the functions to perform the double rotation without the inefficiency of doing two single rotations.#ifndef _AvlTree_H #define _AvlTree_H struct AvlNode;typedef struct AvlNode *Position; typedef struct AvlNode *AvlTree; /* function declarations are omitted */ #endif /* _AvlTree_H */ struct AvlNode { ElementType Element; AvlTree Left, Right; int Height; }static Position DoubleRotateWithLeft ( Position K3 ){ /* Do the left—right double rotation. K3 is the trouble finder. */ Position K1, K2;K1=K3->Left; /* mark parent */ K2=K1->Right; /* mark trouble maker */K1->Right=K2->Left;K3->Left=K2->Right;K2->Left=K1;K2->Right=K3; /* finish setting links */ K1->Height=Max( Height(K1->Left), Height(K1->Right) ) + 1; K3->Height=Max( Height(K3->Left), Height(K3->Right) ) + 1; K2->Height=Max( K1->Height, K3->Height ) + 1; /* finish setting heights */ return K2; /* K2 is the new root */ }K3static Position DoubleRotateWithRight( Position K1 ){ /* Do the right--left double rotation. K1 is the trouble finder. */Position K2, K3; /* Similar to the above function */K3=K1->Right;K2=K3->Left;K1->Right=K2->Left;K3->Left=K2->Right;K2->Left=K1;K2->Right=K3;K1->Height=Max( Height(K1->Left), Height(K1->Right) ) + 1;K3->Height=Max( Height(K3->Left), Height(K3->Right) ) + 1;K2->Height=Max( K1->Height, K3->Height ) + 1;return K2;}p.136 4.23Show the result of accessing the keys 3, 9, 1, 5 in order in the splay tree in Figure 4.61.Figure 4.61Result for 3:Result for 9:Result for 1:Result for 5:。
《数据结构与算法》课后答案

《数据结构与算法》课后答案2.3课后习题解答2.3.2判断题1.线性表的逻辑顺序与存储顺序总是一致的。
(某)2.顺序存储的线性表可以按序号随机存取。
(√)3.顺序表的插入和删除操作不需要付出很大的时间代价,因为每次操作平均只有近一半的元素需要移动。
(某)4.线性表中的元素可以是各种各样的,但同一线性表中的数据元素具有相同的特性,因此属于同一数据对象。
(√)5.在线性表的顺序存储结构中,逻辑上相邻的两个元素在物理位置上并不一定相邻。
(某)6.在线性表的链式存储结构中,逻辑上相邻的元素在物理位置上不一定相邻。
(√)7.线性表的链式存储结构优于顺序存储结构。
(某)8.在线性表的顺序存储结构中,插入和删除时移动元素的个数与该元素的位置有关。
(√)9.线性表的链式存储结构是用一组任意的存储单元来存储线性表中数据元素的。
(√)10.在单链表中,要取得某个元素,只要知道该元素的指针即可,因此,单链表是随机存取的存储结构。
(某)11.静态链表既有顺序存储的优点,又有动态链表的优点。
所以它存取表中第i个元素的时间与i无关。
(某)12.线性表的特点是每个元素都有一个前驱和一个后继。
(某)2.3.3算法设计题1.设线性表存放在向量A[arrize]的前elenum个分量中,且递增有序。
试写一算法,将某插入到线性表的适当位置上,以保持线性表的有序性,并且分析算法的时间复杂度。
【提示】直接用题目中所给定的数据结构(顺序存储的思想是用物理上的相邻表示逻辑上的相邻,不一定将向量和表示线性表长度的变量封装成一个结构体),因为是顺序存储,分配的存储空间是固定大小的,所以首先确定是否还有存储空间,若有,则根据原线性表中元素的有序性,来确定插入元素的插入位置,后面的元素为它让出位置,(也可以从高下标端开始一边比较,一边移位)然后插入某,最后修改表示表长的变量。
intinert(datatypeA[],int某elenum,datatype某)elenum为表的最大下标某/{if(某elenum==arrize-1)return0;法插入某/ele{i=某elenum;while(i>=0&&A[i]>某)边移动某/{A[i+1]=A[i];i--;}A[i+1]=某;/某找到的位置是/某边找位置/某表已满,无/某设插入位的下一位某/(某elenum)++;return1;}}时间复杂度为O(n)。
数据结构与算法分析课后习题答案

数据结构与算法分析课后习题答案【篇一:《数据结构与算法》课后习题答案】>2.3.2 判断题2.顺序存储的线性表可以按序号随机存取。
(√)4.线性表中的元素可以是各种各样的,但同一线性表中的数据元素具有相同的特性,因此属于同一数据对象。
(√)6.在线性表的链式存储结构中,逻辑上相邻的元素在物理位置上不一定相邻。
(√)8.在线性表的顺序存储结构中,插入和删除时移动元素的个数与该元素的位置有关。
(√)9.线性表的链式存储结构是用一组任意的存储单元来存储线性表中数据元素的。
(√)2.3.3 算法设计题1.设线性表存放在向量a[arrsize]的前elenum个分量中,且递增有序。
试写一算法,将x 插入到线性表的适当位置上,以保持线性表的有序性,并且分析算法的时间复杂度。
【提示】直接用题目中所给定的数据结构(顺序存储的思想是用物理上的相邻表示逻辑上的相邻,不一定将向量和表示线性表长度的变量封装成一个结构体),因为是顺序存储,分配的存储空间是固定大小的,所以首先确定是否还有存储空间,若有,则根据原线性表中元素的有序性,来确定插入元素的插入位置,后面的元素为它让出位置,(也可以从高下标端开始一边比较,一边移位)然后插入x ,最后修改表示表长的变量。
int insert (datatype a[],int *elenum,datatype x) /*设elenum为表的最大下标*/ {if (*elenum==arrsize-1) return 0; /*表已满,无法插入*/else {i=*elenum;while (i=0 a[i]x)/*边找位置边移动*/{a[i+1]=a[i];i--;}a[i+1]=x;/*找到的位置是插入位的下一位*/ (*elenum)++;return 1;/*插入成功*/}}时间复杂度为o(n)。
2.已知一顺序表a,其元素值非递减有序排列,编写一个算法删除顺序表中多余的值相同的元素。
数据结构教程(Java)习题解答

第一章 绪论1.1 单选题1. D2. C3. D4. B5. A6. B7. C8. C9. A 10. B第10小题提示:在含有n 个元素的数据表中顺序查找任一元素的平均比较次数为p c i i i n=∑1,p i为查找第i 个元素的概率,c i是查找第i 个元素时需要比较的元素数,查找所有元素的概率之和为1,若查找每个元素的概率相同,则平均查找长度的计算公式可简化为11ni i nc =∑。
此题的计算式为)76543(121241131+++++⨯+⨯=35/121.2 算法分析题 1. 判断n 是否为一个素数,若是则返回逻辑值true ,否则返回逻辑值false 。
该算法的时间复杂度为O (n )。
2. 计算∑=ni i 1!的值。
时间复杂度为O (n )。
3. 计算∑=n i i 1!的值。
时间复杂度为O (n 2)。
4. 求出满足不等式1+2+3+...+i ≥n 的最小i 值。
时间复杂度为O (n )。
提示:因为1+2+3+...+i=(1+i)i/2,即当n 很大时i 的平方与n 成正比,所以i 的值(即函数中while 循环的次数)与n 的平方根成正比。
5. 打印出一个具有n 行的乘法表,第i 行(1≤i ≤n )中有n-i+1个乘法项,每个乘法项为i 与j (i ≤j ≤n )的乘积。
时间复杂度为O (n 2)。
6. 统计并返回二维数组a 中大于等于k 的元素的个数。
时间复杂度为O (m ×n),假定m 和n 分别表示二维数组a 的行数和列数。
7. 矩阵相乘,即a[m][n]×b[n][p]→c[m][p]。
时间复杂度为O (M ×N ×P)。
这里假定二维数组a 的行列数为m 和n ,二维数组b 的行列数为n 和p ,二维数组c 的行列数为m 和p 。
1.3 算法设计题设计二次多项式ax 2+bx+c 的一种抽象数据类型,假定起名为Quadratic ,该类型的数据部分为双精度类型的3个系数项a 、b 和c ,操作部分为: (1) 初始化二次多项式中的三个数据成员a 、b 和c 。
《数据结构与算法》课后习题答案

《数据结构与算法》课后习题答案2.3 课后习题解答2.3.2 判断题1 ?线性表的逻辑顺序与存储顺序总是一致的。
(X)2 ?顺序存储的线性表可以按序号随机存取。
(V)3?顺序表的插入和删除操作不需要付出很大的时间代价,因为每次操作平均只有近一半的元素需要移动。
(X)4?线性表中的元素可以是各种各样的,但同一线性表中的数据元素具有相同的特性,因此属于同一数据对象。
(V)5?在线性表的顺序存储结构中,逻辑上相邻的两个元素在物理位置上并不一定相邻。
(X)6 ?在线性表的链式存储结构中,逻辑上相邻的元素在物理位置上不一定相邻。
(V)7 ?线性表的链式存储结构优于顺序存储结构。
(X)&在线性表的顺序存储结构中,插入和删除时移动元素的个数与该元素的位置有关。
(V)9 ?线性表的链式存储结构是用一组任意的存储单元来存储线性表中数据元素的。
(V)10. 在单链表中,要取得某个元素,只要知道该元素的指针即可,因此,单链表是随机存取的存储结构。
(X)11. 静态链表既有顺序存储的优点,又有动态链表的优点。
所以它存取表中第i个元素的时间与i无关。
(X)12 ?线性表的特点是每个元素都有一个前驱和一个后继。
(X)2.3.3 算法设计题1.设线性表存放在向量A[arrsize]的前elenum个分量中,且递增有序。
试写一算法,将x 插入到线性表的适当位置上,以保持线性表的有序性,并且分析算法的时间复杂度。
【提示】直接用题目中所给定的数据结构(顺序存储的思想是用物理上的相邻表示逻辑上的相邻,不一定将向量和表示线性表长度的变量封装成一个结构体),因为是顺序存储,分配的存储空间是固定大小的,所以首先确定是否还有存储空间,若有,则根据原线性表中元素的有序性,来确定插入元素的插入位置,后面的元素为它让出位置,(也可以从高下标端开始一边比较,一边移位)然后插入x ,最后修改表示表长的变量。
int insert (datatype A[],int *elenum,datatype x) {if (*elenum==arrsize-1) return 0;else {i=*elenum;while (i>=0 && A[i]>x) {A[i+1]=A[i];i--;}A[i+1]=x; (*elenum)++; return 1;}时间复杂度为O(n)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构与算法分析java课后答案【篇一:java程序设计各章习题及其答案】>1、 java程序是由什么组成的?一个程序中必须有public类吗?java源文件的命名规则是怎样的?答:一个java源程序是由若干个类组成。
一个java程序不一定需要有public类:如果源文件中有多个类时,则只能有一个类是public类;如果源文件中只有一个类,则不将该类写成public也将默认它为主类。
源文件命名时要求源文件主名应与主类(即用public修饰的类)的类名相同,扩展名为.java。
如果没有定义public类,则可以任何一个类名为主文件名,当然这是不主张的,因为它将无法进行被继承使用。
另外,对applet小应用程序来说,其主类必须为public,否则虽然在一些编译编译平台下可以通过(在bluej下无法通过)但运行时无法显示结果。
2、怎样区分应用程序和小应用程序?应用程序的主类和小应用程序的主类必须用public修饰吗?答:java application是完整的程序,需要独立的解释器来解释运行;而java applet则是嵌在html编写的web页面中的非独立运行程序,由web浏览器内部包含的java解释器来解释运行。
在源程序代码中两者的主要区别是:任何一个java application应用程序必须有且只有一个main方法,它是整个程序的入口方法;任何一个applet小应用程序要求程序中有且必须有一个类是系统类applet的子类,即该类头部分以extends applet结尾。
应用程序的主类当源文件中只有一个类时不必用public修饰,但当有多于一个类时则主类必须用public修饰。
小应用程序的主类在任何时候都需要用public来修饰。
3、开发与运行java程序需要经过哪些主要步骤和过程?答:主要有三个步骤(1)、用文字编辑器notepad(或在jcreator,gel, bulej,eclipse, jbuilder等)编写源文件;(2)、使用java编译器(如javac.exe)将.java源文件编译成字节码文件.class;(3)、运行java程序:对应用程序应通过java解释器(如java.exe)来运行,而对小应用程序应通过支持java标准的浏览器(如microsoft explorer)来解释运行。
4、安装jdk之后如何设置jdk系统的path,classpath?他们的作用是什么?答、更新系统path的方法随windows版本不同而不同。
对于windows 95/98,可以将下列项目作为c:\autoexec.bat文件的最后一行:set path = c:\j2sdk1.4.2\bin;%path%当程序需要第三方的类库支持, 而且比较常用, 就可以采用此种方法.比如常用的数据库驱动程序, 写 servlet 需要的 servlet 包等等. 设置方法就是在环境变量中加入 classpath. 然后就可以直接编译运行了.java运行环境从classpath环境变量中寻找要执行的用户项目(三方的类库)。
可以按如下的方式设置set classpath=.;c:\j2sdk1.4.2\jre\lib\jaws.jar;%classpath%通常我们要从当前目录中寻找用户类,因为开发的程序相关的类放在这里,. 表示当前工作目录.5、java语言特点是什么?答:java是一种简单的面象对象的分布式的解释的健壮的安全的结构中立的可移植的性能很优异的多线程的动态的语言。
6、简述面向过程问题求解和面向对象问题求解的异同。
试列举出面向对象和面向过程的编程语言各两种。
解:面向过程问题求解利用计算机能够理解的离散逻辑来描述和表达所求解的问题本身以及具体问题解决的过程,它的核心是算法和数据结构,面向对象的问题求解则利用符合人们日常思维习惯的方式去模拟所求解的问题,模拟它的构成、特征和各种动态行为,从而得到问题的解答。
它的核心是类、对象和设计模式。
常见的面向过程的编程语言有basic,fortran,pascal, c等。
常见的面向对象的编程语言有smalltalk-80,object pascal, c++, java等。
第二章习题及思考题1. 试分析基本数据类型和引用数据类型的基本特点?答:java的基本数据类型都有固定的数据位,不随运行平台的变化而变化。
引用类型都是用类或对象实现的2. 请使用异或运算符^, 实现两个整数的交换。
答:int x=5,y=19;x=x^y;y=y^x;x=x^y;3. 下列哪个是合法的标识符:( )。
a、a=bb、_helloc、2ndd、chong qing答:b4. 下列哪些是合法的标识符()。
a、newb、classc、intd、const2答:d5. 如果定义有变量double d1, d2=4.0则下列说法正确的是:a、变量d1,d2均初始化为4.0b、变量d1没有初始化,d2初始化为4.0c、变量d1,d2均未初始化d、变量d2没有初始化,d1初始化为4.0答:b6. 判断题:所有的变量在使用前都必须进行初始化。
()答:正确。
7. 内部数据类型byte的取值范围是:( )a、0~65, 535b、(-128)~127c、(-32,768)~32,767d、(-256)~255答:b8. 下列哪些是不能通过编译的语句:()a、int i = 32;b、float f = 45.0;c、double d = 45.0;d、char a=‘c’;答: b9. 判断题:java中数据类型的长度与具体使用的机器相关。
()答:错误。
10. 如果定义有double x;float y;int m,则表达式x*y-m的类型为():a、doubleb、floatc、intd、short答:a11. 如果定义有short s;byte b;char c,则表达式s*b+c的类型为():a、charb、shortc、intd、byte答:c12. 已知int i= 2147483647; ++i;则i的值等于多少()a -2147483648b 2147483647c 2147483648答:a13. 已知byte i= 127; ++i;则i的值等于多少()a -128b 127c 128答:a14. 已知byte i= 127; i=i+1;这两行语句能否编译成功?()答:编译不成功。
15. 执行以下程序段int a=5,b;b=++a*3后b的值为:()a、17b、18c、16d、15答: b16. 如果x=3,y=5,则表达式x|y的值为:()a、15b、8c、1d、7答:d17. 如果int a=3,b=2,则执行a*=b+8后a的值为:()a、20b、14c、30d、16答:c18. 若所用变量都已正确定义,以下选项中,非法的表达式是:()a、a!=4||b==1b、a%3c、a=1/2d、a+32答:c19. 设有定义语句int a[]={1,1,2}; 则以下对此语句的叙述错误的是()。
a、定义了一个名为a的一维数组b、a数组有3个元素c、a数组的下标为1~3d、数组中的每个元素是整型答:c20. 以下数组初始化形式正确的是:()a、int t1[][]={{1,2},{3,4},{5,6}}b、int t2[][]={1,2,3,4,5,6}c、int t3[3][2]={1,2,3,4,5,6}d、int t4[][];t4={1,2,3,4,5,6}答:a第三章习题及思考题1、编写一个程序,用选择法对数组a[]={20,10,55,40,30,70,60,80,90,100}进行从大到小的排序解: public class arraysort{public static void main(string args[]){int array[]={20,10,55,40,30,70,60,80,90,100};int i,j,k,t;int m=array.length;for(i=0;im-1;i++){k=i;for(j=i+1;jm;j++)if(array[j]array[k]) k=j;t=array[k];array[k]=array[i];array[i]=t; }for(i=0;il;i++)system.out.println(array[+i+]=+array[i]); }}2、求两个整数的最大公约数解public class gcd_do{public static void main(string args[]){int a=45,b=21,k=0;system.out.print(gcd(+a+,+b+)=);do{k = a % b;a = b;b = k;} while (k!=0);system.out.println(a);}}3、请打印出如下九九乘法表*| 123456789-------|------------------------------------1| 12| 243| 36 94| 48 12 165| 5 10 15 20 256| 6 12 18 24 30 367| 7 14 21 28 35 42 498| 8 16 24 32 40 48 56 649| 9 18 27 36 45 54 63 72 81解:public class multitable{public static void main(string args[]) {int i,j,n=9;system.out.print(*|);for (i=1;i=n;i++)system.out.print(+i);system.out.print(\n-------|);for (i=1;i=n;i++)system.out.print(----);system.out.println();for (i=1;i=n;i++){system.out.print(+i+|);for (j=1;j=i;j++)system.out.print( +i*j);system.out.println();}}}4、求一元二次方程ax2+bx+c=0的根,要求a、b、c从控制台输入。
mport java.io.*;// import java.awt.*;public class abcxxx{public static void main(string args[]) throws ioexception{bufferedreader keyin=new bufferedreader(new inputstreamreader(system.in)); string x;double a,b,c;double x1,x2,p1,p2,disc,absdisc;system.out.print(ctrl+c to escape:);for(;true;){system.out.println(enter a(enter)\n b(enter)\n c(enter):\n);x=keyin.readline();a=double.parsedouble(x);x=keyin.readline();b=double.parsedouble(x);x=keyin.readline();c=double.parsedouble(x);system.out.println( a= +a + b=+b+ c=+c);【篇二:数据结构课后习题答案第六章】清)习题一、选择题1.有一“遗传”关系:设x是y的父亲,则x可以把它的属性遗传给y。