中国石油大学c语言课件第3章顺序程序设计_第1页
中国石油大学c语言课件第3章顺序程序设计_第2页
中国石油大学c语言课件第3章顺序程序设计_第3页
中国石油大学c语言课件第3章顺序程序设计_第4页
中国石油大学c语言课件第3章顺序程序设计_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2021/4/81第第3章章 顺序程序设计顺序程序设计不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/82回顾回顾常量是在程序中不能被更改的值;而变量在程序中可以被更常量是在程序中不能被更改的值;而变量在程序中可以被更改的,通过变量可以引用存储在内存中的数据改的,通过变量可以引用存储在内存中的数据C语言中的基本数据类型包括整型、单精度浮点型、双精度语言中的基本数据类型包括整型、单精度浮点型、双精度浮点型和字符型浮点型和字符型整型分为短整型、整型、长整型,每种整型又可分为有符号整型分为短整型、整型、长整型,每种整型又可分为有符号型和无符号型型和无

2、符号型单精度浮点型和双精度浮点型变量可以存储实数,但双精度单精度浮点型和双精度浮点型变量可以存储实数,但双精度型取值范围要比单精度型大的多型取值范围要比单精度型大的多字符型变量可以存储单个字符,其值是该字符的字符型变量可以存储单个字符,其值是该字符的ASCII 码码表达式是操作数和运算符的集合表达式是操作数和运算符的集合赋值运算符的语法如下:赋值运算符的语法如下:variable = expressionsizeof运算符用于在程序中测试某一数据类型占用多少字节运算符用于在程序中测试某一数据类型占用多少字节算术运算符提供运算功能,包括算术运算符提供运算功能,包括+、-、*、/、%、+和和-不向

3、前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/83教学目标教学目标了解语句的基本概念了解语句的基本概念了解语句的分类了解语句的分类掌握字符输入输出函数掌握字符输入输出函数getchar和和putchar掌握格式输入输出函数掌握格式输入输出函数scanf和和printf算法及其表示算法及其表示掌握顺序程序设计掌握顺序程序设计不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/84C语言中的语句语言中的语句控制语句控制语句if()elsereturn变量声明语句变量声明语句int a=1;函数调用语句函数

4、调用语句printf(hello world!);表达式语句表达式语句k+;k = k+ 1;空语句空语句;复合语句复合语句t = x; x = y; y = t;不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/85复合语句复合语句在什么情况下使用复合语句?在什么情况下使用复合语句?条件语句和循环语句在语法上只允许带一条语句条件语句和循环语句在语法上只允许带一条语句当分支和循环中需要进行多项操作时当分支和循环中需要进行多项操作时被当作一条被当作一条语句来处理语句来处理不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明

5、白真理2021/4/86复合语句复合语句对于复合语句,需要注意:对于复合语句,需要注意:在程序中应把复合语句看成是单条语句,而不是多条语句;在程序中应把复合语句看成是单条语句,而不是多条语句;复合语句内的各条语句必须是以复合语句内的各条语句必须是以“;”结尾,最后一条语句的结尾也结尾,最后一条语句的结尾也必须有分号必须有分号“;”;复合语句还可以包含复合语句,即复合语句允许嵌套,但必须保证嵌复合语句还可以包含复合语句,即复合语句允许嵌套,但必须保证嵌套是完整的,不允许交叉嵌套。套是完整的,不允许交叉嵌套。例如:例如: x=1; y=x*x; x+; y=x; 不向前走,不知路远;不努力学习,不

6、明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/87空语句空语句空语句有什么作用?空语句有什么作用?什么也不做,只表示语句的存在什么也不做,只表示语句的存在自顶向下程序设计时用在那些未完成的模块中自顶向下程序设计时用在那些未完成的模块中延时用的空循环延时用的空循环不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/88输入输出的概念及在输入输出的概念及在C语言中的实现语言中的实现根据结构化程序设计思想,任何程序都可以简化为3个模块:数据输入、数据处理、数据输出。数据输入模块模块负责接受用户输入的数据并转化为程序能够识别、处理的形式,

7、通常与输入设备有关。数据处理模块负责对输入数据按指定的算法进行加工和处理,计算结果,它是程序的核心,但并不是程序的全部。数据输出模块负责将内存中的计算结果转化为可以在输出设备上呈现出来的形式,并送往输出设备。因此,在任何程序前,都要首先规划数据的输入、输出方法。本章将介绍getchar、putchar、scanf、printf等函数的语法规则和使用方法。不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/89字符输入输出函数字符输入输出函数字符型变量字符型变量字符型数据字符型数据不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学

8、习,不明白真理2021/4/810putchar函数函数putchar(整型表达式)(整型表达式)语法:语法:例如:例如:char c;c=n;putchar(c);putchar(n);其中,其中,“整型表达式整型表达式”的值是要输出字符的编码。通常,的值是要输出字符的编码。通常,该表达式直接用字符型表达式代替。该表达式直接用字符型表达式代替。该函数的功能是在标准输出设备(显示器)该函数的功能是在标准输出设备(显示器)上输出单个字符。上输出单个字符。不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/811getchar函数函数char vari

9、ablename;variablename = functionname;语法:语法:例如:例如:char c;c=getchar();注意:注意:getchar函数无参数,在使用前必须要用包含命令函数无参数,在使用前必须要用包含命令 #include 该函数的功能是从键盘上输入一个字符该函数的功能是从键盘上输入一个字符不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/812putchar函数函数#include int main(void) ch; (Press a key and then press Enter:); ch = (); (Y

10、ou pressed ); (ch); (n); return 0;运行程序运行程序Press a key and then press Enter: A You pressedA该语句的作用是什么?该语句的作用是什么?注意:注意:该函数只能接受单个字符,该函数只能接受单个字符,当输入多于一个字符时,只接受第当输入多于一个字符时,只接受第一个字符。一个字符。 这是因为该函数是从键盘缓这是因为该函数是从键盘缓冲区读取字符数据的,用户输入的冲区读取字符数据的,用户输入的字符暂时存在缓冲区中,形成了一字符暂时存在缓冲区中,形成了一个序列。每次调用,顺序读取一个个序列。每次调用,顺序读取一个字符,其他

11、的还是保留在里面。字符,其他的还是保留在里面。不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/813举例举例#include int main(void) char c; printf(please input some characters:n); c=getchar(); putchar(c); c=getchar(); putchar(c); c=getchar(); putchar(c); putchar(n); 不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/814getchar和和p

12、utchar函数使用函数使用#include int main(void) char a,b; printf( 请输入两个字符:n); a=getchar(); fflush(stdin); b=getchar(); fflush(stdin); putchar(a); putchar(b); putchar(n); return 0;内存内存abOK输出:请输入两个字符:OKOKPress any key to continue_不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/815格式输入输出函数格式输入输出函数输入/输出函数 (scanf

13、/printf) 用于接受和显示数据或信息#include int main(void)int num;printf(请输入一个数:);scanf(%d,&num);printf( n%d 的平方为 %d n,num,num*num); return 0;格式说明转义序列printf()函数的一般形式为: printf(“格式控制格式控制,输出列表输出列表);说明:说明:第一个参数说明采用什么样的格式输出内容。第一个参数说明采用什么样的格式输出内容。 格式控制串中可以包含格式控制字符串(以格式控制串中可以包含格式控制字符串(以%开始),也可以开始),也可以包含转义序列(以包含转义序列(以标识)

14、。标识)。第二个参数是要显示其值的参数列表。第二个参数是要显示其值的参数列表。1.1. 如果格式描述串中没有特殊字符如果格式描述串中没有特殊字符%,那么该输出语句里就不能,那么该输出语句里就不能有输出列表,也不需要表示分隔的逗号这是使用有输出列表,也不需要表示分隔的逗号这是使用printf()printf()函数的函数的最简单的形式。最简单的形式。不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/816printf函数函数int visitor_count = 150;printf ( %d , visitor_count);printf将一些信

15、息按照指定的格式送到标准输出(显示器)将一些信息按照指定的格式送到标准输出(显示器) %d visitor_count将按指定的格式显示该变量的值将按指定的格式显示该变量的值转换字符串转换字符串说说 明明%d将参数按整数形式转换输出,对应参数应是将参数按整数形式转换输出,对应参数应是int 类型类型%ld将参数按长整数形式转换输出将参数按长整数形式转换输出,对应参数应是,对应参数应是long 类型类型%c输出一个字符,对应参数应该是一个字符输出一个字符,对应参数应该是一个字符%s输出一个字符串,对应参数应该是一个字符串输出一个字符串,对应参数应该是一个字符串%f将参数按带小数点数形式输出,将参

16、数按带小数点数形式输出,对应参数应是对应参数应是double 类型或类型或float类型,默认情况下精确到类型,默认情况下精确到 6 位小数位小数其他格式见课本其他格式见课本P43.。不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/817附加格式说明字符附加格式说明字符字符字符说明说明字母字母l用户输出长整数,可加在格式字符用户输出长整数,可加在格式字符d、o、x、u前面前面字母字母h用户输出短整数,可加在格式字符用户输出短整数,可加在格式字符d、o、x、u前面前面m(m为正整数)为正整数)m是输出数据的最小宽度(字符个数)是输出数据的最小宽度

17、(字符个数)n(n为正整数)为正整数)对实型数,对实型数,n为小数位数;对字符串,为小数位数;对字符串,n为要截取的字符个数为要截取的字符个数-(减号)(减号)输出地数字和字符向左对齐输出地数字和字符向左对齐不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/818printf函数函数#include int main(void) int a; char c; c=x; a=99; printf(c=%d, c=%c n, c, c); printf(a=%d, a=%c n, a, a); return 0;不向前走,不知路远;不努力学习,不明白

18、真理不向前走,不知路远;不努力学习,不明白真理2021/4/819输出类型不一致输出类型不一致#include int main(void) float x=2.345; printf(%dn,x); return 0; #include int main(void) float x=2.345; printf(“%dn”,(int)x); return 0; 不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/820其他情况其他情况#include int main(void) int a,b;a=22;b=55;printf(a=%d, b=%

19、d n,&a,&b); return 0;不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/821printf函数函数int salary = 5500;printf ( %10d , salary);输出结果:输出结果: 5500输出结果的左边显示了输出结果的左边显示了 6 6 个空格个空格 %10d %md、%mo、%mx、%mu: m为指定的输出宽度。如果实际数据的位数小于为指定的输出宽度。如果实际数据的位数小于m,则左边补足空,则左边补足空格;如果大于格;如果大于m,则按照实际位数输出,则按照实际位数输出,m将不起作用。将不起作用。不向前

20、走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/822printf函数函数float circumference = 78.53;printf ( %f , circumference);输出结果输出结果: :78.530000默认情况下精确到六位小数默认情况下精确到六位小数9.4786789;不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/823printf函数函数double mercury_level = 168.2251074;printf (%7.2f , mercury_level);输出

21、结果:输出结果: 168.23宽度,表示所有的数字和小数点所占的位数。不够宽度,表示所有的数字和小数点所占的位数。不够7位右对齐。位右对齐。 %7.2f 精度(精确到小数点后多少位)精度(精确到小数点后多少位)%m.nf(m,n为正整数为正整数):指定输出的数据共占指定输出的数据共占m列,其中有列,其中有n位小数。如果数值长度小于位小数。如果数值长度小于m,则左端补空格;如果超过则左端补空格;如果超过m,则忽略,则忽略m的限制。的限制。如果为如果为%-m.nf则是向左对齐,右端补空格。则是向左对齐,右端补空格。不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理

22、2021/4/824%e格式格式%e:按标准化指数形式输出(小数部分的小数点前必有:按标准化指数形式输出(小数部分的小数点前必有且只有且只有1位非位非0数字),默认输出宽度共占数字),默认输出宽度共占13列,其中,列,其中,小数点占小数点占1列,小数点前的非列,小数点前的非0数字占数字占1列,小数点后的小列,小数点后的小数部分有系统自动指定数部分有系统自动指定6位,指数部分占位,指数部分占5位(字母位(字母“e”占占1位,指数符号位,指数符号1位,指数占位,指数占3位)位)printf(%15.1en,311.34);printf(%en,311.34);不向前走,不知路远;不努力学习,不明白

23、真理不向前走,不知路远;不努力学习,不明白真理2021/4/825%c格式格式%c格式符用来输出一个字符,主要有两种用法:格式符用来输出一个字符,主要有两种用法:%c和和%mc。其中,。其中,m指定输出列宽(通常指定输出列宽(通常m1),输出的字),输出的字符输出在指定的最后一列,即第符输出在指定的最后一列,即第m列,前面补列,前面补m-1个空格。个空格。 例如:例如: char c=c printf(“%c%3cn”,c,c); 输出结果为:输出结果为: c_ _c 字符型输出与整型输出的关系见字符型输出与整型输出的关系见P46。不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;

24、不努力学习,不明白真理2021/4/826%s格式输出格式输出s格式用来输出一个字符串,主要有下面几种用法:格式用来输出一个字符串,主要有下面几种用法: %s,直接输出全部字符。例如:,直接输出全部字符。例如: printf(“%s”,”china”) %ms(m是一个正整数是一个正整数):输出的字符串占:输出的字符串占m列。如果字符列。如果字符本身长度大于本身长度大于m,则忽略,则忽略m的限制,将字符串全部输出。的限制,将字符串全部输出。如果小于如果小于m列,则左边补空格。列,则左边补空格。 %m.ns(m,n是一个正整数是一个正整数):从字符串中截取左边的:从字符串中截取左边的n个个字符(

25、不足则忽略字符(不足则忽略m的限制),输出到的限制),输出到m列上。若不足列上。若不足m列,在左边补空格。列,在左边补空格。 %-m.ns(m,n是一个正整数是一个正整数):基本同:基本同%m.ns,只是输出的,只是输出的字符串是左对齐的。字符串是左对齐的。不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/827printf函数使用函数使用#include int main(void)float radius=1.5, high=2.0; float pi=3.14159, vol;/*计算体积*/vol=pi*radius*radius*hig

26、h; /*输出体积的值*/printf(vol=%7.2fn,vol); return 0;内存radiushighvol1.52.014.14输出:vol= 14.14pi3.14159不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/828printf函数使用函数使用#include int main(void)float f1 = 100.15799, f2 = 12.55, f3 = 1.7;int n1 = 123, n2 = 45, n3 = 6; printf(printf WITHOUT width or precision sp

27、ecifications:n);printf(%fn%fn%fn, f1, f2, f3);printf(%dn%dn%dn, n1, n2, n3);printf(printf WITH width and precision specifications:n);printf(%5.2fn%6.1fn%3.0fn, f1, f2, f3);printf(%5dn%6dn%3dnn, n1, n2, n3); return 0;不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/829关于关于printf的其他说明的其他说明格式字符要区分大小写。格

28、式字符要区分大小写。不同的运行环境在实现格式输出时,输出结果可能会有一不同的运行环境在实现格式输出时,输出结果可能会有一些小的差别。例如些小的差别。例如%e格式符输出实数时,有些系统输出格式符输出实数时,有些系统输出的指数部分为的指数部分为4位(如位(如e+02)而不是)而不是5位(如位(如e+002););可以在可以在”格式控制字符串格式控制字符串”中使用中使用”转义字符转义字符”,他们将,他们将被看做普通字符。被看做普通字符。如果想输出字符如果想输出字符“%”时,则应该在时,则应该在“格式控制格式控制”字符串字符串中用连续的两个中用连续的两个%表示,例如表示,例如printf(“%f%”,

29、1.0/3);不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/830scanf函数函数scanf(%d,&num);scanf 函数从缓冲区函数从缓冲区读取读取信息,按照格式描述把读入的信息转换为指定数信息,按照格式描述把读入的信息转换为指定数据类型的数据,并把这些数据赋给指定的程序变量。据类型的数据,并把这些数据赋给指定的程序变量。 转换字符串转换字符串& &符号(附在读取的每个变量上)用于指明变量符号(附在读取的每个变量上)用于指明变量在内存中的位置在内存中的位置变量的名称变量的名称转换字符串转换字符串参数变量的类型参数变量的类型要求的实际

30、输入要求的实际输入%dint 十进制数字序列十进制数字序列 %ld long 十进制数字序列十进制数字序列%f float 十进制数,可以有小数点及指数部分十进制数,可以有小数点及指数部分 %lf double 十进制数,可以有小数点及指数部分十进制数,可以有小数点及指数部分不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/831scanf函数函数内存内存float tax_rate;scanf ( %f , &tax_rate);tax_rate 在内存中分配一块在内存中分配一块 32 位存储空间位存储空间 存储空间使用名称存储空间使用名称“t

31、ax_rate”标识标识 提示用户输入一个值提示用户输入一个值 输入的值存储在缓冲区中输入的值存储在缓冲区中 按顺序取出数值存放到存储单元中(因为按顺序取出数值存放到存储单元中(因为 scanf 提提供此变量的地址)供此变量的地址)12.234不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/832scanf函数使用函数使用#include int main(void) double radius,high,vol; printf(请输入圆柱体底面积的半径和圆柱体的高请输入圆柱体底面积的半径和圆柱体的高: : ); scanf(%lf%lf,&r

32、adius,&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不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/833C语言中,要连续输入语言中,要连续输入2个以上的数据一般用空白(即空个以上的数据一般用空白(即空

33、格、格、tab键或回车键)做为分隔符。但有的人习惯使用逗键或回车键)做为分隔符。但有的人习惯使用逗号:号: scanf(“%d,%d”,&a,&b); 输入时,应采用如下形式:输入时,应采用如下形式: 1,2(回车)(回车)如果格式控制字符串中没有出现逗号分隔符,输入时用逗如果格式控制字符串中没有出现逗号分隔符,输入时用逗号分隔也是错误的。因此,一个好的习惯是用提示信息提号分隔也是错误的。因此,一个好的习惯是用提示信息提醒用户该如何输入数据。例如醒用户该如何输入数据。例如printf(“输入用逗号分开的两个整数输入用逗号分开的两个整数n”);不向前走,不知路远;不努力学习,不明白真理不向前走,

34、不知路远;不努力学习,不明白真理2021/4/834用用“%c”输入字符时,空格、输入字符时,空格、Tab、回车及其他控制字符、回车及其他控制字符都可以做为有效字符输入。因此,对于:都可以做为有效字符输入。因此,对于: scanf(“%c%c%c”,&c1,&c2,&c3); 如果输入:如果输入: a b c(回车回车)由于由于c格式符的特殊性,使用格式符的特殊性,使用scanf时,最好不要将时,最好不要将c格式格式符与其他格式符混用,以免造成错误。符与其他格式符混用,以免造成错误。不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/835 在输入

35、数据时,遇到以下情况则认为该数据结束在输入数据时,遇到以下情况则认为该数据结束遇到空格、回车、遇到空格、回车、Tab键键以满足宽度限制,比如对于以满足宽度限制,比如对于“%5d”,只取,只取5位整数。位整数。遇到非法输入,比如遇到非法输入,比如“a”不是合法的十进制数,但是合法不是合法的十进制数,但是合法的十六进制数。的十六进制数。 scanf(“%d%c%f”,&x,&y,&z) 如果输入:如果输入: 56t8o.34 结果:结果:x=56, y=t, z=8不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/836标准标准C在在scanf函数中

36、不使用函数中不使用%u说明符,对说明符,对unsigned型型数据,以数据,以%d或或%o、%x格式输入。格式输入。输入数据不能规定精度,例如输入数据不能规定精度,例如“%8.2”的格式说明是错误的格式说明是错误的。的。可以指定输入数据所占的列数,系统自动按此列数截取数可以指定输入数据所占的列数,系统自动按此列数截取数据。据。 例如:例如:scanf(“%3d%3d”,&a,&b) 如果输入:如果输入:12345(回车)(回车) 则则 a=123 b=45 不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/837“%”后的后的“*”附加说明符,用

37、来表示跳过相应的数据。在附加说明符,用来表示跳过相应的数据。在利用现成的一批数据时,如果不需要其中的某些数据,可利用现成的一批数据时,如果不需要其中的某些数据,可以利用此方法。以利用此方法。 例如:例如:scanf(“%2d%*3d%2d”,&a,&b); 如果输入以下信息:如果输入以下信息: 12 34567(回车)(回车) 则则 a=12 b=67 第二个数据第二个数据345跳过跳过不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/838scanf函数使用函数使用#include int main(void) int a, b; printf

38、(Please input a and b:); scanf(%d%d, &a, &b); printf(a=%d, b=%d, a+b=%dn,a,b,a+b); return 0; 不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/839scanf函数使用函数使用#include int main(void) 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 inp

39、ut a and b:a=12, b=34, a+b = 4612 34 不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/840scanf函数使用函数使用#include int main(void) 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 不向前走,不知路远;不努力学习,不明

40、白真理不向前走,不知路远;不努力学习,不明白真理2021/4/841scanf函数使用函数使用#include int main(void) 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=3, a+b = 15123a 不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/842scanf函数使用函数使用#include

41、int main(void) 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 不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/843scanf函数使用函数使用#include int main(void) int a, b; printf(Please input a and b:);

42、 scanf(%2d%*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=56, a+b = 68123456 不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/844输入数据的格式控制输入数据的格式控制#include int main(void) int a, b;scanf(%d %d, &a, &b);printf(a = %d, b = %dn, a, b); return 0;问题问题1:当要求程序输出结

43、果为:当要求程序输出结果为 a = 12, b = 34时,用户应该如何输入数据?时,用户应该如何输入数据? 不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/845输入数据的格式控制输入数据的格式控制#include int main(void) int a, b;scanf(%d %d, &a, &b);printf(a = %d, b = %dn, a, b); return 0;问题问题2:当限定用户输入数据以逗号为分隔符,即输入数据:当限定用户输入数据以逗号为分隔符,即输入数据格式为:格式为: 12,34 时,应修改程序中的哪条语句?怎

44、样修改?时,应修改程序中的哪条语句?怎样修改? 不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/846输入数据的格式控制输入数据的格式控制#include int main(void) int a, b;scanf(%d %d, &a, &b);printf(a = %d, b = %dn, a, b); return 0;问题问题3:语句:语句scanf(%d %d, &a, &b);修改为修改为scanf(a = %d, b = %d, &a, &b);时,用户应该如何输入数据?时,用户应该如何输入数据?不向前走,不知路远;不努力学习,不明

45、白真理不向前走,不知路远;不努力学习,不明白真理2021/4/847输入数据的格式控制输入数据的格式控制#include int main(void) int a, b;scanf(%d %d, &a, &b);printf(a = %d, b = %dn, a, b); return 0; 问题问题4:限定用户输入数据为以下格式为:限定用户输入数据为以下格式为 1234 同时要求程序输出结果为同时要求程序输出结果为a = 12, b = 34不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/848输入数据的格式控制输入数据的格式控制#inclu

46、de int main(void) int a, b;scanf(%d %d, &a, &b);printf(a = %d, b = %dn, a, b); return 0; 问题问题5:限定用户输入数据为以下格式为:限定用户输入数据为以下格式为12 34 同时要求程序输出结果为同时要求程序输出结果为a = 12, b = 34不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/849输入数据的格式控制输入数据的格式控制#include int main(void) int a, b;scanf(%d %d, &a, &b);printf(a =

47、 %d, b = %dn, a, b); return 0;问题问题6:设计程序使得用户可以以任意字符(回车、空格、:设计程序使得用户可以以任意字符(回车、空格、制表符、逗号、其它)作为分隔符进行数据的输入制表符、逗号、其它)作为分隔符进行数据的输入 不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/850C C格式符存在的问题及其解决格式符存在的问题及其解决#include int main(void)int data1, data2;char op;printf(Please enter the expression data1 + data

48、2n);scanf(%d%c%d,&data1, &op, &data2);printf(%d%c%d = %dn, data1, op, data2, data1+data2); return 0;第第1次测试次测试不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/851C C格式符存在的问题及其解决格式符存在的问题及其解决#include int main(void)int data1, data2;char op;printf(Please enter the expression data1 + data2n);scanf(%d%c%d,

49、&data1, &op, &data2);printf(%d%c%d = %dn, data1, op, data2, data1+data2); return 0;不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/852C C格式符存在的问题及其解决格式符存在的问题及其解决#include int main(void)int data1, data2;char op;printf(Please enter the expression data1 + data2n);scanf(%d%c%d,&data1, &op, &data2);print

50、f(%d%c%d = %dn, data1, op, data2, data1+data2); return 0;不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/853C C格式符存在的问题及其解决格式符存在的问题及其解决#include int main(void) int a; char b; float c; printf(Please input an integer:); scanf(%d, &a); printf(integer: %dn, a); printf(Please input a character:); scanf(%

51、c, &b); printf(character: %cn, b); printf(Please input a float number:); scanf(%f, &c); printf(float: %fn, c); return 0;Please input an integer:12 Please input an character :a Please input a float number: 3.5 integer:12character :afloat number:3.500000不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4

52、/854C C格式符存在的问题及其解决格式符存在的问题及其解决#include int main(void) int a; char b; float c; printf(Please input an integer:); scanf(%d, &a); printf(integer: %dn, a); printf(Please input a character:); scanf(%c, &b); printf(character: %cn, b); printf(Please input a float number:); scanf(%f, &c); printf(float: %fn

53、, c); return 0;Please input an integer:12 Please input an character :Please input a float number: 3.5 integer:12float number:3.500000不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/855C C格式符存在的问题及其解决格式符存在的问题及其解决#include int main(void) int a; char b; float c; printf(Please input an integer:); scanf(

54、%d, &a); printf(integer: %dn, a); printf(Please input a character:); scanf(%c, &b); printf(character: %cn, b); printf(Please input a float number:); scanf(%f, &c); printf(float: %fn, c); return 0;不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/856C C格式符存在的问题及其解决格式符存在的问题及其解决#include int main(void) i

55、nt a; char b; float c; printf(Please input an integer:); scanf(%d, &a); printf(integer: %dn, a); printf(Please input a character:); getchar(); /*吸收掉前面输入整型数据后面键入的回车字符吸收掉前面输入整型数据后面键入的回车字符*/ scanf(%c, &b); printf(character: %cn, b); printf(Please input a float number:); scanf(%f, &c); printf(float: %fn

56、, c); return 0;Please input an integer:12 Please input an character :a Please input a float number: 3.5 integer:12character :afloat number:3.500000不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/857C C格式符存在的问题及其解决格式符存在的问题及其解决#include int main(void) int a; char b; float c; printf(Please input an int

57、eger:); scanf(%d, &a); printf(integer: %dn, a); printf(Please input a character:); scanf(%1s, &b); /*第第2种解决方案种解决方案*/ printf(character: %cn, b); printf(Please input a float number:); scanf(%f, &c); printf(float: %fn, c); return 0;不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/858以任意分隔符输入加法算式,可能吗?以任

58、意分隔符输入加法算式,可能吗?#include int main(void)int data1, data2, sum;char op; printf(Please enter the expression data1 + data2n);scanf(%d%1s%d,&data1, &op, &data2);printf(%d%c%d = %dn, data1, op, data2, data1+data2); return 0;不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/859顺序程序设计顺序程序设计由计算机向屏幕上输出一个数由计算机向屏

59、幕上输出一个数#include /包含伪随机数生成函数包含伪随机数生成函数#include /包含取系统时间的函数包含取系统时间的函数#include int main(void) srand(time(NULL); /随机数种子初始化随机数种子初始化 printf(%d,rand(); return 0;不向前走,不知路远;不努力学习,不明白真理不向前走,不知路远;不努力学习,不明白真理2021/4/860顺序程序设计顺序程序设计编写一个重量单位换算程序,输入用公斤表示的重量,然编写一个重量单位换算程序,输入用公斤表示的重量,然后程序能够转换并输出用镑和盎司表示的等效重量。后程序能够转换并输出用镑和盎司表示的等效重量。请输入重量(公斤):23转换为用磅表示的重量(磅):50.7055转换为用盎司表示的重量(盎司):811.287问题问题 如何设计变量及选择相应的数据类型?如何设计变量及选择相应的数据类型? 公斤、磅和盎司的转换公式是什么?公斤、磅和盎司的转换公式是什么?不向前走,不知路远;不努力

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论