C语言40
第 4章 最简单的 C程序设计
-顺序程序设计课堂教学2学时上机操作2学时课堂教学累计 8学时上机累计2学时
C语言40
C语言概述
C语言的语句用来向计算机系统发出操作指令
一个 C语句经编译后产生若干条机器指令
一个实际的程序应当包含若干语句
函数是具有执行特定功能的子程序
C程序结构如图:
C语言40
C程序源程序文件2
预处理命令 全局变量声明 函数1 函数 n
函数首部 函数体执行语句局部变量声明源程序文件1 源程序文件 n……
……
C语言40
C语句可以分为5类:
1,控制语句,有9种
(1) if( ) ~else~ 条件语句
(2) for( )~ 循环语句
(3) while( )~ 循环语句
(4) do~while( ) 循环语句
(5) continue 结束本次循环语句
(6) break 终止执行 switch或循环语句
(7) switch 多分支选择语句
(8) goto 转向语句
(9) return 从函数返回语句
C语言40
2,函数调用语句 max( a,b);
3,表达式语句 x>y; a=x+y;
4,空语句 ;
5,复合语句又称分程序 { }
例:
main( )
{int a,b,c;…
{z=x+y;
t=z/100;
printf(“%f”,t);}…}
C语言40数据输入输出的概念及在 C语言中的实现
1,输入输出是以计算机主机为主体
2,C语言不提供输入输出语句
3,在使用 C语言库函数时,要用预编译命令
,#include”将有关的“头文件”包含到用户源程序文件中
C语言40
在调用标准输入输出库函数时,文件开头应有以下预编译命令,
#include <stdio.h>或 #include,stdio.h”
printf,scanf 除外
C语言40
字符数据的输入输出
putchar函数 字符输出函数
格式,putchar(c);
作用:向终端输出一个字符
其中,c是字符变量、字符常量或整型变量
C语言40
例 4.1输出单个字符
#include <stdio.h>
main( )
{char a,b,c;
a='B';b='O';c='Y';
putchar(a);putchar(b);putchar(c);
} 运行结果,BOY
问:如何将输出 BOY该为输出 B
O
Y
C语言40
#include <stdio.h>
main( )
{char a,b,c;
a='B';b='O';c='Y';
putchar(a);putchar(?\n?);
putchar(b); putchar(?\n?);
putchar(c); putchar(?\n?);
} 运行结果,B
O
Y
C语言40
getchar函数 字符输入函数
格式,getchar( );
作用:从键盘输入一个字符 (只接收一个字符)
例 4.2 输入单个字符
#include,stdio.h”
main( )
{char c;
c=getchar( ); putchar(getchar( ));
putchar(c);
}
运行时输入,a
输出变量 c的值为,a
C语言40格式输入与输出
printf函数 格式输出函数
格式,printf(格式控制,输出表列)
作用:输出任何类型的多个数据
括号内包括两部分:
C语言401.格式控制
① 格式说明符,由%和格式字符组成如,% 6.2f,%4d
② 普通字符,即需要原样输出的如,printf(“a= %4d,b= %6.2f\n”,a,b);
注,
%x.yf x代表数的占位宽度,y代表小数位数
C语言402,输出表列
需要输出的一些数据,可以是表达式
如,printf(“%f,%d,%s\n”,a+b,c,“hello”);
格式字符严格按照不同类型的数据用不同的格式字符
程序中常用的输出格式如下,
① 带符号整型 %d ② 不带符号整型 %u
③ 带符号长整型 %ld ④ 不带符号长整型 %lu
⑤ 实型 %m.nf ⑥ 字符型 %c
⑦ 字符串 %s ⑧ 八进制整数 %o
⑨ 十六进制整数 %x (⑧⑨ 输出的数据不带符号 )
C语言40
*****
举例,位数大于 m,按实际位数输出
int a=123,b=12345;
printf(“%4d,%4d”,a,b);
结果,123,12345
举例,类型须一致
long a=123456;
printf(“%ld”,a);
结果,123456
C语言40
*****
举例:八进制、十六进制数输出不带符号
int a=-1;
printf(“%d,%o,%x”,a,a,a);
结果,-1,177777,ffff
例 4.3 无符号数据的输出
main( )
{unsigned int a=65535;
int b=-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
C语言40? 例 4.4字符数据的输出
main( )
{char c='a';
int i=97;
printf("%c,%d\n",c,c);
printf("%c,%d\n",i,i);
}
运行结果,a,97
a,97
C语言40? 例 4.5字符串的输出
main( )
{printf("%3s,%7.2s,%.4s,%-5.3s\n","CHINA",
"CHINA","CHINA","CHINA");}
运行结果,CHINA,-----CH,CHIN,CHI--
超 m=n -左
例 4.6输出实数时的有效位数
main( )
{float x,y;
x=111111.111;y=222222.222;
printf("%f",x+y);
} 运行结果,333333.328125 (7位精确)
C语言40
例 4.7输出双精度数时的有效位
main()
{double x,y;
x=1111111111111.111111111;
y=2222222222222.222222222;
printf("%f",x+y);
}
运行结果,3333333333333.333010
超过 16位无意义,单精度与双精度都用 %f
C语言40? 例 4.8输出实数时指定小数位
main( )
{ float f=123.456;
printf("%f %10f %10.2f %.2f %-10.2f\n",
f,f,f,f,f);}
运行结果:
123.456001--123.456001------123.46--
123.46--123.46----
C语言40
在用 printf函数输出时注意:
1,类型匹配
2,可包含转义字符
3,分清格式符与普通字符
4,用两个%号 printf(“%f%%”,1.)输出一个%
输出1,000000%
scanf函数(格式输入函数)
一般格式,scanf(格式控制,地址表列)
作用:输入任何类型的多个数据
1,格式控制 同 printf函数基本相同
2,地址表列
C语言40
包括:变量的地址、指针变量、数组名、
字符串的首址 ( &变量名)
例 4.9用 scanf函数输入数据
main( )
{int a,b,c;
scanf("%d%d%d",&a,&b,&c);
printf("%d,%d,%d\n",a,b,c);}
运行时输入,3 4 5
运行时输出,3,4,5
C语言40
在用 scanf函数输出时注意:
1.,&”是地址运算符
2.,%d%d%f”格式符间 无分隔符 输入数据时,在两数之间以一个或多个空格分隔数据,也可以用回车键、跳格键 tab。
3,双精度型数据用 %lf 说明(不能用 %f)
4,%e,%g,%f作用相同
C语言40
说明:
1.不用转义字符
2.格式符中的普通字符,应照原样输入如,scanf(“a=%d,b=%f”,a,b);
输入时键入,a=5,b=3.3
若语句改变,scanf(“a:%d;b:%f”,a,b);
则输入时键入,a:5;b:3.3
C语言40
顺序结构程序举例例 4.10输入三角形的三个边长,求三角形面积公式,area= s(s-a)(s-b)(s-c)
其中,s=(a+b+c)/2
#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,
s=%7.2f\n",a,b,c,s);
printf("area=%7.2f\n",area);}
C语言40
运行时输入,3,4,6
结果,
a=---3.00,--b=---4.00,--c=---6.00,--s=---6.50
area=---5.33
例 4.11从键盘输入一个大写字母,要求用小写字母输出
#include <stdio.h>
main( )
{char c1,c2;
c1=getchar( );
printf("%c,%d\n",c1,c1);
c2=c1+32;
printf("%c,%d\n",c2,c2);}
C语言40
运行时输入,A
输出,A,65
a,97
课堂练习:读程序写出运行结果
main( )
{int x=-668,n1,n2,n3;
char sign;
sign=x>0?'+':'-';
x=x>0?x:-x;
n1=x/100;
x-=n1*100;
n2=x/10;
x-=n2*10;
n3=x;
printf("%c %d %d %d",sign,n1,n2,n3);}
C语言40
运行结果:- 6 6 8
上机题:
p84 4.4
p85 4.6 4.8