C语言day2作业

一、写出下列数据的原、反和补码。

-75:

        原码:1100  1011

        反码:1011  0100

        补码:1011  0101

-96:

        原码:1110 0000

        反码:1001 1111

        补码:1010 0000

-34:

        原码:1010 0010

        反码:1101 1101

        补码:1101 1110

-123:

        原码:1111 1011

        反码:1000 0100

        补码:1000 0101

二、整理思维导图

            day2.pdf

三、分步编译第一个C程序

        分布编译可分为四步:预处理----->编译----->汇编----->链接

        预处理:展开头文件,替换宏定义,删除注释,不检查语法错误,生成一个编译文件

        gcc -E hello.c -o hello.i

        编译:检查语法错误,生成汇编文件

        gcc -S hello.i -o hello.s

        汇编:将汇编文件生成一个二进制文件

        gcc -c hello.c -o hello.o

        链接:链接到程序需要的库文件,生成可执行文件

        gcc hello.o -o hello

四、整理课上宏定义部分代码

        宏定义中的宏替换为无脑替换,不会考虑代码的逻辑,需要自己注意.

        注:可以在定义时加上括号将代码逻辑形成自己想要的逻辑.

1、求下面宏替换的结果:

        #define M 4

        #define N M+4*3

        #define NUM M*N/4+1

        4*4+4*3/4+1 = 20

2、求宏替换NUM 的结果

        #define M 10

        #define N M+7

        #define NUM M+N*N/M+7

        10+10+7*10+7/10+7 = 97

3、使用带参宏实现简易计算器,+、-、*、/、%

    

#include<stdio.h>


#define ADD(a,b) a+b
#define SUB(a,b) a-b
#define MUL(a,b) a*b
#define DIV(a,b) a/b
#define SUR(a,b) a%b

int main(int argc, const char *argv[])
{
    printf("%d\n",ADD(2,6));
    printf("%d\n",SUB(4,1));
    printf("%d\n",MUL(4,2));
    printf("%f\n",(double)DIV(4,2));
    printf("%d\n",SUR(4,2));

    return 0;
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值