首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

菜鸟的困惑

2012-02-17 
初学者的困惑我是一名自学C语言的初学者,在学习过程中发现一些问题,但一直都是困惑不解,请各位大侠给小弟

初学者的困惑
我是一名自学C语言的初学者,在学习过程中发现一些问题,但一直都是困惑不解,请各位大侠给小弟指点一二,在这里先谢各位了!
(1)下列语句的输出结果是:(?   )
int   a=1,b=1,c=1;   a=a+++b+++c;   printf( "%d ",a);
(2)设a和b均为double型常量,且a=5.5,b=2.5,则表达式(int)a+b/b的值是(?)
(3)下列程序的输出结果是(?)
main(){char   x= '0 ',y= '9 ';   printf( "%c,%d,%d ",x,x+y,x-y);}

选择结构问题
(1)以下程序输出结果为:
void   main()
{     int   a=3,b=4c=2,d;
    d=a <!b&&(c=50)> b;
    printf( "d=%d   c=%d ",d,c)}
为什么是“2”而不是“50”呢?

(2)以下程序运行后的输出结果是?
#include <stdio.h>
{int   i,m=0,n=0,k=0;
  for(i=9;i <=11;i++)
  switch(i%10)
    {case   0:   m++;n++;break;
      case   1:   n++;break;
      default:   k++;n++;
      }
  printf( "%d   %d   %d\n ",m,n,k)   }
正确答案为“1   3   2”,而我笔算后为“1   3   1”,我错在哪里呢?

(3)以下程序输出后结果是?
main()
{int   a=4,b=3,c=5,t=0;
  if(a <b)t=a;a=b;b=t;
  if(a <c)t=a;a=c;c=t;
  printf( "%d%d%d\n ",a,b,c);}
我算后的答案为“534”,而书后答案为“543”,我想知道我在哪里出错了?

循环结构问题
(1)以下程序输出结果是?
main()
{int   a=0,i;
    for(i=1;i <5;i++)
          {   switch(i)
                  {   case   0:
                      case   3:a+=2;
                      case   1:
                      case   2:a+=3;
                      default:a+=5;}
              }
    printf( "%d\n ",a);  


(2)以下程序运行结果是?
main()
{   int   a=1,b=0;
    for(;a <3;a++)
        switch(a++)
            {
                  case   1:b--;
                  case   2:b++;
                  case   3:b+=3;break;
              }
    printf( "%d ",b);
}

[解决办法]
这些题目太变态了!!
而且好多还没有准确答案。

建议楼主不要花太多时间在这种题目上。
[解决办法]
(1)???
(2)5+1.0=6.0
(3)0,???,-9
(1)!b是0, a <!b得0 所以&&后面不做
(2)0,1,1 1,1,0 0,1,0 -> 1,3,1
(3)第一行:4,3,5,0 第二行(a=b;b=t):3,0,5,0 第三行(t=a;a=c;c=t;):5,0,3,3
(1)(+3+5)+(+3+5)+(+2+3+5)+(+5)=8+8+10+5=31
(2)b--;b++;b+=3;a++;a++ -> a=3,b=3

热点排行