第3章 顺序结构程序设计
本章知识要点及考核要求:
C语言中的基本语句(表达式语句、空语句、复合语句);字符数据的输入与输出;数据的格式输入与输出;顺序结构程序设计方法。
1.基本要求
(1)了解C程序中常用的基本语句形式。
(2)掌握使用 getchar()和 putchar()标准库函数实现字符数据输入与输出的方法。
(3)掌握使用scanf()和printf()标准函数实现不同类型数据的格式输入与输出的方法,在编程中会根据需要正确输入数据并答理设计输出格式。
(4)掌握使用顺序结构设计简单C程序的基本方法。
2.重点、难点
重点: printf函数和scanf函数的使用。
难点:格式符及修饰符。
一、部分知识
程序流程
数据的输入
数据的处理
数据的输出
程序结构
顺序结构
选择结构
循环结构
程序的三种基本结构
C语句的分类(共5类)
控制语句: 完成一定的控制功能
函数调用语句: 完成函数调用功能
表达式语句: a=b+c;
空语句: 只有分号的语句
复合语句: {a:5;b=a%2;}
语句以;结束
C不提供输入输出语句,输入输出是由函数完成的,都是函数调用语句;
#include <stdio.h>
//在调用C语言库函数时,需要使用编译预处理命令#include <相关的头文件>,使相应的头文件包含到用户源程序中
二、数据输出
·主要内容:
字符输出函数
格式输出函数
1 字符输出函数
函数调用的一般形式
putchar(ch)
功能:-在标准输出设备(即显示器屏幕)上输出一个字符。
例如:putchar('b');
putchar('\n');
putchar('\101');
putchar(st);
2关于printf()函数(用于控制输出格式)
1、一般形式:
printf (格式控制字符串,输出项表列);
2、功能:将输出项表列内容按照控制字符串要求输出。
printf("a = %d b = %f", a,b); //a = b= 是普通字符需要原模原样输出,%d为十进制整数输出,%f以小数的形式输出,默认有6位小数
控制字符串:包含三种信息。
①普通字符原样输出。
②转义字符按转变后的字符输出。
③由%和输出格式符组成的输出格式控制符。
输出表列:可以是常量、变量、表达式、函数等。
3、格式说明符
格式字符 | 说明 |
d | 以带符号的十进制形式输出整数(正数不输出符号)。 |
o | 以8进制无符号形式输出整数(不输出前导符0)。 |
x | 以16进制无符号形式输出整数(不输出前导符0x)。 |
u | 以无符号10进制形式输出整数。 |
c | 以字符形式输出,只输出一个字符。 |
s | 输出字符串。 |
f | 以小数形式输出单、双精度数,隐含输出6位小数。 |
e | 以标准指数形式输出单、双精度数,数字部分小数位数为6位。 |
附加格式说明符
%md 输出的宽度是m宽度 正数就是右对齐左补空格
负数就是左对齐右补空格
例如:%ld、%lo--输出十进制、八进制长整型数
%lf、%le——输出双精度实型数
%mf-—输出m立数(域宽)
%.nf——输出的n位小数
例:已知int n=011;则语句printf("%d",n);输出的是()
A.11
B.17
C.011
D.9
#include "stdio.h"
int main () {
int n=011; //这是一个八进制的数
printf("%d",n); //将八进制转换成十进制输出
};
例:整型数据的输出(设int 占两个字节)
#include <stdio.h>
int main(){
int a=11,b=22;
int m=-1; long n=123456789;
printf("%d %d\n",a,b);
printf("a=%d, b=%d\n",a,b);
printf("m: %d, %o, %x, %u\n",m,m,m,m);
printf("n=%ld\n",n);
return 0;
}
实型数据的输出
#include <stdio.h>
int main(){
float x=1234.56,y=1.23456789;
double z=1234567.123456789;
printf("x=%f, y=%f \n",x,y);
printf("z=%f\n",z);
printf("z=%e\n",z);
printf("z=%18.8f\n",z);
printf("x=%10.3f\n",x);
printf("x=%-10.3f\n",x);
printf("x=%4.3f\n\n",x);
return 0;
}
字符型数据的输出
#include <stdio.h>
int main(){
int m=97;
char ch='B';
printf("m: %d %c\n",m,m);
printf("ch: %d%c\n",ch,ch);
printf("%s\n","student");
printf("%10s\n","student");
printf("%-10s\n","student");
printf("%10.3s\n","student");
printf("%.3s\n\n","student");
return 0;
}
注意:
print函数格式控制中的格式说明符与输出参数的个数和类型必须一一对应。
格式说明符的%和后面的描述符之间不能有空格。除%X、%E、%G外类型描述符必须是小写字母。
长整型数应该用%ld (或%lo、%lx、%lu)格式输出,否则会出现输出错误。
printf函数的参数可以是常量、变量或表达式。在计算各参数值时,从右至左的顺序求值。
三、数据输入
主要内容:
—字符输入函数
- 格式输入函数
1字符输入函数
函数调用的一般形式
getchar()
功能:
-从标准输入设备(即键盘)上交互输入一个字符。
例如:
#include "stdio.h"
int main (){
getchar();
char c;
c = getchar();
printf("%c\n",getchar());
};
当需要接收两个字符时,必须连续输入两个字符,中间不能有其他字符
getchar()的应用
#include "stdio.h"
int main (){
char ch; //变量声明
ch=getchar(); //赋值
printf("%c %d\n",ch,ch); //输出 将输出的第一个转换为字符 ,第二个转换为十进制数
printf("%c %d \n\n",ch-32,ch-32);//输出 将输出的第一个转换为字符 ,第二个转换为ASCII码
return 0;
};
//+ - 32 用于大小写转换
2 格式输入函数
1、一般形式:
scanf(格式控制字符串,参数地址列表);
2、功能:
scanf( "a=%d, b=%f", &a, &b);
普通字符(原样输入) 格式说明符 取地址符(必须)
#include <stdio.h>
int main(){
int a,b,c,x;
scanf("%d%d%d",&a,&b,&c);
// 输入3个整型十进制数,以空白符
scanf("%d,%o,%f",&a,&b,&x);
// 输入3个数,以",”分隔
scanf("a=%d,b=%d",&a,&b);
// 输入的形式是:a=32,b=28(普通字符要照原样输入)
return 0;
}
注意:
格式符之间若无普通字符,则:
-输入的数值型数据用空白符分隔-
输入的char型数据不必分隔
scanf ("%c%g%c", &ch1, &ch2, &ch3);
输入abc 不能输入 a b c
注意数值型数据与char型数据的混合输入
例如:
scanf ("%d%d", &m, &n);
scanf ("%c", &ch);
//正确输入:32 28a
//错误输入:32 28
a