C语言程序基础_第1页
C语言程序基础_第2页
C语言程序基础_第3页
C语言程序基础_第4页
C语言程序基础_第5页
已阅读5页,还剩108页未读 继续免费阅读

下载本文档

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

文档简介

1、济南大学信息学院C语言程序设计邢静波第1页教师教师邢静波邢静波E-mailteacher_Office12教教801室室Tele82767501QQ群群289661537 济南大学信息学院C语言程序设计邢静波第2页1. 课程综述课程综述2. 注意事项注意事项3. 编程编程:思维方式的转变,:思维方式的转变,人类人类计算机计算机4. 算法算法:程序设计的灵魂:程序设计的灵魂5. 代码代码:软件:软件VC;编辑编辑编译编译连接连接运行运行6. 本学期的授课章节本学期的授课章节济南大学信息学院C语言程序设计邢静波第3页算法与程序设计算法与程序设计 全国计算机等级考试NCRE,属于社会资格证书考试,个

2、人自愿报考,与校内学分无关。网上报名&缴费:山东省教育招生考试院http:/ 推荐本学期学习C语言后,报名参加本年度9月的二级NCREC语言济南大学信息学院C语言程序设计邢静波第4页专业专业星期星期时间时间地点地点周次周次上课上课材料材料电气电气星期三星期三1-21-2节节8:00-9:358:00-9:3511J32011-161-16周周上机上机 材料材料星期三星期三3-43-4节节10:0010:00-11:35-11:35信息信息551-22-172-17周周上机上机 电气电气星期三星期三7-87-8节节15:3015:30-17:05-17:05信息信息551-21、请提前、

3、请提前5-10分钟分钟进入机房,否则记作进入机房,否则记作迟到迟到;没有学院盖章的假条,记作没有学院盖章的假条,记作旷课旷课2、上机时间,严禁在电脑或手机上使用、上机时间,严禁在电脑或手机上使用QQ等等聊天软件,严禁聊天软件,严禁百度等百度等搜索代码搜索代码3、上机结束后,会在下次多媒体上课时,抽查同学到讲台、上机结束后,会在下次多媒体上课时,抽查同学到讲台限时限时默写程序代码默写程序代码4、下次上课,在大屏幕公布、下次上课,在大屏幕公布机器号机器号,固定座位,不可自由调换,固定座位,不可自由调换济南大学信息学院C语言程序设计邢静波第5页 上机作业包括两种形式:上机作业包括两种形式:大演草大演

4、草+网站网站u纸质作业纸质作业 准备准备1本大演草本大演草 每次上机题目会在上一节的多媒体课公布,随每次上机题目会在上一节的多媒体课公布,随 后上机课之前的一周时间里,将程序代码写在大演后上机课之前的一周时间里,将程序代码写在大演草上,带到上机课进行程序调试、运行、提交。草上,带到上机课进行程序调试、运行、提交。u网站自动打分网站自动打分9登录网站,在线提交程序代码,系统自动计分。登录网站,在线提交程序代码,系统自动计分。u备用备用ftp文件传输服务器文件传输服务器54登录账号登录账号stu 登录密码登录密码stu该服务器上提供

5、该服务器上提供VC软件、课件、复习资料下载。软件、课件、复习资料下载。济南大学信息学院C语言程序设计邢静波第6页 该网站只能在校内该网站只能在校内IP登录,比如机房、图书馆,但学生宿舍登录,比如机房、图书馆,但学生宿舍的宽带不行。的宽带不行。 可使用可使用wifi信号信号ujn,手机登录该网站。,手机登录该网站。 需注册个人信息。如实填写需注册个人信息。如实填写学号学号、真实姓名真实姓名、班级班级等信息,等信息,班级统一为班级统一为材材1513、材、材1514、电气、电气1501、电气、电气1502 登录后,在登录后,在Contest栏目下,找到本周的帖子标题,点击后栏目下,找到本周的帖子标题

6、,点击后查看题目详情,在每道题的网页里输入代码,点击提交。查看题目详情,在每道题的网页里输入代码,点击提交。【注意【注意】 该网站仅作为题目浏览、提交电子作业、计分的工具,真正该网站仅作为题目浏览、提交电子作业、计分的工具,真正C语言程序的编辑、语言程序的编辑、编译、运行的环境是编译、运行的环境是VC; 网站有自身的特殊性,某些在网站有自身的特殊性,某些在VC中能运行的代码,在网站却会报错,今后在中能运行的代码,在网站却会报错,今后在授课过程中我会给出特别提示。授课过程中我会给出特别提示。1. 上机前在大演草上手写程序代码,上机时随着调试,随手修改,下机时上交;上机前在大演草上手写程序代码,上

7、机时随着调试,随手修改,下机时上交;2. 上机时,先在上机时,先在VC中输入代码,然后编译、连接、运行;中输入代码,然后编译、连接、运行;3. VC中见到正确的运行结果后,将代码粘贴到网页,在有效期内提交;中见到正确的运行结果后,将代码粘贴到网页,在有效期内提交;济南大学信息学院C语言程序设计邢静波第7页问题:已知两个整数,求两数之和并输出。问题:已知两个整数,求两数之和并输出。开始开始a=1b=4sum=a+b输出输出sum结束结束【算法设计【算法设计】【数据设计【数据设计】整数:整数:a,b,sum【程序设计【程序设计】main() int a,b,sum; a=1; b=4; sum=a

8、+b; printf(“a+b=%dn”,sum);【运行程序【运行程序】a+b=5 本学期:本学期:学习学习C语言语法,语言语法,设计程序,解决问题设计程序,解决问题解题步骤解题步骤数据结数据结构构济南大学信息学院C语言程序设计邢静波第8页算法算法:解决问题的步骤:解决问题的步骤编码编码:算法的具体实现:算法的具体实现所有路径组合及所有路径组合及其长度其长度开始输入ns=0i=1i=n?s=s+1i=i+1输出s结束NY穷举法、贪心算法、迭代、递推、递归穷举法、贪心算法、迭代、递推、递归济南大学信息学院C语言程序设计邢静波第9页main( )+ - ! int chardoublefloat

9、济南大学信息学院C语言程序设计邢静波第10页济南大学信息学院C语言程序设计邢静波第11页 放弃人类的思维方式放弃人类的思维方式 现在开始,你拥有的是一颗现在开始,你拥有的是一颗Machine Head 那么,我来问你,那么,我来问你,65535是什么?是什么?还是还是65535吗?吗?它是它是1111111111111111 再来问你,再来问你,输出输出65535时时显示显示什么?什么?是是65535吗?吗?是是1111111111111111吗?吗?No!在在TC里,有时候是里,有时候是-1,有时候是,有时候是65535;在在VC+里,是里,是65535计算机:二进计算机:二进制制不同的数据

10、结构、数不同的数据结构、数据控制格式决定显示据控制格式决定显示结果,参见结果,参见P10表表1.1不同的软件编译不同的软件编译环境,数据范围环境,数据范围不同不同不同的数据类型不同的数据类型数据范围不同数据范围不同济南大学信息学院C语言程序设计邢静波第12页济南大学信息学院C语言程序设计邢静波第13页济南大学信息学院C语言程序设计邢静波第14页1.教材(写在书上)教材(写在书上)nP32习题一习题一1-5、8、12-13;二;二1-4、10;四四1-52.上机实验(写在大演草上)上机实验(写在大演草上)n在在VC中编辑并运行教材上的例题中编辑并运行教材上的例题【例【例1.1】【例【例1.9】(

11、例例1.7不做不做),文件名分别为文件名分别为li1_01.cli1_模仿例模仿例1.1,自己编程,输出右图倒三角形,不,自己编程,输出右图倒三角形,不允许使用循环语句,文件名为允许使用循环语句,文件名为li1_10.c 上机实验的详细内容和交电子版作业的方法,以上机实验的详细内容和交电子版作业的方法,以word文件存储在文件存储在54,请上机时先登录,请上机时先登录ftp,下载,下载word文件并按要求操作文件并按要求操作 1.4 C语言的表达式和语句语言的表达式和语句 1.3 C语言数据类型语言数据类型 1.2 C语言基本语法成分语言基本语法成分1.1 C语

12、言程序的基本结构语言程序的基本结构 1.5 C语言程序运行过程语言程序运行过程 1.8 C语言中的宏定义语言中的宏定义1.7 数据的输入数据的输入/输出输出 1.6 编写简单的编写简单的C语言程序语言程序1.10 C语言的产生、发展及特点语言的产生、发展及特点1.9 算法算法 济南大学信息学院C语言程序设计邢静波第17页济南大学信息学院C语言程序设计邢静波第18页.c源程序源程序.obj编译编译.exe程序程序【总结:【总结:C程序运行过程程序运行过程】编辑编辑 .c编译编译 .obj连接连接 .exe运行运行exe程序程序1. 源程序源程序f.cmain() int a,b,sum; a=1

13、23; b=456; sum=a+b; printf(“a+b=%dn”,sum);3. 可执行程序可执行程序f.exea+b=579 2. 目标程序目标程序f.obj济南大学信息学院C语言程序设计邢静波第19页 本学期,我们选用什么工具软件?本学期,我们选用什么工具软件?nVisual C+6.0 编辑工具只有编辑工具只有Visual C+6.0吗?吗?nNo!n常见软件常见软件Visual C+、Turbo C、Borland Cn甚至,任何一款文本编辑软件,如记事本甚至,任何一款文本编辑软件,如记事本 为什么不用记事本软件呢?为什么不用记事本软件呢?n记事本只能编辑,没有编译、运行等集成

14、环境记事本只能编辑,没有编译、运行等集成环境济南大学信息学院C语言程序设计邢静波第20页1.编辑源代码编辑源代码2.编译编译3.连接连接4.运行运行1.编辑编辑2.编译编译3.编译编译4.运行运行查看运行结果查看运行结果济南大学信息学院C语言程序设计邢静波第21页济南大学信息学院C语言程序设计邢静波第21页 勾勒框架 济南大学信息学院C语言程序设计邢静波第22页济南大学信息学院C语言程序设计邢静波第22页【例【例1.1】 请在屏幕上输出一行信息:请在屏幕上输出一行信息:This is a C program.#include void main( ) printf(This is a C pr

15、ogram.n); /* 预处理命令预处理命令 */* 定义主函数定义主函数 */* 调用输出函数,达到调用输出函数,达到输出信息的目的输出信息的目的 */济南大学信息学院C语言程序设计邢静波第23页济南大学信息学院C语言程序设计邢静波第23页【例【例1.2】计算两数之和,并输出结果。计算两数之和,并输出结果。 #include void main( ) int a,b,sum; a=123; b=456; sum=a+b; printf(sum=%dn,sum);/* 预处理命令预处理命令 */* 定义主函数定义主函数 */* 计算求和计算求和 */* 输出输出 */济南大学信息学院C语言程

16、序设计邢静波第24页济南大学信息学院C语言程序设计邢静波第24页 代码的第一行为什么写代码的第一行为什么写#include ?n#include是预处理命令,需要时可出现在代码的开始,中间,最后等是预处理命令,需要时可出现在代码的开始,中间,最后等位置,若有多条预处理命令,必须分行写。位置,若有多条预处理命令,必须分行写。P6例例1.6n也可以写为也可以写为“stdio.h”nstdio.h是是头文件头文件。因为程序中用到了输入或输出。因为程序中用到了输入或输出库函数库函数。n头文件的种类很多。例如,若程序中用到了字符函数,就要写头文件的种类很多。例如,若程序中用到了字符函数,就要写#incl

17、ude 。P127例例4.8。详情参见附录详情参见附录A 哪些代码是必须写的?哪些代码是必须写的?void main() 语句的结束标志?语句的结束标志?; 注释语句怎么写?注释语句怎么写?n/* */ 可以分成多行写注释可以分成多行写注释n/ 不可分行,一般写在语句后面不可分行,一般写在语句后面例例1.1,无变量声明,无数据输入,无各种计算,无变量声明,无数据输入,无各种计算例例1.2,无数据输入,无数据输入教材例教材例1.1-1.3,分别用了两种注释写法,分别用了两种注释写法济南大学信息学院C语言程序设计邢静波第25页济南大学信息学院C语言程序设计邢静波第25页1. 函数函数是是C语言程序

18、的基本单位语言程序的基本单位2. main函数函数3. 函数的结构函数的结构4. 书写风格书写风格5. 输入输入/输出输出6. 注释注释7. 预处理命令预处理命令【C语言程序的基本结构语言程序的基本结构】#预处理命令预处理命令void main() 声明部分声明部分 执行部分执行部分其它函数其它函数 声明部分声明部分 执行部分执行部分济南大学信息学院C语言程序设计邢静波第26页济南大学信息学院C语言程序设计邢静波第26页例例1.3输入两整数,输出较大的数。输入两整数,输出较大的数。#include int max(int x, int y) /*自定义函数自定义函数*/ int z; if (

19、xy) z=x; else z=y; return z;void main() /*主函数主函数*/ int a,b,c; scanf(“%d%d”,&a,&b); c=max(a,b); printf(“max=%dn”,c);济南大学信息学院C语言程序设计邢静波第27页济南大学信息学院C语言程序设计邢静波第27页例例1.3输入两整数,输出较大的数。输入两整数,输出较大的数。#include int max(int x, int y) /*自定义函数自定义函数*/ int z; if (xy) z=x; else z=y; return z;void main() /*主函数

20、主函数*/ int a,b,c; scanf(“%d%d”,&a,&b); c=max(a,b); printf(“max=%dn”,c);开始输入a,bc=max(a,b)输出c结束济南大学信息学院C语言程序设计邢静波第28页济南大学信息学院C语言程序设计邢静波第28页例例1.3输入两整数,输出较大的数。输入两整数,输出较大的数。#include int max(int x, int y) /*自定义函数自定义函数*/ int z; if (xy) z=x; else z=y; return z;void main() /*主函数主函数*/ int a,b,c; scanf(

21、“%d%d”,&a,&b); c=max(a,b); printf(“max=%dn”,c);int max(int x, int y) 济南大学信息学院C语言程序设计邢静波第29页济南大学信息学院C语言程序设计邢静波第29页例例1.3输入两整数,输出较大的数。输入两整数,输出较大的数。#include int max(int x, int y) /*自定义函数自定义函数*/ int z; if (xy) z=x; else z=y; return z;void main() /*主函数主函数*/ int a,b,c; scanf(“%d%d”,&a,&b);

22、c=max(a,b); printf(“max=%dn”,c);济南大学信息学院C语言程序设计邢静波第30页济南大学信息学院C语言程序设计邢静波第30页【例【例1.4】 计算圆的周长和面积。计算圆的周长和面积。【例【例1.5】已知】已知a=5,b=10,试交换,试交换a、b的值并输出。的值并输出。 【例【例1.6】计算圆柱体的表面积。】计算圆柱体的表面积。 略,请同学们上机时间自己练习略,请同学们上机时间自己练习 注意区分各种大小写,以及相似符号注意区分各种大小写,以及相似符号l和和1,z和和2,o和和0,请利用学习的,请利用学习的C语言的基本语法判断语言的基本语法判断济南大学信息学院C语言程

23、序设计邢静波第31页济南大学信息学院C语言程序设计邢静波第31页 需要需要!nC语言中的基本语法和语句,需要语言中的基本语法和语句,需要“背背” 不需要!不需要!n在掌握基础的前提下,要想实现程序设计,靠在掌握基础的前提下,要想实现程序设计,靠“背背”,后果只有一个字:惨!,后果只有一个字:惨!n程序设计的精髓:算法设计;同一个问题可以有程序设计的精髓:算法设计;同一个问题可以有不同的算法。不同的算法。n程序设计的实现:编写代码;同一个结构可以用程序设计的实现:编写代码;同一个结构可以用不同语句实现。不同语句实现。济南大学信息学院C语言程序设计邢静波第32页济南大学信息学院C语言程序设计邢静波

24、第32页基础的基础济南大学信息学院C语言程序设计邢静波第33页济南大学信息学院C语言程序设计邢静波第33页C程序由下列字符所组成的字符集写成:程序由下列字符所组成的字符集写成: 字母:字母:AZ,az 数字:数字:09 标点符号、特殊字符:标点符号、特殊字符:! # % & + - * / = | . , ; : ? “ ( ) 空白符:空白符:空格空格,制表符制表符(Tab,跳格健),跳格健),换行符换行符(空行)的总称。(空行)的总称。 济南大学信息学院C语言程序设计邢静波第34页济南大学信息学院C语言程序设计邢静波第34页 标识符标识符:用来标识变量名、符号常量名、函数名、数组名

25、、:用来标识变量名、符号常量名、函数名、数组名、类型名等实体(程序对象)的有效字符序列。类型名等实体(程序对象)的有效字符序列。标识符由用户标识符由用户定义。定义。 C语言标识符的定义规则:语言标识符的定义规则: 定义标识符应遵循的原则定义标识符应遵循的原则济南大学信息学院C语言程序设计邢静波第35页济南大学信息学院C语言程序设计邢静波第35页 关键字关键字:也叫:也叫保留字保留字,共,共32个,是由个,是由C语言预先定语言预先定义、具有特定意义的标识符。义、具有特定意义的标识符。C语言的关键字都小写语言的关键字都小写不能把关键字定义为一般的标识符不能把关键字定义为一般的标识符济南大学信息学院

26、C语言程序设计邢静波第36页济南大学信息学院C语言程序设计邢静波第36页赋值赋值运算符运算符=赋值赋值表达式表达式a=3赋值赋值语句语句a=3;济南大学信息学院C语言程序设计邢静波第37页济南大学信息学院C语言程序设计邢静波第37页济南大学信息学院C语言程序设计邢静波第38页济南大学信息学院C语言程序设计邢静波第38页 :+、-、*、/、% :、=、= =、!= :!、&、| 位运算符:位运算符:、|、& :=及及 :? : : , 指针和地址运算符:指针和地址运算符:*、& 求字节运算符:求字节运算符:sizeof 分量运算符:分量运算符:.、- 下标运算符:下标运算

27、符: 强制类型转换运算符:强制类型转换运算符:(类型类型) 其他:其他:如函数调用运算符如函数调用运算符( ) 济南大学信息学院C语言程序设计邢静波第39页济南大学信息学院C语言程序设计邢静波第39页济南大学信息学院C语言程序设计邢静波第40页济南大学信息学院C语言程序设计邢静波第40页济南大学信息学院C语言程序设计邢静波第41页济南大学信息学院C语言程序设计邢静波第41页济南大学信息学院C语言程序设计邢静波第42页济南大学信息学院C语言程序设计邢静波第42页济南大学信息学院C语言程序设计邢静波第43页济南大学信息学院C语言程序设计邢静波第43页济南大学信息学院C语言程序设计邢静波第44页济南

28、大学信息学院C语言程序设计邢静波第44页济南大学信息学院C语言程序设计邢静波第45页济南大学信息学院C语言程序设计邢静波第45页济南大学信息学院C语言程序设计邢静波第46页济南大学信息学院C语言程序设计邢静波第46页济南大学信息学院C语言程序设计邢静波第47页济南大学信息学院C语言程序设计邢静波第47页: 济南大学信息学院C语言程序设计邢静波第48页济南大学信息学院C语言程序设计邢静波第48页济南大学信息学院C语言程序设计邢静波第49页济南大学信息学院C语言程序设计邢静波第49页济南大学信息学院C语言程序设计邢静波第50页济南大学信息学院C语言程序设计邢静波第50页济南大学信息学院C语言程序设

29、计邢静波第51页济南大学信息学院C语言程序设计邢静波第51页济南大学信息学院C语言程序设计邢静波第52页 函数 有且至少有一个main() 函数首行、函数体 程序从main()开始,main()结束 标示符 起名规则 关键字 32个 运算符 算数运算符+ - * / % 关系运算符 = = 0),见教材见教材P42一般写为一般写为if(x1e-6) 若想表达若想表达if(x=0),一般写为一般写为if(xb) ;4.复合语句复合语句lint a,b ;a=1;b=2; int t; t=a;a=b;b=t;济南大学信息学院C语言程序设计邢静波第81页济南大学信息学院C语言程序设计邢静波第81页

30、济南大学信息学院C语言程序设计邢静波第82页济南大学信息学院C语言程序设计邢静波第82页济南大学信息学院C语言程序设计邢静波第83页济南大学信息学院C语言程序设计邢静波第83页eg305.c定义定义float x;决定决定x始终是实型始终是实型仅在仅在(int)x处,临时强制转换处,临时强制转换成成int类型参与运算类型参与运算济南大学信息学院C语言程序设计邢静波第84页 定义变量的定义变量的数据类型错误数据类型错误 %格式符格式符使用不当使用不当(1、与题意不符;、与题意不符;2、与数据类型不符)、与数据类型不符) scanf()中中少少&,printf()中中多多& 例:计

31、算例:计算三个实数三个实数的的平均值平均值nint a,b,c,ave;nscanf(“%d%d%d”,&a,&b, c);nprintf(“%d”,&ave); 正确写法:计算正确写法:计算三个实数三个实数的的平均值平均值nfloat a,b,c,ave;nscanf(“%f%f%f”,&a,&b, &c);nprintf(“%f”, ave);济南大学信息学院C语言程序设计邢静波第85页 依赖网络搜索来的依赖网络搜索来的“答案答案” 未耐心读题,输入输出结果与未耐心读题,输入输出结果与题目要求不符题目要求不符题目页提示格式题目页提示格式代码页

32、提示格式:代码页提示格式:济南大学信息学院C语言程序设计邢静波第86页济南大学信息学院C语言程序设计邢静波第86页济南大学信息学院C语言程序设计邢静波第87页济南大学信息学院C语言程序设计邢静波第87页济南大学信息学院C语言程序设计邢静波第88页济南大学信息学院C语言程序设计邢静波第88页济南大学信息学院C语言程序设计邢静波第89页济南大学信息学院C语言程序设计邢静波第89页为得到正确的变量值,必须严格为得到正确的变量值,必须严格按照按照scanf()中格式符输入;中格式符输入;代码中代码中printf()的格式符决定最的格式符决定最终输出效果终输出效果济南大学信息学院C语言程序设计邢静波第9

33、0页济南大学信息学院C语言程序设计邢静波第90页济南大学信息学院C语言程序设计邢静波第91页济南大学信息学院C语言程序设计邢静波第91页例:已知例:已知int a=123; printf(“a=%5dn”,a);printf(“a=%2dn”,a);printf(“a=%-5X.n”,a);例:例:printf(“str=%.3s”,“Computer”); printf(“str=%3s”,“Computer”); 例:已知例:已知float x=12.345; double y=2.4; printf(“x=%7.2fn”,x); printf(“x=%.2fn”,x); printf(“

34、y=%-5.2lf.n”,y); 济南大学信息学院C语言程序设计邢静波第92页 “%md”,输出整数,占屏幕,输出整数,占屏幕m列列n例例%5d,输出整数占屏幕,输出整数占屏幕5列,列,前前面补空格面补空格n例例%-5d,占,占5列,数据左对齐,即在列,数据左对齐,即在后后面补空格面补空格n若若m小于小于整数实际宽度,则整数实际宽度,则m失效失效 “%m.nf”,输出实数,共占屏幕,输出实数,共占屏幕m列,其中保留列,其中保留n位小数位小数n例例%7.2f,实数占,实数占7列,列,前前面补空格面补空格,若若7小于小于实数实际宽度,则实数实际宽度,则7失效失效n例例%-7.2f,占,占7列,数据

35、左对齐,即在列,数据左对齐,即在后后面补空格面补空格n例例%lf,double型实数需加字母型实数需加字母l “%d”和和“%f”,整型和实型不可混用。,整型和实型不可混用。(编译不报错编译不报错) “%mc”,输出字符,占屏幕,输出字符,占屏幕m列列n例例%3c,字符前补,字符前补2空格,共占空格,共占3列列 “%m.ns”,截取前,截取前n个字符输出字符串,占屏幕个字符输出字符串,占屏幕m列,不足则列,不足则在前面补空格在前面补空格n例例%7.2s,截取前,截取前2个字符输出串,共占个字符输出串,共占7列屏幕,列屏幕,前前面补空格,若面补空格,若7小于小于串的实串的实际宽度,则际宽度,则7

36、失效失效 “%” 要与后面参数一一对应,否则输出异常。要与后面参数一一对应,否则输出异常。(编译不报错)(编译不报错)n例例printf(“%d,%d,%d”,1,2); 输出结果输出结果1,2,2367460(异常值)(异常值)济南大学信息学院C语言程序设计邢静波第93页 “%”,输出一个,输出一个%n例例printf(“%d%”,75); 结果为结果为75% “%0md”,输出整数占屏幕,输出整数占屏幕m列列,以以0补空位补空位n例例printf(“%05d”,3); 不是补空格,而是补不是补空格,而是补0,结果为,结果为00003 “%f”、“%e”、“%g”均可输出实数均可输出实数n例

37、已知例已知float x=12.345;nprintf(“x=%f”,x); 结果为结果为x=12.345000 (默认小数(默认小数6位,共占位,共占9列)列)nprintf(“x=%e”,x); 结果为结果为x=1.234500e+001 (默认(默认6位,共占位,共占13列)列)nprintf(“x=%g”,x); 结果为结果为x=12.345 (取前两者中(取前两者中较短较短%f,小数位无,小数位无0)n例已知例已知float x=1000000;nprintf(“x=%f”,x); 结果为结果为x=1000000.000000 (共占(共占14列)列)nprintf(“x=%e”,x

38、); 结果为结果为x=1.000000e+006 (共占(共占13列)列)nprintf(“x=%g”,x); 结果为结果为x=1e+006 (取前两者中(取前两者中较短较短%e,小数位无,小数位无0) “%d”和和“%u”,正数可混用,负数不可用,正数可混用,负数不可用%un例例int x=3; printf(“%u”,x); 可以可以n例例unsigned int x=3; printf(“%d”,x); 可以可以n例例int x=-3; printf(“%u”,x); 输出结果不正确。编译不报错。输出结果不正确。编译不报错。济南大学信息学院C语言程序设计邢静波第94页 例:输出图形例:输

39、出图形法法3:前面有:前面有%,后面串做参数,指定列宽代替空格,后面串做参数,指定列宽代替空格printf(%3sn,*);printf(%3sn,*);printf(%3sn,*);法法2:前面有:前面有%,后面串做参数,空格摆图形,后面串做参数,空格摆图形printf(“ %sn,*);printf(“ %sn,*);printf(%sn,*);法法1:前面无:前面无%,后面无参数,后面无参数printf(“ *n);printf(“ *n);printf(“*n);济南大学信息学院C语言程序设计邢静波第95页 例:输出九九乘法表例:输出九九乘法表核心输出:运算式核心输出:运算式 i*j=

40、kprintf(%d*%d=%-3d,i,j,k);济南大学信息学院C语言程序设计邢静波第96页 若有若有“float x=123.41; printf(“%4.2f”,x);”,则执,则执行后的输出结果为(行后的输出结果为( )。)。A)12.3 B)12.34C)123.4D)123.41 执行执行“printf (“%f%”,1.0/3);” 语句后,正确输出语句后,正确输出结果是(结果是( )。)。A)0.3B)0.333333% C)0.3% D)0.003% printf(“%cn”,”a”);的执行结果是的执行结果是( )A)aB)”a”C)a D)不确定)不确定济南大学信息学院

41、C语言程序设计邢静波第97页 敲键盘:敲键盘: “回车回车”结束输入结束输入 内存中:按内存中:按scanf()中中%格式符,读取放入内存。格式符,读取放入内存。多余的扔掉多余的扔掉n例例 济南大学信息学院C语言程序设计邢静波第98页济南大学信息学院C语言程序设计邢静波第98页例例10:已知:已知int a,b; char c;scanf(“%d%d%d”,&a,&b,&c);printf(“a=%d,b=%d,c=%dn”,a,b,c);错误的输入格式:错误的输入格式:1)3,4,5 2)a=3,b=4,c=5 附加输入格式:附加输入格式:scanf(“%3d”,&a

42、mp;x);济南大学信息学院C语言程序设计邢静波第99页 格式中格式中无间格无间格,实际输入时用什么间隔呢?,实际输入时用什么间隔呢?n仅限仅限int、float(double)、字符串、字符串nchar字符型不适用该规则字符型不适用该规则n默认间隔符:默认间隔符:1)空格)空格 2)回车)回车 3)制表键)制表键Tabn例如例如scanf(“%d%f%d”,&a,&b,&c); 实际输入实际输入1 2.5 3 格式中有任何格式中有任何非非%字符字符,实际输入时,实际输入时原样保留原样保留n例例scanf(“%d,%f,%d”,&a,&b,&c)

43、; 实际输入实际输入1, 2.5, 3 n例例scanf(“a=%d,b=%f,c=%d”,&a,&b,&c); 实际输入实际输入a=1,b=2.5,c=3 “%md”、“%mf”、“%mc”、“%ms”,读取前,读取前m列放入内列放入内存变量存变量nscanf(“%2d%3d”, &a,&b); 若输入若输入12345678 ,则,则a为为12,b为为345(多余多余678扔掉扔掉)nscanf(“%1f%3f”, &a,&b); 若输入若输入1.2345 ,则,则a为为1.0,b为为.23(多余多余45扔掉扔掉)nscanf(“%2c

44、%3c”, &c1,&c2);若输入若输入abcdef ,则,则c1为为a,c2为为c(多余多余 f扔掉扔掉)nscanf(“%s%3s”, &s1,&s2);若输入若输入Oh Mamma Mia! ,则,则s1为为“Oh”(空格起了间隔作空格起了间隔作用用),s2为为“Mam”(截取前截取前3列读入,多余的列读入,多余的ma Mia!扔掉扔掉) “%*md”、“%*mc”,抑制,抑制/跳过跳过m列列不放入不放入内存变量内存变量nscanf(“%2d%*2d%3d”, &a,&b); 若输入若输入12345678 ,则,则a为为12,b为为567

45、(跳过跳过34多余多余8扔掉扔掉)nscanf(“%2c%*2c%3c”, &c1,&c2); 若输入若输入abcdefgh ,则,则c1为为a,c2为为e(跳过跳过cd多余多余h扔掉扔掉)济南大学信息学院C语言程序设计邢静波第100页 不可不可规定实数的输入精度规定实数的输入精度n“%.nf”只适用于只适用于printf(),控制输出的精度,控制输出的精度nscanf()中不规定精度中不规定精度n(编译不报错)(编译不报错) “%d”和和“%u”,正负数均可混用输入,但输出不可混用,正负数均可混用输入,但输出不可混用n例例int x; scanf(“%u”,&x);

46、printf(“%u”,x); 输出负数不可以输出负数不可以 “%c”对应的字符可以是空格、回车、转义符号对应的字符可以是空格、回车、转义符号n例例scanf(“%c%c%c”,&c1,&c2,&c3); 若输入若输入a b c ,则则c1是是a,c2是是,c3是是b若输入若输入A B C ,则则c1是是a,c2是是n ,c3是是b scanf()中的格式越简单越好!中的格式越简单越好!(一般不包括非(一般不包括非%字符)字符) printf()中的格式越复杂越好!中的格式越复杂越好!济南大学信息学院C语言程序设计邢静波第101页 连续读入数据时,怎样逐个识别并读入内存

47、变量中呢?连续读入数据时,怎样逐个识别并读入内存变量中呢?1.默认间隔符:默认间隔符:空格空格/回车回车/Tabn只适用于整型只适用于整型/实型实型/字符串,字符型不适用字符串,字符型不适用n例例scanf(“%d%f”,&a,&b); 键盘输入键盘输入1 2 或或1 2 或或1(Tab键键) 2 均可均可实际读入变量实际读入变量a得得1,变量,变量b得得2.02.指定间隔符:指定间隔符:非非%符号符号n例例scanf(“%d,%f”,&a,&b); 键盘输入键盘输入1,2 ,实际读入变量实际读入变量a得得1,变量,变量b得得2.0键盘输入键盘输入1 2 ,实际

48、读入变量实际读入变量a得得1,变量,变量b得得-858993460(异常值异常值)3.满足域宽:满足域宽:%md、%mf、%mc、%msn例例scanf(“%2d%f”,&a,&b); 键盘输入键盘输入876 543.0 ,实际读入变量,实际读入变量a得得87,变量,变量b得得6.04.遇到非法字符遇到非法字符n例例scanf(“%d%c%f”,&a,&c,&b); 键盘输入键盘输入1234a123o.26 ,实际读入,实际读入a得得1234,c得得a,b得得123.0济南大学信息学院C语言程序设计邢静波第102页 已知变量已知变量 a 和和 b 是是

49、int 型,若有语句型,若有语句“scanf(“a=%d,b=%d”,&a,&b);”,使使 a 的值的值是是 5,b 的值是的值是8,则正确的输入是(,则正确的输入是( )。)。A)58 B)5,8 C)a=5b=8 D)a=5,b=8 若有定义若有定义“int a; float b;”,执行,执行“scanf(”%3d%f“,&a,&b);”语句时,从键盘输语句时,从键盘输入:入:1234567.8 ,则,则 a 和和 b 的值分别是的值分别是( )。)。A)1234 和和 567.800000B)123 和和 567.800000C)123 和和 4.000000D)234 和和 567.800000济南大学信息学院C语言程序设计邢静波第103页济南大学信息学院C语言程序设计邢静波第103页济南大学信息学院C语言程序设计邢

温馨提示

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

评论

0/150

提交评论