LinuxC 7.2 Day2

1.新建文件

        touch file1.c

        vi file1.c都可新建文件,其中vi进入文件编辑

2.文件终端操作

        cat test1.c在终端查看文件的内容

        head test1.c在终端查看文件内容,默认查看前十行

        head -n test1.c 在终端查看文件内容的前n行

        tail test1.c在终端查看文件内容,默认查看后十行

        tail -n test1.c 在终端查看文件内容的后n行

3.报错相关

        warning:警告,不影响程序执行

        error:遇到报错之后编译结束,不会生成可执行文件

4.vscode

        在终端中输入code 文件夹名字可在vscode中打开文件夹

5.gcc编译器

gcc  test.c  编译文件,生成a.out
./a.out
或
gcc  test.c -o test(可执行文件名)
./test

        完整编译分为四步:

1.预处理
展开头文件,替换宏定义,删除注释
gcc  -E  test.c  -o  test.i
2.编译
检查语法问题,有错报错,没有则继续运行生成汇编文件
gcc  -S  test.i  -o  test.s
3.汇编
生成一个不可执行的二进制文件
	gcc  -c  test.s  -o  test.o
4.链接
链接库函数,最终生成二进制可执行文件
gcc test.o  -o  test(可执行文件名)
运行:./test

6.计算机存储单位

        计算机最小存储单位 位bit 字节byte

        1字节=8位 位:0 1

        1KB=1024B 1024

        1MB=1024KB

        1GB=1024MB

        1TB=1024GB

7.计算机数据表示形式

7.1 数值型数据

        二进制 0 1 2:10

        八进制 0-7 8:010

        十进制 0-9

        十六进制 0-9 a-f 16:0x10

a

b

c

d

e

f

10

11

12

13

14

15

  • 十进制转二进制:

1)短除法

bb5c380c8c0a46308389e635b24f650d.png

2)拆分法 8421

3c4160c10ef148bea9f6d41571aad9c8.png

3)计算器--->导航---->程序员

8de8ea337558415390ab4dd5f65466ae.png

  • 二转十 8421

f5d21b4256744c4d909efa177ac76579.png

  • 二转八

        一位八进制用三位二进制转

        11 010 110--->0326

  • 八转二

        0777--->111 111 111

  • 二转十六

        一位十六进制用四位二进制转

        1101 0110---》0xd6

  • 十六进制转二进制

        0xab--->10101011

7.2 非数值型数据

终端输入

man man

可打开man手册

输入

man ascii

可查看ascII表

8d768403573a4123a175dda5af5f3d80.png

8 词法符号

运算符 关键字 标识符 分隔符 标点符号

8.1关键字

存储类型:auto static extern register

数据类型:int char float short long double signed unsigned

构造数据类型:struct enum union

分支:if else switch case default for do while go to break continue

其他:void const sizeof volatile return typedef

共32种

8.2 标识符

在给变量、数组、函数等命名时, 遵循标识符的命名规则:

1)由字母、数字、下划线(_)组成

2)开头不能是数字

3)不能和关键字重名

4)见名知意

作业:

1.

#include <stdio.h>
int main(int argc, char *argv[])
   {
   		int a = 10;
   		int b = a--;			//b=10	
  		int c = a + b + 2;		//a=9,b=10,c=21
   		int d = (b--) + (++c);  //c=21+1=22,d=10+22=32,b=10-1=9
   		printf("%d\n",d);       //d=32
   } 

[单选题] *

A. d = 31

B. d = 32

C. d = 33

D. d = 34

所以选B。

2.

4c70455e350943b1b96ca225bca46336.png

  1. int k = 011;

    • 011是八进制表示,所以它的值实际上是十进制的9
    • 因此,k = 9
  2. printf("%d\n", k++);

    • k++是后递增操作,表示先使用k的当前值,然后再递增k
    • 因此,printf会输出k当前的值(即1
    • 输出之后,k递增1,变为10
  3. return 0;

  • k初始化为八进制的011,即十进制的9
  • printf输出9
  • 之后,k递增为10

最终,程序输出的结果是9。

12760148cfc94895bfcf0fc82c0a0882.png

D

取余只能用于整数运算。

  • 9
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值