第1章 C语言和计算机——1.3 C语言程序

问题:

1)功能相同的程序和函数,它们的作用相同吗?

2)怎样使用程序?怎样使用函数?

3)程序和函数有何相同和不同之处?

4)怎样理解“程序是由函数组成的,但执行程序就是执行main函数的函数体”?

5)由多个函数组成的程序执行时,每个函数都会执行吗?

简单地说,C语言编程在形式上就是把与问题解决步骤相对应的C语言语句放置到一个main函数中。C语言程序运行时,计算机只执行程序中main函数的函数体,执行完毕程序也就运行结束了。main函数是C语言程序的标志,它可以没有输入和返回值,即首部可定义为void main( )。其中void为关键字,表示函数没有返回值,圆括号中没有形参表示函数不需要输入值。下面的程序用于求用户输入的两个整数的和。

void main( )

{

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

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

  c=a+b;

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

}

从形式上分析,定义程序就是定义main函数。在main函数中使用了输入输出函数命令控制计算机的输入输出设备。C语言规定,函数必须先定义再使用,因此,完整的程序应该是下面的样子。

? printf(…)

{

       ……

}

? scanf(…)

{

       ……

}

void main( )

{

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

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

  c=a+b;

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

}

printf函数和scanf函数是库函数,在C语言中有定义,可简单认为它们在stdio.h文件中定义,所以编程时只需找到stdio.h文件,把文件内容拷贝到此处就可以了。C语言中include命令能帮助程序员完成这些操作,故程序可写作:

#include <stdio.h>

void main( )

{

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

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

  c=a+b;

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

}

include命令前面需要个#号,与库函数有关的文件可放置在尖括号中。#include <stdio.h>没有分号,表明它不是C语言语句。它的作用是找到stdio.h文件,用文件的内容替换掉它本身。

程序中使用了变量a、变量b和变量c,与函数一样,变量也必须先定义再使用。因此,完整的程序为:

#include <stdio.h>

void main( )

{

       int a, b, c;

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

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

  c=a+b;

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

}

程序中先利用语句int a, b, c;让计算机为变量abc分配整型存储单元,然后用自定义函数命令printf让计算机在显示器上程序运行窗口中显示“请输入两个整数:”的提示;接着,当scanf函数执行时,计算机会暂停程序的执行,等待用户输入两个整数,此时程序的运行窗口如下图所示。

当用户输入两个整数后,程序的运行窗口如下图所示。

当用户按下回车键表示输入完成后,scanf函数会指挥计算机把用户输入的整数2332分别存入变量a和变量b标识的整型存储单元中,即在程序中变量a的值已经是23,变量b的值已经是32了。

计算机会依次执行下面的语句。c=a+b;使它求出变量a与变量b的和,并把和存入变量c中,变量c的值变成了55printf("和为%d", c);让计算机在显示器上程序运行窗口中显示“和为55”,程序的运行窗口如下图所示。

最后,程序执行到界定main函数的函数体的花括号}处停止,程序执行完毕。

这个程序的功能是求用户输入的两个整数的和。程序需要用户输入两个整数,它把计算结果反馈给用户。在1.2中定义的函数命令f的功能也是求两个整数的和,函数需要用户输入两个整数,它也把计算结果反馈给用户。程序和函数的用法不同。程序的用户通常为人,双击程序可以运行程序,程序需要输入数据时会暂停执行等待用户输入,人通过键盘输入数据,程序则借助scanf函数获得用户的输入。程序的结果则借助printf函数以显示在程序运行窗口中的方式反馈给用户。函数的用户实际上是程序员,函数的使用方式为函数调用,使用函数时需准备好函数的输入,要把函数的输入放置在函数名后的一对圆括号中,如f(a,b),函数执行时会把输入自动赋值给形参;函数的输出通常表现为一个数,即f(a,b)最终会被一个整数(变量a与变量b的和)代替。

下面的程序中先定义一个求两个整数的和的函数命令,然后利用该自定义命令求出了用户输入的两个整数的和。

#include <stdio.h>

int sum(int x, int y)

{

       int z ;

       z = x + y ;

       return z ;

}

void main( )

{

       int a, b, c;

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

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

  c=sum(a, b);

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

}

分析这个程序的执行过程。

库函数abs的首部为int abs(int x),在math.h中定义,其功能是求整型形参x的绝对值,利用该函数求用户输入的整数的绝对值的程序如下。

#include <stdio.h>

#include <math.h>

void main( )

{

       int a, b;

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

  scanf("%d", &a);

  b=abs(a);

  printf("%d的绝对值是%d", a, b);

}

在程序中#include <stdio.h>引入了库函数printfscanf#include <math.h>引入了库函数abs

重点:

1)程序的用户通常为人,其需要的数据多由键盘输入,其处理结果多通过显示器反馈。普通函数本质上是C语言中的自定义命令,用于指挥计算机完成特定的工作,它的用户实际上为程序员,其需要的数据在使用时直接给出,其处理结果多表现为一个特定的数值,比如printf("%d的绝对值是%d",-3, abs(-3))的执行结果为显示器上输出“-3的绝对值是3”,函数调用abs(-3)的最终结果就是整数3

2)编程本质上就是设计步骤并用相应的语句序列让计算机完成某种功能。编程时善于使用库函数不仅可以提高编程效率,而且可以完成一些“不可能”完成的任务。用计算机能够直接理解执行的命令让计算机获得用户的输入并赋值给相关变量,对C语言初学者来说就是一个不可能完成的任务,但借助库函数scanf,程序员可以轻松地控制计算机的输入设备。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值