作业10-数组答案

合集下载

南开24秋学期《数据结构》作业参考二

南开24秋学期《数据结构》作业参考二

24秋学期《数据结构》作业参考1.一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是()选项A:110选项B:108选项C:100选项D:120参考答案:B2.数组Q[n]用来表示一个循环队列,f为当前队列头元素的前一位置,r为队尾元素的位置,假定队列中元素的个数小于n,计算队列中元素的公式为选项A:r-f选项B:(n+f-r)% n选项C:n+r-f选项D:(n+r-f)% n参考答案:D3.链表适用于()查找选项A:顺序选项B:二分法选项C:顺序,也能二分法选项D:随机参考答案:A4.二叉树是非线性数据结构,所以()选项A:它不能用顺序存储结构存储选项B:它不能用链式存储结构存储选项C:顺序存储结构和链式存储结构都能存储选项D:顺序存储结构和链式存储结构都不能使用参考答案:C5.链表是一种采用存储结构存储的线性表选项A:顺序选项B:链式选项C:星式选项D:网状参考答案:B6.线性表L在()情况下适用于使用链式结构实现。

选项A:需经常修改L中的结点值选项B:需不断对L进行删除插入选项C:L中含有大量的结点选项D:L中结点结构复杂参考答案:B7.对有n个记录的表作快速排序,在最坏情况下,算法的时间复杂度是()选项A:O(n)选项B:O(n2)选项C:O(nlog2n)选项D:O(n3)参考答案:B8.串是一种特殊的线性表,其特殊性体现在()选项A:可以顺序存储选项B:数据元素是一个字符选项C:可以链式存储选项D:数据元素可以是多个字符参考答案:B9.广度优先遍历类似于二叉树的()选项A:先序遍历选项B:中序遍历。

C语言程序设计下mooc答案

C语言程序设计下mooc答案

—06.30北京理工大学M O O C C语言程序设计(下)网上作业答案第一周编程作业1、求最大公约数和最小公倍数(15分)题目内容:编写程序,在主函数中输入两个正整数 a,b,调用两个函数 fun1() 和 fun2(),分别求 a 和 b 的最大公约数和最小公倍数,在主函数中输出结果。

输入格式:两个正整数输出格式:最大公约数和最小公倍数输入样例:12,40[回车]输出样例:最大公约数:4[回车]最小公倍数:120[回车]时间限制:500ms内存限制:32000kbCode:#include <stdio.h>int fun1(int m,int n){int r;r=m%n;return r==0?n:fun1(n,r);}int fun2(int m,int n){int t;t=m*n/fun1(m,n);return t;}int main(){ int t,m,n;scanf("%d,%d",&m,&n);if(m<n){t=m;m=n;n=t;}printf("最大公约数:%d\n",fun1(m,n));printf("最小公倍数:%d\n",fun2(m,n));return 0;}2、排序并插入(15分)题目内容:编写程序,在主函数中定义一个有10个元素的整型一维数组,用户输入9个数据,调用函数,对数组元素进行从小到大排序后,在函数中输入一个数,插入到数组中正确的位置,并输出。

输入格式:9个整数和1个整数输出格式:10个整数输入样例:2,3,1,5,6,76,89,31,90[回车]7[回车]输出样例:1,2,3,5,6,7,31,76,89,90[回车]时间限制:500ms内存限制:32000kb Code:#include <stdio.h>int main(){int t,j,i,n[10];for(i=0; i<9; i++){scanf("%d", &n[i]);if(i<8) scanf(",");}scanf("%d",&n[9]) ;for(i=0;i<9;i++){for(j=0;j<= 8-i;j++){if(n[j] > n[j+1]){t = n[j];n[j] = n[j+1];n[j+1] = t;}}}for(i=0;i<10;i++){printf("%d",n[i]);if(i<9) printf(",");}return 0;}第二周编程作业1、最大公约数(15分)题目内容:输入两个整数m,n,用递归算法实现计算两个数的最大公约数。

第四章 数组作业

第四章 数组作业

第四章数组4.1 选择题1. 以下关于数组的描述正确的是( )。

A. 数组的大小是固定的,但可以有不同的类型的数组元素B. 数组的大小是可变的,但所有数组元素的类型必须相同C. 数组的大小是固定的,所有数组元素的类型必须相同D. 数组的大小是可变的,可以有不同的类型的数组元素2. 以下对一维整型数组a的正确说明是( )。

A.int a(10);B. int n=10,a[n];C.int n;D. #define SIZE 10scanf("%d",&n); int a[SIZE];int a[n];3. 在C语言中,引用数组元素时,其数组下标的数据类型允许是( )。

A. 整型常量B. 整型表达式C. 整型常量或整型表达式D. 任何类型的表达式4. 以下对一维数组m进行正确初始化的是( )。

A. int m[10]=(0,0,0,0) ;B. int m[10]={ };C. int m[ ]={0};D. int m[10]={10*2};5. 若有定义:int bb[ 8];。

则以下表达式中不能代表数组元bb[1]的地址的是( )。

A. &bb[0]+1B. &bb[1]C. &bb[0]++D. bb+16. 假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是( )。

A. 3B. 6C. 10D. 207. 若有以下说明:int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};char c='a',d,g;则数值为4的表达式是( )A. a[g-c]B. a[4]C. a['d'-'c']D. a['d'-c]8. 以下程序段给数组所有的元素输入数据,请选择正确答案填入( )。

#include<stdio.h>main(){int a[10],i=0;while(i<10) scanf("%d",________ );┇}A. a+(i++)B. &a[i+1]C. a+iD. &a[++i]9. 执行下面的程序段后,变量k中的值为( )。

C语言上机作业试题5套含答案

C语言上机作业试题5套含答案

第一次上机作业(2021):要求:独立完成,上机调试通事后上交作业提交邮件主题命名:班级学号姓名(第1次作业),例如:电1301班2王鹏(第1次作业)以附件形式将每次作业的所有程序源程序紧缩打包后提交,紧缩文件命名格式同上。

程序必需采用缩进格式1.大写字母转换成小写字母从键盘输入一个大写英文字母,输出相应的小写字母。

例:输入G输出g2.求平方根输入一个实数x,计算并输出其平方根(保留1 位小数)。

例:输入17输出The square root of is3.温度转换设计一个程序将华氏温度转换成摄氏温度c = 5/9(f-32)a)输入华氏温度(实型)b)输出的摄氏温度结果保留两位小数例:Please input Fahrenheit temperature:The corresponding Celsius temperature is4. 计算旅途时刻输入二个整数time1 和time2,表示火车的起身时刻和抵达时刻,计算并输出旅途时刻。

(输入的有效的时刻范围是0000 到2359,不需要考虑起身时刻晚于抵达时刻的情形。

)例:输入712 1411 (起身时刻是7:12,抵达时刻是14:11)输出The train journey time is 6 hours 59 minutes.5. 数字加密输入一个四位数,将其加密后输出。

方式是将该数每一名上的数字加9,然后除以10 取余,做为该位上的新数字,最后将第1 位和第3 位上的数字互换,第2 位和第4 位上的数字互换,组成加密后的新数。

例:输入1257输出The encrypted number is 4601试探题:你可否编程找出谁做的好事?有四位同窗中的一名做了好事,不留名,夸奖信来了以后,校长问这四位是谁做的好事。

⏹A说:不是我。

⏹B说:是C。

⏹C说:是D。

⏹D说:他乱说。

已知三个人说的是实话,一个人说的是谎话。

此刻要依照这些信息,找出做了好事的人。

2020年中国石油大学北京网络学院 C语言程序设计-第二次在线作业 参考答案

2020年中国石油大学北京网络学院 C语言程序设计-第二次在线作业 参考答案

中国石油大学北京网络学院
C语言程序设计-第二次在线作业
参考答案
1.(
2.5分)以下关于数组的描述正确的是()。

A、A. 数组的大小是固定的,但可以有不同的类型的数组元素。

B、B. 数组的大小是可变的,但所有数组元素的类型必须相同。

C、C. 数组的大小是固定的,但所有数组元素的类型必须相同。

D、D. 数组的大小是可变的,但可以有不同的类型的数组元素。

我的答案:C 此题得分:2.5分
2.(2.5分)在定义int a[10];之后,对a的引用正确的是()。

A、A.a[10]
B、B.a[6.3]
C、C.a(6)
D、D.a[10-10]
我的答案:D 此题得分:2.5分
3.(2.5分)以下能正确定义数组并正确赋初值的语句是()。

A、A. int n=5,b[n][n];
B、B. int a[1][2]={{1},{3}};
C、C. int c[2][]={{1,2},{3,4}}
D、D. int a[3][2]={{1,2},{3,4}}。

数据结构作业答案(大连理工大学)

数据结构作业答案(大连理工大学)

作业1. 线性表编程作业:1.将顺序表逆置,要求用最少的附加空间。

参考答案#include <>#include <>#include <>#define LIST_INIT_SIZE 100#define LISTINCREMENT 10#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2typedef int Status;typedef int ElemType;typedef struct{ ElemType *elem;int length;int listsize;}SqList;立单链表 ");printf("2.取元素值 ");printf("3.查找 \n");printf("4.插入 ");printf("5.删除 ");printf("6.显示\n");printf("7.删除大于mink且小于maxk的元素值 ");printf("8.就地升序排序\n");printf("9.就地逆置 ");printf("a.有序表插入 ");printf("q.退出\n");printf("\n请选择操作:");fflush(stdin);scanf("%c",&choice);switch(choice){case '1': printf("请输入单链表中结点个数:");scanf("%d",&n);Create_L2(L,n);break;case '2': printf("请输入元素位序:");scanf("%d",&i);GetElem_L(L,i,e);printf("元素值为:%d\n",e);break;case '3': printf("请输入要查找的元素:");scanf("%d",&e);if(dlbcz(L,e))printf("查找成功!");elseprintf("查找失败。

作业快疯了神奇的数组答案

作业快疯了神奇的数组答案

作业快疯了神奇的数组答案
作业快疯了是一款学习类的单机游戏,神奇的数组就是其中的一个题目类型,很多博士生都不一定解的出来。

比如下面神奇数组,你知道应该填上什么数字吗?
如果你没找到其中的规律,绞尽脑汁也想不出来。

第一组数字四个零等于4,以此可以推出下面两列是正确的。

但是4378中没有0,却等于2,这是为什么呢?我们推断错误了吗?并没有,仔细观察可以看到4378中的8里面有2个0,所以4378等于2。

我们可以得到结论:数字内部有0也算。

所以,我们最后可以得出6098=5,最后的答案是“5”。

华师网络学院作业答案-数据结构判断题

华师网络学院作业答案-数据结构判断题

消除递归不一定需要使用栈。

答案:正确在开散列表中不会出现堆积现象。

答案:正确在链栈上进行进栈操作时,不需判断栈满。

答案:正确算法的正确性,一般不进行形式化的证明,而是用测试来验证。

答案:正确顺序表不需存放指针,链表要存放指针,故链表的存储空间要求总是比顺序表大。

答案:错误如果n个顶点的无向图有n条边,则图中肯定有回路。

答案:正确图G的生成树T是G的子图。

答案:正确数组的基本运算有读、写、插入、删除等。

答案:错误不管树的深度和形态如何,也不可能构造出一棵有100个结点的哈夫曼树。

答案:正确如果根结点的左子树和右子树高度差不超过1,则该二叉树是平衡二叉树。

答案:错误排序的目的是为了方便以后的查找。

答案:正确以中序方式遍历一个堆,则得到一个有序序列。

答案:正确二叉树中可能所有结点的度都小于2。

答案:正确顺序表可以按序号随机存取。

答案:正确在二叉排序树中,即使删除一个结点后马上再插入该结点,该二叉排序树的形态也可能不同。

答案:正确队列在使用中必须设置两个指针,分别指向真正的队头和队尾的位置。

答案:错误数据的逻辑结构和运算集组成问题的数学模型,与计算机无关。

对称矩阵压缩存储后仍然可以随机存取。

答案:正确有向图中顶点i的出度等于邻接矩阵中第i行中1的个数;入度等于第i列中1的个数。

答案:错误树和森林都可转化为二叉树,故对给定的二叉树,不能区分是由树还是森林转换来的。

答案:错误循环队列中入队和出队的节点位置可出现在数组的任一端,已不满足“一端进另一端出”的要求,故实际上已不是队列了。

答案:错误顺序查找法不仅可用于顺序表上的查找,也可用于链表上的查找。

答案:正确有向图中边数等于邻接矩阵中1的个数;也等于邻接表中的边表结点数。

答案:正确直接插入排序是稳定的,而Shell排序就是调用若干趟直接插入排序,故也是稳定的。

答案:错误基数排序不需进行关键字间的比较,故执行时间比基于比较的排序方法要快。

答案:错误由二叉树的先根和后根序列可以唯一确定该二叉树。

中南大学数据结构与算法第5章数组和广义表课后作业答案

中南大学数据结构与算法第5章数组和广义表课后作业答案

第5章数组与广义表习题练习答案5.1请按行及按列优先顺序列出四维数组A2*3*2*3的所有元素在内存中的存储次序,开始结点为a0000。

解:按行优先的顺序排列时,先变化右边的下标,也就是右到左依次变化,这个四维数组的排列是这样的:(将这个排列分行写出以便与阅读,只要按从左到右的顺序存放就是在内存中的排列位置) a0000a0001a0002a0010a0011a0012a0100a0101a0102a0110a0111a0112a0200a0201a0202a0210a0211a0212a1000a1001a1002a1010a1011a1012a1100a1101a1102a1110a1111a1112a1200a1201a1202a1210a1211a1212按列优先的顺序排列恰恰相反,变化最快的是左边的下标,然后向右变化,所以这个四维数组的排列将是这样的,(这里为了便于阅读,也将其书写为分行形式):a0000a1000a0100a1100a0200a1200a0010a1010a0110a1110a0210a1210a0001a1001a0101a1101a0201a1201a0011a1011a0111a1111a0211a1211a0002a1002a0102a1102a0202a1202a0012a1012a0112a1112a0212a02125.2 给出C语言的三维数组地址计算公式。

解:因为C语言的数组下标下界是0,所以Loc(A mnp)=Loc(A000)+((i*n*p)+k)*d其中Amnp表示三维数组。

Loc(A000)表示数组起始位置。

i、j、k表示当前元素的下标,d表示每个元素所占单元数。

5.3设有三对角矩阵A n*n,将其三条对角线上的元素逐行地存储到向量B[0...3n-3]中,使得B[k]=a ij,求:(1)用i , j 表示k的下标变换公式。

(2)用k 表示i,j 的下标变换公式。

国开作业数据结构(本)-单元测试13参考(含答案)

国开作业数据结构(本)-单元测试13参考(含答案)

题目:以下陈述中正确的是()。

选项A:串的长度必须大于零
选项B:串是一种特殊的线性表
选项C:串中元素只能是字母
选项D:空串就是空格串
答案:串是一种特殊的线性表
题目:设有两个串p和q,其中q是p的子串,q在p中首次出现的位置的算法称为()。

选项A:匹配
选项B:求串长
选项C:求子串
选项D:连接
答案:匹配
题目:串是()。

选项A:不少于一个字符的序列
选项B:有限个字符的序列
选项C:任意个字母的序列
选项D:不少于一个字母的序列
答案:有限个字符的序列
题目:串的长度是指()。

选项A:串中所含字符的个数
选项B:串中所含非空格字符的个数
选项C:串中所含不同字符的个数
选项D:串中所含不同字母的个数
答案:串中所含字符的个数
题目:在C语言中,存储字符串“ABCD”需占用()字节。

选项A:5
选项B:3
选项C:2
选项D:4
答案:5
题目:下面关于串的叙述中,不正确的是()。

选项A:串是字符的有限序列
选项B:模式匹配是串的一种重要运算
选项C:空串是由空格构成的串
选项D:串即可以采用顺序存储,也可以采用链式存储
答案:空串是由空格构成的串
题目:串与普通的线性表相比较,它的特殊性体现在()。

北语17春《C#》作业11满分答案

北语17春《C#》作业11满分答案

17春《C#》作业1
试卷总分:100 得分:100
一、单选题 (共 10 道试题,共 40 分)
1. C#数组主要有三种形式,它们是()。

A. 一维数组、二维数组、三维数组
B. 整型数组、浮点型数组、字符型数组
C. 一维数组、多维数组、不规则数组
D. 一维数组、二维数组、多维数组
满分:4 分
正确答案:C
2. 下面属于合法变量名的是()。

A. P_qr
B. 123mnp
C. char
D. x-y
满分:4 分
正确答案:A
3. 枚举类型是一组命名的常量集合,所有整形都可以作为枚举类型的基本类型,如果类型省略,则定义为()。

A. int
B. sbyte
C. uint
D. ulong
满分:4 分
正确答案:A
4. 下列选项中,不属于值类型的是()
A. struct
B. Int32
C. Int
D. string
满分:4 分
正确答案:A
5. 如果左操作数大于右操作数,()运算符返回false。

A. =
B. <
C. <=。

《数据结构》西南大学网上作业题及答案

《数据结构》西南大学网上作业题及答案

1、用某种排序方法对关键字序列(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则所采用的排序方法是()A. 选择排序B. 希尔排序C. 归并排序D. 快速排序本题参考答案: D2、不定长文件是指()A. 文件的长度不固定B. 记录的长度不固定C. 字段的长度不固定D. 关键字项的长度不固定本题参考答案:A3、如下陈述中正确的是()A. 串是一种特殊的线性表B. 串的长度必须大于零C. 串中元素只能是字母D. 空串就是空白串本题参考答案:C4、将长度为n的单链表链接在长度为m的单链表之后的算法的时间复杂度为()A. O(1)B. O(n)C. O(m)D. O(m+n)本题参考答案:A5、设数组data[m]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作后其头指针front值为()A. front=front+1B. front=(front+1)%(m-1)C. front=(front-1)%mD. front=(front+1)%m本题参考答案:D6、计算机算法必须具备输入、输出和等5个特性D. 可行性、确定性和有穷性本题参考答案:D7、有8个结点的无向图最多有28 条边8、不含任何结点的空树是一棵树也是一棵二叉树9、一棵深度为6的满二叉树有31 个分支结点10、把一棵树转换为二叉树后,这棵二叉树的形态是唯一的11、在对n个元素的序列进行排序时,堆排序所需要的附加存储空间是: O(1)12、若需要在O(nlog2n)的时间内完成对数组的排序,且要求排序是稳定的,则可选择的排序方法是归并排序13、设哈希表长m=14,哈希函数H(key)=key MOD 11。

表中已有4个结点:addr(15)=4,addr(38)=5,addr(61)=6,addr(84)=7 其余地址为空,如用二次探测再散列处理冲突,则关键字为49的地址为: 814、设一棵完全二叉树有300个结点,则共有150 个叶子结点15、由3个结点所构成的二叉树有 5 种形态.16、设有两个串p和q,求q在p中首次出现的位置的运算称作:模式匹配17、栈中元素的进出原则是: 后进先出18、链表是一种采用链式存储结构存储的线性表.19、数据在计算机存储器内表示时,物理地址与逻辑地址相同并且是连续的,称之为:顺序存储结构20、一个具有n个顶点的有向图最多有(n×(n+1)/2 )条边21、判断一个循环队列Q(最多n个元素)为满的条件是: Q->front==(Q->rear+1)%n22、在单链表中,指针p指向元素为x的结点,实现删除x的后继的语句是:p->next=p->next->next23、在双向循环链表中,在p指针所指的结点后插入一个指针q所指向的新结点,修改指针的操作是: q->prior=p;q->next=p->next;p->next->prior=q;p->next=q;24、在一棵度为3的树中,度为3的结点个数为2,度为2 的结点个数为1,则度为0的结点个数为( 5 )25、算法指的是解决问题的有限运算序列26、在含n个顶点和e条边的无向图的邻接矩阵中,零元素的个数为n*n-2e27、线性表采用链式存储时,结点的存储地址和头结点的存储地址相连续28、抽象数据类型的组成部分分别为:1. A. 数据对象 B. 存储结构 C. 数据关系 D. 基本操作29、不具有线性结构的数据结构是:1. A. 图 B. 栈 C. 广义表 D. 树30、算法分析的两个主要方面是( )1. A. 正确性 B. 简单性 C. 空间复杂度 D. 时间复杂度31、树在实际应用中采用多种不同的形式表示和存储1. A.√32、完全二叉树一定是满二叉树1. B.×33、在完全二叉树中,叶节点个数比分支节点个数多11. B.×34、任何二叉搜索树中同一层的结点从左到右是有序的(从小到大)。

小学数学四年级 数列数表基础 PPT+作业+答案

小学数学四年级 数列数表基础 PPT+作业+答案

(1)将从 1 开始的连续自然数竖着排列,56÷4=14(列) 所以 56 在第 4 行、第 14 列。
(2)4×(7-1)+2 = 26。
【小结】 忽大忽小,隔空观察,分类分析。
演练5
观察下面的长方形数表,并回答:第6 行、第18 列的数是多少?
7×(18-1)+6 = 125
例题6
下面数表中的数是按照一定规律排列的。请问: ( 1) 111 排在第几行、第几列?(2) 第 19 行、第4 列的数是多少?
例题7
将连续奇数1,3,5,7,9,11,… 每五个一行排成 下面的数表。 请问:(1) “十”字框中的五个数的平均数 与中间数有什么关系? (2) 如果可以上、下、左、右平移 “十”字框,使它框住另外五 个数,那么这五个数的和能等 于 2011 吗?能等于2015 吗?能等 于2045 吗?如果能,请 求出这五个数;如果不能,请说明理由。
作业3
3. 如下表:将从 1 开始的连续自然数填入下面的数表中。请问:这 个数表中每( )个 数为一个最小周期,98 是第( )个周期里的第 ( )个数,即第( )行、第( )列 的数。
【答案】7;14;7;14;7。
作业4 4.小新、小东、小芳、小俞老师和小罗老师五人站成一横排,并 按照如下方式轮流报数。 想一想,最先报第 4 次数的是哪个人? 最先报第 7 次数的又是哪个人?
演练4
请观察下面的长方形数表:请问:152 在该长方形数表里的第 几行、第几列?
按 S 形排152 在第 21+1=22 行,偶数行的数从右向左排列。152 在第 22 行、第 3 列。
例题5
观察下面的长方形数表,并回答: (1) 56 排在第几行、第几列? (2) 第2 行、第7 列的数是多少?

算法分析与设计作业及参考答案

算法分析与设计作业及参考答案

算法分析与设计作业及参考答案作业题目1、请分析冒泡排序算法的时间复杂度和空间复杂度,并举例说明其在什么情况下性能较好,什么情况下性能较差。

2、设计一个算法,用于在一个已排序的整数数组中查找特定元素。

要求算法的时间复杂度为 O(log n)。

3、比较贪心算法和动态规划算法的异同,并举例说明它们在实际问题中的应用。

参考答案一、冒泡排序算法的分析冒泡排序(Bubble Sort)是一种简单的排序算法。

它重复地走访要排序的数列,一次比较两个数据元素,如果顺序不对则进行交换,并一直重复这样的走访操作,直到没有要交换的数据元素为止。

1、时间复杂度最坏情况:数组完全逆序,需要进行 n(n 1) / 2 次比较和交换操作,时间复杂度为 O(n^2)。

最好情况:数组已经有序,不需要进行交换操作,只需要进行 n 1 次比较,时间复杂度为 O(n)。

平均情况:时间复杂度也为 O(n^2)。

2、空间复杂度冒泡排序只在交换元素时使用了临时变量,空间复杂度为 O(1),是一个原地排序算法。

3、性能分析性能较好的情况:当数组规模较小且接近有序时,冒泡排序的性能相对较好。

因为在这种情况下,比较和交换的次数相对较少。

性能较差的情况:当数组规模较大且无序程度较高时,冒泡排序的性能会非常差。

因为需要进行大量的比较和交换操作,时间消耗很大。

例如,对于数组 2, 1, 3, 5, 4,冒泡排序需要经过多次比较和交换才能将其排序为 1, 2, 3, 4, 5。

而对于已经有序的数组 1, 2, 3, 4, 5,冒泡排序只需要进行较少的比较操作就能确定数组已经有序。

二、在已排序数组中查找特定元素的算法设计对于在已排序的整数数组中查找特定元素,我们可以使用二分查找(Binary Search)算法。

二分查找的基本思想是:将数组从中间分成两部分,比较目标元素与中间元素的大小,如果目标元素小于中间元素,则在左半部分继续查找;如果目标元素大于中间元素,则在右半部分继续查找;如果目标元素等于中间元素,则查找成功。

MOOC-SPOC测试题(部分答案)(至数组一章)-C语言-宣城校区2022

MOOC-SPOC测试题(部分答案)(至数组一章)-C语言-宣城校区2022

MOOC-SPOC测试题(部分答案)(至数组一章)-C语言-宣城校区2022第二周作业1.已知:chara;intb;floatc;doubled;执行语句c=a+b+c+d;后,变量c的数据类型是____//CA.intB.doubleC.floatD.char2.已知inti=5;执行语句i+=++i;i的值是____//CA.10B.11C.12D.他答案都不对3.已知int某=5,y=5,z=5;执行语句某%=y+z;后,某的值是____//CA.1B.6C.5D.04.下列可以正确表示字符型常数的是____//BA.297B.'\\t’C.\D.\5.字符串\的长度是____//CA.7B.6C.5D.86.把算术表达式表示为一个C语言表达式,正确的写法是____//DA.–(31.6a某8+1/7)某12B.–31.6某a某8+1.0/7某12C.–(31.6a某8.0+1.0/7.0)某12D.–(31.6某a某8+1.0/7)某1227.温度华氏和摄氏的关系是:C=5(F-32)/9。

已知:floatC,F;由华氏求摄氏的正确的赋值表达式是____//CA.C=5/9某(F-32)B.三个表达式都正确C.C=5某(F-32)/9D.C=5/9(F-32)8.已知inti=10;表达式“20-0<=i<=9”的值是____//BA.0B.1C.20D.199.已知:int某,y;doublez;则以下语句中错误的函数调用是____//DA.canf(\B.canf(\C.canf(\D.canf(\10.已知”inta=5,b=5,c;”,则执行表达式”c=a=a>b”后变量a的值为____//BA.1B.0C.5D.423第四周作业1.下面程序的输出是1.#include2.main()3.{int某=1,y=0,a=0,b=0;4.witch(某)5.{cae1:witch(y)6.{cae0:a++;break;7.cae1:b++;break;8.}9.cae2:a++;b++;10.break;11.}12.printf(\13.}A.a=2,b=1B.a=1,b=0C.a=2,b=2D.a=1,b=1//A2.以下程序的输出结果是1.main()2.{float某=2,y;3.if(某<0)y=0;4.eleif(某<5&&!某)y=1/(某+2);5.eleif(某<10)y=1/某;6.eley=10;7.printf(”%f\\n”,y);348.}A.0.000000B.0.250000C.0.500000D.10.000000//C3.填空(2分)若下列程序执行后t的值为4,则执行时输入a,b的值范围是1.#include”tdio.h”2.main()3.{inta,b,=1,t=1;4.canf(”%d,%d”,&a,&b);5.if(a>0)+=1;6.if(a>b)t+=;7.eleif(a= =b)t=5;8.elet=2某;9.printf(”=%d,t=%d\\n”,,t);10.}b>a,a>0请输入答案45第五周编程作业2.寻找特殊偶数(10分)题目内容:有一种特殊偶数,它每一位上的数字都两两不相同。

数据结构题及参考答案

数据结构题及参考答案

数据结构作业题作业题(一)一、单项选择题1. 从逻辑上可以把数据结构分为( c )两大类。

A.动态结构、静态结构 B.顺序结构、链式结构C.线性结构、非线性结构 D.初等结构、构造型结构2. 链表不具有的特点是( b )A.插入、删除不需要移动元素 B.可随机访问任一元素C.不必事先估计存储空间 D.所需空间与线性长度成正比3.下面程序段的时间复杂度的量级为( d )。

For(i=1;i<=n;i++)For(j=1;j<=I;j++)For(k=1;k<=j;k++)X=x+1;A.O(1) B.O(n)C.O(n²) D.O(n³)4.在一个带头结点的双向循环链表中,若要在p所指向的结点之前插入一个新结点,则需要相继修改(c)个指针域的值。

A.2 B.3C.4 D.65、一个顺序存储线性表的第一个元素的存储地址是90,每个元素的长度是2,则第6个元素的存储地址是( b )。

A.98 B.100C.102 D.1066、判定一个栈s(最多元素为m0)为空的条件是(b)。

A.s-〉top! =0 B.s-〉top= =0C.s-〉top! =m0 D.s-〉top= =m07、循环队列用数组A[m](下标从0到m-1)存放其元素值,已知其头尾指针分别是front和rear,则当前队列中的元素个数是( a )。

A.(rear-front+m)%m B.rear-front+1C.rear-front-1 D. rear-front8、设有两个串S1与S2,求串S2在S1中首次出现位置的运算称作(c)。

A.连接 B.求子串C.模式匹配 D.判子串9、设串S1='ABCDEFG',S2='PQRST',函数con(x,y)返回x和y串的连接串,subs(s,i,j)返回串S的的从序号i的字符开始的j个字符组成的子串,len(s)返回串S的长度,则con(subs(S1,2,len(S2)),subs(S1,len(S2),2))的结果是( d )。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.选择法排序1.1.题目要求:输入一个正整数n (1<n<=10),再输入n 个整数,将它们从大到小排序后输出。

1.2.测试结果(输入结束回车符用<回车>表示,括号内为说明)(1)输入:4 <回车>(n=4)5 1 7 6<回车>输出:After sorted: 7 6 5 1(2)输入:5 <回车>(n=5)5 4 3 2 1 <回车>输出:After sorted: 5 4 3 2 1#include <>int main(void){int i, index, k, n, temp;int a[10];scanf("%d", &n);for(i = 0; i < n; i++)scanf("%d", &a[i]);/*---------*/for(i = 0; i < n-1; i++){index=i;for(k = i+1; k < n; k++)if (a[index]<a[k])index=k;if (index!=i){temp=a[i];a[i]=a[index];a[index]=temp;}}printf("After sorted: ");for(i = 0; i < n; i++)printf("%d ", a[i]);printf("\n");}2.在数组中查找指定的元素2.1.题目要求输入一个正整数n (1<n<=10),再输入n 个整数,将它们存入数组 a 中,再输入一个整数x,然后在数组 a 中查找与x 相同的元素,如果找到,输出x 在数组 a 中对应元素的最小下标,如果没有找到,输出相应信息。

2.2.测试结果(输入结束回车符用<回车>表示,括号内为说明)(1)输入:6<回车>(n=6)1 3 5 7 9 5<回车>5<回车>(x=5)输出:5: a[2](2)输入:4 <回车>(n=4)1 3 5 7<回车>2<回车>(x=2)输出:2: not found#include <>int main(void){int flag, i, n, x;int a[10];scanf("%d", &n);for(i = 0; i < n; i++)scanf("%d", &a[i]);scanf("%d", &x);flag=0;for(i = 0; i < n; i++)if (a[i]==x){flag=1;break;}/*---------*/if(flag != 0)printf( "%d: a[%d]\n", x, i);elseprintf( "%d: not found\n", x);}3.字符串逆序输出3.1.题目要求输入一个以回车结束的字符串(少于80个字符),将它的内容逆序输出。

如"ABCD" 的逆序为"DCBA"。

3.2.测试结果(输入结束回车符用<回车>表示)(1)输入:Welcome to you! <回车>输出:!uoy ot emocleW(2)输入:Happy New Year! <回车>输出:!raeY weN yppaH#include <>int main(void){int i, j, temp;char str[80];i = 0;while((str[i] = getchar( )) != '\n')i++;str[i] = ‘\0’;i--;for(j=0;j<i/2;j++){temp=str[i-j];str[i-j]=str[j];str[j]=temp;}/*---------*/for(i = 0; str[i] != 0; i++)putchar(str[i]);}4.输出字符在字符串中所对应的最大下标4.1.题目要求输入一个字符,再输入一个以回车结束的字符串(少于80个字符),在字符串中查找该字符,如果找到,输出该字符在字符串中所对应的最大下标(下标从0开始);否则输出"Not Found"。

4.2.测试结果(输入结束回车符用<回车>表示)(1)输入:m<回车> (字符'm')programming<回车> (字符串"programming")输出:index = 7 ('m'在"programming"中对应的最大下标是7)(2)输入:a<回车> (字符'a')1234<回车> (字符串"1234")输出:Not Found ("1234"中没有'a')#include ""#define MAXLEN 80int main(void){char cc, ch;char str[MAXLEN];int count, flag, i, index;cc = getchar();getchar();i = 0;while((ch = getchar()) != '\n'){str[i++] = ch;}str[i] = 0;i--;flag=0;for( ;i>=0;i--){if(str[i]==cc){flag=1;index=i;break;}}/*---------*/if(flag != 0)printf("index = %d\n", index);elseprintf("Not Found\n");}5.统计大写辅音字母的个数5.1.题目要求输入一个以回车结束的字符串(少于80个字符),统计并输出其中大写辅音字母的个数。

大写辅音字母:除'A', 'E', 'I', 'O', 'U'以外的大写字母。

5.2.测试结果(输入结束回车符用<回车>表示)(1)输入:HELLO<回车>输出:count = 3 ("HELLO"中有3个大写辅音字母)(2)输入:group <回车> (字符'a')输出:count = 0 ("group"中没有大写辅音字母)#include ""#define MAXLEN 80int main(void){char ch;char str[MAXLEN];int count, i;i = 0;while((ch = getchar()) != '\n'){str[i++]=ch;}str[i] = 0;count=0;for(i=0;str[i]!=0;i++){if (str[i]>'A'&&str[i]<='Z'&&str[i]!='E'&&str[i]!='I'&&str[i]!='O'&&str[i]!='U')count++;}printf("count = %d\n", count);}6.字符串替换6.1.题目要求输入一个以回车结束的字符串(少于80个字符),将其中的大写字母用下面列出的对应大写字母替换,其余字符不变,输出替换后的字符串。

原字母对应字母A ZB YC XD W……X CY BZ A6.2.测试结果(输入结束回车符用<回车>表示)(1)输入:A flag of USA <回车>输出:After replaced: Z flag of FHZ(2)输入:1+2=3 <回车> (字符'a')输出:After replaced: 1+2=3#include ""#include ""#define MAXLEN 80int main(void){char ch;char str[80];int i;i = 0;while((ch = getchar()) != '\n'){str[i] = ch;i++;}str[i] = 0;for(i=0;str[i]!=’\0’;i++){if (str[i]>='A'&&str[i]<='Z')str[i]='Z'-str[i]+'A';}printf("After replaced: ");for(i = 0; str[i] != 0; i++)putchar(str[i]);putchar('\n');}。

相关文档
最新文档