C语言作业三

Zeng Wen Bin

  1. 下面程序运行结果为(A )。请解释原因。
    void main ( )
    {
    char c = ‘a’;
    if (‘a’ < c <= ‘z’)
    {
    printf (“LOW”);
    }
    else
    {
    printf (“UP”);
    }
    }
    A. LOW
    B. UP
    C. LOWUP
    D. 程序语法错误
    答:1.比较运算符从左到右判断,‘a’<c不成立,真值为0;
    2.'z’的ASCII码值为122,0<=122成立,真值为1,故执行结果为LOW。

  2. 请阅读以下程序,该程序(D)。请对选项进行解释。
    void main( )
    {
    int a = 5, b = 0, c = 0;
    if (a = b + c)
    printf (“***\n”);
    else
    printf ("$KaTeX parse error: Undefined control sequence: \n at position 1: \̲n̲"); } A. 有语法错…$
    答:1.+的优先级高于=,先运算b+c,结果为0;
    2.a的值为5,b+c的值为0,二者不相等,真值为0,则输出$$$;

  3. 填空:以下程序运行结果是_______6______,请解释。
    void main( )
    {
    int m = 5;
    if (m++ > 5)
    printf(“%d\n”, m);
    else printf(“%d\n”, m–);
    }
    答:1.在if内,m先做m++的运算,结果为6,m的值发生变化,m=6;
    2.6>5,输出m的值6;

  4. 已知 int x = 10, y = 20, z = 30; 以下语句执行后x =20__, y=30,z=40_。请解释。
    if (x > y) z = x; x = y; y = z;
    答:

#include <stdio.h>
int main (void) 
{
	int x=10,y=20,z=30;
	if(x>y)z=x;x=y;y=z;
	printf("%d %d %d",x,y,z);
	return 0;
}

在这里插入图片描述
1.if后面没有{},则只有一句语句在if中;
2.x<y,if语句后面的z=x没有被执行;
3.x=y=20,y=z=30,z=30;

  1. 下面的程序的功能是根据输入的百分制成绩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;
}
}

  1. 程序实现:输入1个年份 year,判断year是否是闰年?
#include <stdio.h>
int main()
{
	int year;
	scanf("%d",&year);                                   //给变量year赋值 
	if((year%4==0&&year%100!=0)||(year%400==0)){         //判定条件需满足其一 
		printf("%d年是闰年\n",year);
	}else{
		printf("%d年不是闰年\n",year);
	}
	return 0;
}

在这里插入图片描述

  1. 程序实现:输入3个数 numA, numB, numC,计算这三个数的最大值,最小值。
#include <stdio.h>
int main()
{
	int numA,numB,numC,max,min;
	scanf("%d %d %d",&numA,&numB,&numC);         
	//比较最大值
	max=numA;
	if(numA<numB)
		max=numB;
	if(numA<numC)
		max=numC;
	if(numB>numC)
		max=numB; 
	//比较最小值
	min=numA;
	if(numA>numB)
		min=numB;
	if(numA>numC)
		min=numC;
	if(numB<numC)
		min=numB;
	printf("max=%d min=%d",max,min);
	return 0; 
}

在这里插入图片描述

  1. 程序实现:仿照课堂PPT,实现一个简单的计算器程序(只要求计算加减乘除)。要求:用户从键盘输入如下形式的表达式:操作数1 运算符op 操作数2, 比如:1 + 2, 1 / 2, 1 * 2 等,能够输出对应的结果,比如:1 + 2 = 3,1 / 2 = 0.500000, 1 * 2 = 2.
#include <stdio.h>
int main(void)
{
	int a, b;
	char op;
	scanf("%d%c%d", &a, &op, &b);
	switch (op)
	{
		case '+':                                //选择运算符
			printf("%d + %d = %d\n", a, b, a+b); //进行运算
			break;                               //跳出循环
		case '-':
			printf("%d - %d = %d\n", a, b, a-b);
			break;
		case '*':
			printf("%d * %d = %d\n", a, b, a*b);
			break;
		case '/':
			printf("%d / %d = %.6f\n", a, b, 1.0*a/b*1.0);
			break;
	} 
	return 0;
}

在这里插入图片描述

以上三道题的程序实现,请尽可能将核心步骤进行代码注释。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值