C程序设计 第3章 第1课 语句、程序结构、数据输出
第3章 第1课
本课主题: 语句、程序结构、数据输出
教学目的: 掌握C程序的基本框架,掌握简单的数据输出输入方法。
教学重点: C程序的的基本框架。
教学难点: 语句的概念,程序结构
授课内容:
一、C程序基本结构:
1、举例说明C程序的结构组成:
[例3.1]
main() /*主函数*/
{
int a,b,c; /*定义变量*/
scanf("%d,%d",&a,&b); /*输入变量a和b的值*/
c=max(a,b); /*调用max函数,将得到的值赋给c*/
printf("max=%d",c; /*输出c的值*/
}
int max(int x,int y) /*定义max函数,函数值为整型,x、y为形式 参数*/
{
int z; /*max函数中用到的变量z也要加以定义*/
if (x>y)z=x;
else z=y;
return(z); /*将z的值返回,通过max带回调用处*/
}
说明:
- (1)本程序包括两个函数:主函数main和被调用函数max。主函数main是每一个C程序都必须具有的,max函数的作用是将x和y中较大者的值赋给变量z,函数体由大括号{ }括起来。
- (2)return语句的作用是将z的值返回给主调用函数main,返回值将通过函数名max带回到main函数的调用处。
- (3)scanf和printf都是C语言提供的标准输入输出函数,scanf函数的作用是输入a和b的值;printf函数的作用是按设置的格式输出有关量的值。
2、C程序的基本结构:
- (1)C程序是由函数组成的。一个C源程序至少包括一个主函数(main函数),也可以包括一个main函数和若干个其它函数。
- (2)一个函数由两部分组成:
- 1)、函数的说明部分:包括函数名、函数类型、函数属性、函数参数(形参)名、形式参数类型。一个函数名后面必须跟一对圆括号(),函数参数可以没有。如main()。
- 2)、函数体,即函数说明部分下面的大括号{......}内的部分。如果一个函数内有多个大括号,则最外面的一对{ }为函数体的范围。
函数体一般包括:- ①变量定义:
- ②执行部分:
- (3)一个C程序总是从main函数开始执行的,而不论其在程序中的位置如何。
- (4)C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。C程序没有行号。
- (5)每个语句和数据定义的最后必须有一个分号,分号不可少。
- (6)C语言本身没有输入输出语句,输入和输出功能是由库函数来完成的。
- (7)可以用/....../对C程序中的任何部分作注释。
二、基本输出与输入的方法
1、基本输出方法
printf(格式控制字符串,变量表列);
main()
{
int a,float b;
a=20;
b=34.56;
printf("%d,%f",a,b);
}
格式字符及其用法:
- 1、d格式符:用来输出十进制整数。有以下几种用法:
- (1)%d,按整型数据的实际长度输出。
- (2)%md,m为指定的输出字段宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。
- (3)%ld,输出长整型数据。也可以指定长整型数据输出字段宽度,如%mld。
- 2、o格式符:以8进制数形式输出整数,是将内存单元中的各位的值按八进制形式输出,因此输出的数值不带符号。
- 3、x格式符:以16进制数形式输出整数,方法同o格式符。
- 4、u格式符:用来输出unsigned型数据,即无符号数,以十进制数形式输出。
- 5、c格式符:用来输出一个字符。
- 6、s格式符:用来输出一个字符串。有几种用法:
- (1)%s,输出指定的字符串。
- (2)%ms,输出的字符串占m列,如字符串本身长度大于m,则全部输出字符串;若串长小于m,则左补空格。
- (3)%-ms,如果串长小于m,则在m列范围内,字符串向左靠,右补空格。
- (4)%m.ns,输出占m列,但吸取字符串左端n个字符,这n个字符输出在m列的右侧,左补空格。
- (5)%-m.ns,其中m,n含义同上,个字符输出在m列范围的左侧,右补空格。如果n>m,则m自动取n值,即保证n个字符正常输出。
- 7、f格式符:用来输出实数,以小数形式输出。有以下几种用法:
- (1)%f,不指定安段宽度,由系统自动指定,使整数部分全部如数输出,并输出6位小数。应当注意,并非全部数字都是有效数字单精度实数的有效位数为7位,双精度实数的有效位数为16位。
- (2)%m.nf,指定输出的数据位数占m列,其中有n位小数。如果数据长度小于m,则左补空格。
- (3)%-m.nf,与%m.nf基本相同,只是使输出的数值向左端靠,右端补空格。
- 8、e格式符:以指数形式输出实数。可用以下形式:
- (1)%e,不指定输出数据所占的宽度和数字部分小数位数,由系统自动指定给出6位小数,指数部分占5位(如e+002),其中e占一位,指数符号占一位,指数占3位。数值按标准化指数形式输出。
- (2)%m.ne和%-m.ne,m、n和“-”字符含义与前相同。此处n指数据的数字部分的小数位数。
- 9、g格式符:用来输出实数,它根据数值的大小,自动选f格式或e格式,且不输出无意义的零。
小结:
printf格式字符 说 明 d 以带符号的十进制形式输出整数(正数不输出符号) o 以8进制无符号形式输出整数(不输出前导符0) x 以16进制无符号形式输出整数(不输出前导符0x) u 以无符号的十进制形式输出整数 c 以字符形式输出,只输出一个字符 s 输出字符串 f 以小数形式输出单、双精度数,隐含6位小数 e 以标准指数形式输出单、双精度数,数字部分小数位数为6位 g 选用%f或%e格式输出宽度较短的一种形式,不输出无意义的0
附加格式说明字符 说 明 l 用于长整型数据,可加在格式符d、o、x、u前面 m(代表一个正整数) 数据最小宽度 n(代表一个正整数) 对实数,表示输出n位小数;对字符串,表示截取的字符个数 - 输出的数字或字符在域内向左靠
2、基本输入方法
scanf(格式控制字符串,变量地址表列);
main()
{
int a,float b;
scanf("%d%f",&a,&b);
printf("%d,%f",a,b);
}
三、数据输入要注意的问题:
(1)要用变量的地址做参数
(2)运行时输入数据要严格按照格式控制字符串中规定的格式。例:
输入数据格式 实际输入数据 %d,%f 23,34.5 %d%f 23 34.5
评论已关闭