第四章 最简单的 C程序设计 — 顺序程序设计任课老师:台安返回下一页上一页第三章 数据类型、运算符与表达式本章要求
1、程序的三种基本结构及其特点。
2、数据输入、输出函数及其格式控制。
3、熟悉 Turbo C环境的使用
4、了解头文件。
5、帮助系统的使用( Ctrl+F1)。
返回下一页上一页第三章 数据类型、运算符与表达式第四章 最简单的 C程序设计 — 顺序程序设计
4.1 C语句概述
4.2 赋值语句
4.3 数据输入输出的概念及在 C语言中的实现
4.4 字符数据的输入输出
4.5 格式输入与输出返回下一页上一页第三章 数据类型、运算符与表达式
4.1 C语言概述 源程序文件1
预处理命令 全局变量声明 函数1 函数2 函数n
源程序文件2 源程序文件n
C 程序
一个 C程序可以由多个源程序文件构成,Turbo C用 "工程文件 "( prj:
Project)来描述该程序由那些源程序文件构成。所有这些源程序文件经过分别编译后形成各自的目标文件,经连接程序 LINK后形成一个 EXE文件。
一个源程序文件由若干函数和 "预编译命令 "构成。
函数包括数据定义部分(变量定义)和执行部分,执行部分是 C语言语句,完成对数据的操作。
返回下一页上一页第三章 数据类型、运算符与表达式
C语句有以下五类
(1)控制语句
if( ) ~ else ~ 条件语句
for( ) ~ 循环语句
while( ) ~ 当循环
do ~ while( ) 直到型循环
Continue 结束本次循环语句
Break 中止 switch或循环语句
switch 分支语句
goto 转向语句
return 返回语句返回下一页上一页第三章 数据类型、运算符与表达式
C语句有以下五类
(2)函数调用 语句
由一个函数加一个分号构成一个语句
例,printf("This is a C statement.");
(3)表达式语句
由一个表达式加一个分号构成一个语句。
a = 3
a = 3;
i++;
(4)空语句
例、;
(5)复合语句 { }
例,{ z = x + y; t = z / 100; printf("%f",t);}
/* 该语句调用函数 printf()
*/
/* 后面无分号,是表达式
*/
/* 后面有分号,是语句 */
返回下一页上一页第三章 数据类型、运算符与表达式
4.2 赋值语句
赋值表达式 a=3
赋值语句 a=3;
C语言中的 "="作为赋值运算符,不是 "等于 "。
赋值语句和赋值表达式是不同的概念,赋值表达式使 C语言非常灵活。
例,int a=3,b=5,t ;
if ((a = b) > 0) t = a;
if ((a = b; ) > 0) t = a;
注意,第一个 if 语句与下面的 if语句不一样:
if((a= =b) >0 ) t = a ; 请同学们自己分析清楚。
返回下一页上一页第三章 数据类型、运算符与表达式
4.3 数据输入输出的概念及在 C语言中的实现
输入与输出设备;
C语言不提供输入输出语句,输入与输出操作是由函数来实现的;
putchar(),printf():输出到终端(系统标准输出设备 stdout,
指显示器)。
在使用 C语言库函数时,要用预处理命令
#include将相关的头文件包括到用户源程序中。
例,#include "stdio.h"
#include是一个预编译命令。
返回下一页上一页第三章 数据类型、运算符与表达式头文件
stdio.h放在程序的开头,因此称为 "头文件 ";
又由于使用 #include(包含)命令,又称为 "包含文件 "。
开发系统提供很多函数,它们的原型在不同的头文件中定义,因此,在程序开头,总是包含需要的头文件。
最常用的头文件:
stdio.h 定义输入输出函数
string.h 定义字符串操作函数
math.h 定义 sin,cos等数学函数返回下一页上一页第三章 数据类型、运算符与表达式
4.4 字符数据的输入输出
putchar函数 (字符输出函数)
getchar函数 (字符输入函数)
返回下一页上一页第三章 数据类型、运算符与表达式
putchar函数 (单个字符输出函数)
格式,putchar( c );
功能,输出字符型数据 c的值
参数 c可以是字符变量或字符常量
例:
#include<stdio.h>
main( )
{ char a,b,c;
b='B'; b='O'; c='Y';
putchar(a); putchar(b); putchar(c);
}
返回下一页上一页第三章 数据类型、运算符与表达式
getchar函数 (单个字符输入函数)
格式,getchar( )
功能:从终端输入一个字符,在程序中,需要用一个变量接收输入的数据。
包括文件,# include "stdio.h"
#include<stdio.h>
main( )
{ char c;
c=getchar( );
putchar( c );
}
运行时,若从键盘输入字符 'a',
屏幕显示为:
a↙
a
返回下一页上一页第三章 数据类型、运算符与表达式
4.5 格式输入与输出
printf 格式输出 函数
scanf 格式输入 函数返回下一页上一页第三章 数据类型、运算符与表达式
printf 函数
格式,printf("格式控制 ",输出表列 );
例,printf("s= % 6.2 f \ n ",s );
1.格式控制符
%d 十进制整数
%md 指定输出的宽度,若数据位数大于 m左补空格,小于 m
按实际位数输出。
例:
a=123,b=12345
printf("%4d,%4d",a,b);
原样输出字符 格式符 转义字符 输出量结果 _ 123,12345
返回下一页上一页第三章 数据类型、运算符与表达式格式控制符
%ld 十进制长整数
%mld 指定输出宽度
%x 十六进制整数
%mx 指定输出宽度
%lx 十六进制长整数
%o 八进制整型数
%mo 指定输出的宽度
%10l 八进制长整型数
%u 无符号数
%c 输出字符型数据
%mc 指定输出字符宽度
%s 输出字符串
%ms 右对齐
%-ms 左对齐返回下一页上一页第三章 数据类型、运算符与表达式格式控制符
%m.ns m为总宽度,n为取右起字符个数,左补空格
%-m.ns m为总宽度,n 为取左边字符个数,右补空格
%f 对于单精度,输出一个有 6位小数的实数,有效位为 7位,对于双精度,有效位为 16位
%m.nf 右对齐 左补空格
%-m.nf 左对齐 右补空格
%e 按指数形式输出一个实数
%m.ne
%-m.ne
%g 输出一个实数 自动选取 f或 e格式 见 P44
返回下一页上一页第三章 数据类型、运算符与表达式
printf 函数使用示例格式项 输出项 实际输出 说明
%d i 7 9 缺省域宽
%5d -i - 7 9 负值
%5o i 1 1 7 八进制
%5x i 4 f 十六进制
%ld i X X X X X 输出不确定
int i=79;
返回下一页上一页第三章 数据类型、运算符与表达式
printf 函数使用示例
float x; double y,z;
x=y=333.12345678901234567890
z=-555.1234567890123456789e-9
%f x 333.123444
%f z -0.000001
%e z -5.551234e-07
%.4f x 333.1234
%.8f y 333.12345679
%.3e z -5.551e-07
%.18f y 333.123456789012323000
%10.3e y 3.331e+02
%2.5f y 333.12346
返回下一页上一页第三章 数据类型、运算符与表达式二,scanf 函数(格式输入函数)
功能:按照指定的格式,从终端上把数据传送到指定的地址空间中 。
格式,scanf("格式控制 ",地址表列 );
例 1,scanf ("%d %d %d",&a,&b,&c);
输入,3↙ 4↙ 5 ↙ 或 3 4 5↙
分隔符号,空格,回车,Tab键
例 2,scanf("%3d%3d",&a,&b);
按长度截取 1 2 3 4 5 6
a b
对应分隔符
scanf("%d,%d",&a,&b); 输入,3,4↙
scanf("%d,%d",&a,&b); 输入,3:4 ↙
返回下一页上一页第三章 数据类型、运算符与表达式
scanf 函数(格式输入函数)
%d %o %x 输入一个整数
%ld %lo %lx 输入一个长整型数
%c %s 输入字符,字符串
%f %1f 输入一个实数
%h 输入一个 short数返回下一页上一页第三章 数据类型、运算符与表达式
scanf 函数(格式输入函数)
输入数据时,不能规定精度
scanf("%7.2f",&a);
双引号中最好不用提示字符串,若有,则输入时必须原样输入。
scanf("a=%d\n",&a);
输入,a= 4 ↙
返回下一页上一页第三章 数据类型、运算符与表达式
4.6 程序举例
[例 4.10] 输入三角形的三边长,计算其面积。
设三边长 a,b,c,面积 area的算法是:
求平方根函数 sqrt( )在 math.h中定义。
返回下一页上一页第三章 数据类型、运算符与表达式
[例 4.10]
#include "math.h"
main( )
{ float a,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("area = %7.2f\n",area);}
运行情况如下,3,4,6↙
a= 3.00,b= 4.00,c=6.00 area = 5.33
返回下一页上一页第三章 数据类型、运算符与表达式
[例 4.11] 从键盘输入一个大写字母,要求用小写字母输出
算法,c2(小写字母 ) = c1(大写字母 ) + 32
大写字母 A B C,..,Z
ASCII(十六进制 ) 0x41 0x42 0x43
ASCII(十进制 ) 65 66 67
小写字母 a b c,..,z
ASCII(十六进制 ) 0x61 0x62 0x63
ASCII(十进制 ) 97 98 99
返回下一页上一页第三章 数据类型、运算符与表达式程序:
#include "stdio.h"
main( )
{ char c1,c2;
c1 = getchar( );
printf("%c,%d\n",c1,c1);
c2 = c1 + 32;
printf("%c,%d\n",c2,c2);
}
返回下一页上一页第三章 数据类型、运算符与表达式
[例 4.12] 求方程的根
求 方程的根。 a,b,c由键盘输入

算法:
返回下一页上一页第三章 数据类型、运算符与表达式程序:
#include "math.h"
main( )
{ float a,b,c,disc,x1,x2,p,q;
printf("Please input three data:\n");
scanf("%f,%f,%f",&a,&b,&c);
disc = b*b - 4*a*c ; p = -b/(2*a);
q = sqrt(disc)/(2*a);
x1 = p + q;
x2 = p - q;
printf("\n x1=%5.2f\n x2=%5.2f\n",x1,x2);
}
返回下一页上一页第三章 数据类型、运算符与表达式作业:
4.4,4.5,4.6,4.8,4.9
上机要求:例题和作业,