数据结构C语言第一次作业

数据结构C语言第一次作业
数据结构C语言第一次作业

2011年上半年数据结构(C语言)作业一

一、单选题(每题2分,共20分)

1、链表不具有的特点是___A____。

A.可随机访问任一元素

B. 插入删除不需要移动元素

C. 不必事先估计存储空间

D. 所需空问与线性表长度成正比

2、假设图的顶点数=n, 边数=e,那么当用邻接表表示图时,拓扑排序算法的时间复杂度为____B____。

A. O(n2)

B. O(n+e)

C. O(n*e) D O(n3)

3、广义表((f),(f))的表尾是 C 。

A. f

B. (f)

C. ((f))

D. ()

4、若指针L指向一带头结点的循环单链表的头结点,该表为空表的条件是____D___为真值;

A. !( L -> link );

B. L == (L -> link) -> link;

C. L -> link;

D. L == L -> link;

5、采用分块查找时,若线性表中共有625个元素,查找每个元素的概率相同,假设采用顺序查找来确

定结点所在的块时,每块应分为____B____个结点最佳。

A. 10

B. 25

C. 6

D. 625

6、若线性表最常用的操作是存取第i个元素及其直接前驱的值,则采用__A___存储方式节省时间。

A.顺序表B.双链表

C.单循环链表D.单链表

7、下列排序算法中时间复杂度不受数据初始状态影响,恒为O(n2)的是____C______。

A、堆排序

B、起泡排序

C、直接选择排序

D、快速排序

8、若某链表中最常用的操作是在最后一个结点之后插入一个结点和删除最后一个结点,则采用___D_____存储方式最节省运算时间(假设链表仅设有一个first指针)。

A. 单链表

B. 双链表

C. 单循环链表

D. 带头结点的双循环链表

9、一棵左右子树均不为空的二叉树在后序线索化后(不带头结点的线索化),其空指针域数为

____B_____。

A、0

B、1

C、2

D、不确定

10、某二叉树的先序序列和后序序列正好相反,则该二叉树一定是___B_____的二叉树。

A. 空或只有一个结点

B. 高度等于其结点数(空树高度为0)

C. 任一结点无左孩子

D. 任一结点无右孩子

二、填空作图解答题(第4小题6分,其余9分,共60分)

1.依次插入30,43,21,9,15,51并由空树构成一棵平衡二叉树,画出该平衡二叉树形成过程及

其中序线索二叉树。

2.已知广义表为((), ‘a’, (2,(‘c’,5,8)));试画出该广义表的存储表示。

3.用快速排序对下列关键字进行排序(图示), 基准元素取第一个元素。

70 33 79 67 46 24 30 40

写出两趟排序的结果。

第一趟排序之后: {40,33,67,46,24,30}70{79}或{40,33,30,67,46,24}70{79} ;

第二趟排序之后: {30,33,24}40{67,46}70,79或{24,33,30}40{46,67}70,79 ;

若基准元素按“三者取中”的原则取,则两趟排序的结果是:

第一趟排序之后:

第二趟排序之后: ;

4.已知9个结点的值分别为1~9,请将各结点的值填入下面二叉排序树中:

5.如下图已知哈希表为空,哈希函数为H(Key)= Key MOD 11, 冲突解决方法分别用线性探测再散列

和二次探测再散列。填入在依次插入关键字14,37,25,16之后的情况,并求等概率情况下所要求的平均查找长度。

(1)线性探测再散列

0 1 2 3 4 5 6 7 8 9 10

(2)二次探测再散列

0 1 2 3 4 5 6 7 8 9 10

线性探测再散列查找不成功时的平均查找长度=____21/11 _; 二次探测再散列查找成功时的平均查找长度=___ 6/4=3/2=1.5 _; 6. 已知一字符串bcbdebcecbdcabd ,试设计其赫夫曼编码并画出相应的赫夫曼树。 a :1;b :5;c :4;d :3;e :2;

7. 在下面数组a 中链接存储着一个线性表,其表头“指针”为head==0,可利用空间表第一个元素的

“指针”av==5:

现在依次进行如下操作:1) 在元素56前插入元素78;2)删除元素60;3)删除25;4)在元素56后插入66;5)在元素66前插入88。请问,在进行上面操作后,av== 8 ,并将此时数组a 的内容填入下表:

三、 程序填空题(每空2分,共20分)

1. 下面是仅给出了部分操作的二叉树类的定义和实现。试在程序的每一划线部分填入一条语句或表达式,完成计算度为1的结点个数的操作countNodes1( )。 typedef struct BinNode {

int data;

struct BinNode* leftchild, * rightchild; }BinNode, *BinTree;

void InitBinTree(BinTree &root) //初始化二叉树root {

root=Null; }

a

data link

a

data link

void DestroyBinTree (BinTree &root) //销毁二叉树root {

if (root == NULL) return;

DestroyBinTree(root->leftchild);

DestroyBinTree (root->rightchild);

free(root); }

int countNodes1(BinTree &root) //计算二叉树root 中度为1的结点数 {

if ( ① root!=NULL_ ){ if(root-> leftchild!=NULL && root-> rightchild!=NULL) __ ②

return

countnoders(root->leftchild)+countnodes(root->rightchild)___

__;

else if(root-> leftchild==NULL && _ _③_root->rightchild!=NULL ______ ___) _ _④ return 1+countnodes1(root->rightchild) _____;

else if (root-> leftchild!=NULL && root-> rightchild==NULL )

_ _⑤_return countnodes1(root->rightchild)+1 _____________; } return 0; }

2.下面是某种线性表类的定义和实现(仅给出了部分操作)。函数DE()是用来判断线性表是否对称(即线性表},,,{21n a a a 满足1+-=i n i a a ,??2,,2,1n i =)

。试在程序的每一划线部分填入一条语句或表达式, 完成函数DE()。 typedef struct Node { int data;

struct Node *next, *prev; }Node , * List ;

void InitList (List &L ) //初始化线性表L {

L = (List) malloc(sizeof(Node)); L->next = L; L->prev = L; }

void DestroyList (List &L) //销毁线性表L {

Node *p, *q ; q = L->prev;

while(__ _⑥L!=q ____){ p = q; q = q->prev; free(p);} free(L); }

bool DE (List &L) //判断线性表L 对称否

{

Node *p, *q;

⑦p=l->next ;

q = L ->prev;

while(p->data == q->data) {

if (p==q || ⑧p->next====q ) return TRUE;

else { ⑨p=p->next ; ⑩q=q->next ; } }

return FALSE;

}

数据结构C语言版期末考试试题(有答案)

“数据结构”期末考试试题 一、单选题(每小题2分,共12分) 1.在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行( )。 A. HL=ps p一>next=HL B. p一>next=HL;HL=p3 C. p一>next=Hl;p=HL; D. p一>next=HL一>next;HL一>next=p; 2.n个顶点的强连通图中至少含有( )。 A.n—l条有向边 B.n条有向边 C.n(n—1)/2条有向边 D.n(n一1)条有向边 3.从一棵二叉搜索树中查找一个元素时,其时间复杂度大致为( )。 A.O(1) B.O(n) C.O(1Ogzn) D.O(n2) 4.由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为( )。 A.24 B.48 C. 72 D. 53 5.当一个作为实际传递的对象占用的存储空间较大并可能需要修改时,应最好把它说明为( )参数,以节省参数值的传输时间和存储参数的空间。 A.整形 B.引用型 C.指针型 D.常值引用型· 6.向一个长度为n的顺序表中插人一个新元素的平均时间复杂度为( )。 A.O(n) B.O(1) C.O(n2) D.O(10g2n) 二、填空题(每空1分,共28分) 1.数据的存储结构被分为——、——、——和——四种。 2.在广义表的存储结构中,单元素结点与表元素结点有一个域对应不同,各自分别为——域和——域。 3.——中缀表达式 3十x*(2.4/5—6)所对应的后缀表达式为————。 4.在一棵高度为h的3叉树中,最多含有——结点。 5.假定一棵二叉树的结点数为18,则它的最小深度为——,最大深度为——· 6.在一棵二叉搜索树中,每个分支结点的左子树上所有结点的值一定——该结点的值,右子树上所有结点的值一定——该结点的值。 7.当向一个小根堆插入一个具有最小值的元素时,该元素需要逐层——调整,直到被调整到——位置为止。 8.表示图的三种存储结构为——、——和———。 9.对用邻接矩阵表示的具有n个顶点和e条边的图进行任一种遍历时,其时间复杂度为——,对用邻接表表示的图进行任一种遍历时,其时间复杂度为——。 10.从有序表(12,18,30,43,56,78,82,95)中依次二分查找43和56元素时,其查找长度分别为——和——· 11.假定对长度n=144的线性表进行索引顺序查找,并假定每个子表的长度均

带答案C语言2-10章作业

C语言习题集专业班级 学姓号名 C语言习题集 第2章运算符与表达式 一、选择题 1.若有定义:int a=2,b=3 ; float x=3.5,y= 2.5;则下面表达式的值为( C )。 (float)(a+b)/2+(int)x% (int)y A)3.5 B)35 C)3.500000 D)35.00000 2.若有定义:int x=3 ,y=2; float a=2.5 ,b= 3.5;则下面表达式的值 为( B )。(x+y)%2+(int)a/(int)b A)1.0 B)1 C)2.0 D)2 3.若x和n均是int型变量,且x的初值为12,n的初值为5,则执行下面表达式后x的值为( A )。x%=(n%=2) A)0 B)1 C)2 D)3 4.设有int x=11;则表达式(x++*1/3)的值是( A )。

A)3 B)4 C)11 D)12 5.下列程序的输出结果是( C )。 #include <stdio.h> main( ) { double d=3.2; int x,y; x=1.2; y=(x+3.8)/5.0; printf("%d\n", d*y);} A)3 B)3.2 C)0 D)3.07 6.下列程序执行后的输出结果是(小数点后只写一位)( A )。 #include <stdio.h> main( ) { double d; float f; long l; int i; i=f=l=d=20/3; printf("%d %ld %f %f\n", i,l,f,d); } A)6 6 6.0 6.0 B)6 6 6.7 6.7 C)6 6 6.0 6.7 D)6 6 6.7 6.0 7.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是( C )。 A)1 B)2 C)2.0 D)2.5 8.若变量a,i已正确定义,且i已正确赋值,则合法的语句是( B )。

C语言实训作业1

《C语言通识教育》实训指导书 (第一次) (2学时) 何天成 2016年月日

前言 C 语言是现代最流行的通用程序设计语言之一,它既具有高级程序设计语言的优点,又具有低级程序设计语言的特点,既可以用来编写系统程序,又可以用来编写应用程序。因此,C 语言正在被迅速地推广和普及。上机实验是该课程教学的一个重要环节,因此要求学生做一定数量的上机实验。本指导书可增强同学上机实验的针对性。整个教学和实验中,采用VC++6.0 作为实验环境,强调学生切实培养动手实践能力,掌握调试程序的方法,通过调试理解C语言程序运行的过程以及C 语言的语法规则,为后续的课程设计,计算机等级考试及其他应用做好充分的准备。 本实验指导书通过大量的实例,循序渐进地引导学生做好各章的实验。共计约14次实训课,其中每一讲内容分1、2两次上课。每个实验内容结构如下: (1)实验学时 (2)实验目的 (2)预习要求 (4)实验内容 (5)实验注意事项 (6)思考题 其中思考题属于扩展应用部分,学生可以根据自己的学习情况选择完成。 在实验之前,要求学生对实验作好预习工作。在实验中,学生根据实验指导中的内容进行验证与总结,然后再去完成实验内容中安排的任务。一般要求准备好相关代码,实验课中最好以调试和讨论为主。 实验结束后,应及时先以电子版的形式填写实验报告,然后再以A4纸打印。第3次实训课上交前2次实训报告,要求源程序要以标准格式打印实验报告上都必须粘贴上每个程序的运行结果截图,并在每个程序的输出截图中添加上自己的姓名/学号/专业等信息,以表示程序执行结果确是自己调试,而不是copy 别人的运行结果。通报告具体内容可根据实验内容和实验要求进行增删。实验报告一般要求包含:(1)实验题目 (2)设计思路或算法分析 (3)流程图 (4)程序源代码 (5)程序运行结果及分析

数据结构c语言版试题大全含答案

1 绪论沈阳理工大学应用技术学院信息与控制学院 计算机科学与技术教研室 2011-5-8

数据结构复习题:绪论 单选题 1、在数据结构中,与所使用的计算机无关的数据叫_____结构。 A存储|B物理|C逻辑|D物理和存储 2、在数据结构中,从逻辑上可以把数据结构分成______。 A动态结构和静态结构|B紧凑结构和非紧凑结构|C线性结构和非线性结构|D内部结构和外部结构图 3、数据结构在计算机内存中的表示是指_______。 数据的存储结构|数据结构|数据的逻辑结构|数据元素之间的关系 4、在数据结构中,与所使用的计算机无关的是数据的______结构。 逻辑|存储|逻辑和存储|物理 5、在以下的叙述中,正确的是_____。 线性表的线性存储结构优于链表存储结构|二维数组是其数据元素为线性表的线性表|栈的操作方式是先进先出|队列的操作方式是先进后出 6、在决定选取何种存储结构时,一般不考虑_______。 各结点的值如何|结束个数的多少|对数据有哪些运算|所用编程语言实现这种结构是否方便 7、在存储数据时,通常不仅要存储各数据元素的值,而且还要存储_______。 数据的处理方法|数据元素的类型|数据元素之间的关系|数据的存储方法 8、下面说法错误的是_______。 (1)算法原地工作的含义是指不需要任何额外的辅助空间 (2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法 (3)所谓时间复杂度是指最坏情况下,估计算法执行时间的一个上界 (4)同一个算法,实现语句的级别越高,执行效率越低 (1)|(1)、(2)|(1)、(4)|(3) 9、通常要求同一逻辑结构中的所有数据元素具有相同的特性。这意味着______。 数据元素具有同一特点|不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致|每个数据元素都一样|数据元素所包含的数据项的个数要相等 10、以下说法正确的是_______。 数据元素是数据的最小单位|数据项是数据的基本单位|数据结构是带结构的数据项的集合|一些表面上很不相同的数据可以有相同的逻辑结构 11、____是数据的最小单元,_____是数据的基本单位. 数据项|数据元素|信息项|表元素 12、数据结构是指_____以及它们之间的_____. (1)数据元素(2)结构|(1)计算方法(2)关系|(1)逻辑存储(2)运算|(1)数据映像(2)算法 13、计算机所处理的数据一般具备某种内在的关系,这是的指_____. 数据和数据之间存在的某种关系|元素和元素之间存在某种关系|元素内部具有某种结构|数据项和数据项之间存在某种关系 14、数据的逻辑结构可以分为_____两类. 动态结构和表态结构|紧凑结构和非紧凑结构|线性结构和非线性结构|内部结构和外部结构 15、数据的逻辑结构是指_____关系的整体. 数据元素之间逻辑|数据项之间逻辑|数据类型之间|存储结构之间 16、在存储数据时,通常不仅要存储各数据元素的值,而且还要存储_____. 数据的处理方法|数据元素的类型|数据元素之间的关系|数据的存储方法

带答案C语言2-10章作业

C语言习题集 专业班级 学号 姓名

第2章运算符与表达式 一、选择题 1.若有定义:int a=2,b=3 ; float x=,y=; 则下面表达式的值为(C)。 (float)(a+b)/2+(int)x% (int)y A) B)35 C) D) 2.若有定义:int x=3 ,y=2; float a= ,b=; 则下面表达式的值为( B )。 (x+y)%2+(int)a/(int)b A) B)1 C) D)2 3.若x和n均是int 型变量,且x的初值为12,n的初值为5,则执行下面表达式后x的值为( A )。x%=(n%=2) A)0 B)1 C)2 D)3 4.设有 int x=11; 则表达式 (x++*1/3)的值是( A )。 A)3 B)4 C)11 D)12 5.下列程序的输出结果是( C )。 #include <> main( ) { double d=; int x,y; x=; y=(x+/; printf("%d\n", d*y);} A)3 B)3.2 C)0 D) 6.下列程序执行后的输出结果是(小数点后只写一位)( A )。 #include <> main( ) { double d; float f; long l; int i; i=f=l=d=20/3;

printf("%d %ld %f %f\n", i,l,f,d); } A)6 6 B)6 6 C)6 6 D)6 6 7.若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是( C )。 A)1 B)2 C) D) 8.若变量a,i已正确定义,且i已正确赋值,则合法的语句是( B )。 A)i=int(a) B)++i; C)a=a++=5; D)a=int(i); 9.若执行以下程序段后,c3的值为( A )。 int c1=1,c2=2,c3; c3=c2*c1; A)0 B)0.5 C)1 D)2 10.如下程序的运行结果是( D )。 #include <> main( ) { int y=3,x=3,z=1; printf("%d %d\n",(++x,y++),z+2); } A)3 4 B)4 2 C)4 3 D)3 3 11.能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是( D )。 A)a>=10 or a<=0 B)a>=0|a<=10 C)a>=10 && a<=0 D)a>=10||a<=0 12.设x,y,t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为( C )。 A)不定值B)4 C)3 D)1 13.以下程序的输出结果是( D )。 #include <> main( ) { int a=3;

c语言作业

提交作业规范: (1)你的每次作业的cpp文件放在文件夹中,文件夹命名:学号+姓名+(第几次),(例如:“2014218899张三(第二次)“) (2)上传到文件夹:偶春生\班级。千万别传错。 注意: (1)每做完一题,请用“file”下的“close workspace”关闭工作区,再重新开始做下一题。(2)如果不能联网,请改网关地址:252或253 (3)开机进入“basis” 第一次上机题目: (1)从键盘上输入四个整数,计算并输出四个数的平均值。 (2)输入球的半径,计算并输出球的体积和表面积。 (3)输入一个三位正整数,分别输出该数的个位、十位和百位。(提示:用%运算符提取数字,如123%10=3,用/运算符移除已提取的数字,如123/10 = 12) (4)请测试++、--、关系和逻辑运算符。 第二次上机题目: (1)平面上有一园C:(x-3)2+(y-4)2= 25;输入点P(x,y)的坐标值,判断P点在园C内(包括园上)还是园C外。 (2)输入一英文字符,如果是大写字符,请输出:“您输入的是大写字符。”,如果是小写字符,请输出:“您输入的是小写字符。”, (3)某人某天开始“三天打鱼,两天晒网”,问该人在以后的第n天是打鱼还是晒网?(4)输入火车的出发时间和到站时间,计算火车的运行时间。(出发时间和到站时间用四位整数表示,如1230表示12点30分,假设火车不跨天运行。) (5)从键盘上输入三个整数,分别存放在变量num1, num2, num3中,编写程序对这三个数进行排序,使得num1 <=num2<=num3。 第三次上机题目: (1)输入十个数,分别计算出其中正数、负数的和。 (2)输出1—100内能被3整除或个位数是3的数。 (3)打印出大写英文字母,每行最多输出十个。 (4)输入十个数,求出其中的最小值。 (5)求出e的值,e = 1+1+1/2!+1/3!+…+1/n! (n取10) 第四次上机题目: (1)输出100—1000之间的质数。 (2)任意输入一个数,输出这个数的所有因子。(如输入12,输出1,2,3,4,6,12) (3)输出1-100间的同构数,所谓同构数是指一个数出现在这个数平方的右侧(如6和25均为同构数)。 (4)求x2+y2=2009的整数解。(提示,x,y的范围在[1,45]之间,用双重循环枚举求解)(5)用嵌套循环打印如下图形:

数据结构(c语言版)期末考试复习试题

《数据结构与算法》(c语言版)期末考复习题 一、选择题。 1.在数据结构中,从逻辑上可以把数据结构分为 C 。 A.动态结构和静态结构B.紧凑结构和非紧凑结构 C.线性结构和非线性结构D.内部结构和外部结构 2.数据结构在计算机内存中的表示是指 A 。 A.数据的存储结构B.数据结构C.数据的逻辑结构D.数据元素之间的关系 3.在数据结构中,与所使用的计算机无关的是数据的 A 结构。 A.逻辑B.存储C.逻辑和存储D.物理 4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 C 。A.数据的处理方法B.数据元素的类型 C.数据元素之间的关系D.数据的存储方法 5.在决定选取何种存储结构时,一般不考虑 A 。 A.各结点的值如何B.结点个数的多少 C.对数据有哪些运算D.所用的编程语言实现这种结构是否方便。 6.以下说法正确的是 D 。 A.数据项是数据的基本单位

B.数据元素是数据的最小单位 C.数据结构是带结构的数据项的集合 D.一些表面上很不相同的数据可以有相同的逻辑结构 7.算法分析的目的是 C ,算法分析的两个主要方面是 A 。(1)A.找出数据结构的合理性B.研究算法中的输入和输出的关系C.分析算法的效率以求改进C.分析算法的易读性和文档性(2)A.空间复杂度和时间复杂度B.正确性和简明性 C.可读性和文档性D.数据复杂性和程序复杂性 8.下面程序段的时间复杂度是O(n2) 。 s =0; for( I =0; i

数据结构c语言版期末考试复习试题

《数据结构与算法》复习题 一、选择题。 1在数据结构中,从逻辑上可以把数据结构分为 C 。 A ?动态结构和静态结构B.紧凑结构和非紧凑结构 C.线性结构和非线性结构 D.内部结构和外部结构 2?数据结构在计算机内存中的表示是指_A_。 A .数据的存储结构B.数据结构 C .数据的逻辑结构 D .数据元素之间的关系 3.在数据结构中,与所使用的计算机无关的是数据的A结构。 A .逻辑 B .存储C.逻辑和存储 D .物理 4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储_C A .数据的处理方法 B .数据元素的类型 C.数据元素之间的关系 D .数据的存储方法 5.在决定选取何种存储结构时,一般不考虑A A .各结点的值如何C.对数据有哪些运算 B .结点个数的多少 D .所用的编程语言实现这种结构是否方 6.以下说法正确的是D A .数据项是数据的基本单位 B .数据元素是数据的最小单位 C.数据结构是带结构的数据项的集合 D .一些表面上很不相同的数据可以有相同的逻辑结构 7.算法分析的目的是 C ,算法分析的两个主要方面是 A 。 (1) A .找出数据结构的合理性B.研究算法中的输入和输出的关系 C .分析算法的效率以求改进C.分析算法的易读性和文档性 (2) A .空间复杂度和时间复杂度B.正确性和简明性 &下面程序段的时间复杂度是0( n2) s =0; for( I =0; i

C语言程序设计-作业与答案

《C 语言程序设计》课程作业 适用层次:专升本 培养类型:理工科专业 专业班级: 姓名: 学号: 作业要求:题目可打印,答案要求手写,考试时交作业。 第1次: 1.编写程序,分别计算1到100之间的奇数之和及偶数之和,并输出。 2.输入三角形的三条边a 、b 、c ,如果能构成一个三角形,则计算并输出三角形的周长和面积(结果保留两位小数);否则输出“无效的边长!”。 三角形面积计算公式为: s=))()((c x b x a x x ---,其中,x=(a+b+c)/2。 3.输入一个整数,求它的各位数字之和。例如,123的各位数字之和为6,-63的各位数字之和为9。 4.使用格里高利公式求π的近似值,精确到最后一项的绝对值小于10-6 。 +-+-=71 513114π …… 5.中国古代数学史上著名的“百鸡问题”:鸡翁一,值钱五;鸡母一,值钱三,鸡雏三,值钱一。百钱买百鸡,问翁、母、雏各几何? 6.编写程序,键盘输入正整数n (0= 2 2. 编写一个函数prime(int n),判断一个整数是否是素数,若是素数,函数值返回1,否则返回0。利用该函数找出100-200之间的所有素数。素数是只能被1和自身整除的正整数,2是最小的素数。 3.写一函数int strlength(char *s)求一个字符串的长度。主函数中输入一个字符串,调用函数strlength 求其长度并输出。

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

第一次上机作业(2014): 要求: ?独立完成,上机调试通过后上交 ?作业提交邮箱: ?邮件主题命名:班级学号姓名(第1次作业), 例如:电1301班2王鹏(第1次作业) ?以附件形式将每次作业的所有程序源程序压缩打包后提交,压缩文件命名格式同上。 ?程序必须采用缩进格式 1.大写字母转换成小写字母 从键盘输入一个大写英文字母,输出相应的小写字母。 例:输入G 输出g 2.求平方根 输入一个实数x,计算并输出其平方根(保留1 位小数)。 例:输入17 输出The square root of 17.0 is 4.1 3.温度转换 设计一个程序将华氏温度转换成摄氏温度c = 5/9(f-32) a)输入华氏温度(实型) b)输出的摄氏温度结果保留两位小数 例:Please input Fahrenheit temperature: 76.8 The corresponding Celsius temperature is 24.89 4. 计算旅途时间 输入二个整数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说:他胡说。 已知三个人说的是真话,一个人说的是假话。现在要根据这些信息,找出做了好事的人。 第二次上机作业(2014): 要求: ?独立完成,程序必须采用缩进格式,上机调试通过后上交

最新C语言程序设计作业答案汇总

C语言程序设计作业 答案

C语言程序设计作业答案 作业一 C语言概述参考答案 一、选择题 1-5 ACDCB 二、编程题 main() { printf(“****************************************\n”); printf(“ Hello,world! \n”); printf(“****************************************\n”); } 作业二程序的灵魂——算法参考答案 一、填空题 1、确定性、有效性、有零个或多个输入、有一个或多个输出 2、顺序结构、选择结构、循环结构 3、函数 作业三数据类型、运算符与表达式参考答案 一、选择题 1-5 BDDAB 6-10 BCAAB 11-15 BCADC 16-20 DACCA 21-25 ADDBA 26-30 DDDDD 作业四顺序结构参考答案 一、选择题 1-5 BCDDD 6-10 BDADD 二、填空题

1、【31.415920,3.14159e+01】 2、【c=k】 3、【a=1,b=空格,c=2】 4、 【a=12,b=345】 5、【c=A】 作业五选择结构参考答案 一、选择题 1-5 ADCBC 6-10 BBBBA 11-15 DBAAC 16-17 CB 二、填空题 1.【-1】 2.【3】 3.【4】 4.【11】 5. 【97或'a'】 作业六循环结构参考答案 一、选择题 1-5 CBAAC 6-10 CBCCB 11-15 DBDDB 16-20 BCAAC 21-25 CDBBB 作业七数组参考答案 一、选择题 1-5 CDDAC 6-10 CCDBC 11-15 DDBCA 16-20 DCBDD 21-23 BDB 二、填空题 1、LBLMNP 2、SW* 3、mo 4、a=2,b=1 作业八函数参考答案 一、选择题 1-5 AAACA 二、填空题 1【编程中的main( )函数】2【函数说明部分】和【函数体】 3【–125= –5*5*5】 4【void add (float a, float b)】【float add (float a, float b)】

数据结构(C语言版)期末复习

数据结构(C语言版)期末复习汇总 第一章绪论 数据结构:是一门研究非数值计算程序设计中的操作对象,以及这些对象之间的关系和操作的学科。 数据结构分为:逻辑结构、物理结构、操作三部分 逻辑结构:集合、线性结构、树形结构、图(网)状结构 物理结构(存储结构):顺序存储结构、链式存储结构 算法:是为了解决某类问题而规定的一个有限长的操作序列。 算法五个特性:有穷性、确定性、可行性、输入、输出 评价算法优劣的基本标准(4个):正确性、可读性、健壮性、高效性及低存储量 语句频度的计算。 算法的时间复杂度: 常见有:O(1),O(n),O(n2),O(log2n),O(nlog2n),O(2n) 第二章线性表 线性表的定义和特点: 线性表:由n(n≥0)个数据特性相同的元素构成的有限序列。线性表中元素个数n(n≥0)定义为线性表的长度,n=0时称为空表。 非空线性表或线性结构,其特点: (1)存在唯一的一个被称作“第一个”的数据元素; (2)存在唯一的一个被称作“最有一个”的数据元素; (3)除第一个之外,结构中的每个数据元素均只有一个前驱; (4)除最后一个之外,结构中的每个数据元素均只有一个后继。 顺序表的插入:共计n个元素,在第i位插入,应移动(n-i+1)位元素。 顺序表的删除:共计n个元素,删除第i位,应移动(n-i)位元素。 线性表的两种存储方式:顺序存储、链式存储。 顺序存储 概念:以一组连续的存储空间存放线性表; 优点:逻辑相邻,物理相邻;可随机存取任一元素;存储空间使用紧凑; 缺点:插入、删除操作需要移动大量的元素;预先分配空间需按最大空间分配,利用不充分;表容量难以扩充; 操作:查找、插入、删除等 查找: ListSearch(SqlList L,ElemType x,int n) { int i; for (i=0;i

C语言练习作业及答案

习题一 1、C语言源程序最多可能由____ABCD____________部分组成? A)预处理部分B)变量说明部分 C)函数原型声明部分D)函数定义部分 2、一个完整的C语言源程序最少必须有___C____。 A)若干个主函数B)若干个函数 C)且只能有一个主函数D)一个函数 3、C语言以函数为源程序的基本单位最主要有利于__B_____。 A)程序设计结构化B)程序设计模块化 C)程序设计简单化D提高程序设计有效性 4、要使得C语言编写的程序能够在计算机上运行并得出正确结果,必须要先经过______________B_______________________。 A)编辑和链接B)编译和链接 C)修改和运行D运行并输入数据 5、一个C程序的执行是从______A______。 A)本程序的main函数开始,到main函数结束。 B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C)本程序的main函数开始,到本程序文件的最后一个函数结束 D)本程序文件的第一个函数开始,到本程序main函数结束 6、以下叙述正确的是__A______。 A)在C程序中,main函数必须位于程序的最前面 B)C程序的每行中只能写一条语句 C)C语言本身没有输入输出语句 D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误 7、以下叙述不正确的是___D_____。 A)一个C源程序可由一个或多个函数组成 B)一个C源程序必须包含一个main函数 C)C程序的基本组成单位是函数 D)在C程序中,注释说明只能位于一条语句的后面 8、C语言规定:在一个源程序中,main函数的位置是___A_____。 A)必须在最开始 B)必须在系统调用的库函数的后面 C)可以任意 D)必须在最后

C语言作业2

期待的输出时间限制内存限制#include main() { int a,b,c,q,e,f,g,h,i,j,k,m,n,p,x,y,z; scanf("%1d",&a); scanf("%1d%1d%1d%1d%1d",&b,&c,&q,&e,&f); scanf("%1d%1d%1d%1d%1d",&g,&h,&i,&j,&k); x=a+c+e+g+i+k; y=b+q+f+h+j;

n=m-1; z=n%10; p=9-z; printf("%d\n",p); } H2:数制转换(选作) 成绩: 5 / 折扣: 0.8 我们通常使用的都是十进制的数字,但其实在生活中也经常会使用其它进制。 这个题目会给你两个不同的数字,它们不属于同一进制,要求你计算出当它们分别处于何种进制之中时,两个数字相等。譬如12 和 5 ,在十进制下它们是不等的,但若12 使用 3 进制而5 使用六进制或十进制时,它们的值就是相等的。因此只要选择合适的进制,12 和5 就可以是相等的。 程序的输入是两个数字M 和N( 其十进制的值不超过1000000000) ,它们的进制在2~36 之间。对于十以下的数字,用0~9 表示,而十以上的数字,则使用大写的A~Z 表示。 求出分别在2~36 哪种进制下M 和N 相等。若相等则输出相应的进制,若不等则输出错误信息。当然了,对于多种可能成立的情况,找出符合要求的进制最小的一组就行了。信息的格式见测试用例。 测试输入期待的输出 制 #include"string.h" #include"stdio.h"

{ char a[N],b[N],d[N],e[N],d0[N]; int i,j,o,r,g,h,w,t,l,k,max1,max2; double p[N],q[N]={0},u[N],v[N]={0},c[N],f[N],m,n; for(i=0;i='\x30') c[i]=b[i]-'0'; if(b[i]<='\x5A'&&b[i]>='\x41') c[i]=b[i]-'7'; } for(i=0;i='\x30') f[i]=e[i]-'0'; if(e[i]<='\x5A'&&e[i]>='\x41') f[i]=e[i]-'7'; } max1=c[0]; for(i=1;i

数据结构复习题集答案(c语言版严蔚敏)

人生难得几回搏,此时不搏更待何时? 第1章绪论 1.1 简述下列术语:数据 数据元素、数据对象、数据结构、存储结构、数据类型和抽象数据类型 解:数据是对客观事物的符号表示 在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称 数据元素是数据的基本单位 在计算机程序常作为一个整体进行考虑和处理 数据对象是性质相同的数据元素的集合 是数据的一个子集 数据结构是相互之间存在一种或多种特定关系的数据元素的集合 存储结构是数据结构在计算机中的表示 数据类型是一个值的集合和定义在这个值集上的一组操作的总称 抽象数据类型是指一个数学模型以及定义在该模型上的一组操作 是对一般数据类型的扩展 1.2 试描述数据结构和抽象数据类型的概念与程序设计语言中数据类型概念的区别 解:抽象数据类型包含一般数据类型的概念 但含义比一般数据类型更广、更抽象 一般数据类型由具体语言系统部定义 直接提供给编程者定义用户数据 因此称它们为预定义数据类型 抽象数据类型通常由编程者定义 包括定义它所使用的数据和在这些数据上所进行的操作 在定义抽象数据类型中的数据部分和操作部分时 要求只定义到数据的逻辑结构和操作说明 不考虑数据的存储结构和操作的具体实现 这样抽象层次更高 更能为其他用户提供良好的使用接口 1.3 设有数据结构(D R) 其中

试按图论中图的画法惯例画出其逻辑结构图 解: 1.4 试仿照三元组的抽象数据类型分别写出抽象数据类型复数和有理数的定义(有理数是其分子、分母均为自然数且分母不为零的分数) 解: ADT Complex{ 数据对象:D={r i|r i为实数} 数据关系:R={} 基本操作: InitComplex(&C re im) 操作结果:构造一个复数C 其实部和虚部分别为re和im DestroyCmoplex(&C) 操作结果:销毁复数C Get(C k &e) 操作结果:用e返回复数C的第k元的值 Put(&C k e) 操作结果:改变复数C的第k元的值为e IsAscending(C) 操作结果:如果复数C的两个元素按升序排列 则返回1 否则返回0 IsDescending(C) 操作结果:如果复数C的两个元素按降序排列 则返回1 否则返回0 Max(C &e) 操作结果:用e返回复数C的两个元素中值较大的一个 Min(C &e) 操作结果:用e返回复数C的两个元素中值较小的一个

数据结构(第4版)习题及实验参考答案数据结构复习资料完整版(c语言版)

数据结构基础及深入及考试 复习资料 习题及实验参考答案见附录 结论 1、数据的逻辑结构是指数据元素之间的逻辑关系。即从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。 2、数据的物理结构亦称存储结构,是数据的逻辑结构在计算机存储器内的表示(或映像)。它依赖于计算机。存储结构可分为4大类:顺序、链式、索引、散列 3、抽象数据类型:由用户定义,用以表示应用问题的数据模型。它由基本的数据类型构成,并包括一组相关的服务(或称操作)。它与数据类型实质上是一个概念,但其特征是使用与实现分离,实行封装和信息隐蔽(独立于计算机)。 4、算法:是对特定问题求解步骤的一种描述,它是指令的有限序列,是一系列输入转换为输出的计算步骤。 5、在数据结构中,从逻辑上可以把数据结构分成( C ) A、动态结构和表态结构 B、紧凑结构和非紧凑结构 C、线性结构和非线性结构 D、内部结构和外部结构 6、算法的时间复杂度取决于( A ) A、问题的规模 B、待处理数据的初态 C、问题的规模和待处理数据的初态 线性表 1、线性表的存储结构包括顺序存储结构和链式存储结构两种。 2、表长为n的顺序存储的线性表,当在任何位置上插入或删除一个元素的概率相等时,插入一个元素所需移动元素的平均次数为( E ),删除一个元素需要移动的元素的个数为( A )。 A、(n-1)/2 B、n C、n+1 D、n-1 E、n/2 F、(n+1)/2 G、(n-2)/2 3、“线性表的逻辑顺序与存储顺序总是一致的。”这个结论是( B ) A、正确的 B、错误的 C、不一定,与具体的结构有关 4、线性表采用链式存储结构时,要求内存中可用存储单元的地址( D ) A、必须是连续的 B、部分地址必须是连续的C一定是不连续的D连续或不连续都可以 5、带头结点的单链表为空的判定条件是( B ) A、head==NULL B、head->next==NULL C、head->next=head D、head!=NULL 6、不带头结点的单链表head为空的判定条件是( A ) A、head==NULL B、head->next==NULL C、head->next=head D、head!=NULL 7、非空的循环单链表head的尾结点P满足( C ) A、p->next==NULL B、p==NULL C、p->next==head D、p==head 8、在一个具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是( B ) A、O(1) B、O(n) C、O(n2) D、O(nlog2n) 9、在一个单链表中,若删除p所指结点的后继结点,则执行( A )

C语言作业答案

第一章:第6题 方法一: #include int main() {int a,b,c,max; printf("please input a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if (max int main() {int max(int x,int y); int a,b,c,d; printf("please input a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); d=max(max(a,b),c); printf("The largest number is %d\n",d); return 0; } int max(int x,int y) { return (x>y)?x:y; } 第三章第3题 #include #include int main() {float d=300000,p=6000,r=0.01,m; m=log10(p/(p-d*r))/log10(1+r); printf("m=%6.2f\n",m); return 0;

} 第4题 #include int main() {char c1,c2; c1=97; c2=98; printf("c1=%c,c2=%c\n",c1,c2); printf("c1=%d,c2=%d\n",c1,c2); return 0; } (1)运行时会输出什么信息?为什么? 解:运行时输出: 第1行是将c1,c2按%c的格式输出,97是字符a的ASCII代码,98是字符b的ASCII代码。第2行是将c1,c2按%d的格式输出,所以输出两个十进制整数。 (2)如果将程序第4,5行改为: C1=197; C2=198; 运行时会输出什么信息?为什么? 解:由于Visual C++6.0字符型数据是作为signed char 类型处理的,它存字符的有效范围为0~127,超过此范围的处理方法,不同的系统得到的结果不同,因而用“%c”格式输出时,结果是不可预料的。 (3)如果将程序第3行改为; int c1,c2; 运行时会输出什么信息?为什么? 解:如果给c1和c2赋的值是97和平利用8,则输出结果与(1)相同。如果给c1和c2赋的值是197和198,则用%c输出时,是不可预料的字符。用%d输出时,输出整数197和198,因为它们在int类型的有效范围内。 第5题 #include int main() {int a,b; float x,y; char c1,c2; scanf("a=%d b=%d",&a,&b); scanf("%f %e",&x,&y);

c语言作业答案

No.: Name: 第1讲C语言概述 注:本系列习题中符号表示一串字符中的空格,符号表示下划线,符号ê表示换行回车,即键盘上Enter键。 一、选择题 1. 一个C程序的执行是从A 。 A) 本程序main函数开始,到main函数结束 B) 本程序文件第一个函数开始,到最后一个函数结束 C) 本程序文件第一个函数开始,到本main函数结束 D) 本程序main函数开始,到本程序文件最后一个函 数结束 2. 以下叙述不正确的是D 。 A) 一个C源程序必须包含一个main函数 B) 一个C源程序可由一个或多个函数组成 C) C程序的基本组成单位是函数 D) 在C程序中,注释说明只能位于一条语句的后面 3. 以下叙述正确的是C 。 A) 在对一个C程序进行编译的过程中,可发现注释中 的拼写错误 B) 在C程序中,main函数必须位于程序的最前面 C) 语言本身没有输入输出语句 D) C程序的每行中只能写一条语句 4. 一个C语言程序是由B 。 A) 一个主程序和若干个子程序组成 B) 函数组成 C) 若干过程组成 D) 若干子程序组成 5. 以下叙述中正确的是C 。 A) C语言比其他语言高级 B) C语言可以不用编译就能被计算机识别执行 C) C语言以接近英语国家的自然语言和数学语言作为 语言的表达形式 D) C语言出现的最晚,具有其他语言的一切优点 6. 下列叙述中正确的是D 。 A) C语言编译时不检查语法 B) C语言的子程序有过程和函数两种 C) C语言的函数可以嵌套定义 D) C语言的函数可以嵌套调用 7. 以下叙述中正确的是A 。 A) 构成C程序的基本单位是函数 B) 可以在一个函数中定义另一个函数 C) main函数必须放在其他函数之前 D) 所有被调用的函数一定要在调用之前进行定义

C语言作业2

H1:计算通用产品代码(UPC)的校验位(选作) 许多年来,货物生产商都会把超市售卖的每件商品上放置一个条码。这种被称为通用产品代码(Universal Product Code,缩写UPC)的条码可以识别生产商和产品。超市可以通过扫描产品上的条码来确定支付此项商品的费用。每一个条码由十二位数字构成,通常这些数字会显示在条码下面。例如,包装为26盎司的Morton牌碘化盐所用条码下的数字是:0 24600 01003 0 第一个数字表示商品的种类(0表示大部分的食品杂货,2表示需要称量的货品,3表示药品或和健康相关的商品,而5表示优惠券)。接下来的一组五位数字用来识别生产商。而第二组五位数字则用来区分产品类型(其中包括包装尺寸)。最后一位数字是“校验位”,它可以帮助鉴别先前数字中的错误。如果条码扫描出现错误,那么前十一位数字和最后一位数字可能会不一致,而超市扫描机也会拒绝整个条码。 下面是一种计算校验位的方法:首先把第一位、第三位、第五位、第七位、第九位和第十一位数字相加。然后把第二位、第四位、第六位、第八位和第十位数字相加。接着把第一次加法结果乘以3后再加上第二次加法的结果。随后,再把上述结果减去1。减法后的结果除以10取余数。最后,用9减去上一步骤中得到的余数。现在以Morton碘盐为例,第一组数字的加法是0+4+0+0+0+3=7,而第二组数字的加法是2+6+0+1+0=9。把第一组加法值乘以3后再加上第二组加法值得到的结果是30。再减去1,结果变为29。再把这个值除以10取余数为9。9在减去余数结果9,最终值为0 输入 每次输入三行数据,第一行是UPC的第一位数字,第二行是UPC的第一组五位数字,第三行是UPC的第二组五位数字。 输出 UPC的校验位 页脚内容1

相关文档
最新文档