1和1c语言编程,第1章 C语言和计算机1.1 怎样编程

问题:

1)计算机的组成及计算机与工厂的异同。

2)用户、程序员和计算机三者的关系。

3)计算机怎样求出用户输入的两个整数的和。

4)C语言语句中常见的组成及作用。

5)C语言与计算机的对应关系。

C语言是程序员与计算机交流的工具,程序员借助C语言“指挥”计算机为用户提供服务,因此,只有先了解了计算机才能用C语言对它发布命令,也才能真正“懂得”C语言。

计算机只是一台会执行命令的机器,与一个工厂类似。计算机有五大部件组成,它们分别是输入设备、存储器、运算器、输出设备和控制器。输入设备用于向计算机中输送需要处理的数据,类似向工厂中的输送原料的运输设备。存储器用于存储数据(待加工的原料,加工后的成品等),类似工厂中的仓库。运算器用于计算(处理数据),类似工厂中的加工车间。输出设备用于显示处理结果,类似工厂的产品展示中心。控制器用于执行命令,即控制其它部件按照预先规定的步骤有条不紊地工作,类似工厂中制定生产计划的调度。计算机的五大部件组成如图1所示。

0818b9ca8b590ca3270a3433284dd417.png

了解了计算机之后,现通过一个简单的案例来说明计算机、用户和程序员的关系。假设用户需要借助计算机求两个整数的和。用户和计算机之间的交互是:用户给计算机提供两个整数,计算机在输出设备(显示器)上显示这两个整数的和。在这个过程中计算机需要把用户提供的原料加工成用户希望的产品并反馈给用户。计算机只是一台如图1所示的机器,只会根据命令完成相应的操作,因此,程序员的工作就是设计一个合理的加工流程,并把每个步骤用计算机能够理解的命令表示出来,这样计算机就可以根据命令序列实现加工流程并最终完成任务。

怎样调度计算机的组成部件才能完成“求两个整数的和”这个任务呢?

可以用下面的四个步骤完成。

第一步:为了友好,计算机在显示器(输出设备)上显示一行提示信息“请输入两个整数:”

第二步:等待用户输入,当用户借助键盘(输入设备)输入两个整数后,计算机获得用户的输入,并把用户的输入存储到内存中。

第三步:计算机先把位于内存中的用户输入的两个整数在运算器中求和,再把和保存到内存中。

第四步:计算机在显示器(输出设备)上显示最终的结果“和为……”,其中省略号表示一个具体的整数,因用户输入的不同而不同。

由此可见,想让计算机完成某个任务,程序员首要的工作就是为计算机设计一个工作步骤,因为计算机只是一台由五部分组成的机器。从这个角度说,编程是什么?

怎样指挥计算机按照设计的步骤工作呢?当然要借助C语言了。下面按步分析,把每一步都变成计算机能理解执行的C语言命令。

第一步:怎样命令计算机在输出设备上显示信息?

在C语言中,函数printf可用于控制输出设备。语句printf("请输入两个整数:\n");就可以命令计算机在显示器上该程序的运行窗口中显示如下所示的信息。

0818b9ca8b590ca3270a3433284dd417.png

问题:printf函数有什么用?怎么用?

切记:C语言使用英文的字母和符号(半角符号),所有非英文的字符只能出现在一对双撇号(英文的双引号)中。

第二步:怎样获得用户的输入并把用户输入的整数存入内存中。

在C语言中,函数scanf可用于控制输入设备,使用该函数可以“命令”计算机获得用户通过输入设备输入的数据。

scanf函数执行时,程序通常会暂停运行等待用户输入数据。

用户通常用键盘输入数据,按下回车键就表示输入完成。用户完成输入后,scanf函数会“命令”计算机获得用户的输入,并把用户输入的数据存入内存中。

用户输入的数据会存入到内存中的什么地方呢?

可简单地认为内存是由存储单元组成的。内存类似学校的宿舍区,存储单元类似于宿舍。内存中的存储单元可以存储数据,存储单元最大的特点是分类型,常见的有可存储整数的整型存储单元,可存储小数的浮点型存储单元和可存储字符的字符型存储单元。整型存储单元可以存入整数但不能用于存储小数。宿舍用房间号标识,内存中的存储单元在计算机中以二进制形式的地址标识,但在C语言中用变量标识存储单元。C语言语句int j;中,字符串int是C语言命令,这条语句命令计算机准备一个整型的存储单元,与j对应,字符j就是C语言中的变量。变量有一个容易识别的由字符(串)构成的名字,如变量a,变量ave等。C语言变量对应于计算机内存中的存储单元,在C语言中操作变量,C语言语句执行时计算机就会操作与变量对应的存储单元。在C语言语句j=23;中,字符j是变量,“=”是C语言命令,表示赋值,23就是整数23,这条语句命令计算机把整数23存储到与变量j对应的存储单元中。“=”在C语言中是赋值号,语句j=23;可读作:变量j赋值为整数23。

任务中需要两个整型的存储单元存储用户输入的整数,因此,需要两个整型变量。假设变量a和变量b是两个用于保存用户输入整数的整型变量,那么,获得用户输入的两个整数,并把用户输入数据存入内存中的C语言语句为:scanf("%d%d", &a, &b);。这条语句可简单地理解为:计算机先暂停执行命令,等待用户输入两个整数,当用户输入完成后,获得用户输入的数据,并把它们存入与变量a和变量b相关的整型存储单元中。

等待用户输入时,如用户通过键盘输入“23 32回车”,计算机就会把用户输入的整数23存入变量a中,整数32存入变量b中。C语言中变量a的值就变成了23,变量b的值就变成了32。

“23 32回车”中,回车表示一次输入完成,一次输入多个数据时可用空格分隔数据。用户也可输入“23回车”,此时用户只是输入了一个整数,计算机会继续暂停执行,等待用户输入第二个整数,因为C语言语句命令计算机获得两个整数。

问题一:语句scanf("%d%d", &a, &b);中,%d怎样理解?

可能代表一个整数吧。

问题二:怎样理解C语言语句中单独出现(不在双撇号)的字符(串)?

有三种可能表示函数,如scanf和printf;表示变量,如a和b;表示命令如int。C语言中用于表示命令的字符串常被称为关键字,共有32个。关键字和函数都具有特定的功能,是C语言的命令。变量标识了存储单元,通常为命令操作的对象。

第三步:求出用户输入的两个整数的和。

计算机的运算器可求和,C语言怎样命令计算机求和呢?用+号,C语言中3+5可理解为命令计算机求整数3和5的和,其结果为8。现在求用户输入的两个整数的和,而用户输入的数据存储在变量a和变量b中,因此,C语言中a+b可让计算机求出a和b的和,实际上也就是用户输入的两个整数的和。还需把求出的和保存起来,设整型变量c用于保存和,用其保存数据时可使用赋值命令,求和并保存的C语言语句为:c=a+b;,可读作变量c赋值为变量a与变量b的和,其中加号+和赋值号=是命令,字符(串)a,b,c是变量,表示命令操作的对象。

问题:怎样理解C语言语句的作用?

提示:分析C语言语句的组成,找出其中的命令和命令操作的对象。

第四步:把求出的和在显示器上显示出来反馈给用户。

在显示器上显示信息在C语言中需使用printf函数,和在变量c中,C语言语句printf("和为c");会命令计算机在显示器上显示“和为c”。printf函数中双撇号内的信息会原样出现在显示器上,也就是说双撇号内的字符c不会被认为是变量c而只是平常的字符c,同样语句printf("a+b");的执行结果为“a+b”,双撇号内的加号+也不会被认为是命令。

语句printf("和为%d", c);的执行结果为“和为55”,语句中字符c不在双撇号内,故表示一个变量;双撇号内的%d表示整数,执行时%d会被变量c的值代替。可见双撇号内的%d有特殊的含义。

问题:C语言语句中位于双撇号里面的字符和外面的有何不同?

小结:下面四条C语言语句可以命令计算机执行刚才设计的四个步骤,从而完成用计算机“求两个整数的和”这个任务。

printf("请输入两个整数:\n");

scanf("%d%d", &a, &b);

c=a+b;

printf("和为%d", c);

核心问题:怎样编程?

程序是用户和计算机之间的桥梁,利用程序可以指挥计算机的五大组成部件有条不紊地工作完成用户的任务。

编程分两步。

第一步:设计。设计出合理的工作步骤以调度计算机的五大组成部件协同工作并最终完成任务。

第二步:编码。实际上是“翻译”,把步骤翻译成C语言语句。

从不同的角度分析。

用户:借助计算机求和。提供原料(两个整数),获得结果(和)。

计算机:类似工厂,可以把原料加工成产品(和),但需要在程序的指挥下工作。

程序员:根据用户的需求,设计处理流程加工步骤,把步骤翻译成C语言语句。

重点:

1)理解C语言语句的组成。

2)理解C语言语句的作用(即计算机会如何执行)。

3)体会C语言与计算机的对应关系。

scanf函数对应于输入设备,变量对应于内存中的存储单元,代数式(3+5)对应于运算器,printf函数对应于输出设备,语句的顺序对应于控制器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值