11月1 作业3

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

void main ( )

{

char c = 'a';

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

{

printf ("LOW");

}

else

{

printf ("UP");

  }

}

A. LOW

B. UP

C. LOWUP

D. 程序语法错误

答案:A

先判断'a'<c不成立,输出为0,0<='z',所以成立,输出low.

#include<stdio.h>
int main()
{
	char c = 'a';
	if ('a' < c <= 'z')
	{
		printf("LOW");

	}
	else
	{
		printf("UP");
	}
}

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

void main( )

{

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

if (a = b + c)

printf ("***\n");

else

printf ("$$$\n");

}

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

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

C. 输出***

D. 输出$$$

答案:D

先算b+c=0,因为a=5,所以不成立,输出$$$

#include<stdio.h>
int main()

{

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

	if (a = b + c)

		printf("***\n");

	else

		printf("$$$\n");

}

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

void main( )

{

int m = 5;

if (m++ > 5)

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

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

}

答案:6

因为m++=6,所以成立,输出m,因为m=6,所以输出6

#include<stdio.h>
int main()
{
	int m = 5;

	if (m++ > 5)

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

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

4.已知 int x = 10, y = 20, z = 30; 以下语句执行后x =________, y=______,z=_______。请解释。

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

答案:20,30,30

因为if不成立,所以z=x不执行,因为x=y,所以x=20,因为y=z,所以y=30

#include<stdio.h>
int main()
{
	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;
}

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)__________(2)__________(3)__________ 

4)__________5)__________6)__________ 7)__________

#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.&score 2.score/10 3.break 4.9 5.8 6.7 7.6

#include <stdio.h>

void main() {

	int score, mark;

	scanf("%d", &score);

	mark = score/10;

	switch (mark)

	{

	default: printf("%d--E", score); break;

	case 10:

		case 9 : printf("%d--A", score); break;

		case 8: printf("%d--B", score); break;

		case 7: printf("%d--C", score); break;

		case 6: printf("%d--D", score); break;

	}

}

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

#include <stdio.h>
int main()
{
	int year;
	scanf_s("%d", &year);
	//两个判断条件,1被4整除或2被一百整除
	if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
		printf("%d年是闰年\n", year);
	else
		printf("%d年不是闰年\n", year);
	return 0;
}

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

#include <stdio.h>
int main()
{
	float numA, numB, numC;
	scanf_s("%f,%f,%f", &numA, &numB, &numC);
	if (numA > numB && numA > numC)
		printf("最大数是:%f", numA);
	else
		if (numB > numA && numB > numC)
			printf("最大数是:%f", numB);
		else
			printf("最大数是:%f", numC);
	if (numA < numB & numA < numC)
		printf("最小数是:%f", numA);
	else
		if (numB < numA & numB < numC)
			printf("最小数是:%f", numB);
		else
			printf("最小数是:%f", numC);
}

8. 程序实现:仿照课堂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()
{
	float a, b;
	char op;
	scanf_s("%f %c %f", &a, &op,4, &b);
	switch (op)
	{
	case '+':
		printf("%f + %f = %f\n", a, b, a + b);
		break;
	case '-':
		printf("%f - %f = %f\n", a, b, a - b);
		break;
	case'*':
		printf("%f * %f = %f\n", a, b, a * b);
		break;
	case'/':
		if (fabs(b) <= 1e-7)
			printf("wrong!");
		else
			printf("%f / %f = %f\n", a, b, a / b);
		break;

	}
	return 0;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值