c语言顺序结构讲义_第1页
c语言顺序结构讲义_第2页
c语言顺序结构讲义_第3页
c语言顺序结构讲义_第4页
c语言顺序结构讲义_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录第一章C语言概述 2一、计算机语言 21、机器语言 22、汇编语言 23、高级语言 24、高级语言程序的执行原理 3二、C语言历史 3三、C语言的特点 3四、简单的C语言 51、程序的结构 5第三章数据类型、运算符与表达式 7一、C语言的数据类型 71、基本类型 72、构造类型 73、指针类型 74、空类型 7二、存储空间 7二、常量 8三、变量 8四、整型数据 9五、符点型数据 11六、字符型数据 121、字符型常量 122、字符变量 133、字符串常量 15七、变量赋值 15八、各数据类型之间的混合运算 16九、算术运算符和算术表达式 17第四章顺序程序设计 22一、C语句 221、C程序的语句 222、简单编程举例 22二、数据的输入输出 221、printf()函数 222、格式字符 233、用scanf函数输入数据 25第一章C语言概述一、计算机语言1、机器语言面向机器编程机器语言(machinelanguage)是一种指令集的体系。这种指令集,称机器码(machinecode),是电脑的CPU可直接解读的数据。机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指指令系统它是计算机的设计者通过计算机的硬件结构赋予计算机的操作功能。机器语言具有灵活、直接执行和速度快等特点。机器语言用指令代码编写程序。2、汇编语言面向机器编程汇编语言(AssemblyLanguage)是面向机器的程序设计语言。也称为符号语言。用指令助记符来编写程序。汇编语言适合编写一些对速度和代码长度要求高的程序和直接控制硬件的程序。3、高级语言与计算机的硬件结构及指令系统无关,不能用于编写直接访问机器硬件资源的系统软件或设备控制软件,它有更强的表达能力,可方便地表示数据的运算和程序的控制结构,能更好的描述各种算法,而且容易学习掌握。高级语言并不是特指的某一种具体的语言,而是包括很多编程语言,如目前流行的java,c,c++,C#,pascal,python,lisp,prolog,FoxPro,VC,易语言,中文版的C语言习语言等等,这些语言的语法、命令格式都不相同。但高级语言编译生成的程序代码一般比用汇编程序语言设计的程序代码要长,执行的速度也慢。4、高级语言程序的执行原理编写程序—编译程序产生目标程序执行程序5、汇编语言程序的执行原理汇编程序是系统软件中语言处理系统软件,汇编程序把汇编语言翻译成机器语言的过程称为汇编。二、C语言历史C语言兼具高级语言和汇编语言的优点,即可以编写系统软件也可以编写应用软件。1960年出现ALGOL60是一种面向问题的高级语言,不宜用于编写系统程序。是C语言的前身。1963年英国剑桥大学推出了CPL,1967年英国剑桥大学的MartinRichards推出了BCPL简称B语言,编写了UNIX系统。C语言保持了BCPL和B语言的优点。三、C语言的特点1.简洁紧凑、灵活方便C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。C语言可以象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。2.运算符丰富共有种34个运算符3.数据结构丰富C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据类型的运算。4.C是结构式语言结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。5.C语法限制不太严格、程序设计自由度大一般的高级语言语法检查比较严,能够检查出几乎所有的语法错误。而C语言允许程序编写者有较大的自由度。6.C语言允许直接访问物理地址,可以直接对硬件进行操作因此既具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。7.C语言程序生成代码质量高,程序执行效率高一般只比汇编程序生成的目标代码效率低10へ20%。8.C语言适用范围大,可移植性好C语言有一个突出的优点就是适合于多种操作系统,如DOS、UNIX,也适用于多种机型。四、简单的C语言1、程序的结构(1)语句每条语句后面必须以分号结尾(2)注释语句对程序语句进行解释,不参与编译与执行,用于帮助读者理解程序单行注释://多行注释:/**/(3)结构主函数和其它函数构成函数是C程序的基本单位,容易实现模块化(4)函数的结构intaa(inta,intb)//首部{//函数体}(5)C程序的结构#include<stdio.h>//头文件Voidmain()//主函数{//函数体Printf(“ThisisaCprogram.\n”);//语句}一个C程序总是从main函数开始执行,main函数在程序的位置是任意的。(4)语法要求

第三章数据类型、运算符与表达式一、C语言的数据类型1、基本类型整形:int字符型:char浮点型:单精度、双精度枚举类型2、构造类型数组类型结构体类型:不同数据类型的数据存放在一起,但各是各的内存空间共用体类型:不同数据类型放在一起,共用一个内存地址3、指针类型4、空类型二、存储空间1、局部变量存储在栈中2、全局变量、静态变量(全局和局部静态变量)存储在静态存储区3、new申请的内存是在堆中4、字符串常量也是存储在静态存储区补充说明:1、栈中的变量内存会随着定义所在区间的结束自动释放;而对于堆,需要手动free,否则它就一直存在,直到程序结束;2、对于静态存储区,其中的变量常量在程序运行期间会一直存在,不会释放,且变量常量在其中只有一份拷贝,不会出现相同的变量和常量的不同拷贝。二、常量1,1.2,-2.2,’a’1、符号常量的定义在程序的开头定义符号常量,符号常量一但定义,在程序的作用域内不能对其修改,除非到定义语句中修改。#definePRICE302、符号常量的使用3、常量consta;三、变量用于存储数据,并且存储的数据值可以变化1、变量的命名规则(所有标识符的命名规则)标识符:变量名,符号常量名,函数名,数组名。规则:(1)字母、数字、下划线组成(2)不能以数字开头(3)区分大小写,一般变量名用小写字母,符号常量名用大写字母(4)长度一般不要超过8个字符,根据不同的系统长度要求不同(5)见名知意2、变量定义和使用所有的变量必须先定义后使用数据类型变量名;变量的定义与赋值及使用inta,b;intc;a=5;b=4;inta=5,b=6;四、整型数据1、整型常量整数:十进制(123),八进制(0123),十六进制(0x123)2、整型变量在内存中的存放形式以二进制存储,一般分配2字节空间,VC++分配4字节。原码,反码,补码正数:反码=原码按位取反补码=原码负数:反码=将该数的绝对值按位取反补码=反码+13、分类(1)短整型:shortint,在定义时int可以省略TurboC2.0分配2个字节,VC++分配2个字节(2)基本整型:intTurboC2.0分配2个字节,VC++分配4个字节(3)长整型:longint,在定义时int可以省略TurboC2.0分配4个字节,VC++分配4个字节(4)取值范围(turboc/c++)有符号无符号:数据默认为有符号,可以表示正负数,若只让表示正数需要定义时特殊指出,用unsingned标识符指出。inta;unsingnedinta;类型编译系统字节数取值范围shortintTurboC2.0,VC++2-215~215-1intTurboC2.02-215~215-1VC++4-231~231-1longintTurboC2.0,VC++4-231~231-1unsignedshortintTurboC2.0,VC++20~216-1unsignedintTurboC2.020~215-1VC++40~232-1unsignedlongTurboC2.0,VC++40~232-1int、short:最高位为符号位,表示数据的为其余的15位,即范围为-215~215-1(-32768~32767)unsingnedinta;16位全部用来表示数据,0~216-1(0~65535)Long为32位,有符号-232~232-1(-2147483648~2147483647) 无符号0~232-1(0~4294967295)4、定义与使用inti;i=10;4、整型常量的使用必须对号入座,根据变量的取值范围赋予范围内对应的值,不得超范围。1234u(U)表示1234为无符号数,最高位也用于存数据-1234u,将该数转换为补码,然后按无符号数存储1234l(L)表示1234为long型五、符点型数据即为实数1、浮点型常量(浮点型的数)表示形式(1)十进制表必须有小数点:12.12.51.50.5(2)指数形式(e,E)规范化的表示:1.23e3非规范化的表示:12.3e2按指数形式输出时以规范化的形式输出。2、浮点型变量在内存中的存放形式占32位,以指数形式存放,将一个数分为小数部分和指数部分,一般用24位(包括符号位)表示小数,用8位表示指数部分。3、分类(1)float:32位有效数字6-7,-3.4*10-38~3.4*1038(2)double:64位有效数字15-16,-1.7*10-308~1.7*10308(3)longdouble:128位有效数字18-19-1.2*10-4932~1.2*1049324、浮点数运算的舍入误差超过有效范围外的加减数是会被舍去floata=12345678900;floatb=a+20;结果a和b的结果相同,因为float型数据有效位只有6-7位,所以8位以后的数字不能保证正确。floatc=111111.111;//c中只能接受到7位小效数字,最后两位小数不起作用。六、字符型数据1、字符型常量‘a’,’ A’转义字符\n:换行\t:水平制表,跳到下一个TAB\b:退格,前移一列\r:将当前光标移到本行开头开始输出字符,或遇到\t则删除输出字符以后\t当中包括的列的字符printf("abc\tde\rfg\n"); printf("abc\tde\r\tg\n"); printf("abc\tddd\rff\t\tggg\n"); printf("abc\tddd\rff\t\n");printf("ffbbbbbbbbbbbbbbggg");\’:代表一个单引号字符\”:代表一个双引号字符\ddd:1-3位八进制数所代表的字符\xhh:1-2位十六进制数所代表的字符printf("\101\n"); printf("\002\n"); printf("\003\n");printf("\x30\n");2、字符变量charc1,c2;一个字符变量中只能存储一个字符,在内存中占一个字节,0-255默认为0-127。以字符的ASCII码的二进制存储。和数值的存储结构相同,所以字符型变量可以与整型变量进行运算,输出可以互通。默认为0-127注:C语言中默认将char指明为有符号数值,#include<stdio.h>voidmain(){ charc1,c2; charc3=130;//10000010-01111101-01111110=(-126) unsignedcharc4=130; c1=97; c2=98; printf("%c,%c\n",c1,c2); printf("%d,%d\n",c1,c2); c1=48; c2=49; printf("%c,%c\n",c1,c2); printf("%x,%x\n",c1,c2); c1=48; c2=49; printf("%c,%c\n",c1,c2); printf("%o,%o\n",c1,c2); c1=c1+1; c2=c2+1; printf("%c,%c\n",c1,c2); printf("%o,%o\n",c1,c2); printf("%d\n",c3); printf("%d\n",c4);}3、字符串常量"abc","a"在内存中以\0为结束符,会自动加一个\0,所以在内存中"a"占两个字符。七、变量赋值inta=10;intb,c=10;intd=2,e=3,f=5;b=30;八、各数据类型之间的混合运算doublefloatdoublefloatlongunsignedintchar、shortinclude<stdio.h>voidmain(){ inta=10; charb='a'; intc=10; floati=12.5; doubled=20.5; longe=10; doublex=a+b+c*i-d/e; printf("%f",x);}九、算术运算符和算术表达式1、基本算术运算符+,-,*,/(整数/整数结果为整数,舍去小数部分),%(必须为整型数据参与运算),+(求正),-(求负)除%以外的所有算数运算操作数可以是任何类型2、优先级与结合性一般的算术运算都是自左至右结合,个别是自右至左结合3、强制类型转换(int)a;#include<stdio.h>voidmain(){ floatx; inti; x=32767.0; i=(int)x%3; printf("x=%f,i=%d\n",x,i);}4、自增自减运算符++i;i++;#include<stdio.h>voidmain(){ inti=3; printf("%d\n",i++); printf("%d\n",i); printf("%d\n",++i); printf("%d\n",i);}voidmain(){ inti=3; intj=3; intk=3; printf("%d\n",i+++j); printf("%d\n",i); printf("%d,%d\n",k,k++);??????}十、赋值运算符和赋值表达式1、赋值运算符优先级低于算术运算,结合性为:自右向左结合a=3;2、赋值的过程中会自动类型转换(1)将float、double赋给intinti=3.56;//结果i中存放3(2)将int赋给float和double数值不变,小数点后面补够有效位数,float为小数点后面补6位,double为16位。注根据不同的编译系统结果不同。(3)char赋给int第一种情况:系统将字符规定为无符号时,低八位存放数值,高八位补0。第二种情况:系统将字符规定为有符号时,低八位存放数值,低八位最高位为0的话高八位补0,低八位最高位为1的话高八位补1。如果以数值输出时,将该数字的原码计算出来,减1,各位取反,计算后为负数。(4)将int,short,long赋给char只将其低八位原封不动的赋给char//了解(5)带符号int赋给longInt最高位为0,低16位放原数,高16位补0,最高位为1,低16位放原数,高16位补1。反过来long赋给int截去高16位。(6)将无符号数赋给有符号数unsignedinta=65535;intb;b=a;printf(“%d”,b);//b为-1(7)将有符号数赋给无符号数voidmain(){ unsignedinta; intb=-1; a=b; printf("%u\n",a);}B:1111111111111111A:1111111111111111-1取反得-13、复合的赋值运算a+=3,a-=3,a*=3,a/=3x%y=(y+3)//x=x%(y+3)4、赋值运算a=b=c=5;a=5+(c=6);a=(b=4)+(c=6);(a=3*5)=4*3;4、逗号运算符和逗号表达式表达式1,表达式2(a=3*5,a*4),a+5x=(a=3,6*3)x=a=3,6*3

第四章顺序程序设计一、C语句1、C程序的语句分为5类,为控制语句,函数调用语句,表达式语句,空语句,复合语句2、简单编程举例(1)编程实现华氏温度转换为摄氏温度。C=5/9(f-32)(2)编程给出三角形三边长,求三角形面积。area=s=(a+b+c)/2提示:用到sqrt()函数,需要包括math.h文件。二、数据的输入输出1、printf()函数printf(格式控制,输出列表)2、格式字符(1)d格式符输出有符号的十进制整数(2)c格式符用来输出一个字符,若将一个0-127之间的整数按字符输出也可以输出ASCII码表中对应的字符,或超过127,则把它的最后一个字节的住处以字符形式输出inta=377;printf(“%c”,a);%c:输出一个字符%5c:指定输出时该字符占几列,除字符以外前面补空格(3)s格式符用来输出一个字符串printf("%s","aaaa");printf("%s%6s%6.3s","ABCD","ABCD","ABCD");%m.n,m为宽度,n为截取字符串中的前n位%m.n,m为宽度,n为截取字符串中的前n位(4)f格式符用来输出实用,包括单精度,双精度,长双精度基本型%f:整数部分全部输出,小数部分输出6位。doublea=1.0;printf("%f\n",a);printf("%f\n",a/3);指定数据宽度和小数位数:%m.nfprintf("%13.15f\n",a/3);//20位的数据宽度,小数点后面的有效位数为15位,双精度只能为15位,单精度只能是6位,当m>n时,小数点后面以n位数显示,整个长度前面补空格,补够m位。当m<=n时,会突破宽度限制,小数点后面显示够n位,整个数字前面不补不空格,但超出有效范围外的数字不能保证正确性。printf(“%*.*f”,m,n,a);第一个*号为m,第二个*号为n第一个*号为m,第二个*号为n输出的数据向左对齐:%-m.nfprintf("%-25.15f,%25.15f\n",a/3,a/3);(5)e格式符按指数形式输出实数默认小数部分占六位,指数部分符号位一位,指数三位。printf("%e\n",123.456);指定数据宽度和小数点后面的有效位数:%m.ne默认右对齐,不够宽度时前方补空格(-m.n为左对齐,后方补空格)若n的长度小于数字实际长度时四舍五入。m、n的大小规则同%f中的规定。printf("********************\n");printf("%20.10e\n",123.4567891256);printf("%20.20e\n",123.4567891256);printf("%20.25e\n",123.4567891256);(6)%o格式符按数在内存中实际存放的值以八进制值输出,没有符号位,若是负数,符号位也一同当作数值部分的值输出。inta=-1;printf("%d\t%o\n",a,a);printf("%15o\n",a);(7)%x格式符以十六进制数输出,原理同%o3、用scanf函数输入数据语法格式:scanf(“格式控制符”,地址表列)格式控制与printf函数相同注:(1)地址表列必须出现的是变量的地址(&a)(2)在格式控制符中若出现格式符以外的字符,在输入数据时也应原样输入,否则数据与格式控制不对应就会出错。#include<stdio.h>voidmain(){ inta,b,c; scanf(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论