niusouti.com

有以下程序:includemain(int argc,char*argv[]){int i=1,n=0;while(i有以下程序: #include<string.h> main(int argc,char*argv[]) {int i=1,n=0; while(i<argC){n=n+strlen(argv[i]);i++} printf("%d\n",n); } 该程序生成的可执行文件名为:proc.exe,若在运行时输入命令行: proc 123 45 67 则该程序的输出结果是( )。A.3B.5

题目
有以下程序:includemain(int argc,char*argv[]){int i=1,n=0;while(i

有以下程序: #include<string.h> main(int argc,char*argv[]) {int i=1,n=0; while(i<argC){n=n+strlen(argv[i]);i++} printf("%d\n",n); } 该程序生成的可执行文件名为:proc.exe,若在运行时输入命令行: proc 123 45 67 则该程序的输出结果是( )。

A.3

B.5

C.7

D.11


相似考题
更多“有以下程序:#include<string.h>main(int argc,char*argv[]){int i=1,n=0;while(i<argC){n=n+strl ”相关问题
  • 第1题:

    有以下程序 main(int arge,char *argv[] ) int n,i=0; while(argv[1] [i] !='\0') { n-fun(); i++;} printf ( "%d\n" , n*argc); int fun ( ) { static int s=0; s+=1; return s; } 假设程序经编译、连接后生成可执行文件exam.exe,若键入以下命令 exam 123 <回车>

    A.6

    B.8

    C.3

    D.4


    正确答案:A
    解析:主函数的第一个参数alzc为整形参数,记下从命令行输入的参数的个数;笫二个参数argv是一个字符型的指针数组,它的每一个元素指向命令行输入的参数字符数。在本例中argc的值为2,argv[0]指向字符串“exam”,argv[1]指向参数字符串“123”。在main()函数中,while循环执行了3次,调用了3次fun()函数;第一次调用了fun()函数时,定义了一个静态变量s并赋初值0,加1后作为函数值返回,n的值为1;第二次调用ram()函数时,静态变量s的值将保留上一次退出时的值1,再加1为2,作为函数值返回,n的值为2;同理第三次调用返回后,n的值为3。输出n*argc的值为6所以,A选项为所选。

  • 第2题:

    有以下程序 main(int argc,char *argv[]) { int n,i=0; while(argv[1][i]!='\0') { n=fun();i++;} printf("%d\n",n*argc) ; } int fun() { static int s=0; s=-1; return s; } 假设程序经编译、连接后生成可执行文件exam.exe,若键入以下命令行 cxam123<回车> 则运行结果为

    A.6

    B.8

    C.3

    D.4


    正确答案:A
    解析:主函数的第一个参数argc为整型参数,记下从命令行输入的参数的个数:第二个参数argv是一个字符型的指针数组,它的每一个元素指向命令行输入的参数字符数。在本例中argc的值为2,argv[0]指向字符串“exam”,argv[1]指向参数字符串“123”。在main()函数中,while循环执行了3次,调用了3次fun()函数:第一次调用fun()函数时,定义了一个静态变量s并赋初值0,加1后作为函数值返回,n伪值为1;第二次调用fun()函数时,静态变量s的值将保留上一次退出时的值1,再加1为2,作为函数值返回,n的值为2;同理第三次调用返回后,n的值为3。输出n*argc的值为6。

  • 第3题:

    有以下程序: include main(int argc,char *argv[ ]) { int i,len=0; for(i=1;i

    有以下程序: #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
    解析:本题通过键盘赋值,使指针argv,分别指向字符串“abcd、O”,“efg\0”和“10\0”。

  • 第4题:

    有以下程序:include include main(int argc,char *argv[]){ int i,len=0;f

    有以下程序: #include <stdio.h> #include <string.h> main(int argc,char *argv[]) { int i,len=0; for(i=1;i<argc;i+=2)len+=strlen(argv[i]); prinff("%d\n",len); } 此程序经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行: ex abed efg h3 k44则执行后的输出结果时( )。

    A.14

    B.12

    C.8

    D.6


    正确答案:D
    解析:main函数可以有两个参数,第一个参数为一个整型变量,表示命令行参数的个数,本题为5;第二个参数为一个字符型指针数组,其中第一个数组元素指向程序名,第二个数组元素指向命令行中的第一个参数,以后依此类推。由程序中的for循环可以看出,程序是求第一(argv[1])、第三(argv[3])个参数的长度之和,即4+2=6。

  • 第5题:

    有以下程序includemain(int argc,char*argv[]){int i,len=0;for(i=1;i

    有以下程序 #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正确。