首页 > 试题广场 >

则程序执行后的输出结果是()

[单选题]

设下列程序经编译链接后生成的可执行文件是test.exe。若运行该程序时输入带参数的命令行为test abcd efg h3 k44<回车>,则程序执行后的输出结果是()

#include<stdio.h>
#include<string.h>
void main(int argc,char *argv[])
{      
 int i,len=0;
 for(i=1;i<argc;i+=2)
     len+=strlen(argc[i]);
 printf("%d\n",len);
}
  • 6
  • 8
  • 12
  • 14
我运行的结果为10
strlen("abcdefg")+strlen("k44") == 10;

编辑于 2022-03-25 18:37:30 回复(0)
argc是命令行总的参数个数
argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数命令行后面跟的用户输入的参数
char *argv[]是一个字符数组,其大小是int argc,主要用于命令行参数 argv[] 参数,数组里每个元素代表一个参数;
比如你输入
test a.c b.c t.c

argc = 4

argv[0] = "test"
argv[1] = "a.c"
argv[2] = "b.c"
argv[3] = "t.c"
                                             ——转自百度 winguuu
发表于 2020-03-15 10:22:11 回复(0)
第7行 argc[i] 应该为argv[i]

选A
 ./a.out test abcdefg h3 k44
strlen("test") + strlen("h3") = 6  
sizeof("test") + strlen("h3") = 8
test + \0 + h3 + \0 


编辑于 2017-10-16 17:59:43 回复(0)
aa
编辑于 2017-04-18 19:16:57 回复(2)