基于ubuntu的C语言基础

一,计算机的基本知识。

1,什么是计算机

        能够进⾏运算的机器就叫做计算机。

2,计算机的基本特点

1,运算速度快:计算机内部电路组成,可以高速准确地完成各种算术运算。

2,计算精确度高:科学技术的发展特别是尖端科学技术的发展,需要高度精确的计算。

3,逻辑运算能力强:计算机不仅能进行精确计算,还具有逻辑运算功能,能对信息进行比较和判断。

4,存储容量大:计算机内部的存储器具有记忆特性,可以存储大量的信息,这些信息,不仅包括各类数据信息,还包括加工这些数据的程序。

5,自动化程度高:由于计算机具有存储记忆能力和逻辑判断能力,所以人们可以将预先编好的程序组纳入计算机内存,在程序控制下,计算机可以连续、自动地工作,不需要人的干预。

6,性价比高:几乎每家每户都会有电脑,越来越普遍化、大众化,21世纪电脑必将成为每家每户不可缺少的电器之一。计算机发展很迅速,有台式的还有笔记本。

总之:计算机就是⼀种电器,只有两种状态,⼀种是通电,⼀种是断电。

3,计算机中的进制数

3.1,二进制

计算机中的数是用二进制数表示的,它的特点是逢二进一,因此在二进制中只有0和1两个数字符号。
特点
(1)基数为2,数值部分用0和1表示
(2)逢二进一
(3)后缀用B或2表示,例如:(1010)2、(1010)B
(4)位权值为2^k (k为数位)
例如:
在这里插入图片描述

3.2,八进制

特点
(1)基数是8,数值部分用0~7表示
(2)逢八进一
(3)后缀用O或8来表示,例如:(1010)8、(1010)O
(4)位权值为8^k (k为数位)
例如:

 在这里插入图片描述

3.3,十进制

十进制是日常生活中最常用的进制。
特点
(1)基数是10,数值部分用0~9表示
(2)逢十进一
(3)后缀用D、10或无后缀来表示,例如:(1010)10、(1010)D、1010
(4)位权值为10^k (k为数位)

3.4,十六进制

特点
(1)基数是16,数值部分用0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F表示
(2)逢十六进一
(3)后缀用H、16或0X来表示,例如:(1010)16、(1010)H、0X1010
(4)位权值为16^k (k为数位)
例如:

 在这里插入图片描述

4,进制之间的转换

4.1,十进制转二进制

        将要转换的十进制整数除以2,取余数;再用商除以2,直到商等于0为止,将每次得到的余数按倒序的方法排列起来即为结果(简记为除二取余倒记法)。
例如:125=1111101B

 4.2,二进制转十进制

        以进制作为底,以当前的位数作为幂,作为对应位的权值 把⼆进制数的每⼀位乘以当前位的权值,最后把所有位的结果相加,(简记为:乘权相加法)

例如:(125)D=(0111110)B

4.3,二进制转八进制及八进制转二进制。

二进制和八进制的对照表

 二进制转八进制时将三位二进制数看成一位八进制数,八进制转二进制时,将一位八进制数看成三位二进制数。

例如

4.4,二进制和十六进制之间的转换

二进制和十六进制之间的对照表

 

二进制转换为十六进制时,在小数点左边的数,从右向左将四位二进制数看成一位二进制数,不够的补0,在小数点右边的数,从左向右将四位二进制数看成一位二进制数。

十六进制数转换为二进制数时,将一位十六进制数转换为四位二进制数。

4.5,八进制数和十进制数之间的转换

十进制和八进制的转换,有两种方法:直接法与间接法。

直接法:          

        整数部分,除8取余法,每次将整数部分除以8,余数为该位权上的数,商继续除以8,余数又为上一个位权上的数,然后以此类推一直下去,直到商为零,最后从最后一个余数向前排列就可以了

        小数部分,与转二进制相同,这里是乘八取整法,也就是说小数部分乘以8,然后取整数部分,再让剩下的小数部分再乘以8,再取整数部分,……以此类推,一直乘到小数部分为零为止。

间接法:

        就是先把十进制转换为二进制,然后再由二进制转换为8进制。

4.6,八进制和十六进制之间的转换

一般是不能直接转换的可以先将八进制或者十六进制转换为二进制或者其他进制数,在进行转换。

4.7,十进制和十六进制之间的转换

十进制--->十六进制:

对于整数部分,用被除数反复除以16,除第一次外,每次除以16均取前一次商的整数部分作被除数并依次记下每次的余数。另外,所得到的商的最后一位余数是所求二进制数的最高位。

对于小数部分,采用连续乘以基数16,并依次取出的整数部分,直至结果的小数部分为0为止。故该法称“乘基取整法”。

十六进制--->十进制

16进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,F这六个字母来分别表示10,11,12,13,14,15。字母不区分大小写。

十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方……

所以,在第N(N从0开始)位上,如果是是数 X (X 大于等于0,并且X小于等于 15,即:F)表示的大小为 X * 16的N次方。

二,C语言的简介

1,什么是计算机语言

计算机语言也叫机器语言:就是计算机能够识别看得懂且能够转换为⼆进制执⾏指令的语 ⾔。

2,什么是计算机程序

计算机每做⼀件事情就是⼀条指令,⼀条或多条指令的集合就是计算机程 序。

3,C语言的注释

3.1单行注释

#include<stdio.h>
int main()
{
执⾏内容,且只执⾏{}内的内容
顺序执⾏

return 0;
}
//在英文状态下输入两个斜杠就可以注释这一行的内容。

3.2,多行注释也称为块注释。

#include<stdio.h>
int main()
{
执⾏内容,且只执⾏{}内的内容
顺序执⾏

return 0;
}


/*

在英文状态下,输入/* */就可以进行多行注释。

*/

4,C语言的基本结构

4.1,顺序结构: 程序由上往下一路执行下来。

#include<stdio.h>
int main()
{
执⾏内容,且只执⾏{}内的内容
顺序执⾏

return 0;
}

4.2.1,分支结构(if   ,if    else  if语句)

#include <stdio.h>

int main()
{
	int a = 10;
	
	// 单个if语句 
	if(a >= 10)
	{
		printf("1: a >= 10\n");
	}
	
	// if与else搭配
	if(a >= 10)
	{
		printf("2: a >= 10\n");
	}
	else
	{
		printf("3: a < 10\n");	
	} 
	
	// "if"、"else if"与"else"搭配:
	// "if"必须要有,"else if"语句可以没有或者有多个,"else"可以没有
	if(a > 10)
	{
		printf("4: a > 10\n");
	}
	else if(10 == a)
	{
		printf("5: a == 10\n");	
	}
	else
	{
		printf("6: a < 10\n");
	}
	
	return 0;
}

4.2.2分支结构(swich case语句)

#include <stdio.h>

int main()
{
	int x = 1;
	
	switch(x)
	{
		case 0:
			printf("x = 0\n");
			break;
		case 1:
			printf("x = 1\n");
			break;
		case 2:
			printf("x = 2\n");
			break;
		default:
			printf("x = 其他\n");
			break;
	}

	printf("switch语句结束!\n");
	return 0;
}

4.3,循环结构: 通常用来处理重复处理某段代码。

4.3.1,for循环语句

for语句执行的顺序是:1243 243 243 2(不符合条件跳出)
语句1通常用来做某些初始化,可以省略,但后面分号“;”不可以省略;
语句2起到判断作用,如果为真执行方括号“{}”里面的语句,假则退出循环;
语句3通常用来更新条件
语句4是循环执行的代码;

for(语句1; 语句2; 语句3)
{
	语句4;
	// 其他代码
}

4.3.2,while 循环语句

while(判断条件)
{
	// 需要重复处理的代码
}

三,C语言的数据类型

1,整型

1.1,短整型 short

        内存中占2个字节        取值范围:-32768 ~ + 32767 (2 Bytes)

1.2,整型 int

        取值范围:-2147483648 ~ +2147483647 (4 Bytes)

1.3,长整型 long long int 

        占八个字节

2,浮点型

2.1,单精度浮点型float.

系统的基本浮点类型。至少能精确表示小数点后6位有效数字。一个float类型占用4个字节的存储位。其中最高位为符号位,紧接着8位为指数位,剩下的23位为尾数位。格式说明符:%f

2.2,双精度浮点型double。

双精度浮点类型。至少能精确表示小数点后12位有效数字。一个double类型占用8个字节的存储位。最高位为符号位,紧接着8位为指数位,剩下的52位为尾数位。格式说明符:%lf

3,字符型

 字符型在其本质上就是整形,我们在C语言中使用char表示一个字符型,他占用一个字符的存储空间,字符型在存储时其内部存储的依旧是二进制数据,当我们读出时将会得到一个整形数据,而我们输出时会得到一个字符是因为我们人为的定义了一个对照表,这个表规定字符a的数值就是97,所以当我们遇到97时我们有两种读出方式,第一种以整数形式读出就是97,另一种就是以字符型读出,使用%c指定读出形式,则对照表则为a。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值