c语言错题集

在 C 语言程序中 , 凡是没有出现存储类说明符的变量都是自动类的。 (1分)
T F
正确答案是T
两指针变量相减所得之差是两个指针所指数组元素之间相差的元素个数。 (1分)
T F
正确答案是T:
根据声明int a[10], *p=a; ,下列表达式错误的是(d)。 (2分)
a[9]
p[5]
a++
*p++

以下数组定义中错误的是( )。 (2分)
int x[][3]={0};
int x[2][3]={{1,2},{3,4},{5,6)};
int x[][3]={{1,2,3},(4,5,6)};
int x[2][3]={1,2,3,4,5,6};

单向链表中的每个结点都需要动态分配内存空间。 (1分)
T F

在一个以 h 为头的单向链表中,p 指针指向链尾的条件是()。 (2分)
p->next=h
p->next=NULL
p->next->next=h
p->.data=-1

对于一个头指针为head的带头结点的单链表,判定该表为空表的条件是()。 (2分)
headNULL
head→next
NULL
head→next==head
head!=NULL

在一个单链表head中,若要在指针p所指结点后插入一个q指针所指结点,则执行()。 (2分)
p->next=q->next; q->next=p;
q->next=p->next; p=q;
p->next=q->next; p->next=q;
q->next=p->next; p->next=q;

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

已知有如下C语言代码:(2分)
struct node {
int val;
struct node *next;
} p[3] = { 4, &p[2], 6, &p[0], 5, &p[1] };
其中值为6的表达式是:
p[1].next->val
(&p[0])->next->val
p[2].val
p[2].next->val

设有如下定义的链表,则值为7的表达式是( )。 (1分)
struct st{
int n;
struct st *next;} a[3] = {5, &a[1], 7, &a[2], 9, NULL}, *p = &a;

p->n
(p->n)++
++p->n
p->next->n

关于单向链表说法不正确的是: (2分)
与数据相比,单向链表适合反复进行删除、插入操作
存储空间可以动态的获取和释放
结点的存储空间分两部分,一部分用于存储结点的数据,另一部分用于存储其他结点的指针
单向链表在内存中是连续存储的

函数strcmp从头至尾顺序地将其对应字符比较,遇到两个字符不等时,两个字符相减得到一个int型值,两个字符串完全相同时,则返回0。 (1分)
T F

数组名就是一个指针常量,指向数组的首元素(或者说代表了数组的首地址)。 (2分)
T F

一维数组定义的一般形式如下,其中的类型名指定数组变量的类型。
类型名 数组名[数组长度];
(1分)
T F

以下定义了一个一维数组str,该数组可以存放81个字符型数据。
char str[81];
(1分)
T F

数组定义后,只能引用单个的数组元素,而不能一次引用整个数组。 (1分)
T F

若有定义int a[]={2,4,6,8,10},a[1]和a++表示的含义相同。 (1分)
T F

下哪个定义中的p不是指针,请选择恰当的选项: (2分)
a char **p;
b char (*p)[10];
c char *p[6];
d 给出的三项中,p都是指针

文件的读函数是从输入文件中读取信息,并存放在内存中。(1分)
T F

c语言源程序是文本文件,目标文件和可执行文件是二进制文件。 (1分)
T F

文件指针指向文件缓冲区中文件数据的存取位置。 (1分)
T F

下列关于C语言数据文件的叙述中正确的是____。 (2分)
文件由ASCII码字符序列组成,C语言只能读写文本文件
文件由二进制数据序列组成,C语言只能读写二进制文件
文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件

若fopen()函数打开文件失败,其返回值是( null)。 (1分)
1
-1
NULL
ERROR

利用函数fseek可实现的操作是( )。 (1分)
改变文件指针fp的值
文件的顺序读写
文件的随机读写
以上答案均正确

有一文本文件test.txt,其内容为"cprogram"(不包含引号),以下程序段的运行结果是()。 (2分)
FILE *fp;
char str[20];
if((fp=fopen(“test.txt”,“r”))!=NULL)
str=fgets(str,5,fp); printf("%s",str);
cpro
cprog
prog
cprogram

函数fgetc的作用是从指定文件读入一个字符,该文件的打开方式必须是(c )。 (1分)
只写
追加
读或读写
答案B和C都正确

一个结构类型变量所占的内存空间是其各个成员所占内存空间之和。 (1分)
T F

假设结构指针p已定义并正确赋值,其指向的结构变量有一个成员是int型的num,则语句 *p.num=100; 是正确的。 (1分)
T F

If there is declarationint a[] = {2,4,6,8,10}, p= a; a 's value is the first address of the array, then(p++)'s value is 4. (1分)
T F

对于以下结构定义,++p->str中的++加在____。 (2分)
struct {
int len;
char *str;
} *p;
指针str上
指针p上
str指的内容上
以上均不是

若定义pf为指向float类型变量f的指针,下列语句中__是正确的。 (2分)
float f, *pf = f;
float f, *pf = &f;
float *pf = &f, f;
float f, *pf =0.0;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值