首页>计算机等级考试>历年真题>正文
等级考试典型题解析(上)

www.zige365.com 2007-6-13 17:56:47 点击:发送给好友 和学友门交流一下 收藏到我的会员中心
2004年4月二级C语言选择题



  16. 设有以下定义:

  int a=0;

  double b=1.25;

  char c=’A’;

  #define d 2

  则下面语句中错误的是( ):

  (A)a++ (B)b ++ (C)c++ (D)d++

  答案:D

  解析:由于a、b、c均为变量,可以使用自增运算符++,而d是自定义常量,只能在定义处修改,定义好后,不能在程序中随便改变。

  18. 有以下程序:

  main( )

  {

  int x=102,y=012;

  printf("%2d,%2d\n",x,y);

  } 执行后输出结果是( ):

  (A)10,01  (B)002,12 

  (C)102,10  (D)02,10

  答案:C

  解析:C语言规定,整型常量可有三种表示方法:以非0开始的数是十进制,以0开始的数是八进制,以0x开始的数是十六进制。因此八进制的y以十进制输出结果应是10,而x就是十进制,结果不变应是102。

  20. 设有定义:int a,pa=&&a;以下scanf语句中能正确为变量a读入数据的是( )。

  (A)scanf("%d",pa); (B)scanf("%d",a); 

  (C)scanf("%d",&&pa); (D)scanf("%d",pa);

  答案:A

  解析:语句“int apa=&a”中定义:a为一整型变量,pa是指向整型变量a的指针变量,即指针变量pa中存储的值就是整型变量a在内存中的地址的值,而scanf(“控制格式”,参数表)语句中要求参数必须是要求输入变量的地址(即指针)。而(B)中的a是变量,(C)中的&pa是错误的形式,(D)中pa与a等价,只有(A)是正确的。

  22. 有以下程序:

  main( )

  { char k; int I;

  for(i=1;i3;i++)

    { scanf("%c",&&k);

      switch(k)

        { case '0' : printf("another\n");

          case '1': printf("number\n");

        }

      }

    }

  程序运行时,从键盘输入:01回车>,程序执行后的输出结果是( )。

  (A)another  (B)another

    number      number

             another

  (C)another  (D)number

    number      number

                number

  答案:C

  解析:在for循环语句中当i=1时,k的值由键盘输入为字符‘0’,执行switch语句,满足case '0',输出another 并换行,由于语句 case '0':printf″another\n″  后没有breek,故接着执行语句 case '1' printf″number\n″  输出number并换行;当i=1时,k的值由键盘输入为字符‘1’,执行switch语句,满足case '1',执行语句case '1' printf″number\n″  输出number并换行,所以选C。

  23. 有以下程序

  main( )

  { int x=0,y=5,z=3;

   while(z--0&&&&++x5) y=y-1;

    printf("%d,%d,%d\n",x,y,z);

  }

  程序执行后的输出结果是( )。

  (A)3,2,0      (B)3,2,-1 

  (C)4,3,-1      (D)5,-2,-5

  答案:B

  解析:第一次执行语句后,x=1y=4z=2;第二次执行语句后x=2y=3z=1;第三次执行while语句后x=3y=2z=0;判断while条件由于不满足条件z——0,退出while循环执行printf语句,此时x=3y=2z=-1,所以结果为B。这里需特别指出的是判断完z——0不满足条件,不再判断条件++x5,即z的值要自减1,而x的值不变。
我要投稿 新闻来源:山西晋城职业技术学院 编辑: 作者:张双斌
相关新闻