Day 02 笔记与作业

day02

一、vi编辑器

touch test1.c

vi test1.c

vi test2.c 当前路径没有test2.c文件保存后自动生成test2.c

vi编辑器可以新建文件,注意保存

文件相关操作:

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

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

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

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

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

#include <stdio.h> 函数库

// #开头 预处理

// .h文件 头文件

// < .h> 系统配置文件 /usr/include

// " .h" 用户新建的头文件(一般在当前文件夹里)

int main(int argc, const char *argv[])

//main主函数,程序的入口;一个工程中主函数有且仅有一个

// 扩展:命令行参数 argc 命令行输入字符串的个数

// argv 存储命令行输入的字符串

{

printf("hello world\n");

return 0;

// 主函数中的return,是主函数的结束标志 0整数 int

// 函数的返回值要和函数的数据类型保持一致;不要返回值,函数数据类型以定义void

}

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

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

二、vscode编辑器

终端:code 文件夹名字

三、 gcc编译器

3.1 简写:

gcc test.c //编译文件,生成a.out

./a.out

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

./test(可执行文件名)   //运行

3.2 完整编译 4部

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(可执行文件名)

5.运行:

./test

四、计算机的存储单位 1024 1000

计算机最小存储单位 位bit

1字节B/byte)=8bit   只有0 1

1KB=1024B

1MB=1024KB

1GB=1024MB

1TB=1024GB

五、计算机数据表示形式

5.1 数值型数据

二进制 0 1 2

八进制 0-7

十进制 0-9

十六进制 0-9 a-f

a

b

c

d

e

f

10

11

12

13

14

15

5.2 非数值型数据

非数值型数据实际应用,操作的ASCII码值

man手册 一般用来查看一些命令或函数的用法

终端输入:man man

man手册查看ASCII码表:

char字符型 ' '包裹一个字符

'\0'         0   字符串结束标志

'\n'         10  换行

SPACE      32  空格

'0'          48

'A'          65

'a'          97

六、词法符号

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

6.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位:4G         64位:2^48 虚拟内存空间

栈区:由系统自动开辟,自动回收 M

堆区:程序员手动开辟空间(malloc),手动回收(free)

全局区/静态区: .bss .data

常量区:char *p="hello"

6.2 标识符

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

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

2)开头不能是数字

3)不能和关键字重名

4)见名知意

helloWorld:小驼峰命名(除第一个单词外,其他单词开头大写)

HelloWorld:大驼峰命名(每个单词开头大写)

6.3 运算符

算术运算符 逻辑运算符 位运算符 关系运算符 三目运算符 赋值运算符

6.3.1 算术运算符

+ - * / % ++ --

/ 整数相除,结果会向下取整

int a=5/2;

printf("%d\n",a); //打印2

========================

float a=5/2;

printf("%f\n",a);//2.000000 默认打印小数点后六位

==========================

float a=5.0/2;

printf("%f\n",a); //2.500000

==========================

强制转换

float a=(float)5/2; //强制转换只在当前这一行生效

printf("%.1f\n",a); //2.500000 ; %.1f保留一位小数

float b=5/2;

printf("%f\n",b); //2.000000

%取余 5%2==1 13%10=3

只能用于整数运算

++

i++;//i=i+1;

独立成句

   int a=6;

      1)++a;

             printf("%d\n",a); //7

      2)  a++;

             printf("%d\n",a); //7

赋值运算

   int a=6;

      1)int b=++a; //+ =

             printf("%d %d\n",a,b);//7 7

       2int b=a++; //= +

              printf("%d %d\n",a,b);//7 6

打印语句

   int a=6;

         1)printf("%d\n",++a);//7

               printf("%d\n",a);//7

         2)printf("%d\n",a++);//6

               printf("%d\n",a);//7

作业

2.

#include <stdio.h>

int main(int argc, char *argv[])

{

    int a = 10;

    int b = a--; //b=10,a=9

    int c = a + b + 2; //c=21

    int d = (b--) + (++c);//d=10+22,b=9,c=22

    printf("%d\n",d);

}

[单选题] ( B )

A. d = 31

B. d = 32

C. d = 33

D.  d = 34

3.

9

4.

D

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值