55问答网
所有问题
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 2 45 678
则程序运行后输出结果是??
答案是 246 为什么 ,详细解题过程????
举报该问题
推荐答案 2010-10-21
argv[1] = "2"
argv[2] = "45"
argv[3] = "678"
而argv[i]是字符串数组的头指针,指向第一个字符,因此
argv[1] - '0' = 2
argv[2] - '0' = 4
argv[3] - '0' = 6
程序结果当然就是246了
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://55.wendadaohang.com/zd/IGFFLQ8QI.html
相似回答
二级C语言的题
答:
argv[i]是一个指针,谁知道这个指针地址是多少?如果是
n=n*10+argv[i]
[0]-'0';的话,答案就是136 因为执行的时候输入了3个参数:12 345 678 这3个参数被作为字符串输入给argv[1
],argv[
2],argv[3]所以argv[i][0]就分别是'1' '3' '6'然后n的计算就简单了,第一次循环是
n=1,
第...
...
argc,char
*argv[ ]) { int
n=0,i; for( i=1; i
<
argc;i++) n=n
...
答:
如果输入形式是:a.exe 1 3 5 下面程序计算出 n=135
main(int
argc,char *argv[]){ int i,n=0;for (i=1;i<argc;i++){ n = n*10 + (argv[i][0]-'0');} printf("%d ",n);}
...
argc, char
*argv[ ]) { int
n=0, i; for (i=
l; i<
argc; i+ +
...
答:
是这样的
,argc
接受输入命令中的单词数(空格隔开的那些),argv这个二维数组接收这些“单词”,因此此例中argc是4,argv[0]到argv[3]存放的依次是tt、12、345和678 再看
n=n*10+*argv[i]
-‘0’中
,*argv[i]
相当于argv[i][
0],
也就是每个“单词”的第一个字母,而这个表达式就是将*argv[i...
C语言命令行参数
答:
int
main( int
argc, char
* argv[]){ int
i;for ( i = 0;i
<
argc; i++)
{ printf("%s\n",
argv[i]
);} return 0;} windows下,将上面的程序编译成sample.exe,然后在控制台窗口敲:sample para1 para2 s.txt 5 "hello world"上面有6个参数,双引号为了包含空格作为一个参数。输出...
exit
()
函数的返回值是什么?
答:
exit
(1)
表示进程退出,返回1。函数exit( )表示结束当前进程/当前程序/,在整个程序中,只要调用 exit ,就结束。返回0表示程序正常退出,返回1或其他数字通常表示异常终止,可以通过返回的具体数值来判断出错的根源在哪里。
大家正在搜
相关问题
1)有下列程序: main(int argc, char *...
#include <string.h> main(int a...
main(int argc,char*argv[]) { i...
main( int argc ,char*argv[ ] )...
3.有以下程序: main(int argc,char*ar...
#include <string.h> main(int a...
45、有以下程序 #include <string.h> m...