一语法.ppt

上传人:京东小超市 文档编号:6096241 上传时间:2020-09-08 格式:PPT 页数:35 大小:109KB
返回 下载 相关 举报
一语法.ppt_第1页
第1页 / 共35页
一语法.ppt_第2页
第2页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《一语法.ppt》由会员分享,可在线阅读,更多相关《一语法.ppt(35页珍藏版)》请在三一文库上搜索。

1、一、语法,标识符: 由字母、数字和下划线三种字符组成,且必须以字母或下划线开头。 关键字不能作为用户定义的标识符。 用户定义标识符: 合法: char2 _abc a3 P1 max 等 不合法: int p.i break 3a a+b等 常量: 合法: n 102 0 t 2L 72等 不合法: ABC 1.2e0.5 M 等 基本数据类型 :整型、实型、字符型,及令埔惹怂柠畦清弹磨冷穗载匈烫谓行浓面磐脑多挑蛋信乾喊瀑萝喳烃舜一语法一语法,(一)运算符和表达式: 1. 结合性及优先级 (p16) 例: a+=a*=2 a+=(a=a*2) a=a+(a=a*2) 若初始情况下a=3,则执行

2、上述运算后a=?,12,2. 对操作数的要求 (1) (i+j)+, 3+ () +,- - 只能对变量操作 (2) a%b %两边的操作数必须为整型 (3) a,b若为整型,则a/b为整除 1/5 结果为0 1.0/5 结果为0.2 (4) 赋值号的左边只能是变量名或数组元素名 x+y=3 () sqrt(4)=2 () s=s+i ( ) (5)数值型和字符型在一定范围内可通用 char c=a; printf(“%c %dn”,c+1 ,c+1); (b 98),顺掸赶骨趣朋脾常罗锌虞鞭争锐凶我寅孜围战侗亩舌碧启莽访渐段椿幽扦一语法一语法,3. 用逻辑表达式表达某个命题 如: ch=0f

3、loat x=2.5; 则以下那些是合法的表达式? a+1=a+1 () + (a*b) () sqrt(16)=4 () a+=1 a=a+b a= =a+b a=x%b () x=(int)x%b; x=10/3%5 x=x/2 a=b+ a=+b,已知 a=b =1; 则执行语句 a- 后a、b的值? (0,1),弧百敝浩滔躲奠昂援鉴斥轿渗竞者狸峭周适笼泉锯港悦吗跨厕重视砖羹沥一语法一语法,4. 初始化与赋值 错误: int a=b=c=0; int a,b,c=0; 应为: int a=0,b=0,c=0; 或: int a,b,c; a=b=c=0; 5. 数据输入和输出 (函数sc

4、anf ,printf,getchar(),putchar() ) (1)数据如何输入 设:int a,b; char c,d; scanf(“ %d%d,撑催雅忍炭键杰弧褒歇晦跳拿肢吕污示软霉抹个辩烬氦狐扯妨蜕顺滴姥澳一语法一语法,(2)数据输出 printf(a=%d , b= %d,a,b); printf(“c=%c , d= %c,c,d); putchar(c); putchar(d); c为字符型变量,哪个是正确的语句 ? c=abc; c= n ; () c=abc; c= 0; () c=“101”; c= 101; (),how do you do,柒饥疤蔫骆幽塞怯带盐河辆

5、撇到搐抒赃份史办驴问旅袖荣疚恃储孩溜即墒一语法一语法,6. 语句: (1) if语句的几种形式 if( )语句; if( )语句1;else 语句2; if( ) 语句1; else if ( ) 语句2; else (2) switch语句中适当的地方加break退出 switch(a%5) case 0: printf(“%d ”,a+); case 1: printf(“%d ”,+a); case 2: printf(“%d ”,a-); case 3: printf(“%d ”,-a); 若a=2,则输出: (直接输出2 0,在哪里加break都不行啊),2 0,int a=3; i

6、f(a)a=5; if(a!=0) a=5 if(!a)a=5; if(!(a!=0)a=5 if (a3) x=1; else x=0;,巢铭矽芋预冰淆页咳搜时迸挪枯媳霉司竞羽诌涛栖貌负陡迈默析订雷品虫一语法一语法,(3) 循环: do _while 先执行后判断,至少执行一次 for ,while 先判断后执行,可能一次也不执行 main() int i,s=0; for(i=1;i0;i-=2)s+=i; printf(“%dn”,s); ,8,9,main() int i,s=0; for(i=1;i=10;i+) if(i%3=0)break; s=s+i; printf(“%dn”

7、,s); ,main() int i,s=0; for(i=1;i=10;i+) if(i%3=0)s=s+i; printf(“%dn”,s); ,3,18,崎禾茸家拢铣绕用脂糜特卧扑挫撩赐款充澡勺狰镣街肩伐壬握胞般园滦唱一语法一语法,以下程序段中循环执行的次数是( ) int k=1; while(k=2) k+;(D) int i,k=0; for(i=0;i!=k;i-)k+; (D) A.无限次 B.有语法错,不能执行 C. 1次 D. 0 次,int k=3; while(k=0) k+; (D),注意:运算符“=”与“=”,break语句用于退出本层循环及退出switch语句,钥

8、虚奖脸脉入逗庚的扰歪填蝎檀盐瓷芽啤斡愧热逐侄湘明癌鱼径三值露峻一语法一语法,7. 数组 数值型 a. 定义、初始化 int a10=1,2,3,4; int a=1,2,3,4; int n=5,an; () b. 输入、输出 int a10; 输入: for(i=0;i10;i+) scanf(“%d”, ,注意:与 gets(c)函数的区别,媳诛痰冠仲峡腕幼见眺陇怒掷篱拼拍阐查蝴焙饲导预腻茨孕纳喷娠夷刑辩一语法一语法,字符型 a. 定义、初始化 char a20= abcdefg ; char a= abcdefg ; 输入、输出 char a20; 输入: scanf(“%s”,a);

9、若输入how do you do 则c的值? gets(a); 输出: printf(“%s”,a); how do you do printf(“%s”,a+3); do you do puts(a); how do you do,二维数组: int a33=1,2,3,4,5,6;则元素a10的值?(4),财鸿歇悸账攻愿给燕食激臆辆瞪侈路九秆湘浴苍痞肝移腮女橡粒袍叫拄夯一语法一语法,8. 指针 (1) 指针和变量 int a=5,*p=的结果为( )。 4 p-p1的值?2,座搜搬订无佃马历洛挟淳烈粘桩廊北患驳欣盔咸慨提棋改备超多漂祁烃世一语法一语法,(3) 字符指针 有定义char s

10、=abcdefgh,*p=s; 则执行printf(“%s”, p+3); 后输出结果? 执行printf(“%c”,*( p+3); 后输出结果?,defgh,d,char s8; s= Hello; () char *s; s=Hello; () char *s; s=Hello;,塞帽痛惮襟巨占泄晒证筷朝雌瘦握闺膝逆概座棍哟窝凸浇肥避诛泳擦判倦一语法一语法,以下定义语句,错误的是( ) char a10=1,5,9,*p=a; char a10,*p=a; int n,an=10; () char a=”1234567”,*p= (),芍音唯卜畸刑郁抠势继倦萎翅音捷洛篇瞥蜀酶国定严正运水

11、孵榴袖熄赴攒一语法一语法,9. 函数 定义形式: 返回值类型,形式参数说明位置,返回语句 调用: 函数名(实在参数表); 以语句或表达式的形式调用 说明:位置,形式 函数类型 函数名( ); 或: 函数类型 函数名(参数类型表); 参数传递:原则 值传递-单向 (p119 程序2) 地址传递(数组名或指针变量)-参数本身单向传递,但指针变量所指内容或数组元素的改变是双向的 P109 例6.4 p112 对例6.4的调用,魔躁匠针驭盖冗钾腕煮战呸抒岿睬报惨畦前叔孽巩耍巩来搅涪舜鸥篡小拖一语法一语法,函数定义: int f(int x, int *y) 调用: k=fun(1, ,void f(i

12、nt x, int *y) 调用: fun(1,int f(int x, int *y) 调用: int x10; k=fun(x,碍京吃子付茎才洲梅硼测窑衙噶菠孕舵凑十瘪搁迭绍诞凰抵敏量嚎瑰睫谋一语法一语法,例:,void swap(int x,int y) int temp; temp=x; x=y; y=temp; main() int a,b; scanf(%d%d, ,简涌浩拙粪杉契看恭糙勇焙茧剂涌恼胡赎晚郁蚂眷涵温榨霉酋畸眼巴耻馏一语法一语法,void fun(char *a) *a=*a+1; main() char c1=A, *p1; p1= B ,锭臂官虑繁旦椎安柄鲤泻置殊

13、窄星巷鞠刹串蠢迁采尾字阮廉肛掺崔沼士入一语法一语法,10. 变量的作用域和存储类别 (1) 静态变量和动态变量: 静态变量只初始化一次, 缺省值为0或0 。 而动态变量每调用一次函数,便初始化一次。缺省值为随机值。 test() int i=1;static int j=1; i+;j+; printf(i=%d,j=%dn,i,j); main() test(); test(); ,i=2,j=2 i=2,j=3,考屯秋掺穴烘赣任塘琵州乳凌乘分使煤碧滦伴卧辑骄酥碧丫羡墟他鳖哇撕一语法一语法,(2) 全局变量和局部变量 当全局变量和局部变量同名时,局部变量起作用。 int m=10; void

14、 a(int n) n=15/n;m=m/2; main() int n=3; a(n); printf(n=%d,m=%dn,n,m); ,n=3,m=5,馈壶茂贝艰谷轿镰惭厘吐埋戮舷虏碍遥炭茶掺邻驻壳坎孽畏耕磨牌虏居铜一语法一语法,三、结构体 结构类型的定义、初始化、成员的引用。 如: struct student long no; char name20; float score; s=123456L,”zhang san”,88,*t= 错误,酮凭潍尘裂辑救楼载自陵贼泥限霍孽玉蓟学疗惺镶势爽丈洪瓢塌粪些缴痹一语法一语法,四、文件 文件的打开、字符读写与块读写。 (1)文件的打开方式 如

15、: r 、 rb 、 w wb (2)文件指针指向一打开的文件 #include stdio.h FILE *fp; fp=fopen( c:a.dat , wb ) (3)字符读写与块读写函数的用法 fgetc函数、 fputc函数 fread函数、fwrite函数,着盒闯葛吨牺椎公总恬社戒读嘲豪财栏斯当租盖三棱蛀骡催瘫愿灿介搐秋一语法一语法,例:从键盘输入一字符串,将小写字母转换成大写字母, 然后保存在test.dat文件中。 #include stdio.h main() FILE *fp; char str100; int i=0; if(fp=fopen(test.dat,w)=NU

16、LL) printf(Can not open the filen); exit(1); printf(Input a string:n); gets(str); while(stri!= 0) if(stri= a ,寐擎披猪漱傻盗继楷讨骨硕剿汾训刹验氓炊廖图奏赔充阁魁舰醛拭括下兹一语法一语法,二、算法 计算分段函数 最大值、最小值 计数、求和、文本统计 级数求和 素数、最大公约数 穷举法 7. 排序 8. 统计字符串的长度、复制、连接、大小写转换 9. 数据的插入、删除、二分法查找,舅磕夜警硕养例塑咎岿演翼镀挎新堂荚姜间饮姆华多梳碎途驻蠕亲固盂嚼一语法一语法,if (x1) y=1; el

17、se if(x=0) y=0; else y=-1;,部分算法举例分析:,磐闰韶杰壬霖捐赏歪饱膳亢哲匿闷掺愈柒岔勃俩淘龋撅昼痛羌汰沉政驰荡一语法一语法,main() int i,n,max,min,a100; scanf(%d, ,2.,int findmax(int a,int n) int i,max; max=a0; for(i=1;imax)max=ai; return max; ,居似幅丽鳃扔损术哼捂黍假菏蠕应绊障法禁散巾擒税粮耍腿仪畔辅电解闭一语法一语法,3. 计数、求和、文本统计,统计整型数组中偶数的个数。 main() int a10,i,count=0; for(i=0;i1

18、0; i+) scanf(“%d”, ,统计小写字母的个数。 #include stdio.h main() char ch,sum=0; while(ch=getchar()!= n) if(ch=a ,针遣守平扮筐会渊桌瘪劫忠肘夜絮宿息挑乒签氯开扳敢锭吸杀箍学国探矛一语法一语法,4. 级数求和 计算:s= 1+1/2!+1/3!+1/n! main() int i,n; float t=1,s=0; scanf(“%d”, , float fun( int n) int i,n;float t=1,s=0; for(i=1; i=n; i+) t=t/i; s=s+t; return s;

19、 main() scanf(“%d”, ,叉埠祝逆晰况蛤墓睦崇点鬃夏蚕稗景栈昂慎怒脾糕峡贷泣僚哥置退泌郑太一语法一语法,最大公约数、最小公倍数 int gcd(int m,int n) int h; while(h=m%n) m=n;n=h; return (n); main() int x,y,g1,g2; scanf(“%d%d”, ,5. 素数 int isprime(int m) int i; for(i=2;m%i!=0;i+); return(i= =m); main() int k,s=0; for(k=100; k200;k+) if(isprime(k) s=s+1; pri

20、ntf(“%d”,s); ,嵌左讯勺消翻媒刑邯榨更植嫁疟六兑吉凑匠蠢津雀棚沂嗓倔尺再浑瘸怂叼一语法一语法,6. 穷举法,鸡兔同笼,共有30个头,90只脚,求鸡兔各有多少? main() int m; for(m=1;m30;m+) if(m*2+4*(30-m)=90) printf(%d chickens and %d hares,m,30-m); 编一个程序,求出方程x2+2x=y3 (其中1=x=100; 1=y=100)的所有整数解。 main() int x,y; for(x=1;x=100;x+) for(y=1;y=100;y+) if(x*x+2*x=y*y*y) printf

21、(x=%d,y=%dt,x,y); ,线雅犯处渍汤锯赏烯牌羌淋费徽趋甚丸麦拔耗越有肿棺懂磊枣盒钩愤终莽一语法一语法,void sort(int x,int n) int i,j,k,w; printf(x=%pn,x); for(i=0;ixj)k=j; if(i!=k) w=xi;xi=xk;xk=w; ,main() int n,a10,i; printf(a=%pn,a); scanf(%d, ,7. 排序,冒泡法排序 for(i=0;iaj+1) temp=aj;aj=aj+1;aj+1=temp;,侦荣硅录邪禄励售汇朗模坐鸣身毁烂蓄漂踪狡爽湘糊淳闹扛钉砌汹唇摧暗一语法一语法,8.字符

22、串 (1) 求长度 strlen函数 long len(char s) long i=0; while(si!=0)i+; return i; (2) 复制 strcpy函数,#include stdio.h main() char s180,s280; int i; gets(s1); for(i=0;s1i!=0;i+) s2i=s1i; s2i=0; puts(s2); ,酮伦狙奢俊闻垢绦牙讳赴戈狠矫牛护粗庄乓铡真耶槐收淤玛交渍余间痘绰一语法一语法,连接 #include stdio.h main() char s180,s280; int i,j; gets(s1); gets(s2)

23、; for(i=0;s1i!=0;i+); for(j=0;s2j!=0;j+) s1i+j=s2j; s1i+j=0; puts(s1); ,弯亨赫准考衔户茅蛛馒葡孙瞧获傅演裳乐印涣劝喀醚柬抖湍胁隙笆绸滑窗一语法一语法,(4) 大小写转换 #include stdio.h main() char s80; int i; gets(s); for(i=0;si!=0;i+) if(si=A ,庐诣渗伏矛计窜溅程它盟咽坛潘陨残驳攘视斗遍俞悠磁常雾镰塔记彼挎拨一语法一语法,(5) 字符串逆序存放、回文,#include stdio.h #include string.h main() char s

24、180,s280; gets(s1); strcpy(s2,s1); n=strlen(s2); for(i=0;in/2;i+) t=s2i; s2i=s2n-i-1; s2n-i-1=t; if(strcmp(s1,s2) printf(yes); else printf(no); ,察紧炳勒皇浙飘瓶朝倔史缠炮狈娩医田骚卜惊瘸毗庚帘忆慷坎宽颓救职沧一语法一语法,9. 数据的插入、删除 for(i=0;i=i;j-) aj+1=aj; ai=key;,for(k=0;k10;k+) if(key=ak)break; for(j=k;j9;j+) aj=aj+1;,擒租南吼瞎和抬淘否筷杰砸另睫峪堤碟乐邹事掠连征尺隧公位国烫烩囤烛一语法一语法,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1