⑴ 经编译链接后生成可执行文件ex.exe,若运行是输入以下带参数的命令行,运行后输出结果是
Printf(“%d\n”,len);
把P改成小写的,把双引号改成 "".
我运行了也是6.
⑵ 假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的DOS提示符下键入
输出结果
DEF
ABC
PEOG
就是你不给参数的话,argc是1。给n个参数,argc就是n+1。
argv[0]是可执行程序的文件名 argv[n] 是第n个参数
⑶ c程序经过编译,连接后才能形成一个真正可执行得二进制计算机指令 哪里错了
二进制计算机指令,,,,,错了
⑷ C源程序经编译连接后形成的可执行文件的扩展名为
在linux-0.11下为a.out,可以很简单的学习到相关编译原理方面的知识。
⑸ 假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的提示符下键:
回答求助:
这段代码不长,但要说清楚你的要求还需要比较长的一段话。首先,说一下main(int argc,char *argv[])函数的两个形参,第一个int argc,是记录你输入在命令行(你题目中说的操作就是命令行输入)上的字符串个数;第二个*argv[]是个指针数组,存放输入在命令行上的命令(字符串)。当命令行输入PROG ABCDEFGH IJKL时,记录了3个字符串(以间隔为界,不含间隔,这是约定),*argv[0]中放的是"PROG",*argv[1]中放的是"ABCDEFGH",*argv[2]中放的是"IJKL",这样argc就是3了。while(--argc>0)是条件循环,argc>0时继续;argc初值是3,前置--先减1为2,所以后面的输出语句打出*argv[2]中的内容IJKL;再执行while(--argc>0),argc再减1为1,打出*argv[1]中的内容ABCDEFGH;再循环,argc减1为0,条件破坏,不再执行while(--argc>0)的循环体。所以最后显示的是IJKLABCDEFGH。不知给你说清楚了没有?希望有帮助。
⑹ 假定一下程序经编译和连接后生成可执行文件PROG.EXE,如果在DOS提示符下键入PROG ABCD EFGH IJKL<回车>,
PROG ABCD EFGH IJKL<回车>
程序名为prog
有三个命令行参数ABCD EFGH IJKL
while(--argc>0) printf("%s",argv[argc]);
argc是指包括程序名在内的参数个数,本程序为4
argv是个指针数组,里面存的是命令行参数和程序名
以上语句是从后向前输出各参数,所以,结果为:IJKLEFGHABCD
⑺ 程序编译链接后形成的可执行文件是什么文件
xxxx.exe可以执行文件
⑻ 用C语言编写的源程序必须经过编译连接后,生成扩展名为.EXE的可执行文件,才能运行对吗
哥们,这么理解是对的,不过感觉有点表面。
建议看看计算机一些原理,像你说的这个问题我会想到,计算机最终只能识别二进制码,
所以其实不管我们一切啥语言,最终都是通过编译器编译成二进制码,计算机才能识别
而去运行,而C语言编写的程序,肯定是要经过一系列的编译,链接,生成可执行的文件。
在windows系统中,执行文件都是.exe为扩展名的。不过在linux系统中就不一样了,linux
系统并不区分扩展名,所以也就无所谓什么.exe之类的文件,只要知道最终生成可执行的
二进制文件就可以了。
⑼ 有以下程序,经编译链接后生成可执行文件ex.exe,若运行时输入以下带参数的命令行:ex ab
argv数组第0个元素保存是程序的路径啊,下标1是ex,下标3是efg,下标5是k44,strlen获取的长度不包括终止符'\0',长度应该是8啊。怎么看到的答案都是6啊。是因为时代的变迁,现在版本多了个路径了?