c语言 求详细步骤 argc argv 啥意思啊

以下程序经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行exabcdefgh3k44执行后的输出结果是()。#include<string.h>... 以下程序经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行
ex abcd efg h3 k44
执行后的输出结果是( )。
#include <string.h>
main(int argc ,char *argv[ ])
{ int i,len=0;
for(i=1;i<argc;i+=2) len+=strlen(argv[i]);
printf("5d\n",len);
}
A.14 B.12 C.8 D.6
展开
 我来答
新新5F602
推荐于2018-04-11 · TA获得超过255个赞
知道小有建树答主
回答量:223
采纳率:0%
帮助的人:214万
展开全部
main是个函数,argc、argv是输入的参数,但是和一般的函数又不太一样,这里argc(argument count :参数个数)argv(argument vector(大概是):指针数组,指向参数内容)。

argc至少为1,这是ex后没有任何参数,argv[0]指向ex程序的路径如E:\ex.exe;

ex abcd efg h3 k44,有4个参数,加上默认的共有5个参数,分别如下:
argv[0] 指向路径E:\ex.exe;\
argv[1] 指向字符串"abcd"
argv[2] 指向字符串"efg"
argv[3] 指向字符串"h3"
argv[4] 指向字符串"k44"

for 循环计算的是argv[1]、argv[3]两个字符串的长度和4+2=6,所以为D
小呆小呆2010
2012-07-11 · TA获得超过426个赞
知道小有建树答主
回答量:150
采纳率:100%
帮助的人:73.7万
展开全部
argc代表参数的个数,argv是一个指针数组,每个元素都指向一个参数字符串。程序的功能是从第一个程序参数开始,去奇数个参数的长度之和。所以len=4+2=6,答案选D。
printf("5d\n",len); 这句话错了,应该是:printf("%d\n",len);
追问
能否再把思路 一步一步的详细点解释一下   谢谢
追答
ex abcd efg h3 k44,1个程序自己的名字加上4个参数,共有5个参数,argv存储结构如下:
argv[0] 指向程序自身名称对应的字符串"c:\ex.exe"
argv[1] 指向字符串"abcd",长度为4
argv[2] 指向字符串"efg",长度为3
argv[3] 指向字符串"h3",长度为2
argv[4] 指向字符串"k44",长度为3
循环语句取数组下标1和3,所以去字符串长度4和2之和。当下标为5的时候退出循环,输出最终的答案6。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式