首页 > 试题广场 > 以下程序经编译连接生成可执行文件 tt.exe,若运行以下命
[单选题]
以下程序 经编译连接生成可执行文件   tt.exe ,若运行以下命令行   tt 12 345 678,   则程序的输出结果是()


  • 136
  • 12345
  • 12345678
  • 12

4个回答

添加回答
推荐

选择 A

本题考查main函数默认参数argc和argv的意义

main函数的第一个参数argc为整型参数,记下从命令行输入参数的个数;

第二个参数argv是一个字符型的指针数组,它的每一个元素分别指向命令行输入的各字符串。

在本例中argc的值为4,argv[0]指向字符串“tt”,argv[1]指向字符串“12”,argv[2]指向字符串“345”, argv[3]指向字符串“678”。

程序中,通过一个for循环,遍历了后面的三个参数字符串,每次将n自乘10,然后累加argv[i]-‘0’,即 第i个参数字符串的首字符减去‘0’。  一个数字字符减去‘0’字符,即可得到这个数字字符的实际数值,因此三次循环之后n的值为136。

编辑于 2019-04-24 14:30:14 回复(0)
选A。
该题考察的是main函数C编译器允许main()函数没有参数,或者有两个参数(有些实现允许更多的参数,但这只是对标准的扩展)。这两个参数,一个是int类型,一个是字符串类型。第一个参数是命令行中的字符串数。第二个参数是一个指向字符串的指针数组。
命令行中的每个字符串被存储到内存中,并且分配一个指针指向它。按照惯例,这个指针数组被称为argv(argument value)。系统使用空格把各个字符串格开。一般情况下,把程序本身的名字赋值给argv[0],接着,把参数第一个字符串赋给argv[1]
12 345 678是以字符串的形式输入的,*argv[i]表示取第i个参数的首字符
argv[0]  ------>    c(程序名)
argv[1]  ------>   1
argv[2]  ------>   3
argv[3]  ------>   6
  第一次循环:n=0*10+'1'-'0'= 1
  第二次循环:n=1*10+'3'-'0'=13;
  第三次循环:n=13*10+'6'-'0'=136

发表于 2019-04-23 20:24:35 回复(0)
A
解题思路:
若运行以下命令行       tt 12 345 678,则argc=4,*argv[i]表示取第i个参数的首字符。
i=1时,n=0+'1'-'0'=1;
i=2时,n=1*10+‘3’-‘0’=13;
i=3时,n=13*10+'6'-'0'=136;
所以输出结果为136

发表于 2017-01-23 14:02:33 回复(0)
argc表示程序运行所带的参数的个数(包括程序名)argv是参数:程序名称 12 132 256 (argv【1】=“12”, argv【2】=“132” , argv【3】=“256” )
发表于 2017-04-11 07:56:41 回复(0)