




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第4 4章章 键盘输入键盘输入和屏幕输出和屏幕输出不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2回顾回顾常量常量和变量和变量C语言中的基本数据类型语言中的基本数据类型表达式表达式算术运算符算术运算符赋值运算符赋值运算符sizeof运算符运算符不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理3本章教学目标本章教学目标 字符常量字符常量了解语句的基本概念了解语句的基本概念了解语句的分类了解语句的分类掌握字符输入输出函数掌握字符输入输出函数getchar和和putchar掌握格式输入输出函数掌握格式输入输出函数scanf和
2、和printf算法及其表示算法及其表示掌握顺序程序设计掌握顺序程序设计不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理字符常量字符常量字符常量是用单引号括起来的一个字符字符常量是用单引号括起来的一个字符a是字符常量,而是字符常量,而a则是一个标识符则是一个标识符3表示一个字符常量,而表示一个字符常量,而3则表示一个整数则表示一个整数 转义字符转义字符(Escape Character)一些特殊字符(无法从键盘输入或者另有他用)一些特殊字符(无法从键盘输入或者另有他用)用转义字符表示用转义字符表示不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不
3、努力学习,不明白真理5不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理字符型变量的取值范围取决于计算机系统所使用的字符集字符型变量的取值范围取决于计算机系统所使用的字符集ASCII(美国标准信息交换码)字符集(美国标准信息交换码)字符集规定了每个字符所对应的编码规定了每个字符所对应的编码 一个字符以其对应的一个字符以其对应的ASCIIASCII码的二进制形式存储在内存中码的二进制形式存储在内存中一个字节,保存一个字符(英文字母、数字、符号)一个字节,保存一个字符(英文字母、数字、符号)字符常数就是一个普通整数,也可参与各种数学运算字符常数就是一个普通整数,也
4、可参与各种数学运算每个字符具有一个每个字符具有一个0255之间的数值,可从之间的数值,可从ASCII表查出表查出注意:注意:5和整数和整数5的区别的区别5的的ASCII码值是码值是53字符常量字符常量不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理7字符型字符型 5 p $ 2 2 2 + 2 = 4 值值符号符号值值符号符号值值符号符号0空字符空字符44,9132空格空格45-9233!46.933447/9435#48 570 9 95-36$58:9637%59;97 122a z38&6012541)63?12642*64127DEL (De
5、lete键键)43+65 90A Z 不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理8字符型变量字符型变量占 8 位内存signed或 unsignedSigned-128 至 +127 unsigned 0 至 255 char gender;gender=m;或或char gender=m;不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理4.1单个字符的输入单个字符的输入/输出输出通过调用标准库函数来实现通过调用标准库函数来实现 #include 字符输出函数字符输出函数 putchar(ch)输出输出一个一个字符字
6、符ch字符输入函数字符输入函数 getchar()无参数无参数函数值为从输入设备接收的字符函数值为从输入设备接收的字符不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理10字符输入输出函数字符输入输出函数字符型变量字符型变量字符型数据字符型数据不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理11getchar函数函数例如:例如:char c;c=getchar();注意:注意:getchar函数无参数函数无参数不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理12#include int m
7、ain( ) ch; (Press a key and then press Enter:); ch = (); (You pressed ); (ch); (n); return 0;运行程序运行程序Press a key and then press Enter: A You pressedA该语句的作用是什么?该语句的作用是什么?不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理13getchar和和putchar函数使用函数使用#include int main( ) char a,b; printf( 请输入两个字符请输入两个字符:n); a=get
8、char(); fflush(stdin); b=getchar(); fflush(stdin); putchar(a); putchar(b); putchar(n); return 0;内存内存abOK输出:请输入两个字符:OKOKPress any key to continue_不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理14C语言中的语句语言中的语句控制语句控制语句if()elsereturn变量声明语句变量声明语句 int a=1;函数调用语句函数调用语句 printf(hello world!);表达式语句表达式语句k+;k = k+ 1
9、;空语句空语句 ;复合语句复合语句t = x; x = y; y = t;不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理15复合语句复合语句在什么情况下使用复合语句?在什么情况下使用复合语句?条件语句和循环语句在语法上只允许带一条语句条件语句和循环语句在语法上只允许带一条语句当分支和循环中需要进行多项操作时当分支和循环中需要进行多项操作时被当作一条被当作一条语句来处理语句来处理不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理16复合语句使用复合语句使用#include int main(void) int a = 0;
10、int a = 1; printf(In: a = %dn, a); printf(Out: a = %dn, a); 不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理17空语句空语句空语句有什么作用?空语句有什么作用?什么也不做,只表示语句的存在什么也不做,只表示语句的存在自顶向下程序设计时用在那些未完成的模块中自顶向下程序设计时用在那些未完成的模块中延时用的空循环延时用的空循环不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理4.2数据的格式化屏幕输出数据的格式化屏幕输出格式格式printf(格式控制字符串格式控制字符串
11、, , 输出项列表输出项列表);printf(a=%d b=%f, a, b);可以输出若干可以输出若干任意类型任意类型的数据的数据 函数名函数名可选输可选输出列表出列表普通普通字符字符格式格式说明说明不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理19格式输入输出函数格式输入输出函数输入输入/ /输出函数输出函数 (scanf/printf) (scanf/printf) 用于接收和显示数据或信息用于接收和显示数据或信息#include int main( )int num;printf(请输入一个数:);scanf(%d,&num);printf
12、( n%d 的平方为 %d n,num,num*num); return 0;转换字符串转义序列printf()函数的一般形式为函数的一般形式为: printf(格式描述串格式描述串,输出列表输出列表);说明:说明:1.1. 第一个参数说明采用什么样的格式输出内容。第一个参数说明采用什么样的格式输出内容。 格式描述串中可以包含转换字符串(以格式描述串中可以包含转换字符串(以%开始),也可以包含转义序开始),也可以包含转义序列(以列(以标识)。标识)。2.2. 第二个参数是要显示其值的参数列表。第二个参数是要显示其值的参数列表。3.3. 如果格式描述串中没有特殊字符如果格式描述串中没有特殊字符%
13、,那么该输出语句里就不能有输出,那么该输出语句里就不能有输出列表,也不需要表示分隔的逗号这是使用列表,也不需要表示分隔的逗号这是使用printf()printf()函数的最简单的形式。函数的最简单的形式。不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理20printf函数函数int visitor_count = 150;printf ( %d , visitor_count);printf将一些信息按照指定的格式送到标准输出(显示器)将一些信息按照指定的格式送到标准输出(显示器) %d visitor_count将按指定的格式显示该变量的值将按指定的格式显
14、示该变量的值转换字符串转换字符串说说 明明%d将参数按整数形式转换输出,对应参数应是将参数按整数形式转换输出,对应参数应是int 类型类型%ld将参数按长整数形式转换输出将参数按长整数形式转换输出,对应参数应是对应参数应是long int 类型类型%c输出一个字符,对应参数应该是一个字符输出一个字符,对应参数应该是一个字符类型类型%s输出一个字符串,对应参数应该是一个字符串输出一个字符串,对应参数应该是一个字符串%f将参数按带小数点数形式输出,将参数按带小数点数形式输出,对应参数应是对应参数应是double 类型或类型或float类型,默认情况下精确到类型,默认情况下精确到 6 位小数位小数不
15、向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理%c character以字符形式输出单个字符以字符形式输出单个字符%s string 输出一个字符串输出一个字符串%d decimal 以带符号十进制整数输出以带符号十进制整数输出%f float 以小数形式输出浮点数(以小数形式输出浮点数(6位小数)位小数)%e exponent 以标准指数形式输出(以标准指数形式输出(6位小数)位小数)%g 选用选用%f,%e中输出宽度较小的一种格式中输出宽度较小的一种格式%o octal 以八进制无符号整数输出(无前导以八进制无符号整数输出(无前导0)%x hex 以十六
16、进制无符号整数输出(无前导以十六进制无符号整数输出(无前导0 x)%u unsigned 以十进制无符号整数输出以十进制无符号整数输出不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理【例例4.2】大小写英文字母转换大小写英文字母转换Press a key and then press Enter: B b, 98不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理23printf函数函数int salary = 5500;printf ( %10d , salary);输出结果:输出结果: 5500输出结果的左边显示了输出结果
17、的左边显示了 6 6 个空格个空格 %10d 不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理24printf函数函数float circumference = 78.53;printf ( %f , circumference);输出结果输出结果: :78.529999默认情况下六位有效数字默认情况下六位有效数字9.4786789;不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理m 表示数据占用的最小宽度表示数据占用的最小宽度 数据宽度大于数据宽度大于m,按实际宽度输出,按实际宽度输出 数据宽度小于数据宽度小于m时,补空
18、格时,补空格n 对实数表示输出对实数表示输出n位小数位小数 对字符串表示最多输出的字符个数对字符串表示最多输出的字符个数l 长整型整数长整型整数,加在,加在d、o、x、u前前L long double型数,加在型数,加在f、e、g前前- 改变输出内容的对齐方式改变输出内容的对齐方式 默认为右对齐默认为右对齐不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理printf()的格式修饰符的格式修饰符nFormat for float: nGeneral format:Example:printf(Value is:%10.4f, 32.6784728); Valu
19、e is: 32.6785 10 characters4 digits不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理printf()的格式修饰符的格式修饰符Example:printf(Value is:%10f, 32.6784728); Value is: 32.67847310 characters6 digits (default)不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理Example:printf(Value is:%.3f, 32.6784728); Value is:32.678 3 digitsp
20、rintf()的格式修饰符的格式修饰符不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理29printf函数使用函数使用#include int main( )float radius=1.5, high=2.0; float pi=3.14159, vol;/*计算体积计算体积*/vol=pi*radius*radius*high; /*输出体积的值输出体积的值*/printf(vol=%7.2fn,vol); return 0;内存radiushighvol1.52.014.14输出:vol= 14.14pi3.14159不向前走,不知路远;不努力学习,不
21、明白真理不向前走,不知路远;不努力学习,不明白真理30printf函数使用函数使用#include int main( )float f1 = 100.15799, f2 = 12.55, f3 = 1.7;int n1 = 123, n2 = 45, n3 = 6; printf(printf WITHOUT width or precision specifications:n);printf(%fn%fn%fn, f1, f2, f3);printf(%dn%dn%dn, n1, n2, n3);printf(printf WITH width and precision specifi
22、cations:n);printf(%5.2fn%6.1fn%3.0fn, f1, f2, f3);printf(%5dn%6dn%3dnn, n1, n2, n3); return 0;不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理31scanf函数函数scanf(%d,&num);scanf 函数从标准输入(键盘)函数从标准输入(键盘)读取读取信息,按照格式描述把读入的信息转信息,按照格式描述把读入的信息转换为指定数据类型的数据,并把这些数据赋给指定的程序变量。换为指定数据类型的数据,并把这些数据赋给指定的程序变量。 转换字符串转换字符串&am
23、p; &符号(附在读取的每个变量上)用于指明变量符号(附在读取的每个变量上)用于指明变量在内存中的位置在内存中的位置变量的名称变量的名称转换字符串转换字符串参数变量的类型参数变量的类型要求的实际输入要求的实际输入%dint 十进制数字序列十进制数字序列 %ld long int十进制数字序列十进制数字序列%f float 十进制数,可以有小数点及指数部分十进制数,可以有小数点及指数部分 %lf double 十进制数,可以有小数点及指数部分十进制数,可以有小数点及指数部分不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理32scanf函数函数内存内存f
24、loat tax_rate;scanf ( %f , &tax_rate);tax_rate 在内存中分配一块在内存中分配一块 32 位存储空间位存储空间 存储空间使用名称存储空间使用名称“tax_rate”标识标识 提示用户输入一个值提示用户输入一个值 输入的值存储在变量中(因为输入的值存储在变量中(因为 scanf 提供此变量的地址)提供此变量的地址)12.234不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理33scanf函数使用函数使用#include int main( ) double radius,high,vol; printf(请输
25、入圆柱体底面积的半径和圆柱体的高请输入圆柱体底面积的半径和圆柱体的高: : ); scanf(%lf%lf,&radius,&high); vol=3.14*radius*radius*high; printf(radius=%7.2f, high=%7.2f, vol=%7.2fn,radius,high,vol); return 0;内存内存radiushighvol510785请输入圆柱体底面积的半径和圆柱体的高高: 5 10radius= 5.00, high= 10.00, vol= 785.00不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习
26、,不明白真理34scanf函数常见错误函数常见错误常见错误常见错误scanf(%d,%fn,&a,&b);scanf(%d,%f,a,b);scanf(%7.2f,&a);不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理35scanf函数使用函数使用#include int main( ) int a, b; printf(Please input a and b:); scanf(%d%d, &a, &b); printf(a=%d, b=%d, a+b=%dn,a,b,a+b); return 0; 不向前走,不知
27、路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理36scanf函数使用函数使用#include int main( ) int a, b; printf(Please input a and b:); scanf(%2d%2d, &a, &b); printf(a=%d, b=%d, a+b=%dn,a,b,a+b); return 0;Please input a and b:a=12, b=34, a+b = 461234 不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理37scanf函数使用函数使用#include
28、 int main( ) int a, b; printf(Please input a and b:); scanf(%d,%d, &a, &b); printf(a=%d, b=%d, a+b=%dn,a,b,a+b); return 0;Please input a and b:a=12, b=34, a+b = 4612,34 不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理38scanf函数使用函数使用#include int main( ) int a, b; printf(Please input a and b:); scan
29、f(%2d%2d, &a, &b); printf(a=%d, b=%d, a+b=%dn,a,b,a+b); return 0;Please input a and b:a=12, b=3, a+b = 15123a 不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理Please input a and b:a=12, b=56, a+b = 68123456 不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理40输入数据的格式控制输入数据的格式控制#include int main( ) int a, b;
30、scanf(%d %d, &a, &b);printf(a = %d, b = %dn, a, b); return 0;问题问题1:当要求程序输出结果为:当要求程序输出结果为 a = 12, b = 34时,用户应该如何输入数据?时,用户应该如何输入数据? 不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理41输入数据的格式控制输入数据的格式控制#include int main( ) int a, b;scanf(%d %d, &a, &b);printf(a = %d, b = %dn, a, b); return 0;
31、问题问题5:限定用户输入数据为以下格式为:限定用户输入数据为以下格式为12 34 同时要求程序输出结果为同时要求程序输出结果为a = 12, b = 34不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理42输入数据的格式控制输入数据的格式控制#include int main( ) int a, b;scanf(%d %d, &a, &b);printf(a = %d, b = %dn, a, b); return 0;问题问题6:设计程序使得用户可以以任意字符(回车、空格、:设计程序使得用户可以以任意字符(回车、空格、制表符、逗号、其它)作
32、为分隔符进行数据的输入制表符、逗号、其它)作为分隔符进行数据的输入 不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理Please input an integer: 12 Please input an character : a Please input a float number: 3.5 integer:12character :afloat number:3.500000不向前走,不
33、知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理Please input an integer: 12 Please input an character : a Please input a float number: 3.5 integer:12float number:3.500000不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理Please input an integer: 12 Please input an character : a Please input a float number: 3.5 integer:1
34、2character :afloat number:3.500000不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理49顺序程序设计顺序程序设计由计算机向屏幕上输出一个数由计算机向屏幕上输出一个数#include /包含伪随机数生成函数包含伪随机数生成函数#include /包含取系统时间的函数包含取系统时间的函数#include int main(void) srand(time(NULL); /随机数种子初始化随机数种子初始化 printf(%d,rand(); retu
35、rn 0;不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理50顺序程序设计顺序程序设计编写一个重量单位换算程序,输入用公斤表示的编写一个重量单位换算程序,输入用公斤表示的重量,然后程序能够转换并输出用镑和盎司表示重量,然后程序能够转换并输出用镑和盎司表示的等效重量。的等效重量。请输入重量(公斤):23转换为用磅表示的重量(磅):50.7055转换为用盎司表示的重量(盎司):811.287问题问题 如何设计变量及选择相应的数据类型?如何设计变量及选择相应的数据类型? 公斤、磅和盎司的转换公式是什么?公斤、磅和盎司的转换公式是什么?不向前走,不知路远;不努力学习
36、,不明白真理不向前走,不知路远;不努力学习,不明白真理51顺序程序设计顺序程序设计double kilogram, pound, ounce; /公斤、镑、盎司公斤、镑、盎司 公斤、磅和盎司的转换公式:公斤、磅和盎司的转换公式: 1磅=16盎司=0.4536千克(公斤)问题分析问题分析算法如下:算法如下:1. 得到用公斤表示的重量得到用公斤表示的重量2. 将重量转化为磅:将重量转化为磅:pound=kilogram/0.4536;3. 将磅转化为盎司:将磅转化为盎司:ounce=pound*16; 4. 输出转换后的重量输出转换后的重量不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理52顺序程序设计顺序程序设计#include int main(void)float kilogram, pound, ounce; /公斤、镑、盎司公斤、镑、盎司printf(请输入重量请输入重量(公斤公斤):);scanf(%f,&kilogram);pound=kilogram/0.4536;ounce=pound*16;printf(转换为用磅表示的重量转换为用磅表示的重量(磅磅):%fn,pound);printf(转换为用盎司表示的重量转换为用盎司表示的重量(盎司盎司):%fn,ounce);return 0;不向前走,不知路远;不努
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中考英语冲刺语法填空热点新题练习含答案解析
- 2025汽车维护保养合同模板
- 2025餐饮连锁加盟合同范本
- 2025汽车销售代理合同
- 2025电子合同规范
- 2025合法个人借款合同范本 法律认可的
- 2025供应商合同范本模板示例
- 苏教版科学五年级下册全册教学设计
- 公司股权转让协议书标准合同书范例
- 卫生院的聘用合同范例
- GB/T 22235-2008液体黏度的测定
- CAD输入文字时提示“找不到主词典无法启动拼写检查程序”怎么办
- -活出心花怒放的生命 课件 心理健康
- 给水泵检修方案
- 设备出入库管理办法
- KEGG代谢通路中文翻译
- 消火栓月检查表
- GB∕T 17832-2021 银合金首饰 银含量的测定 溴化钾容量法(电位滴定法)
- 低成本自动化的开展与案例77页PPT课件
- 人防工程竣工资料(全套)
- 梅州市部分饮用水源保护区调整方案
评论
0/150
提交评论