第3章-1程序控制结构_第1页
第3章-1程序控制结构_第2页
第3章-1程序控制结构_第3页
第3章-1程序控制结构_第4页
第3章-1程序控制结构_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

第3章§3.1C语句概述C程序源程序文件1源程序文件2源程序文件n预处理命令函数n函数1数据声明函数首部函数体数据声明执行语句一个c程序可以由若干个源程序文件组成。一个源文件可以由若干个函数和预处理命令以及全局变量声明部分组成。一个函数由函数首部和函数体组成。函数体由数据声明和执行语句组成。C语句分为:5类控制语句函数调用语句表达式语句空语句复合语句(语句块)(一)控制语句:完成一定的控制功能 1if()~else条件语句6break间断语句 2for()~循环语句7switch()开关语句 3while()~循环语句8goto转向语句 4do~while();循环语句9return返回语句 5continue继续语句(二)函数调用语句一个函数调用加一个分号构成一个语句Printf(“ThisisaCstatement.”);(三)表达式语句一个表达式加一个分号构成表达式语句:(四)空语句:只有一个分号的语句(什么也不做)。用来做流程的转向点。用来作为循环语句中的循环体。(五)复合语句:用一对{}括起来的语句(语句块)例:{ z=x+y; t=z/100; printf(“%f”,t);}§3.2赋值语句赋值语句是由赋值表达式加上一个分号构成例:a=100赋值表达式

a=100;赋值语句条件中不能含有赋值符号,但是赋值表达式可以包含于条件表达式中例:if(a=b)t=a;错误

if((a=b)>0)t=a;正确§3.3数据输入输出的概念及在C语言中的实现(一).所谓输入、输出是以计算机为主体而言的输出:从计算机向外部输出设备(显示器,打印机)输出数据输入:从输入设备(键盘,鼠标,扫描仪)向计算机输入数据.(二).C语言本身不提供输入、输出语句,输入和输出操作是由C函数库中的函数来实现的例如:字符输入函数:getchar()字符输出函数:putchar()格式输入函数:scanf()格式输出函数:printf()字符串输入函数:gets()字数串输出函数:puts()§3.4字符数据的输入输出(一).字符输出函数一般形式:putchar(c)

函数作用:向终端输出一个字符例1输出单个字符。

#include<stdio.h>

main()

{

chara,b,c;

a='B';b='O';c='Y';

putchar(a);putchar(b);putchar(c);

putchar('\n');

}运行结果:BOY(二).字符输入函数一般形式:getchar()

函数作用:从终端(或系统隐含指定的输入设备)输入一个字符。函数值:从输入设备得到的字符。例2输入单个字符。

#include<stdio.h>

voidmain()

{

charc;

c=getchar();

putchar(c);

putchar('\n');

}运行程序:

从键盘输入字符‘a’

按Enter键

屏幕上将显示输出的字符‘a’

a

a§3.5格式输入与输出(一).格式输出函数:printf()函数函数作用:向终端(或系统隐含指定的输出设备)输出若干个任意类型的数据。一般格式:printf(格式控制,输出表列)%d,%i:以有符号的十进制形式输出整型数据(正数不输出符号)%ld:以有符号的十进制形式输出长整型数据%o:以八进制无符号形式输出整数%x,%X:以十六进制无符号形式输出整数(%x以小写形式,%X以大写形式)%u:以无符号十进制形式输出整数%c:以字符形式输出,只输出一个字符%s:以字符串形式输出字符串%f:以浮点数形式(包括float和doulbe)输出单、双单精度数据,隐含输出六位小数%lf:以小数形式输出双精度数数据,隐含输出15位小数几种常见的格式符的修饰符:l:用于长整型整数,可加在格式符d,o,x,u,f前面h:用于短整型整数m(代表一个正整数):数据最小宽度n(代表一个正整数):对实数,表示输出n位小数;对字符串,表示截取的字符个数。d格式符:用来输出有符号的十进制整数。几种用法:①%d:按十进制整型数据的实际长度输出。②%md:m为指定的输出字段的宽度。如果数据的位数小于m,则数据右对齐,左端补以空格,若大于m,则按实际位数输出。例:

printf(″%4d,%4d″,a,b);

若a=123,d=12345,则输出结果为

123,12345

%-md:输出数据左对齐,右端补以空格。③%ld:输出长整型数据。

例:longa=135790;/*定义a为长整型变量*/

printf(″%ld″,a);④

%hd:输出短整型数据。(2)o格式符:以无符号八进制形式输出整数。输出的数值不带符号,符号位也一起作为八进制数的一部分输出。例:inta=-1;printf("%d,%o",a,a);-1在内存单元中的存放形式(以补码形式存放)如下:1111111111111111输出为:-1,177777不会输出带负号的八进制整数。对长整数(long型)可以用“%lo”格式输出。还可以指定字段宽度,例:printf("%8o",a);输出为:177777。(数字前有2个空格)(3)x格式符:以十六进制数形式输出整数。同样不会出现负的十六进制数。例:inta=-1;printf(″%x,%o,%d″,a,a,a);输出结果为:ffff,177777,-1可以用“%lx”输出长整型数,也可以指定输出字段的宽度例:“%12x”(4)u格式符:用来输出unsigned型数据.一个有符号整数(int型)也可以用%u格式输出;一个unsigned型数据也可以用%d格式输出。unsigned型数据也可用%o或%x格式输出。(5)c格式符:用来输出一个字符。如:chard=′a′;printf(″%c″,d);输出字符′a′.一个整数,只要它的值在0~255范围内,可以用“%c”使之按字符形式输出,在输出前,系统会将该整数作为ASCII码转换成相应的字符;一个字符数据也可以用整数形式输出。例3无符号数据的输出。

#include<stdio.h>

voidmain()

{

unsignedinta=65535;intb=-2;

printf("a=%d,%o,%x,%u\n",a,a,a,a);

printf("b=%d,%o,%x,%u\n",b,b,b,b);

}运行结果:

a=-1,177777,ffff,65535

b=-2,177776,fffe,65534例4字符数据的输出。

#include<stdio.h>

voidmain()

{

charc='a';inti=97;

printf("%c,%d\n",c,c);

printf("%c,%d\n",i,i);

}运行结果:

a,97

a,97(6)s格式符:输出字符串.①%s。例如:printf(″%s″,″CHINA″)输出字符串“CHINA”(不包括双引号)。②%ms,输出的字符串占m列,若串长大于m,则全部输出,若串长小于m,则左端补空格。③%-ms,若串长小于m,字符串左对齐,右端补空格。④%m.ns,输出占m列,右对齐。只取字符串中左端n个字符,输出在m列的右侧,左补空格。⑤%-m.ns,n个字符输出在m列,左对齐,右补空格,若n〉m,m自动取n值。例5:字符串的输出。

#include<stdio.h>

voidmain()

{

printf("%3s,%7.2s,%.4s,%-5.3s\n","CHINA","CHINA","CHINA","CHINA");

}运行结果:

CHINA,CH,CHIN,CHI(7)f格式符或lf格式符:用来以单、双精度形式输出实数。有以下几种用法:①%f或%lf。不指定字段宽度,由系统自动指定字段宽度,使整数部分全部输出,并输出6位小数。应当注意,在输出的数字中并非全部数字都是有效数字。单精度实数的有效位数一般为7位,双精度实数的有效位数一般为15位。②%m.nf或%m.nlf。指定输出的数据共占m列,其中有n位小数。如果数值长度小于m,则左端补空格。③%-m.nf与%m.nf基本相同,只是使输出的数值向左端靠,右端补空格。

例6输出实数时的有效位数。

#include<stdio.h>

voidmain()

floatx,y;

x=111111.111;y=222222.222;

printf("%f",x+y);

运行结果:

333333.328125

例7输出双精度数时的有效位数。

#include<stdio.h>

voidmain()

doublex,y;

x=1111111111111.1111111;

y=2222222222222.2222222;

printf("%f",x+y);

}运行结果:

3333333333333.333010例8输出实数时指定小数位数。

#include<stdio.h>

voidmain()

{

floatf=123.456;

printf("%f%10f%10.2f%.2f%-10.2f\n",f,f,f,f,f);

}运行结果:

123.456001123.456001123.46123.46123.46

说明:可以在printf函数中的“格式控制”字符串中包含转义字符。一个格式说明必须以“%”开头,以9个格式字符之一为结束,中间可以插入附加格式字符。想输出%,则应该在格式控制字符串中用连续两个%表示。(二).格式输入函数(scanf函数)函数作用:按照变量在内存的地址将变量值存进去。一般格式:scanf(格式控制,地址表列)同printf函数是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址例9用scanf函数输入数据。

#include<stdio.h>

voidmain()

{

inta,b,c;

scanf("%d%d%d",&a,&b,&c);

printf("%d,%d,%d\n",a,b,c);

}运行情况:

345(输入a,b,c的值)

3,4,5(输出a,b,c的值)a在内存中的地址&是地址运算符

使用scanf函数时应注意的问题:(1)scanf函数中的“格式控制”后面应当是变量地址,而不应是变量名。

(2)如果在“格式控制”字符串中除了格式说明以外还有其他字符,则在输入数据时在对应位置应输入与这些字符相同的字符。(3)在用“%c”格式输入字符时,空格字符和“转义字符”都作为有效字符输入

(4)在输入数据时,遇以下情况时系统认为该数据输入结束。①遇空格,或按“回车”或“跳格”(Tab)键;②按指定的宽度结束,如“%3d”,只取3列;③遇非法输入。(5)在TurboC2.0中,如程序中包含printf和sacnf函数时,可以不加#include<stdio.h>。顺序结构程序设计举例例3.2(教材P66页)从键盘上输入园半径,输出园面积(结果保留小数点后两位)。程序代码如下:#include<stdio.h>voidmain(){doubler,s;scanf("%lf",&r);s=3.14*r*r;printf("s=%.2lf\n",s);}例3.3(教材P67页)输入整型变量a和b的值,交换它们的值并输出。程序代码如下:#include<stdio.h>voidmain(){inta,b,t;scanf("%d,%d",&a,&b);t=a;a=b;b=t;printf("a=%d,b=%d\n",a,b);}例10输入三角形的三边长,求三角形面积。假设:三个边长a,b,c能构成三角形。已知面积公式:area=s=(a+b+c)*0.5开始输入三边长计算s计算面积结束#include<stdio.h>

#include<math.h>

voidmain()

{

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);

}数学函数库因为要用到其中的sqrt函数运行情况:

3,4,6

a=3.00,b=4.00,c=6.00,s=6.50

area=5.33例11从键盘输入一个大写字母,要求改用小写字母输出。

#include<stdi

温馨提示

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

评论

0/150

提交评论