第5章 选择语句

练习题

1.

(a) 1

(b) 1

(c) 1

(d) 0

2.

(a) 1

(b) 1

(c) 1

(d) 1

3.

(a) 1 3 4 5

(b) 0 7 8 9

(c) 1 8 8 9

(d) 1 2 1 1

4.

i = i < j ? -1 : (i > j ? 1 : 0);

5. 

合法

当n等于0时,printf将会执行

6.

合法

除非n等于-9,否则printf永远不会执行

7.

结果都为17

8.

	if (age >= 13 && age <= 19)
	{
		teenager = true;
	}
	else
	{
		teenager = false;
	}

9.

等价 

10.

onetwo

11.

	switch (area_code)
	{
	case 229:
		printf("Albany");
		break;
	case 404:
	case 470:
	case 678:
	case 770:
		printf("Atlanta");
		break;
	case 478:
		printf("Macon");
		break;
	case 706:
	case 762:
		printf("Columbus");
		break;
	case 912:
		printf("Savannah");
		break;
	default:
		printf("Area code not recognized");
		break;
	}

编程题

1.

#include<stdio.h>

int main(void)
{
	int number;

	printf("Enter a number: ");
	scanf_s("%d", &number);

	if (number < 10)
	{
		printf("The number %d has 1 digits\n", number);
	}
	else if (number < 100)
	{
		printf("The number %d has 2 digits\n", number);
	}
	else if (number < 1000)
	{
		printf("The number %d has 3 digits\n", number);
	}
	else if (number < 10000)
	{
		printf("The number %d has 4 digits\n", number);
	}
	else
	{
		printf("Illegal number!");
	}

	return 0;
}

2.

#include<stdio.h>

int main(void)
{
	int hour, minute;

	printf("Enter a 24-hour time: ");
	scanf_s("%d:%d", &hour, &minute);

	if (hour < 13)
	{
		printf("Equivalent 12-hour time: %d:%.2d AM", hour, minute);
	}
	else
	{
		printf("Equivalent 12-hour time: %d:%.2d PM", hour - 12, minute);
	}

	return 0;
}

3.

题(a)的答案与题(b)的有所重复,所以直接给出题(b)的答案

#include<stdio.h>

int main(void)
{
	float price, value, commission, competitor;
	int amount;

	printf("Enter price: ");
	scanf_s("%f", &price);
	printf("Enter amount: ");
	scanf_s("%d", &amount);

	value = price * amount;

	if (value < 2500.00f)
	{
		commission = 30.00f + .017f * value;
	}
	else if (value < 6250.00f)
	{
		commission = 56.00f + .0066f * value;
	}
	else if (value < 20000.00f)
	{
		commission = 76.00f + .0034f * value;
	}
	else if (value < 50000.00f)
	{
		commission = 100.00f + .0022f * value;
	}
	else if (value < 500000.00f)
	{
		commission = 155.00f + .0011f * value;
	}
	else
	{
		commission = 255.00f + .0009f * value;
	}

	if (commission < 39.00f)
	{
		commission = 39.00f;
	}


	if (amount < 2000)
	{
		competitor = 33.03f * amount;
	}
	else
	{
		competitor = 33.02f * amount;
	}

	printf("Commission: %.2f\n", commission);
	printf("Competitor: %.2f", competitor);

	return 0;
}

4.

#include<stdio.h>

int main(void)
{
	int velocity;

	printf("Enter the velocity of the wind: ");
	scanf_s("%d", &velocity);

	if (velocity < 1)
	{
		printf("Calm");
	}
	else if (velocity < 4)
	{
		printf("Light air");
	}
	else if (velocity < 28)
	{
		printf("Breeze");
	}
	else if (velocity < 48)
	{
		printf("Gale");
	}
	else if (velocity < 64)
	{
		printf("Strom");
	}
	else
	{
		printf("Hurricane");
	}

	return 0;
}

5.

#include<stdio.h>

int main(void)
{
	float income, tax;

	printf("Enter your income: ");
	scanf_s("%f", &income);

	if (income < 750.00f)
	{
		tax = 0.01f * income;
	}
	else if (income < 2250.00f)
	{
		tax = 0.02f * (income - 750.00f) + 7.50f;
	}
	else if (income < 3750.00f)
	{
		tax = 0.03f * (income - 2250.00f) + 37.50f;
	}
	else if (income < 5250.00f)
	{
		tax = 0.04f * (income - 3750.00f) + 82.50f;
	}
	else if (income < 7000.00f)
	{
		tax = 0.05f * (income - 5250.00f) + 142.50f;
	}
	else
	{
		tax = 0.06f * (income - 7000.00f) + 230.00f;
	}

	printf("Your tax is: %.2f", tax);

	return 0;
}

6.

#include<stdio.h>

int main(void)
{
	int d, i1, i2, i3, i4, i5, j1, j2, j3, j4, j5, c,
		first_sum, second_sum, total, check_digit;

	printf("Enter the UPC: ");
	scanf_s("%1d%1d%1d%1d%1d%1d%1d%1d%1d%1d%1d%1d",
		&d, &i1, &i2, &i3, &i4, &i5, &j1, &j2, &j3, &j4, &j5, &c);

	first_sum = d + i2 + i4 + j1 + j3 + j5;
	second_sum = i1 + i3 + i5 + j2 + j4;
	total = 3 * first_sum + second_sum;
	check_digit = 9 - ((total - 1) % 10);

	if (c == check_digit)
	{
		printf("VALID");
	}
	else
	{
		printf("NOT VALID");
	}

	return 0;
}

7. 

#include<stdio.h>

int main(void)
{
	int a, b, c, d,
		max1, max2, min1, min2;

	printf("Enter four integers: ");
	scanf_s("%d%d%d%d", &a, &b, &c, &d);

	if (a > b)
	{
		max1 = a;
		min1 = b;
	}
	else
	{
		max1 = b;
		min1 = a;
	}

	if (c > d)
	{
		max2 = c;
		min2 = d;
	}
	else
	{
		max2 = d;
		min2 = c;
	}

	if (max1 > max2)
	{
		printf("Largest: %d\n", max1);
	}
	else
	{
		printf("Largest: %d\n", max2);
	}

	if (min1 < min2)
	{
		printf("Smallest: %d\n", min1);
	}
	else
	{
		printf("Smallest: %d", min2);
	}

	return 0;
}

8.

#include<stdio.h>

int main(void)
{
    int hour, minute, time;
    int d1 = 480;
    int d2 = 583;
    int d3 = 679;
    int d4 = 767;
    int d5 = 840;
    int d6 = 945;
    int d7 = 1140;
    int d8 = 1305;

    printf("Enter a 24-hour time: ");
    scanf_s("%d:%d", &hour, &minute);

    time = hour * 60 + minute;

    if (time <= (d1 + d2) / 2)
    {
        printf("Closest departure time is 8:00 a.m., arriving at 10:16 a.m.\n");
    }
    else if (time <= (d2 + d3) / 2)
    {
        printf("Closest departure time is 9:43 a.m., arriving at 11:52 a.m.\n");
    }
    else if (time <= (d3 + d4) / 2)
    {
        printf("Closest departure time is 11:19 a.m., arriving at 1:31 p.m.\n");
    }
    else if (time <= (d4 + d5) / 2)
    {
        printf("Closest departure time is 12:47 p.m., arriving at 3:00 p.m.\n");
    }
    else if (time <= (d5 + d6) / 2)
    {
        printf("Closest departure time is 2:00 p.m., arriving at 4:08 p.m.\n");
    }
    else if (time <= (d6 + d7) / 2)
    {
        printf("Closest departure time is 3:45 p.m., arriving at 5:55 p.m.\n");
    }
    else if (time <= (d7 + d8) / 2)
    {
        printf("Closest departure time is 7:00 p.m., arriving at 9:20 p.m.\n");
    }
    else
    {
        printf("Closest departure time is 9:45 p.m., arriving at 11:58 p.m.\n");
    }

    return 0;
}

9. 

#include<stdio.h>

int main(void)
{
	int month1, month2, day1, day2, year1, year2;

	printf("Enter first date (mm/dd/yy): ");
	scanf_s("%d /%d /%d", &month1, &day1, &year1);
	printf("Enter second date (mm/dd/yy): ");
	scanf_s("%d/%d/%d", &month2, &day2, &year2);

	if (year1 > year2)
	{
		printf("The %.2d/%.2d/%.2d is earlier", month2, day2, year2);
	}
	else if (year1 < year2)
	{
		printf("The %.2d/%.2d/%.2d is earlier", month1, day1, year1);
	}
	else
	{
		if (month1 > month2)
		{
			printf("The %.2d/%.2d/%.2d is earlier", month2, day2, year2);
		}
		else if (month1 < month2)
		{
			printf("The %.2d/%.2d/%.2d is earlier", month1, day1, year1);
		}
		else
		{
			if (day1 > day2)
			{
				printf("The %.2d/%.2d/%.2d is earlier", month2, day2, year2);
			}
			else if (day1 < day2)
			{
				printf("The %.2d/%.2d/%.2d is earlier", month1, day1, year1);
			}
			else
			{
				printf("SAME!");
			}
		}
	}

	return 0;
}

 10.

#include<stdio.h>

int main(void)
{
	int grade;

	printf("Enter your numercial grade: ");
	scanf_s("%d", &grade);

	if (grade < 0 || grade>100)
	{
		printf("llegal grade!");
		return 0;
	}

	grade = grade / 10;

	switch (grade)
	{
	case 10:
	case 9:
		printf("Your latter grade is A");
		break;
	case 8:
		printf("Your latter grade is B");
		break;
	case 7:
		printf("Your latter grade is C");
		break;
	case 6:
		printf("Your latter grade is D");
		break;
	case 5:
	case 4:
	case 3:
	case 2:
	case 1:
	case 0:
		printf("Your latter grade is F");
		break;
	}

	return 0;
}

 11.

#include<stdio.h>

int main(void)
{
	int number, i;

	printf("Enter a two-digit number: ");
	scanf_s("%d", &number);

	i = number / 10;
	if (i == 1)
	{
		i = number % 10;
		switch (i)
		{
		case 9:
			printf("nineteen");
			break;
		case 8:
			printf("eighteen");
			break;
		case 7:
			printf("seventeen");
			break;
		case 6:
			printf("sixteen");
			break;
		case 5:
			printf("fifteen");
			break;
		case 4:
			printf("fourteen");
			break;
		case 3:
			printf("thirteen");
			break;
		case 2:
			printf("twelve");
			break;
		case 1:
			printf("eleven");
			break;
		}
	}
	else
	{
		switch (i)
		{
		case 9:
			printf("ninety");
			break;
		case 8:
			printf("eighty");
			break;
		case 7:
			printf("seventy");
			break;
		case 6:
			printf("sixty");
			break;
		case 5:
			printf("fifty");
			break;
		case 4:
			printf("forty");
			break;
		case 3:
			printf("thirty");
			break;
		case 2:
			printf("twenty");
			break;
		}
		i = number % 10;
		switch (i)
		{
		case 9:
			printf("nine");
			break;
		case 8:
			printf("eight");
			break;
		case 7:
			printf("seven");
			break;
		case 6:
			printf("sixt");
			break;
		case 5:
			printf("five");
			break;
		case 4:
			printf("four");
			break;
		case 3:
			printf("three");
			break;
		case 2:
			printf("two");
			break;
		case 1:
			printf("one");
			break;
		}
	}

	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值