C语言和操作系统学习笔记
c语言基础入门笔记

c语言基础入门笔记
以下是一份C语言基础入门的笔记,涵盖了C语言的基本语法和概念:1. 变量和数据类型
变量是存储数据的容器。
数据类型决定了变量存储的数据的类型。
例如,int表示整数,float 表示浮点数。
2. 常量和符号
常量是固定值,符号是用来表示常量的标识符。
3. 运算符和表达式
运算符用于操作数据。
例如,+表示加法,-表示减法。
表达式是由操作数、运算符和常数组成的序列。
4. 控制结构
if语句用于根据条件执行代码。
switch语句用于根据不同的情况执行不同的代码。
while语句用于重复执行一段代码,直到条件不再满足。
for语句用于重复执行一段代码指定的次数。
5. 函数
函数是一段可以重复使用的代码块,可以接受输入参数并返回结果。
6. 数组
数组是一种存储多个同类型数据的结构。
7. 指针
指针是指向内存地址的变量。
指针可以用来间接访问存储在内存中的数据。
8. 结构和联合
结构是一种自定义的数据类型,可以包含多个不同类型的数据成员。
联合用于在相同的内存位置存储不同的数据类型。
9. 文件操作
C语言提供了文件操作函数,用于读取和写入文件。
例如,fopen()函数用于打开文件,fclose()函数用于关闭文件,fscanf()函数用于从文件中读取数据。
10. 错误处理
C语言提供了错误处理机制,可以使用错误处理函数来处理运行时错误,例如fprintf()函数用于输出错误信息到标准错误输出流stderr。
计算机操作系统笔记第一章

------------- ——第一章 --------- ——-------操作系统是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充,其主要作用是管理好这些设备。
操作系统的目标与应用环境有关。
操作系统的目标:1. 方便性 2. 有效性:提高系统资源的利用率,系统的吞吐量 3. 可扩充性4. 开放性:系统能遵循世界标准规范。
操作系统是一组能有效地组织和管理计算机硬件和软件资源,合理地堆各类作业进行调度,以及方便用户使用的程序的集合。
OS作为用户与计算机硬件系统之间接口的含义是:OS处于用户与计算机硬件系统之间,用户通过OS来使用计算机系统。
或者说,用户在OS帮助下能够方便、快捷、可靠地操纵计算机硬件和运行自己的程序。
OS是铺设在计算机硬件上的多层软件的集合,它们不仅增强了系统的功能,还隐藏了对硬件操作的具体细节,实现了对计算机硬件操作的多个层次的抽象模型。
用户通过命令方式,系统调用方式,图标-窗口方式来实现与操作系统的通信。
处理机管理是用于分配和控制处理机。
主要功能:创建和撤销进程,对诸进程的运行进行协调,实现进程之间的信息交换,以及按照一定的算法把处理机分配给进程。
进程控制。
进程同步:主要任务是为多个进程(含线程)的运行进行协调,进程互斥式,进程同步式。
进程通信:任务是实现相互合作进程之间的信息交换。
存储器管理主要负责内存的分配和回收。
主要任务:为多道程序的运行提高良好的环境,提高存储器的利用率,方便用户使用,并能从逻辑上扩充内容。
功能:内存分配:主要任务是:(1) 为每道程序分配内存空间,使它们“各得其所”。
(2) 提高存储器的利用率,尽量减少不可用的内存空间( 碎片)。
(3) 允许正在运行的程序申请附加的内存空间,以适应程序和数据动态增长的需要。
(静态分配方式:固定内存大小位置,动态分配方式) 内存保护:主要任务是:①确保每道用户程序都仅在自己的内存空间内运行,彼此互不干扰。
②绝不允许用户程序访问操作系统的程序和数据,也不允许用户程序转移到非共享的其它用户程序中去执行。
c语言重点笔记

c语言重点笔记C语言重点笔记一、基础语法1.注释:用于解释代码,不会被编译器执行。
单行注释以“//”开头,多行注释用“/* */”包围。
2.变量:用于存储数据。
定义变量时需要指定类型和名称,如int num;赋值时使用等号,如num=10;也可以在定义时进行赋值,如int num=10;3.数据类型:C语言提供了基本的数据类型,包括整型、浮点型、字符型等。
4.运算符:C语言提供了各种运算符,包括算术运算符、关系运算符、逻辑运算符等。
5.控制语句:C语言提供了各种控制语句,包括条件语句、循环语句等。
二、函数1.函数定义:函数是一段可重复使用的代码块。
定义函数需要指定返回值类型、函数名和参数列表。
如int add(int a, int b) { return a + b; }2.函数调用:调用函数时需要使用函数名和参数列表,并根据返回值类型进行接收。
如int result = add(1, 2);3.递归函数:递归是一种特殊的函数调用方式,在函数内部调用自身。
需要注意避免死循环。
三、数组1.数组定义:数组是一组相同类型的数据。
定义数组时需要指定类型和长度,如int arr[5];2.数组初始化:可以在定义时进行初始化,如int arr[5] = {1, 2, 3, 4, 5};3.数组访问:使用下标访问数组元素,下标从0开始,如arr[0]表示数组的第一个元素。
4.多维数组:多维数组是由一维数组组成的。
二维数组可以看作是一个矩阵,定义时需要指定行数和列数。
四、指针1.指针定义:指针是一个变量,用于存储另一个变量的地址。
定义指针时需要指定类型和名称,如int *p;2.指针运算:可以对指针进行加减运算,表示移动指针位置。
3.指针与数组:可以使用指针访问数组元素,如int *p = arr; p[0]表示arr[0]。
4.空指针:空指针是没有被初始化的指针。
五、结构体1.结构体定义:结构体是一种自定义数据类型,可以包含多个不同类型的成员变量。
C语言学习笔记

C语言学习笔记一、基础知识1. 数据类型在C语言中,数据类型是非常重要的概念。
常见的数据类型包括整型、浮点型、字符型等。
其中,整型可以分为有符号整型和无符号整型,浮点型可以分为单精度浮点型和双精度浮点型。
2. 变量与常量在C语言中,我们可以通过定义变量来存储和操作数据。
变量需要指定其类型,并为其分配合适的内存空间。
而常量则是固定不变的值,可以直接使用或引用。
3. 运算符C语言支持多种类型的运算符,如算术运算符、关系运算符、逻辑运算符等。
这些运算符可以用于执行各种数学和逻辑操作,以实现程序的特定功能。
4. 控制结构控制结构是用于控制程序执行流程的语句。
在C语言中,常见的控制结构包括条件语句(如if语句、switch语句)、循环语句(如for循环、while循环)以及跳转语句(如break语句、continue语句)等。
二、函数与数组1. 函数函数是C语言中的重要概念,它可以实现程序的模块化和代码的重用。
在C语言中,我们可以通过定义并调用函数来执行特定的任务。
函数可以有参数和返回值,参数用于接收外部传入的数据,返回值则用于向外部返回结果。
2. 数组数组是存储相同类型数据元素的集合,可以通过下标来访问其中的元素。
在C语言中,数组的定义和使用非常灵活,可以按需指定数组的大小,并通过循环操作数组中的元素。
三、指针与内存管理1. 指针指针是C语言中的重要概念,它保存了变量或函数的内存地址。
通过指针,我们可以直接访问和修改内存中的数据。
指针的使用需要谨慎,否则可能会导致程序崩溃或产生难以调试的错误。
2. 动态内存管理动态内存管理是指在程序运行过程中,通过特定的函数来分配和释放内存空间。
C语言提供了malloc()和free()等函数来进行动态内存分配和释放操作。
合理地管理动态内存可以提高程序的效率和稳定性。
四、文件操作C语言提供了丰富的文件操作函数,可以用于读取和写入文件。
通过文件操作,可以实现程序与外部文件之间的数据交互。
翁凯c语言笔记

翁凯c语言笔记
翁凯是一位热爱编程的学生,他在学习C语言的过程中积累了很多宝贵的经验和知识。
下面是他的一些C语言学习笔记,希望对大家有所帮助。
1. 基础语法:C语言是一种结构化的编程语言,具有丰富的数据类型和运算符。
翁凯通过学习基础语法,掌握了变量的声明和赋值、控制语句、循环语句等基本概念。
2. 函数与模块化编程:C语言通过函数的调用来实现模块化编程,提高了代码的可读性和可维护性。
翁凯学会了如何定义和调用函数,并且学习了递归函数的使用。
3. 数组与指针:在C语言中,数组和指针是非常重要的概念。
翁凯弄清楚了数组和指针之间的关系,并学会了如何使用它们进行内存管理和数据操作。
4. 结构体与文件操作:C语言中的结构体可以用来存储不同类型的数据,翁凯学会了如何定义和使用结构体,并且掌握了文件的读写操作,可以将结构体数据保存到文件中。
5. 动态内存分配:C语言提供了动态内存分配的功能,翁凯学会了
使用malloc()和free()函数来进行内存管理,避免了内存泄漏和内存溢出的问题。
6. 编程技巧与调试:除了学习语法和基本概念,翁凯还注重培养编程技巧和调试能力。
他学会了使用调试工具和技巧,解决程序中的bug,并且善于利用注释、缩进和命名规范来提高代码的可读性。
翁凯通过不断学习和实践,逐渐掌握了C语言的基本知识和技巧。
他深知编程需要不断练习和积累,因此他坚持每天都进行编程练习,并且参与了一些开源项目,与其他开发者交流经验。
翁凯相信,只有不断学习和实践,才能成为一名优秀的C语言程序员。
C语言基础学习笔记

C语言基础学习笔记(第一版修改)丁炳亮1数据类型和表达式1.1计算机内数据存储方式理解与测试:什么是补码?我们得先知道模的概念。
模“模”是指一个计量系统的计数范围。
如时钟等。
计算机也可以看成一个计量机器,它也有一个计量范围,即都存在一个“模”。
例如:时钟的计量范围是0~11,模=12。
表示n位的计算机计量范围是0~2^(n)-1,模=2^(n)。
“模”实质上是计量器产生“溢出”的量,它的值在计量器上表示不出来,计量器上只能表示出模的余数。
任何有模的计量器,均可化减法为加法运算。
例如:假设当前时针指向10点,而准确时间是6点,调整时间可有以下两种拨法:一种是倒拨4小时,即:10-4=6;另一种是顺拨8小时:10+8=12+6=6在以12模的系统中,加8和减4效果是一样的,因此凡是减4运算,都可以用加8来代替。
对“模”而言,8和4互为补数。
实际上以12模的系统中,11和1,10和2,9和3,7和5,6和6都有这个特性。
共同的特点是两者相加等于模。
二进制中整数的补码求法是:正数的补码为原码,负数的补码是符号位不变其他位全部取反再整个数加1。
我们可以通过下面的代码看下负整数在计算机内部的表示。
void f(int n){unsigned int i;for(i=1,i<<=15;i;i>>=1){if(i&n)printf("1");elseprintf("0");}printf("\n");}main(){int a=-0xff;f(a);getch();}输出的结果是1111111100000001。
1.2变量与常量理解与测试:1)类型声明在计算机内部数据是以字节为单位存储的,但是我们需要的数据类型有很多种,每种数据类型所占字节和存储方式都不一样。
类型声明的作用就是告诉计算机以哪种“格式”去读写该数据数据。
类型说明符变量名1,变量名2......,变量名n;类型说明符有基本类型(字符型、整数型、单/双精度型)、高级类型(结构体型、共用体型、枚举类型)、指针型等,其中指针类型包括指向基本类型的指针类型、指向高级类型的指针型和指向函数的指针类型(指向函数指针声明格式在后面章节)。
c语言课程笔记

c语言课程笔记一、c语言概述c语言是一种通用的、过程式的计算机程序设计语言。
它支持结构化编程,并具有丰富的数据类型和运算符。
c语言最早是由美国的Dennis Ritchie于1972年设计和实现的。
二、c语言的特点1.高效:c语言具有高度的灵活性,允许程序员直接访问内存,因此可以编写出高效的代码。
2.结构化:c语言支持结构化编程,这有助于编写清晰、易于维护的代码。
3.面向过程:c语言是面向过程的编程语言,它将程序分解为一系列的过程和函数。
4.跨平台:c语言是一种跨平台的编程语言,可以在不同的操作系统和硬件平台上运行。
5.代码可移植:c语言的语法规则相对固定,这使得编写的代码易于移植到其他平台。
三、c语言的语法基础1.变量:变量是用来存储数据的标识符。
在c语言中,必须先声明变量,然后才能使用它。
变量可以存储不同类型的数据,如整数、浮点数、字符等。
2.数据类型:c语言提供了多种数据类型,如int、float、char等。
每种数据类型都有其特定的取值范围和存储大小。
3.运算符:c语言支持多种运算符,如算术运算符(+、-、*、/)、关系运算符(==、!=、>、<、>=、<=)、逻辑运算符(&&、||)、位运算符(&、|、~、<<、>>)等。
4.控制结构:c语言提供了三种控制结构:顺序结构、选择结构和循环结构。
顺序结构按照代码的顺序执行;选择结构根据条件选择执行路径;循环结构重复执行一段代码直到满足特定条件为止。
5.函数:函数是执行特定任务的独立代码块。
c语言允许程序员自定义函数,以实现特定的功能。
6.指针:指针是变量中存储的地址,用于间接访问内存中的数据。
指针可以提高程序的效率和灵活性,但也需要谨慎使用以避免出现错误。
7.结构体:结构体是一种自定义的数据类型,可以包含多个不同类型的数据成员。
通过结构体,可以组合相关的数据并处理它们作为一个整体。
C语言最全入门笔记

C语言最全入门笔记c语言入门C语言一经出现就以其功能丰富、表达能力强、灵活方便、应用面广等特点迅速在全世界普及和推广。
C语言不但执行效率高而且可移植性好,可以用来开发应用软件、驱动、操作系统等。
C语言也是其它众多高级语言的鼻祖语言,所以说学习C语言是进入编程世界的必修课。
hello,world#include<stdio.h>int main(){/*在双引号中间输入Hello World*/printf('Hello World');return 0;}注:在最新的C标准中,main函数前的类型为int而不是void c语言的具体结构简单来说,一个C程序就是由若干头文件和函数组成。
#include <stdio.h>就是一条预处理命令, 它的作用是通知C语言编译系统在对C程序进行正式编译之前需做一些预处理工作。
•函数就是实现代码逻辑的一个小的单元。
必不可少之主函数一个C程序有且只有一个主函数,即main函数。
C程序就是执行主函数里的代码,也可以说这个主函数就是C语言中的唯一入口。
•而main前面的int就是主函数的类型.•printf()是格式输出函数,这里就记住它的功能就是在屏幕上输出指定的信息•return是函数的返回值,根据函数类型的不同,返回的值也是不同的。
•\n是转义字符中的换行符。
(注意:C程序一定是从主函数开始执行的)良好习惯之规范1.一个说明或一个语句占一行,例如:包含头文件、一个可执行语句结束都需要换行。
2.函数体内的语句要有明显缩进,通常以按一下Tab键为一个缩进。
3.括号要成对写,如果需要删除的话也要成对删除。
4.当一句可执行语句结束的时候末尾需要有分号。
5.代码中所有符号均为英文半角符号。
程序解释——注释注释是写给程序员看的,不是写给电脑看的。
C语言注释方法有两种:多行注释: /* 注释内容 */单行注释: //注释一行有名有姓的C(标识符)C语言规定,标识符可以是字母(A~Z,a~z)、数字(0~9)、下划线_组成的字符串,并且第一个字符必须是字母或下划线。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
深入理解计算机系统存储器层次CPU主频: 3.2 GHz高速缓存(1~10ns, 一个周期)主存(10~100ns)辅助(磁盘) (1byte/10ms, 一次可以传送大量字节, 几十到几百个周期)三级存储(分钟为单位)虚拟存储虚拟页(VP), 物理页(PA), 页表(Page Table), 页表条目(PTE, Page Table Entry), DRAM(虚拟存储器缓存), SRAM(CPU和主存的缓存), MMU(存储器管理单元),路旁转换缓冲(TLB, Translation Lookaside Buffer)东芝satalite L700笔记本进入BIOS(ctrl + alt + del 之后F12)Ubuntu 15.10可能不适配NVDIA显卡(如: NVDIA GeFore GTX 745)Day01C语言程序的绝大部分必须记录在以.c作为扩展名的文件里,这种文件叫源文件C语言程序里可以直接使用加减乘除四则运算符号(+、-、*、/)每个独立的计算步骤最后必须使用分毫结束,用分号结束的一个计算步骤叫一条语句任何C语言程序一个由大量的语句构成C语言程序中,采用分组的方式管理所有的语句一组里的所有语句必须写在一对大括号里可以吧一组里面的语句再次进行分组绝大多数语句必须属于某个分组任何语句不可以跨越分组不被其他大括号包含的大括号可以叫做顶级大括号顶级大括号可以用来表示函数(可以吧函数看成一组语句)每个函数必须有自己的名字,不用的函数的名字必须不同任何C语言程序一对由一个活多个函数构成C语言程序中必须有一个叫做main的函数,这个函数叫做主函数C语言程序必须从主函数的第一条语句开始执行当主函数的最后一条语句结束的时候整个程序结束C语言程序允许一个函数的结束的时候遗留一个数字,这个数字叫做这个函数是返回值主函数需要有一个返回值,这个返回值表示主函数的工作结果。
如果这个返回值是0,则表示一切正常,否则就表示出现非正常情况。
C语言程序里预留了几十个英文单词,这些英文单词叫做关键字。
每一个关键字有特定的用途,不能随便使用。
Return就是一个关键字,它有两个用途。
主要用途是结束函数的执行(任何时候一定会起到这个作用),辅助作用是用来指定返回值数值(当关键字后面有数字时起这个作用)根据数字在某个方面的区别把数字分成几组,每组叫做一个数据类型每个数据类型有自己的名字整数类型是一种数据类型,它的名字是int,它里面包含几乎所有不带小数点的数字程序中所有数字必须有类型C语言程序中所有不带小数点的数字默认是整数类型每个函数必须明确表示它返回值的类型(把返回值类型名称写在函数名称前面)C语言程序基本开发步骤:1、使用vi编写以.c作为扩展名的源文件2、使用gcc工具对源文件进行翻译得到名为a.out的文件(编译)3、用命令./a.out执行得到的文件能够完成编译工作的软件叫编译器不同编程语言有自己的编译器Gcc是c语言的一种编译器MinGW软件是windows里的gcc所有C语言程序中都会包含预处理指令预处理指令全都是以# 作开头,而且不是以;作结尾标准C阶段遇到的预处理指令都可以把源文件内容改变成其他内容#include 是一个预处理指令,它可以把其他文件内容合并到当前源文件中使用这个预处理指令的适合需要指定文件路径,这个路径对应的文件会被包含到当前源文件中这个路径通常采用相对路径:如果把路径写在< > 中间表示相对路径的起点是系统预先设定好的一下目录如果把路径写在“”中间表示相对路径的起点还包括当前源文件所在的目录gcc 工作步骤:1、先处理所有预处理指令2、把修改后源文件内容翻译成计算机认识的格式(也叫编译)3、把编译得到的不同部分合并在一起(链接)gcc 的选项:-E 只完成预处理指令的处理工作-c 只完成预处理和编译工作-o 用来指定新文件名称-std=c89/-std=c99 用来指定编译过程中遵循的版本(缺省情况下采用c89版本)程序中的文字信息必须加入到注释的区域里,编译器会忽略所有注释以// 做开头一直到行尾的区域叫单行注释以/* 做开头,以*/ 做结尾的区域叫多行注释C语言程序中大量使用名称区分不同内容,这些名称叫做标识符标识符最好采用有意义的英文单词编写标识符命名规则:1、第一个字母只能是英文字母或者下划线2、后面的字母可以是英文字母、下划线或者阿拉伯数字字符3、标识符中大小写不同的字符被看作是不同的字符(大小写敏感)4、关键字不可以当做标识符使用5、标识符长度没有限制,但计算机只会截取前一段使用(c89规范中截取前31个字符,c99规范里截取前63个字符)C语言书写规范:1、一行中最多包含一条语句2、不同层次的语句要使用缩进区分开3、在合适的地方使用空格和空行提高程序的可读性4、标识符采用驼峰方式(区分大小写XiAn)或者下划线(xi-an)方式编写C语言中提供了一组标准函数,每个函数负责解决一个常见问题每个标准函数都有自己是名字在程序中编写函数调用语句就可以使用某个函数了printf 是一个标准函数的名字,这个标准函数可以把程序中的数字打印在终端窗口里;为了使用这个标准函数需要包含stdio.h 文件。
在printf函数调用语句中使用占用符可以把双引号里面的某个位置保留下来,在打印的适合先用某个数字填充这个位置然后再打印使用占位符可以打印编写程序时还不知道的数字不同类型的数字应该和不同的占位符配合使用和整数类型配合使用的占位符是%d可以在一条函数调用语句中使用多个占位符,有多少个占位符就应该在双引号后面提供多少个数字,数字之间使用逗号分开计算机内存分成很多字节,任意两个的大小一样每个字节可以用来存放一个数字。
可以临时把几个相邻的字节合并用来记录一个数字我们可以把内存中用来记录一个数字的区域叫做一个存储区(一个存储区一定是由一个或多个相邻字节构成的)每个字节有一个编号,这个编号叫做这个字节的地址所有字节的地址从0开始逐渐递增只有通过地址才能找到字节一个存储区也有地址,它的地址是它所包含的字节中最前边的字节的地址C语言中可以使用变量代表一个存储区,这一可以简化对存储区的使用一个存储区只能用来存储一种类型的数字,因此存储区是分类型的(变量也是)计算机可以根据变量计算出对应存储区的地址(变量可以代表存储区的原因)变量和存储区的对应关系完全由计算机决定为了在程序中使用一个变量必须首先声明它,变量声明语句用来声明变量变量声明语句会让计算机为变量分配一个存储区变量声明语句中不用包含变量的类型和名称变量的使用方法:1、变量可以用来存储一个数字2、从变量中获得数字并进行计算变量赋值语句可以向变量中存放一个数字赋值语句需要采用赋值操作符(=)编写赋值操作符要求左边必须是一个能代表存储区的内容(左值)赋值操作符要求右边必须是一个能代表数字的内容赋值语句执行完成后可以把右边的数字记录在左边的存储区里只要在程序中把代表存储区的内容当作数字使用,计算机就会先从存储区里获得数字,然后再使用变量名称在程序中既可以带便存储区,也可以代表存储区的数字(num = num)变量名称在程序中代表什么是由环境决定的预习:1变量2、scanf标准函数 3 数据类型作业:1、假设有1克到127克之间的127个不同的整数重量,要求设计一套砝码表示其中任何一个整数重量。
(同样重量的砝码不能重复,砝码数量越少越好)1 2 4 8 16 …Day01—day02 总结:whoami 查看当前使用的账号clear 清除终端窗口里的文字信息pwd 查看当前目录cd cd~ls ls -l ls -a ls -latouch 创建新文件mkdir 创建新目录mkdir -p qwe/asd 两个目录一起创建出来rm rm -rfTab键补齐tar zcvf 压缩文件名.tar.gz 路径1 路径2 打包压缩tar zxvf 压缩文件名.tar.gz 解包解压nyy (n为整数,如果是1可省略) 拷贝n行(必须在正常模式下)np 粘贴n次(必须在正常模式下)ndd 剪切n行(必须在正常模式下)set nu set nonuvi ~/.vimrc 查看set命令(每次vi启动时,都会从~/.vimrc文件中获得大量set命令并按顺序执行它们)chmod u+x(g+w / o-r) user/group/otherchmod 664(二进制后转的十进制数) 文件路径修改操作属性mv 路径1 路径2 移动(覆盖)(也可以用来改名)cp 路径1 路径2 拷贝(复制)ln -s 路径1 路径2(可以不存在,新建) 链接(等同操作) echo abc > a.txt (重定义输出) (abc 覆盖 a.txt)echo abc >> a.txt (追加) (abc 加在 a.txt 后) ps (-aux 系统所有进程) 查看当前窗口进程kill (-9强制结束) 234(id号) 结束进程ctrl + c 结束进程(相当于kill -2 自动寻找死循环) echo abc>a.txt 重定义输出echo abc>>a.txt 追加通配符:? (a?) 代表a_* (a*) 代表以a开头的gcc -E 只完成预处理指令的处理工作(编译)gcc -c 只完成预处理和编译gcc -o 用来指定新文件名称-std=c89/-std=c99 用来指定编译过程中遵循的版本(缺省时采用c89版本)Day03:可以在一条语句中声明多个同类型变量,这个时候类型名称写一次就行了可以在声明变量的语句中立刻对变量进行赋值,这叫做变量的初始化C语言里所有变量都应该初始化变量可以用来在程序中代表一个未知的固定数字变量可以用来代表一组相关数字(任何时候只使用其中某一个数字,使用过后就不再使用了)在printf() “”中用%%,才会打印出% ;Scanf()如果scanf函数调用语句的双引号里有不是占位符的内容,则用户必须在输入的时候把它们按照顺序依次输入,否则计算机就无法得到数字如果多次从键盘得到数字时某一次用户输入的格式错误则后面的所有输入都可能会错误清理缓存区(有时前面输入错误,后面会都出错,清理缓存后就好了)Scanf(“%*[^\n]”);Scanf(“%*c”);scanf(“%*[^\n]”); scanf(“%*c”);字符类型是一种数据类型,名称是char这个类型中一个包含256个不同的数据,每个数据可以代表一个字符(‘%’‘#’)ASCII码表中记录所有256个数据两种表示方式之间的对应关系‘a’97‘A’65‘0’48所有字符数据分成两组,每组128个字符其中一组里所有字符数据两种表示方式之间的对应关系在所有计算机上都一样(这组字符的整数表示方式范围从0到127)另外一组中所有字符数据两种表示方式之间的对应关系在计算机上有可能不同(这组字符的整数表示方式范围从-128到-1,也有可能从128到255)无符号字符类型也是一种数据类型无符号字符类型用unsigned char 表示这个数据类型里同样包含那256个不同的字符,所有的字符数据的整数表示方式范围固定从0到255)ASCII码表中所有小型英文字符的整数表示方式是连续排列的,‘a’的整数表示方式最小所有大写英文字母和阿拉伯数字字符也都符合这个规律‘t’-‘a’=‘T’-‘A’‘3’-‘0’= 3 - 0 =‘d’-‘a’Short %hdUnsigned short %huLong %ldUnsigned long %luInt %dUnsigned int %uFloat %f或者%gDouble %lf或者%lg%lf和%f 会保留小数后面无效的零%nd 和%-nd%0nd也可以做站位符,(n同样代表一个整数)打印n个位子,无效位置用‘0’%n,mf作浮点占位符,共n个位置,小数点占m位不同数据类型之间的区别是有它们是存储区所包含的字节个数不同造成的Sizeof关键字可以用来计算一个变量或数据的存储区所占的字节个数各种数据类型所包含的字节个数:char(unsigned char) 1个字节short(unsigned short) 2个字节long(unsifned long) 4 个字节int(unsigned int) 4个字节float 4个字节double 8个字节Sizeof 关键字的小括号里可以写任何能当作数字使用的内容(赋值语句也可以当作数字)Sizeof关键字的小括号里如果修改了任何存储区的内容则这种修改不会真正生效(如:sizeof(num = 10) 不会真正赋值)计算机采用二进制表示数字,二进制里每个数位上只有0或1者两种可能计算机里每个字节分成八段,每段可以用来记录一个0或者1数字的二进制表示方式中每个数位有一行编号,最右边数位的编号是0,向左依次递增二进制中每个数位上的1单独代表一个数字,它的数值就是2的编号次方一个二进制所代表的数值就是他里边所有数位上的1所代表的数值之和二进制加一是计算规则是吧最右边的0变成1,把它右边的所有1都变成0二进制转十进制方式:把所有1单独转换最后把转换结果求和0111 0011 = 1 + 2 + 16 +32 +64 =115预习:1二进制(八进制十六进制,负数的二进制)2操作符作业:1编写程序计算给定长和宽的长方形的面积2编写程序计算给定半径的元的周长扩展:crontab ( 任务调度)crontab –l 查看任务调度crontab –e 修改任务调度可执行的shell 脚本vi abc.shmkdir shellcd shelltouch a.txtls –l abc.sh (查看脚本问价操作属性)chmod 777 abc.sh (修改脚本操作属性,使其能被运行)./abc.sh 执行脚本,从而运行里面步骤远程操作别id的电脑(有对方ip和密码)(ftp 也可以)telnet + ip(远程连接)/sbin/ifconfig 查看本地ipIpconfig 在windows下查看ip退出:exit(正常进入)Quit(不正常进入)服务器下:ftp 192.168.0.243xlyxly下载:gat 文件上传:put 文件退出:byeDay04十进制转二进制两种方法:第一种,首先把十进制表示方法拆分成多个2的整数次方值和,然后把所有拆分结果单独转换成二进制,最后把所有转换结果合并就得到证个数字的二进制57 = 32 + 16 + 8 + 1 = 0010 0000 + 0001 0000 +0000 1000 + 0000 0001= 0011 1001第二种是不断除以2取余,把所有余数按照从后向前的顺序书写得到转换结果83 **** ***141 0*** ***120 00** ***010 000* ***05 0000 ***12 0000 0**01 0000 00*10 0000 0000113/2 = 56/2 = 28/2 = 14/2 = 7/2 = 3/2 = 1/2 = 01000 1110 0111 0001通过上述方法计算得到的二进制叫做源码计算机里采用补码计算数字非负数的源码和补码是一样的八进制也是一种表示数字的方式(可以看成是二进制的简写方式)把二进制的补码从有向左每三个数位分成一组,把每一组用0到7之间的数字替换得到结果就是八进制表示方法0101 0111 01 010 111 1274分3分八进制可以直接在程序中使用八进制方式表示数字,但是必须在数字前写一个0采用%o 做占位符可以把一个数字的八进制表示方式打印在屏幕上十六进制也是一种表示数字的方法(也可以看成是二进制的简写方式)把二进制补码中所有数位从右向左每四个数位分成一组,每组用一字字符替代得到的结果就是十六进制表示方式如果某一组的转换结果在0到9之间则使用对应的阿拉伯数字字符替换,如果在10到15之间则使用‘a’到‘f’替换。