今日份学习日常(习题+梳理)

1.  解析代码分析每一步变量取值

#include <stdio.h>

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

{

        int a = 10;

        int b = a--;

        int c = a + b + 2;

        int d = (b--) + (++c);

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

} [单选题] *

A. d = 31

B. d = 32

C. d = 33

D.  d = 34

答案:B

2.题目如下:

答案:9

3.题目如下:

答案:D

知识梳理:

[1]vi编辑器

touch test1.c    新建一个test1.c的文件

vi test1.c          打开编辑test1.c文件

vi test2.c  当前路径没有test2.c文件 ,则保存(vi编辑器中底层输入:wq!)自动生成test2.c

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

文件相关操作

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

head  test1.c       终端查看文件内容,默认查看

head  -n  test1.c  终端查看文件内容den

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

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

代码运行时出现的提示:

warning警告不影响程序执行

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

[2]vscode编辑器

要在虚拟机终端中打开vscode编辑器可使用以下指令:

code  文件夹名字

[3] gcc编译器

终端中初步使用:

[1]gcc test.c  编译文件,生成a.out文件

输入./a.out指令则可运行生成的可执行文件a.out

[2]若使用gcc test.c -o test(可执行文件名),则可生成指定名称的可执行文件名(此处以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

[4]计算机的存储单位

计算机最小存储单位   位(bit) 

1字节(byte)=8   [0 1]

1KB=1024B   1MB=1024KB   1GB=1024MB   1TB=1024GB

[5] 计算机数据表示形式

数值型数据

(B)二进制       0;1      2:10

(O)八进制       0-7      8:010

(D)十进制       0-9

(H)十六进制    0-9       a-f  [16:0x10]

a~f:10~15

进制转换

● 十进制二进制

1.短除法

2.拆分法   8421

二进制转十进制:8421

● 二转

一位八进制三位二进制

11 010 110--->0326

● 八转

0777--->111 111 111

● 十六

一位十六进制四位二进制

1101 0110--->0xd6

● 十六进制进制

0xab--->10101011

tips:电脑自带计算器可切换程序员模式,进制转换的小工具

非数值型数据

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

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

终端输入man man

man手册查看ASCII

终端输入:man  ASCII

[6] 词法符号

运算符   关键字   标识符   分隔符   标点符号
常见关键词:

存储类型: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

324G 642^48 虚拟内存空间

栈区系统自动开辟自动回收 M

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

全局区/静态区 .bss .data

常量区char *p="hello"

标识符:

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

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

2开头不能

3不能关键字重名

4见名

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

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

运算符:

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

算数运算符:+   -   *    /     %    ++    --

强制转换

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

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

float b=5/2;

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值