
[工学]第4章 顺序程序设计.ppt
36页第四章 顺序程序设计 4.1 C语句概述nC语言的语句用来向计算机系统发出操作 指令,一个语句经编译后产生若干条机器指 令nC语言的语句用来完成一定的操作任务n一个C程序可以由若干个源程序文件组成 n一个源文件可以由若干个函数、预处理命 令以及全局变量声明部分组成n一个函数由数据声明部分和执行语句组成 n程序包括数据描述和数据操作4.1 C语句概述nC语句可以分为以下5类: (1)控制语句:用于完成一定的控制功能,共9种¨if( )~else~ 条件语句¨for( )~ 循环语句¨while( )~ 循环语句¨do~while( ) 循环语句¨continue 结束本次循环语句¨switch 多分支选择语句¨break 终止执行switch或循环语句¨goto 转向语句¨return 从函数返回语句¨其中,()表示是条件, ~表示内嵌的语句。
4.1 C语句概述(2)函数调用语句¨由函数调用加上分号构成¨如:printf(“C Program“); (3)表达式语句¨由表达式加上分号构成如:a=3;¨分号是语句中不可缺少的部分,而不是两个语句间的 分隔符号¨任何表达式都可以加上分号成为语句如:i++; ¨有的语句并无实际意义如:x+y;4.1 C语句概述(4)空语句¨只有一个分号的语句 (5)复合语句¨把多个语句用括号{}括起来组成复合语句,又称分程 序 ¨{ ¨ x=y+z;¨ a=b+c;¨ printf(“%d%d”,x,a);¨}4.2 赋值语句n赋值语句:由赋值表达式加一个分号构成 (1)“=”是一个运算符 (2)赋值表达式与赋值语句是不同的概念 赋值表达式可以包括在其它表达式之中 if( (a=b) > 0 )t=a;4.3 数据输入与输出(1)输入输出是以计算机主机为主体而言的¨从计算机向外部输出设备(显示器、打印机等)输出数据称为“ 输出”;¨从输入设备(键盘、鼠标、扫描仪)向计算机输入数据称为“输 入” (2)C语言本身不提供输入输出语句,输入和输出操作由 C函数库中的函数(printf、scanf等)来实现。
(3)在使用C语言库函数时,要用预编译命令#include将 有关的“头文件”包括到用户源文件中头文件中包含了 与用到的函数有关的信息 #include或#include“stdio.h” #include或#include“math.h”4.4 字符数据的输入输出n4.4.1putchar函数( 字符输出函数)n作用:向终端输出一 个字符n形式:putchar(c);n输出字符变量c的值 c可以是字符变量 或整型变量include “stdio.h“ void main() {char a,b,c;a='B';b='O';c='Y';putchar(a);putchar(b);putchar(c); putchar('\n') ;getch(); }4.4.2 getchar函数(字符输入函数 )n作用:从终端输入一 个字符n一般形式为: getchar()n通常把输入的字符赋 予一个字符变量,构 成赋值语句n也可以不赋给任何一 个变量,作为表达式 的一部分 n注意:getchar函数只 能接收一个字符 #include “stdio.h“ void main() {char c;printf(“input a character\n“);c=getchar();putchar(c); }putchar(getchar());4.5 格式输入与输出nC语言的格式输入与输出规定比较繁琐。
4.5.1printf函数(格式输出函数)¨作用:向终端输出若干个任意类型的数据 1.printf函数n一般格式:printf(格式控制,输出表列)n如:printf(“%d,%c\n”,i,c)4.5.1 printf函数1.printf函数 printf(“%d,%c\n”,i,c) (1)格式控制¨用双撇号扩起来的字符串,包括两种信息: 1)格式说明:由%和格式字符组成,如%d,%f等,用 于将输出的数据转换指定的格式输出; 2)普通字符,即需要原样输出的字符,如逗号、空格 等 (2)输出表列¨需要输出的数据,可以是变量、常量或表达式4.5.1 printf函数#include “stdio.h“ void main() {char a,b,c;int d,e,f;a='a';b='b';c='c';d=1;e=2;f=3;printf(“%c,%c,%c,%d,%d,%d\n“,a,b,c,d,e,f);printf(“%c*%c*%c*%d*%d*%d\n“,a,b,c,d,e,f);printf(“%c*%c*%c*%d*%d*%d\n“,1,2,3,4,5,6);printf(“%c*%c*%c*%d*%d*%d\n“,a+1,b+1,c+1,d+1,e+1,f+1); }4.5.1 printf函数2.格式字符n在输出时,不同类型的数据用不同的格式字符 。
(1)d格式符:用来输出十进制整数n%d:按整型数据的实际长度输出n%md:按m指定的长度输出如果数据位数小于m, 左端补空格输出;若大于m,按实际位数输出n%ld:输出长整型数据也可以指定字段宽度, %mld 4.5.1 printf函数#include “stdio.h“ #include “conio.h“ void main() {int a=123,d=12345;long int c=135790;printf(“%4d,%4d,%ld,%8ld\n“,a,d,c,c);getch(); }4.5.1 printf函数2.格式字符 (2)o格式符:以八进制数形式输出整数 (3)x格式符:以十六进制数形式输出整数 (4)u格式符:输出unsigned型数据 (5)c格式符:用来输出一个字符char c=‘a’;printf(“%c”,c);4.5.1 printf函数2.格式字符 (6)s格式符:用来输出一个字符串 1)%s:printf(‘%s”,”china”) 2)%ms:输出的字符串占m列;如果字符串长度大于 m,全部输出;如果小于m,左补空格 3)%-ms:如串长小于m,右补空格。
4)%m.ns:输出占m列,但只取字符串前n个字符;n 个字符在m列右侧,左边补空格 5)%-m.ns:输出占m列,但只取字符串前n个字符;n 个字符在m列左侧,右边补空格如果n>m,则m=n 4.5.1 printf函数#include “stdio.h“ #include “conio.h“ void main() {printf(“%s\n“,“china“);printf(“%4.3s\n“,“china“);printf(“%-4.3s\n“,“china“);printf(“%3.4s\n“,“china“);printf(“%-3.4s\n“,“china“);getch(); }4.5.1 printf函数2.格式字符 (7)f格式符:以小数形式输出实数 ¨1)%f:不指定字符宽度,由系统自动指定, 整数部分全部输出,并输出6位小数¨注意:输出的数字并非全部都是有效数字 单精度实数有效位数为7,双精度为164.5.1 printf函数#include “stdio.h“ #include “conio.h“ void main() {float x,y;x=111111.111;y=222222.222;printf(“%f“,x+y); getch(); }#include “stdio.h“ #include “conio.h“ void main() {double x,y;x=111111.111;y=222222.222;printf(“%f“,x+y);getch(); }4.5.1 printf函数2.格式字符 (7)f格式符:以小数形式输出实数 ¨2)%m.nf:指定输出数据占m列,其中n位小 数。
如果数值长度小于m,左端补空格¨3)%-m.nf:右端补空格4.5.1 printf函数#include “stdio.h“ #include “conio.h“ void main() {float x=123.456;printf(“%f\n%12f\n%12.2f\n%-12.2f\n“,x,x,x,x);getch(); }4.5.1 printf函数2.格式字符 (8)e格式符:以指数形式输出实数 (9)g格式符:输出实数,根据数值的大小 自动选择f格式或e格式,且不输出无意义 的零使用很少4.5.1 printf函数2.格式字符n在使用printf函数时,还有几点要说明:n(1)除了X,E,G外,其他格式符必须用小写字母n(2)可以在printf函数中的“格式控制”字符串内包括“转 义字符”,如\n,\t,\r等n(3)上面介绍的“d,o,x,u,c,s,f,e,g”等字符,用在“%”后 面是格式符,不在“%”后面就是普通字符n(4)如果想输出字符“%”,则在“格式控制”字符串中用 “%%”表示如:printf(“%f%%”,1.0/3);输出:0.333333%4.5.2 scanf函数1.一般形式 nscanf(格式控制,地址表列); n格式控制的含义同printf函数。
n地址表列由若干个地址组成4.5.2 scanf函数nprintf(“input a,b,c\n“);scanf(“%d%d%d“,printf(“%d,%d,%d“,a,b,c);getch(); }4.5.2 scanf函数#include void main() {char a,b,c;printf(“input a,b,c\n“);scanf(“%c%c%c“,printf(“%c,%c,%c“,a,b,c);getch(); }4.5.2 scanf函数2.格式说明n与printf函数中的格式说明相似,以%开始,以 一个格式字符结束,中间可以插入附加的字符 n(1)对unsigned型变量所需的数据,可以用 %u,%d,%o,%x格式输入n(2)可以指定输入的宽度,系统自动截取所需 数据4.5.2 scanf函数#include “stdio.h“ #include “conio.h“ void main() {int a,b;scanf(“%3d%3d“,printf(“a=%d,b=%d“,a,b);getch(); }4.5.2 scanf函数2.格式说明 (3)如果%后面有一个*,表示跳过它指定 的列数。
¨在利用一批现有的数据时,有时不需要其中 某些数据,可以使用此法 (4)输入数据时不能规定精度 4.5.2 scanf函数3.使用scanf函数时应注意的问题 (1)地址表列中要求给出地址,如给出变 量名则会出错 (2)如果在“格式控制”字符串中除了格式 说明以外还有其它字符,则在输入数据时 在对应位置应输入与这些字符相同的字符 scanf(“%d*%d”,正确输入:1*24.5.2 scanf函数3.使用scanf函数时应注意的问题 (3)在输入字符数据时,空格字符和转义 字符都作为有效字符输入scanf(“%c%c“,正确输入:mn4.5.2 scanf函数3.使用scanf函数时应注意的问题 (4)在输入数值数据时,遇到以下情况时 该数据认为结束:。
