C语言编程基础:字符数组与结构体解析
需积分: 4 82 浏览量
更新于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语言基础非常有帮助。
1981 浏览量
2012-11-16 上传

youyou123433
- 粉丝: 0
最新资源
- DotNet实用类库源码分享:多年工作经验结晶
- HALCON视觉算法实践指南与实验教程
- LabVIEW摄像头图像采集与显示技术解析
- 全面保护Drupal应用:安全模块与策略指南
- 深入理解Apache Tomcat 6.0及其Web服务器特性
- Qt Monkey工具:自动化测试Qt应用的有效方法
- Swift实现饿了么美团购物车动画教程
- Android易网新闻页面异步加载源码解析与应用
- 飞凌开发板i.MX6下Qt4.85版本WIFI模块测试程序
- 炫酷Android计时器实例解析与源码
- AD7792官方例程解析
- 城市规模图像地理定位算法实现与示例代码
- FlyMe示例应用深度解析:Xamarin.Forms新特性展示
- Linux系统nginx完整离线安装包
- 360免费图片上传系统:全面技术支持与学习资源
- 动态分区分配算法原理与实现详解