易错题

本文列举了多个关于C语言结构体、指针、内存管理及运算符的易错题目,包括结构体变量内存驻留、指针分配、结构体变量定义、输入输出操作、逻辑运算符及表达式求值等方面的问题,详细解析了每个问题的标准答案和陷阱所在,帮助读者巩固C语言基础知识。
摘要由CSDN通过智能技术生成

(1)C语言结构类型变量在程序执行期间( )。

A: 所有成员一直驻留在内存中
B: 只有一个成员驻留在内存中
C: 部分成员驻留在内存
D: 没有成员驻留在内存中

标准答案:A
我的答案:B
解析:c语言结构体类型变量在程序执行期间所有成员一直驻留在内存中。

(2)若要用下面的程序片段使指针变量p指向一个存储整型数据的动态存储单元,则应填入( )。
int *p;
p= ------malloc(sizeof(int));

A: int
B: int *
C: (* int) 
D: (int *)

标准答案:D
我的答案:C
解析:不论p是指向什么类型的指针变量,都可以通过强制类型转换的方法使之类型一致,强制类型转换的格式为(数据类型*)。

(3)以下选项中,能定义s为合法的结构体变量的是( )。
A) typedef struct abc 
{
double a;
char b[10];
}s;

B) struct
{
double a;
char b[10];
}s;
C) struct ABC
{
double a;
char b[10];
}
ABC s;

D) typedef struct ABC
{
double a;
char b[10];
}

A: 在题目描述中
B: 在题目描述中
C: 在题目描述中
D: 在题目描述中

标准答案:B
我的答案:C
解析:本题的考查点是结构体变量的定义。定义一个结构体类型的变量,可采用三种方法:(1)先定义结构体类型再定义变量名;(2)在定义类型的同时定义变量;(3)直接定义结构类型变量,即不出现结构体名;选项B)符合第三种定义方法。故本题答案为B)。

(4)若有说明:long *p, a; 则不能通过scanf语句正确给输入项读入数据的程序段是( )。

A: *p=&a; scanf(“%ld”,p);
B: p=(long *)malloc(8); scanf(“%ld”,p);
C: scanf(“%ld”,p=&a);
D: scanf(“%ld”,&a);

标准答案:A
我的答案:D

(5)设有以下说明语句:
struct lie
{
int a;
float b;
}st;
则下面叙述中错误的是( )。

A: struct是结构类型的关键字
B: struct lie 是用户定义的结构类型
C: st是

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值