C程序基础知识二

1.定义一个结构变量,共三个成员分别是字符型、整形和浮点型,则该结构体变量所占内存长度为 7 个字节。定义一个共用体变量,共三个成员分别是字符型、整形和浮点型,则该共用体变量所占内存长度为 4 个字节

解析:共用体内存长度分配是按照内存长度最大变量分配的,而结构体变量内存长度是所有成员加起来的内存长度。

2.在这里插入图片描述

解析:数组pt中的元素是数组t的行首地址,而pt+1指的是pt数组第二个元素的地址,因此*(pt+1)就是t数组的第二行的首地址, *(pt+1)+2就是指t数组第二行第三个元素的地址,所以 *( *(pt+1)+2)就是t[1] [2]。

3.若变量已正确定义,下列程序段输出结果是【】

j=0; 
do {
    
     printf("%d,",j); 
}while ( j++ ); 
printf("%d\n",j);

A)0,1 B) 0,0 C)1,1 D)程序进入无限循环

解析:注意while()括号里的值非零即真

3.二进制、八进制、十进制、十六进制之间的转换(只讲整数)

1)二进制与十进制之间的转换

  • 十进制转二进制:除2取余,比较简单不多说,127 二进制数为 0111 1111.
    在这里插入图片描述

  • 二进制转十进制:把二进制数按权展开、相加即得十进制数
    在这里插入图片描述

2)二进制与八进制之间的转换

  • 二进制转八进制:3位二进制数按权展开相加得到1位八进制数。(注意事项,3位二进制转成八进制是从右到左开始转换,不足时补0)
    在这里插入图片描述

  • 八进制转二进制:八进制数通过除2取余法,得到二进制数,对每个八进制为3个二进制,不足时在最左边补0
    在这里插入图片描述

3)二进制与十六进制直接的转换

  • 二进制转十六进制:与二进制转八进制方法近似,八进制是取三合一,十六进制是取四合一。(注意事项,4位二进制转成十六进制是从右到左开始转换,不足时补0)
    在这里插入图片描述

  • 十六进制转二进制:十六进制数通过除2取余法,得到二进制数,对每个十六进制为4个二进制,不足时在最左边补零
    在这里插入图片描述

4)十进制与八进制和十六进制之间的转换

  • 间接法——把十进制转成二进制,然后再由二进制转成八进制或者十六进制

  • 直接法—把十进制转八进制或者十六进制按照除8或者16取余,直到商为0为止
    在这里插入图片描述
    在这里插入图片描述

  • 八进制或十六进制转换成十进制:把八进制、十六进制数按权展开、相加即得十进制数
    在这里插入图片描述
    5)十六进制与八进制之间的转换

  • 先转成二进制然后再相互转换

  • 先转成十进制然后再相互转换

猜你喜欢

转载自blog.csdn.net/weixin_44337241/article/details/115027861