错题集

本文纠正了关于C语言的一些常见误解,包括strcmp函数的返回值、数组名的性质、多维数组的表示、指针操作、文件操作、字符指针与字符串常量的比较、return语句的使用以及符号常量的表示。通过这些例子,帮助读者更准确地理解和使用C语言。
摘要由CSDN通过智能技术生成

1.函数strcmp从头至尾顺序地将其对应字符比较,遇到两个字符不等时,两个字符相减得到一个int型值,两个字符串完全相同时,则返回0。
对。我的理解产生了错误。误以为返回值的是ascii码的大小。事实上int大于0则是1,小于则是-1。
2.数组名就是一个指针常量,指向数组的首元素(或者说代表了数组的首地址)。
错。数组名是地址,不是指针常量,它的值可以赋给指针。
3.有说明语句int a[4][5];,则a[2]+3表示 A 。
A.a数组行下标为2、列下标为3的元素的地址
B.0a数组行下标为2、列下标为3的元素的值
C.a数组第2行的首地址
D.a数组第3行的首地址
a[2]表示地址。+3表示地址后移3个元素
4.语句int *p; *p=50;执行时,不会有任何错误。
错。在执行时,*P没有值。printf不出来任何值。5.对于以下结构定义,++p->str中的++加在 A。 (2分)
struct
{
int len;
char *str;
} *p;
A.指针str上
B.指针p上
C.str指的内容上
D.以上均不是
因为p->str是对指针str的引用。
6.在一个以 h 为头的单向链表中,p 指针指向链尾的条件是(A)。
A.p->next=h
B.p->next=NULL
C.p->next->next=h
D.p->.data=-1
p 指针指向链尾那么p即为尾指针,循环链中尾指针下一个指向头指针。
7.对于一个头指针为head的带头结点的单链表,判定该表为空表的条件是(B)。

头指针为head的带头结点意为着头指针指向第一个有意义的元素。当第一个元素为空时。为空表。当没有头指针时,选A。
8.以下哪个定义中的p不是指针,请选择恰当的选项: C
A.char **p;
B.char (*p)[10];
C.char p[6];
D.给出的三项中,p都是指针
[]的优先级高于,所以P先于[]结合,所以P是一个数组。数组里存放的元素都是指针
9.c语言源程序是文本文件,目标文件和可执行文件是二进制文件。
对。只有二进制文件。才能被机器所识别。
10.如果二进制文件a.dat已经存在,现在要求写入全新数据,应以(B)方式打开。
A.“w”
B.“wb”
C.“w+”
D.“wb+”
首先是dat(二进制)文件,必须带b。全新文件,不能有+号,故选B。
11.定义FILE *fp; 则文件指针fp 指向的是(B)。
A.文件在磁盘上的读写位置
B.文件在缓冲区上的读写位置
C.整个磁盘文件
D.文件类型结构体
12.int (*p)[4]它表示p是一个指针数组,它包含4个指针变量元素.
错。p为指向包含4个元素的一维数组的指针变量。它只是一个指针。
13.设变量定义为 int a[2]={1,3}, p=&a[0]+1;,则p的值是( B)。(2分)A.2
B.3<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值