C语言纠错题集

本文详细解析了C语言中的结构体、链表、指针、文件流和数组的常见错误,提供错误答案与正确答案的对比分析,帮助读者理解和避免编程中的常见陷阱。涵盖了判断题、选择题、多选题及填空题等多种题型,覆盖了结构体定义、指针运算、链表操作、文件操作及数组使用的重点知识点。
摘要由CSDN通过智能技术生成

加黑字体是选择的错误答案,黄色字体是正确答案。

结构体习题纠错

判断题

(1)int (*p)[4]它表示p是一个指针数组,它包含4个指针变量元素。 (1分)
()T ()F
答案:F
分析:int (*p)[4],定义一个数组指针,该指针指向含4个元素的一维数组(数组中每个元素是int型)。

(2)结构体类型本身不占用内存空间,结构体变量占用内存空间。 (1分)
()T ()F
答案:T
分析:结构体类型类似int类型,它们本身不占用内存空间,结构体变量相当于一个int类型的变量a,它们都会占用内存空间。

(3)在定义嵌套的结构类型时,必须先定义成员的结构类型,再定义主结构类型。 (1分)
()T ()F
答案:T
分析:类比其他常用的数据类型,只不过结构类型需要我们定义类型名和成员类型。

选择题

(5)若变量已正确定义并且指针p已经指向某个变量x,则(* p)++相当于___。(2分)
A、p++
B、x++
C、*(p++)
D、&x++
答案:B
分析:(*p)++,考虑运算符等级,先取 *p,然后把 *p的值+1。

(6)对于以下结构定义,++p->str中的++加在___。 (2分)
struct {
int len;
char *str;
} *p;
A、指针str上
B、指针p上
C、str指的内容上
D、以上均不是
答案:A
分析:->的等级大于++的等级,所以先p->str,然后+1。

结构体链表纠错

判断题

(1)单向链表中的每个结点都需要动态分配内存空间。 (1分)
()T ()F
答案:T
分析:因为使用动态分配内存空间可以及时分配储存空间,不象数组等静态内存分配方法那样需要预先分配存储空间

(2)通常使用结构的嵌套来定义单向链表结点的数据类型。 (1分)
()T ()F
答案:T
分析:可以快速查找下个结构体变量。

选择题

(3)在一个以 h 为头的单向链表中,p 指针指向链尾的条件是()。 (2分)

A、p->next=h
B、p->next=NULL
C、p->next->next=h
D、p->.data=-1
答案:D
分析:p指针指向链尾时是NULL,NULL=-1。

(4)对于一个头指针为head的带头结点的单链表,判定该表为空表的条件()。 (2分)
A、head == NULL
B、head→next == NULL
C、head→next == head
D、head!=NULL
答案:B
分析:head→next == NULL,next不指向任何结点,所以该表为空表。

(5)下列算法创建n个元素的带头单链表
typedef struct lnode
{ int data;
struct lnode next;
}lnode,linklist
void create(linklist &head, int n)
{
linklist p; int i;
head=(linklist)malloc(sizeof(lnode));
/此处选项( )/
for(i=n;i>0;i–)
{
p =(linklist)malloc(sizeof(lnode));
scanf(“%d”,&p->data);
/此处选项( )/
/此处选项( )/
}
}。 (2分)
A、head->next=null
B、p->next=head->next
C、head->next=p
D、替换为错误项
答案:C

(6)在一个单链表head中,若要删除指针p所指结点的后继结点,则执行()。 (2分)
A、p=p->next;free( p );
B、p->next=p->next->next; free§;
C、q= p->next q->next=p->next; free(q);
D、q=p->next; p->next=q->next; free(q);
答案:D

(7)完成下列打印带头单链表的各元素的算法(

  • 13
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值