问题 单项选择题

有以下程序
#include<string.h>
main(int argc,char *argv[])

int i,len=0;
for(i=1;i<argc;i++)len+=strlen(argv[i]);
printf("%d\n",len);

程序编译连接后生成的可执行文件是exl.exe,若运行时输入带参数的命令行是:
exl abcd efg 10<回车>
则运行的结果是:

A.22

B.17

C.12

D.9

答案

参考答案:D

解析: main()函数可以带参数,并且参数只能有两个,第一个参数(argc)类型为整型用来记下命令行的参数个数,第二个参数 (argv)为一个字符型指针数组,其各个元素用来记下命令行各参数字符串的首地址。本题执行时,argc的值为4,在循环中依次求出argv[1]、argv[2]和 argv[3]指向的字符串("abcd"、"efg"和"10")的长度,并把它们加到变量len中,得到len的值9。所以最后输出的len值为9,所以4个选项中D正确。

单项选择题
名词解释