第三章-简单程序设计word版本
- 格式:doc
- 大小:73.50 KB
- 文档页数:10
《程序设计基础》教案
第一章程序设计和C语言
第三章最简单的C程序设计-——顺序程序设计
第三章最简单的C程序设计---顺序程序设计
第三章最简单的C程序设计——-顺序程序设计
第三章最简单的C程序设计---顺序程序设计
第三章最简单的C程序设计--—顺序程序设计
第三章最简单的C程序设计—-—顺序程序设计
第四章选择结构程序设计
第五章循环结构程序设计
第五章循环结构程序设计
第六章利用数组处理批量数据
第六章利用数组处理批量数据
第六章利用数组处理批量数据
第六章利用数组处理批量数据
第六章利用数组处理批量数据
第六章利用数组处理批量数据
第七章用函数实现模块化程序设计
第七章用函数实现模块化程序设计
第七章用函数实现模块化程序设计
第七章用函数实现模块化程序设计
第七章用函数实现模块化程序设计
第七章用函数实现模块化程序设计
第七章用函数实现模块化程序设计
第八章善于利用指针
第八章善于利用指针
第八章善于利用指针
第八章善于利用指针
第八章善于利用指针
第八章善于利用指针
第八章善于利用指针
第八章善于利用指针
第八章善于利用指针
第八章善于利用指针
第九章用户自己建立数据类型
第九章用户自己建立数据类型
第九章用户自己建立数据类型
第九章用户自己建立数据类型。
第三章简单程序设计3.1 流程结构和语句1 . 三种流程结构顺序结构,选择结构,循环结构——程序在逻辑上执行的流程。
●顺序结构:按语句在源程序中出现的次序依次执行;●选择结构:根据一定的条件有选择地执行或不执行某些语句。
●循环结构:在一定条件下重复执行相同的语句。
所有的流程控制都是由语句实现的,且任何一个表达式都可作为一个语句使用,成之为表达式语句2. 表达式语句任何表达式通过在其末尾加一个“;”,可使表达式成为一个语句,形式为:表达式;其中“;”是C语句的组成部分,表示一个语句结束。
表达式语句能够独立出现在程序中,而表达式则不能独立出现。
例如:x=y+1 是表达式x=y+1;是语句习惯上把赋值表达式语句如:x=y+1;新为赋值语句。
函数调用也是表达式,因此:printf(“hellow”)是表达式;printf(“hellow”);是语句,习惯上称为输出语句。
scanf(“%d%d”,&x,&y);函数调用表达式语句(输入语句)3. C的语句概述C的一个“说明”也必须以分号结束,也称为语句,因此C的语句分说明语句和执行语句两类。
说明语句可以出现在程序中任何块(函数或复合语句)的外面——称为外部说明或块内——称为局部说明(在执行语句的前面)。
外部说明必须放在一个源程序文件中所有函数定义的外面;局部说明包括类型定义、变量和函数说明,其作用是描述程序中被处理数据(变量或函数)的名称和类型供解释程序使用。
执行语句只能出现在函数体内且处于局部说明的后面,执行语句完成对数据的处理和对程序流程的控制。
常用的程序结构为:常量说明类型说明变量说明/*外部说明*/返回类型函数名(参数表){ 变量说明/*局部说明*/执行语句}C的执行语句共有六种:●表达式语句●复合语句●标号语句●选择语句(if和switch)●循环语句(while,for,do-while)●转移语句(break,continue,goto,return)3.2标准的文件输入与输出函数一个C的源程序要能够从外部设备(文件)输入数据并将执行(或处理)的结果输出到外部设备上。
C语言的输入和输出操作是通过调用C标准函数库中的函数来实现的,标准函数库是由C编译程序提供的。
以编译后的目标代码形式存储的函数的集合。
用户程序可根据需要按规定的格式调用其中的函数来完成相应的功能。
C语言中从标准输入和输出文件(设备)中进行读(写)的四个标准函数是:格式输出函数printf、格式输入函数scanf、字符输入函数getchar和字符输出函数putchar。
其他函数以后讲。
3.2.1字符输入和输出函数1.字符输入函数getchar函数原型为:int getchar(void)其中int说明函数的返回值的类型,void说明函数没有参数,该函数的调用格式为:getchar()系统将输出设备和输入设备都看成文件,标准输入设备(键盘)和标准输出设备(显示器)是由字符的序列(字符流)组成的文本文件,称为输入流和输出流。
getchar每调用一次则从终端(键盘)读取一个字符。
这个字符的字符码就是getchar 的返回值(即函数值),其类型为由unsigned char 转换的int。
例如:c=getchar();执行时键入字符a赋值后变量c的值为97即字符‘a’的值。
输入文件的结束标志称为文件尾。
DOS系统中键入ctrl+z时产生文件结束标志。
getchar遇到文件结束标志时返回值EOF,EOF是在头文件〈stdio.h〉中定义的符号常量,其值通常为-1。
程序中如果要测试getchar()的值是否文件尾应使用EOF而不用-1,这样做可使程序不依赖于某个特定环境。
2.字符输出函数putchar函数原型为:int putchar(char ch )putchar函数将所要输出的字符码转换为unsigned char送到标准输出设备中去,返回值是被输出的字符,如果出错则返回EOF,调用形式为:putchar(ch)其中ch为实际参数,可以是char、short或int类型的表达式,其值是要被输出字符的字符码。
每调用一次则将字符c输出到标准输出设备上。
例如:int i=7;char ch;说明:(1)下面四个语句是等价的,同为输出一个响铃字符:putchar(i);putchar(7);putchar(‘\07’);putchar(‘\a’);(2)下面三个语句分别输出字符a,3和换行putchar(‘a”);putchar(‘3’);putchar(‘\n’);注:putchar(3) 输出是♥而不是整数3。
(3)putchar(((c=getchar())>=’a’&&c<=’z’)?c-‘a’+’A’:c);该语句先输入一个字符存入变量c,如果c是小写字母则将其转换成大写字母后输出,否则直接输出原字符。
注意:凡是程序中调用了输入、输出库函数,必须在函数第一次调用之前写上#include<stdio.h>或#include“stdio.h”,预处理控制(对于DOS上的scanf和printf 可省略)。
3.2.2格式输出函数(printf)getchar和putchar函数用于输入和输出单个字符,输入和输出过程中不进行格式上的任何转换。
printf和scanf函数在数据的输入和输出过程中能够将计算机内部形式的数据和输入输出任务上的数据相互转换,称为格式输出和格式输入。
1.printf函数的原型int printf(char format,args)参数的数目可变,中间用“,”分隔,是要被转换并写到输出设备的数据。
函数的返回值是实际输出字符的数目。
2.调用形式printf(格式字符串,输出参数1,输出参数2,……,);调用printf函数时至少要给出第一个参数,即格式字符串。
格式字符串式是用“”括起来的字符串;输出参数1,…输出参数n是n个表达式,可以为任何基本类型,也可以是指针或枚举类型(较少使用)。
输出数据项的数目任意,末尾加“;”表示printf函数通常作为语句使用。
printf函数将参数的值按格式字符串规定的格式从内部形式转换成外部字符形式并输出设备,返回值是实际输出字符的数目。
例如:printf("%d%8.3f",i,x);参数中的格式为"%d %8.3f"。
i和x是要输出的数据%d表示i要用十进制整数形式输出,宽度为数据实际宽度。
%8.3f表示x要用小数形式浮点数格式输出,输出总宽度为8个字符,其中小数部分保留3位,若i=15,X=-8.2 该语句输出为15 -8.2003. 格式字符串格式字符串包含两种字符:普通字符和用于转换说明的字符,普通字符照原样输出,转换说明用于说明数据输出格式。
其形式为:%[域宽]转换字符一个转换说明以%开头。
域宽部分是可选的,用于指定输出数据的宽度。
每个转换说明对应于一个输出参数,该参数被转换成由转换说明规定的数据格式后输出。
普通字符通常用作输出提示信息,它可以与转换说明交替出现,例如printf("i=%d,x=%8.3f\n",i,x);输出为:i=15,x= -8.200ANSI C的转换字符及其规定的输出格式见教材p44。
注:如果%后面是一个%字符,则标准C无此定义,将它作为普通字符输出。
在%和转换字符之间可以加域宽说明,用于指定输出时的对齐方向、输出数据的域宽度、小数部分的位数等要求。
用于域宽说明的字符列于下表中,域宽说明可以是其中之一或多个字符的组合。
在域宽说明中还可以使用字符*,*代表一个整型值,这个整型值是由包含*的转换说明对应的参数决定的。
例如:printf("%.*s",max,s);该语句执行时从串s中打印至多max个字符。
域宽说明示例见教材p45注意(1):printf函数根据格式串中的转换说明来决定输出数据的数目和类型,如果转换说明项数多于参数个数,或参数类型不正确,则会输出错误的数据(不报语法错);如果输出参数的数目多于转换说明项数则多余的参数不被输出。
例. Printf(“%d%d,%d”,3,4);结果为:%d,3例:int i=-6;double x=5.7,y=123.4567;printf("%-4d,%g",i,y,x);输出形式为:-6 ,123.457(2)printf中参数右结合,如设int i=1;则 printf("%d,%d,%d",++i,++i,++i);输出结果为4,3,2printf("%d,%d,%d",i++,i++,i++);输出结果为3,2,13.2.2 格式输入函数(scanf)1. scanf函数的原型int scanf(char *format,args)scanf函数是具有int类型返回值(返回读入参数的个数)的函数。
第一个参数format是格式字符串,它指出输入数据的数目、类型和格式,args为指向存放输入数据的变量的指针,输入参数的数目可变。
2. scanf函数的调用格式scanf(格式字符串,输入参数1,…输入参数n);scanf函数是printf函数的逆过程,它从标准输入设备(键盘)读入字符流,并按照格式字符串中转换字符规定的格式转换成相应类型的值后赋予由输入参数所指的变量。
format串可以包含如下字符:(1)空格或制表符,它们被忽略(2)非%普通字符,它需要输入流中有同样的非空白字符与之匹配(3)以%为开头以转换字符为结尾的转换说明符,常见的转换字符与printf类似(4)在%与转换字符之间可以有下列选项·赋值抑制符*·说明最大域宽的整数·指出参数所指变量类型的字母 h,l或L具体形式为:用d、o、x 指定)、字符型(char *,用c指定)、实型(float *,用f,e指定)。
在整型和实型中可再加长度修正说明符:加h(短整型)、加l(长整型)、加L(高精度型)、m(注意没有n)用以指定输入数据的宽度。
输入参数1至输入参数n可以为简单变量的地址或字符串变量的地址,简单变量的地址用变量前面加取地址运算符&表示,字符串变量的地址用字符数组名(或指向字符串变量的指针)表示。
scanf函数被正确执行时返回被转换并赋值的数据项的数目,遇到文件尾或出错时返回EOF。
例如:int i;float x;char name[10];scanf("%d %f %s",&i,&x,name);输入:25 61.37e-1program注意:⏹输入字符串时不加双引号,因双引号也会作为字符号的内容。