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

下载本文档

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

文档简介

会计学1C语言顺序程序设计第3章

顺序结构程序设计语句简介赋值语句常用输入输出函数程序设计的一般步骤顺序结构程序设计举例课后作业讲课提纲第1页/共24页第3章

顺序结构程序设计控制语句C语言中共有9种流程控制语句:

if()….else (条件语句)for() (for循环语句)while() (while循环语句)do…while() (do-while循环语句)continue (结束本次循环语句)Break(中止执行switch语句或循环语句)switch (多分支选择语句)goto (转向语句)return (从函数返回语句)函数调用语句

与表达式语句相似,在函数调用表达式后面加分号就构成了函数调用语句。3.1语句简介例:printf("thisisacstatement.");c=max(a,b);第2页/共24页

第3章

顺序结构程序设计

表达式语句在一个表达式的后面加一个分号“;”就构成表达式语句。例如:i=i+2是表达式,而不是语句。i=i+2;是语句。任何表达式都可以加上分号而成为语句空语句只有1个分号的语句称为空语句。如:;即是1个空语句,它什么也不做。空语句也可以被看成是一种特殊情况下的表达式语句,它只有一个分号,执行时不做任何事情,有时用来作为被转向点,或循环语句中的循环体。3.1语句简介第3页/共24页

第3章

顺序结构程序设计

复合语句

由一对大括弧“{}”把若干语句括起来构成的语句称为复合语句。复合语句的一般形式:{语句1;语句2;……

;语句n;}复合语句在语法上相当于1个单一语句,在一对花括号内的语句数量不限。例如:{a++;b*=a;printf("b=%d\n",b);}在复合语句内,不仅可以有执行语句,还可以有定义部分,定义部分应该出现在可执行语句的前面。例如:{intt;t=x;x=y;y=t;}3.1语句简介第4页/共24页

第3章

顺序结构程序设计

赋值语句是由赋值表达式加上一个分号构成,是程序设计中最常用的语句之一:【格式】变量名=表达式;【功能】将赋值号“=”号右边表达式的值赋给左边的变量【执行过程】先计算表达式的值,然后再把该值赋给左边的变量注意:赋值表达式可以包括在其他表达式之中,例如:

if((a=b)>0)t=a;3.2赋值语句

运算符第5页/共24页

第3章

顺序结构程序设计

字符输出函数putchar()字符输入函数getchar()格式输入函数printf()格式输出函数scanf()3.3常用输入输出函数只能输入输出一个字符而不能是字符串第6页/共24页

第3章

顺序结构程序设计

字符输出函数putchar(),作用是向终端输出一个字符。基本格式:putchar(ch);用法说明:参数ch使用比较灵活,可以是除字符串常量之外的字符常量、字符变量、整型常量、整型变量、实型常量、实型变量或各种表达式在程序中使用putchar()函数时,该程序的开头必须用一条预编译命令“#include<stdio.h>”。putchar()函数可以输出控制字符,如:putchar(‘\n’);3.3.1putchar函数例3.1在putchar函数中使用不同参数输出字符A。#include"stdio.h"main(){charch='A';inti=65;putchar(ch);/*输出字符变量所代表的字符,得到运行结果中第一个A*/putchar(i);/*输出以整型变量i的值为ASCⅡ码的字符,得到运行结果中第二个A*/putchar('A');/*直接输出字符常量'A',得到运行结果中第三个A*/putchar(65);/*输出以十进制整型常量65为ASCⅡ码的字符,得到运行结果中第四个A*/putchar('\n');/*输出一个换行符*/}程序运行结果:AAAA第7页/共24页

第3章

顺序结构程序设计

字符输入函数getchar(),接收从终端(或系统隐含指定的输入设备)输入的1个字符。它没有参数。

基本格式:getchar();

3.3.2getchar函数例3.2输入单个字符#include"stdio.h"main(){charch;ch=getchar();/*从键盘上接收一个字符*/putchar(ch);/*在屏幕上输出该字符*/}运行过程:AA第8页/共24页

第3章

顺序结构程序设计

例3.3输入输出字符练习。#include<stdio.h>main(){charch1,ch2,ch3;ch1=getchar();ch2=getchar();ch3=getchar();putchar(ch1);putchar(ch2);putchar(ch3);}abc↙abcABC↙ABCABCDEFG↙ABCA↙BC↙AB运行情况:第9页/共24页格式:printf(“格式控制串”,输出项表)功能:按指定格式向显示器输出数据返值:正常,返回输出字节数;出错,返回EOF(-1)3.3.3printf函数输出表:要输出的数据(可以没有,多个时以“,”分隔)格式控制串:包含两种信息格式说明:

%[修饰符]格式字符

,用于指定输出格式普通字符或转义序列:原样输出格式字符

第3章

顺序结构程序设计

第10页/共24页d,ix,Xoucse,Efg%%格式字符:十六进制无符号整数不带符号十进制整数十进制整数指数形式浮点小数单一字符字符串八进制无符号整数小数形式浮点小数e和f中较短一种百分号本身inta=567;printf(“%d”,a);inta=255;printf(“%x”,a);inta=65;printf(“%o”,a);inta=567;printf(“%u”,a);chara=65;printf(“%c”,a);printf(“%s”,“ABC”);floata=567.789;printf(“%e”,a);floata=567.789;printf(“%f”,a);floata=567.789;printf(“%g”,a);printf(“%%”);567ff101567AABC5.677890e+02567.789000567.789%说明

格式字符要用小写格式字符与输出项个数应相同,按先后顺序一一对应输出转换:格式字符与输出项类型不一致,自动按指定格式输出例

main(){unsignedintu=65535;printf(”u=%d\n",u);}

输出结果:u=-1例inta=3,b=4;printf(“%d%d\n”,a,b);printf(“a=%d,b=%d\n”,a,b);

例inta=3,b=4;printf(“%d%d\n”,a,b);printf(“a=%d,b=%d\n”,a,b);输出结果:34a=3,b=4111111111111111165535

第3章

顺序结构程序设计

第11页/共24页附加格式说明符(修饰符).n对实数,指定小数点后位数(四舍五入)对字符串,指定实际输出位数修饰符功能m输出数据域宽,数据长度<m,左补空格;否则按实际输出输出数据在域内左对齐(缺省右对齐)-指定在有符号数的正数前显示正号(+)+输出数值时指定左面不使用的空位置自动填00在八进制和十六进制数前显示前导0,0x#在d,o,x,u前,指定输出精度为long型在e,f,g前,指定输出精度为double型l

第3章

顺序结构程序设计

第12页/共24页

第3章

顺序结构程序设计

main(){inta,b,c;a=printf("%.5d\n",38);b=printf("%e\n",123.456789);c=printf("%g\n",123.456789);printf("a=%d,b=%d,c=%d\n",a,b,c);}例3.5printf函数的返回值程序运行结果:

000381.23457e+02123.457a=6,b=12,c=8第13页/共24页3.3.4scanf函数格式:scanf(“格式控制串”,地址表)功能:按指定格式从键盘读入数据,存入地址表指定的存储单元中,并按回车键结束返值:正常,返回输入数据个数地址表:变量的地址,常用取地址运算符&格式字符:d,i,o,x,u,c,s,f,e例scanf(“%d”,&a);

输入:10

则a=10例scanf(“%x”,&a);

输入:11

则a=17

第3章

顺序结构程序设计

第14页/共24页附加格式说明符(修饰符)l修饰符功能hm*用于d,o,x前,指定输入为short型整数用于d,o,x前,指定输入为long型整数用于e,f前,指定输入为double型实数指定输入数据宽度,遇空格或不可转换字符则结束抑制符,指定输入项读入后不赋给变量例scanf(“%4d%2d%2d”,&yy,&mm,&dd);

输入19991015

则1999yy,10mm,15dd例scanf(“%3d%*4d%f”,&k,&f);

输入12345678765.43则123k,8765.43f例scanf(“%2d%*3d%2d”,&a,&b);

输入1234567

则12a,67b例scanf(“%3c%2c”,&c1,&c2);

输入abcde

则‘a’c1,‘d’c2

第3章

顺序结构程序设计

第15页/共24页输入分隔符的指定一般以空格、TAB或回车键作为分隔符其它字符做分隔符:格式串中两个格式符间字符例scanf(“%d%o%x”,&a,&b,&c);printf(“a=%d,b=%d,c=%d\n”,a,b,c);

输入123123123

输出a=123,b=83,c=291例scanf(“%d:%d:%d”,&h,&m,&s);

输入12:30:45

则12h,30m,45s例scanf(“%d,%d”,&a,&b)

输入3,4

则3a,4b例scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);

输入a=12,b=24,c=36

第3章

顺序结构程序设计

第16页/共24页说明:用“%c”格式符时,空格和转义字符作为有效字符输入如scanf(“%c%c%c”,&c1,&c2,&c3);

若输入abc

则ac1,

c2,bc3输入数据时,遇以下情况认为该数据结束:遇空格、TAB、或回车遇宽度结束遇非法输入如scanf(“%d%c%f”,&a,&b,&c);

若输入1234a123o.26

则1234a,‘a’b,123c输入函数留下的“垃圾”:例intx;charch;scanf(“%d”,&x);ch=getchar();printf(“x=%d,ch=%d\n”,x,ch);执行:123输出:x=123,ch=10例intx;charch;scanf(“%d”,&x);scanf(“%c”,&ch);printf(“x=%d,ch=%d\n”,x,ch);执行:123输出:x=123,ch=10解决方法:(1)用getchar()清除(2)用函数fflush(stdin)清除全部剩余内容(3)用格式串中空格或“%*c”来“吃掉”例intx;charch;scanf(“%d”,&x);

scanf(“%c”,&ch);或scanf(“%*c%c”,&ch);

第17页/共24页

第3章

顺序结构程序设计

从软件工程的角度来看,编写一些实用软件,常常需要经过以下主要步骤:软件维护软件需求分析概要设计编码软件测试对于绝大多数实际问题,程序设计的一般可以分为以下步骤:程序的调试编程确定算法:建模:3.4程序设计的一般步骤第18页/共24页

第3章

顺序结构程序设计

3.5顺序结构程序设计举例例3.11交换两个变量的值main(){inta,b,t;printf("Entera&b:");/*输出一行提示信息*/scanf("%d%d",&a,&b);/*从键盘上输入变量a、b的值*/printf("(1)a=%db=%d\n",a,b);/*显示变量a、b的初始值*/t=a;a=b;b=t;/*这三条语句实现了两个变量的交换*/printf("(2)a=%db=%d\n",a,b);/*显示变量a、b交换之后的值*/}Entera&b:123456输出:(1)a=123b=456(2)a=456b=123

第19页/共24页第3章

顺序结构程序设计例3.12在例3.3的基础上实现:输入小写字母,输出大写字母。#include<stdio.h>#include<ctype.h>/*使用字符函数(如toupper)必须包含该头文件*/main(){charch1,ch2,ch3;ch1=getchar();ch2=getchar();ch3=getchar();ch1=ch1-32;ch2=ch2-'a'+'A';ch3=toupper(ch3);putchar(ch1);putchar(ch2);putchar(ch3);}小写字母转换为大写字母输入三个小写字母给ch1、ch2、ch3时不能在中间插入空格、回车键或TAB键等字符运行结果:boyBOY第20页/共24页/*ch3_12.c*/#include<math.h>#include<stdio.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);}例3.13输入三角形边长,求面积输入:3,4,6输出:a=3.00,b=4.00,c=6.00s=6.50area=5.33文件包含预处理命令变量定义输入数据输出数据第3章

顺序结构程序设计第21页/共24页第3章

顺序结构程序设计例3.14输入一个double类型的数,使该数保留

温馨提示

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

评论

0/150

提交评论