第3章顺序结构的程序设计_第1页
第3章顺序结构的程序设计_第2页
第3章顺序结构的程序设计_第3页
第3章顺序结构的程序设计_第4页
第3章顺序结构的程序设计_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

数据类型基本类型构造类型指针类型(*)空类型(void)整型字符型(char)浮点型长整型(longint)基本整型(int)短整型(shortint)单精度浮点型(float)双精度浮点型(double)枚举类型(enum)数组类型([])结构体类型(struct)共用体类型(union)常量:是指在程序运行过程中其值不能被改变的量。如:整型常量:12、-453、02、0x12

实型常量:3.14、0.007、6.34e+04

字符常量:‘a’、‘!’、‘\n’、‘\101’

字符串常量:“jkkj”、“5483fd”、“a”

32023/2/63优先级运算符结合规则1[]()->.从左至右2!~++---

*&sizeof(类型名)从右至左3*/%从左至右4+-从左至右5<<>>从左至右6<<=>>=从左至右7==!=从左至右8&从左至右9^从左至右10|从左至右11&&从左至右12||从左至右13?:从右至左14=+=-=*=/=%=&=^=|=>>=<<=从右至左15,从左至右3.1C语句概述3.2

数据输入/输出的概念及在C语言中的实现3.3

字符数据的输入和输出3.4

格式化输入与输出第3章

顺序结构的程序设计5学习重点:

1、实现顺序结构的语句。

2、数据的输入和输出函数getchar()、putchar()、scanf()、printf()。

学习难点:

1、格式输入函数scanf()的使用。

2、格式输出函数printf()的使用。6C语言语句的具体分类如下图所示:3.1C语句概述73.1C语句概述顺序结构程序:就是按语句行书写的自然顺序一条语句一条语句地往后执行的程序段。语句1语句28【例3.1】

输入三角形的三边长,求三角形面积。算法分析:已知三角形的三边长a、b、c,则该三角形的面积公式为:其中s=(a+b+c)/2。#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=%f,b=%f,c=%f,s=%f\n",a,b,c,s); printf("area=%f\n",area);}3.1C语句概述91.说明语句说明语句是对变量或被调函数的声明。其作用是描述程序中被处理数据(变量或函数)的名称和类型,供编译程序使用。说明语句可以出现在程序中任何函数或复合语句的外面(称为外部说明)或里面(称为局部说明)。3.1C语句概述【例1.5】

求两个数的最大值#include<stdio.h> intmax(intm,intn);

/*函数说明*/voidmain(){

intx,y,z; /*变量说明*/ printf("inputtwonumbers:\n"); scanf("%d%d",&x,&y); z=max(x,y); printf("maxmum=%d",z); }intmax(intm,intn){intt;

/*变量说明*/ if(m>n) t=m;; else t=n; returnt;}112.空语句

在C语言中,只有一个分号就构成一个语句,称为空语句。

空语句在语法上占据一个语句的位置,但是它不实现任何功能。空语句只用在必须有语句而又不需要进行任何操作的位置,空语句常用于条件语句或循环语句的执行部分。3.1C语句概述123.表达式语句(1)简单表达式语句

表达式;任何表达式加上分号都是一个语句,例如:

a=3,b=4;i++;3.14*R*R;

以上都是合法的语句。但是3.14*R*R;的结果并没有保存起来,所以这个语句无实际意义。3.1C语句概述13(2)赋值语句

C语言中的赋值语句是由赋值表达式加上一个分号构成,其格式为:

变量=表达式;

注意:“=”的左侧必须是变量。当“=”号两侧数据类型不一致时,以左侧的为准进行转换。当多次给一个变量赋值时,其值是最后一次赋的值。3.1C语句概述14【例3.2】设a单元的值为5,b单元的值为10,试编写一个程序,把两单元的内容互换。#include<stdio.h>voidmain(){ inta=5,b=10,s; s=a; a=b;b=s; /*s=a,a=b,b=s;*/ printf("a=%d,b=%d\n",a,b);}3.1C语句概述154.函数调用语句

函数名(实际参数表);如:scanf(“%d,%d”,&a,&b);printf("a=%d,b=%d\n",a,b);3.1C语句概述165.复合语句

复合语句是由花括号“{}”括起的多个语句组成,有时也称为分程序。其形式为:{

[内部数据说明;]

执行语句;}如:{t=a;a=b;b=t;}

复合语句在语法上等价于一条语句。

3.1C语句概述17【例】复合语句举例。#include<stdio.h>voidmain(){inta=10;printf("a=%d\n",a);

{inta=20;printf("a=%d\n",a);}printf("a=%d\n",a);}3.1C语句概述183.2数据输入/输出的概念及在C语言中的实现

C语言中所谓输入/输出就是指以计算机为主体而言的,C语言本身并不提供输入/输出操作的语句,C语言程序中的输入/输出操作是通过调用标准库函数来实现的。

C语言有很丰富的输入/输出库函数,有用于键盘输入和显示器输出的输入/输出库函数、磁盘文件读写的输入/输出库函数、硬件端口操作的输入/输出库函数等(详见附录表库函数)。本书主要是以键盘为主体的输入终端输入数据,以显示器为主体的输出终端输出数据。193.2数据输入/输出的概念及在C语言中的实现在使用输入/输出函数时,需要注意以下两个问题:1)当需要使用某个函数时,要通过预编译命令“#include”,将有关“头文件”包含到源文件中。如:#include<stdio.h>

或#include"stdio.h"2)在所有的输入/输出库函数使用时,格式与参数要符合系统要求。例如:inti;scanf("%d",&i);printf("%d",i);下面将详细介绍四个标准输入/输出库函数。203.3.1字符输出函数putchar()

putchar()函数的作用是把一个字符输出到显示器或打印机上,putchar函数的一般调用形式为:

putchar(ch);

说明:参数ch可以是一个整型或字符型的变量,也可以是整型或字符型的常量。3.3字符数据的输入和输出【例3.4】putchar()函数的使用举例。#include"stdio.h"voidmain(){ charch='A'; inti=66; putchar(ch);/*输出字符型变量ch的值*/ putchar(i); /*输出整型常量i的值*/ putchar('\t'); putchar('C'); putchar('\x44'); putchar('\n');putchar(67); }223.3.2字符输入函数getchar()

getchar()函数的作用是从键盘上读入一个字符,其一般调用形式为:

getchar()3.3字符数据的输入和输出23【例3.3】输入一字符B,变量是字符型。#include"stdio.h"voidmain(){charc;c=getchar();putchar(c);}运行输入:

B运行结果:

B3.3字符数据的输入和输出24【例】输入一字符B,变量是整型。

#include"stdio.h"voidmain(){inti;i=getchar();putchar(i);}运行输入:

B运行结果:B3.3字符数据的输入和输出注意:getchar()函数可以接收任意字符,包括空格、回车或Tab键等特殊字符。25【例3.3】通过键盘输入一个字符并回显。#include"stdio.h"voidmain(){putchar(getchar());}#include"stdio.h"voidmain(){getchar();putchar(getchar());}263.4.2格式化输出函数printf()1.调用形式

printf(“格式控制字符串”,输出值参数表);功能:在格式控制字符串的控制下,将各参数转换成指定格式,在标准输出设备上显示或打印。

或者说按指定的格式向标准输出设备输出若干个任意类型的数据。3.4格式化输入与输出27(1)printf(“Howdoyoudo!”);(2)printf(“%d,%o”,a,b);(3)printf(“a=%f,b=%f\n”,x,y);3.4格式化输入与输出28printf(“格式控制字符串”,输出值参数表);

普通字符(原样输出)

格式说明符

%+#

-0m.nhl

格式字符d,符十整o,无八整x,X无16整u无十整c字符s字串f小六e,E指六g,G2.格式控制字符串说明数据符号八、十六进制前导符正数空一格,负数填-左对齐左补0最小宽度小数位数短整型长整型或双精度型

printf()中使用的格式字符格式字符说明d以带符号的十进制形式输出整数o以八进制无符号的形式输出整数x,X以十六进制无符号的形式输出整数u以十进制无符号的形式输出整数c以字符形式输出,只输出一个字符s输出字符串f以小数形式输出单、双精度数,隐含输出6位小数e,E以标准指数形式输出单、双精度数,数字部分小数位数为6位g,G选用%f或%e格式中输出宽度较短的一种格式,不输出无意义的030

是需要输出的一些数据,可以是任意类型的常量、变量、函数或表达式,其值被输出。输出项的值必须按照格式控制字符串对应的数据格式按从左到右的顺序一一对应输出。各输出项之间以逗号分隔,例如:

printf("i=%5d,j=%u\n",i,4*j);

3.输出值参数表说明3.4格式化输入与输出【例3.8】printf()函数的应用。#include<stdio.h>voidmain(){ inta=15; floatb=123.1234567; doublec=12345678.1234567; chard='p'; printf("a=%d,%5d,%o,%x\n",a,a,a,a); printf("b=%f,%lf,%5.4lf,%e\n",b,b,b,b); printf("c=%lf,%f,%8.4lf\n",c,c,c); printf("d=%c,%8c\n",d,d);}a=15,15,17,fb=123.123459,123.123459,123.1235,1.231235e+002c=12345678.123457,12345678.123457,12345678.1235d=p,p

32复习51、举例说明什么是表达式语句、赋值语句、函数调用语句、复合语句?2、如何交换两个变量的值?3、putchar()、getchar()函数的功能?4、printf()函数的格式控制字符串包括几部分?格式说明的用途?33

【例3.9】输出格式举例。

#include<stdio.h>voidmain(){charc=’a’;charstr[]=“seeyou”;inti=1234;floatx=123.456789;floaty=1.2;printf(“1:%c,%s,%d,%f,%e,%f\n”,c,str,i,x,x,y);printf(“2:%4c,%10s,%06d,%12f,%15e,%10f\n”,c,str,i,x,x,y);printf(“3:%-4c,%-10s,%-6d,%-12f,%-15e,%-10f\n”,c,str,i,x,x,y);printf(“4:%0c,%6s,%3d,%9f,%10e,%2f\n”,c,str,i,x,x,y);printf(“5:%12.2f\n”,x);printf(“6:%.2f\n”,x);printf(“7:%10.4f\n”,y);printf(“8:%8.3s,%8.0s\n”,str,str);printf(“9:%%d:%d\n”,i);}34运行结果:1:a,seeyou,1234,123.456787,1.234568e+002,1.2000002:a,seeyou,001234,123.456787,1.234568e+002,1.2000003:a,seeyou,1234,123.456787,1.234568e+002,1.2000004:a,seeyou,1234,123.456787,1.234568e+002,1.2000005:123.466:123.467:1.20008:see,9:%d:12343.4格式化输入与输出35说明:(1)要求格式字符用小写字母,如%d不能写成%D。(2)如果想输出字符“%”,则应该在格式控制字符串中用连续两个%表示,如:

printf(“%f%%”,1.0/3);输出0.333333%。3.4格式化输入与输出363.4.1格式化输入函数scanf()1.调用形式

scanf(“格式控制字符串”,输入项地址表);功能:读入各种类型的数据,接收从键盘按输入格式输入的数据并存入指定的变量地址中。

3.4格式化输入与输出37如:#include<stdio.h>voidmain(){intx,y,z;longb;charc;scanf(“%d,%o,%x,%ld,%c”,&x,&y,&z,&b,&c);printf(“%d,%d,%d,%ld,%c\n”,x,y,z,b,c);}3.4格式化输入与输出scanf(“格式控制字符串”,输入项地址表);

普通字符(原样输入)

格式说明

%*mhl

格式字符最小宽度短整型不赋值长整型或双精度实型d符十整o无八整x无十六整c字符s字串f小六e指六输入项地址表:是由若干个地址组成的表列,可以是变量的地址,字符串的首地址。39说明1)若在scanf()函数的输入控制串中含有其他的字符,则在输入时要求按一一对应的位置原样输入这些字符。例如:intx,y,z;scanf("%d,%d,%d",&x,&y,&z);输入数据的三种方式是:①10,20,30(回车)

②10,20,

30(回车)③10,

20,

30(回车)又如:intx,y,z;scanf("x=%d,y=%d,z=%d",&x,&y,&z);输入数据的方式是:x=10,y=20,z=30(回车)

3.4格式化输入与输出402)在输入数值型数据时,若在格式控制字符串中每个格式说明之间不加其他符号,在执行时,系统规定由键盘输入数据时,数据之间可以用一个或多个空格、回车、跳格(Tab键)来分隔。例如:intx,y,z;scanf("%d%d%d",&x,&y,&z);假设输入的数据分别是10、20、30。则输入可为:①10(空格)20(空格)30②10(回车)20(回车)30(回车)③10(tab)20(tab)30回车3.4格式化输入与输出413)在输入控制字符中,格式说明的类型与输入项的类型应该一一对应匹配。如果类型不匹配,系统并不给出出错信息,但不能得到正确的输入数据。当输入长整型数据时,必须使用“%ld”格式,输入双精度时,必须使用“%lf”或“%le”,否则不能得到正确数据。例如:double

x,y,z;scanf("x=%d,y=%d,z=%d",&x,&y,&z);printf("%f

%f

%f",x,y,z);输入数据的方式是:x=10,y=20,z=30

输出结果是:-9255959211743210800000000000000000000000000000000000000000000.000000-9255959211743222200000000000000000000000000000000000000000000.000000-9255959211743233600000000000000000000000000000000000000000000.0000003.4格式化输入与输出424)关于“%c”格式。在用“%c”格式输入字符时,输入的数据之间不需要分隔符,空格、转义字符和回车符都将作为有效字符读入。例如:scanf("%c%c%c",&x,&y,&z);输入方式:abc<回车>如果输入:abc<回车>3.4格式化输入与输出435)在scanf()函数中的格式字符前可以用一个整数指定输入数据所占的宽度,但对实型数据不能指定小数的位置。例如:scanf("%2d%2d",&a,&b);

执行的输入是:123456scanf("%6.2f",&f);

3472.3454是不合法的。3.4格式化输入与输出446)%后的“*”附加说明符是抑制字符,用来表示跳过它对应的数据,例如:

scanf("%2d%*3d%3d",&i,&j);

若输入20307100↙3.4格式化输入与输出457)在输入控制中,格式说明的个数与输入项的个数应该相等。如果格式说明的个数少于输入项的个数,系统自动结束输入,多余的数据没有被读入,但可以作为下一个输入操作的输入数据;如

温馨提示

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

评论

0/150

提交评论