内容正文:
1.3与1.4节:认识简单的C程序并了解其上机步骤
编程语言基础——C语言
同步精品课堂
高教版(第5版)
掌握国家标准《机械制图》中有关图幅、比例、字体图线等基本规定。
教学目标
一
03
分析程序,掌握C程序的特点
学习并掌握C程序的上机实验步骤及实际操作过程中的注意事项
04
通过简单C程序的学习,认识程序的组成部分及其功能
02
通过分析两个简单的C程序,认识程序的基本结构
01
教学重难点
二
03
C程序的特点
C程序实验上机操作步骤及注意事项
04
程序中各组成部分的含义及其功能
02
C程序的基本结构
01
导入新课
三
手机里的 APP、电脑上的游戏,靠“代码”指挥 工作—— 而 C 语言,就是写代码的 “基础工具”!
思考:
你手机里的 APP、电脑上的游戏,靠什么 “指挥” 工作?它与C语言之间有什么联系呢?
思考:
在上次课程中,我们认识了“C语言”,那么,今天我们要做什么呢?
看懂一个超简单的 C 程序(比如让电脑显示 “Hello,World!”)
学会把这个程序在电脑上 “跑起来”的方法和程序的执行流程
新知讲授
四
知识点1:两个简单的C程序
例1-1:在屏幕上输出“Hello,World!”。
#include <stdio.h> //这是编译预处理命令
main( ) //定义主函数
{ //函数开始的标志
printf(“Hello,World!”); //输出所指定的一行信息
} //函数结束的标志
本程序的作用是在屏幕上输出一行信息:
Hello,World!
新知讲授
四
知识点1:两个简单的C程序
#include <stdio.h>
“#”开头的是预处理命令,“#include”指令的作用是命令C编译器包含某个特定文件的内容。在上述代码中包含一个名为“stdio.h”的文件,包含该文件的原因是在程序中用到了该文件内部的一个函数“printf()”
而代码中的“ . h”是文件的后缀名,称为“头文件(Head files),在C语言中,大多数的头文件都包含了程序编写过程中常用的函数。
新知讲授
四
知识点1:两个简单的C程序
main( )
{ }
这一段代码的含义是“定义主函数”,“main”是函数的名字,表示“主函数”,在C语言中,每个C源程序都必须有有一个,且只能有一个“main()”函数。函数体用“{ }”括起来,其内容是函数所要执行的若干条语句,在本例中,主函数内部只有一条语句,其功能是输出“Hello,World!”。
新知讲授
四
知识点1:两个简单的C程序
printf(“Hello,World!”);
代码中的“printf()”是C编译系统提供的函数库中的输出函数,在使用函数库中的输入输出函数时,编译系统要求程序提供有关此函数的信息,而该例程序中的第一行“#include<stdio.h>”的作用就是用来提供这些信息的,所以在程序中要用到标志函数库中的输入输出函数,就必须添加“#include<stdio.h>”。
printf函数中的双撇号内的字符串“Hello,World!”则按照原样输出至计算机的显示屏,“printf(“Hello,World!”)”语句结束后的分号( ;)表示该语句结束。
新知讲授
四
知识点1:两个简单的C程序
#include <stdio.h> //这是编译预处理命令
在程序中各行的右侧含有“//”,这表示此处到本行结束是“注释”,用来对程序有关部分代码进行必要的说明。“注释”具有方便自己和别人理解程序中各部分的作用。在程序进行预编译处理时将每个注释替换为一个空格,因此在程序编译时注释部分不产生目标代码,即注释对运行不起作用。注释只为给人看,而非让计算机执行。
C语言允许使用两种注释方式:
①以“//”开始的单行注释,此种注释的范围从“//”开始,以换行符结束,不能跨行注释。
②以“/*”开始,以“*/”结束的块式注释,这种注释可以包含多行内容。
新知讲授
四
知识点1:两个简单的C程序
例1-2:求两个整数的和并输出。
#include <stdio.h>
int sum(int x,int y)//接收从主函数传递的值
{
int z;
z=x+y;
return z;//将两数之和的值计算后传回主函数
}
main( )
{
int a,b,c;
scanf(“%d,%d”,&a,&b);//输入两个整数
c=sum(a,b); //调用sum函数计算两个整数之和
printf(“sum=%d
”,c);//输出结果
}
本程序的作用是求出两个整数的和并输出,如果从键盘上输入:
300,279
并按下回车键,则输出结果是:
sum=579
新知讲授
四
知识点1:两个简单的C程序
例1-2:求两个整数的和并输出。
#include <stdio.h>
int sum(int x,int y)//接收从主函数传递的值
{
int z;
z=x+y;
return z;//将两数之和的值计算后传回主函数
}
main( )
{
int a,b,c;
scanf(“%d,%d”,&a,&b);//输入两个整数
c=sum(a,b); //调用sum函数计算两个整数之和
printf(“sum=%d
”,c);//输出结果
}
程序分析:
在这个程序中用到了两个函数:
一个主函数main( )和一个子函数sum( )。
主函数中的“c=sum(a,b);”的作用是调用sum( )函数,调用时将实际参数a和b的值传递给sum( )函数的形式参数x和y。此时程序将跳转到sum( )函数中执行,sum( )函数的作用是求出两个整数的和z,执行return语句后将z的值返回给主函数main()。
新知讲授
四
知识点1:两个简单的C程序
#include <stdio.h>
int sum(int x,int y)
{
int z;
z=x+y;
return z;
}
main( )
{
int a,b,c;
scanf(“%d,%d”,&a,&b);
c=sum(a,b);
printf(“sum=%d
”,c);
}
预处理指令
main函数
自定义函数
库函数调用
自定义函数调用
int sum(int x,int y)
{
int z;
z=x+y;
return z;
}
int max (int x, int y)
↓ ↓ ↓ ↓ ↓ ↓
函数类型 函数名 参数类型 参数名 参数类型 参数名
函数体
函数首部
新知讲授
四
知识点1:两个简单的C程序
通过分析例1-1和例1-2,可以看出一个C程序有如下特点:
一个C程序是由若干个函数构成的。任何一个C源程序必须有且只能有一个main()函数,但也可以包含若干个其他函数。使用函数既可以简化程序,又可以提高程序的可读性,实现程序的模块化。在C语言中,所有的函数都是外部函。
一个C程序总是从main()函数开始执行的,无论main()函数处于程序中的什么位置(即使其他函数定义在main()函数的前面)。
函数体内可以包含若干变量定义和函数说明以及若干条语句,每条语句均以分号结束。但这并不代表每一行语句的末尾都需要加上分号,比如预处理命令后无需分号。
注释行从“//”开始到本行结束,连续若干注释行可以以“/*”开始,并以“/*”结束,所以注释部分并不参与程序的运行。
C程序书写格式自由。每行可以有多条语句,一条语句也可以分写在多行上,尤其是语句较长时。但这并不代表可以在语句的任何位置上进行“换行”。
新知讲授
四
知识点2:C程序的上机步骤
前面的学习我们已经了解了一些简单的C程序,下面我们一起来学习如何在计算机中输入这些程序并让计算机执行。
使用C语言编写的程序称为源程序,而计算机只能识别和执行由0和1组成的二进制指令,为了让计算机能够识别并运行源程序,必须用一种称为编译程序(或编译器)的软件把源程序翻译成二进制的目标程序,然后将该目标程序与系统的库函数和其他目标程序链接起来,形成可执行的目标程序。
概述
新知讲授
四
知识点2:C程序的上机步骤
开始
编辑
编译
有错?
链接
执行
结果
正确?
结束
无
正确
有
不正确
可执行
目标程序
a.exe
源程序
a.c
目标程序
a.obj
库函数和其他目标程序
运行一个C程序的完整步骤是:
输入或编辑源程序→编译→链接→运行
以上过程如右图所示。其中,实线表示操作流程,虚线表示文件的输入/输出。假设已编辑好一个源程序文件a.c,对该文件编译后产生目标文件a.obj,再将该文件和系统的库函数及其他目标文件链接,得到可执行文件a.exe,这个文件就可以直接运行。由于每个源程序都需要经过上述步骤,目前有许多集成开发环境(IDE)将程序的编辑、编译、链接和运行等操作集成在一个界面上,使用十分方便,如Turbo C 2.0、Visual C++、Dev-C++等软件。
新知讲授
四
知识点2:C程序的上机步骤
在运行C程序的实际操作过程中,还需要注意以下几点:
①每种编程语言都有自己的一套规则,称为语法规则。如果缩写程序出现与语法规则不符之处将不能通过编译,同时编译器会提示错误。具体规则将在后续的学习中陆续讲解说明。
②编译器在编译若干行检测到几个错误“error”后会停止编译,然后直接显示编译消息框。修改完这几个错误后重新编译可能会提示更多错误,但这不意味着之前所做的修改是错误的。尽管消息窗口中会提示每一个出错的行号,但有时错误并不是该行引起的的。例如程序中的第4行的语句末尾遗漏了分号,编译后会提示第5行缺少分号。因此修改错误时不要过分依赖出错行号,应根据错误原因来分析和修改。
新知讲授
四
知识点2:C程序的上机步骤
在运行C程序的实际操作过程中,还需要注意以下几点:
③对于某些复制过来的程序,虽然程序看起来像是正确的,但容易出现“非法字符”错误,它很可能是由于其中有全角字符,因为C程序使用半角字符,可以把全角字符改成半角。例如,半角的空格“ ”和全角的空格“ ”,一个是小于128的ASCII码,另一个则是大于127的中文内码。判断是否是全角字符的办法是,找到错误的行后移动光标,如果一次跳两个字符长度,那么这个字符就是全角字符。
新知讲授
四
知识点2:C程序的上机步骤
在运行C程序的实际操作过程中,还需要注意以下几点:
④“warning”警告不影响程序的运行,但警告往往是隐含的错误,对C语言熟悉的程序员应尽量减少警告的出现。
⑤在编辑程序过程中或运行之前应经常保存(Ctrl+S),这样可以避免由于运行出错非法退出、系统死机和断电等意外导致程序丢失。
新知讲授
四
知识点3:编写程序解决问题的基本流程
问题分析
设计算法
编写程序
对源程序进行编辑、编译和连接
运行程序
分析结果
编写程序文档
师生互动
五
“问答快闪”
【规则】
教师读题,学生举手抢答,回答正确得 1 分,最后统计 “得分最高的学生”,给予表扬。
问题 1:C 程序的 “入口” 是哪个函数?
问题 2:要使用printf函数,必须包含哪个头文件?
问题 3:上机时,“编译” 的作用是什么?
随堂练习
六
1. C 程序的执行起点是( )
A. main函数
B. 任意函数
C. start函数
D. int函数
答案:A
解析:C 程序从main函数开始执行,这是 C 程序的基本结构特点。
随堂练习
六
2. 以下关于 C 程序特点的描述,错误的是( )
A. 程序由函数组成,main函数是入口
B. 语句以分号结尾
C. 区分大小写
D. 注释只能是//形式
答案:D
解析:C 语言注释有//(单行)和/*...*/(多行)两种形式。
随堂练习
六
3. 运行 C 程序的第一个步骤通常是( )
A. 编译
B. 链接
C. 编写源代码
D. 运行可执行文件
答案:C
解析:运行 C 程序需先编写源代码文件(如.c文件)。
随堂练习
六
4. 若运行 C 程序时出现 “语法错误”,问题最可能出现在( )步骤
A. 编译阶段
B. 链接阶段
C. 运行阶段
D. 编写阶段
答案:A
解析:编译阶段会检查语法错误,若有则无法生成目标文件。
随堂练习
六
5. 关于printf函数,以下描述正确的是( )
A. 用于输入数据
B. 用于输出数据
C. 是自定义函数
D. 不需要头文件支持
答案:B
解析:printf是 C 语言标准库中的输出函数,需#include <stdio.h>支持。
随堂练习
六
6. C 程序中,语句 “int a, b, sum;” 的作用是( )
A. 输入数据
B. 输出结果
C. 定义变量
D. 计算表达式
答案:C
解析:该语句用于定义三个整型变量a、b、sum。
随堂练习
六
7. 分析 C 程序特点时,以下( )是正确的
A程序不需要函数
B. 语句可以没有分号
C. 严格区分大小写
D. 注释会被编译执行
答案:C
解析:C 语言严格区分大小写,Main和main是两个不同的标识符;程序由函数组成,语句必须以分号结尾,注释不会被编译执行。
随堂练习
六
8. 以下关于 C 程序上机步骤的注意事项,错误的是( )
A. 要注意编译器的选择
B. 代码中可以随意使用中文符号
C. 要保存源代码文件
D. 要关注编译和链接的错误提示
答案:B
解析:C 程序代码中必须使用英文符号,中文符号会导致编译错误。
课堂小结
七
谢谢
EV录屏5.4.2软件录制
Lavf58.33.100
本视频由湖南一唯信息科技开发的EV录屏软件录制, www.ieway.cn
EV录屏5.4.2软件录制
Lavf58.33.100
本视频由湖南一唯信息科技开发的EV录屏软件录制, www.ieway.cn
EV录屏5.4.2软件录制
Lavf58.33.100
本视频由湖南一唯信息科技开发的EV录屏软件录制, www.ieway.cn
EV录屏5.4.2软件录制
Lavf58.33.100
本视频由湖南一唯信息科技开发的EV录屏软件录制, www.ieway.cn
EV录屏5.4.2软件录制
Lavf58.33.100
本视频由湖南一唯信息科技开发的EV录屏软件录制, www.ieway.cn
$