C语言编程基础:字符数组与结构体解析
需积分: 4 14 浏览量
更新于2024-07-29
收藏 250KB DOC 举报
"c语言复习题,用于大一新生复习,包括了单选题,涉及C语言中的数组、字符串、指针、结构体等基础知识。"
C语言是一种基础且强大的编程语言,对于初学者来说,理解和掌握其核心概念至关重要。在这些复习题目中,我们可以看到几个关键知识点:
1. 数组的定义与比较:
- 数组x是一个字符数组,存储了一个字符串"abcdefg",而数组y是一个字符数组,包含单独的字符。在C语言中,字符串以空字符'\0'结束,因此x的长度为8(包括结束符),而y的长度为7。所以选项C是正确的。
2. 字符数组的大小:
- 定义的数组array包含了字符串"chinr",由于字符串末尾隐含一个'\0',所以数组array的长度为7个字节,因此答案是D)7个字节。
3. 合法的数组定义:
- A) 不正确,因为字符串常量应该用char类型数组接收。
- B) 正确,初始化了一个包含5个元素的整型数组,并给出了所有元素的值。
- C) 不正确,应该用char类型数组来接收字符串常量。
- D) 正确,定义了一个字符数组并给出了初始值。所以,正确答案是BD。
4. 对于字符数组和整型数组的操作:
- 描述A、B、C都是正确的,只有D不正确,因为虽然不能直接使用赋值运算符"="对字符型数组进行整体赋值,但可以通过库函数如`strcpy()`进行字符串的复制。
5. 字符串长度和数组大小:
- 在这个程序中,字符串`s`包含了一个换行符`\n`、数字`123`和一个反斜杠`\`,所以其长度是6(不包括结束的空字符)。而`sizeof(s)`会返回整个字符数组的大小,包括结束的空字符,所以大小是7字节。答案是B)6,7。
6. 输入数据:
- 要使`a`中存放字符串"1234",`b`中存放字符'5',应按照指定格式输入,即输入数据的形式应该是`a=1234<空格>b=5`。
7. `typedef`的使用:
- `typedef struct S {int g; char h;} T;`定义了一个新的类型名T,它代表了包含一个int和一个char的结构体。因此,选项B是正确的,可以用T定义结构体变量。
8. 指针和类型定义:
- `typedef int *INTEGER`定义了INTEGER为指向int的指针类型。因此,`p`是基类型为int的指针变量,选项B正确;`q`也是基类型为int的指针变量,选项C正确。而选项D说可以用INTEGER代替int类型名,这是不正确的,因为INTEGER是一个指针类型,不是基本类型。
9. 变量a的内存占用:
- 这取决于结构体A的大小。结构体A中有一个int型成员c,占用4字节,然后是一个联合体U,它包含了三种可能的数据类型,但它们共用同一块内存区域,所以只占用最大类型(long)的大小,即8字节。但由于结构体的对齐规则,通常结构体会在成员大小的整数倍基础上增加一些额外字节。在这个问题中,没有具体说明对齐规则,所以无法确定确切的字节数。
10. 结构体指针:
- 要使指针`p`指向结构体`data`中的成员`n`,正确赋值语句是`p = &data.n;`。
通过解答这些问题,我们可以回顾C语言的基础知识,包括数组、字符串、指针、结构体和联合体的用法以及类型定义。这对于巩固C语言基础非常有帮助。
2007-12-21 上传
2023-06-26 上传
2023-07-05 上传
2023-05-14 上传
2023-08-30 上传
2023-07-08 上传
2023-07-19 上传
youyou123433
- 粉丝: 0
- 资源: 2
最新资源
- AirKiss技术详解:无线传递信息与智能家居连接
- Hibernate主键生成策略详解
- 操作系统实验:位示图法管理磁盘空闲空间
- JSON详解:数据交换的主流格式
- Win7安装Ubuntu双系统详细指南
- FPGA内部结构与工作原理探索
- 信用评分模型解析:WOE、IV与ROC
- 使用LVS+Keepalived构建高可用负载均衡集群
- 微信小程序驱动餐饮与服装业创新转型:便捷管理与低成本优势
- 机器学习入门指南:从基础到进阶
- 解决Win7 IIS配置错误500.22与0x80070032
- SQL-DFS:优化HDFS小文件存储的解决方案
- Hadoop、Hbase、Spark环境部署与主机配置详解
- Kisso:加密会话Cookie实现的单点登录SSO
- OpenCV读取与拼接多幅图像教程
- QT实战:轻松生成与解析JSON数据