C语言编程基础:字符数组与结构体解析
需积分: 4 165 浏览量
更新于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 上传
2018-11-28 上传
2012-11-16 上传
youyou123433
- 粉丝: 0
- 资源: 2
最新资源
- 探索AVL树算法:以Faculdade Senac Porto Alegre实践为例
- 小学语文教学新工具:创新黑板设计解析
- Minecraft服务器管理新插件ServerForms发布
- MATLAB基因网络模型代码实现及开源分享
- 全方位技术项目源码合集:***报名系统
- Phalcon框架实战案例分析
- MATLAB与Python结合实现短期电力负荷预测的DAT300项目解析
- 市场营销教学专用查询装置设计方案
- 随身WiFi高通210 MS8909设备的Root引导文件破解攻略
- 实现服务器端级联:modella与leveldb适配器的应用
- Oracle Linux安装必备依赖包清单与步骤
- Shyer项目:寻找喜欢的聊天伙伴
- MEAN堆栈入门项目: postings-app
- 在线WPS办公功能全接触及应用示例
- 新型带储订盒订书机设计文档
- VB多媒体教学演示系统源代码及技术项目资源大全