C程序阅读学习教案

上传人:莉**** 文档编号:110340346 上传时间:2022-06-18 格式:PPTX 页数:43 大小:333.48KB
返回 下载 相关 举报
C程序阅读学习教案_第1页
第1页 / 共43页
C程序阅读学习教案_第2页
第2页 / 共43页
C程序阅读学习教案_第3页
第3页 / 共43页
点击查看更多>>
资源描述
会计学1C程序程序(chngx)阅读阅读第一页,共43页。第1页/共43页第二页,共43页。直到main()结束第2页/共43页第三页,共43页。第3页/共43页第四页,共43页。第4页/共43页第五页,共43页。第5页/共43页第六页,共43页。第6页/共43页第七页,共43页。第7页/共43页第八页,共43页。第8页/共43页第九页,共43页。第9页/共43页第十页,共43页。第10页/共43页第十一页,共43页。练习练习2011年年3月一月一(20)有以下程序有以下程序段段int i,n;for(i=0;i8;i+) n=rand()%5;switch (n) case 1:case 3:printf(%dn,n); break;case 2:case 4:printf(%dn,n); continue;case 0:exit(0);printf(%dn,n);以下关于程序段执行情况的叙述,以下关于程序段执行情况的叙述,正确正确(zhngqu)的是的是A)for循环语句固定执行循环语句固定执行8次次B)当产生的随机数当产生的随机数n为为4时结束循环时结束循环操作操作C)当产生的随机数当产生的随机数n为为1和和2时不做时不做任何操作任何操作D)当产生的随机数当产生的随机数n为为0时结束程序时结束程序运行运行返回返回(fnhu)操作系统操作系统产生产生(chnshng)随机数随机数第11页/共43页第十二页,共43页。rand()%100结果是随机数除以100后所得的余数(ysh),即限定随机的范围是在099之间; 使用rand()函数需添加头文件:#include 1. rand()函数函数(hnsh)功能:是一个可以生成随机数的函数功能:是一个可以生成随机数的函数(hnsh)随机随机数数函数(hnsh)返回的随机数在0RAND_MAX(32767)之间;2. srand()函数函数功能:用来设置随机数的种子,一般与rand()结合使用。否则直接用rand()的话,每次运行程序的产生的随机数都相同。n=rand()%5; 产生04的随机数随机函数介绍随机函数介绍第12页/共43页第十三页,共43页。被调函数返回(fnhu)时,形参被撤消,不影响实参的值。第13页/共43页第十四页,共43页。#includeint add(int , int ) ;void main() int a, b, c ; scanf(%d%d,&a,&b) ; c = add(a,b) ; printf(c=%dn,c);int add(int i, int j ) i + + ; j + + ; return ( i + j ); abc int a, b, c ;/ / 例例 值参传递值参传递(chund)(chund)第14页/共43页第十五页,共43页。#includeint add(int , int ) ;void main() int a, b, c ; scanf(%d%d,&a,&b) ; c = add(a,b) ; printf(c=%dn,c);int add(int i, int j ) i + + ; j + + ; return ( i + j ); abc24scanf(%d%d,&a,&b) ;/ / 例例5 5 值参传递值参传递(chund)(chund)第15页/共43页第十六页,共43页。#includeint add(int , int ) ;void main() int a, b, c ; scanf(%d%d,&a,&b) ; c = add(a,b) ; printf(c=%dn,c);int add(int i, int j ) i + + ; j + + ; return ( i + j ); abc24 c = add(a,b) ;/ / 例例5 5 值参传递值参传递(chund)(chund)第16页/共43页第十七页,共43页。#includeint add(int , int ) ;void main() int a, b, c ; scanf(%d%d,&a,&b) ; c = add(a,b) ; printf(c=%dn,c);int add(int i, int j ) i + + ; j + + ; return ( i + j ); abcij2424 int add(int i, int j )/ / 例例5 5 值参传递值参传递(chund)(chund)第17页/共43页第十八页,共43页。24ij#includeint add(int , int ) ;void main() int a, b, c ; scanf(%d%d,&a,&b) ; c = add(a,b) ; printf(c=%dn,c);int add(int i, int j ) i + + ; j + + ; return ( i + j ); abc2424 i + + ; j + + ;/ / 例例5 5 值参传递值参传递(chund)(chund)第18页/共43页第十九页,共43页。#includeint add(int , int ) ;void main() int a, b, c ; scanf(%d%d,&a,&b) ; c = add(a,b) ; printf(c=%dn,c);int add(int i, int j ) i + + ; j + + ; return ( i + j ); abcij2424obj return ( i + j ); / / 例例5 5 值参传递值参传递(chund)(chund)3 + 5第19页/共43页第二十页,共43页。#includeint add(int , int ) ;void main() int a, b, c ; scanf(%d%d,&a,&b) ; c = add(a,b) ; printf(c=%dn,c);int add(int i, int j ) i + + ; j + + ; return ( i + j ); abcij2424obj8 return ( i + j ); / / 例例5 5 值参传递值参传递(chund)(chund)第20页/共43页第二十一页,共43页。#includeint add(int , int ) ;void main() int a, b, c ; scanf(%d%d,&a,&b) ; c = add(a,b) ; printf(c=%dn,c);int add(int i, int j ) i + + ; j + + ; return ( i + j ); abcij24824 c = add(a,b) ;/ / 例例5 5 值参传递值参传递(chund)(chund)obj8第21页/共43页第二十二页,共43页。#includeint add(int , int ) ;void main() int a, b, c ; scanf(%d%d,&a,&b) ; c = add(a,b) ; printf(c=%dn,c);int add(int i, int j ) i + + ; j + + ; return ( i + j ); abc248 c = add(a,b) ;/ / 例例5 5 值参传递值参传递(chund)(chund)第22页/共43页第二十三页,共43页。#includeint add(int , int ) ;void main() int a, b, c ; scanf(%d%d,&a,&b) ; c = add(a,b) ; printf(c=%dn,c);int add(int i, int j ) i + + ; j + + ; return ( i + j ); abc248输出(shch)c = 8 printf(c=%dn,c);/ / 例例5 5 值参传递值参传递(chund)(chund)第23页/共43页第二十四页,共43页。第24页/共43页第二十五页,共43页。.20002010201420042008200C5变量a 变量b(main)9 变量temp 变量y 变量x(swap)55959COPY#include swap(int x,int y) int temp; temp=x; x=y; y=temp;void main() int a,b; scanf(%d,%d,&a,&b); if(ab) swap(a,b); printf(n%d,%dn,a,b);例:函数(hnsh)实现变量值交换值传递(chund)运行运行(ynxng)结果结果:5, 9第25页/共43页第二十六页,共43页。swap(int *p1, int *p2) int p; p=*p1; *p1=*p2; *p2=p;main() int a,b; int *pointer_1,*pointer_2; scanf(%d,%d,&a,&b); pointer_1=&a; pointer_2=&b; if(ab)swap(pointer_1,pointer_2); printf(n%d,%dn,a,b);.20002010201420042008200C2018201C2020.59a b(main)(swap)p1p2p5920002004COPY5例:函数(hnsh)实现变量值交换地址(dzh)传递运行(ynxng)结果:9 5第26页/共43页第二十七页,共43页。#include void f(int n, int *r) if(n%3=0) *r=n+/3; else if(n%5=0) *r=n+/5;void main() int m=6, p=10; f(m, &p); printf(m=%dn,m); printf(“p=%dn,p);例 程序运行后的输出(shch)结果是:( )6m10p6n&pr*r函数调用时:函数调用时:m到将值传递给到将值传递给n,n定义为普通定义为普通(ptng)变变量量p将地址传递给将地址传递给r,r定义为指针变量定义为指针变量函数调用函数调用函数调用函数调用结束结束(jish)27函数调用结束:函数调用结束: 传值的传值的m没有改变没有改变 传地址的传地址的p在函数在函数f中所作的改变保留了下来。中所作的改变保留了下来。*r相当于直接对相当于直接对p操作操作第27页/共43页第二十八页,共43页。第28页/共43页第二十九页,共43页。函数调用用栈管理函数调用用栈管理(gunl) (gunl) 栈是先进后出的数据结栈是先进后出的数据结构构函数调用时入栈操作: 建立被调用函数的栈空间 保护调用函数运行(ynxng)状态和返回地址 传递参数 控制权交给被调用函数函数返回时出栈操作: 返回值保存在临时空间 恢复调用函数运行状态(zhungti) 释放栈空间 根据地址返回调用函数函数嵌套调用函数嵌套调用第29页/共43页第三十页,共43页。main函数函数(hnsh)调用调用(dioyng)a函数函数结束结束a函数函数调用调用b函数函数b函数函数第30页/共43页第三十一页,共43页。递归形式递归形式(xngsh)(xngsh)递归终止条件递归终止条件(tiojin)基本情况基本情况修改修改(xigi)递递归条件归条件第31页/共43页第三十二页,共43页。mainf=fac(4)5fac函数函数(hnsh)n=5f=fac(3)4fac函数函数(hnsh)n=4f=fac(1)2fac函数函数n=2f=fac(2)3fac函数函数n=3f=1fac函数函数n=1fac(1)=1fac(2)=2fac(3)=6fac(4)=24fac(5)=120120第32页/共43页第三十三页,共43页。例例 : 2010年3月第33页/共43页第三十四页,共43页。例:反序输出正整数数字串例:反序输出正整数数字串#include void reverse ( int n ) printf(%d,n%10) ;/输出最右边输出最右边(yu bian)一位数字一位数字 if(n/10!=0) reverse(n/10);/ 求商,递归求商,递归void main () int k ; printf(Input a integer number( 0 ) : n); scanf(%d,&k); reverse(k); printf(n);第34页/共43页第三十五页,共43页。练习练习(linx):有以下程序有以下程序#include fun(intx) if(x/20)fun(x/2); printf(%d,x); main() fun(7);printf(n);程序运行后的输出结果是程序运行后的输出结果是A)1 3 7B)7 3 1C)7 3D)3 7第35页/共43页第三十六页,共43页。h he el ll lo o00hell0 00000c0c1c2c3c4c5c6c7c8c9char *str= “hello”;str第36页/共43页第三十七页,共43页。 char name59=“gain”,“much”,“stronger”, “point”,“bye”; char *name5=“gain”,“much”,“stronger”, “point”,“bye”;g a i n 0s t r o n g e r 0p o i n t 0m u c h 0name0name1name2name3name4b y e 0g a i n 0s t r o n g e r 0p o i n t 0m u c h 0b y e 02.字符串数组的两种实现(shxin)形式二维数组存储空间固定字符(z f)指针数组相当于可变列长的二维数组指针(zhzhn)数组元素的作用相当于二维数组的行名但指针(zhzhn)数组中元素是指针(zhzhn)变量二维数组的行名是地址常量第37页/共43页第三十八页,共43页。练习:练习:有以下程序有以下程序(chngx) fun(char p10) int n=0,i; for(i=0;i7;i+) if(pi0=T) n+; return n; main() char str10=“Mon”, “Tue”, “Wed”, “Thu”,”Fri”,”Sat”,”Sun”; printf(“%dn”,fun(str); 程序程序(chngx)执行后的输出结果是执行后的输出结果是 A)1 N B) 2 C)3 D) 0 第38页/共43页第三十九页,共43页。练习:练习: 有以下程序有以下程序(chngx) #include main() void f(char p10, int n ) /* 字符串从小到大排序字符串从小到大排序 */ char t10; int i,j; for(i=0;in-1;i+) for(j=i+1;j0) strcpy(t,pi); strcpy(pi,pj); strcpy(pj,t); main() char p510=“abc”,”aabdfg”,”abbd”,”dcdbe”,”cd”; f(p,5); printf(“%dn”,strlen(p0); 程序程序(chngx)运行后的输出结果是运行后的输出结果是 A) 2 B) 4 C) 6 D) 3第39页/共43页第四十页,共43页。练习:练习:有以下有以下(yxi)程序程序#includevoid fun(char *p)+p; printf(%sn,*p);main()char *a=Morning,Afternoon,Evening,Night;fun(a);程序的运行结果是程序的运行结果是A)Afternoon B)fternoon C)Morning D)orning第40页/共43页第四十一页,共43页。练习:练习:有以下有以下(yxi)程序程序#includemain()char*a=abcd,ef,gh,ijk;inti; for(i=0;i4;i+)printf(%c,*ai);程序运行后的输出结果是程序运行后的输出结果是A)aegiB)dfhkC)dfhkD)abcdefghijk第41页/共43页第四十二页,共43页。练习练习(linx):有以下程序有以下程序 #include #include void fun(char *s ,int n) char *t; int i,j; for(i=0;in-1;i+) for(j=i+1;jstrlen(sj) t=si;si=sj;sj=t; main() char *ss=“bcc”,”bbcc”,”xy”,”aaaacc”,”aabcc”; fun(ss,5); printf(“%s,%sn”,ss0,ss4); 程序的运行结果是程序的运行结果是AA)xy,aaaacc B)aaaacc,xy C)bcc,aabcc D)aabcc,bcc 第42页/共43页第四十三页,共43页。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!