ch5C程序设计基础_第1页
ch5C程序设计基础_第2页
ch5C程序设计基础_第3页
ch5C程序设计基础_第4页
ch5C程序设计基础_第5页
已阅读5页,还剩121页未读 继续免费阅读

下载本文档

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

文档简介

第5章

C程序设计基础2主要内容程序设计的基本概念数据类型数据的输入与输出运算符与表达式程序控制结构及控制语句三种基本结构程序设计一、程序设计基础1.关于程序设计计算机程序设计:是用计算机语言编写一些代码(指令)来驱动计算机完成特定的功能,是问题求解过程的关键步骤之一。为什么需要程序设计?很多问题无现成软件可用如何学习程序设计多动手,多看书要点如何用语句表达你的思想(算法)(初级)了解语句、语法(高级)熟悉语言提供的功能、你需要做的工作42.程序设计语言程序设计语言又称计算机语言。是人与计算机交流和沟通的工具;是用来编写计算机程序的工具有几百种,常用的仅十多种。程序设计语言的选择应用需求,功能满足,自己熟悉。56程序设计语言的分类程序设计语言的分类:机器语言汇编语言高级语言低级语言面向机器的语言与机器硬件无直接相关的语言7机器语言由机器指令的集合构成。机器指令是计算机所能理解和执行的以“0”和“1”组成的二进制编码表示的命令。机器语言的特点:优点:计算机能够直接识别、执行效率高;缺点:难记忆、难书写、编程困难、可读性差且容易出现编写错误。机器语言

比较内存中两个数的大小地址机器指令注释-------------------------------------------0000B85F5F;取数据段地址00038ED8 ;设置数据段寄存器0005A10000;把数1(var1)的值送到ax寄存器00088B1E0002;把数2(var2)的值送到bx寄存器000C3BC3;比较两个数000E7207;如果数1小于数2则转移到001BH00108D16001C;取字符串'数1大于等于数2'的指针0014EB05;转显示00168D160004;取字符串'数1大于等于数2'的指针001AB409;调用DOS的显示字符串功能001CCD21;显示字符串001EB44C;退出程序0020CD21机器语言编写的程序示例89汇编语言(AssemblyLanguage)采用了助记符和符号地址来表示计算机指令的语言。与机器指令直接对应。计算机不能直接执行汇编语言程序,必须经过翻译程序将汇编语言编写的程序翻译成机器指令后才能在计算机上执行。汇编语言是在机器语言基础上发展起来的,目的是弥补机器语言的缺点和不足。比较内存中的两个数的大小标号汇编指令注释---------------------------------------------

movax,data;取数据段地址

movds,ax;设置数据段寄存器

movax,var1;把数1(var1)的值送到ax寄存器

movbx,var2;把数2(var2)的值送到bx寄存器

cmpax,bx;比较两个数

jble1;如果数1小于数2则转移到le1gr1:leadx,grea;取字符串'数1大于等于数2'的指针

jmpdis;转显示le1:leadx,less;取字符串'数1大于等于数2'的指针dis:movah,9;调用DOS的显示字符串功能

int21h;显示字符串

movah,4ch;返回DOS

int21h汇编语言编写的程序示例1011高级语言

是更接近自然语言、数学语言的程序设计语言,与计算机硬件无直接相关。优点符合人类叙述问题的习惯,而且简单易学。目前大部分计算机语言都属高级语言,如:VisualBasic、VisualC++、Java

12求两个数中的大数

#include<iostream.h>voidmain(){cout<<“Entertwointeger:”;inta,b;cin>>a>>b;if(a>b) cout<<“Themaxiumnumberis”<<a;else cout<<“Themaxiumnumberis”<<b;}高级语言程序示例SubMain()Dima,bAsIntegera=Convert.ToInt32(Console.ReadLine())b=Convert.ToInt32(Console.ReadLine())Ifa>bThenConsole.WriteLine(a)ElseConsole.WriteLine(b)EndIfEndSub3.程序执行的起始点

所有的程序都从起点开始执行C程序规定从main函数的第一条语句开始执行,而不论main函数处于程序的什么位置。13C程序中必须要有main函数144.语言处理程序

计算机只能识别机器语言,用其他语言书写的程序都必须经过翻译或解释,变成机器指令,才能在计算机上执行。语言处理程序编译程序汇编程序

15汇编程序将汇编语言编写好的源程序,全部翻译成机器指令集合的程序。编译程序将高级语言编写好的源程序,全部翻译成机器指令集合的程序。

汇编程序和编译程序5.程序设计的基本过程内存装入程序装入模块链接程序由编译程序产生的目标模块┇库函数编译链接装入16程序的链接程序链接:将所有编译后得到的目标程序模块连接装配在一起,再与函数库相连构成为一个整体的过程。链接的理由:一个程序可能是由多个程序模块组成,翻译成不同的机器语言程序模块,在合成一个程序时需要组装在一起;需要组装必要的库函数17程序设计的基本过程用高级语言进行程序设计的基本过程在编辑环境下编写源次序编译链接调试18二、C程序基本结构项目C程序按项目管理,一个项目中可以包含几种类型文件。其中有1个源程序文件源程序文件一个源程序是完成某项任务的程序段。一个源程序可以包含1个或多个源文件,每个源文件可以有1个或多个函数,必须有1个main函数;一个源程序可以有多个文件,但只能有1个main函数函数函数名,函数体函数体数据声明,执行语句201.C程序基本结构C程序结构21C程序基本结构//屏幕显示#include<stdio.h>intmain(){printf(“Thisisacprogram.\n”);return0;}输出信息:Thisisacprogram.22注释编译预处理——插入库文件stdio.h主函数体函数名函数返回值的类型简单C程序介绍#include<stdio.h>intmain()/*求两个数之和*/{ inta,b,sum;/*定义变量*/

a=123;b=456;

sum=a+b;

printf(“sumis%d\n”,sum);}输出信息:sumis57923C语言程序的基本构成源程序以

.c作为扩展名(*.c)C程序由若干函数构成,必须要有一个主函数函数由说明部分和函数体构成一个C程序总是从main()函数开始的C程序书写自由,一行可以写多个语句,一个语句也可以分为多行来写语句以及数据定义后面必须有一个分号“;”可用/*….*/对程序进行注释24常用术语源程序:用户可读的程序文本,即程序本身。目标代码:由源程序翻译而成的机器码,计算机能读并能直接运行。链接程序:将各自分别编译后的程序连接为一个可运行程序的程序。(它将C语言的标准库函数与用户所编的程序联合在一起)库:包含标准函数的文件,这些函数可用在用户的程序中编译状态:在程序编译过程中所出现的事件。运行状态:在程序运行过程中所发生的事件。25262.C程序设计环境VisualStudio集成开发环境C程序新建一个项目选择:Win32控制台应用程序输入C源程序编译,链接,运行272829主要内容程序设计的基本概念数据类型数据的输入与输出运算符与表达式程序控制结构及控制语句三种基本结构程序设计1.数据类型的概念程序的主要任务是对数据进行处理。不同类型的数据在存储器中存放的格式不同数据类型:数据在计算机中的存储格式程序对数据进行处理之前都要对其类型预先加以说明,目的是:便于为数据分配相应的存储空间说明程序处理数据时应采用何种具体运算方法30数据类型的概念计算机中最基本、最常用的数据是:数值数据,文字数据数值数据:整型,长整型,浮点型,双精度型,…文字数据:单字符,字符串31不同类型的数据所占用的存储空间大小不同C语言数据类型322.数据的表示及存储在计算机中,为了区别不同的数,使用了不同的表示方法:整数的表示实数的表示字符数据的表示数组的表示3334数据的表示C语言的基本数据类型:

数据类型类型说明符占用字节字符型

char

1个短整数

short

2个整型int

4个浮点型

float4个双精度型

double

8个整数实数数据在计算机中的存放字符数据字符用ASCII码表示,一个字符数据占用1字节存储空间1字节数的表达范围:-27~27-1(-128

~127)3570要表示更大的数,需要更长的字长36数据在计算机中的存放整型数据短整型

短整数表示范围为:-215~215-1(-32768~32767)长整型

长整数表示范围为:-2^31~2^31-1158703124231615870数据在计算机中的存放实型数据实数在计算机中以浮点数形式表示所有的实数都规格化表示为:0.xxxx×10n37尾符阶符阶码尾数小数点后第1位不为038数据在计算机中的存放float数据:一般占4字节double型:一般占8字节。尾数部分指数部分312423161587039数据的表现形式在高级语言中,数据有两种表现形式:常量,变量通过书写格式说明其类型使用前须声明其类型常量在程序运行过程中,其值保持不变的量。在C程序中,常量通常用全部字母为大写的符号来表示C程序中常量的定义方法:#define符号常量数值例:#definePRICE70//定义符号常量PRICE的值为70,在程序中任何用到PRICE符号常量的地方,系统将自动用常量70代替403.常量常量类型:整型常量实型常量字符常量字符串常量41常量的类型整型常量其值为整数形式十进制整数:用不带任何修饰的整数表示。如123、-456、0等;八进制整数:以数字0开头的整数。如0123、-011等;十六进制整数:以数字0x开头的整数。如0x123、0x2ef。42实型常量实型常量(浮点数):十进制小数形式。用数字和小数点组成。如:123.456指数形式:用字母e表示十进制指数中的10。如:123e3注:e字母前必须有数字,且e后的指数必须为整型。这里的e可以是大写,也可以小写。43123*103字符常量普通字符常量:以单引号‘’包围的单个字符。如:’A’、’a’、’2’、’!’等。注意:单个字符在计算机中以ASCII码形式存储。因此,字符常量与整数的存放形式类似。C语言中,字符数据与整型数据之间具有相通性。44字符常量转义字符常量用‘\’开头的特殊形式的字符常量,用以产生一个动作。例:‘\n’,’\r’若要表示\符号,则必须表示为:‘\\’45字符常量常见转义字符常量46转义字符意义ASCII码值(十进制)\a响铃(BEL)7\b退格(BS),将当前位置移到前一列8\n换行(LF),将当前位置移到下一行开头10\r回车(CR),将当前位置移到本行开头13\t水平制表(HT)(跳到下一个TAB位置)9\v垂直制表(VT)11\\代表一个反斜线字符''\'92\'代表一个单引号(撇号)字符39\"代表一个双引号字符34\0空字符(NULL)0\ddd1到3位八进制数所代表的任意字符三位八进制\xhh1到2位十六进制所代表的任意字符二位十六进制字符串常量用双引号括起来,表示字符串。例:“abc”,”123”,”hello!”注:字符串默认用0的ASCII作为结束符。例:“A”和’A’占用的内存空间不同47A/0A“A”‘A’常量使用说明使用要点:符号常量用大写字母表示(但不是必须)。例:#definePRICE30main()

{

intnum=10,total;

total=num*PRICE;

printf(“total=%d”,total);

}484.变量变量:在程序执行过程中,其值可以被改变的量。变量必须先定义后使用。

变量的本质是地址12a变量名内存单元的地址变量值内存单元的内容49标识符与变量的命名标识符:对变量、符号常量、数组、函数、类型、文件等命名的有效字符序列。由字母、数字和下划线组成。其长度与具体的编译器有关。变量的命名原则:每个变量具有一个名称,以区分不同的变量,变量的命名原则:按“见名知意”的原则。变量的定义:变量类型变量名称例:inta;50基本整型(int)2字节或4字节短整型(shortint)长整型(longint)双长整型(longlongint)511)整型变量说明:C标准没有具体规定各种类型数据所占存储单元的长

度,仅要求:sizeof(long)≥sizeof(int)≥sizeof(short)。/*求两个数之和*/main(){

inta,b,sum;

/*定义变量*/

a=123;b=456;

sum=a+b;

printf(“sumis%d\n”,sum);}

输出信息:sumis579例:52用于存放实型数据的变量。包括:单精度浮点型(float)一般占4字节,6位有效数字双精度浮点型(double)一般占8字节,15位有效数字长双精度浮点型(longdouble)一般占16字节,19位有效数字如:floatx,y;doublez;532)实型变量3)字符变量用于存放1个字符既可以是8位的ASCII,也可以是一个8位二进制数定义方式:char字符变量名;例:charc1,c2;c1=‘d’;c2=‘s’;字符数据在内存中存放的是它的ASCII编码。当以字符格式输出时,输出为字符;当以整型输出时,输出为整型数。54main(){charc1,c2;

c1=‘a’;

c2=‘A’;

printf(“c1=%c,c2=%c\n”,c1,c2);

printf(“c1=%d,c2=%d\n”,c1,c2);}例:程序输出为:c1=a,c2=Ac1=97,c2=65说明:字符数据与整型数据之间可以相互赋值。

c1=a,c2=A字符数据可以以字符或整型数据两种方式输出

c1=97,c2=6555将两个小写字母转换成大写字母。main(){charc1,c2;

c1=‘a’;c2=‘b’;

c1=c1-32;c2=c2-32;

printf(“c1=%c,c2=%c\n”,c1,c2);}例:程序输出为:c1=A,c2=B56变量定义小结变量必须先定义、后使用,且只能定义一次。C程序允许变量在定义时直接用“=”对其进行赋值。如:intsum=0;inta,b,c=5;inta=3,b=3,c=5;charc1=‘w’;

inta=d=e=10;C语言中没有定义字符串变量,对字符串的处理将采用数组或指针。请注意区别字符与字符串的不同。57例:列出不同数据类型所占内存的长度main(){printf(“char%2d\n”,sizeof(char));

printf(“int%2d\n”,sizeof(int));

printf(“unsigned%2d\n”,sizeof(unsigned));

printf(“short%2d\n”,sizeof(short));

printf(“long%2d\n”,sizeof(long));

printf(“float%2d\n”,sizeof(float));

printf(“double%2d\n”,sizeof(double));}用于计算各种数据类型占用存储单元字节数的运算符5859主要内容程序设计的基本概念数据类型数据的输入与输出运算符与表达式程序控制结构及控制语句三种基本结构程序设计输入和输出函数

C语言本身没有输入输出语句,其输入和输出操作由C标准函数库中的函数实现。系统函数库中的标准函数已由开发者进行编译(成为.OBJ文件),在链接时与源程序经编译后的目标文件(.OBJ)链接在一起,形成可执行文件(.exe)。60输入输出系统库函数引用源程序在使用系统库函数时,需在起始处用编译预处理指令#include将有关头文件放在程序中。例:#include<stdio.h>61Standardinput&outputheader只要在程序中涉及输入/输出操作,必须使用标准输入输出库函数,则必须在程序起始处加:#include<stdio.h>1.输出函数输出函数:将信息输出到屏幕上基本格式:printf(“格式控制串”,输出参数表)例:printf(“%d,%d\n”,a,b);62格式声明参数列表将参数表中给出的待输出数据转换为指定格式输出。表示方法:%+格式字符printf(“a=%d,b=%d\n”,a,b);输出函数例:#include<stdio.h>intmain(){doublea=1.0;printf(“%f\n”,a/3);return0;}63运行结果:0.333333格式字符,表示按浮点数输出,整数部分全部输出,小数保留6位。printf(“a=%f\n”,a/3);运行结果:a=0.333333可以设置有效小数位及输出所占列数。如:

printf(“%12.10f\n”,a/3);运行结果:0.3333333333输出函数说明:在用print函数输出时,输出对象的类型应与格式匹配;一般情况下,输出格式用小写字母。如:%dprint函数中的“格式控制”用%开头,以相应格式字符结束,可插入附加格式字符。一般在“格式控制”的最后应加转义字符“\n”,表示换行。64printf(“a=%df=%fs=%c\n”,a,f,s);2.输入函数输入函数:按指定格式接受键盘输入的信息基本格式:scanf(“格式控制串”,地址列表)例:Scanf(“a=%f,b=%f”,&a,&b)65变量地址输入函数注意点:scanf函数中的“格式控制”后边是变量地址,不是变量名。即:在变量名前边要加“&”。例:floata,b,c;scanf("%f%f%f",&a,&b,&c);66要求输入3个实数,输入时每个数之间要用空格分开。例:321输入输出函数中的格式符输入输出函数中常用的格式字符67格式符含

义%d以有符号十进制形式整数输出/输入有符号十进制整数%c以字符形式输出,且只输出一个字符/输入单字符%s以字符串形式输出/用于输入字符串%f输出单精度和双精度浮点数/用于以小数或指数形式输入浮点数68主要内容程序设计的基本概念数据类型数据的输入与输出运算符与表达式程序控制结构及控制语句三种基本结构程序设计运算符与表达式运算是数据的加工过程。表示不同运算的符号称为运算符。参加运算的数据称为操作数。表达式:由运算符和运算数组成的式子不同类型的表达式按不同运算规则进行计算,计算结果是不同类型的值。69C语言运算符合表达式种类算术运算符和表达式关系运算符和表达式逻辑运算符和表达式赋值运算符和表达式自增自减运算符和表达式70第1次C程序实验#include<stdio.h>intmain(){charc1=97,c2=98;printf("c1=%c,c2=%c\n",c1,c2);printf("c1=%d,c2=%d\n",c1,c2);return0;}197,198;显示随机数198=C6H第1位为1,表示负数字符的有效范围是0~127#include<stdio.h>#definePI3.14159fintmain(){floatr,h,s,l,v1,v2;printf("请输入圆的半径r和圆柱高h:\n");

scanf_s("r=%f,h=%f",&r,&h);s=PI*r*r;l=2*PI*r;

v1=4.0/3.0*PI*r*r*r;v2=s*h;

printf("圆的面积s=%f\n圆的周长l=%f\n球体体积v1=%f\n圆柱体积v2=%f\n",s,l,v1,v2);return0;}72doublescanf_s("r=%lf,h=%lf",&r,&h);printf("圆的面积s=%lf\n圆的周长l=%lf\n球体体积v1=%lf\n圆柱体积v2=%f\n",s,l,v1,v2);printf("圆的面积s为:%12.6f\n圆的周长l为:%12.6f\n球体体积v1为:%11.6f\n圆柱体积v2为:%12.6f\n",s,l,v1,v2);所占列数小数位数1.算术运算符和算术表达式算术运算符:+(加),-(减),*(乘),/(除),%(整除求余)优先级:先:乘、除,之后:取余,最后:加、减从左至右运算对象:数值变量、常数、函数、表达式等说明:对除法,若被除数和除数都为整数,则结果也是整型数。C语言中没有指数运算符。5X2

应写成5*X*X所有运算符不能省略(x+y)(x-y)改为(x+y)*(x-y)73算术表达式设a=5,b=3,c=1,d=2,e=6则:

a+b-c/d+e%d74=5+3–0+0=8%左右必须是整型,否则编译出错例:#include<stdio.h>intmain(){charc1,c2;c1=‘A’;c2=c1+32;//将’a’的ASCII赋给c2printf(“%c\n”,c2);//输出字符’a’printf(“%d\n”,c2);//输出字符’a’的ASCIIreturn0;}752.关系运算符和关系表达式关系运算主要用于比较两个运算数的大小关系。用关系运算符将两个表达式连接起来的式子,称关系表达式。可以是:算术表达式、关系表达式、逻辑表达式、赋值表达式、字符表达式运算符名称例子关系>大于a>ba大于b<小于a<ba小于b==等于a==ba等于b!=不等于a!=ba不等于b>=大于等于a>=ba大于等于b<=小于等于a<=ba小于等于b76关系表达式关系表达式的计算结果是逻辑值(布尔值):“1”

代表“真”,以“0”代表“假”。例如:“5==3”的值为“假”(值为0)“5>=0”的值为“真”(值为1)关系运算符的优先级顺序:{>,>=,<,<=}高于{==,!=}与其他运算符优先级的关系:算术运算符>关系运算符>赋值运算符。例:3+5>777先运算3.逻辑运算符和逻辑表达式逻辑运算的结果是逻辑值“真”和“假”优先级:!>&&>||运算对象算术、关系、赋值、字符及逻辑表达式运算符名称例子关系!逻辑非!a非a&&逻辑与a&&ba与b||逻辑或a||ba或b78若a和b同时为“真”,则:a&&b为“真”运算符例不同运算符的优先级:!>算术运算>关系运算>其他逻辑运算例:x*y>z&&x*y<100||-x*y>0&&!Isgreat(z)判别闰年表达式:(year%4==0&&year%100!=0)||year%400==079先计算函数4.赋值运算符和赋值表达式赋值运算符“=”:将=左边表达式的值存入=右侧的变量例:V=e;//将表达式的值e赋给变量V复合赋值运算符:格式:Vop=e等价于:V=Vope例:

a+=5,等价于a=a+5复合赋值运算符有:+=、-=、*=、/=、%=等10个80如果赋值运算符两侧的数据类型不一致,则赋值时需要进行类型转换将浮点数据赋值给整型数据时,舍弃小数部分。int=float的结果为int型。如:floata;ints;a=12.34;s=a;

结果:这时s的值为1281赋值过程中的类型转换将整型数据赋值给浮点型变量时,数值不变,但数据是浮点形式。即:float=int的结果为float型。如:ints;floata;s=12;a=s;结果:这时a的值为12.0000082赋值过程中的类型转换赋值过程中的类型转换将double型数据赋给float型变量时,将双精度转换为单精度.例:doubled=123.456789;floatf;f=d;83d=123.45678900000000f=123.4568将字符数据赋值给整型变量时,只将其低8位赋值给整型变量(即发生“截断)例:inti=289;charc=‘a’c=i84赋值过程中的类型转换c=33001000010000000100100001应避免将长字节数赋给短字节数,以免造成数据丢失赋值过程中的类型转换字符数据赋值给整型变量时,传送的是字符的ASCII码int=char85例1:unsignedcharc; intx;c=‘\376’; x=c;

当char为有符号数据时,高8位需进行“符号位扩展”,即高8位将依据符号位的值来决定是补0或补1;例:charc;intx;c=‘\376’;x=c;

111111101111111000000000111111111111111011111110X=-2X=254赋值过程中的类型转换例i=j=m*n;

计算表达式m*n的值,将其结果存入变量j中,然后再将结果存入变量i中。temp=a;a=b;b=temp;

交换a和b的值,temp是工作单元。sum=sum+i;(等价于sum+=i;)875.自增、自减运算符自增运算符和自减运算符的用法88例i++;

//i增加1i;

//i减少1x=array[++i];//将array[i+1]的值赋给x,并使i增加1s1[i++]=s2[j++];

//将s2[j]赋给s1[i],然后分别使i和j增加1s1[i]=s2[j]i=i+1j=j+189i值先加1,再运算先运算,再使i和j加1表达式中各运算符的运算顺序优先级别运算符运算形式名称或含义1()[](e)a[e]圆括号数组下标2-+++--!-e++x或x++负号和正号自增运算和自减运算逻辑非3*/%e1*e2乘、除和求余4+-e1+e2加和减6<<=>>=e1<e2关系运算(比较)7==!=e1==e2等于和不等于比较90数据之间的混合算术运算级别低的类型转换为级别高的类型。各类型按级别由低到高的顺序为char,int,unsigned,long,unsignedlong,float,double。

可以使用强制类型转换。d1=(double)i1/i2;9192主要内容程序设计的基本概念数据类型数据的输入与输出运算符与表达式程序控制结构及控制语句结构化程序结构化程序设计方法的基本思想是任何程序都可以用三种基本结构表示,即:顺序结构,选择结构,循环结构由这三种基本结构经过反复嵌套构成的程序成为结构化程序。931.基本程序控制结构基本程序控制结构顺序结构程序按语句或模块在执行中的顺序逐个执行选择结构程序按设定的条件两路或多路分支执行循环结构程序按给定条件重复执行指定的程序段。94C程序控制结构C语言是一种很好的结构化程序设计语言,它提供了实现结构化程序所需的多种流程控制语句。分类如下:95952.顺序结构顺序结构程序按语句或模块在执行中的顺序逐个执行96(a)(b)顺序结构顺序结构语句包括:说明语句赋值语句I/O语句复合语句和空语句97顺序结构复合语句:用花括号括起来的程序段。一般形式为:

{<局部数据说明部分><执行语句段落>}空语句:只有一个分号的语句在语法上占据一个语句的位置,但不具备任何可执行的功能。98{<局部数据说明部分><执行语句段落>{<局部数据说明部分><执行语句段落>}}993.选择结构选择结构当满足一定条件时程序才能执行。程序按设定的条件两路或多路分支执行包括:单分支结构两分支结构多分支结构99选择(分支)结构100C程序中用if-语句实现两个分支的选择结构,用switch语句实现多分支选择结构选择结构单分支结构语句格式:if(表达式)

语句序列;语句序列可以是一个语句,也可以是复合语句结构。两分支结构语句格式:if(表达式)语句序列1;else语句序列2;条件?语句序列1成立不成立语句序列2If语句举例1例:输入两个实数,按数值由小到大的次序输出这两个数。102#include<stdio.h>intmain(){

doublea,b,t;scanf(“%lf%lf”,&a,&b);

if(a>b) {

t=a;

a=b;

b=t; }

printf(“%lf,%lf\n”,a,b); return0;}选择分支的嵌套___多分支结构格式:If(条件表达式1)<语句块1>elseIf(条件表达式2)<语句块2>……elseIf(条件表达式m)<语句块m>Else<语句块n>功能:若条件表达式1的值=True,执行语句块1;若条件表达式2的值=True,执行语句块2;….103104在3个数中最大值#include<stdio.h>main(){inta,b,c,max;

scanf_s("%d%d%d",&a,&b,&c);if(a>b)

{

if(a>c) max=a;

else max=c;

}105If语句举例2else

{

if(b>c) max=b;

else max=c;

}

printf("max=%d\n",max);return0;}求解ax2+bx+c=0方程的根。要求:用键盘输入a,b,c;如果b2-4ac≥0,则计算并输出方程的实根;如果b2-4ac<0,则输出“方程无实根”的信息。106If语句举例3#include<stdio.h>#include<math.h>//算术运算库函数intmain(){ doublea,b,c,disc,x1,x2,p,q; scanf_s("%lf%lf%lf",&a,&b,&c); disc=b*b-4*a*c; p=-b/(2*a); q=sqrt(disc)/(2*a);

if(disc<0) printf("Thisequationhasn'trealroots\n");107开平方函数108else

if(disc==0){ x1=x2=p;

printf("realrootis:%lf",x1);

}

else{x1=p+q; x2=p-q;

printf("realrootis:\nx1=%lf\nx2=%lf\n",x1,x2);}

return0;}1094.循环语句用于某些需要重复执行的语句。C语言的循环控制语句有两种:while循环当型循环直到型循环for循环1)while循环当型循环语句格式:

while(表达式)

[{]

语句序列

[}]110语句序列不成立成立条件?循环体while循环直到型循环语句格式:do{

语句序列

}while(表达式);111条件?语句序列成立不成立循环体例:计算1+2+3+…+100题目分析:该题目要求计算累加和:可以用while语句实现:需要设置两个参数累加和,计数值初始情况下,累加和=0;当计数值大于100时停止求和,即退出循环。

声明变量累加和sum,计数值iSum=0,i=0i≤100Sum=sum+1i=i+1TF#include<stdio.h>intmain(){intsum=0,i=1;while(i<=100){sum=sum+i;i++;}printf("i=%d,sum=%d\n",i,sum);return0;}113用while实现用dowhile实现#include<stdio.h>intmain(){intsum=0,i=1;

do{sum=sum+i;i++;}

while(i<=100);printf("i=%d,sum=%d\n",i,sum);return1;}114For循环语句For语句格式:

for(表达式1;表达式2;表达式3){

语句序列}115表达式2成立不成立语句序列计算表达式1计算表达式3循环初值循环退出条件例:#include<stdio.h>intmain(){

温馨提示

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

评论

0/150

提交评论