1.编写一个简单的C语言程序:计算输入多个整数的平均值,并将此程序分割成多个小文件。 2.为第1题中的程序编写makefile文件,用make编译后改成返回最小值,再编译,观察有多少文件不需要重新...

1.编写一个简单的C语言程序:计算输入多个整数的平均值,并将此程序分割成多个小文件。
2.为第1题中的程序编写makefile文件,用make编译后改成返回最小值,再编译,观察有多少文件不需要重新编译。
1.avg.h
float avg(int x1,int x2,int x3,int x4,int x5);
avg.c
float avg(int x1,int x2,int x3,int x4,int x5)
{
return (float)(x1+x2+x3+x4+x5)/5;
}
main.c
#include<stdio.h>
#include"avg.h"
int main()
{
int x1,x2,x3,x4,x5;
float av;
printf(""请输入五个数字:\n");
scanf("%d %d %d %d %d",&x1,&x2,&x3,&x4,&x5);
av=avg(x1,x2,x3,x4,x5);
printf("平均值是:%f\n",avg);
return 0;
}
[root@localhost test]# gcc avg.c main.c -o test
[root@localhost test]# ./test
清输入五个数字:
12 32 6 5 8
平均值是:12.600000
2.main.c
#include<stdio.h>
#include"min.h"
int min(int x1,int x2,int x3,int x4,int x5);
int main()
{
int x1,x2,x3,x4,x5;
int mi;
printf("请输入五个数字:\n");
scanf("%d %d %d %d %d",&x1,&x2,&x3,&x4,&x5);
mi=min(x1,x2,x3,x4,x5);
printf("最小值是:%d\n",mi);
return 0;
}
min.c
int min(int x1,int x2,int x3,int x4,int x5)
{
int min=x1,x[5]={x1,x2,x3,x4,x5};


for(int i=0;i<5;i++)
{
if(x[i]<min)
min=x[i];


}
return x[i];
}
min.h
int min(int x1,int x2,int x3,int x4,int x5);
2.makefile
d:main.o min.o min.h
gcc main.o min.o -o d
main.o:main.c
gcc main.c -c
min.o:min.c
gcc min.c -c
[root@localhost test1]# make
gcc main.c -c
gcc min.c -c
请输入五个数字:
12 6 3 5 6
最小值是:3
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 下面是一个简单C语言程序,用于计算两个整数平均值并在终端输出: ```c #include <stdio.h> int main() { int a, b; float avg; printf("请输入两个整数:\n"); scanf("%d %d", &a, &b); avg = (a + b) / 2.; printf("它们的平均值是:%.2f\n", avg); return ; } ``` 使用gcc编译器将其编译为汇编程序文件的命令为: ``` gcc -S -o avg.s avg.c ``` 其中,-S选项表示汇编程序文件,-o选项指定输出文件名为avg.s,avg.c为源代码文件名。 生的汇编程序文件avg.s内容如下: ```assembly .file "avg.c" .text .globl main .type main, @function main: .LFB: .cfi_startproc pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 movq %rsp, %rbp .cfi_def_cfa_register 6 subq $16, %rsp movl $, -4(%rbp) movl $, -8(%rbp) movss LC(%rip), %xmm movl $.LC1, %edi movl $, %eax call scanf movl -4(%rbp), %eax addl -8(%rbp), %eax cvtsi2ss %eax, %xmm movss LC2(%rip), %xmm1 divss %xmm1, %xmm movss %xmm, -12(%rbp) movl $.LC3, %edi movl $, %eax call printf movl $, %eax leave .cfi_def_cfa 7, 8 ret .cfi_endproc .LFE: .size main, .-main .section .rodata .align 4 LC: .long .long 1084227584 .section .rodata.str1.1,"aMS",@progbits,1 .align 8 LC1: .ascii "%d %d\" .section .rodata.str1.4,"aMS",@progbits,1 .align 4 LC3: .ascii "\n\" .section .note.GNU-stack,"",@progbits ``` 可以看到,汇编程序文件中包含了与C语言程序对应的汇编指令,以及一些常量和字符串的定义。 ### 回答2: 针对这个问题,我们可以利用C语言编写一个简单程序,来实现输入两个整数平均值并在终端输出。具体实现方法如下: ``` #include <stdio.h> int main() { int num1, num2; float avg; printf("请输入一个整数:"); scanf("%d", &num1); printf("请输入第二个整数:"); scanf("%d", &num2); avg = (float)(num1 + num2) / 2; printf("两个数的平均数为:%0.2f\n", avg); return 0; } ``` 上述程序首先定义了三个变量,num1、num2、avg。这三个变量分别代表两个输入整数和它们的平均值。接着,使用printf函数向用户提示输入一个整数和第二个整数,并通过scanf函数获取用户输入的值。为了求出这两个整数平均值程序使用了一个简单的算术式子,并将结果存储在avg变量中。最后,使用printf函数将平均值输出至终端。 为了将上述程序转化汇编程序文件,我们可以通过GCC编译器来实现。具体步骤如下: 1.首先,我们需要将上述程序保存为一个C语言源代码文件。假设我们将程序保存为“avg.c”。 2.接着,打开命令行终端窗口(Windows操作系统可以使用CMD或者PowerShell,Linux操作系统可以使用终端或者控制台),进入文件所在的目录。 3.在终端窗口中输入以下命令: ``` gcc -S avg.c ``` 其中,avg.c是保存在当前目录下的C语言源代码文件的名称。-S参数告诉gcc编译器生汇编程序输出文件。 4.按下Enter键后,gcc编译器将开始将C语言源代码文件转化为汇编程序输出文件。 5.一旦编译器完工作,一个保存为avg.s的汇编程序输出文件将生在当前目录下。 6.如果您想要查看汇编代码,请使用文本编辑器(如Notepad或者Vim)打开avg.s文件。 注意,生的汇编程序文件和原始的源代码文件有所不同,因为它们涉及到不同的编程语言。但是,汇编程序文件和源代码文件之间仍然存在许多相同之处,例如变量名称、注释、函数名称等。通常,我们可以使用汇编程序文件来更深入地了解程序的工作原理,或者进行更高级的调试和分析。 ### 回答3: C语言是一门计算机编程语言,使用它可以编写出各种各样的应用程序,无论是系统软件还是应用程序都可以使用C语言编写编写一个简单C语言程序需要遵循一定的语法规则,并且需要使用到特定的编译器进行编译。 对于题目中要求编写程序,我们需要的任务是输入两个整数,求出这两个整数平均值,并输出到终端上。 C语言中,我们可以使用一些基本的函数来完这个任务。例如,scanf函数可以读取用户输入的数据,而printf函数可以将计算结果输出到终端上。 以下是实现这个任务的C语言程序: ``` #include <stdio.h> int main(void) { int num1, num2; float avg; printf("请输入两个整数:"); scanf("%d %d", &num1, &num2); avg = (float)(num1 + num2) / 2; printf("这两个整数平均值为:%.2f\n", avg); return 0; } ``` 在这个程序中,我们首先定义了三个变量,分别是两个整数和它们的平均值。然后使用scanf函数读取用户输入的两个整数,将它们相加并除以2得到平均值,最后使用printf函数将计算结果输出到终端上。 要将这个程序编译汇编程序文件,我们可以使用 gcc 编译器。在系统的终端中输入以下命令即可: ``` gcc -S average.c ``` 其中,average.c 是我们编写C语言程序的源代码文件名。执行这个命令后,gcc编译器会将源代码文件编译一个汇编程序文件 average.s。 在生的汇编程序文件中,我们可以看到程序的具体实现细节和指令序列。这些指令序列是计算机可以理解和执行的代码,它们由一系列的汇编指令组,每个指令对应着一条机器语言指令。 总之,编写一个简单C语言程序需要遵循一定的语法规则,并使用到特定的函数和变量,既可以完我们需要程序功能。而通过gcc编译器将程序编译汇编程序文件,可以让我们更好地理解程序的实现细节和计算机的工作原理。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值