数据结构编程练习

发布 2021-05-29 15:07:28 阅读 4478

按要求完成下面的编程,记录并分析输出结果。

运用指针操作数组。

定义一个数组,并初始化;

int m[5]=;

定义一个指针变量,并将数组的首地址赋给它;

int *p=m;

运用指针p输出数组的各元素。

for(int i=0;i<5;++i)

cout<<*p+i)<<

cout<⑵将上面数组的输出改用函数实现,函数的声明如下。

void print(int *m,int n);

变量的引用。

定义一个变量;

int a=9;

定义一个引用,并初始化;

int &b=a;

给b赋一个值;

b=100;

输出a、b的值;

定义一个指针p,并用a的地址初始化p,然后通过引用p修改其指向的内存空间的值;

int *p=&a;

*p=80;

再次输出a、b的值。

引用作为函数参数。

将上述操作改成函数调用,函数定义如下:

void fun(int & e)

void fun(int *p)

定义结构体类型。

定义一个结构体类型用于存储学生信息(含学号、姓名和成绩);

struct student

定义5个student变量,并初始化;

student s1=;

student s2=;

输出这些学生的信息;

cout<<

将s2的成绩改为90;

定义一个数组来保存这些学生信息。

student m[5]=;

统计这些学生的平均成绩,并输出。

将上述操作改为函数调用。

相关函数声明如下:

void print(student m,int n);

int **g(student m,int n);

定义如下两个函数:

int comp(student a,student b)if(>=

return 1;

elsereturn 0;

student findbest(student m,int n,int (*compare)(student,student))

student temp=m[0];

for(int i=1;i

return temp;

编写程序,找出成绩最高的学生,并输出其信息。

数据结构练习

一 选择题 1 若长度为n的线性表采用顺序存储结构,删除它的第i数据元素之前,需要先依次向前移动 个数据元素。a 2.在单链表中,已知q指的结点是p指的结点的直接前驱结点,若在q和p指的结点之间插入一个由s指的结点,则需执行b a.q next p s next p b.s next p q nex...

数据结构练习

第1章。1.从逻辑上可以把数据结构分为。a 动态结构 静态结构 b 顺序结构 链式结构。c.线性结构 非线性结构 d 初等结构 构造型结构。2.关于算法的描述,不正确的是。a.算法最终必须由计算机程序实现。b 所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界。c.健壮的算法不会因非法的输人数...

数据结构练习

一 选择题。1 广度优先遍历的含义是 从图中某个顶点v出发,在访问了v之后依次访问v的各个未被访问过的邻接点,然后分别从这些邻接点出发依次访问它们的邻接点,且 先被访问的顶点的邻接点 先于 后被访问的顶点的邻接点 被访问,直至图中所有已被访问的顶点的邻接点都被访问到是下图的广度优先遍历序列。a.1 ...