《C语言程序设计》_第1页
《C语言程序设计》_第2页
《C语言程序设计》_第3页
《C语言程序设计》_第4页
《C语言程序设计》_第5页
已阅读5页,还剩502页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序设计精选ppt第1章程序设计基础精选ppt第1章程序设计基础§1.1程序与程序设计语言指令与程序:程序设计语言:语言处理程序:汇编解释编译精选ppt第1章程序设计基础§1.2算法1.2.1算法的概念算法算法的特性有穷性确定性有零个或多个输入有一个或多个输出有效性精选ppt例1:设有两个杯子A和B,分别盛放酒和醋,要求将它们互换。S1:C←AS2:A←BS3:B←C1.2.2算法设计举例第1章程序设计基础精选ppt1.2.2算法设计举例第1章程序设计基础S1:i=1,令max等于第一个数;S2:i=i+1;S3:将max与第

i个数进行比较,若前者小于

后者,将修正max为第i个数;否则进行

S4;S4:i<10?,若是转S2,否则转S5;S5:输出max,结束例2从10个数中挑出最大数,并将之置入max。精选ppt1.2.2算法设计举例第1章程序设计基础例3:求n!S1:s←1,t←1;S2:s←s*t;S3:t←t+1;S4:若t小于等于n,则返S2,否则结束。精选ppt1.2.2算法设计举例第1章程序设计基础例4:求100以内的所有素数。S1:将2到100的自然数放入a[2]至a[100]中;S2:从前至后找下一个非零最小数→newp(初值

为2);S3:删去所有newp的倍数(清零);S4:重复S2、S3,直至newp>100/2;S5:输出剩余的(非0)数,结束。精选ppt开始1p2ip*ipi+1ii>5?结束NY1.2.3算法的表示1.用自然语言表示算法通俗易懂,但易出现“歧义性”。2.用流程图表示算法直观形象,易于理解。精选ppt1.2.3算法的表示ABpABYNpAYNBobm和Jacopini提出:程序只有三种基本结构顺序结构选择结构精选pptpAYNpAYN1.2.3算法的表示循环结构精选ppt顺序AB当型循环当P1

A1.2.3算法的表示分支PTF AB直到型循环直到P1A3.用N-S流程图表示算法精选ppt输入b,max=bn=1

输入bmax>b?

TFmax=bn=n+1

当n小于10输出max例如:从十个数中挑出最大数的N-S结构图如下:1.2.3算法的表示精选ppt1t1it*iti+1i

当i<=n打印t1.2.3算法的表示例1-9:求n!的N-S图如下:精选ppt4.用伪代码表示算法5.用计算机语言表示算法1.2.3算法的表示精选ppt§1.3C程序结构简介例1:main(){printf(“ThisisaCprogram.\n”);}精选ppt§1.3简单的C程序介绍例2#include<stdio.h>main()

/*主函数*/{inta,b,c;scanf(“%d,%d”,&a,&b);c=max(a,b);printf(“max=%d”,c);}intmax(intx,inty)

/*定义max函数*/

{intz;

if(x>y)

z=x;

else

z=y;

return(z); }⑴

C程序是由函数构成的。一个C源程序有且仅有一个main函数;可包含若干其他函数。(2)一个函数由两部分组成:

函数的首部函数体(3)一个C程序总是从main函数开始执行,在main函数中结束。(4)

一行可写多个语句,一个语句也可写在多行上。(5)

每个语句和数据定义的最后必须有一个分号。(6)C语言本身没有输入输出语句。(7)

用/*……*/作注释,增加程序的可读性。要遵循良好的程序设计风格返回精选ppt第2章

C语言入门精选pptCh2C语言入门§2.1常量和变量和数据类型§2.2变量的定义与初始化§2.3运算符与表达式§2.4简单输入输出

返回精选ppt一、关键字二、预定义标识符三、用户标识符§2.1.1标识符§2.1常量、变量与数据类型精选ppt一、常量和变量1.常量整型常量:如12、0、-3等实型常量:如4.5、-1.234等字符常量:如‘a’、’d’等2.变量用户自定义的标识符。如:sum,students等§2.1.2常量和变量精选ppt命名规则:以字母或下划线开始,后跟字母、数字或下划线。变量名不能是关键字以下为合法的变量名

x1,sum,average,day,month,lotus_1_2以下为不合法的变量名

$456,#abc,1fs,2nd,M.D.Jhon§2.1.2常量和变量精选ppt

注意:变量必须先定义,后使用;遵循见名思意的原则;习惯上用小写字母。§2.1.2常量和变量精选ppt二、符号常量符号常量借助于预处理命令define来实现;define命令格式是:

#define标识符字符串如:#definestring“Cprogram”§2.1.2常量和变量精选ppt#definePI3.14voidmain(){intr1=5,r2=6;floatc1,c2,s1,s2;

c1=2*PI*r1;s1=PI*r1*r1;

c2=2*PI*r2;s2=PI*r2*r2;printf("c1is%f\n",c1);printf("c2is%f\n",c2);printf("s1is%f\n",s1);printf("s2is%f\n",s2);}§2.1.2常量和变量例2-2精选ppt§2.1.3数据类型一、整型数据1.整型常量十进制数如:123,-456,0八进制数如:0123,-011(以0开头的数)十六进制数如:0x123,-0x12,0xABC(以0x开头的)精选ppt2.整型变量(1)整型数据在内存中的存放形式数据在内存中以二进制形式存放的。每一个整型变量在内存中占2个字节。例:定义整型变量i=10的存放形式。inti=10;0000101000000000§2.1.3数据类型精选ppt整型变量基本型短整型

长整型无符号型intshortintlongintunsignedint、unsignedshort、unsignedlong

(2)整型变量的分类§2.1.3数据类型精选ppt整型数据比较§2.1.3数据类型整数类型所占位数数据范围int16-32768~32767shortint16-32768~32767longint32--unsignedint160~65535unsignedshort160~65535unsignedlong32--精选ppt(3)整型变量的定义例:inta,b;unsignedshortc,d;longe,f;§2.1.3数据类型精选ppt§2.1.3数据类型二、实型数据1.实型常量(1)十进制浮点数

如:0.123,.456,0.0,123.,123.0(2)指数形式如:123e3,123E3E10,100.e15.2,.e5均不合法精选ppt2.实型变量(1)实型数据在内存中的存放形式

float:4B(32位)。

double:8B(64位)。

longdouble:10B(80位)。实型数据是按照指数形式存储的。§2.1.3数据类型

数符小数部分指数符号指数

精选ppt(2)实型变量的分类floatx,y;doublez;longdoublef;§2.1.3数据类型精选ppt(3)实型数据的舍入误差如:1.0/3*3的结果并不一定等于1。类型占位数有效数字数值范围float单精度326~7--double

(双精度)6415~16--longdouble

(长双精度)8018~19--§2.1.3数据类型精选ppt§2.1.3数据类型三、字符型数据1.字符型常量‘a’、‘X’为字符常量;一个字符常量占1B,存放的是字符的编码值如字符‘A’的存放形式如下:01000001精选ppt转义字符以‘\’开头,后跟一个约定的字符或所要表示字符的十六进制(或八进制)的编码;‘\0’表示编码值为0的字符,即NULL,它与数值常数0是等同的;‘\101’表示‘A’;下表列出了常用的转义字符:§2.1.3数据类型精选ppt字符形式含义ASCII代码\n换行,将当前位置移到下一行开头10\t水平制表(跳到下一个tab位置)9\b退格,将当前位置移到前一列8\r回车,将当前位置移到本行开头13\f换页,将当前位置移到下页开头12\\反斜杠字符“\”92\‘单引号(撇号)字符39\“双引号字符34\ddd1到3位8进制数所代表的字符\xhh1到2位16进制数所代表的字符§2.1.3数据类型精选ppt2.字符变量例:charc1=‘a’,c2=‘A’;§2.1.3数据类型3.字符数据的存放形式及使用方法如:‘a’在内存存放的是二进制数01100001

‘A’在内存存放的是二进制数01000001精选ppt例:main(){charc1,c2;c1=97;c2=98;printf(“%c%c”,c1,c2);printf(“%d%d”,c1,c2);c1=c1-32;c2=c2-(‘a’-‘A’);printf(“%c%c\n”,c1,c2);}运行结果:ab9798AB§2.1.3数据类型精选ppt§2.1.3数据类型四、字符串常量“Clanguageprogramming”、“a\\n”、“#123”“Don\’tmove!”“China”在存储器中实际占用6个字节:China\0精选ppt同理,“a”与‘a’是不同的表示形式不同存储方式不同§2.1.3数据类型

返回精选ppt变量的定义格式:

类型说明符变量名1,变量名2,…;如:inta,b,c;floatx,y;charch1;§2.2变量定义与初始化精选ppt变量初始化格式:

类型说明符变量1=值1,变量2=值2,…;如:inta=3,b=4,c=5;floatx=3.4,y=0.75;注意:

(1)inta,b,c=5;只对c初始化,值为5;

(2)inta=b=c=5;是非法的;

(3)inta=5,b=5,c=5;是合法的。§2.2变量定义与初始化

返回精选ppt一、基本算术运算符

+、-、*、/、%§2.3运算符与表达式§2.3.1算术运算符与算术表达式说明:(1)*和/;(2)数学函数自变量的括号不能省;如:

sin(x);log10(x),log(x);pow(x,y)(3)角度、特殊的符号要转换;(4)/(整除和一般除)(5)%(模运算符两边操作数的要求)精选ppt§2.3.1算术运算符与算术表达式二、自增、自减运算符

++、--基本运算有:++i、i++、--i、i--运算符含义++i在使用i之前,先使i的值增加1i++在使用i之后,再使i的值增加1--i在使用i之前,先使i的值减1i--在使用i之后,再使i的值减1精选ppt如:i=3时,j=++i则j=4;

j=i++则j=3;

j=--i则j=2;j=i--则j=3;§2.3.1算术运算符与算术表达式精选ppt§2.3.1算术运算符与算术表达式说明:++和--只能用于变量;++、--运算符的结合方向是“右结合”;如:-i++等于-(i++);++、--常用于循环控制、数组下标处理等场合;i+++j应理解为(i++)+j;精选ppt运算时按运算符的优先级从高到低运算;运算符的结合性结合性的概念左结合性:如双目算术运算符右结合性:如单目运算符、赋值运算符、条件运算符例:a-b+c、-i++运算符及优先级和结合性详见附录C。§2.3.2运算符的优先级和结合性精选ppt1.基本赋值运算符:=基本赋值表达式:变量=表达式例如:

a=2+3x=i++n=n+1a=b=x+y§2.3.3赋值运算符和赋值表达式精选ppt2.复合赋值运算符在“=”之前加上其他运算符,可构成复合运算符例如:

x+=y等价于x=x+ya%=b+c/d等价于a=a%(b+c/d)C中10种复合赋值运算符:

+=、-=、*=、/=、%=、

<<=、>>=、&=、^=、|=§2.3.3赋值运算符和赋值表达式精选ppt3.

说明(1)变量=exp是表达式,有值,能直接参与运算;如:

main()

{inta,b,c,d;

a=(a=100)+(b=30)-b*5;

……

}§2.3.3赋值运算符和赋值表达式精选ppt(2)嵌套赋值表达式:e1=e2=…=en,如:

a=b=c=d=100等价于a=(b=(c=(d=100)))e1,e2,…,en不必具有相同的数据类型例2-2:当a=12时,a+=a-=a*a求解结果?先“a-=a*a”的运算,a=a-a*a=-132;再进行“a+=-132”的运算,

a=a+(-132)=-264。§2.3.3赋值运算符和赋值表达式精选ppt一、自动类型转换例2-3计算表达式3+'a'+1.5-5.1*5的值

§2.3.4数据类型转换混合运算

需自动转换成同一类型再运算;转换的规则如下:精选pptdoublefloatlongunsignedintchar,short高低§2.3.4数据类型转换精选ppt赋值运算中类型转换规则:把赋值运算符右边表达式的数据类型转换成左边对象的类型。(1)实型赋给整型变量时,舍去实数的小数部分。(2)整型赋给实型变量时,数值不变,以浮点形式存储。(3)长的赋给短的。§2.3.4数据类型转换精选ppt例2-4:阅读程序,写出结果。#include<stdio.h>#include<conio.h>main(){charc;inta=500;

c=a+1;printf("c=%d\n",c);}§2.3.4数据类型转换运行结果:c=-11精选ppt二、强制类型转换格式:(类型关键字或类型名)表达式如:(int)(x+y)%(int)p

(double)a(float)(5%3)§2.3.4数据类型转换精选ppt例

main()

{floatx;

inti;

x=3.6;

i=(int)x;

printf(“x=%f,i=%d”,x,i);

}

运行的结果是:

x=3.600000,i=3§2.3.4数据类型转换精选ppt§2.3.5逗号运算符和逗号表达式语法:表达式1,表达式2,……语义:依次求各个表达式的值,最后一个表达式的值作为整个逗号表达式的值;如:3+5,6+8的值为14;

a=3*5,a*4的值为60;逗号表达式常用在for语句中;逗号表达式的优先级别最低;在C中,逗号有两种用途(分隔符,运算符)。

返回精选ppt§2.4简单输入输出§2.4.1数据的输入输出及在C语言中的实现C中不提供输入输出语句;调用库函数实现输入输出;输入输出库函数所在头文件为stdio.h。精选ppt§2.4.2常用数据输入输出一、格式输出函数printf一般调用形式:

printf(格式控制,输出表列);常用格式控制有:

(1)“%d”(2)“%c”(3)“%f”精选ppt§2.4.2常用数据输入输出一、格式输出函数printf例2-5:

voidmain(){inta=88,b=89;charc='A';floaty=3.67;

printf("%d%d\n",a,b);printf("%c\n",c);printf("%f",y);}运行结果:8889A3.670000精选ppt§2.4.2常用数据输入输出二、格式输入函数scanf一般调用形式:

scanf(格式控制,地址表列);常用格式控制与printf函数相似。精选ppt§2.4.2常用数据输入输出例2-6:

voidmain(){inta,b;charm,n;floatx,y;printf("inputa,b\n");scanf("%d%d",&a,&b);

printf("inputm,n\n");scanf("%c%c",&m,&n);printf("inputx,y\n");scanf("%f%f",&x,&y);printf("%d,%d,%c,%c,%f,%f",a,b,m,n,x,y);}

返回精选ppt第3章基本控制结构精选pptch3基本控制结构§3.1C语句的分类§3.2顺序结构程序设计§3.3选择结构程序设计§3.4循环结构程序设计§3.5使用库和函数§3.6典型例题

返回精选ppt1.控制语句二个分支语句(if-else、switch-case)

三个循环语句(for、while、do-while)

四个转移语句(continue、break、goto、return)2.函数调用语句如:printf(“Hello,world!”);3.表达式语句

x+y;i++;a=2;a=3*5,40;§3.1C语句的分类精选ppt4.空语句

;5.复合语句

{语句序列}

返回§3.1C语句的分类精选ppt一、赋值语句语法:变量=表达式;语义:计算“=”右边表达式的值,将之赋给“=”左边的变量。如:

b=3;

if((a=b)>0)t=a;注意:赋值语句与赋值表达式的区别二、顺序程序举例§3.2顺序结构程序设计精选ppt例3-1:输入一大写字母,改为小写后输出。#include<stdio.h>main(){

charc1,c2;scanf("%c",&c1);

printf("%c,%d\n",c1,c1);c2=c1+32;printf("%c,%d\n",c2,c2);

getch();}§3.2顺序结构程序设计测试数据及运行结果输入:A↙

输出:A,65

a,97精选ppt§3.2顺序结构程序设计例:输入三角形的三边长,求三角形面积。分析:设三角形的三边分别为a,b,c

则:面积area2=s(s-a)(s-b)(s-c)

其中s=(a+b+c)/2精选ppt§3.2顺序结构程序设计源程序:

#include<math.h>

main()

{floata,b,c,s,area;

scanf(“%f,%f,%f”,&a,&b,&c);

s=1.0/2*(a+b+c);

area=sqrt(s*(s-a)*(s-b)*(s-c));printf(“a=%7.2f,b=%7.2f,c=%7.2f,

s=%7.2f\n”,a,b,c,s);

printf(“area=%7.2f\n”,area);

}发散:三角形面积的计算

返回精选ppt§3.3选择结构程序设计§3.3.1关系运算符与关系表达式一、关系运算符:

>、<、>=、<=、==、!=关系表达式:

i==(c=d)、x+y>a-b求值结果:int型,0或1。1为真,0为假如:设a=3,b=2,c=1则:d=a>b的值为1f=a>b>c的值为0;精选ppt§3.3.1关系运算符与关系表达式6种关系运算符的优先级别不同:==、!=>、<、>=、<=程序设计中最好不要对两个浮点数直接进行相等性比较;方法之一如:fabs(a-b)<1E-6关系运算符的结合性是左结合精选ppt一、逻辑运算符及其优先次序一元逻辑运算符:!,右结合二元逻辑运算符:&&、||,左结合逻辑运算的真值表ab!a!ba&&ba||b001100011001100101110011§3.3.2逻辑运算符与逻辑表达式精选ppt

二、逻辑表达式

逻辑表达式。如:x>=0&&x<=10c!=‘\n’||b!=3

逻辑表达式的值为真或假(1或0)

判一个量是否为真时,0为假,非0即真;如:a=4;则!a为0a=4,b=5时,则a&&b为1;§3.3.2逻辑运算符与逻辑表达式精选ppt表达式优化优化:逻辑运算符的执行,只是在下一该逻辑运算符必须执行才能求出表达式的值时才执行;如:a&&b&&c只有当a为非0时才判b…a||b||c当a为真时,不再判b和c…!&&||

逻辑运算符的优先级从高到低依次为:§3.3.2逻辑运算符与逻辑表达式精选ppt例:inta=1,b=2,c=3,d=4,m=1,n=1;

则执行(m=a>b)&&(n=c>d)后,m、n分别是多少?

答案是:m=0,n=1利用逻辑表达式还能表示更为复杂的条件

(year%4==0&&year%100!=0)

||(year%400==0)#§3.3.2逻辑运算符与逻辑表达式精选ppt一、if语句的2种基本形式语法1:if(表达式)语句;语义:判断表达式的值,为真时执行语句,否则不执行;如:#include<stdio.h>

main()

{charch;ch=getchar();

if(ch>=‘a’&&ch<=‘z’)ch-=‘a’-‘A’;

putchar(ch);

}§3.3.3选择结构的实现精选ppt语法2:if(表达式)

语句1;

else

语句2;语义:判断表达式的值,为真时执行语句1,否则执行语句2;§3.3.3选择结构的实现精选ppt如:#include<stdio.h>main(){inta,b;scanf(“%d%d”,&a,&b);

if(a>b)printf(“max=%d\n”,a);elseprintf(“max=%d\n”,b);}§3.3.3选择结构的实现精选ppt二、if语句嵌套的2种形式1.if语句嵌套在else子句中

if(表达式1)语句1;elseif(表达式2)

语句2;

elseif(表达式3)语句3;

……else

语句n+1;§3.3.3选择结构的实现精选ppt2.if语句嵌套在if子句中

if(表达式1)

if(表达式2)

if(表达式3)

……

语句1;

else

语句2;

else

语句3;

else

语句n+1;§3.3.3选择结构的实现精选ppt例3-6:从键盘上输入字符,判别其分类:控制符、数字、大写字母、小写字母、其他字符。§3.3.3选择结构的实现精选ppt#include“stdio.h”main(){charc;c=getchar();

if(c<32)printf(“Thisisacontrolcharacter.\n”);elseif(c>=‘0’&&c<=‘9’)printf(“Thisifadigit.\n”);elseif(c>=‘A’&&c<=‘Z’)printf(“Thisisacapitalletter.\n”);elseif(c>=‘a’&&c<=‘z’)printf(“Thisisasmallletter.\n”);elseprintf(“Thisisanothercharater.\n”);}§3.3.3选择结构的实现精选ppt§3.3.3选择结构的实现说明(1)if关键字后的表达式可以是一切类型;如:if(a=5)语句;

if(b)语句;(2)if语句中,条件表达式必须用括号括起来;精选ppt§3.3.3选择结构的实现(3)满足条件需执行一组语句时,该组语句

必须用{}括起来;如:if(a+b>c&&b+c>a&&a+c>b)

{s=0.5*(a+b+c);

area=sqrt(s*(s-a)*(s-b)*(s-c));

printf(“area=%6.2f\n”,area);

}

elseprintf(“Itisnotatrilateral.”);精选ppt§3.3.3选择结构的实现(4)if语句嵌套时,else与if的匹配问题;例3-7:有一函数:y=-1x<00x=01x>0请编程,输入x的值,输出相应的y值。精选ppt§3.3.3选择结构的实现main(){floatx,y;scanf(“%f”,&x);

if(x<0)y=-1;elseif(x==0)y=0;elsey=1;printf(“x=%f,y=%f\n”,x,y);}

if(x>=0)if(x>0)y=1;elsey=0;elsey=-1;y=0;

if(x>=0)if(x>0)y=1;elsey=-1;?y=0;

if(x>=0)if(x>0)y=1;else;elsey=-1;y=0;

if(x>=0){if(x>0)y=1;}elsey=-1;精选ppt(5)可利用条件表达来简化程序设计。如对于:

if(exp!=0)

可用

if(exp)

来代替;§3.3.3选择结构的实现if(!exp)语句;等价于:if(exp==0)语句;精选ppt三、switch语句§3.3.3选择结构的实现语法1:switch(表达式)

{caseC1:S1;

caseC2:S2;

……

caseCn:Sn;

default:Sn+1;

}其中:表达式必须放在括号中;

C1至Cn

是情况常量;

default可缺省。精选ppt计算表达式e的值S1S2SnSn+1…C1C2Cndefault语义:§3.3.3选择结构的实现精选ppt例:switch(grade){case‘A’:printf(“85~100\n”);case‘B’:printf(“70~84\n”);case‘C’:printf(“60~69\n”);case‘D’:printf(“<60\n”);default:printf(“error\n”);}§3.3.3选择结构的实现

返回精选ppt语法2:switch(表达式)

{

caseC1:S1;break;

caseC2:S2;break;

……

caseCn:Sn;break;

default:Sn+1;break;

}§3.3.3选择结构的实现精选pptS1计算表达式e的值S2SnSn+1…C1C2Cndefault…§3.3.3选择结构的实现语义:精选ppt例:switch(grade){case‘A’:printf(“85~100\n”);break;case‘B’:printf(“70~84\n”);break;case‘C’:printf(“60~69\n”);break;case‘D’:printf(“<60\n”);break;default:printf(“error\n”);break;}§3.3.3选择结构的实现精选ppt说明:(1)default可省略;(2)C1~Cn必须互不相同;(3)语法2中,C1~Cn无次序影响;(4)允许多个case共用一个执行语句;如:§3.3.3选择结构的实现精选pptswitch(ch){case‘0’:case‘1’:case‘2’:case‘3’:case‘4’:case‘5’:case‘6’:case‘7’:case‘8’:case‘9’:digit++;break;case‘

‘:case‘\t’:case‘\n’:white++;break;default:character++;}§3.3.3选择结构的实现精选ppt(5)break只能跳出一层,内外层情况常量可相同;如:#include<stdio.h>main(){intx=1,y=0;switch(x){case1:switch(y){case0:printf("**1**\n");break;case1:printf("**2**\n");break;}case2:printf("**3**\n");}getch();}运行结果为:**1****3**§3.3.3选择结构的实现精选ppt四、三目条件运算符1.条件运算符?:2.格式e1?e2:e33.语义:判e1的值,为1时计算e2,否则计

算e3;如:max=(a>b)?a:b等价于

if(a>b)max=a;

elsemax=b;§3.3.3选择结构的实现精选ppt4.说明:条件运算符的优先级仅高于“,”与“=”;只有当if语句的真假均只执行一个赋值语句且是给同一变量赋值时,才能用条件表达式取代;如:if(a>b)max=a;

elsemax=b;条件表达式可使程序简洁;

#§3.3.3选择结构的实现

返回精选ppt问题1:假如全班41人,欲从键盘上输入每人的数学成绩,然后计算出平均成绩;问题2:编程计算n!。重复执行一组语句是程序设计要求的基本功能之一。在C语言中可以用以下语句来实现循环:(1)if和goto(2)while(3)do-while(4)for§3.4循环结构程序设计精选ppt语法:while(exp)

循环体语句;语义:当exp为真时,执行循环体;为假时,

执行循环语句的后续语句;如:用while语句构成循环,求:

sum=1+2+…+100§3.4.1while语句精选ppt§3.4.1while语句

i←1,sum=0当i小于等于100sum=sum+ii=i+1输出sum精选ppt§3.4.1while语句源程序:main(){inti=1,sum=0;

while(i<=100){sum+=i;i++;

}printf(“%d”,sum);}精选ppt§3.4.1while语句说明:⑴循环体可以用复合语句;⑵循环控制变量在while前应赋初值,以确保循环的正常开始;精选ppt§3.4.1while语句⑶循环体内应改变循环控制变量的值,以确保循环正常结束;如:i=1;

while(i<=100)

sum=sum+1;(死循环)精选ppt§3.4.1while语句⑷while的特点:先判断后执行循环体最少执行次数为0;如:i=3;

while(i<3)

printf(“i=%d\n”,i);精选ppt语法:do

循环体语句;

while(exp);语义:当exp为真时,执行循环体;为假时,

执行循环语句的后续语句;如:用do-while语句构成循环,求

sum=1+2+…+100§3.4.2do-while语句精选ppt§3.4.2do-while语句

i←1,sum=0sum=sum+i输出sum当i小于等于100i=i+1N-S图:精选ppt§3.4.2do-while语句源程序:main(){inti=1,sum=0;

do{sum+=i;i++;

}while(i<=100);printf(“%d”,sum);}精选ppt§3.4.2do-while语句说明:(1)循环体可以用复合语句;(2)循环控制变量在do前必须赋初值;(3)循环体内应改变循环控制变量的值;精选ppt(4)do-while循环的特点先执行后判断循环体至少被执行一次;

如:i=3;

do

{sum+=i;

i++;

}while(i>10);#§3.4.2do-while语句精选ppt语法:for(exp1;exp2;exp3)

循环体语句;语义:(1)计算exp1;(2)求exp2,为真时,执行(3),否则结束循环;(3)执行循环体中的语句;(4)执行exp3;(5)返回(2)。§3.4.3for语句精选ppt§3.4.3for语句程序:main(){inti,sum=0;

for(i=1;i<=100;i++)sum+=i;printf(“%d”,sum);}精选ppt§3.4.3for语句说明:(1)显然for循环更简洁,更灵活;(2)循环体可以是复合语句;(3)可同时对多个变量赋初值及修改。如:

for(i=0,j=1;j<n&&i<n;i++,j++)…(4)for语句可理解为:

for(循环变量赋初值;判断条件;循环变量改变)

循环体;精选ppt(5)for语句中三个表达式可省:省exp1;如:

i=1;for(;i<5;i++)

printf(“%d\n”,i);

等价于

for(i=1;i<5;i++)

printf(“%d\n”,i);§3.4.3for语句精选ppt

省exp3;如:for(i=1;i<5;)

{printf(“%d\n”,i);

i++;}等价于

for(i=1;i<5;i++)

printf(“%d\n”,i);

省exp2;如:

for(i=1;;i++)

{printf(“%d\n”,i);

if(i>5)break;

}§3.4.3for语句精选ppt

三个表达式全省时,如:for(;;)语句;等价于while(1)语句;(5)for语句中的循环体可以是空语句;如:

intn=0;

while(n++<=2);

printf(“%d”,n);

结果为:4§3.4.3for语句精选ppt三种循环可互相代替。while、do-while和for循环控制变量之初值;循环控制之条件;循环控制变量之修正。除goto循环外,都能用break跳出循环,用continue结束本次循环。§3.4.4三种循环语句的选用精选ppt三种循环可以互相嵌套例:打印九九乘法表:§3.4.5循环结构的嵌套1*1=11*2=21*3=31*4=41*5=51*6=61*7=71*8=81*9=92*1=22*2=42*3=62*4=8……2*9=18……

……

……

……

……

……9*1=99*2=189*3=27……

……

……9*9=81

精选ppt

main(){inti,j;for(i=1;i<10;i++){for(j=1;j<10;j++)printf("%d*%d=%2d",i,j,i*j);printf("\n");}getch();}§3.4.5循环结构的嵌套精选ppt§3.4.6break语句和continue语句一、break语句break只能用在循环语句、switch语句中功能:强行退出循环或switch语句。例:for(r=1;r<=10;r++)

{area=pi*r*r;

if(area>100)break;

printf(“%f”,area);

}精选ppt二、continue语句只能用在循环语句中功能:结束本次循环例:main()

{intn;

for(n=100;n<=200;n++)

{if(n%3==0)

continue;

printf(“%d”,n);

}

}§3.4.6break语句和continue语句

返回精选ppt3.5.1输入输出的概念3.5.2输入输出函数§3.5使用库和函数精选ppt一、字符输入函数getchar语法:getchar();语义:(从stdio上)输入一个字符;getchar是一个无参函数;getchar包含在stdio.h中如:

#include<stdio.h>

main()

{

putchar(getchar());

}§3.5.3字符输入输出函数精选ppt§3.5.3字符输入输出函数二、字符输出函数putchar语法:putchar

(c);语义:(在stdout上)输出一个字符;如:

#include<stdio.h>

main()

{putchar(‘\141’);

putchar(‘a’);

putchar(97);

}精选ppt如:#include<stdio.h>main(){charc;

while((c=getchar())!=‘#’)if(c>=‘a’&&c<=‘z’)putchar(c-’a’+’A’);elseputchar(c);

}§3.5.3字符输入输出函数精选ppt一、格式输入函数scanf语法:scanf(格式控制,地址表列);格式控制:含三类符号空白字符:(空格、Tab或\t、\n),输入时不必一一对应;普通字符:(非格式说明符、非空白符、非%),输入时必须一一对应;格式转换说明符:由%开始后跟:一约定的字母转换指示符;一任选的用于指定输入字段宽度的整数w。§3.5.4格式输入输出函数精选ppt§3.5.4格式输入输出函数格式控制字符输出形式说明%d,%i带符号的十进制数%o,%u,%x无号符的八、十、十六进制数%c,%s字符、字符串%f,%e小数、科学计数法形式的实数地址表列:由若干个地址组成,可以是变量的地址,也可以是字符串中的首地址等。精选ppt例1:#include<stdio.h>main(){inta;floatb;charstr[50];scanf(“%d%f%s”,&a,&b,str);

……}设输入流数据流为:2554.32E-1Nanjing<enter>处理结果为:25→a5.432000→bNanjing→str§3.5.4格式输入输出函数精选ppt输入项表的输入对象须是地址量;如:

scanf(“%d,%d,%d”,&a,&b,&c);scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);§3.5.4格式输入输出函数123,456,789<enter>,则处理的结果为:123→a456→b789→c

如下的输入是错误的:

123456789123#456#789a=123,b=456,c=789<enter>精选ppt§3.5.4格式输入输出函数一、格式输出函数printf语法:printf(格式控制,输出表列);语义:按格式控制将输出表列中的数据依次

输出至屏幕上。

格式控制普通字符和转义字符(原样输出)格式说明:由%和格式控制符组成如:%d,%f,%c等;精选ppt§3.5.4格式输入输出函数如:printf(“a=%d,b=%d”,a,b);

若a、b的值分别为2和3,

则输出结果为:

a=2,b=3精选ppt§3.5.4格式输入输出函数格式控制字符输出形式说明%d,%i带符号的十进制数%o,%u,%x无号符的八、十、十六进制数%c,%s字符、字符串%f,%e小数、科学计数法形式的实数格式修饰符-输出的字符或数值在输出域内左靠齐格式修饰符m规定数据输出的最小宽度格式修饰符.n对浮点数小数点后保留n位,对字符串,输出前n个字符格式修饰符l输出长整型数,或双精度型数如果要输出单一的字符%,则需用%%精选ppt例1:#include<stdio.h>main(){inta=4096;longintb=123456;printf(“%5d\n%3d\n%ld\n%9ld\n”,a,a,b,b);}该程序运行的结果为:40964096123456123456§3.5.4格式输入输出函数精选ppt例2:#include<stdio.h>main(){inta=-8;

printf(“deca=%d\nocta=%o\nhexa=%x\n”,a,a,a);}该程序运行的结果为:deca=-8octa=177770hexa=fff81111111111111000§3.5.4格式输入输出函数

返回精选ppt§3.6典型例题例3-26设计程序,判断整数m是否为素数分析:m可以分解为m=m1*m2,m1和m2中必有一个小于或者等于m的算术平方根,可以用2~之间的整数一个个去除m,若都不能被m整除,则m为素数,否则不是素数。main(){intm,i,k;scanf(“%d”,&m);k=sqrt(m);for(i=2;i<=k;i++)if(m%i==0)break;if(i>k)printf(“%disaprimenumber\n”,m);elseprintf(“%disnotaprimenumber\n”,m);}精选ppt例3-27求100~200之间的所有素数main(){intm,i,k,n=0;for(m=101;m<=200;m=m+2){k=sqrt(m);for(i=2;i<=k;i++)if(m%i==0)break;if(i>k){printf(“%d”,m);n=n+1;}if(n%5==0)printf(“\n”);}}精选ppt例3-28用公式:∏/4=1-1/3+1/5-1/7+...求∏的近似值,直到最后一项的绝对值小于10-6为止。分析:t表示项,n表示项中t的分母,s表示符号t=s/nmain(){ints;floatn,t,pi;t=1;pi=0;n=1.0;s=1;while(fabs(t)>1e-6){pi=pi+t;n=n+2;s=-s;t=s/n;}pi=pi*4;printf(“pi=%10.6f\n”,pi);}精选ppt第4章函数精选ppt基本知识讲解§4.1概述§4.2带自定义函数的程序设计§4.3变量的作用域和存储类别§4.4典型例题

返回精选ppt§4.1概述C语言源程序可由一个主函数和若个辅助函数组成。由主函数调用其他函数。其他函数也可互相调用。mainabcdefghhieg精选ppt§4.1概述main(){printstar();

print_message();

printstar();}printstar(){printf(“**********\n”);}print_message(){printf(“Howdoyoudo!\n”);}精选ppt§4.1概述说明:1.一个源程序文件由一个或多个函数组成。一个源程序文件是一个编译单位。2.C程序的执行从main函数开始,在main函数中结束。3.所有函数都是平行的,即函数不能嵌套定义,函数可以互相调用,但不能调用main函数。4.从用户使用的角度看,函数有两种:

标准函数(库函数)和自定义函数5.从函数的形式看,函数分为两类:

无参函数和有参函数#

返回精选ppt§4.1.1函数的定义一、无参函数的定义形式类型标识符函数名()

{

函数体

}例:

printstar(){printf(“**********\n”);}精选ppt§4.1.1函数的定义二、有参函数定义的一般形式

类型标识符函数名(形式参数表)

{

函数体

}精选ppt§4.1.1函数的定义例如:

intmax(intx,inty){intz;

z=x>y?x:y;return(z);}精选ppt§4.1.1函数的定义三、一个函数可以是空函数。

如:

dummy(){}

返回#精选ppt一、函数的返回1.被调用函数执行到最后的“}”时,自动返回2.被调用函数执行到return语句时返回§4.1.2函数的返回和返回值精选ppt二、函数的返回值1.return语句

return(表达式);或:return表达式;或:return;return语句的用途有二:(1)用于结束函数的执行并返回到调用者;(2)用来向调用者传递一个返回值。

注意:该语句对非void函数适用。§4.1.2函数的返回和返回值精选ppt§4.1.3函数的声明和调用要正确实现函数间的调用需满足下列条件:必须给出满足函数运行时要求的参数;被调用函数必须存在;被调用函数必须允许调用。精选ppt例:{…………c=max(a,b);

…………}intmax(intx,inty){…………}一、函数调用形式函数名(实参表列);§4.1.3函数的声明和调用精选ppt1.函数语句如:printf(“Oneworle”);2.函数表达式如:c=max(a,b);3.函数参数

如:m=max(a,max(b,c));printf(“%d”,max(a,b));§4.1.3函数的声明和调用二、函数调用的方式精选pptmain(){floata,b,c;scanf(“%f,%f”,&a,&b);c=add(a,b);printf(“sumis%f”,c);}floatadd(floatx,floaty){floatz;z=x+y;returnz;}§4

温馨提示

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

评论

0/150

提交评论