当前位置:首页 » 编程语言 » 如何将c语言程序转化为代码
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

如何将c语言程序转化为代码

发布时间: 2022-12-25 11:53:20

‘壹’ 将一个C++程序代码转化成c语言程序代码

#include<stdio.h>
#include<math.h>
double lnchoose(int,int);
int main()
{
int m,n;
double zuheshu;
printf("本程序用来计算组合数 C(n,m),请输入n和m(n>=m)");
scanf("%d %d",&m,&n);
zuheshu=exp(lnchoose(n/1.0, m/1.0));
printf(" C(%d,%d)的值为:%d\n",zuheshu);
}
double lnchoose(int n, int m)
{
int ub;
double s1 = 0,s2 = 0;
if (m > n)
return 0;
if (m < n/2.0)
m = n-m; //原理是组合数中 C(n,m) = C(n,n-m)
for (int i=m+1; i<=n; i++)
{s1 += log((double)i);} //log中的参数是double类型
ub=n-m;
for (int i=2; i<=ub; i++)
{s2 += log((double)i);}
return s1-s2;
}
其实差不多就是改改输入输出,楼主大可自己动手的~~不过还是帮你改了~

‘贰’ C语言采用解释方式将源程序转换为二进制的目标代码吗

不是,C语言采用编译方式将源程序转换为二进制的目标代码。使用C语言编译器来完成。

所谓C语言编译器,就是把编程得到的文件,比如.c,.h的文件,进行读取,并对内容进行分析,按照C语言的规则,将其转换成cpu可以执行的二进制文件。其本质在于对文件的读入,分析,及处理。

C语言编写的程序代码称为源程序,对于计算机本身来说,它并不能直接识别由高级语言编写的程序。C语言程序经C语言编译程序编译后,生成后缀为.obj的二进制文件(称为目标文件)。

此.obj文件必须与系统提供的各种库函数连接起来生成一个后缀为.exe的可执行文件才可以执行。C语言的可执行文件由一系列机器指令构成的。

(2)如何将c语言程序转化为代码扩展阅读

解释执行和编译执行是计算机语言的执行方式。解释执行由解释器现场解释执行,不生成目标程序。如BASIC便是解释执行,一般解释执行效率较低,低于编译执行。

编译执行由编译程序将目标代码一次性编译成目标程序,再由机器运行目标程序。如:PASCAL,C,C++,delphi等语言。效率高于解释执行。

‘叁’ 如何把c语言代码转化为c 语言,如下

你的问题是“C语言代码转化为c 语言”,比较奇怪。你所附代码里出现了:

using namespace std;

因此这应该是C++代码。

C和C++两者的比较明显的差别,就是前者面向过程,后者面向目标。若把C++的源代码,变成C,则需要把C++所定义的class之类,都拆开,按照C的方式进行组合。

具体到你的源代码,C++专有的只有2处。可以做如下改变:

using namespace std; --- 这一行删除

cin >> t; --- 这一行改成如下的C格式

scanf("%d", &t);

因为你所附的源代码被紧缩到一块了,比较不方便进一步查看。你可以试试看,有问题继续交流。

‘肆’ 怎么把这个C语言代码转化为c++代码

实际上这段代码也算是C++代码,C语言是C++的子集,这段代码可以使用C++编译器编译的。

如果一定要改这段代码的话,也只能替换输入输出语句了:


#include <iostream>

using namespace std;

int main()
{
int n,r,i;

while(cin >> n >> r) {
if(n<0) {
cout << '-';
n=-n;
}
if(n==0) {
cout << '0' << endl;
continue;
}

int c=0, a[100];
while(n) {
a[c] = n % r;
c++;
n /= r;
}
for(i=c-1;i>=0;i--) {
if(a[i]>=10) {
cout << 'A' + a[i] - 10;
} else {
cout << a[i];
}
}
cout << endl;
}
}

‘伍’ 如何将编写好的C语言源程序变成可执行文件EXE

以GCC编译器为例,可以分为四步。x0dx0a第一步是预处理,包括语法检查等工作。x0dx0agcc -P abc.cx0dx0a第二步由源程序生产汇编语言代码。x0dx0agcc -S abc.c x0dx0a会生成abc.s文件,这个文件里就是汇编代码。x0dx0a第三步编译器生成目标代码,一个源文件生成一个目标代码。x0dx0agcc -c abc.cx0dx0a会生成abc.ox0dx0a第四步连接器从目标代码生成可执行文件。x0dx0agcc abc.ox0dx0ax0dx0a目标代码包括机器码和符号表(函数及变量名)。连接器的主要作用是通过符号表在库文件和其他模块中找到在目标代码中引入或未定义的符号(函数及变量名),将几个目标代码合成可执行文件。

‘陆’ 怎样把C语言源程序代码变成可执行程序

比如你有一个study项目,里面建了一个test.cpp文件x0dx0a点菜单栏的生成-生成studyx0dx0a然后再去你建这个项目的文件夹里面的debug文件夹里有个和项目study同名的exe文件。x0dx0a如在d盘的。x0dx0ad:\study\debug\study.exex0dx0a这个就是生成的可执行文件了。

‘柒’ 把C语言代码转成Java代码

package dis;
import java.io.*;
import java.math.*;
public class dis
{
public static void main(String [] s) throws Exception
{
Float a,b,c;
double x2;
double x1;
System.out.println("请输入a, b, c的值");
BufferedReader bReader=new BufferedReader(new InputStreamReader(System.in));
a=Float.parseFloat(bReader.readLine());
b=Float.parseFloat(bReader.readLine());
c=Float.parseFloat(bReader.readLine());
if (b*b - 4*a*c <= 0)
System.out.println("输入的系数不对,b2-4ac不大于0!程序退出!");
else
{
x1 = (-b + Math.sqrt(b*b - 4*a*c))/2*a;
x2 = (-b - Math.sqrt(b*b - 4*a*c))/2*a;

System.out.println("x1 = "+ x1);
System.out.println("x2 = "+x2);
}
return;
}

}

‘捌’ 如何将下面c语言代码转换成Java代码

完整的直译为java方法是这样的,但是这样写dataLen的值必须小于等于数组长度,不然会出现下标越界的异常

public int accumulativeVerification(int[] data, int dataLen) {
    int sum = 0;
    for (int i = 0; i < dataLen; i++) {
        sum += data[i];
    }
    return sum;
}

如果是意译(计算int数组的所有数之和),那么java可以这样写

public int accumulativeVerification(int[] data) {
    int sum = 0;
    for (int i = 0; i < data.length; i++) {
        sum += data[i];
    }
    return sum;
}

‘玖’ 如何将c语言程序转成汇编语言程序。

如果是VC则在编译器命令行参数再加 /FA 则会生成汇编代码。如果参数是 /FAs 则会同时将源码和汇编代码。
/FA 程序集代码;.asm
/FAc 机器码和程序集代码;.cod
/FAs 源代码和程序集代码;.asm
/FAcs 机器码、源代码和程序集码;.cod

/Fa的用法

/Fa 为编译中的每个源代码文件创建一个源文件.asm。
/Fa文件名 将文件名.asm 放到当前目录中。仅在编译单个源代码文件时有效。
/Fa文件名.扩展名 将文件名.扩展名放到当前目录中。仅在编译单个源代码文件时有效。
/Fa目录\ 为编译中的每个源代码文件创建一个源文件.asm,并将其放到指定目录中。请注意必须有后缀反斜杠。只允许使用当前磁盘上的路径。
/Fa目录\文件名 将文件名.asm 放到指定目录中。仅在编译单个源代码文件时有效。
/Fa目录\文件名.扩展名 将文件名.扩展名放到指定目录中。仅在编译单个源代码文件时有效。

如果你是用gcc 或 g++编译器,如dev c++则加入命令行参数 -S 即可