C语言讲解思路_第1页
C语言讲解思路_第2页
C语言讲解思路_第3页
C语言讲解思路_第4页
C语言讲解思路_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、C语言讲解思路1, 认识C语言的组成:#include <stdio.h>main()printf("Hello, worldn");构成:包含预定义文件、函数体、主函数一个C程序有且只有一个main函数2, printf函数printf("Hello, worldn");printf(“%d,%d”,a,b)3, scanf函数scanf(“%d,%d”,&a,&d);scanf(“%d %d”,&a,&d);定义的格式即为输入的格式& 符号必需,取地址。格式字符 意义d以十进制形式输出o以8进制形式

2、输出x,X以16进制形式输出u以16进制形式输出f以小数形式输出e,E以指数形式输出c输出单个字符s输出字符串4, 变量定义与赋值int a;int a,b,c;int a = 0;int a = 0,b=0;数据类型类型说明符字节数值范围字符型char1整形int2-32768-32767短整形short int2-32768-32767长整形long int4-214783648-214783647单精度实型float43/4E-38-3/4E+38双精度实型double81/7E-308-1/7E+3085, 常量常量:在程序执行中其值不改变就叫常量变量:在程序执行过程中值会发生变化在C

3、语言中常量可直接拿来使用,如 x= y*10 ;10就是常量字符常量是用单引号括起来的一个字符。例如'a','b','=','+','?'都是合法字符常量。字符串常量用双引号括起来的一个字符串,如“abcdef”。但“a”占2个字节,a占一个字节数字常量直接写就可以,5和5是不同的,5可参加运算,5不可常量也可用来定义(荐)#define PI 3.14159void main()  float s,r;  r=5;  s=PI*r*r; 

4、60;printf("s=%fn",s);6, 转义字符转义字符是一种特殊的字符常量。转义字符以反斜线""开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符。例如,在前面各例题printf函数的格式串中用到的“n”就是一个转义字符,其意义是“回车换行”。转义字符主要用来表示那些用一般字符不便于表示的控制代码。常用的转义字符及其含义转义字符 转义字符的意义n 回车换行t 横向跳到下一制表位置v 竖向跳格b 退格r 回车f 走纸换页 反斜线符""' 单引号符a 鸣铃ddd 13位八进制数所代表

5、的字符xhh 12位十六进制数所代表的字符7, 强制类型转换其一般形式为: (类型说明符) (表达式)1.类型说明符和表达式都必须加括号(单个变量可以不加括号),如把(int)(x+y)写成(int)x+y则成了把x转换成int型之后再与y相加了。2.无论是强制转换或是自动转换,都只是为了本次运算的需要而对变量的数据长度进行的临时性转换,而不改变数据说明时对该变量定义的类型。main()  float f=5.75;  printf("(int)f=%d,f=%fn",(int)f,f); f<-5.75将float f强制转换

6、成int f float f=5.75;printf("(int)f=%d,f=%fn",(int)f,f); 本例表明,f虽强制转为int型,但只在运算中起作用, 是临时的,而f本身的类型并不改变。因此,(int)f的值为 5(删去了小数)而f的值仍为5.75。8, 运算符和表达式算术运算符:+、-、×、/、%、+、关系运算符:>、=、<、=、>=、<=、!=逻辑运算符:&&、|、!、位操作符:&(位与)、|(位或)、(位非)、(位异或)、<<(左移)、>>(右移)赋值运算符:=、+=、-=

7、、*=、/=、%= &= |= = >>= <<=条件运算符:?:(三目运算符)逗号运算符:用于把若干表达式组合成一个表达式(,)指针运算符:用于取内容(*)和取地址(&)求字节数运算符:sizeof特殊运算符:()、->LPCSTR(Pointer to a constant null-terminated string of 8-bit Windows (ANSI) Characters.)指向以null结尾的常量字符串的指针自增自减:+i/-i: i自增(减)1后参与其他运算i+/i-: i 参与运算后在增加或减1x = + I (I = I

8、 +1 ; x = i)x=i+ (x=I, I = i+1)例子:赋值表达式+=,-=,*=,/=,%=,<<=,>>=,&=,=,|=X-=10 X= x-10逗号表达式逗号表达是的求解过程是先求解表达式1,再求解表达式2,一直到最后,最终的表达式结果是最后一个表达式的值。X=(1+2,3+5) 结果 x=7X=(y=3,4*5) 结果 y=3,x=20优先级及结合性优先级运算符类型运算符 结合性1基本运算符() ->自左至右2单目运算符! + - - -(负数) *(指针) &(取址) sizeof自右至左3算术运算符* / %自左至右4算术

9、运算符+ -自左至右5移位运算符<< >>自左至右6关系运算符> >= < <=自左至右7关系运算符= !=自左至右8按位与运算符&自左至右9按位异或运算符自左至右10按位或运算符|自左至右11逻辑与运算符&&自左至右12逻辑或运算符|自左至右13条件运算符? :自右至左14赋值运算符= += -= *= /= %= >>= <<= &= = |= 自右至左15逗号运算符,自左至右练习19, 控制语句if(表达式) 语句;void main()int a,b,max;printf("

10、;n input two numbers: ");scanf("%d%d",&a,&b);max=a;if (max<b) max=b;printf("max=%d",max);if(表达式) 语句1; else 语句2;void main()int a, b;printf("input two numbers: ");scanf("%d%d",&a,&b);if(a>b)printf("max=%dn",a);elseprintf(&quo

11、t;max=%dn",b);if(表达式1) 语句1; else if(表达式2) 语句2; else if(表达式3) 语句3; else if(表达式m) 语句m; else 语句n; #include"stdio.h"void main()char c;printf("input a character: ");c=getchar();if(c<32)printf("This is a control charactern");else if(c>='0'&&c<=&#

12、39;9')printf("This is a digitn");else if(c>='A'&&c<='Z')printf("This is a capital lettern");else if(c>='a'&&c<='z')printf("This is a small lettern");elseprintf("This is an other charactern");switc

13、h(表达式) case常量表达式1: 语句1; case常量表达式2: 语句2; case常量表达式n: 语句n; default : 语句n+1; void main()int a;printf("input integer number: ");scanf("%d",&a);switch (a) case 1:printf("Mondayn");case 2:printf("Tuesdayn");case 3:printf("Wednesdayn");case 4:printf(&q

14、uot;Thursdayn");case 5:printf("Fridayn");case 6:printf("Saturdayn");case 7:printf("Sundayn");default:printf("errorn");void main()int a;printf("input integer number: ");scanf("%d",&a);switch (a)case 1:printf("Mondayn");bre

15、ak;case 2:printf("Tuesdayn"); break;case 3:printf("Wednesdayn");break;case 4:printf("Thursdayn");break;case 5:printf("Fridayn");break;case 6:printf("Saturdayn");break;case 7:printf("Sundayn");break;default:printf("errorn");while(表

16、达式)#include <stdio.h>void main()int n=0;printf("input a string:n");while(getchar()!='n') n+;printf("%d",n);do语句; while(表达式);for(表达式1;表达式2;表达3)表达式1通常用来给循环变量赋初值,一般是赋值表达式。也允许在for语句外给循环变量赋初值,此时可以省略该表达式。表达式2通常是循环条件,一般为关系表达式或逻辑表达式。表达式3通常可用来修改循环变量的值,一般是赋值语句。这三个表达式都可以是逗号表达式

17、, 即每个表达式都可由多个表达式组成。三个表达式都是任选项,都可以省略。void main()int n,s=0;for(n=1;n<=100;n+)s=s+n;printf("s=%dn",s); 各语句间可以相互嵌套。10, 转移语句 GotoContinue;BreakReturn练习211, 数组 一维数组 a20 (a0a19) (a0,a1,a2,a3,a4,a5,a6,a7,a8,a9)二维数组a1010 (a00a99)A00, a01,a02a09A10,a11,a12a19,A90,a91,a92a99定义:一维: int a10; char bc

18、9;二维:int a1010; float bf23赋值:一维:a10=1,2,3,4,5,6,7,8,9,10 二维:a23 = 1,2,3,4,5,6a23 = 1,2,3,4,5,6b10=I, ,a,m, ,a, ,b,o,yb10=“I am a boy”没有赋值的会自动赋值为0.,或为空,NULL。字符性如果长度和定义相同,赋值时可省略长度。操作:Scanf(“%s”,a); /输入遇空格、Tab、Enter标志结束Scanf(“%c”,&a3)Printf(“%d”,a5);Printf(“%s”,a)main()int a23=1,3,5,2,4,6;int b32,i

19、,j;for(i=0;i<2;i+)for(j=0;j<3;j+)bji = aij;for(i=0;i<3;i+)for(j=0;j<2;j+)Printf(“%d”,bij);Printf(“n”);getch();字符串的函数: puts(字符串数组) 将字符串输出到终端 gets(字符串数组) 从终端得到字符串 strcat(字符串数组1, 字符串数组2) 连接两个字符串 strcpy(字符串数组1, 字符串数组2) 将字符串2拷贝到字符串1 strcmp(字符串数组1, 字符串数组2) 比较字符串1和字符串2,相等为0,字符串1大为1,小为-1 strlen(

20、字符串数组) 测试字符串的长度 strlwr(字符串) 将大写字母换成小写字母 strupr(字符串) 将小写字母换成大写字母12, 指针运算符:* &定义:int *p; char *p; float *p; int a; 含义:*p:实际的变量,等同于 a(变量), a0(一维),a00(二维)P:等同于&a(变量), a (一维),a 0(二维)&p:等同于&(&a)(变量), &a (一维),a (二维)赋值:*p = 5;P=&a; ó *p=aP = a;X p=5; X 操作: *p+1 ó a+1(变量

21、) a10+1(一维) p+1ó &a+1 (变量) a+1=&a1 (一维) *(p+1) óa113, 文件定义:FILE *fp;函数:打开:fopen(文件名,模式)例: fopen(“d:filefile1.txt”,”r”);文件的使用方式文件的使用方式含义备注“r”(只读)为输入打开一个文本文件不能打开不存在的文件“w”(只写)为输出打开一个文本文件若原文件不存在,可新建。若原来的文件存在,则覆盖“a”(追加)向文本文件尾增加数据在原文件末尾添加数据“rb”(只读)为输入打开一个二进制文件“wb”(只写)为输出打开一个二进制文件“ab”(追加)向二进制文件尾增加数据“r+”(读写)为读/写打开一个文本文件“w+”(读写)为读/写新建一个文本文件“a+” (读写)为读/写打开一个文本文件“rb+”(读写)为读/写打开一个二进制文件“wb+”(读写

温馨提示

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

评论

0/150

提交评论