第四章 顺序结构程序设计本章重点:
输入输出语句的使用对整数、浮点数、字符和字符串的输出格式要掌握。
顺序执行程序的特点按照程序书写的顺序逐条执行,直至main()的最后一条语句。
4.1顺序结构概述
顺序结构是程序设计中最基本最简单的结构.
顺序结构:按语句排列的先后顺序执行,写在前面的语句先执行。
当计算需要引用一个变量时,该变量一定要事先定义、赋值,然后才能出现在表达式中.
C语言中的基本顺序结构语句主要包括:表达式语句、空语句、复合语句、goto语句和函数调用语句。
例4.1:
求园的面积
#DEFINE PI=3.1415926
main()
{ float r,s;
r = 20;
s = r * r * PI;
printf (“area=%f,,s);
}
4.2 基本顺序对路构语句
1.函数调用语句。
Printf(“this is a sample.”);
2.表达式语句
‘d’+ 123 + b/d ;
‘d’+ 123 + b/d
3.空语句;
4.赋值语
x=‘d’+ 123 + b/d;
5,复合语句用{ }把一些语句括起来成为复合语句。
{z=x+y;
t=z/100;
printf(“%f”,t);}
4.3 基本输入/输出
4.3.1字符输入函数
1,getch()、getche()和getchar()函数
(1) getch()和getche()函数
这两个函数都是从键盘上读入一个字符。其调用格式为,
getch();
getche();
两者的区别是,getch()函数不将读入的字符回显在显示屏幕上,而getche() 函数却将读入的字符回显到显示屏幕上。
例4.2,
#include<stdio.h>
main()
{
char c,ch;
c=getch(); /*从键盘上读入一个字符不回显送给字符变量c*/
putchar(c); /*输出该字符*/
ch=getche();/*从键盘上带回显的读入一个字符送给字符*/
putchar(ch);
}
利用回显和不回显的特点,这两个函数经常用于交互输入的过程中完成暂停等功能。
(2) getchar()函数
getchar()函数也是从键盘上读入一个字符,并带回显。 它与前面两个函数的区别在于,getchar()函数等待输入直到按回车才结束,回车前的所有输入字符都会逐个显示在屏幕上。但只有第一个字符作为函数的返回值。
例4.3
#include<stdio.h>
main()
{
char c;
c=getchar(); /*从键盘读入字符直到回车结束*/
putchar(c); /*显示输入的第一个字符*/
getch(); /*等待按任一健*/
}
2.gets( )
gets( )函数功能是从键盘上读入一个以回车结束的字符串.
Gets( )充许串中包含某种空白字符,如空格、制表符。
格功:
gets( 变量名)。
例4.4
#include<stdio.h>
main()
{
char c,s[20];
printf("Name:");
gets(s);
printf("Press any key to confinue...");
getch(); /*等待输入任一键*/
}
4.3.2字符输出函数
1.putchar()函数
putchar()函数是向标准输出设备输出一个字符,其调用格式为,
putchar(ch);
putchar(a);putchar(‘\n’);
putchar(b);putchar(‘\n’);
putchar(c);putchar(‘\n’);
输出其它转义字符
putchar(‘\101’); 输出 ‘A’;
putchar(‘\’’); 输出单引号
putchar(‘\015’); 使输出回车,不换行
例:4.5
#include<stdio.h>
main()
{
char c,/*定义字符变量*/
c='B'; /*给字符变量赋值*/
putchar(c); /*输出该字符*/
}
4.3.3格式化输入/输出函数
1.Printf( )函数。
功能:可以按规定格式向终端输出任意类型的数据
格式字符
(1)d格式符,用来输出十进制数。
%d 按整型的实际长度输出。
a=12,b=123,c=12345;
printf(“%d,%d,%d”,a,b,c);
12,123,12345
%md 按给定长度m输出,数字不够长,左边补空格;数字长度大于m,按原长度输出。
printf(“%4d%4d%4d”,a,b,c);
(2) c格式符,用来输出一个字符。如:
char c= ‘a’ ;
printf(“%c”,c);
例4.6
main()
{ char c= ‘a’; int i=97;
printf(“%c,%d\n”,c,c);
printf(“%c,%d\n”,c,c);
}
a,97
a,97
(3)s格式符,用来输出一个字符串。例如:
%s:按实际长度输出
printf(“%s”,“CHINA”);
CHINA
%ms:当字符串长度小于m时,左边补空格。
printf(“%7s”,“CHINA\n”);
%-ms:当字符串长度小于m时,右边补空格
printf(“%-7s”,“CHINA\n”);
%m.ns 输出占m列,但只取字符串左端的n个,并向右对齐。
%-m.ns m和n的含义同上,但向左对齐。若n大于m,取 m等于n.
例4.7
main()
{ printf(“%3s,%7.2s,% 4s,%-5.3s\n”,
,CHINA”,“CHINA”,“CHINA”,“CHINA”);
}
(4) f格式符,用来输出实数(单精度、双精度),以小数形式输出。
%f:不指定宽度,整数部分全部输出,输出6位小数。
单精度时,7位数字有效,双精度时,16位数字有效。
%m.nf 整个数据占m位,其中小数占n位,向右对齐。
%-m.nf 意义同上,向左对齐
main()
{
float f=123.456;
printf(“%f %10f %10.2F %0.2f %-10.2f\n”,f,f,f,f,f);
}
2.Scanf( )函数一般格式:scanf(格式控制,地址列表)
& 是地址符,表示a,b,c三个变量在内存中的的地址,
连续输入多个数字时,空格、回车和tab键均可作为分割符
格式说明
scanf(“%3d%3d”,&a,&b);
输入123456
注:输入数据要与控制格式相符合如:scanf(“%d,%d”,&a,&b);
正确的输入为:4,5
不正确的输为:4_5
scanf(“a=%d,b=%d”,&a,&b);
正确的输入:a=4,b=5
不正确的输入:4_5 和 4,5
scanf(“%d:%d”,&a,&b);
正确的输入为:4:5
不正确的输为:4_5 或 4,5
?问题,当使用多个scanf()函数连续给多个字符变量输入时,例如,
main()
{
char c1,c2;
scanf("%c",&c1);
scanf("%c",&c2);
printf("c1 is %c,c2 is %c",c1,c2);
}
要把a赋给c1,b赋给c2,在输入数据时应如何操作。?
注意:(1)格式控制符的个数与变量的个数要相符。
(2)格式的类型与变量的类型要一致
输入输出语句的使用对整数、浮点数、字符和字符串的输出格式要掌握。
顺序执行程序的特点按照程序书写的顺序逐条执行,直至main()的最后一条语句。
4.1顺序结构概述
顺序结构是程序设计中最基本最简单的结构.
顺序结构:按语句排列的先后顺序执行,写在前面的语句先执行。
当计算需要引用一个变量时,该变量一定要事先定义、赋值,然后才能出现在表达式中.
C语言中的基本顺序结构语句主要包括:表达式语句、空语句、复合语句、goto语句和函数调用语句。
例4.1:
求园的面积
#DEFINE PI=3.1415926
main()
{ float r,s;
r = 20;
s = r * r * PI;
printf (“area=%f,,s);
}
4.2 基本顺序对路构语句
1.函数调用语句。
Printf(“this is a sample.”);
2.表达式语句
‘d’+ 123 + b/d ;
‘d’+ 123 + b/d
3.空语句;
4.赋值语
x=‘d’+ 123 + b/d;
5,复合语句用{ }把一些语句括起来成为复合语句。
{z=x+y;
t=z/100;
printf(“%f”,t);}
4.3 基本输入/输出
4.3.1字符输入函数
1,getch()、getche()和getchar()函数
(1) getch()和getche()函数
这两个函数都是从键盘上读入一个字符。其调用格式为,
getch();
getche();
两者的区别是,getch()函数不将读入的字符回显在显示屏幕上,而getche() 函数却将读入的字符回显到显示屏幕上。
例4.2,
#include<stdio.h>
main()
{
char c,ch;
c=getch(); /*从键盘上读入一个字符不回显送给字符变量c*/
putchar(c); /*输出该字符*/
ch=getche();/*从键盘上带回显的读入一个字符送给字符*/
putchar(ch);
}
利用回显和不回显的特点,这两个函数经常用于交互输入的过程中完成暂停等功能。
(2) getchar()函数
getchar()函数也是从键盘上读入一个字符,并带回显。 它与前面两个函数的区别在于,getchar()函数等待输入直到按回车才结束,回车前的所有输入字符都会逐个显示在屏幕上。但只有第一个字符作为函数的返回值。
例4.3
#include<stdio.h>
main()
{
char c;
c=getchar(); /*从键盘读入字符直到回车结束*/
putchar(c); /*显示输入的第一个字符*/
getch(); /*等待按任一健*/
}
2.gets( )
gets( )函数功能是从键盘上读入一个以回车结束的字符串.
Gets( )充许串中包含某种空白字符,如空格、制表符。
格功:
gets( 变量名)。
例4.4
#include<stdio.h>
main()
{
char c,s[20];
printf("Name:");
gets(s);
printf("Press any key to confinue...");
getch(); /*等待输入任一键*/
}
4.3.2字符输出函数
1.putchar()函数
putchar()函数是向标准输出设备输出一个字符,其调用格式为,
putchar(ch);
putchar(a);putchar(‘\n’);
putchar(b);putchar(‘\n’);
putchar(c);putchar(‘\n’);
输出其它转义字符
putchar(‘\101’); 输出 ‘A’;
putchar(‘\’’); 输出单引号
putchar(‘\015’); 使输出回车,不换行
例:4.5
#include<stdio.h>
main()
{
char c,/*定义字符变量*/
c='B'; /*给字符变量赋值*/
putchar(c); /*输出该字符*/
}
4.3.3格式化输入/输出函数
1.Printf( )函数。
功能:可以按规定格式向终端输出任意类型的数据
格式字符
(1)d格式符,用来输出十进制数。
%d 按整型的实际长度输出。
a=12,b=123,c=12345;
printf(“%d,%d,%d”,a,b,c);
12,123,12345
%md 按给定长度m输出,数字不够长,左边补空格;数字长度大于m,按原长度输出。
printf(“%4d%4d%4d”,a,b,c);
(2) c格式符,用来输出一个字符。如:
char c= ‘a’ ;
printf(“%c”,c);
例4.6
main()
{ char c= ‘a’; int i=97;
printf(“%c,%d\n”,c,c);
printf(“%c,%d\n”,c,c);
}
a,97
a,97
(3)s格式符,用来输出一个字符串。例如:
%s:按实际长度输出
printf(“%s”,“CHINA”);
CHINA
%ms:当字符串长度小于m时,左边补空格。
printf(“%7s”,“CHINA\n”);
%-ms:当字符串长度小于m时,右边补空格
printf(“%-7s”,“CHINA\n”);
%m.ns 输出占m列,但只取字符串左端的n个,并向右对齐。
%-m.ns m和n的含义同上,但向左对齐。若n大于m,取 m等于n.
例4.7
main()
{ printf(“%3s,%7.2s,% 4s,%-5.3s\n”,
,CHINA”,“CHINA”,“CHINA”,“CHINA”);
}
(4) f格式符,用来输出实数(单精度、双精度),以小数形式输出。
%f:不指定宽度,整数部分全部输出,输出6位小数。
单精度时,7位数字有效,双精度时,16位数字有效。
%m.nf 整个数据占m位,其中小数占n位,向右对齐。
%-m.nf 意义同上,向左对齐
main()
{
float f=123.456;
printf(“%f %10f %10.2F %0.2f %-10.2f\n”,f,f,f,f,f);
}
2.Scanf( )函数一般格式:scanf(格式控制,地址列表)
& 是地址符,表示a,b,c三个变量在内存中的的地址,
连续输入多个数字时,空格、回车和tab键均可作为分割符
格式说明
scanf(“%3d%3d”,&a,&b);
输入123456
注:输入数据要与控制格式相符合如:scanf(“%d,%d”,&a,&b);
正确的输入为:4,5
不正确的输为:4_5
scanf(“a=%d,b=%d”,&a,&b);
正确的输入:a=4,b=5
不正确的输入:4_5 和 4,5
scanf(“%d:%d”,&a,&b);
正确的输入为:4:5
不正确的输为:4_5 或 4,5
?问题,当使用多个scanf()函数连续给多个字符变量输入时,例如,
main()
{
char c1,c2;
scanf("%c",&c1);
scanf("%c",&c2);
printf("c1 is %c,c2 is %c",c1,c2);
}
要把a赋给c1,b赋给c2,在输入数据时应如何操作。?
注意:(1)格式控制符的个数与变量的个数要相符。
(2)格式的类型与变量的类型要一致