《C语言程序设计_现代方法 第2版》课后编程部分习题 第四章 第五章

挑选几个喜欢的程序以备日后回顾

首先第四章

  • 编写一个程序,要求用户输入一个两位数,然后按数位的逆序打印出来这个数
#include <stdio.h>
int main(void){
	int number;
	printf("enter a two_digit number");
	scanf("%d",&number);
	printf("the reversal is %d%d",number%10,number/10);
	return 0;
} 
  • 编写程序,使程序不需要算术分割就可以显示出三位数的逆序
#include <stdio.h>
int main(void){
	int number_one=0,number_two=0,number_three=0;
	printf("enter a three-digit number");
	scanf("%1d%1d%1d",&number_one,&number_two,&number_three);
	printf("the reversal is %d%d%d",number_three,\
	number_two,number_one);
	return 0;
} 
  • 编写一个程序,读入用户输入的整数并按照八进制显示出来
#include <stdio.h>
int main(void){
	int number_10=0,number_8=0;
	int a=0,b=0,c=0,d=0,e=0;
	printf("enter a number between 0 and 32767 :");
	scanf("%d",&number_10);
	a=number_10 %8;
	b=(number_10/8)%8;
	c=(number_10/8/8)%8;
	d=(number_10/8/8/8)%8;
	e=(number_10/8/8/8/8)%8;
	printf("in octal,your number is %1d%1d%1d%1d%1d",e,d,c,b,a);
}
  • 使用户可以一次输入 11 位数字,而不用先录入 1 位,再录入 5 位,最后再录入 5 位
#include <stdio.h>
int main (void){
	int d,i1,i2,i3,i4,i5,j1,j2,j3,j4,j5;
	int sum_first,sum_second,sum;
	printf ("enter the frist 11 digits of a UPC :");
	scanf ("%1d%1d%1d%1d%1d%1d%1d%1d%1d%1d%1d",\
	&d, &i1, &i2, &i3, &i4, &i5, &j1, &j2, &j3, &j4, &j5);
	sum_first= d + i2 + i4 + j1 + j3 + j5;
	sum_second = i1 + i3 + i5 + j2 + j4;
	sum=3*sum_first+sum_second;
	printf ("Check digit: %d", 9-((sum-1)%10));
	return 0;
}

接下来是第五章

  • 编写一个程序,确定一个数的位数
#include<stdio.h>
int main(void){
	int number=0,digit=0;
	printf("enter a number");
	scanf("%d",&number);
	if(number<=9 && number>=0){
		digit=1;
	}
	else if(number<=99 && number>=10){
		digit=2;
		}
	else if(number<=999 && number>=100){
		digit=3;
		}
	else{
		printf("please enter a number less than three digits");
		return 0;
	}
	printf("the number %d has %d digits" ,number,digit);
	return 0;
}
  • 编写一个程序,要求输入 24 小时制的时间,然后显示出 12 小时制的格式
#include <stdio.h>
int main(void){
	int time_hour=0,time_minute=0;
	printf("enter a 24-hour time : ");
	scanf("%d:%d",&time_hour,&time_minute);
	if(time_hour<12 && time_hour>=0){
		printf("equivalent 12-hour time : %2d:%.2d AM",\
		time_hour,time_minute);		
	}
	else if(time_hour>12 && time_hour<=24){
		printf("equivalent 12-hour time : %2d:%.2d PM",\
		time_hour-12,time_minute);
	}else if(time_hour=12){
		printf("equivalent 12-hour time : %2d:%.2d PM",\
		time_hour,time_minute);
	}
	
}

  • 利用switch语句编写程序,把数字表示的成绩转化为字母表示的等级
#include <stdio.h>
int main(void){
	int number=0,new_number=0;
	printf("enter numerical grade : ");
	scanf("%d",&number);
	if(number<0||number>100){
		printf("please enter a new valid number : ");
		scanf("%d",&new_number);
		number=new_number;
	}
	switch(number/10){
		case 10: case 9:{
			printf("letter grade : A");
			break;
		}
		case 8:{
			printf("letter grade : B");
			break;
		}
		case 7:{
			printf("letter grade : C");
			break;
		}
		case 6:{
			printf("letter grade : D");
			break;
		}
		case 5: case 4: case 3: case 2: case 1: case 0:{
			printf("letter grade : F");
			break;
		}
	}
	return 0;
}
  • 编写一个程序,要求用户输入一个两位数,然后显示出相应的英文单词
#include <stdio.h>
int main(void){
	int number=0;
	printf("please enter a two-digits number :");
	scanf("%d",&number);
	if(number>=100 || number<10){
		printf("please enter a new valid number");
		return 0;
	}
	printf("you entered the number is ");
	switch(number/10){
		case 1:{
			switch(number%10){
				case 1: printf("eleven"); break;
				case 2: printf("twelve"); break;
				case 3: printf("thirteen"); break;
				case 4: printf("fourteen"); break;
				case 5: printf("fifteen"); break;
				case 6: printf("sixteen"); break;
				case 7: printf("seventeen"); break;
				case 8: printf("eighteen"); break;
				case 9: printf("nineteen"); break;
				case 0: printf("ten"); break;
			}
			return 0;
		}
		case 2: printf("twenty"); break;
		case 3: printf("thirty"); break;
		case 4: printf("forty"); break;
		case 5: printf("fifty"); break;
		case 6: printf("sixty"); break;
		case 7: printf("seventy"); break;
		case 8: printf("eighty"); break;
		case 9: printf("ninety"); break;
		
	}
	switch(number%10){
		case 1: printf("-one"); break;
		case 2: printf("-two"); break;
		case 3: printf("-three"); break;
		case 4: printf("-four"); break;
		case 5: printf("-five"); break;
		case 6: printf("-six"); break;
		case 7: printf("-seven"); break;
		case 8: printf("-eight"); break;
		case 9: printf("-nine"); break;
		case 0: break;
	}
	return 0;
}
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值