C语言完结篇—》习题补充

追求适度,才能走向成功;人在顶峰,迈步就是下坡;身在低谷,抬足既是登高;弦,绷得太紧会断;人,思虑过度会疯;水至清无鱼,人至真无友,山至高无树;适度,不是中庸,而是一种明智的生活态度。

导读:本篇文章讲解 C语言完结篇—》习题补充,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

目录

🏀1.三大自定义类型作业讲解

🥅习题1:

🥅习题2:

🥅习题3:

🥅习题4:

🥅习题5:

🥅习题6:

🥅习题7: 

🏀2.动态存储

🥅习题1:(难点)

🏀3.文件的打开和关闭作业

🥅习题1:

🥅习题2:

🏀4.预处理和编译

🥅习题1:

🥅习题2:

🥅习题3:(重点)

🥅习题4:(重点)


🏀1.三大自定义类型作业讲解

知识点模糊?自己去补一下哈,《三大自定义类型传送门》

🥅习题1:

C语言完结篇---》习题补充

❤️对于A的大小

C语言完结篇---》习题补充

⭐️先找对齐数,分别是4、2、1、4;从0开始,0-3是a;4-5是b;6和7不是4的倍数跳过,8-11是c;12是d;所以最终结果就是0-12占13个字节,但不是4的倍数,所以最终结果是:16

❤️对于B的大小

C语言完结篇---》习题补充

⭐️先找对齐数,分别是4、2、4、1;从0开始,0-3是a;4-5是b;6是c;7不是4的倍数跳过,8-11是d;所以最终结果就是0-11占12个字节,是4的倍数,所以最终结果是:12

🥅习题2:

C语言完结篇---》习题补充

 ❤️对于stT1的大小

C语言完结篇---》习题补充

⭐️总共占了0-11,12个字节,是4的倍数,最终结果就是:12

  ❤️对于stT2的大小

C语言完结篇---》习题补充

 ⭐️总共占了0-11,12个字节,是4的倍数,最终结果就是:12

 ❤️对于stT3的大小

C语言完结篇---》习题补充

⭐️总共占了0-15,16个字节,是4的倍数,最终结果就是:16

🥅习题3:

C语言完结篇---》习题补充

❤️这里主要考察两个知识点:位段和宏

⭐️对于位段,都是char类型,所以创建时,是一个字节一个字节(8个bit位)进行创建,才开始创建一个字节8个bit位,第一次用掉4个,还剩4个bit位;第二次用掉2个,还剩2个bit位;第三次用一个字节,剩余的2个bit位不够用丢弃,重新创建一个字节;第四次重新创建一个字节,但是只使用了1个bit位;所以最终就占用了3个字节。

⭐️最终结果就是:3*2+3=9

🥅习题4:

C语言完结篇---》习题补充

❤️考的是位段的存储形式

⭐️在VS中,位段中的成员在内存中从右向左分配(从低地址到高地址分配)!

⭐️在VS中,多余的比特位不够用,是直接舍去,开辟新的空间后直接用新的!

⭐️十六进制的形式打印:

C语言完结篇---》习题补充

🥅习题5:

C语言完结篇---》习题补充

❤️考的是联合体的存储形式

⭐️联合变量的大小,至少是最大成员的大小;是14?但是14不是最大对齐数4的倍数,所以最终结果是:16

🥅习题6:

C语言完结篇---》习题补充

❤️考的是联合体的存储形式和大下端问题

⭐️占用同一块内存,并且刚好都是占用2个字节;第一个字节放十六进制39;第二个字节放十六进制38;随着下标的增长,地址是由低到高的,所以左边39是低地址,右边38是高地址;低地址放到右边,高地址放到最左边。

🥅习题7: 

C语言完结篇---》习题补充

❤️考的是枚举

⭐️不赋值默认从0开始,所以enumA = Y1为1;B1是从255后面数量为,所以enumB = B1为257

🏀2.动态存储

知识点模糊?自己去补一下哈,《动态存储和柔型数组》

🥅习题1:(难点)

❤️atoi的使用

⭐️把一个字符串转换成整型

C语言完结篇---》习题补充

❤️atoi的模拟实现(先看一篇大概理清思路) 

C语言完结篇---》习题补充

🏀3.文件的打开和关闭作业

知识点模糊?自己去补一下哈,《文件操作》

❤️getchar只能适用于标准输入流(键盘);并不适用于所有流

🥅习题1:

❤️程序的解读,考察常用的几个文件操作函数理解 

C语言完结篇---》习题补充

🥅习题2:

❤️sscanf是把字符串中读取格式化的数据;sprintf是把格式化的数据写到字符串中
❤️(编译预处理)的作用是将源程序文件进行处理,生成一个中间文件,编译系统对此中间文件进行编译生成目标代码;三个步骤:预编译(预处理)、编译、汇编
❤️在编辑、预处理、编译、链接等阶段最终生成的可执行程序中;(链接)这个阶段可以发现被调用的函数有没有定义
❤️下面哪一个不是指针?

#define INT_PTR int* //相当于替换
typedef int* int_ptr; //定义别名
INT_PTR a, b; //int* a,b;====>a是指针,类型是int;  b不是指针,类型是int
int_ptr c, d; //c,d的类型都是int*指针类型

❤️feof函数不是用来判断文件是否读取结束;而是判断文件结束后是什么原因结束的
❤️读取文本判断是否结束时,fgetc看返回值是否为EOF;fgets看返回值是否为NULL
❤️二进制文件判断读取结束,看实际读取个数是否小于要求读取个数

🏀4.预处理和编译

知识点模糊?自己去补一下哈,《预处理和编译》

🥅习题1:

❤️考察宏的理解,要先整体带入,而不是计算好在带入

C语言完结篇---》习题补充

🥅习题2:

❤️定义宏时一定要注意括号的使用

C语言完结篇---》习题补充

🥅习题3:(重点)

❤️写一个宏,讲一个整数的二进制为的奇数位和偶数位交换

    ⭐️本质:实际上偶数位右移1;奇数位左移1位

    ⭐️思路:取出数据的奇数位,然后左移一位;取出数据的偶数位,然后右移一位;最终相加即可!怎么取出奇数位和偶数位呢?

    ⭐️例如

C语言完结篇---》习题补充

❤️具体宏实现

C语言完结篇---》习题补充

🥅习题4:(重点)

❤️offsetof的使用

C语言完结篇---》习题补充

❤️offsetof利用宏的模拟实现

C语言完结篇---》习题补充

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/128510.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!