假定下列程序的可执行文件名为filel.exe,在该程序的子目录下输入命令行: file1China Bejing<回车> main(int argc,char*argv[]) { while(argc-->1) printf("

admin2010-01-10  31

问题 假定下列程序的可执行文件名为filel.exe,在该程序的子目录下输入命令行:    file1China Bejing<回车>    main(int argc,char*argv[])    {  while(argc-->1)    printf("%s\n",*++argv);}    则程序运行后的输出结果是(  )。

选项 A、filel China Bejing
B、China Bejing
C、China
D、Bejing

答案2

解析 主函数的第一个参数argc为整形参数,记下从命令行输入的参数的个数;第二个参数argv是一个字符型的指针数组,它的每一个指针指向命令行输入的参数字符数。在本例中argc的值为3,argv[0]指向字符串.“filel”,argv[l]指向参数字符串“China”, argv[2]指向字符串“Bejing”。在main()函数中,while循环执行了2次。第1次循环,argc=3,3>1为真,argc-1=3-1=2,执行循环体输出*++argv,argv为字符型的指针数组的数组名,代表数组的首地址,同时也是数组第1个元素的地址,++argv指向数组的第2个元素,第2个元素是一个指针,它指向字符串“China”。第2次循环,argc=2,2>1为真,argc-1=2-1=1,执行循环体输出*++argv,这次循环畔++argv指向数组的第3个元素,第3个元素是一个指针,它指向字符串“Bejing”。argc=1时,1>1为假,退出循环。所以,4个选项中选项B符合题意。
转载请注明原文地址:https://kaotiyun.com/show/AUWp777K
0

最新回复(0)