粤嵌学习笔记(五)

本文介绍了Linux操作系统的特点及常用命令,并深入讲解了C语言的基础知识,包括数据类型、运算符、分支与循环结构等。

一.Linux 介绍

0.1Linux是什么?

Linux是一个开源、免费的操作系统 , 其稳定性 、 安全性 、 处理高并发的能力
已经受到了业界的认可。

目前大多数企业级的应用甚至集群项目部署都运行在Linux操作系统之上。

很多软件公司 , 在考虑到开发成本都会首选Linux , 是中国软件公司最认可的操作系统

0.2Linux发行的版本有哪些?

Ubuntu(乌班图) 、 Red Hat (红帽) 、CentOS

1、软件介绍

  • VMware — 虚拟机 就是一台虚拟的计算机

  • Ubuntu — 操作系统 是基于Linux框架开发的

  • notepad++ – 编辑软件

2、设置共享目录

3、在Linux下的一些基本命令

  • cd 跳转目录

  • cd + /带路径的目录名/目录名或者文件夹/ 例如:cd /mnt/hgfs/

  • cd … 跳转到上一个路径

  • ls 列出当前目录下所有的文件

  • 创建文件 touch + 文件名 例如: touch hello.c

  • 删除文件 rm + 文件名 例如 : rm hello.c

  • 创建目录 mkdir + 目录名 例如:mkdir + 01_04

  • 删除目录 rm + 目录名 -r 例如:rm 01_04 -r

    练习:

    把上面的这些指令 , 尝试着实现一下

4.在Linux下编辑代码

用gcc编辑器

gcc + ***.c 默认生成一个可执行文件 , 这个文件名叫 a.out

怎么去运行我们的可执行文件

./a.out

./当前目录下的意思


每天都会对C语言进行回顾 , 加深对代码的熟练度

5.C语言基础巩固

C语言数据类型

(1)、基本类型

就是C语言中已经帮我们定义好了, 我们直接使用就可以了

整型数据:

C语言用来保存整数

  • char //字符型
  • short //短整型
  • int //整形
  • long /长整型
  • long long //长长整形

表示的数据的范围 不一样

字节数不一样 , 使得它们所占的空间不一样!

char 1111 1111
int 1111 1111 1111 1111 1111 1111 1111 1111

long 范围更大

sizeof(int) -> 求int类型占几个字节


字符型:

用来保存字符

char : 占一个字节 8bit


浮点型:用来保存小数
  • 单精度浮点型:

float 占 4 字节

  • 双精度浮点型:

double 占 8 字节

long double 占 12 字节 //长双精度浮点型


	C语言中的数据按是否可以修改分为两种:
变量(可写)

数据类型 + 变量名

int a ;
char b;

int a = 10;
char b = 20;//定义并初始化

访问一个变量;

int a = 100;

printf("%d" , a);
//把a对应的内存单元 中的值 取出来 , (读) , 并打印
int b;
scanf("%d" , &a);//对a取地址
//把终端输入的数据 , 写入到 变量b 的地址当中去;

常量(不可写)

(1)整型常量
1 2 3 4 256
(2)字符常量
字符型常量通常是用单引号‘’,引起来获得多个字符序列

‘a’ , ‘b’ , ‘3’ , ‘%’ , ‘\n’ , ‘\113’

在计算机中, 字符的保存 , 保存的是这个字符的形状吗?

不是!
ASCII码

man ascii

字符:分为两种
普通的字符:
可以显示形状的字符
‘a’ , ‘b’ ,‘1’

转义字符:没有形状 , 但是有特殊意义

‘\n’ 换行
‘\r’ 回车
‘\t’ 制表符(tab)
‘\0’ 字符串结束符

练习
5.1
将 两 个整型变量的值进行交换 , 然后输出出来


C语言运算符

1、算术运算符

++ – 单目运算符

      • / 双目运算符

% 双目运算符

如:
4%3

/:
第二个操作数 , 不能为0

例如: 4/0 : 非法

%:
第二个操作数不能为0
例如 4%0 : 非法

++:
自增
–:
自减
a = 9;
printf("%d\n" , a++);

2、关系运算符

用来判断两个东西的关系的运算符
“关系” , 指的是 数值的大小

< > <= >= != ==

关系运算符的值:

1 > 2

关系成立: 值为 1
关系不成立: 值为 0

3.逻辑运算符

! 逻辑非 单目运算符
&& 逻辑与 双目运算符
|| 逻辑或 双目运算符

练习:

从终端输入一个年份
判断其是否为闰年
闰年(4年一润 ,百年不润 , 四百年再润)
普通闰年
世纪闰年
答案

分支结构:

1、
if(表达式)
{
语句块;
}

如果表达式为真 , 执行语句块 , 表达式为0 , 不执行 ,直接执行下面的语句

int a = 2;
if(a)
{
语句1;
}
表达式:
任意的C语言合法的表达式都可以
只要是合法的表达式 , 都会有一个值
cpu会根据这个值 是否为 0 , 去做判断

如果是非0 , 就会执行语句块 , 否则不执行

编程建议:

不管是if后面有没有语句 ,
if(表达式)
{

}
上面的这个花括号{ 要与i对齐

if(表达式) //确定if的管辖范围
语句1;
语句2;

2、
if(表达式)
{
语句块;
}
else
{
语句块;
}

3、
if(表达式)
{
语句块;
}
else if(表达式1)
{
语句块;
}
else if(表达式3)
{
语句块;
}

if(表达式)
{
语句块1;
}
if(表达式)
{
语句块2;
}

4、if 的嵌套
if(表达式)
{
if(表达式1)
{

}
else
{
;
}
语句块1;
}
else
{

}

每一个else , 都对应着与它同列的上面的第一个if
层次感

练习

从键盘输入一个字母 ,
如果是小写字母 ,就将其转换为大写字母 ,
如果是大写字母 , 转换为小写字母
提示 “ASCII”
打印出来

#include<stdio.h>
int main()
{
	char ch;
    printf("请输入一个字母");
	scanf("%c",&ch);
	if(ch >= 65 && ch <= 90){
		ch += 32;
	} else {
		ch -=32;
	}
	printf("%c",ch);
}


循环结构:

0, 问题的引入
质数(素数)
只能被 1 或者 它本身整除的数

35

if(0 == 35 % 2)
{
printf(不是质数)
}

if(0 == 35 % 3)
{
printf(不是质数)
}

if(0 == 35 % 4)
{
printf(不是质数)
}

·····························

-》循环

1、while 2、for 3、do…while

1、while循环
语法:
while(表达式)
{
语句块;
}
表达式为 真 , 执行语句块

每一次循环 , 都会进行一次表达式的判断

while(1)
{
;
}

表达式 1 为真

所以这是死循环

while()
{
以下为复合语句;
if()
{

}

for()
{
   for()
     {

    }
 }


练习:

1、 用while循环 , 求200以内所有3的倍数 之和

3 6 9 12 ······

/*求200以内所有3的倍数 之和*/
#include<stdio.h>
int main()
{
	int i = 1 , sum = 0;
	while(i < 200)
	{
		if(0 == i % 3)
		{
			sum += i;
		}
		i++;
	}
	printf("sum = %d\n" , sum);
	return  0;
}

2、for 循环

语法:
for(表达式1 ; 表达式2 ; 表达式3)
{
语句块;
}

··············
for( ; ; )
{
;
}

合法的
是一个死循环

for( ; 1 ; )
{
;
}
for循环的语法中 , 可以三个表达式都空着不写 ,就是一个死循环
任意某个表达式空着没写 , 也符合语法;

当执行到 for循环的时候;
第一遍执行:
运行表达式1 、 判断表达式2 是否为 0 、 执行语句块 、 执行表达式3

后面怎么执行:

判断表达式2 是否为 0 、 执行语句块 、 执行表达式3
判断表达式2 是否为 0 、 执行语句块 、 执行表达式3
判断表达式2 是否为 0 、 执行语句块 、 执行表达式3
················································

两个关键的语句:
break 和 continue

(1)break 作用: 当循环的语句块执行到break的时候 , 就会跳出循环
for(int i = 1 ; i <= 10 ; i++)
{
if(i == 5)
{
break;
}
printf("%d " , i);
}
printf("\n");

(2) continue
作用 : 当循环语句块执行到continue的时候 , 结束本次循环 , 执行表达式3 , 判断表达式2 ,
总的来说 结束本次循环就是执行下一次循环
for(int i = 1 ; i <= 10 ; i++)
{
if(i == 5)
{
continue;
}
printf("%d " , i);
}
printf("\n");

总结:
Linux 环境介绍 , Ubuntu 系统介绍 ,
C语言:
数据类型 , 运算符 , 分支结构 , 循环结构

作业:
1、求 1000 以内的水仙花数 , “水仙花数”:是一个三位数 , 并且它的个位的立方 , 十位的立方 ,百位的立方 三个
之和 , 等于它本身

2、求 100 以内的质数
质数:

3、求一个正整数的连续正整数之和
一个正整数有可能存在多个连续的正整数之和

如:输入一个 15
输出如下:
15 = 1 + 2 + 3 + 4 + 5
15 = 4 + 5 + 6
15 = 7 + 8

选做题:

使用冒泡排序 , 实现第一个 容量为 10 , 数据类型为 int , 的 数组array进行排序 (升序)
可以用更高级的算法 , 比如:快速排序 、 堆排序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

香自寒来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值