2022年最简单的C-程序设计顺序程序结构设计_第1页
2022年最简单的C-程序设计顺序程序结构设计_第2页
2022年最简单的C-程序设计顺序程序结构设计_第3页
2022年最简单的C-程序设计顺序程序结构设计_第4页
2022年最简单的C-程序设计顺序程序结构设计_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

第4章最简单的C程序设计

--顺序程序结构设计4.1C语句概述程序的三种基本结构4.2赋值语句4.3数据输入输出的概念及其语言实现4.4字符的输入和输出4.5格式输入与输出4.6程序举例

C语句概述

一个语句经编译后产生若干条机器指令。C语句用来完成一定操作。声明部分不称为语句,inta;C程序源程序文件1源程序文件2源程序文件n预编译命令函数1函数n说明部分执行部分(语句)C程序源程序文件1源程序文件2源程序文件n预编译命令函数1函数n说明部分执行部分(语句)C程序语句分五类1.控制语句2.函数调用语句3.表达式语句4.空语句5.复合语句程序的三种基本结构近年来广泛采用结构化程序设计方法,使程序结构清晰、易读性强。强调今后在学习中要采用此方法。有三种基本结构:顺序结构选择结构循环结构已经证明,由以上基本结构组成的程序能处理任何复杂的问题。2000-2050年的leapyear,能被4整除但不能被100整除,或者能被100整除且能被400整除。Y2000Y/4的余数为0YN打印y闰年Y/100不为0是否y非闰年Y/400余数为0是否打印y闰年打印y非闰年y+1y直到Y>2500

§4.2赋值语句赋值语句是由赋值表达式加上一个分号构成的。它的应用十分普遍,但要注意:①“=”是赋值运算符,不是“等号”。如:x=x+1a=1与a==1②赋值运算符具有“右结合性”,如:a=2;x=b;与2=a;b=x;③赋值表达式可以被包含在其它表达式中,而赋值语句不行。如:if(x>0)t=a;if((a=b)>0)t=a;if((a=b;)>0)t=a;§4.3数据输入输出的概念及在C语言中的实现输入和输出是以计算机主机为主体而言。输出指外部设备:显示屏,打印机,磁盘,输入设备:键盘,磁盘,光盘,扫描仪等。默认输入设备是键盘,输出设备是显示器C语言不提供输入输出语句,输入输出操作是由函数来完成的。如前面提到的printf和scanf。它们是函数名不是C语言的关键字。sizeof是关键字a=sizeof(int)是编译系统提供的要用预编译命令将库函数文件包括到用户源文件中。如:

#include“stdio.h”

#include“math.h”

#include“string.h”只有printf和scanf例外。4.4.1putchar函数(字符输出函数)其作用是向终端输出一个字符,如

putchar(c);输出字符变量c的值

其中c可以是字符型变量或整型变量例:#include“stdio.h”main()

{chara,b,c;a=‘B’;b=‘O’;c=‘Y’;putchar(a);putchar(b);putchar(c);}运行结果:BOY若改为:putchar(a);putchar(‘\n’);putchar(b);putchar(‘\n’);putchar(c);putchar(‘\n’);}运行结果为?也可以输出其它转义字符putchar(‘\101’)等效putchar(‘A’),和putchar(65);putchar(‘\’’)putchar(‘\015’)与等效putchar(‘\r’)4.4.2getchar()函数(字符输入函数)从隐含终端设备读入一个字符,getchar()函数的返回值为字符的值。例4.2#include<stdio.h>main(){charc;c=getchar();putchar(c);}aaputchar(getchar());printf(“%c”,getchar());不要忘记#include<stdio.h>可以用getchar()暂停程序执行执行;读入控制字符例子4.5格式输入与输出4.5.1printf函数(格式输出函数format)printf的作用是向终端(或系统隐含指定的输出设备)输出若干个任意类型的数据。1.一般格式:printf(格式控制,输出列表)例如:printf(“%d%d”,a,b);

格式控制

输出列表printf(“a=%db=%d”,a,b)

格式说明普通字符

输出列表结果a=3b=42.格式字符1.d格式符。用来输出十进制整数。%dprintf(“%d,%d”,a,b);%mdprintf(“%4d,%4d”,a,b)a=123;b=12345;printf(%4d,%4d”,a,b);Ž123,12345%ld输出长整型数printf(“%ld,%ld”,a,b);printf(“%10ld”),a);如:a=1234则:ŽŽŽŽŽ12342.o格式符。用来输出8进制整数。%o%mo%lointa=-1printf(“%d,%o”,a,a);结果:-1,1777773.x格式符。用来输出16进制整数。%x

%mx

%lxprintf(“%d,%o,%x”,a,a,a);结果:-1,177777,ffff注意在八进制和十六进制中并不能,打印出0或0xprintf(“%d,0%o,0x%x”,a,a,a);结果:-1,0177777,0xffff4.u格式符.用来输出十进制无符号整数例:main()

{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以上四种格式可以互换,但是后三种无负数形式;第一种格式应用较多,但是要注意数据的表示范围与输出格式的对应。int-32768~+32767unsigned0~65535int、short占2B内存,long占4B内存5.c格式符。用来输出一个字符。例:main(){chara=‘a’;intb=97;print(“%c,%d\n”,a,a);print(“%c,%d”,b,b);}结果:a,97a,97整数的范围在0~255之间,可以用字符形式输出;一个字符数据可以用整数形式输出。也可指定字符宽度,如:printf(“%3d”,c)6.s格式符。用来输出一个字符串。%s原长输出%ms字符串占m列,小于m左补空格%-ms大于m原样输出,小于m右补空格%m.ns输出占m列,只取字符串左端n个字符%-m.nsn个字符输出在m列的左侧,右补空格例:main(){printf(“%3S,%7.2s,%.4s,%-5.3\n”,“CHINA”,“CHINA”,“CHINA”,“CHINA”);}结果:CHINA,CH,CHIN,CHI

7.f格式符。用来输出实数,以小数形式输出。

%f,不指定字段宽度,由系统自动指定。整数部分如数输出,并输出6位小数。单精度实数有效位数为7位;双精度实数有效位数为16位,小数6位。如:main()

{floatx,y;x=111111.111;y=222222.222;

printf(“%f”,x+y);}“%f”,x+y);}

%

m.nf指定输出的数据占m列,其中n位小数;右对齐。

%-m.nf同上,左对齐。例:main()

{floatf=123.456;

printf(“%f%12f%12.2f%-12.2f%.2f\n”,

f,f,f,f);}8.e格式符。以指数形式输出实数。

%e整数一位,小数6位,指数5位包括e和符号位.例:printf(“%e,%e”,123.456,0.006543);

和%-m.ne其中m为输出宽度,-为左齐,n为尾数的小数位数.例:floatf=123.456;

printf(“%e,%10e,%10.2e,%.2e,%-10.2e”,f,f,f,f,f);结果:1.234560e+002,1.234560e+002,1.23e+002,1.23e+002,1.23e+002使用printf函数时,要注意:

X,E,G可以用大写,但d不能写成D格式控制字符串中可以包括转义字符d、o、x、u、c、s、f、e、g等字符,紧接在“%”后面即为格式字符,在其它位置则为普通字符printf(“c=%cf=%fs=%s”,c,f,s):若想输出“%”,则用连续两个“%”表示如:printf(“%f%%”,1.0/3);输出:0.333333%不同系统的格式输出,可能会有些小差别4.5.2scanf函数(格式输入函数)

scanf格式输入函数,用来输入任何类型的多个数据一般格式:scanf(格式控制,地址列表)例:main(){inta,b,c;scanf(“%d%d%d”,&a,&b,&c);printf(“%d,%d,%d\n”,a,b,c);}运行时的合法输入可以是:①345②345③3④3(按Tab键)4455非法输入为:3,4,5385abc1cf41cf61cf8scanf函数格式说明:1.格式字符与printf相同,只是没有%u和%g2. 可以指定输入数据所占列数,系统自动按它截取所需数据,如:scanf(“%3d%3d”,&a,&b);输入:1234563.%号后的“

”附加说明符,用来表示跳过它相应的数据,如:scanf(“%2d%*3d%2d”,&a,&b);输入:12345674.输入数据时不能规定精度,如:scanf(“%7.2f”,&a);是不合法的.应用scanf函数应注意:1.格式控制后面是变量地址,而不是变量名如:scanf(“%d,%d”,a,b);是不对的2.格式控制字符串中除了格式说明符以外的其它字符,在输入时要原样输入,如:scanf(“%d:%d:%d”,&a,&b,&c);scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);3.在用“%c”格式输入字符时,空格字符和“转义字符”都作为有效字符,如:scanf(“%c%c%c”,&a,&b,&c);输入:abc4.输入数据时,遇空格、回车、跳格、宽度结束、非法输入,该数据认为结束scanf(“%d%c%f”,&a,&b,&c);例4.10s=(a+b+c)/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\n”,a,b,c);printf(“s=%7.2f,area=%7.2f\n”,s,area);}运行:3,4,6①“=”是赋值运算符,不是“等号”。printf(“%10ld”),a);如:a=1234则:ŽŽŽŽŽ1234它们是函数名不是C语言的关键字。用{}把一些语句括起来成为复合语句2f\n”,s,area);}第一种格式应用较多,但是要注意数据的表示范围与输出格式的对应。整数部分如数输出,并输出6位小数。printf(“%3d”,c)不同系统的格式输出,可能会有些小差别{inta,b,c,d;printf(“%c,%d\n”,c1,c1);例:#include“stdio.printf(“%3d”,c)printf(“%d,%o,%x”,a,a,a);printf(“%d,0%o,0x%x”,a,a,a);例2:#include“stdio.h”main(){charc1,c2;c1=getchar();printf(“%c,%d\n”,c1,c1);c2=c1+32;printf(“%c,%d\n”,c2,c2);}运行:AA,65a,97#include“stdio.h”main(){charc1,c2,c3,c4;c1=getchar();c3=getchar();printf(“%c,%d\n”,c1,c1);printf(“%c,%d\n”,c3,c4);c2=c1+32;c4=c4+32;printf(“%c,%d\n”,c2,c2);printf(“%c,%d\n”,c4,c4);}AB第三章结束熟练掌握printf和scanf函数的用法函数调用语句由一次函数调用加一个分号构成的语句如:printf(“ThisisaCprogram!”);scanf(“%d”,&a);putchar(a);又如:自定义函数max()max(2,5);函数调用语句x=max(2,5);表达式语句有一个表达式构成一个语句赋值表达式a=3赋值语句a=3;分号是语句中不可缺少的一部分任何表达式加上分号后都可以成为语句如:i=i+1i=i+1;

n++n++;

x+yx+y;(合法无意义)

z=max(2,5)z=max(2,5);C程序中大多数语句是表达式语句,

有人把C称为“表达式语言”.空语句只有一个分号的语句,它什么也不做如:;常用于被转向点、或循环语句的循环体如:if(x>=0);elsey=x;while(x==1);复合语句用{}把一些语句括起来成为复合语句如:if(x>0){i++;sum=sum+x;}else{j++;sub=sub+x;}又如:循环体while(x==1)i++;a=b+c;while(x==1){i++;a=b+c;}顺序结构如流程图:先执行A操作,再执行B操作,两者是顺序执行的关系。例程1:intx,y,z;x=2;y=3;z=x+y;例程2:main(){inta,b,c,d;

a=8;b=9;

c=++a;d=++b;

printf(“%d,%d,%d,%d”,a,b,c,d);}AB选择结构如流程图:真假其中p代表一个条件,当条件成立则执行a,否则执行b;且只能执行a、b之一。例如:if(x>y)z=x;elsez=y;再如:if(x>0){i++;sum=sum+x;}else{j++;sub=sub+x;}pab循环结构有两种循环结构:当型结构和直到型结构假真假真如:while(I<=10){i++;a=a+c;}do{i++;a=a+c;}while(i<=10)PAPA注意控制字符的问题#include“stdio.h”main(){charb;printf(“Pleaseenteracharacter:”);b=get

温馨提示

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

评论

0/150

提交评论