明解C语言 入门篇 第七章练习题

本文详细解答了C语言入门书籍第七章的所有练习题,包括7-1至7-11。特别指出7-7题的书中代码错误,long double 应用Lf而非lf,并解释了修正原因。在7-10题中,作者承认思路来源于@野猪力量,并链接到其CSDN博客文章进行参考。
摘要由CSDN通过智能技术生成

7-1

    #include <stdio.h>

int main()
{
   
    int n;

    /* 前提:编译器中char的长度为1,short的长度为2,int的长度为4,long的长度为4,double的长度为8 */
    printf("sizeof 1:                %u\n",sizeof 1);             //1是int型,所以是4
    printf("sizeof -1:               %u\n",sizeof +1);            //+1是int型,所以是4
    printf("sizeof +1:               %u\n",sizeof -1);            //-1是int型,所以是4
    printf("sizeof(unsigned) - 1:    %u\n",sizeof(unsigned) - 1); //unsigned是4,减1后为3
    printf("sizeof(double) - 1:      %u\n",sizeof(double) - 1);   //double是8,减1后为7
    printf("sizeof((double) - 1):    %u\n",sizeof((double) - 1)); //1是int型,double型减int型,结果还是double型,所以为8
    printf("sizeof n + 2:            %u\n",sizeof n + 2);         //n是int型,为4,加2后为6
    printf("sizeof (n + 2):          %u\n",sizeof (n + 2));       //n是int型,int型+int型,结果还是int型,所以为4
    printf("sizeof (n + 2.0):        %u\n",sizeof (n + 2.0));     //n是int型,2.0是double型,int型加double型,结果为double型,所以为8

    return 0;
}

7-2

#include <stdio.h>
#include <math.h>

int main()
{
   
    unsigned x;
    int n;
    printf("请输入无符号整数:");
    scanf("%u",&x);
    printf("请输入位移的位数:");
    scanf("%d",&n);

    printf("左位移后是否相等?\n");
    ((x << n) == (x * pow(2,n))) ? printf("相等\n") : printf("不相等\n");
    printf
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值