ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:23.62KB ,
资源ID:6485699      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-6485699.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言复习第二十二课Word文档格式.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

C语言复习第二十二课Word文档格式.docx

1、哥德巴赫猜想任意一个大偶数(=4)都可以拆成两个素数之和。【题目:任意读入一个大偶数=6,然后输出被拆成的两个素数。】/*主函数拆分,子函数判断素数*/int PDSS(x)long x;/*与主函数的同名*/int flag=1; long k; for(k=3;k=x-1;k=k+2) if(x%k=0)flag=0;break; return(flag);main()long x; long s1,s2; do%ldx); while(x6|x%2!=0); s1=3; s2=x-s1; while(!PDSS(s1)|!PDSS(s2) s1=s1+2; s2=s2-2;%ld=%ld

2、+%ldn,x,s1,s2);三、自定义子函数的使用说明1、主、子函数的书写不分前后,但是当被调函数书写在主调函数的后面且返回值不为整型int时,必须在主调函数的说明部分(或在函数体外加以说明)对被调函数加以说明:【格式】返回类型名 函数名( );2、主函数一般做主调函数(即使带参数,也只能自己调用自己),子函数通常做被调函数,但也可以做主调函数,调用别的子函数或自己。3、程序的执行总是从主函数到主函数结束,除非遇到exit函数语句。4、return语句的格式:return(表达式);return 表达式 ;格式三:return;【功能】格式一与格式二的功能完全相同:将表达式的值(一个值)带回

3、到主调函数的调用点,且立即终止所在函数的执行。格式三只能终止所在函数的执行并返回主调函数的调用点,但不带回值(因此很少用,通常可以省略)。四、实参与形参之间的关系1、实参和形参在个数、类型、顺序上一一对应一致。2、实参总是单向地传值给形参:传的值有两种(内容或地址),一般,传内容时常常简称“值传递”,传地址时简称“地址传递”。3、实参可以是常量、变量(通常有值)、表达式;形参通常是变量。五、参数的地址传递例1:任意读入两个数,调用函数求得二者的和与积。float x,y,h,j; void HJ();%f%f HJ(x,y,&h,&j);%f,%fn,h,j);void HJ(a,b,p,q)

4、float a,b,*p,*q;*p=a+b; *q=a*b;1、当被调函数没有返回值时,定义时函数名前加void,在主调函数中调用语句的格式:被调函数名(参数系列);省略类型名时,默认int型。2、当需要从被调方获得一个以上的值时,通常使用地址传递。例2:任意读入10个数,然后进行升序排列。【分工:int a10,i; void PX(); for(i=0;i10;i+)%dai); PX(a,10);%dn,ai);void PX(p,n)int *p,n;int i,j; int t; for(j=1;j*(p+i+1) t=*(p+i);*(p+i)=*(p+i+1); *(p+i+1

5、)=t;【说明】(1)当需要将多个值传给被调函数时,通常使用数组名作为实参,同时为了增大被调函数的灵活性,将数组元素的个数也作为实参。(2)与数组名这个实参对应的形参的格式有两种:指针变量 ;通常省略了元素个数的数组。系统会主动将第二种格式转换成相应的指针。void PX(int p , int n)(3)在形参中出现的一维数组,通常省略元素的个数,系统立刻将之转化成相应的指针变量,本例中即为:int *p(4)实参还可以是二维数组的名字,对应形参可以有两种格式:行指针变量 ;通常省略了第一维的行数的二维数组。例3:主函数生成如下5阶方阵,然后调用子函数求得副对角线上所有元素之积,以及方阵所有

6、元素之和,再由主函数输出。1 2 3 4 5int fun(p, he)int (*p)5,*he;int ji=1; int i,j;5; ji=ji*pi4-i; *he=0; for(j=0; *he=*he+pij; return ji; int a55,i,j; int ji,he; aij=j+1; ji=fun(a,&he);JI=%d,HE=%dn,ji,he);int p5,*he;【归纳】形参和实参之间的联系方式(单向传递:实参形参)传递方式 形参 实参(同类型的) 说明 通过函数调用能否改变实参的值值传递 变量 常量、有值的变量、数组元素或表达式 实参必须事先获得合法的值

7、 不能地址传递 “共用存贮单元”实质依然是“遥控” 数组名 数组的地址(数组名、指向数组的指针等) 即使将形参书写成数组名(通常内为空),系统立即转换成相应的指针 能 “遥控” 指针变量 变量(通常原先没有值)的地址、指针变量、数组名等 就是想通过调用函数,使实参获得值(或发生变化) 能6、全局变量与局部变量函数间还可以运用全局变量来交流信息。1. 定义凡是定义在函数体外的变量称为全局变量或外部变量,其作用域从定义处开始直到程序末尾(但是也可以通过exturn拓展其作用域)。凡是定义在函数体内的变量称为局部变量或内部变量,其作用域是本函数体内。而在复合语句开始处定义的变量只在该复合语句中有效。

8、形参也是局部变量。2同名问题同一个函数内的局部变量不可以同名;同一个程序中的全局变量不可以同名;全局变量与局部变量可以同名,在函数体内与局部变量同名的全局变量失效。七、变量的存储类别和生命周期(生存期)1、变量在内存中的存储区域(1)静态区(从程序开始执行到整个结束)(2)动态区(函数调用开始到被调结束)2、存储类别(1)auto型(自动型)只有局部变量(包含形参)可以定义成auto型,定义格式:auto 类型名 变量名;局部变量若定义成auto型,此关键字auto可省略。auto型处于内存的动态区,auto型变量随所在函数被调用才被分配内存空间(活了),一旦调用完毕内存空间被收回(即释放,死

9、了)(2)register型(寄存器型)少量被反复多次使用的变量一般才定义成register型。若定义多了,系统会自动转成auto型。除调用速度更大,其余特性同auto型。只有局部变量(包含形参)可以定义成register型,定义格式:register 类型名 变量名;(3)static型(静态型)全局变量全是静态型的,且通常省略static关键字局部变量也可以定义成静态型,形参不可以定义成静态型。引例:读程题int s,n,i; n=100; for(i=1;=n;i+) s=f(i);,s);int f(int n)static int s=0; s=s+n; return s;以上输出为

10、:5050但若将其中的“static”改为“auto”,则输出为100。静态型变量如果进行初始化(即定义的同时赋予值),只有第一次执行定义语句时随着分配内存赋予初值,当退出所定义的函数时,将保留其当时值。再次调用所在的函数时,将不重新定义,也不进行初始化,此时,该变量值是上次离开时的值。静态型变量如果不进行初始化,系统自动为其赋予“0”值。3、外部变量作用域拓展声明extern举例:void fun(int a)extern y; /*拓展声明*/ a=a*a;,a+y);int y=9; /*定义变量y*/fun(y);【声明格式】extern 原定义类型名 定义在后的全局变量;八、递归调用

11、某子函数直接或间接调用自身,被称为“递归调用”。【引例】5个小孩从大到小一次编号,问5号小孩几岁,告知比4号小2岁;问4号,说比3号小2岁问1号,告知10岁。求5号的年龄。【“栈”的特点:“先进后出”或“后进先出”;有底“无”顶。int age(int n) /*求出n号小孩年龄*/int nl; if(n=1) nl=10; else nl=age(n-1)-2; return nl;printf(,age(5);1、能够运用“递归”解决的问题的特点: (1)递归的出口(1号说出年龄) (2)有重复的操作例:求n!【分析: (1) n!=(n-1)!n (2) n=1 (n=0或1) 】#i

12、nclude int n; /*n=0,n=20*/ long JC(); FILE *fp; if(fp=fopen(D:my1.out,w)=NULL) printf(Open File Errorn);exit(0);n); while(n20);%ldn,JC(n); fprintf(fp,20090901007 fclose(fp);/*子函数求任意合法数的阶乘*/long JC(int n)long jc; if(n=0|n=1) jc=1; jc=JC(n-1)*n; return(jc);2、好多能用循环解决的问题都可以改用递归描述。例如:、进制转换等。但是,不提倡,因为递归的

13、时间和空间复杂度高!九、函数的指针函数名就是函数的首地址。int max(a,b)main() int (*fp)(); fp=max; z=(*fp)(x,y);1、定义所指函数的返回值类型 (*指针名)( );2、说明(1)*和指针名是一个整体,外加()提高优先级。(2)后一个()也不能省,表示所指的是函数。(3)定义时的“类型名”,必须和所指函数定义时的“类型名”一致,若无返回值则用void。(4)定义后使用前,必须先赋值“函数名”(因为函数名就是函数的首地址)(5)凡是写“函数名”的地方(除定义函数外)从此可以用“(*指针名)”替代。十、主函数的参数主函数(main)可以带参数,但只能

14、是两个,且格式如下:int argc, char *argv;或int argc, char *argv ;(1)第一个参数必须是整型,名字公认写成“argc”,但可以自定;(2)第二个参数是指向字符串的指针数组。名字公认写成“argv”,但可以自定;(3)任何函数不可以调用主函数,因此实参的给定必须在DOS环境下给出。 练习题 一、选择题 (1)C 语言总是从( )函数开始执行。A. main B. 处于最前的 C.处于最后的 D. 随机选一个 (2)函数在定义时,省略函数类型说明符,则该函数值的类型为( ) A. int B. float C. long D. double (3)以下(

15、)函数,真正地没有返回值。A. int a()int a=2;return (a); B. void b()printf(c C. int a()int a=2;return a; D. 以上都是 (4)在 C 语言中,有关函数的说法,以下正确的是( ) A. 函数可嵌套定义,也可嵌套调用 B. 函数可嵌套定义,但不可嵌套调用 C. 函数不可嵌套定义,但可嵌套调用 D. 函数不可嵌套定义,也不可嵌套调用 (5)以下函数调用语句中,含有实参的个数为( ) fun(2,3),(4,5+6,7);A. 1 B. 2 C. 5 D. 6(6)函数调用可以在( ) A. 函数表达式中 B. 函数语句中

16、C. 函数参数中 D. 以上都是 (7)被调函数返回给主调函数的值称为( ) A. 形参 B. 实参 C. 返回值 D. 参数 (8) ( ),可以不进行函数类型说明。A. 被调函数的返回值是整型或字符型时 B. 被调函数的定义在主调函数定义之前时 C. 在所有函数定义前,已在函数外预先说明了被调函数类型 D. 以上都是 (9)被调函数通过( )语句,将值返回给主调函数。A. if B. for C. while D. return (10)被调函数调用结束后,返回到( )。A.主调函数中该被调函数调用语句处 B.主函数中该被调函数调用语句处 C.主调函数中该被调函数调用语句的前一语句 D.主

17、调函数中该被调函数调用语句的后一语句(11)以下对 C语言函数的有关描述中,正确的是( )。A. 在 C 中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 B. C函数既可以嵌套定义又可递归调用 C. 函数必须有返回值,否则不能使用函数 D. C程序中有调用关系的所有函数必须放在同一个源程序文件中 (12)C 语言中函数的隐含存储类型是( )。A. auto B. static C. extern D. 无存储类型 (13)能把函数处理结果的两个数据返回给主调函数,在下面的方法中不正确的是( )。A. return 这两个数 B. 形参用两个元素的数组 C. 形参用两个这种数据

18、类型的指针 D. 用两个全局变量 二、填空题 (1) 变量的作用域主要取决于变量 ,变量的生存期既取决于变量 ,又取决于变量 。(2) 说明变量时,若省略存储类型符,系统默认其为 存储类别,该存储类别的类型符为: 。(3) 静态型局部变量的作用域是 ,生存期是 。(4) 函数中的形参和调用时的实参都是数组名时,传递方式为 ,都是变量时,传递方式为 。(5) 函数的形式参数的作用域为 ,全局的外部变量和函数体内定义的局部变量重名时, 变量优先。(6) 若自定义函数要求返回一个值,则应在该函数体中有一条 语句,若自定义函数要求不返回一个值,则应在该函数说明时加一个类型说明符 。(7) 若函数的形式

19、参数是指针类型,则实参可以是 、 或 。(8) 函数的参数为 char *类型时,形参与实参结合的传递方式为 。(9) 函数的实参为常量时,形参与实参结合的传递方式为 。(10) 对数组按值从大到小的顺序排序后输出,请填空。void main() float a7=2,6,3,8,3,12,9; int i; void sort(float*,int); ;7;i+) printf(%f nvoid sort( ) int i,j,k; float t;n-1;i+) k=i; for(j=i+1;n;j+) if( ) k=j; t=*(p+i); *(p+i)=*(p+k); *(p+k)

20、=t; (11) 下列函数在 n 个元素的一维数组中,找出最大值、最小值并传送到调用函数,请填空。 #include void find(float *p, float *max, float *min, int n) int k; *max=*p; for(k=1;k+) t=*(p+k); if( ) *max=t; if(t*min) *min=t;三、程序执行题 (1) main() int i=1,p; p=fun(i,i+1);,p); int fun(int a,int b) int f;b) f=1; else if(a=b) f=0; else f=-1; return f;

21、 输出:(2)键盘输入 abcdefvoid fun( ) char c ; if(c=getchar( )!=n) fun( ) ; putchar(c);void main( ) fun( ); 输出:(3) #define C 5 int x=1,y=C; int x; x=y+;%d %dn, x,y); if(x4) int x ; x=+y;,x,y) ; x+=y-;,x,y);(4) int c , a=4 ;func(int a , int b) c=a*b ; a=b-1 ; b+ ; return (a+b+1) ; int b=2 , p=0 ; c=1 ; p=fun

22、c(b , a) ;%d,%d,%d,%dn, a,b,c,p) ;(5) unsigned fun6(unsigned num) unsigned k=1; do k*=num%10; num/=10; while(num); return k; unsigned n=26;, fun6(n);时间:2012年11月14号 热点作文5 Directions: For this part, you are allowed 30 minutes to write a composition on the topic Secondhand Goods. You should write at le

23、ast 150 words, and base your composition on the outline (given in Chinese) below:1)目前购买二手货的人越来越多2)分析产生这一现象的原因3)二手货交易可能带来的问题【思路点拨】本题属于提纲式文字命题。提纲第1点指出一种现象,提纲第2点要求分析该现象产生的原因,提纲第3点要求谈谈该现象可能带来的问题,由此可判断本文应为现象解释型作文根据所给提纲,本文应包含以下内容:描述目前二手货的交易现状;说明二手货交易增加的原因;分析二手货交易可能带来的问题。 【参考范文】Secondhand Goods In recent y

24、ears, second-hand transactions have become quite common. Nowadays there are more and more secondhand goods in the market, such as secondhand books, furniture, appliances, cars, and so on. Why do so many people like to buy secondhand goods? The following reasons can account for this phenomenon. Above all, secondhand goo

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2