
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 展开
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 展开
2个回答
展开全部
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
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
展开全部
argc代表参数的个数,argv是一个指针数组,每个元素都指向一个参数字符串。程序的功能是从第一个程序参数开始,去奇数个参数的长度之和。所以len=4+2=6,答案选D。
printf("5d\n",len); 这句话错了,应该是:printf("%d\n",len);
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。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |