C语言提高(课堂PPT)

上传人:日度 文档编号:145317839 上传时间:2020-09-18 格式:PPT 页数:115 大小:329.50KB
返回 下载 相关 举报
C语言提高(课堂PPT)_第1页
第1页 / 共115页
C语言提高(课堂PPT)_第2页
第2页 / 共115页
C语言提高(课堂PPT)_第3页
第3页 / 共115页
C语言提高(课堂PPT)_第4页
第4页 / 共115页
C语言提高(课堂PPT)_第5页
第5页 / 共115页
点击查看更多>>
资源描述

《C语言提高(课堂PPT)》由会员分享,可在线阅读,更多相关《C语言提高(课堂PPT)(115页珍藏版)》请在金锄头文库上搜索。

1、1,第1章 语言提高,2,概述,1.1 基本数据类型、操作符、表达式 1.2 语句 1.3 数组 1.4 指针 1.5 结构和联合体 1.6 函数 1.7 存储类型 1.8 预编译 1.9 有缓冲方式的文件操作及控制台操作 1.10 其它库函数操作,3,1.1 基本数据类型、操作符、表达式,在C语言中,变量的声明格式是: 类型 变量; 例: int x = 5;,4,1.1 基本数据类型、操作符、表达式,5,1.1 基本数据类型、操作符、表达式,6,1.1 基本数据类型、操作符、表达式,unsigned、signed修饰 十六进制、十进制、八进制表示 字符常量表示及编码 转义符(0,n,t等)

2、 逻辑类型的规定,7,1.1 基本数据类型、操作符、表达式,1.1.2 操作符、表达式 1算术操作符,8,1.1 基本数据类型、操作符、表达式,1.1.2 操作符、表达式 2.关系操作符,9,1.1 基本数据类型、操作符、表达式,1.1.2 操作符、表达式 2.关系操作符 “x y 2”的含义 “x” 和 “!x” 作为逻辑表达式的含义,10,1.1 基本数据类型、操作符、表达式,1.1.2 操作符、表达式 3.逻辑操作符,11,1.1 基本数据类型、操作符、表达式,1.1.2 操作符、表达式 4. 位操作符,12,1.1 基本数据类型、操作符、表达式,1.1.2 操作符、表达式 5移位操作符

3、,13,1.1 基本数据类型、操作符、表达式,1.1.2 操作符、表达式 5移位操作符 例1.1:我们可以将x的第3至第7位置为y。 int x=0 x44444444; int y=7; x=(x,14,1.1 基本数据类型、操作符、表达式,1.1.2 操作符、表达式 5移位操作符 例1.2:我们可以将x的第3至第7取到y中,代码如下 int x=0 x44444444; int y; y=(x,15,1.1 基本数据类型、操作符、表达式,1.1.2 操作符、表达式 6条件表达式操作符 “? :” 表达式 例:计算y年的天数:若y是闰年,则366天,否则365天。用C表达如下: isLeap

4、(y)?366:365,16,1.1 基本数据类型、操作符、表达式,1.1.2 操作符、表达式 7. 赋值操作符,17,1.1 基本数据类型、操作符、表达式,1.1.2 操作符、表达式 7. 赋值操作符 应用形式为: 左值 赋值操作符 表达式 例: x%=7 意义是计算 “x%7” 的结果,送给 x 空间,其值是最后 x 的值。 注意:无分号。有分号时是语句。 “x=y=6” 表达正确吗?,18,1.1 基本数据类型、操作符、表达式,1.1.2 操作符、表达式 8逗号表达式 逗号表达式的形式如下: 表达式, 表达式,表达式 例: char c=100; printf(%i,(c+1,c+2,c

5、+3);,19,1.2 语句,赋值语句 文法 赋值表达式; x+; +x; x-; -x;,20,1.2 语句,赋值语句 自加(减)赋值 x+; +x; x-; -x;,例: int x=5; int y; y=x+; printf(nx=%d,y=%d,x,y); x=5; y=+x; printf(nx=%d,y=%d,x,y);,21,1.2 语句,条件语句 文法 if ( E ) S 或 if ( E ) S1 else S2,22,1.2 语句,复合语句 文法 说明部分 语句部分 复合语句书写规范,23,1.2 语句,循环语句 while语句 for语句 do-while语句,24,

6、1.2 语句,循环语句 while语句 while( E ) S,图1.4 while循环的流程图,25,1.2 语句,循环语句 while语句 int getSum(int m) int sum=0; int i=1; while(i=m) sum+=i+; return sum; ,26,1.2 语句,循环语句 for语句 for(S0; E; S1) S,图1.5 for循环语句的流程图,27,1.2 语句,循环语句 do-while语句 do S while( E );,图1.6 do-while循环语句的流程图,28,1.2 语句,break 语句 文法 break; 用于循环和sw

7、itch语句中,表示中止语句执行。,29,1.2 语句,continue 语句 文法 continue; 用在循环语句中,表示跳至循环控制部分,继续循环。,30,1.2 语句,空语句 文法 ;,例: if(xy); x+; y-; 例: for(i=0;i10;i+); . ,31,1.2 语句,goto 语句 文法 goto 标号;,32,1.2 语句,switch 语句 文法 switch(表达式) case I1: S11 S12 S13 case l2: S21 S22 S23 default:S01 S02 S03 ,33,1.2 语句,switch 语句 int k=1; char

8、 c=A; do switch(c+) case A: k*=2; break; case B: k+=2;continue; case C: k%=3; default: k+; case D: k/=3; k+; while(cF); printf(k=%d,k);,34,1.2 语句,return 语句 文法 return ; return 表达式; 前者所在的函数返回类型应是void ;后者所在的函数的返回类型应是非void.,35,1.2 语句,return 语句 void f() . f1(); . void f1() . if(.) return; . ,36,1.2 语句,函数

9、调用 文法 函数名( 实参表 );,37,综合训练,例1.13:“万年历”程序:给定年y,计算y年的日历,即按星期对齐的方式,将y年的日历打印出来。 问题分析: 本问题的求解步骤是 S1 计算y年第一天的星期; S2 计算y年m月第一天的星期; S3 打印y年的日历:对y年的每一月,执行打印操作。,38,综合训练,S1 计算y年第一天的星期; int getYearWeekDay(int y) int sum = 0; int i; if (y = 2000) for (i = 2000; i y; i+) sum += getYearDays(i); return (sum + 6) % 7

10、; else for (i = y; i 2000; i+) sum += getYearDays(i); return ( -sum + 6) % 7; ,39,综合训练,S2 计算y年m月第一天的星期; int getMonthWeekDay(int y, int m) int sum = 0; int i; for (i = 1; i m; i+) sum += getMonthDays(y, i); return (getYearWeekDay(y) + sum ) % 7; ,40,综合训练,S3 打印y年的日历:对y年的每一月,执行打印操作。 void printYear(int

11、y) int i; count=1; for(i=1;i=12;i+) printMonth(y,i); ,41,void printMonth(int y, int m) int i=0; int w; printf(n* %d月 *n,m); w = getMonthWeekDay(y, m); if(w=0) printf(n%-7d,count); count+; else printf( ); for (i = 0; i w; i+) printf( ); for (i = 1; i = getMonthDays(y, m); i+) printf( %7i, i); w+; w %

12、= 7; if (w = 0 ,42,1.3 数组,一维数组 一维数组的声明形式是: 类型 数组变量数组长度; 如:int a 10 ;,a是缓冲区的开始地址,是常地址。,43,1.3 数组,一维数组 ,46,1.3 数组,二维数组 如: int aa23;,47,1.3 数组,二维数组,48,1.3 数组,多维数组 int aaa234;,49,1.4 指针,指针 指针的声明形式是: 类型 * 指针变量; 例如: int * p;,50,1.4 指针,指针 *p表示p所指空间的内容,51,1.4 指针,指针 例1.14: int x=0; int *p; p=,52,1.4 指针,指针 例:

13、 int a10; int *p; p=a;,53,1.4 指针,指针 “*” 和 “ long l=0 xf1f2f3f4; char c4; for(i=0;i4;i+) ci=*(char *) ,55,1.4 指针,指向指针的指针 例1.17: int * *pp;/pp是指向int *空间的指针 int * p; int x; pp=,56,1.4 指针,指向指针的指针,57,1.4 指针,例1.19:命令行参数的获取 int main(int argc,char *argv) int y,m; if(argc=1) printf(nUsage:MyDate year month);

14、 return 0; else if (argc=2) y=atoi(*(argv+1); if(argc=3) m=atoi(*(argv+2); printMonth(y,m); else printYear(y); return 1; ,58,1.4 指针,例1.19:命令行参数的获取,59,1.4 指针,字符串 C语言中的字符串实质上是这个缓冲区的首地址。 一个字符串,它是自标志的,字符串的结束是以0标志的。 常字符串,如 “hello”,60,1.4 指针,字符串操作-拷贝 char * strcpy(char * s1,char * s2) int i; for(i=0;*(s2+

15、i)!=0;i+) *(s1+i)=*(s2+i); *(s1+i)=0; return s1; ,61,1.4 指针,字符串操作-连接 char * strcat(char * s1,char * s2) int i, j; for(j=0;*(s1+j)!= 0;j+); for(i=0;*(s2+i)!=0;i+) *(s1+j+i)=*(s2+i); *(s1+j+i)=0; return s1; ,62,1.4 指针,字符串操作-比较 int strcmp(char * s1,char * s2) int i; for(i=0;*(s1+i)!= 0 ,63,1.4 指针,字符串操作

16、-计算长度 int strlen(char * s1) int i; for(i=0;*(s1+i)!= 0 ;i+); return i; ,64,1.4 指针,考虑下面代码的执行结果: char str25; strcpy(str0,hello); strcpy(str1,hi);,65,1.4 指针,指针数组 int * pInt8; char * str= “请输入整数”, “x=%d”, “除法错误” ;,66,1.4 指针,数组指针 int * pList4; int (* pItem)4;,67,1.4 指针,数组指针 int getTotal(int (* item)4) int i; int sum=0; for(i=0;i4;i+

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 总结/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号