程序设计基础作业(三)

TI:

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时,因为c为'a'所以输出结果为0(假),第二个比较就变成了0<='z'又因为'z'的整型是122,逻辑成立,所以执行语句printf("LOW"); 输出LOW。

T2:

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

void main( )

{

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

if (a = b + c)

printf ("***\n");

else

printf ("$$$\n");

}

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

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

C. 输出***

D. 输出$$$

答案:D

原因:括号内使用“=”为运算符,不是判断a是否等于b+c,而是将b+c的值赋给了a且b+c的值为0,代表结果为假(0),因此执行else语句,输出"$$$\n"

T3:

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

void main( )

{

int m = 5;

if (m++ > 5)

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

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

}

答案:6

原因 当做运算符来说,就是a = i++ 和 a = ++i这样的形式,情况就不一样了。a = i++的意思是,先把i的值赋给a,即a = i,再执行i = i + 1;a = ++i是先执行 i = i+1,再把i的值赋给a;

T4:

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

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

答案:20 30 30

原因:因为x不大于y所以无法执行z=x的语句,且没有花括号于是从x=y开始就已经离开了if语句,并且开始执行,所以先执行x=y将y的20赋给x,此时x=20,,最后一句y=z是将z的值赋给y所以y=30所以结果为x=20 y=30 z=30。

T5:

下面的程序的功能是根据输入的百分制成绩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> 
void main ( ) 
{ 
	int year,a;
	printf("请输入年份\n");
	scanf("%d",&year);
	a=year%4;//根据闰年是4的倍数这一特点,看年份/4是否有余数来判断是否为闰年
	if(a!=0)
		printf("不是闰年");
	else
		printf("是闰年");
	return 0; 
	
}

b28227c58ba142d8b36b77c933f84fff.png

2ca1bf257852411eb795da0ca04c4178.png

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

#include <stdio.h> 
void main ( ) 
{ 
	float numA,numB,numC;
	scanf("%f %f %f",&numA,&numB,&numC);
	if(numA>numB)//先判断AB大小
	{
		if(numA>numC)//再判断AC
		{
			if(numB>numC)//最后判断BC并输出结果
				printf("最大值为%f,最小值为%f。",numA,numC);
			else
				printf("最大值为%f,最小值为%f。",numA,numB); 
		}
		else
			printf("最大值为%f,最小值为%f。",numC,numB);
	
	}
	else//重复上述步骤
	{	
		if(numB>numC)
		{
			if(numA>numC)
				printf("最大值为%f,最小值为%f。",numB,numC);
			else
				printf("最大值为%f,最小值为%f。",numB,numA); 
		}
		else
			printf("最大值为%f,最小值为%f。",numC,numA);
	}
	return 0; 
	
}

7f49e978916644d1a7ad7a34b8c2480a.png

 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;
	 } 
	
}

2888ad6fea7c4a68aa2e2ecb6737192a.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值