C语言程序设计,简答题,求正解啊.

简答题

1. 以下程序的输出结果是什么。
#include<stdio.h>
void main( )
{
int a=1,b=0;
switch(a) {
case 1:
switch(b) {
case0: printf(“0”); break;
case 1:printf(“1”); break;
}
case 2: printf(“2”); break;
}
}

2. 以下程序的输出结果是什么。
#include<stdio.h>
void main( )
{
inta=3,b=2,c=1;
{
int b=5,c=12;
c-=b*2;
a+=c;
}
printf(“a=%d,b=%d,c=%d\n”,a,b,c);
}

3.以下程序的输出结果是什么。
#include<stdio.h>
int main(void)
{
intx=1,y=2,z=2;
if(x) z += 1;
if(!y) z += 2;
if(z) z += 3;
printf("%d\n",z);
return 0;
}

4 以下程序的输出结果是什么。
#include<stdio.h>
int main(void)
{
int a=3,b=4,c=5,d=6;
if(a>b)
if(b>c) printf("%d", c);
else printf("%d",b);
printf("%d\n",d);
return 0;
}

5. 以下程序的输出结果是什么。
#include<stdio.h>
void main( )
{
ints,t,a,b;
a=2;b=4;
s=t=1;
if(a>0) s+=1;
if(a>b) t=s+t;
else
if(a= =b) t=5;
else t=2*s;
printf(“%d\n”,t);
}

说实话,我连题目都看不懂..选专业一定要选个好学的专业啊.

1. 以下程序的输出结果是什么。

#include<stdio.h>

void main( )

{

  int a=1,b=0;

  switch(a) {
//switch选择语句,a = 1,那么就选择case 1执行.
    case 1://注意此处case 1没有break,所以后面的case 2也执行.
 
      switch(b) {
//switch选择语句,b = 0,那么就选择case 0执行.
        case0: printf(“0”); break;
//执行case 0,输出0,它有break终止语句,所以后面的case 2就不执行了.
        case 1:printf(“1”); break;

  }

  case 2: printf(“2”); break;
//执行case 2,输出2.
  }

}

//总的输出结果:02
//知识点:理解选择分支结构,case遇到break才会终止后面的执行.  
  

2. 以下程序的输出结果是什么。

#include<stdio.h>

void main( )

{

  inta=3,b=2,c=1;
//a、b、c的作用域在main函数内.
  {

int b=5,c=12;
//b、c的作用域在{}内.
c-=b*2;
//此时b、c调用的值是{}内的b = 5、c = 12,那么c = 12 - 5*2 = 2
a+=c;
//此时的a是调用的main函数的a = 3, c调用的是c = 2. 即结果a = 3 + 2 = 5.
  }

printf(“a=%d,b=%d,c=%d\n”,a,b,c);//此时a、b、c都是调用的main函数内的变量,a有经过操作,a = 5,b、c没有经过操作,b = 2,c = 1.

}

//总的输出结果为:a=5,b=2,c=1
//知识点:考查变量的作用域,记住自动变量的作用域只在{}内,超出作用域就不生效了.  
 

3.以下程序的输出结果是什么。

#include<stdio.h>

int main(void)

{

       intx=1,y=2,z=2;

       if(x)   z += 1;
//x>0为真,执行z += 1; z变为3 
       if(!y)  z += 2;//!y < 0为假,不执行.

       if(z)   z += 3;
//z>0为真,执行z += 3; z变为6
       printf("%d\n",z);
//输出6
       return 0;

}

//总的输出结果为:6 
//知识点:对if语句的判断条件,真执行、假不执行. 

4 以下程序的输出结果是什么。

#include<stdio.h>

int main(void)

{

       int a=3,b=4,c=5,d=6;

       if(a>b)
//a>b为假,所以后面的语句不执行.
              if(b>c) printf("%d", c);

              else  printf("%d",b);
//注意这里,else总是与上面的if匹配.
       printf("%d\n",d);
//输出d = 6,没有经过任何语句操作.
       return 0;

}

//总的输出结果:6 
//知识点: else总是与最近的if匹配. 
 

5. 以下程序的输出结果是什么。

#include<stdio.h>

void main( )

{

  ints,t,a,b;

  a=2;b=4;

 s=t=1;

 if(a>0)  s+=1;
//a>0为真,执行s += 1;s变为2
 if(a>b)  t=s+t;//a>b为假,所以执行else语句,else为if下面的第一个,最近的.

 else

if(a= =b)  t=5;
//执行if( a == b )不成立,所以执行else语句,else为if下面的第一个,最近的.
else  t=2*s;
//执行t = 2*s;即t = 2*2 = 4.
printf(“%d\n”,t);

}
//总的输出结果为:4
//知识点: else总是与最近的if匹配.(if找它下面的第一个else,else找它上面的第一个if,前提是if、else没有括号()限制优先级)

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-10-11
1、02 // 说明:switch(a)的case 1中没有break语句,所以会顺序执行case 2
2、a=3,b=2,c=1 // 说明:语句块内声明的变量的生存周期限于块内
3、6
4、6
5、4本回答被网友采纳
第2个回答  2014-10-11
1.2
2.a=5,b=2,c=1
3.6
4.6
5.4
代码有不少细节错误,编译的话可能通不过。
第3个回答  推荐于2016-07-22
第一题 02
第二题 a=5,b=2,c=1
第三题 6
第四题 6
第五题 4本回答被提问者采纳
第4个回答  2014-10-11
第一题:02
第二题:结果是a=5,b=2,c=1
第三题:6
第四题:6
第五题:4
相似回答