爱问知识人 爱问教育 医院库

C语言 请详细讲解一下这道题,谢谢

首页

C语言 请详细讲解一下这道题,谢谢

有以下程序:
 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,若键入以下命令行exam 123<回车>则运行结果为多少?

提交回答
好评回答
  • 2007-03-29 10:48:03
      运行结果是 6
    你的程序中有中文引号,我改了一下,并介绍一下程序流程
    int fun();    //这个地方要有个函数声明
    main(int argc,char*argv[])
     {
       int n,i=0;  //定义n、i,初始化i            
       while(argv[1][i]!='\0') //以字符串数组argv的第二个字符
                               //串的字符作测试条件
       { n=fun();i++;}         
       printf("%d\n",n* argc);//输出n雨argc的乘机 
       
     }
     int fun()
     {
       static int s=0;//s被定义成静态的,因此每次调用fun,s的值
                       //总是会在上次的值的基础上加1
       s+=1;
       return s;
     }
    //简单说一下,c对命令行参数的处理方法:
    int argc指的是命令行参数的个数
    int argv指的是输入的命令行参数所形成的字符串数组,有趣的是argv[0]中总是存放程序的名字,在你的这个程序中argv[0]就是字符串"exam"。
      在argv[1]中存放的才是"123"。 由此可见,argc等于2,而n最后等于3,所以最后它们的乘积是 6 。

    f***

    2007-03-29 10:48:03

类似问题

换一换
  • 程序设计 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):