问题 单项选择题

有以下程序: main(int argc, char *argv[]) { int n=0,i; for (i=1; i<argc; i++) n=n*10+*argv[i]-'0'; printf("%d\n",n); } 编译连接后生成可执行文件tt.exe。若运行时输入以下命令行 tt 12 345 678 程序运行后的输出结果是( )。

A.12

B.12345

C.12345678

D.136

答案

参考答案:D

解析: 因为题目给出的命令行为tt 12 345 678,所以main函数的两个参数分别为4和 {"tt","12","345","678")。程序中,通过一个for循环,遍历了后面的三个参数字符串,每次将n自乘10,然后累加*argv[i]-'0',即第i个参数字符串的首字符减去'0'。一个数宁字符减去,O字符,即可得到这个数字字符的实际数值,因此三次循环的结果是让n的值变为136,故本题应该选择D。

单项选择题
单项选择题 B1型题