




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计教学要求教学目标C语言入门经典(第4版),清华大学出版社掌握计算机求解问题的基本思维方法掌握高级语言程序设计的基本知识掌握计算机软件设计与实现的基本方法具备计算机解决实际问题的能力和基本程序设计和调试的能力。思维知识方法能力HowtoThink
LikeComputerScientistHowtoprogramLikeComputerScientist教学要求教材谭浩强C程序设计(第四版),清华大学出版社
参考C语言入门经典(第4版),清华大学出版社C语言入门经典(第4版),清华大学出版社作业课后作业独立完成,准备笔记本记录出现的错误,以及解决办法。上机上课地点:单周下午5、6节,实验A楼317机房考试平时参与5%+实践作业20%+期中考试15%+期末笔试60%第一章.概述第二章.算法第三章.数据类型、运算符、表达式、语句、顺序结构第四章.选择结构第五章.循环结构第六章.数组第七章.函数第八章.指针第九章.结构体第十章.文件课程目录第1周第1章概述第2周第2章
算法第3周第3章数据类型、运算符第4周表达式、顺序结构第5周
第4章选择结构第6周
第5章循环结构第7周
第6章数组(1)第8周
第6章数组(2)第9周
第7章函数(1)第10周
第7章函数(2)教学计划第11周期中考试第12周习题讲解第13章指针(1)第14周第8章指针(2)第15周第9章结构体(1)第16周第9章结构体(2)第17周第10章文件第18周上机考试第19周期末考试教学计划绪论C语言发展C语言基础问题1.你了解计算机吗?为什么计算机也被俗称为“电脑”?期望计算机有朝一日想人脑一样聪明让机器像人一样思考,一直是人类的梦想很多科幻故事描绘了计算机真正成为电脑的景象变形金刚AI人工智能里探讨人类与机器的感情终结者:计算机消灭人类黑客帝国问题2.谁是人工智能之父?阿兰图灵现代计算机科学之父和人工智能之父的英国数学家,1950发表题为的论文“ComputeingMachineryandIntelligence”的论文,首次提出“机器思考”的概念,并从“机器能否思考”质疑问题出发,提出了一个判断机器是否具有智能的测试标准——“图灵测试”(TuringTesting)。问题3.什么是图灵测试?图灵提出的一种判断机器是否具有智能的标准(方法):测试人在不接触被测试者(一个人和一台机器)的情况下,通过一些终端设备(键盘)想被测试者提问。如何判断这台机器通过了测试,具有与人类相当的智能?如果在相当长时间内,他无法根据这些问题判断对方是人还是计算机,如果被测试者超过30%的答复不能使测试人确认出哪个是人、哪个是机器的回答,那么这台机器就通过了测试,并被认为具有人类智能。.即这台计算机是能思维的。这就是著名的“图灵测试”(TuringTesting)。图灵预言,在20世纪末,一定会有电脑通过“图灵测试”。问题3.什么是图灵测试?图灵测试2014的举办方英国雷丁大学发布宣称俄罗斯人弗拉基米尔·维西罗夫(VladimirVeselov)创立的人工智能软件尤金•古斯特曼(EugeneGoostman)通过了图灵测试。模仿的是一位13岁的男孩。在图灵测试2012上,尤金就获得了第一名,当时的成绩是29.2%2014年举行的共有5台超级计算机参赛的图灵测试竞赛上,尤金设法让33%的测试者相信它是人类。这意味着这台超级计算机通过了图灵测试。问题4.什么是人工智能?人工智能就是用机器模拟人类的智能活动。博弈(GamePlaying)例如:1996年,世界国际象棋大师卡斯帕罗夫与被称为“深蓝”的IBM超级计算机对决。虽然他最终赢得了这场国际象棋比赛,但“深蓝”计算机也赢得了一局,这是电脑系统首次在世界锦标赛中战胜世界冠军。1997年一台每秒可计算2亿步棋的升级版“深蓝”计算机成功地打败了卡斯帕罗夫。被誉为AI的一大胜利。
奥秘:高速的检索演算能力及海量的存储能力(200万棋谱)问题4.什么是人工智能?目前的人工智能距离人类级的人工智能还很比较遥远。AI的先驱之一美国CMU的西蒙说:最令他惊奇的是人类认为难得计算机认为简单的事情,对人类较难,对人类感觉较容易的事情,对计算机感觉很难。例如:2011年,IBM研制“沃森”(Watson)能以每秒翻100完本书的速度从其存储的2亿也百科全书,字典,文学作品中搜索答案——人类望尘莫及。参加人机智力大赛节目获胜。然而计算机能理解一个五岁儿童的故事?
问题5.什么是计算机系统?一种按照事先存储的程序自动、高效地对数据进行输入、处理、存储和输出的系统。问题6.什么是硬件?计算机系统中所有实体部件和设备的统称。中央处理器、存储和输入输出设备等核心部件组成。在软件的配合下完成输入、处理、存储和输出等基本操作。计算机是用来延伸人的能力的工具。眼睛、耳朵,大脑。问题7.什么是软件?软件分为:系统软件——为使用计算机提供最基本的功能。操作系统是用户与计算机硬件系统之间的接口,管理计算机新系统的各种软、硬件资源,使得他们可以协调工作,位于最内层支撑软件——环境数据库、接口软件和工具软件应用软件——直接面向特定应用软件图像处理、文字处理、计算机动画、CAD。人驾驭计算机的手段之一是编写软件(OS,Office,IE)问题8.软件与硬件的关系是什么?硬件——计算机的驱壳和肉体软件——计算机的灵魂和思想软件促进了计算机从裸机到计算机系统的进化,二者互相依存互相促进,缺一不可。问题9.程序和软件有区别吗?程序(Program)
为了实现特定目标或解决具体问题而用计算机语言编辑的指令的集合。程序是软件的全部吗?软件=程序+数据+文档厨师
软件开发人员烹饪方法
软件中的程序菜谱
软件的文档食材
软件中的数据整个烹饪过程
软件的实现过程问题10:人与计算机交流用什么语言?
如果想周游世界的旅行家,那么你大概需要学习6912中语言说:“你好,厕所在哪里?”让计算机像人一样思考,与人自然交流一直是计算机行业的梦想,如果计算机能读懂人的自然语言,那么….。计算机学会人的语言,与人自然交流——自然语言理解(NaturalLanguageUnderstanding)尽管自然语言理解技术得到了长足的发展,但目前人机交互(Human-ComputerCommunication)几乎还只能使用严格限制的各种非自然语言,即计算机专用的语言人类只能主动学习计算机的语言,做不到计算机学会人的语言。问题11:计算机能读懂什么语言?计算机只能识别二进制指令机器语言(MachineLanguage)
用一系列二进制0和1组成的二进制代码代表不同的机器指令。
用机器语言编写的一组机器指令的集合,称为机器代码(MachineCode),简称机器码。问题12:如何让程序员远离二进制?Bothlearnathird-partylanguage用助记符代表机器指令的操作码MOVAX,1ADDAX,1
需要汇编器将这些符号翻译成机器可以识别、可执行的二进制指令——称为汇编过程。汇编语言(AssemblyLanguage)
低级语言,与计算机硬件的距离的级别较低,对硬件依赖性强,不同硬件所需要的汇编语言不同,可移植性差。
ADDR01,R02
问题13:如何实现更有效的人机交流可以在一个更高级别上进行编程,不再面向机器,而是面向问题更远离机器语言,不像低级语言那样依赖于硬件更易学,易用,具有可移植性须翻译成机器语言的目标程序以更接近于人们的自然语言和数学公式编写程序的语言,如BASIC、FORTRAN、C语言等。概念特点高级语言是为软件开发(程序设计)者使用的语言,而计算机并不能直接地接受和执行用高级语言编写的源程序,源程序在输入计算机时,通过"翻译程序"翻译成机器语言形式的目标程序,计算机才能识别和执行。高级语言
高级语言程序机器语言程序编译软件(compiler)问题14:如何将高级语言翻译成机器语言?问题14:如何将高级语言翻译成机器语言?有些解释语言(如Java和C#)高级语言的发展历程1954年的约翰.巴克斯发明第一个高级语言FORTRAN百家争鸣,据不完全统计2500种。影响最大,寿命最强的非C语言莫属学习其他语言的基础。高级语言的发展历程适合的就是最好的高级语言的分类过程式语言
命令驱动,面向动作(语句),即将计算机看做是动作(语句)的序列,程序由一系列的语句组成。C语言,Pascal。函数式语言
注重程序实现的功能,程序的编写过程是从已有的函数出发构造出更复杂的函数。应用这些函数直至计算求得最终结果。LISP。面向对象语言
程序编写过程是直接从问题本身出发分析问题,并把数据和操作封装在一起构成对象,用数据描述对象属性,用对数据的操作描述对象行为。SmallTalk,C++,Java逻辑式语言(Logical)
基于规则的具有推理功能的语言。PROLOG问题15.C语言从何而来?KenThompsonDennisM.Ritchie问题15.C语言从何而来?1969年,ken梦想能遨游宇宙,设计了一款模拟在太阳系航行的电子游戏“SpaceTravel”开始……为了让他的游戏能在PDP-7上运行,Ken用汇编语言给PDP-7写了一个操作系统——UNIX。汇编太不好用了,Thompson需要高级语言。试验了一些高级语言,包括Fortran,都不理想他在BCPL基础上,自己设计了一个B语言。dmr改造了B语言,设计了一种新的高级语言,命名为“C语言”,把UNIX90%以上的代码用C改写。问题15.C语言从何而来?1983年,因为UNIX和C语言的巨大成就,ken和dmr共同获得了当年度的计算机最高奖——图灵奖1999年又因Unix被授予美国国家技术勋章问题16.C语言的标准是什么?C语言标准1978年,
BrianKemighan和Denis
Ritchie出版了被称为C语言白皮书的《TheCProgrammingLanguage》,给出了C语言的详细定义。1982年,美国国家标准协会(ANSI)认识到标准化将有助于C语言在商业化编程中的普及,因此成立了一个委员会来为C语言及其运行库制定标准。1989年,ANSI发布了一个完整的C语言标准,简称C89。1995年,对C语言标准作更大的修订,简称C99。问题17.为什么要学C语言?虽然是一种高级语言,并不“高级”,只是相对于低级语言在一个高的级别上进行编程实际上是一种结余高级语言和低级语言之间的语言,运行效率高。透过现象看本质,透过C语言窥探计算机底层的工作原理很多流行语言,新生语言都借鉴了它的思想、语法。从C++到Java再到C#。学好C语言是学习这些流行语言的基础,了解程序设计的基本思想。交流笔试面试最常见的语言。C语言的特点简洁、紧凑,使用方便、灵活1运算符和数据类型丰富2完全模块化和结构化4生成目标代码质量高5可移植性好6允许物理地址访问直接操作硬件3C语言本身既有一般高级语言的特点,又有低级语言(汇编语言)的特点,也叫中级语言。C的理念信任程序员不要阻止程序员做他认为应该做的事保持语言的精巧和简单一定要快,哪怕那么做是不可移植的问题18.C语言适合哪些应用?编写操作系统和基础工具对运行效率要求较高的系统设备驱动程序,高性能、实时中间件,嵌入式领域,并发程序设计等工业机器人,家用机器人,智能手机和智能家电等。继承和维护已有的C代码问题19.程序在计算机内部是如何运行的?“冯·诺依曼”体系结构
输入/输出设备存储器运算器控制器指令序列(程序)和输入数据输出结果取出数据存入数据操作命令存取命令取出程序指令输入输出命令计算结果CPU程序和数据硬盘CPU内存执行结果PC(程序计数器)编译链接运行编辑程序代码的录入,生成源程序*.c语法分析查错,翻译生成目标程序*.obj与其它目标程序或者库链接装配,生成可执行程序*.exe目标程序的执行,需要操作系统的支持。因此会有Dos,Windows,Linux等不同版本。源程序目标程序可执行程序内容程序语言机器语言机器语言可执行不可以不可以可以文件名后缀.c.obj.exe问题20.程序的开发步骤?问题21.计算机、程序员、程序之间的关系?程序员(Programmer):编写程序源代码的人。计算机
程序员
程序乐队
指挥家
乐谱军队
总司令
作战计划问题22.如何学好C语言师傅领进门不断练习不畏难持之以恒绪论C语言发展C语言基础C语言的关键字(32个)
autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhile
关键字:由系统定义,不能重做其他用处C语言的运算符(34种)算术运算符:+-*/%++--关系运算符:><==>=<=
!=逻辑运算符:!&&||位运算符:<<>>~|^&赋值运算符:=及其扩展条件运算符:?:逗号运算符:,指针运算符:*&求字节数:sizeof强制类型转换:(类型)如:(int)成员运算符:.->下标运算符:[]其他:()-C语言的数据类型关键字、函数、控制结构、数据类型是C语言的基本要素。C程序是有这些要素及变量按照一定规则组成的函数的集合。……高级语言程序编译程序2编译程序1编译程序n机器1机器2机器n机器语言程序1机器语言程序2机器语言程序n…………
高级语言的可移植性C语言的特点C语言的结构化程序设计C语言软件设计过程中采用自顶向下、逐步求精的模块化程序设计方法。模块用函数实现。1使用3种基本控制结构构造程序,任何程序都可以由顺序、选择、重复三种基本控制结构来构造。2有9种控制语句3条件判断:if()else循环:for();while();do()while;continue;break;分支控制:switch转移:goto返回:return简单的C程序介绍#include<stdio.h>intmain(){puts(“hello,world!");return0;}输出结果为:
hello,world!包含标准头文件函数返回类型主函数名函数体标准库函数""字符串;语句结束函数返回语句例1.1hello,world!程序自由的书写格式#include<stdio.h>intmain(){puts("hello,world");return0;}但是大小写是有区别的!casesensitive重要提示使用库函数时必须包含相应的头文件!另一种输出方法#include<stdio.h>intmain(){printf(“hello,world!\n");return0;}又一个标准库函数换行控制字符例1.1hello,world!程序简单的C程序介绍#include<stdio.h>intmain(){inta,b,sum;/*这是说明部分,用来定义变量*/a=123;//以下为执行语句,告诉计算机做什么
b=456;sum=a+b;printf("sumis%d\n",sum);return0;}输出结果为:
sumis579给定变量的数据类型给变量赋值加法运算%d输出格式控制/**///注解例1.2求两个整数的加法另一种写法#include<stdio.h>intmain(){printf("sumis%d\n",123+456);return0;}输出结果为:
sumis579
例1.2求两个整数的加法另一种写法#include<stdio.h>intmain(){inta,b,sum;
scanf("%d%d",&a,&b);sum=a+b;printf("sumis%d\n",sum);return0;}输出结果为:
sumis579
例1.2求两个整数的加法例1.3
求两个数中较大者#include<stdio.h>intMax(intx,inty)/*Max函数(function)*/{intz;/*声明部分,定义变量*/if(x>y)z=x;/*判断*/elsez=y;returnz;/*将z的值返回给主调函数*/}intmain()/*主函数*/{inta,b,c;/*声明部分,定义变量*/printf("Enteraandb:");/*显示Enteraandb:*/scanf("%d%d",&a,&b);/*从键盘输入数据给a、b*/c=Max(a,b);/*调用Max函数*/printf("Max=%d\n",c);return0;}简单的C程序介绍例1.3
求两个数中较大者输入:数1数2
运行结果为:
Enteraandb:
85
Max=8简单的C程序介绍C程序格式特点总结习惯用小写字母,大小写敏感程序中不使用行号有一定数量的空行和空格常用缩进式书写格式格式特点良好的程序书写习惯,会使程序更加清晰易读。这是优秀程序员的素质之一。使用TAB缩进,代码关系清晰明朗{
}对齐,保持模块清晰有足够的注释,解释清楚功能与含有有合适的空行,让可读性更上一层楼准确的变量命名,不需注释含义自然明了如:FirstNumber,Total_Numbersmain(){inti,j,sum;sum=0;/*累计量清零*/for(j=1;j<0;j++)
{ for(j=1;j<10;j++)
{ sum+=i*j;
}}printf("%d\n",sum);}程序风格C程序结构特点函数和主函数(1)函数是C语言程序的基本单位。一个程序主要由1个或多个函数组成。main()函数是主程序;其它函数都是子程序。(2)C语言程序总是从main()函数开始执行。对于C程序员来说,一个C语言程序总是从main()函数开始执行,而不论其在程序中的位置。当主函数执行完毕时,亦即程序执行完毕。(3)函数的一般结构
任何函数(包括主函数main())都是由函数说明和函数体两部分组成。其一般结构如下:函数类型函数名(函数参数表)函数说明部分
{说明部分;执行语句部分(若干语句)函数体部分
}
其中函数参数表的格式为:数据类型形参[,数据类型形参2……]如函数Max(),其函数说明为:函数类型函数名函数参数表↓↓↓
intMax(intx,inty)C程序结构特点voiddump(){}是个空函数,但合法。(4)函数体在函数说明部分的下面、{}(必须配对使用)内的部分。函数体一般由说明和可执行语句两部分构成:(1)说明部分说明部分由变量定义、自定义类型定义、外部变量说明等组成。(2)可执行语句
一般由若干条可执行语句构成。函数体中的说明,必须在所有可执行语句之前。C程序结构特点C程序结构特点(5)源程序书写格式1.语句以分号;结束。2.程序行的书写格式自由,既允许1行内写几条语句,也允许1条语句分写在几行上。如果某条语句很长,一般需要将其分写在几行上。但是一个字符串不能分写在两行中,这时应使用续行符\voidprocess(intx,inty,int(*fun)(int,i\nt));C程序结构特点(6)关于注解C语言的注解格式为:/*块注解*/或//行注解
1.“/*”和“*/”必须成对使用,且“/”和“*”、以及“*”和“/”之间不能有空格。
2.注解的位置,可以单占一行,也可写在语句中。
3.如果一行写不下,可另起一行继续写。
4.注解中允许使用中英文字。
5.注解只供程序员阅读,对编译程序不起作用。
6.注解的目的是为了程序维护。C程序的控制台数据输入scanf(格式控制,变量地址表列);scanf函数的格式:例如:inta,b;scanf("%d%3d",&a,&b);printf("a=%d,b=%d\n",a,b);若输入:35
5645输出:a=35,b=564
C语言本身没有输入输出语句。输入和输出的操作是由库函数scanf和printf等函数来完成的。在使用输入输出函数式应在程序开头写预编译命令:#include<stdio.h>%c
一个字符%d有符号十进制整数%f浮点数、十进制记数法%s字符串遇到空格、换行、制表符结束C程序的控制台数据输出printf(格式控制,输出表列);/输出列表是*对变量值的引用*/C语言本身没有输入输出语句。输入和输出的操作是由库函数scanf和printf等函数来完成的。在使用输入输出函数式应在程序开头写预编译命令:#include<stdio.h>printf函数的格式:例如:
floatx=6.85; printf("x=%f\n",x);x=6.850000 printf("x=%4.2f\n",x);x=6.85 printf("x=%8.4f\n",x);x=□□6.8500 printf("x=%08.4f\n",x);x=006.8500 printf("x=%-8.4f\n",x);
x=6.8500□□%c一个字符%d有符号十进制整数%f浮点数、十进制记数法%s字符串C语言的开发步骤编译链接运行编辑程序代码的录入,生成源程序*.c语法分析查错,翻译生成目标程序*.obj与其它目标程序或者库链接装配,生成可执行程序*.exe目标程序的执行,需要操作系统的支持。因此会有Dos,Windows,Linux等不同版本。源程序目标程序可执行程序内容程序语言机器语言机器语言可执行不可以不可以可以文件名后缀.c.obj.exeCodeBlocksC上机步骤(1)启动CodeBlocks,进入集成环境。建立ConsoleApplication
工程,选择C语言。
(2)编辑(或修改)源程序。
(3)编译和连接。如果成功,则可进行下一步操作;否则,返回(2)
修改源程序,再重新编译和连接。
(4)运行。通过观察程序运行结果,验证程序的正确性。如果出现语意错误,则返回(2)修改源程序,再重新编译、连接和运行,直至程序运行正确。
(5)退出集成环境,结束本次程序运行。开始结果语法错误源程序.c目标程序.obj可执行程序.exe编辑编译连接运行连接错误运行错误CodeBlocksC上机步骤CodeBlocksC具体上机步骤Step1:进入CodeBlocks集成环境Step2:选择菜单File->NewProject…Step3:Newfromtemplate对话框中:选择ConsoleApplication,点Go按钮。S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 住宅小区场地租赁及消防安全协议
- 融资租赁厂房股权转让协议书样本
- 商业写字楼场地租赁及物业管理服务合同
- 餐饮企业拆伙退伙合同(员工安置)
- 智能家居市场拓展场营销策划协议
- 绿色能源产品全国独家代理销售合同样本
- 离婚财产分割中的股票期权行权合同
- 厂房施工与建筑垃圾减量化处理协议
- 高端特色餐饮店租赁合同范本
- 企事业单位多功能厅租赁合同
- 2025年初中地理学业水平考试人文地理专项试题及答案深度解析
- 贵州省毕节市2025届高三下学期第四次适应性考试 历史 含答案
- (人教PEP版2025新教材)英语三下期末分单元复习课件
- 古代小说戏曲专题-形考任务2-国开-参考资料
- 金融投资类必读书目大汇总新
- 山东工商学院会计学基础期末复习题及参考答案
- 2021年人教版七年级数学下册计算类专项训练卷 【含答案】
- 小型雕刻机结构设计说明书
- ようだ、らしい、そうだなどの练习答え付き
- 流动沙地沙障设置技术规范
- 中梁地产制度汇编-3:188页
评论
0/150
提交评论