聊城大学c语言实验报告,c语言程序设计(包云)c第1章概述.ppt-程序员宅基地

技术标签: 聊城大学c语言实验报告  

c语言程序设计(包云)c第1章概述.ppt

C语言程序设计,讲授包云 单位聊城大学计算机学院,第1章 C语言概述,3,主要内容,1.1 什么是计算机程序 1.2 什么是计算机语言 1.3 C语言的发展及其特点 1.4 简单的C程序介绍 1.5 C程序的上机步骤与方法,4,1.1什么是程序设计,什么是程序 为了解决某一特定问题用某一种计算机语言编写的指令序列称为程序。 什么是程序设计 程序是程序设计的结果,在执行程序前必须先排定程序,排定以时间为进程必须完成的各种操作叫程序设计。 用高级语言进行程序设计时要注意以下三个概念 语法,每种计算机语言都有自己的语法规则。 语义,即某一语法成分的含义。 语用,即正确使用语言。,5,1.2什么是计算机语言,计算机语言,机器语言,汇编语言,高级语言,非过程语言,6高级语言经历的不同的发展阶段 1、非结构化的语言 2、结构化语言 3、面向对象的语言,7,1.3 C语言的发展及其特点,语言的诞生与发展 (1)在C语言诞生以前,系统软件主要是用汇编语言编写的。由于汇编语言程序依赖于计算机硬件,其可读性和可移植性都很差;但一般的高级语言又难以实现对计算机硬件的直接操作(这正是汇编语言的优势),于是人们盼望有一种兼有汇编语言和高级语言特性的新语言。 (2)语言是贝尔实验室于70年代初研制出来的,后来又被多次改进,并出现了多种版本。80年代初,美国国家标准化协会(ANSI),根据语言问世以来各种版本对语言的发展和扩充,制定了ANSI C标准(1989年再次做了修订)。 本课程以 C99新标准来讲解。,8,C语言的历史背景,9,C语言的特点,C语言同时具有汇编语言和高级语言的优势。 语言简洁、紧凑,使用方便、灵活。 (32个关键字 9种控制语句) 运算符丰富。(34种运算符) 数据类型丰富。 具有结构化的控制语句 语法限制不太严格,程序设计自由度大 可以直接对硬件进行操作。 生成目标代码质量高,程序执行效率高。 可移植性好(较之汇编语言)。,10,C语言缺点 算符太多,优先级多,不便记忆。 相对来说,C语言类型转换随便,安全性较差(如指针),11,1.4 简单的C程序介绍,1、最简单的程序,例1.1 要求在屏幕上输出以下一行信息 This is a C program. include int main printf“This is a C program.n”; return 0; ,一个完整的程序,是由一个main函数(又称主函数)和若干个其它函数又称子函数结合而成的,或仅由一个main函数构成。 main是函数的名字,表示“主函数”,main前面的int表示此函数的类型是int类型。每个语句最后都有一个分号,表示语句的结束。,stdio.h是系统提供的一个文件名,输入输出函数都事先放在这个文件里,如果想用,必须调用stdio.h。,12例1.2 求两个数的和。 include int main int a,b,sum; a123; b456; sumab; printf“sum is dn”,sum; return0; ,程序运行结果 sum is 579,/*预处理命令*/,/*函数首部*/,/*声明部分*/,/*输出语句*/函数体,13,1.4 简单的C程序介绍例1.3 求2个数中较大者。 include “stdio.h” int main int a,b,c; scanf“d,d“, ,从键盘输入5,9 程序运行结果 max9,说明 函数是程序的基本单位 C程序总是从main函数开始执行 程序行的书写格式自由 所有语句都必须以分号“;”结束 可用对程序作注释,14,1.4 简单的C程序介绍,2.函数的一般结构 1)一个程序由一个或多个源程序文件组成。 (1)预处理指令。 (2)全局声明。 (3)函数定义。 2)函数是C程序的主要组成部分,15,3)一个函数包括2个部分任何函数(包括主函数main)都是由函数说明和函数体两部分组成。其一般结构如下 函数返回值的类型 函数名函数参数表 说明语句部分; 执行语句部分; 说明语句部分由变量定义、自定义类型定义、自定义函数说明、外部变量说明等组成。,可执行语句部分一般由若干条可执行语句构成。,函数参数表的格式为 数据类型 形参1, 数据类型 形参2,16,1. 函数是语言程序的基本单位。 main函数的作用,相当于其它高级语言中的主程序“龙头大哥”,运行时由它开始执行;其它函数的作用,相当于子程序(一般是被调用的)。,2. C语言程序总是从main函数开始执行。 一个语言程序,总是从main函数开始执行,而不论其在程序中的位置。当主函数执行完毕时,亦即程序执行完毕。 习惯上,将主函数main放在最前头。,总结一下,17,任何函数(包括主函数main)都是由函数说明和函数体两部分组成。其一般结构如下 函数返回值的类型 函数名函数参数表 说明语句部分; 执行语句部分; 函数首部,函数体,1. 函数首部 由函数返回值类型、函数名和函数参数表三部分组成。 函数参数表的格式为 数据类型 形参1, 数据类型 形参2,18,例如,函数max,其函数说明各部分如图1-1所示。 函数返回值的类型 函数名 函数参数表 int max int x , int y 图1-1 函数首部结构图 2.函数体 在函数说明部分的下面、大括号(必须配对使用)内的部分。 函数体一般由说明语句和可执行语句两部分构成 (1)说明语句部分 说明语句部分由变量定义、自定义类型定义、自定义函数说明、外部变量说明等组成。,19,(2)可执行语句 一般由若干条可执行语句构成。main函数体的示意图。 /*主函数main*/ main int num1,num2; printf“ the first integer number “; scanf“d“, 函数体,变量定义部分,可执行语句部分图1-2 函数体结构示意图,20,3、源程序书写格式 1.所有语句都必须以分号“;“结束,函数的最后一个语句也不例外。 2.程序行的书写格式自由 既允许1行内写几条语句,也允许1条语句分写在几行上。 3.允许使用注释 C语言的注释格式为 /* */ (1) “ /* “和“ */ “ 必须成对使用,且“ / “和“ * “、以及“*“和“/“之间不能有空格,否则都出错。,21,例如, main int num1,num2; printf“ the first integer number “; scanf“d“, 如果某条语句很长,一般需要将其分写在几行上。,22,技巧为避免遗漏必须配对使用的符号,例如注释符号、函数体的起止标识符(花括号)、圆括号等等,在输入时,可连续输入这些起止标识符,然后再在其中进行插入来完成内容的编辑。在起止标识符嵌套时,以及相距较远时,这样做更有必要。 (2)注释的位置,可以单占一行,也可以跟在语句的后面。 (3)如果一行写不下,可另起一行继续写。 (4)注释中允许使用汉字。在非中文操作系统下,看到的是一串乱码,但不影响程序运行。 (5)使用““可以在一行内注释。例如 printf“maxd“,c; 输出c的值,23,C语言的语句和关键字 从第4章起将详细介绍,(一) C语言的语句 与其它高级语言一样,语言也是利用函数体中的可执行语句,向计算机系统发出操作命令。按照语句功能或构成的不同,可将语言的语句分为五类。 1.控制语句 控制语句完成一定的控制功能。语言只有条控制语句,又可细分为三种 ( 1)选择结构控制语句 ifelse, switch (2)循环结构控制语句 dowhile, for, while, break, continue (3)其它控制语句 goto, return,24,2. 函数调用语句 函数调用语句由一次函数调用加一个分号(语句结束标志)构成。 例如,printf“This is a C function statement.“; 3. 表达式语句 表达式语句由表达式后加一个分号构成。最典型的表达式语句是,在赋值表达式后加一个分号构成的赋值语句。 例如,“num5 “是一个赋值表达式,而“num5;“却是一个赋值语句。 4. 空语句 空语句仅由一个分号构成。显然,空语句什么操作也不执行。 例如,下面就是一个空语句 ;,25,5. 复合语句 复合语句是由大括号括起来的一组(也可以是1条)语句构成。例如 main /*复合语句。注意右括号后不需要分号。*/ 复合语句的性质 (1)在语法上和单一语句相同,即单一语句可以出现的地方,也可以使用复合语句。 (2)复合语句可以嵌套,即复合语句中也可出现复合语句。,26,(二) 关键字 C语言的关键字共有32个,根据关键字的作用,可分其为数据类型关键字、控制语句关键字、存储类型关键字和其它关键字四类。 (1)数据类型关键字(12个)char, double, enum, float, int, long, short, signed, struct, union, unsigned, void (2)控制语句关键字(12个)break, case, continue, default, do, else, for, goto, if, return, switch, while (3)存储类型关键字(4个)auto, extern, register, static (4)其它关键字(4个)const, sizeof, typedef, volatile,27,1.4简单的C程序介绍int maxint x,int y int z; if xy zx; else zy; return z; 你会分析这个子程序的结构吗,28,1.5 运行C程序的步骤与方法,在微机上通常使用的语言编译系统有Turbo C 、Borland C、Visual c 6.0 等。其中,在早期Turbo C 是在pc机上用的最多的。为了易于以后的c过渡,建议大家熟悉并用Turbo C,vc6.0环境。,29,1.5运行C程序的步骤与方法编辑,编译,连接,运行,.c,.,.obj,有错,编辑程序,编译程序,连接程序库函数),源程序,目标程序,可执行程序,结果,30,1.5 运行C程序的步骤与方法,1. C程序的建立过程 编辑源程序.CPP或.C编译.OBJ连接(.)执行结果,2. 上机操作步骤 使用的C语言系统Turbo C 3.0 运行应用程序TC. 编辑源程序.CPP按F3键可输入源程序文件名 编译连接按F9实现 运行源程序CtrlF9 观察运行结果AltF5,运行TC,VC,31C语言的上机步骤1,C语言的上机执行过程,C编译系统32,C语言的上机步骤2,1. 用Turbo C 运行C程序的步骤 1. 如何进入Turbo C环境 双击桌面快捷方式目标为ctctc. 全屏切换 2. 进入Turbo C环境后,必须进行必要的环境变量的(参数)的设置,然后即可开始编辑程序。 参数设置主要包括include目录、lib(库文件)目录、输出目录等。(见下图)在机房可以将输出目录设置在D盘。 3. Turbo C中无法使用windows中的选择、复制、粘贴。一个可行的方法是,将程序复制到“记事本”中,并保存成.c文件格式(也是纯文本文件)。,3334,Include directories指“包含文件”所在的目录,系统显示出默认的子目录. Library directories 指库文件所在的目录,系统显示出默认的子目录。 Output directory是指定输出文件(.obj文件和.文件)存放的目录。,35,C语言的上机步骤3,3. 如何执行程序 用 或,来执行一个程序; 用查看运行结果; 4. 如何存储程序 用或,, 然后输入文件名进行存储。 5. 如何退出Turbo C状态 用 或,,可退出Turbo C状态。 6. 如何调出已存在的文件 用或,,然后输入文件名,就可以 调出已有文件。,36,C语言的上机步骤4,2. 在Visual C 6.0中如何运行程序 1. 新建源程序 “文件新建文件C Source Files” 2. 源程序的保存 “文件保存”。源程序扩展名可为.cpp(默认)或.c 3. 源程序的编译,链接,运行 “组建Compile” “组建Build” “组建cute”,37,1、编辑 方法一先创建C源程序 方法二先创建空工程 2、编译和链接 组建|编译 CtrlF7 组建|构件 F7 3、执行 编译|执行 CtrlF5 注意开始新建一个新的程序时 ,要选菜单“文件””关闭工作空间“,Visual C集成开发环境,文件|新建,方法一先创建C源程序,文件 标签,文件类型,文件名,目录方法二先创建空工程步骤1,工程 标签,工程类型,工程名,目录,方法二先创建空工程步骤2选择空工程,方法二先创建空工程步骤3文件 标签,文件类型,文件名选中此项42,上机操作要求,预习、书写实验预习报告 预习报告中书写清楚任务(题目),对应程序设计思路或者以及自己编写的程序 预先假设的错误处理对策,43,实验一 C语言的运行环境和运行C程序的方法,实验内容习题1.51.8,将所有程序抄写在作业本上,并在TC和C两种环境中运行。 实验目的主要是熟悉 TC和C环境的使用,以及对C语言程序的基本结构的认识。 (以实验大纲为准),44,说明,C 程序设计同其他程序设计一样,是实践性很强的课程。除了要听好课,多看教材和课外书外(特别提醒,应该仔细阅读课本,老师课堂上很多内容并没有介绍),还需大量的上机实践才能更好地理解和掌握所学到的内容。一般来说,上机和讲课时间之比应不少于11。但由于目前学校安排的教学时数限制,课内时间将更多的精力用于讲课上,课内安排的上机时间相对较少,大家不要因此对上机的重要性有所误解。大家应在课外再花一定的时间进行C 语言的上机实践,这样才能学好该门课。 上机实验的目的有以下几个方面 验证所编写的程序的正确性。 进一步理解教材和课堂授课中介绍的内容 熟练地掌握C 程序开发环境的使用,为今后开发大型软件打好基础。 学习和掌握一般程序的调试和测试方法。,45,关于实验,上机前应充分做好以下准备工作 复习和掌握与本次实验有关的教学内容。 根据本次实验的内容,在纸上编写好准备上机调试的程序,并初步检查无误。 准备好对程序进行测试的数据。 对每种测试数据,给出预期的程序运行结果。 预习实验步骤,对实验步骤中提出的一些问题进行思考。 上机实验后,应及时根据实验的结果写出实验报告,实验报告应包括以下内容 实验目的和内容。 程序说明,包括程序结构、各模块的算法(N-S 图表示)。 调试正确的源程序。 程序运行记录(包括对不同测试数据的运行结果)。 针对实验步骤中提出的问题,写出解决办法及对运行结果的分析。,46,怎样学习C 语言,很多同学对学习程序设计语言感到很难,究竟怎样才能学好这里将我对程序语言的理解给大家介绍一下 提起兴趣 首先要明确学习的目标,没有明确的学习目标就没有学习动力。给自己定一个目标,比如这次一定通过课程考试,或者这个月学习完做个东西出来等等。 其次,确定了目标之后,要认真去做,多上机操作实践,遇到不懂的要多跟教师和其他同学交流,千万不能放弃。当自己编的一段小程序运行通过,或攻下一道难题,自己就会获得一种成就感,可能还会很兴奋,也就渐渐有了兴趣。 最后,要把所学的知识运用到实际问题当中,这样既可以巩固所学的知识,不至于完学了就忘,还可以根据实际需要拓展知识面。这样良性循环,兴趣也会越来越浓。,47,怎样学习C 语言(续),学习计算机语言最好的方法是什么答曰读程序,模仿程序。 没错,读程序是学习C 语言入门最快,也是最好的方法。不要总是抱着书本逐行啃,而是学习它们的例程。 学习完每一章,都要认真体会这一章的所有概念,然后不放过这一章中提到的所有例程,仔细研读程序,直到每一行都理解了,然后找几个编程题目,最好是和例程类似的或一样的,自己试图写出这段已经读懂的程序,不要以为例程你已经读懂了,你就可以写出和它一样的程序,绝对不一定,不相信你就试一试吧,如果写不出来,也不要着急,回过头来再继续研究例程,想想自己为什么写不出来,然后再去写这段程序,反反复复,直到你手到擒来为止。这一过程,就和我们学习任何其他语言比如英语和汉语一样。我们大家都有体会,我们学习一门语言,都是从最基本的语法开始,然后学习一些字和词,再来学习一些词组或句子,然后再用词组和句子组成一段话,表达一个简单的意思,最后才是写一篇文章或者是一本书,表达更复杂的思想。 我们知道,在我们完成这一过程时,并不是像说得这么简单。在我们能写出一篇好的文章或者一本好书之前,我们可能需要阅读大量的其他人写的好文章或好书,有时我们还要把它们背下来;同样的,在我们写出一个好的程序或者软件前,我们也需要阅读大量的样本例程或者软件的源代码,甚至要背一些好的程序代码(当然是理解的前提下再记忆)。,48,怎样学习C 语言(续),写程序的最高境界其实就是掌握各种解决问题的手段数据结构和解决问题的方法算法-当然,要充分理解“计算机”的方法,因为我们是在用计算机解决问题。 那么怎样才算精通程序设计呢怎样才能精通程序设计呢举个例子你面前有10 个人,找出一个叫“张三”的人,你该怎么办第一种方法直接对这10 个人问“谁叫张三”。第2 种方法你挨个去问“你是不是张三”,直到问到的这个人就是张三。第三种方法你去挨个问一个人“你认不认识张三,指给我看”。不要小看这个问题,你说当然会选第一种方法,没错恭喜你答对了,因为这个方法最快,效率最高(可惜,这不是计算机的方法),但是在程序设计中找到解决问题的最优方法和你用的手段却是考验一个程序员程序设计水平的重要标志,而且是不容易达到的。,49,几句话,不要只见树木,不见森林。虽然无树不成林,基本操作总是必要的,但只会瑣屑的操作和繁杂的语法,能解决实际问题吗 学习编程并不一定需要太多数学功底。甚至很多时候都是不需要数学的。比较需要的是逻辑概念和缜密的思路,以及强烈的兴趣。编写程序过程中多半只是把别人的数学成果拿来用(以算法形式,当然要能够理解别人的算法这个也是需要不断学习和积累),这是很容易的一件事。只有在特殊应用领域才需要自行开发数学模型。,50,作业,P13 1.5 1.6 1.7,

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42299472/article/details/117098627

智能推荐

Ubuntu16.04 CUDA10 + cuDNN7安装记录_ubuntu apt libcunn7-dev-程序员宅基地

文章浏览阅读1.4k次。正好赶上给新系统安装CUDA,就详细的记录一下安装过程,我N次安装后的理解,以及一些问题。首先,庞贝船长的这篇文章真的写的很详细,但是由于他的链接现在挂了,因此我将他的大部分操作说明拷贝了下来,中间斜体的部分是我补充的。大部分步骤都是按照这篇文章里走的,最后亲测成功在Ubuntu 16.04上安装了CUDA 9.2和10,但在18.04上由于其没有lightdm组件,因此失败。也即该文应该仅适..._ubuntu apt libcunn7-dev

android 在adapter中更改Activity中的数据 (自定义接口)_adapter 更改之后 activity-程序员宅基地

文章浏览阅读2k次,点赞3次,收藏2次。注:本文通过自定义接口的实现,将adapter中的数据传入activity 已达到在adapter中刷新activity数据的过程,正文:一,在adapter中新建 接口并定义对象(apply_target_)public interface Apply_target_{ public void list_change(int pos,String value);}..._adapter 更改之后 activity

Robot Motion(机器人运动)_7-4 robot motioncsdn-程序员宅基地

文章浏览阅读810次。题目链接:杭电1035 题目描述: Problem DescriptionA robot has been programmed to follow the instructions in its path. Instructions for the next direction the robot is to move are laid down in a grid. The possi..._7-4 robot motioncsdn

【运维】yum安装zabbix监控教程_yum install -y zabbix-web-mysql-scl zabbix-apache--程序员宅基地

文章浏览阅读766次,点赞2次,收藏3次。Zabbix安装教程一、环境准备:cat /etc/redhat-release #查看系统版本sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config #关闭selinuxsetenforce 0 #关闭防火墙systemctl stop firewalld.service systemctl disable firewalld.service二、安装zabbix服务端2.1、安装配_yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl

halcon与c#联合编程的方法_halcon声成c#解释-程序员宅基地

文章浏览阅读2.5k次,点赞2次,收藏20次。一、VS引用halcondotnet.dll后直接编程但是如果你不是大牛会存在非常严重的内存泄漏问题,极其不推荐这样做。二、用Halcon编好程序后导成C#然后导出.cs为后缀的c#程序,主函数在Action方法里。但是这种方法最然简便,但是偶尔也会在程序编译正确的情况下运行报错。三、用Halcon引擎虽然较上面的办法速度可能相对慢一些,不过稳定性大大提升而且运行速度也还可以。首先先引用这两样东西,它在Halcon安装目录下。例如:E:\Halcon12\bin\dotnet_halcon声成c#解释

element 自定义主题出现样式重复引入问题_element样式引入多次app.css chunk-element-程序员宅基地

文章浏览阅读3.1k次。当自定义主题色的时候按照命令改变主题色,会出现样式重复加载多次问题,看着很恶心人 解决方案去element-ui官网在线设计主题色,下载下来就行https://element.eleme.cn/#/zh-CN/theme/preview ..._element样式引入多次app.css chunk-element

随便推点

鸿蒙应用开发 | 进度条(ProgressBar,Slider)的功能和用法_进度条的分割线-程序员宅基地

文章浏览阅读1.8k次。导语:大家好,我是你们的朋友 朋哥。上一篇原创文章 时间选择器,设置了时间选择控件。今天来说说进度条,鸿蒙中进度条分为两种 ProgressBar ,Slider 。提前说一下 鸿蒙进度条可是比Android强大多了。下面我们开始今天的文章,还是老规矩,通过如下几点来说:1,简介2,用到的属性3,实战简介ProgressBar , Slider用于显示内容或操作的进度。可以通过进度条查看一些功能操作的进度。使用场景:项目开发中 通过 设置数值改变进度条的样式..._进度条的分割线

深度学习语音分离|抽取必读论文、数据集、代码工具整理分享_深度学习 语言习惯提取-程序员宅基地

文章浏览阅读399次。语音分离(Speech Separation)这个问题来自于“鸡尾酒会问题”,采集的音频信号中除了主说话人之外,还有其他人说话声的干扰和噪音干扰。语音分离的目标就是从这些干扰中分离出主说话人的语音。根据干扰的不同,语音分离任务可以分为三类:1、当干扰为噪声信号时,可以称为“语音增强”(Speech Enhancement)2、当干扰为其他说话人时,可以称为“多说话人分离”(Speaker Separation)3、当干扰为目标说话人自己声音的反射波时,可以称为“解混响..._深度学习 语言习惯提取

矩阵的特征值问题——幂法与反幂法-程序员宅基地

文章浏览阅读1.6k次。  最近一段时间写的程序需要解矩阵的特征值与特征向量,本来以为不是特别复杂的问题,由于问题规模比较大(矩阵大约需要15000*15000那么大,甚至更大)而且要计算的尽量快而变得异常复杂。当然用matlab是相当容易的,但要求使用C或者C++的程序......  我尝试了几种不同的方法,已经把自己搞的快糊涂了,在这里分几次总结一下:  最初的想法的使用幂法和反幂法来解,这也是因为对这样的方..._反幂法 雅可比 对比

通过adb shell进入安卓shell后如何退出?_如何从adb shell里面出来-程序员宅基地

文章浏览阅读1.4w次,点赞9次,收藏11次。通过adb shell进入安卓shell后如何退出?Ctrl+C无法退出shell;直接输入exit即可_如何从adb shell里面出来

./HelloWorld line 1: syntax error: "(" unexpected问题解决_./kconf/conf: 1: syntax error: "(" unexpected-程序员宅基地

文章浏览阅读1w次。在pc机上编译的程序,linux下执行时出现了这个错误:#./HelloWorld./HelloWorld line 1: syntax error: "(" unexpected这个错误是由于编译程序所使用的编译器是gcc,使用gcc编译的程序可以在pc机上运行而不能在开发板上运行;而要想程序在开发半上运行就需要使用编译器arm-linux-gcc进行编译

POj 3164 Command Network最小树形图 模板题 朱刘算法_最小树形图习题-程序员宅基地

文章浏览阅读129次。Command NetworkAfter a long lasting war on words, a war on arms finally breaks out between littleken’s and KnuthOcean’s kingdoms. A sudden and violent assault by KnuthOcean’s force has rendered a total failure of littleken’s command network. A provisional_最小树形图习题