C语言60分攻略_第1页
C语言60分攻略_第2页
C语言60分攻略_第3页
C语言60分攻略_第4页
C语言60分攻略_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

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

文档简介

1、.,C语言补习,60分攻略,.,基本概念,汇编语言编写的程序必须经汇编为目标程序。 高级语言编写的程序必须经编译为目标程序。 C语言程序总是从main()函数开始执行 ,到main()函数结束。因此, C语言程序至少有一个main()函数。,.,一、C语言的数据表示,1. 1 常量和变量 1. 2 表达式 1. 3 数据类型 简单类型、结构类型、指针类型 1.4 输入、输出,.,1.1 常量和变量,1.常量 常量是在程序执行中,值不发生改变的数据。其值预先决定,之后不变。有不同的数据类型。,(1)常数(有的称直接常量、页面常量) 例如的: 整数:+5 、-3、017(八进制)、0 x1f(16

2、进制) 实数(浮点数):3.14 、-1.2E-3 、1E10 单个字符: A,占一个字节 ,转义字符 非法 77 (八进制ASCII码63,?),78非法 x3f (十六进制ASCII码63,?) x3g非法 字符串: “A” 后面有0,占两个字节,E3,2E3.0不合法,不是整型量,占一个字节,.,字符串“*077x7fn”的长度是: 下列是整型常量的是: 0.0 0L 0 x7f 057 058 2/2.0 下列是实型常量的是: -1E-3 E10 1E2 3.14 1.2E2.3 “x7F”和 x7F的字节数分别为:,5,2 1,.,(2)符号常量 给常量起标识符名字。 C语言的符号常

3、量(用宏定义): #define PI 3.14159265 注意: 1.一般用大写字母。 2, #define M 3 不是C语句,后面没有“;”。 3.可以做M+1,不能做M+.,(3)地址常量 当数组在定义时,其变量名为其首地址,是地址常量。 int a10;可以做a+1,不能做a+.,.,1.1 常量和变量,2 变量 用各种操作来改变值数据。 从“名”和“值”两个角度认识变量,(1)变量名 每个变量,要在使用前定义变量的名字,遵循标识符命名规则。 只能用字母、数字和下划线组成。 不能以数字开头。 不能用保留字(int,printf,main.)。,合法 a12 a_3 _abc,非法

4、12a a# int,.,变量定义就是申请数据的存储空间,登记数据的各种存储特性。 例如: int m ;2个字节 long n; 4个字节 char ch; 1 个字节 float x; 4个字节 double y; 8个字节 可以用sizeof获得字长 sizeof(char)=1 sizeof(int)=2 sizeof(double)=8,.,(2)变量的值 变量值就是由变量名所指定空间上的存储数据内容。即变量的当前值。 数据内容用语言的操作语句来改变。 赋值语句;键盘输入语句; char chx; int m; /* 变量的定义 */ chx=A; m=12*3; /* 赋值语句 *

5、/ scanf(“%d”, /* 键盘输入语句 */,变量初始化:定义变量时同时确定变量初值。 例如: char chy=a; int weight=2;,.,1.2 C语言的表达式,1、算术表达式 2、关系表达式 3、逻辑表达式 4、赋值表达式 5、逗号表达式 6、条件表达式 7、其他表达式,C语言的表达式: 使用规定的运算符, 将常量、变量、函数(调用)连结的一个有意义的式子。,.,1、算术表达式,用算术运算符来表示对数据的算术运算求值过程。 算术运算符: + - * / % 2/3结果是0,2%3结果是2,5/2结果是,5%2结果是,.,2、关系表达式,关系运算符: = = (优先级较高

6、) != = (优先级较低) 关系表达式的结果:1(非0,真) ,0(假) 分析:10=a=15 a=9 是假,10=a=15,10=a 假 0,0=15 真,所以要写成105?10:3; a=?,赋值运算符优先仅高于逗号运算符 a=(b5?10:3);,3,k=(- -a=b+)? -a : b +;,k=?,1,1,非0 真,.,6、逗号表达式 表达式的值等于最后一个表达式的值,运算等级最低! a=5,b=2,c=3 a=7+b+c, b+ a=(7+b+c, b+),a=12,a=2,7、强制类型转换表达式(单目) int m; sqrt(float) m);,a=5,a+5,a+=a,

7、a=10,.,理解记忆运算符表,右结合 单目运算符 赋值运算符,b=2 a=5-(-b),()优先级最高, -b右结合,-优先级其次,=优先级最低,-b,b=b-1,b为1,再做5-b,即5-1等于4,最后将4赋给a,.,1.3 数据类型,简单类型,构造类型,指针类型,整型,实型,字符型,数组,结构体,共用体,数值型,枚举型,空类型,int 2个字节,long 4个字节,float 4个字节,double 8个字节,char 1个字节,成员类型字节数个数,struct 各成员字节数之和,union 各成员字节数之最大者,存放地址,与所指数据类型无关,2个字节,不要求,不要求,.,1. 3 数据

8、类型,(1)整型 类型名 字节数 输入、输出格式 int 2 %d short 2 %d long 4 %ld (2) 实型,1.简单类型,类型名 字节数 输入、输出格式 有效数字位 float 4 %f 7 doubule 8 %lf 16 long doubule 16 %lf 19,.,(3) 字符型(输入、输出格式 “%c”) ASCII码,一个字符占1字节; char型数据与int型数据之间的关系 char型对应其ASCII码,只不过是占一个字节 。大写字母与小写字母之差为32. char型变量既能以%c字符格式输出,也能以%d整型格式输出。能象int量一样进行算术运算。 注意转义字

9、符 的使用。 n * 101 (A,8进制) x41(A,16进制),char ch=k; printf(“%d,%c”,ch-32, ch-32);,107,K,.,(4)字符串(输入、输出格式 “%s”) 所谓“字符串”是指若干有效字符的序列。语言字符串可以包括字母、数字、专用字符、转义字符等。 字符串常量:使用双引号 China BASIC a+b=c Li-Li “39.4” “%dn” “解放军“ “*077x7fn” 字符型的一维数组(相当于字符串变量) char st8, str10; strcpy(st,12345); strcpy(str,st); 不能st=“12345”;

10、 str=st;这是赋值. 可以char st= “12345”; 这是初始化.,.,2. 结构类型 “结构”一般可以称为数据元素,在不同的结构类型中,数据元素会有特定的名称。 结构类型的数据由更加基本的成分组成。 这些成分称为“数据项”,结构的子成员。,1. 3 数据类型,.,(1) 数组 a0 a1 a2 a3 a4 a5 a6 a7 10 20 30 40 50 60 70 80 一个数组(array )是由相同类型的若干数组元素构成的有限序列。 C 语言的数定义 : int b8 , a8 ; char c10;,2. 结构类型,元素下标从0开始,.,例 日期类型的定义,(2) 结构体

11、,C语言中实现: struct Date int month ; /*月*/ int day; /*日*/ int year; /*年*/ ; struct Date myd=12,16, 1978; 系统分配给它的内存是各成员所需内存量的总和。本例是6.,.,(1)指针:变量名的在内存中的存储地址。 (2)指针变量 int i=12, *p; P= 把存放变量i 的地址的变量p 称作指针变量。 指针变量的存放内容是数据的地址。,3. 指针类型(放弃),(3)指针引用变量 指针变量可以指向各种不同的数据类型,因此指针变量也要有不同的指针类型。如: int m, *p; float x,*q;

12、int a,*r m=12; p=,注意:是否用 main() . printf(“max=%cnmax_i%d=”,max,max_i);,max=,原样输出,换行,g,3,原样输出,max_i=,注意输出格式,.,1.4 输入、输出,输入: scanf(“.”, .) %d, %ld 对应int long %c, %s 对应char char str %f , %lf 对应flaot double,常见错误 int a,b;char d,e20; scanf(%d,%fn”,n要多输入一个值 缺 int m; 编译预处理 宏定义 #define PI 3.14159 文件包含处理 #inc

13、lude ,二、C语言的程序结构与相关语句,.,带参宏定义,以文本按原样展开 #define MUL(x) x*x,5/MUL(5+3)=5/5+3*5+3=19,#define MUL(x) (x)*(x),5/MUL(5+3)=5/(5+3)*(5+3)=5,#define MUL(x) (x)*(x),5/MUL(5+3)=5/(5+3)*(5+3)=5/64,.,1. 表达式语句的组成: 由一个表达式后接一个分号组成的。,一组语句括在一对花括号之中,称复合语句。 c=getchar(); putchar(c); 注意,一个复合语句的后花括号之后不应再写分号。 在语法上是一个整体,相当于

14、一个语句。 凡是能够使用简单语句的地方,都可以使用复合语句。一个复合语句中又可以包含另一个或多个复合语句。,从键盘输入一个字符,并赋给c,以字符形式输出字符变量的值c,.,完成一定的控制功能。9种控制语句: 判断语句 条件判断语句 if()else 多分支选择语句 switch()case 循环语句 循环次数控制语句 for() 先判断后执行循环控制语句while() 先执行后判断循环控制语句dowhile() 转移控制语句 直接转移语句 goto 终止语句 break(用在循环结构、swicth) 跳转语句 continue (仅用在循环结构) 返回语句 return,流程控制语句,.,二、

15、C语言的程序结构与相关语句,程序的三种基本结构: 顺序结构 选择结构 if()else switch()case 循环结构 for().; while(); do ; while(),.,选择结构,单分支结构 if(a=b)printf(“yes”); 双分支结构 if(a=b) printf(“yes”); else printf(“no”); 多分支结构 switch_case,不能写成a=b,.,多分支选择语句,switch(表达式) case 常量表达式1: 语句序列1; break; case 常量表达式2: 语句序列2; break; case 常量表达式n: 语句序列n; bre

16、ak; default:语句序列n+1; ,根据“表达式”的值从上至下去寻找与表达式的值相匹配的“case常量表达式”,执行一个分支后,再执行下一个分支,直到break结束,然后执行switch结构后面的程序。 找不到匹配的入口标号时,执行“语句序列n+1”,然后结束。顺序向下执行程序。,.,main() int a=1,b=1; switch (a) case 1: switch (b) case 0:printf(“$”);break; case 1:printf(“#”);break; case 2:printf(“*”); case 2:printf(“”); case 3:print

17、f(“”); break; case 4:printf(“ ,a=1 case 1:swtch(1) b=1 printf #, break 跳出switch(b)结构 进入switch(a)结构 case 2:printf case 2:printf break 跳出switch(a)结构,#,.,for,while,do-while三种结构,循环变量初始化,继续循环条件,改变循环变量是不可缺少的三个环节。 for常用于循环次数已知的问题中。括号中的两个“;”不可省。 while与do-while常用于循环次数未知的问题中。,.,注意,在for和while语句之后一般没有分号 有分号表示循环

18、体就是分号之前的内容(空循环体) while (i 0; -x ) y *= x; printf(“%ld”,y);,main( ) int m, n; long cmn, facto( ); scanf (%d%d, ,求C(m,n) = m!/(n!*(m-n)!),.,数组的定义 类型标识符 数组名常量表达式,错误的定义是: 或 int n; int n=10; scanf(%d,定义int a5时, a0,a1.=?,随机数!,只有int a5=3后,后面几项自动赋0,三 数组,.,数组的初始化,合法: int a=1,2,3,4,5; int i 3=1,2,3,4,5,6; int

19、 a5=1,2,3; char a4=“boy” char a3=b,o,y,不合法: int a5=,2, ,4,5; int i2 =1,2,3,4,5,6; int a5= ; char a4=boy,.,用数组元素下标法访问数组元素。,#include void main() int a5=1,3,5,7,9, i, *p; for(i=0;i5;i+)printf(%d , ai ); printf(n);,从0开始,或 i=4,.,写程序框架(用函数),函数说明语句; mian() 定义变量; 输入数组; 调函数处理数组; 输出结果 ; ,函数首部 定义函数内部变量; 处理数组; 返回(非void用); ,.,用函数实现数组操作,数值数组 void inv(int x,int n); main() int i,j,a10; for(i=0;i10;i+) scanf(“%d”,ai); inv(a,10); for(i=0;iM;i+) printf(“%d”,ai); ,字符数组 void inv(char x) main() int i,j;char a50; gets(a); inv(a); puts(a); ,多一个参数,表示元素个数,可以整体输入,输出,必须单个输入,输出,.,数组的操作往往用循环结构.,数值数组 int a10; for(i=0;i

温馨提示

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

评论

0/150

提交评论