0702作业

1.文件梳理

  • 虚拟机终端相关内容

[1]基本内容

用户名:Ubuntu  whoami

主机名:Ubuntu  hostname

:$中间位置 当前路径 默认在家目录~

查看当前路径:pwd

绝对路径:从根目录开始逐层向下查找 /home/text1/file1/

相对路径:以当前位置为参照

$:普通用户

root:超级用户

补充:Linux中一切皆文件

其中有两大特殊位置:

根目录:/

家目录:home/用户名  ~

[2]快捷键

放大终端 ctrl shift +

缩小终端 ctrl -

清屏 ctrl L

历史命令 上下箭头

打开终端

  1.  直接点击
  2.  ctrl shift n 打开终端,路径在当前文件夹
  3.  ctrl alt t 家目录

关闭终端

  1.  直接点击
  2.  ctrl d
  3.  exit

[3]新建文件、查看文件、复制文件、移动文件、切换路径、删除文件

新建:

文件夹:mkdir 文件夹名字

文件:touch 文件名.后缀 文件格式)

注:相同路径下不能新建同名文件夹;会报错

文件:更新文件时间戳

相同路径下,同时新建多个文件/文件夹: 名字中间用空格隔开:

如:mkdir a b c

    Touch text1.c  text2.c  text3.c

新建多层嵌套文件夹

如:mkdir day01/a/b/c -p

查看:

ls 查看当前路径下所有内容(文件名)

ls -a 查看当前路径下所有内容,包括隐藏内容

ls -l 查看当前路径下所有内容详细信息

扩展:ls -l test.c 查看test.c文件的详细信息

内容分析:

如: -       rw-rw-r--  1     Ubuntu  Ubuntu   0    7月 1 10:52     file1.c

文件类型 权限      链接数 用户名  组名    大小  修改时间       文件名

第一个字符:文件类型7种 bcd-lsp

b:块设备文件 /devc:字符设备文件

d:目录文件 文件夹

-:普通文件 .c .h .txt

l:链接文件 <LinuxC高级>

s:套接字文件 <网络编程>

p:管道文件 <IO>

rw-rw-r-- 文件权限 三个一组 共9个

rwx:可读可写可执行 rw-:可读可写不可执行

rwx   rwx  rwx

自己 组内 其他

权限值:r:4 w:2 x:1 -:0

修改文件/文件夹权限:

chmod 777 file1.c

rw- rw-r-- 664

复制

文件: cp 要复制的文件 目标地址

文件夹:cp -r 要复制的文件夹 目标地址

移动

mv 要移动的文件/文件夹 目标地址

重命名:mv 要移动的文件/文件夹 目标地址/新名字

cp和mv区别:

cp之后源文件还在;mv之后源文件不在

重命名:cp -r 要复制的文件夹 目标地址/新名字

使用cp重命名,源文件还在

切换

下一级: cd 文件夹名字

上一级: cd ..

当前: cd .

上一次: cd -

根目录: cd /

家目录: cd ~ 或 cd /home/hq 或 cd 或 cd #

删除

文件: rm 文件名

文件夹:rm -r 文件夹名字

-f 强制删除

扩展:rmdir 只能删除空目录

[4]vi编辑器

打开vi编辑器输入 vi 文件名.文件格式 进入

三种模式:作用)

命令行模式:复制、粘贴、删除、光标移动等打开时默认为该模式)

复制 yy nyy(光标选中y n:行数 复制几行)

删除(剪切) dd ndd

粘贴 p

撤销 u

反撤 ctrl r

光标移动首行 gg

光标移动最后一行首行 G

光标移动行首 0

光标移动行尾 $

插入模式:编辑代码a,i,o任意字母,可从命令行进入插入模式,退出使用esc)

底行模式:保存、退出、复制、分屏、查找、替换等shift:可从命令行换到底行模式)

保存 w  退出 q  保存并退出 wq  强制 !

vsp 分屏本文件

vsp 文件名 分屏打开另外一个文件

查找 /找的东西

替换 s/a1/a2 光标所在行的第一个a1替换成a2

s/a1/a2/g 光标所在行的所有a1替换成a2

%s/a1/a2/g 改变全文

1,$s/a1/a2/g 改变全文

设置行号 set nu

取消 set nonu

取消高亮 nohl

边看代码,边运行底行模式时输入w保存

不看原码,直接运行底行模式时输入wq保存并退出

终端显示文件内容:cat 文件名

补充:vim编辑器配置C语言程序片段

  1.  先找到文件夹:家目录下文件的位置home/../../../

打开其中的c.文件名

  1.  编辑文件 vi c.文件名

注:如果输入vi test2.c 当前路径没有test2.c文件自动生成test2.c

3.文件相关操作:

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

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

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

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

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

4.#include <stdio.h> 函数库

 #开头 预处理

 .h文件 头文件

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

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

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

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

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

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

6.{printf("hello world\n");return 0;}

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

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

注意:编译时:warning:不影响程序执行;  error:编译结束,不会生成可执行文件

[3] gcc编译器

简写编译

方法一:gcc 文件名t.c 编译文件,生成a.out     ./a.out运行文件

方法二:gcc 文件名.c -o 文件名  ;   ./test

完整编译

预处理

展开头文件,替换宏定义,删除注释

gcc -E 文件名.c -o 文件名.i

 编译检查语法问题,有错报错,没有则继续运行生成汇编文件

gcc -S 文件名.i -o 文件名.s

汇编生成一个不可执行的二进制文件

gcc -c文件名.s -o 文件名t.o

 链接链接库函数,最终生成二进制可执行文件

gcc 文件名.o -o 文件名

运行:./文件名

[6]vscode编辑器

终端:code 文件夹名字

[7]计算机的存储单位 1024默认) 1000商家)

计算机最小存储单位位bit

1字节byte)=8位 位:0 1

换算:

1KB=1024B 1024

1MB=1024KB

1GB=1024MB

1TB=1024GB

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

一、数值型数据

二进制 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. 转二

1)短除法一直/2

2)拆分法 8421法)

3)电脑自带计算器——>程序员模式

  1. 二转十 8421
  1. 二转八

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

11 010 110--->0326

  1. 八转二一个一个转)

0777--->111 111 111

  1. 二转十六

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

1101 0110--->0xd6

  1. 十六进制转二进制

0xab--->10101011

二、 非数值型数据

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

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

终端输入:

man man查看一些命令或函数)

man man ascii(查看ascii表内容)

ASCII码表:一些常用内容)

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

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

'\n' 10 换行

SPACE 32 空格

'0' 48

'A' 65

'a' 97

注:A+32 = a

\转义字符 'n'字符n '\n'换行

例:

[9] 词法符号

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

一、关键字

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

二、标识符

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

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

2)开头不能是数字

3)不能和关键字重名

4)见名知意

补充:

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

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

三、运算符

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

1)算术运算符+ - * / % ++ --

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

int a=5/2;

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

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

float a=5/2;

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

float b=2;

printf("%f\n",b);//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;独立成句

++a:先+再打印答案,a++:先打印答案再加

例:

 

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=9+10+2=21

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

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

} [单选题] *

A. d = 31

B. d = 32

C. d = 33

  1.  d = 34

k=011=1001=9

输出为9

D

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值