aaaaaaaaaaaad

分支、循环练习

  1. 选择题

1.1、以下程序的输出结果是________。

    main()

   {  

 int k1=1,k2=2,k3=3,x=15;

if(!k1)  x--;

else if(k2)

 if(k3)  x=4;

else x=3;

       printf(“x=%d\n”,x);

    }

   A x=4      B x=15     C x=14      D x=3

1.2、有以下程序,while循环执行________次。

      int   main()

      {

int  k=2;

       while(k=1)  

printf(“%d”,k);  

       k--;  

printf(“\n”);

}

 A) 无限次       B)  2     C)   1     D)  0

1.3、有以下程序
int  main()
{
   int  a=1,b;
   for(b=1;b<=10;b++)
   {
      if(a>=8)   break;
      if(a%2==1)  {  a+=5;  continue;} 
      a-=3;             
   }
   printf("%d\n",b);
}
程序运行后的输出结果是 
A)3     B)4    C)5     D)6

1.4、有以下程序

#include   <sthio.h>

int  main()

{

int s=0,n;

        for (n=0;n<3;n++)     0   1  2

{

switch(s)

{ case 0:

 case 1:s+=1;

case 2:s+=2;break;

case 3:s+3;

case 4:s+=4;

}

printf((%d\n,s);

}

}

程序运行后的结果是

A)1,2,4 B) 3,10,10 C) 3,6,10      D) 3, 7, 7

1.5、有以下程序

#include<stdio.h>

 int  main()

{int a=1,b=0;

if(-a) b++;

else if(a=0)b+=2; else b+=3;

printf("%d\n",b);

)

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

A)0   B)1 C)2 D)3

1.6有以下程序

#include<stdio.h>

int  main()

{

int a=7;

while(a--);

   printf("%d\n",a);

}

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

A)-1  B)0 C)1   D)7

1.7、

  1. 填空题

  2.1、以下程序运行结果是   2

#include<stdio.h>

int  main()

{

int x=2,y=-1,z=2;

if(x<y)

if(y<0) z=0;

else    z+=1;

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

}

2.2以下程序的执行结果是   20

#include<stdio.h>

int   main()

{

int a,b,c,d,x;

a=c=0;

b=1;

d=19;

if(a)  d=d-10;    

if(!c)           

x=15;

else

x=25;

        d++ ;  

printf("d=%d\n",d);

}

2.3以下程序的执行结果是(    )first

#include<stdio.h>

int main()

{

int x=1,y=0;

switch(x)

{

case 1:

switch(y)

{

  case 0:printf("first\n");break;

  case 1:printf("second\n");break;

}

    case 2:printf("third\n");

}

}

    1.  以下程序在输入5,2之后的执行结果是(   )。s=2,t=3

#include<stdio.h>

int  main()

{

int s,t,a,b;

scanf("%d,%d",&a,&b);

s=1;

t=1;

if(a>0)  s=s+1;   

if(a>b)  t=s+t;   

else if(a==b)

t=5;

else

t=2*s;

printf("s=%d,t=%d\n",s,t);

}

    1.  以下程序的执行结果是(     )。#&

#include<stdio.h>

int  main()

{

int a=2,b=7,c=5;

switch(a>0)   

{

  case 1:

switch(b<0)   

   {

       case 1:printf("@");break;

       case 2:printf("!");break;

   }

case 0:

switch(c==5)

   {

       case 0:printf("*");break;

           case 1:printf("#");break;

       case 2:printf("$");break;

   }

default:printf("&");

}

printf("\n");

}

    1.  以下程序运行结果是   )5 5 1

#include <stdio.h>

int main()

{

int x,y=1;

if(y!=0) x=5;

printf("\t%d\n" ,x);    

if(y==0) x=4;

else x=5;

printf("\t%d\n" ,x);  

x=1;

if(y<0)

if(y>0) x=4;

else x=5;

printf("\t%d\n" ,x); 

}

2.7 以下程序的运行结果是 )

#include<stdio.h>

int   main()

{

int x , y=-2, z=0;     

if ((z=y)<0)  x=4;   

else if (y==0)

x=5;   

else

x=6;   

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

if(z=(y==0))   

x=5;

x=4;

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

if(x=z=y)  x=4;

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

}

4 -2    4 0  4 -2

  1. 编程题、
    1.  编写程序实现:服装店营套服,也单件出售,若买的不少于50套,每套80元;不足50套的每套90元;只买上衣每件60元;只买裤子每条45元。输入所买上衣c和裤子t的件数,计算应付款m。
#include <iostream>
#include <algorithm>

using namespace std;

int main()
{
    int c,t;
    cin>>c>>t;
    int ans = 0;
    int suit = min(c, t);
    int suit_price = (suit >= 50 ? 80 : 90);
    c-=suit;
    t-=suit;
    ans=suit*suit_price+c*60+t*45;
    cout<<ans<<endl;

    return 0;
}
  1. 思考题

4.1  下面是C语言中两种if语句判断方式。请问哪种写法更好?为什么?
     int n;第二种,如果少写了一个等于符号,第二种不能给右值赋值会报错
     if (n == 10) // 第一种判断方式
     if (10 == n) // 第二种判断方式、

4.2   思考一下,计算1+2+3+……+100的和,最优化的算法是? 编程实现

#include <iostream>

using namespace std;

int main()
{
    cout<<(1+100)*100/2<<endl;
    return 0;
}

    4.3   嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢?

#include <iostream>

using namespace std;

int main()
{
    volatile int flag=1;
    int f=0;
    while(flag){
        f=1;
        f=0;
        int i=0;
        while(i++<1000);
    }
    return 0;
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值