Java编程

陈越数据结构视频网易云课堂

【单选题】有以下变量说明,下面不正确的赋值语句是( )。 int a=5, b=10, c; int * p1 = &a, * p2 = &b;。

.jf就是标签体,可以写成:for(int i=0;i<5;i++)jf.invoke(null);这样写也行,就是默认的也是写给浏览器,重复将标签体。

#!/usr/bin/python# -*- coding: UTF-8 -*-x = int(input(‘x=’))y = int(input(‘y=’))z = int(input(‘z=’))num = [x, y, z]num.sort() # 对列表进行升序排序print ‘这三个数由小到大的顺序为:’,numrnum = [x, y, z] # 对列表进行降序排序rnum.sort(reverse=True)print ‘这三个数由大到小的顺序为:’,rnumAtom   Atom。

陈越数据结构视频网易云课堂

#include #include int main(){int int_num = -1;unsigned int uint_num = (unsigned int)int_num;//强制转换,显式转换printf(“%x %d\n”, int_num, int_num);printf(“%x %u\n”, uint_num, uint_num);system(“pause”);return 0;}。

#include #include int main(){int int_num = -0x12345678;short short_num = (short)int_num;unsigned short unshort_num = (unsigned short)int_num;printf(“int %x %d\n”, int_num, int_num);printf(“short %hx %hd\n”, short_num, short_num);printf(“unshort %hx %hu\n”, unshort_num, unshort_num);system(“pause”);return 0;}。

# coding:utf-8num=int(input(“请输入一个四位整数:”))num=str(num)List=[]for i in range(0,len(num)):a=(int(num[i])+5)%10List.append(a)List[0],List[3]=List[3],List[0]List[1],List[2]=List[2],List[1]print(List[0]*1000+List[1]*100+List[2]*10+List[3])朦胧   朦胧。

� 习题:int a=10;a++;a=a+a;Console.WriteLine(“{0}”,a);执行结果。

i=1,2,?,n-1},请画出此逻辑结构对 应的顺序存储结构和链式存储结构的示意图。 参考答案: 顺序存储结构示意图如下: 0 1 2 ?n-2 n-1 链式存储结构示意图如下: ?5.设一个数据结构的逻辑结构如图 1.9 所示,请写出它的二元组 定义形式。 图 1.9 第 5 题的逻辑结构图 参考答案: 它的二元组定义形式为 b=(d,r),其中 d={k1,k2,k3,k4,k5,k6,k7,k8,k9}, r=k1,k3,k1,k8,k2,k3k2,k4,k2,k5,k3,k9,k4,k6,k4,k7,k5,k6,k8,k9,k9, k7 }。 6.设有函数 f (n)=3n2-n+4,请证明 f (n)=o(n2)。 书 p16 的定义可得 f (n)=o(n2)。 7.请比较下列函数的增长率,并按增长率递增的顺序排列下列函 数: (1) 2100 (2) (3/2)n(3) (4/3)n (4) nn(5) n2/3(6) n3/2 (7) n!(8)n (9) n(10) log2n(11) 1/log2n (12)log2(log2n)(13)nlog2n(14) nlog2n 参考答案: 按增长率递增的排列顺序是: 1/log2n 2100 log2(log2n)log2nn1/2 n2/3 n nlog2n n3/2 nlog2n(4/3)n (3/2)n n! nn 8.试确定下列程序段中有标记符号“*”的语句行的语句频度(其中 n 为正整数)。 ⑴ i=1; k=0; while ( i=n-1) { k += 10 * i; //* i++; } ⑵ i=1; k=0; do { k +=10 * i; //* i++; } while(i=n-1); ⑶ i = 1; k = 0; while (i=n-1) { i++ ; k+= 10 * i; //* } ⑷ k=0; for( i=1; i=n; i++) { for (j=1 ; j=i; j++)k++; //* } ⑸ i=1; j=0; while (i+j=n) { if (ij ) j++ ; //* else i++ ; } ⑹ x=n; y=0; // n 是不小于 1 的常数 while (x=(y+1)*(y+1)) { y++; //* } ⑺ x=91; y=100; while (y0 ) { if (x100 ) { x -= 10; y- -; } //* else x++; ⑻ a=1; m=1; while(an) { m+=a;a*=3;//* } 参考答案: (7) 1100 (8) log3n 二、算法设计题 1.有一个包括 100 个数据元素的数组,每个数据元素的值都是实 数,试编写一个求最大数 据元素的值及其下标的算法,并分析算法的时间复杂度。 参考答案: void max(double[] a) { double max = a[0];// 初始化最大值为数组中的第一个元素 int index = 0;// for (int i = 0; i a.length; i++) { if (max a[i]) { max = a[i]; index = i; } } system.out.println(最大的实数为: + max + \n 其在数组中的下标 为: + index);}此算法的时间复杂度为 o(n) ,其中 n 为数组的长度。 2.试编写一个求一元多项式 pn(x)??axi i?0ni 的值 pn(x0)的算法,并确定算法中每一条语句 的执行次数和整个算法的时间复杂度。输入是 ai(i=0,1,2,?,n-1)和 x0,输出为 pn(x0)。 参考答案: 0 double getpolynomialresult(double[] a, double x) { //a 是多项 式中系数数组 1 double result = 0; 2 double powx = 1;// 临时变量,用于减少计算 x 幂的计算次数 3 for (int i = 0; i a.length; i++) { 4result += a[i] * powx; 5powx *= x; 6} 7 return result; 8} 语句 1~7 的执行次数分别是:1、1、a.length+1、a.length、 a.length、1、1 此算法的时间复杂度为 o(a.length),其中 a.length 也是多项式中的 项数。 三、上机实践题 1.编写一个实现将整型数组中的数据元素按值递增的顺序进行排序 的 java 程序。 参考答案: package ch01exercise; public class exercise1_3_1 { public int[] bubblesort(int[] a) { // a 为待排序的整数数组 int n = a.length; boolean isexchange = true; // 交换标志 for (int i = 0; i n – 1isexchange; i++) { // 最多做 n-1 趟排序 isexchange = false; for (int j = 0; j n – i – 1; j++) {// 对当前无序区进行排序 if (a[j] a[j + 1]) {// 交换数据元素 int temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; isexchange = true; // 发生了交换,故将交换标志置为真 } } if (!isexchange)break; // 本趟排序未发生交换,提前终止算法 } return a; } public static void main(string[] args) { int[] values = { 49, 38, 65, 97, 76, 13, 27, 49 }; system.out.println(排序前数组中数据元素:49 38 65 97 76 13 27 49);system.out.print(排序后数组中数据元素:); exercise1_3_1 e = new exercise1_3_1(); values = e.bubblesort(values); for (int i = 0; i values.length; i++) system.out.print(values[i] + ); } } 运行结果 : 2.设计一个复数类,要求: (1) 在复数内部用双精度浮点数定义其实部和虚部。 给复数的实部,虚部为 0;第 3 个构造函数将两个双精度浮点数分 别赋给复数的实部和虚部。 (3) 编写获取和修改复数的实部和虚部的成员函数。 (4) 编写实现复数的减法、乘法运算的成员函数。 设计一个测试主函数,使其实际运行验证类中各成员函数的正确性。 参考答案: package ch01exercise; //复数类 class complex {【篇二:《数据结构(java 语言版)》试卷 1】考试科目: 《数据结构》 考试形式:闭卷 适应班级:软开 14311439 a. 2,3,4,1,5 b. 2,3,1,4,5 c.5,4,1,3,2d.1,5,4,3,2 11、判断一个 循环队列( m0 为最大队列长度(以元素为单位),front 和 rear 分 别为队列的队头指针和队尾指针 ) 为空队列的条件是( )。 a. front == rearb. front != rear c. front == (rear+1) % m0d. front != (rear+1) % m0一、 单项选择(共 20 题,每题 2 分, 共 40 分)12、判断一个循环 队列( m0 为最大队列长度(以元素为单位),front 和 rear 分别为队列 的队头指针和队尾指针 )1、以下数据结构中哪一个是非线性结构? () 为满队列的条件是()。 a. 队列 b. 栈 c. 二叉树 d. 线性表 a. front== rearb.front!= rear c. front==( rear+1) % m0 d. front!=( rear+1) % m0 2、( )不 是算法的主要特性。 a.输入性 b.输出性 c.有穷性 d.高效性 13、串是一种特殊的线 性表,其特殊性体现在( )。 a.可以顺序存储 b.数据元素是一 个字符 3、( )不是线性表的存储结构。 c.可以链式存储 d.数 据元素可以是多个字符 a.叉链表 b.单链表 c.双向链表 d.循环链表 14、假设 s=“abcaabcaaabca”,t=“bca”,s.indexof (t,3) (其中 3 为索引号, 索引号从 0 开始编号)4、线性表是: 果是( ) a. 一个有限序列,可以为空;b. 一个有限序列,不能为空; a.1 b.5c.10 d.0 c. 一个无限序列,可以为空;d. 一个无序序列, 不能为空 15、二叉树的数据结构描述了数据之间的( )关系。 5、 用链表表示线性表的优点是 ( )。 a.链接关系 b.层次关系 a.便于随机存取 c.网状关系 d.随机关系 b.花费的存储空间较顺序 存储少 c.便于插入和删除 16、( )遍历方法在遍历它的左子树和 右子树后再遍历它自身。 d.数据元素的物理顺序与逻辑顺序相同 a.先序遍历 b. 后序遍历 c. 中序遍历 d. 层次遍历 6、若某线性表中 最常。

Similar Posts

发表评论

邮箱地址不会被公开。 必填项已用*标注