#第三次作业

1. 下面程序运行结果为( )请解释原因。

void main ( )

{

char c = 'a';

if ('a' < c <= 'z')

{

printf ("LOW");

}

else

{

printf ("UP");

  }

}

A. LOW

B. UP

C. LOWUP

D. 程序语法错误

答:A.LOW;在if语句中先判断'a'<c,而c被赋值为a,故'a'<c不成立,输出为0                                                      然后进行0<='z'的判断,'z'的ASCII值为122,0<122成立,输出值为1,                                            执行结果为LOW

  1. 请阅读以下程序,该程序()。请对选项进行解释。

void main( )

{

int a = 5, b = 0, c = 0;

if (a = b + c)

printf ("***\n");

else

printf ("$$$\n");

}

A. 有语法错不能通过编译

B. 可以通过编译但不能通过连接

C. 输出***

D. 输出$$$

答:D.输出$$$\n;    if判断语句的条件为a=b+c,算数运算符的优先级>赋值运算符,先进行b+c的运算输出为0,再把0赋给a,得到if(0),所以跳过if的后续语句运行else后的语句输出$$$\n。

  1. 填空:以下程序运行结果是______6_______,请解释。

void main( )

{

int m = 5;

if (m++ > 5)

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

else printf("%d\n", m--);

}

答:在if语句的条件m++>5中,m++的值为5,该语句后m的值加1为6,因此m++>5判断不成立执行else后的语句,同理m--的值为6,故结果为6。

  1. 已知 int x = 10, y = 20, z = 30; 以下语句执行后x =____20____, y=___30___,z=___30____。请解释。

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

答:if语句中条件x>y即10>20不成立,因为没有大括号仅跳过第一个语句,从x=y开始执行将y赋值给x,此时x=20,再把z赋值给y,此时y=30。                                                                                               因此答案为x = 20,y = 30,z = 30.

5.下面的程序的功能是根据输入的百分制成绩score,转换成相应的五分制成绩grade并打印输出。转换的标准为:

当90≦score≦100时,grade为A;

当80≦score﹤90时,grade为B;

当70≦score﹤80时,grade为C;

当60≦score﹤70时,grade为D;

当score﹤60时,grade为E;

请填空:(1)____&score_____(2)_____score/10_____(3)____break______ 

4)_____9_____5)_____8_____6)_____7_____ 7)____6______

#include <stdio.h>

void main ( ) {

int score, mark;

scanf ("%d",____(1)______);

mark = _____(2)_____;

switch (mark)

{

default: printf ("%d--E", score); ______(3)____;

case 10:

case___(4)___: printf ("%d--A", score); break;

case___(5)___: printf ("%d--B", score); break;

case___(6)___: printf ("%d--C", score); break;

case___(7)___: printf ("%d--D", score); break;

}

}

6. 程序实现:输入1个年份 year,判断year是否是闰年?

#include <stdio.h> 
int main ( ) 

    int year,a;
    printf("请输入年份\n");
    scanf("%d",&year);
    a=year%4;
    if(a!=0)
        printf("不是闰年");
    else
        printf("是闰年");
    return 0; 
    
}

7. 程序实现:输入3个数 numA, numB, numC,计算这三个数的最大值,最小值。

#include <stdio.h>
#include <stdlib.h>

int main () 

    int numA,numB,numC;
    int min;
    int max;
    scanf("%d %d %d",&numA,&numB,&numC);
    if(numA>numB&&numA>numC){
        max=numA;
        if(numB>numC){
            min=numC;
            }else min=numB;
        }
        else if(numB>numA&&numB>numC){
            max=numB;
            if(numA>numC){
                min=numC;
                }else min=numA;
            }
            else if(numC>numA&&numC>numB){
                max=numC;if(numA>numB){
                    min=numB;}else min=numA;
            }
            printf("最大值为%d",max);
            printf("最小值为%d",min); 
            return 0;
        }

 

 8. 程序实现:仿照课堂PPT,实现一个简单的计算器程序(只要求计算加减乘除)。要求:用户从键盘输入如下形式的表达式:操作数1  运算符op  操作数2, 比如:1 + 2, 1 / 2, 1 * 2 等,能够输出对应的结果,比如:1 + 2 = 3,1 / 2 = 0.500000, 1 * 2 = 2.

#include <stdio.h> 
void main ( ) 

    float num1,num2,num3;
    char op;
    printf("请输入计算式");
    scanf("%f %c %f",&num1,&op,&num2);
    switch(op)
    {
        case'+':printf("%f+%f=%f",num1,num2,num1+num2);
         break;
        case'-':printf("%f-%f=%f",num1,num2,num1-num2);
         break;
        case'*':printf("%f*%f=%f",num1,num2,num1*num2); 
        break;
        case'/':
        if(num2==0)
            printf("算式不成立\n");
        else
            printf("%f/%f=%f",num1,num2,num1/num2);
         break;
     } 
    
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值