c程课件goover重点数组、函数指针_第1页
c程课件goover重点数组、函数指针_第2页
c程课件goover重点数组、函数指针_第3页
c程课件goover重点数组、函数指针_第4页
全文预览已结束

下载本文档

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

文档简介

1、重点:数组、函数、指针基本数据类型、运算符、表达式数据 I/O :标准 I/O 函数及使用标准的 I/O 函数及使用IF 语句的三种形式if(表达式)语句序列;(表达式 1 )语句序列 1;prf()scanf()格式控制符分隔符;&ifgetchar()和 phar()elsephar(a) (a=68)101phar(z-25)语句序列 2;gets() 和puts()puts 与 prf(“%s”)的区别数据类型基本类型:整型、实型(单精度、双精度)、字符型、枚举型变量所分配的内存空间大小由变量类型决定。构造类型:数组、结构体指针类型空类型:用于数据类型的转换常量和变量常量:整型(不同进

2、制之间转换)、实型(小数形式、指数形式)、字符常量、字符串常量、符号常量宏:不带参的宏代换(符号常量的定义)if(表达式 1 )语句序列 1; elseif(表达式 2)语句序列 2;elseif (表达式 n)语句序列 n;else语句序列 n+1;if 语句后如果要执行多条语句,必须使用 EG:闰年判断switch带代换switch(表达式) case常量表达式 1:语句组;break;变量:不同类型变量的定义和赋初值case.case常量表达式 2:语句组;break;运算符常量表达式:语句组;break;算术运算符自加、自减运算符:操作对象只能是变量,其他形式错误default:语句组

3、;break; 赋值运算符:(= 、 += 、- = 、/=符右左的数据类型应相同关系运算符逻辑运算符(& 、|、 !)、%=)赋值运算switch(表达式),、char 和枚举型。常量表达式值,必须不相同,如果省略 break 语句,执行结果怎样?各 case 及 default 子句的先后次序,不影响程序执行结果。多个 case 子句,可共用同一语句(组)。switch 语句与 if 语句或 if 语句的嵌套可转换注意(abc)与(ba)两式的不同。惰性C 语言中,所有非 0 的值都看做为真。条件运算符:(xy)?x:y长度运算:sizeof注意运算符的优先级控制语句EG:公司运费计算EG

4、: 五分制和百分制相互转换循环语句循环:在循环条件仍为真时,计算机反复执行的一组语句。while 和do while 语句while (表达式)循环体;do循环体;while(表达式);1区别:do-while 的循环体至少无条件执行一次数组做函数参数函数定义、调用语句EG:求阶乘函数EG:数列函数for 语句EG:求素数函数,输出距离 n 最近的素数EG:求学生 5 门课程的平均成绩循环初值、终值、步长、循环次数EG:求 1 到n 的和EG:求 1 到n 的阶乘之和EG:求 Fibonacci 数列前 40 个数EG:求 x 的 y 次方EG:输出 100200 之间不能被 3 整除能被 5

5、整除的数。EG:输出 mn 之间的全部素数,每行 5 个EG:百钱百鸡 EG:九九表EG:求 n-m 间的所有偶数和EG:水仙花数变量的类别和作用域变量的作用域:变量变量、外部变量/局部变量、全局不同函数中可以使用同名变量形参是局部变量在函数内定义的变量在本函数范围内有效。类别:auto(自动)、 sic(静态)数组一维数组数组的定义、赋初值、输出EG:求全班最高分、最低分及平均分BREAK continue 语句EG:数组排序、逆序、删除、查找BREAK continue 语句区别函数常用的库函数数学库函数、字符串操作函数等用户自定义函数C 程序执行从 main 函数开始,调用其它函数后返回

6、main 函数,在 main 函数中结束整个程序的运行有参数和无参数函数字符数组和字符串字符数组字符指针变量库函数:strcpy()strcmp()strcat()strlen()strupr()strlwr()EG:求串长、大小写转换、比较、连接、查找、删除、EG:从键盘读入一个字符串,将其中所有数字取出一个新串EG:统计单词个数,单词之间用空格分隔EG:输入三个字符串,求最大串函数的返回值类型:缺省默认是时所指定的函数类型所决定型,由定义该函数把程序控制权从函数返回到函数调用的三种方法:(1)当碰到时若无返回值returnreturn;表达式;二维数组若有返回值定义、赋初值 EG:输出矩阵

7、 EG:求最大值EG:求对角线元素和参数传递:传值调用和传址调用函数的嵌套调用指针最大公约数、公倍数指针的定义、初始化、2& :地址运算符(单目)量。* :间接符(单目)(1)(2)普通单个数据:一维数组:*p;a5=用数组表示法和指针表示法拷贝字符串;*p;p=a(或p=&a00);strcpy (s1+2 ,s2+1);Way1:下标法 1void mystrcpy(char *to,char *from)(3)二维数组:a55= ;*p,(*pa)5; p=&a00;pa=a;(4)长度不等的几个一维数组*p3,a12,a23,a310;p1=a1;p2=a2;p3=a3;i=0;whi

8、le(fromi!=0)toi=fromi; toi=0;Way2:下标法 2i+; (5)二级指针:*p;*pa3;p=pa;指针作为函数的参数参照讲义例题void mystrcpy(char *to,char *from)i=0;while(toi=fromi)!=0)Way3:指针法i+;指针表达式和指针的算术运算void mystrcpy(char *to,char *from)while(*from!=0)+ 、- - 、加上一个整数(+或+=)、减去一个整数(-或- = )以及减去另一个指针。指针与一维数组指针和数组的关系*to=*from;to+;from+;*to=0;Way3

9、-2:指针法演变void mystrcpy(char *to,char *from)while(*to+=*from+)!=0);Way3-3:指针法演变void mystrcpy(char *to,char *from)while(*to+=*from+);用多种方法一维数组的各元素#include main()a5 = 1, 3, 5, 7, 9 ;i, *p ;for (i = 0 ; i5 ; i+ )prf (“ %d “ , a i ); prf (“ n “);for (i=0 ; i5 ; i+ )/*第法*/串比较/*第二种方法*/fun(char *s,char *t)Wh

10、ile(*s)&(*t)&(*t+=*s+); Return (*s-*t);prf (“ %d “ , *(a+i) ); prf ( “ n”) ;p=a ;for (i=0; i5 ; i+ )prf (“ %d “, pi); prf(“n”) ;for(i=0 ;i5 ; i+)prf(“ %d” , *(p+i); prf ( ; pa+5 ; p+ ) pr f (“ %d “, *p );prf(“n”);指针与字符串:串操作/*第三种方法*/串连接/*第四种方法*/自己编写函数数组xi与*(x+i), &xi 与x+i行指针:a +i 是指向二维数组第 i 行的指针列指针:a

11、i(或 ai0) 指向二维数组第 i 行第 0 列的指针/*第五种方法*/指针字符串的两种方式:各种方法main()二维数组(1)通过一个字符数组来字符串(2)直接把字符串在内存中的首地址赋值给指针变3aa34=1,2,3,4,5,6,7,8,9,10,11,12;i, j , *p , (*pa)4;法*/puts (aai);/*第for( pa=aa , i= 0 ;i3 ; i+ ) prf (“ n “);for (j=0 ;j4 ;j+)prf (“ %5d “ , paij);指向指针的指针(二级指针)指针数组 /在函数间传递指针数组主要用途:/*第二种方法*/for (pa=a

12、a ; paaa+3 ; pa+ ) prf (“n “); for(i=0 ;i4 ; i+)prf (“%5d “ , (*pa)i );/*第三种方法*/for (p=&aa00 ;p&aa00+3*4 ; p+ )if (p-&aa00 )%4 = = 0 )prf (“n”);返回指针值的函数*fun(结构体a);结构体struct char charcharname name10; sex; addr20;prf(“%5d “ , *p );指针数组与指向指针的指针ap3 ;differ ;struct p=t2;namet1, t25, *p;(*pa)3用途:可用指针数组一维数组显示多个字符串一个二维数组或是几个*(+p).=12;对结构变量的操作:利用指向字符的数组实现#include main( )把结构变量赋给同一种类型的结构变量获取结构变量的地址用 sizeof 运算符确定结构变量的大小。用成员运算符结构变量的成员。 char “;i;*ap3 = “cpu” ,”computer

温馨提示

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

评论

0/150

提交评论