c++链表-结点删除
- 格式:doc
- 大小:26.00 KB
- 文档页数:2

int main() { return 0; } struct Node { int Data; Node*next; }; class list { Node">

一、单选题1、链表不具有的特点是()。
A.不必事先估计存储空间B.插入、删除不需要移动元素C.可随机访问任一元素D.所需空间与线性表长度成正比正确答案:C2、链接存储的存储结构所占存储空间()。
A.分两部分,一部分存放结点值,另一部分存放结点所占单元数B.只有一部分,存放结点值C.分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针D.只有一部分,存储表示结点间关系的指针正确答案:C3、链表是一种采用()存储结构存储的线性表。
A.网状B.星式C.链式D.顺序正确答案:C4、有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b,则不能把结点b连接到结点a之后的语句是()。
struct node {char data;struct node *next;} a,b,*p=&a,*q=&b;A.(*p).next=q;B.p.next=&b;C.a.next=q;D.p->next=&b;正确答案:B5、下面程序执行后的输出结果是()。
#include <stdio.h>#include <stdlib.h>struct NODE {int num; struct NODE *next;};int main(){ struct NODE *p,*q,*r;p=(struct NODE*)malloc(sizeof(struct NODE));q=(struct NODE*)malloc(sizeof(struct NODE));r=(struct NODE*)malloc(sizeof(struct NODE));p->num=10; q->num=20; r->num=30;p->next=q;q->next=r;printf("%d",p->num+q->next->num);return 0;}A.30B.40C.10D.20正确答案:B6、下面程序执行后的输出结果是()。
二级 C语言考试试卷(考试说明及第一部分计算机基础知识略)第二部分 C语言程序设计一、选择题(用答题卡答题,答案依次填在21~30答题号内)21. 若有声明语句char s1[10]={0},s2[10]= "books";则能将字符串"books"赋给数组s1保存的表达式是21 。
A. s1=”books”;B. strcpy(s2,s1);C. s1=s2;D. strcat(s1,s2);22. 表达式(a=4*5,b=a*2),b-a,a+=2的值是22 。
A.2 B. 20 C. 22 D. 4223. 以下是一个自定义函数的头部,其中正确的是23 。
A. int fun(int a[ ],b)B. int fun(int a[ ],int a)C. int fun(int * a,int b)D. int fun(char a[ ][ ],int b)24. 以下数组声明语句中正确的是24 。
A.int n,a[n]; B. int a[ ];C. int a[2][3]={{1},{2},{3}};D. int a[ ][3]={{1},{2},{3}};25.已知在某C语言编译系统中表达式sizeof(int)的值是2,如果希望将常量-70000正确地保存在一个变量a中,该变量声明语句应当是25 。
A.int a; B. long int a;C. unsigned int a;D. unsigned long int a;26. 以下声明语句中,用于声明一个行指针变量的是26 。
A. int *p(int);B. int *p;C.int (*p)[3]; D. int (*p)(int);27. 已知A盘根目录下的一个文本数据文件中存储了100个int型数据,若需要修改该文件中已经存在的若干个数据的值,只能调用依次fopen函数,已有声明语句FILE*fp;则fopen 函数的正确调用形式是27 。
《C语言程序设计》课程设计课题表一、A类1.职工信息管理系统设计2.职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。
试设计一职工信息管理系统,使之能提供以下功能:3.1、职工信息录入功能(职工信息用文件保存)--输入4.2、职工信息浏览功能--输出5.3、职工信息查询功能--算法6.查询方式:按学历查询、按职工号查询、条件组合查询7.职工信息删除、修改功能(可选项)8.图书信息管理系统设计9.图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。
10.试设计一图书信息管理系统,使之能提供以下功能:11.1、图书信息录入功能(图书信息用文件保存)--输入12.2、图书信息浏览功能--输出13.3、图书信息查询功能--算法14.查询方式:按书名查询、按作者名查询、条件组合查询15.图书信息的删除与修改(可选项)16.图书管理系统设计17.图书管理信息包括:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等18.功能描述:19.1、新进图书基本信息的输入。
20.2、图书基本信息的查询。
21.3、对撤消图书信息的删除。
22.4、为借书人办理注册。
23.5、办理借书手续。
24.6、办理还书手续25.要求:使用文件方式存储数据。
26.实验设备管理系统设计27.实验设备信息包括:设备编号,设备种类(如:微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期,是否报废,报废日期等。
28.主要功能:29.1、能够完成对设备的录入和修改30.2、对设备进行分类统计31.3、设备的破损耗费和遗损处理32.4、设备的查询33.要求:使用文件方式存储数据。
34.学生信息管理系统设计35.学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。
试设计一学生信息管理系统,使之能提供以下功能:36.1、系统以菜单方式工作37.2、学生信息录入功能(学生信息用文件保存)--输入38.3、学生信息浏览功能--输出39.4、学生信息查询功能--按学号查询、按姓名查询、40.5、学生信息的删除与修改(可选项)41.要求:使用文件方式存储数据。
删除节点的方法在计算机科学中,删除节点是常见的一种操作。
在数据结构中,节点是数据的存储单元,每个节点通常包含一个值和一个指向下一个节点的引用。
当需要删除一个节点时,通常需要先找到该节点,然后将其从数据结构中删除。
本文将介绍几种常见的删除节点的方法,并讨论它们的优缺点。
一、单链表中删除节点单链表是一种常见的数据结构,它由一系列节点组成,每个节点包含一个值和一个指向下一个节点的引用。
在单链表中,删除一个节点通常需要先找到该节点的前一个节点,然后将其指向下一个节点。
具体的步骤如下:1. 遍历单链表,找到需要删除的节点的前一个节点。
2. 将需要删除的节点的引用从前一个节点指向下一个节点。
3. 释放需要删除的节点的内存空间。
下面是一个示例代码:```void deleteNode(Node* head, int value) {Node* prev = NULL;Node* curr = head;while (curr != NULL && curr->value != value) {prev = curr;curr = curr->next;}if (curr != NULL) {if (prev != NULL) {prev->next = curr->next;} else {head = curr->next;}free(curr);}}```二、双向链表中删除节点双向链表与单向链表类似,不同之处在于每个节点不仅有一个指向下一个节点的引用,还有一个指向前一个节点的引用。
在双向链表中删除一个节点,需要将其前一个节点的“下一个”引用指向其后一个节点,同时将其后一个节点的“上一个”引用指向其前一个节点。
具体的步骤如下:1. 遍历双向链表,找到需要删除的节点。
2. 将需要删除的节点的前一个节点的“下一个”引用指向其后一个节点。
3. 将需要删除的节点的后一个节点的“上一个”引用指向其前一个节点。