程序设计基础复习C语言

上传人:cl****1 文档编号:570196729 上传时间:2024-08-02 格式:PPT 页数:22 大小:406KB
返回 下载 相关 举报
程序设计基础复习C语言_第1页
第1页 / 共22页
程序设计基础复习C语言_第2页
第2页 / 共22页
程序设计基础复习C语言_第3页
第3页 / 共22页
程序设计基础复习C语言_第4页
第4页 / 共22页
程序设计基础复习C语言_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《程序设计基础复习C语言》由会员分享,可在线阅读,更多相关《程序设计基础复习C语言(22页珍藏版)》请在金锄头文库上搜索。

1、程序设计基础复习程序设计基础复习(C C语言)语言)强制转换:强制转换成所需类型,但原变 量类型不变. 一般形式:(一般形式:(类型名类型名)()(表达式表达式) 例:例: (int)x%y (double)(3/2) (int)3.6 int(x+yint(x+y) )自增、自减运算符:自增、自减运算符:+ + 、-作用:使变量值自动加作用:使变量值自动加1 1或减或减1 1种类:种类:前置前置 +i, -i +i, -i 后置后置 i+,i- i+,i- 例例 j=3; k=+j; j+; j=3; k=+j; j+; j=3; k=j+; +j; j=3; k=j+; +j; j=3;

2、j=3; printf(printf(“%d%d”,+j,j,+j,j+); +); a=3;b=5;c=(+a)*b; a=3;b=5;c=(+a)*b; a=3;b=5;c=(a+)*b; a=3;b=5;c=(a+)*b; 例例: : a=12; a=12; a+=a-=a*a a+=a-=a*a例例: : intint a=2; a=2; a%=4-1; a%=4-1; a+=a*=a-=a*=3; a+=a*=a-=a*=3; /a=-264 /a=-264 等价于等价于a=a+(a=a-(a*a)a=a+(a=a-(a*a) /a=0 /a=0 等价于等价于a=a+(a=a*(a=

3、a-(a=a*3)a=a+(a=a*(a=a-(a=a*3)关系运算注意:关系运算注意:例例 注意区分注意区分“=”与与“=” int a=0,b=1; if(a=b) printf(“a equal to b”); else printf(“a not equal to b”); 1.0/3.0*3.0=1.0 结果为结果为改写为:改写为:fabs(1.0/3.0*3.0-1.0)1e-60示例: printf(“x=%d,y=%dn,x+y=%dn”,3,4,3+4)格式字符格式字符普通字符普通字符转义字符转义字符输出表列输出表列输出结果:输出结果:x=3,y=4 x+y=7v附加格式说明

4、符(修饰符)修饰符修饰符%m.nf对实数对实数,指定小数点后指定小数点后n位数位数(四舍五入四舍五入)对此字符串对此字符串,输出输出n个字符个字符功功 能能%md输出输出m列数据列数据,数据长度数据长度=0&score60 ) printf(grade is E ); else if( score70 ) printf( grade is D); else if(score80 ) printf( grade is C); else if(score90 ) printf( grade is B ); else printf( grade is A ); printf( n ); 例 void

5、 main() int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0: a+; break; case 1: b+; break; case 2: a+;b+; break; case 3: a+;b+; printf(“na=%d,b=%d”,a,b); 运行结果:a=2,b=1例 考虑下面程序输出结果: main() int x=100,a=10,b=20; int v1=5,v2=0; if(ab) if(b!=15) if(!v1) x=1; else if(v2) x=10; else x=-1; printf(“%d”,x)

6、; 结果:-1vfor语句一般应用形式:for(循环变量赋初值循环变量赋初值;循环条件循环条件;循环变量增值循环变量增值)循环体语句;循环体语句;v说明:说明:lfor语句中语句中expr1, expr2 ,expr3 类型任意,都可省略,但类型任意,都可省略,但分号;不可省分号;不可省l无限循环无限循环: for(;)lfor语句可以转换成语句可以转换成while结构结构expr1;while(expr2)循环体语句;expr3;例 用for循环求 #include void main() int i,sum=0; for(i=1;i=100;i+) sum+=i; printf(%d,su

7、m);711x:y:调用前:调用结束:711x:y:例 交换两个数#include void main()int x=7,y=11; printf(x=%d,ty=%dn,x,y); swap(x,y); printf(x=%d,ty=%dn,x,y); void swap(int a,int b) int temp; temp=a; a=b; b=temp;调用:711a:b:711x:y:swap:711x:y:117a:b:temp例例 求求n的阶乘的阶乘#include int f(int n) int c; if(n=0|n=1) c=1; else c=f(n-1)*n; retu

8、rn(c); void main() int n, y; printf(Input a integer number:); scanf(%d,&n); y=f(n); printf(%d! =%15d,n,y); f(5)=f(4)*5 f(4) =f(3)*4 f(3) =f(2)*3 f(2) =f(1)*2 f(1) =1 f(5)=24*5 f(4) =6*4 f(3) =2*3 f(2) = 1*2 回推回推回推回推递推递推递推递推输入n 个数给a0 到 an-1for j=0 to n-2for i=0 to n-2-jajaj+1真假aiai+1输出a0 到 an-1#inclu

9、de void main() int a10,i,j,t; printf(Input 10 numbers:n); for(i=0;i10;i+) scanf(%d,&ai); printf(n); for(j=0;j9;j+) for(i=0;iai+1) t=ai; ai=ai+1; ai+1=t; printf(The sorted numbers:n); for(i=0;i10;i+)printf(%d ,ai);找最大数次数找最大数次数数组内循环比较数组内循环比较从从a0开始,将大数向后移开始,将大数向后移Ch5_201.c输入n 个数给a0 到 an-1for i=0 to n-2

10、for j=i+1 to n-1ajak真假k=j输出a0 到 an-1k=iaiaki != k真假#include void main() int a10,i,j,k,t; printf(Input 10 numbers:n); for(i=0;i10;i+) scanf(%d,&ai); printf(n); for(i=0;i9;i+) k=i; for(j=i+1;j10;j+) if(ajak) k=j; if(i!=k) t=ai; ai=ak; ak=t; printf(The sorted numbers:n); for(i=0;i10;i+)printf(%dn ,ai);

11、例 字符串输入举例#include void main() char a15,b5,c5; scanf(%s%s%s,a,b,c); printf(a=%snb=%snc=%sn,a,b,c); scanf(%s,a); printf(a=%sn,a);scanfscanf中中% %s s输入时输入时, ,遇空格遇空格或回车结束或回车结束运行情况:输入:How are you?例 数组元素与 数组名 作函数参数比较12a调用前a0a112a调用a0a112xy21xy交换12a返回#include void swap2(int x,int y) int z; z=x; x=y; y=z;voi

12、d main() int a2=1,2; swap2(a0,a1); printf(a0=%dna1=%dn,a0,a1);值传递12a调用前12ax调用21ax交换21a返回#include void swap2(int x) int z; z=x0; x0=x1; x1=z; void main() int a2=1,2; swap2(a); printf(a0=%dna1=%dn,a0,a1);地址传递例 数组元素与 数组名 作函数参数比较例 统计后选人选票struct person char name20; int count;leader3=“Li”,0,“Zhang”,0,”Wan

13、g“,0; void main() int i,j; char leader_name20; for(i=1;i=10;i+) scanf(%s,leader_name); for(j=0;j3;j+)if(strcmp(leader_name,leaderj.name)=0) leaderj.count+; for(i=0;i3;i+) printf(%5s:%dn,leaderi.name,leaderi.count); void swap(int *p1, int *p2) int p; p=*p1; *p1=*p2; *p2=p; void main() int a,b; int *p

14、ointer_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);例 将数从大到小输出例 void main() int a =5,8,7,6,2,7,3; int y,*p=&a1; y=(*-p)+; printf(“%d ”,y); printf(“%d”,a0); 输出:5 6pp58762730123456a例 注意指针变量的运算6 void main() int i,*p,a7; p=a; for(i=0;i7;i+) scanf(%d,p+); printf(n); for(i=0;i7;i+,p+) printf(%d,*p);例 注意指针的当前值p=a;pp58762730123456apppppp

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

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