递归和倒序计数

//bingary.c--以二进制形式打印整数
#include<stdio.h>

void to_binary(unsigned  long n);
int main(void)
{
    unsigned long number;
    printf("enter an integer (q to quit):\n");
    while (scanf("%1u", &number) == 1)
    {
        printf("binary equivalent:");
        to_binary(number);
        putchar('\n');
        printf("enter an integer (a to quit):\n ");
    }
    printf("done.\n");
    return 0;
}
void to_binary(unsigned long n)   //递归函数
{
    int r;
    r = n % 2;
    if (n >= 2)
        to_binary(n / 2);
    putchar(r == 0 ? '0' : '1');
    return;
}

在该程序中,如果r的值是0,to_binary函数就是显示字符‘0’:如果r的值是1,to_binary()函数则显示字符‘1’。条件表达式r==0? '0':'1'用于把数值转换成字符。

所有的C函数皆平等

程序中每个C函数与其他函数都是平等的。每个函数都可以调用其他函数,或是被其他函数调用。这点与Pascal和Modula-2中的过程不同,虽然过程都可以嵌套在另一个过程中,但是嵌套在不同的过程中的过程之间不能相互调用。

main()函数与其他函数有点不同,当main()与程序中的其他函数放在一起是,最开始执行的是main()函数中的第1条语句,但是这也是局限之处。main()也可以被自己或其他函数递归调用’

编译多源代码文件的程序

UNIX

假定在UNIX 系统中安装了UNIX C编译器cc(最初的cc已经停用,但是许多UNIX系统都给cc命令起了一个别名用作其他编译器命令,典型的是gcc或clang).假设file1.c和file2.c是两个含C函数文件,线面将编译两个文件并生成一个a,out的课执行文件:

cc file1.c file2.c

另外还生成了两个名为file1.o和file2.o的目标文件。如果后来改动了file1.c ,而file2.c不变,可以使用以下命令编译第一个文件,并与第二个文件目标代码合并:

cc file.o  file2.o

Linux

嘉定LINUX系统安装了GUN C编译器GCC。假设file1.c 和file2.c是两个内涵C函数的文件,下面的命令可以将编一两个文件并生成名为a.out的可执行文件。

DOS命令编译器

Windows和苹果IDE 编译器

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值