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

本文提供了一系列C语言编程实例,包括程序暂停与显示信息、电话号码转换、单词价值计算、表达式求值等,旨在帮助读者深入理解C语言的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

  • 编写程序,每24次平方后暂停并显示信息
#include <stdio.h>
int main(void){
	int n=0,i=0;
	printf("press enter to continue");
	getchar();
	printf("enter a number : ");
	scanf("%d",&n);
	for (i=0;i<n;i++){
		if(i%24==0){
			printf("press enter to continue");
			getchar(); 
		}
		printf("%d\n",i*i);
	}
	return 0;
}
  • 编写程序,可以把字母格式的电话号码翻译成数值格式
#include <stdio.h>
int main(void){
	char letter;
	printf("enter phone number :");
	while((letter=getchar())!='\n'){
		if(letter<'Z'&&letter>='A'){
			switch(letter){
				
				case 'A' : case 'B' : case 'C' :{
					printf("2");
					break;
				}
				case 'D' : case 'E' : case 'F' :{
					printf("3");
					break;
				}
				case 'G' : case 'H' : case 'I' :{
					printf("4");
					break;
				}
				case 'J' : case 'K' : case 'L' :{
					printf("5");
					break;
				}
				case 'M' : case 'N' : case 'O' :{
					printf("6");
					break;
				}
				case 'P' : case 'R' : case 'S' :{
					printf("7");
					break;
				}
				case 'T' : case 'U' : case 'V' :{
					printf("8");
					break;
				}
				case 'W' : case 'X' : case 'Y' :{
					printf("9");
					break;
				}
			}
		continue;
		}	
	
	putchar(letter);
	}
	return 0;
}


  • 编写程序,根据字母稀缺程度不同而计算所输入单词的值
#include <stdio.h>
#include <ctype.h>
int main(void){
	char letter;
	int value=0;
	printf("if you want to end please enter 0");
	printf("\tand enter a word : ");
	while((letter=getchar())!='\n'){
		switch(toupper(letter)){
			case 'A': case 'E':case 'I':case 'L': case 'N':case 'O':case 'R': case 'S':case 'T':case 'U':{
				value=value+1;
				break;
			}
			case 'D': case 'G':{
				value=value+2;
				break;
			}
			case 'B': case 'C':case 'M':case 'P':{
				value=value+3;
				break;
			}
			case 'F': case 'H':case 'V':case 'W':case 'Y':{
				value=value+4;
				break;
			}
			case 'k':{
				value=value+5;
				break;
			}
			case 'J': case 'X':{
				value=value+8;
				break;
			}
			case 'Q': case 'Z':{
				value=value+10;
				break;
			}
		}
	}
	printf("the scrabble value is : %d",value);
	return 0;
}
  • 编写程序,显示 sizeof() 的值
#include <stdio.h>
int main (void){
	printf ("%d\n", (int)sizeof(int));
	printf ("%d\n", (int)sizeof(short));
	printf ("%d\n", (int)sizeof(long));
	printf ("%d\n", (int)sizeof(float));
	printf ("%d\n", (int)sizeof(double));
	printf ("%d\n", (int)sizeof(long double));
	return 0;
}

  • 编写程序,使用户可以对两个分数进行加、减、乘、除运算
#include <stdio.h>
int main(void){
	char calculate_sign,result;
	int numberator_first=0,denominator_first=0;
	int numberator_second=0,denominator_second=0;
	int numberator_result=0,denominator_result=0;
	int m,n,temp;
	printf("enter two fraction\n");
	scanf("%d/%d%c%d/%d",&numberator_first,&denominator_first,&calculate_sign,\
	&numberator_second,&denominator_second);
	switch(calculate_sign){
		case '+' :{
			numberator_result=numberator_first*denominator_second\
			+numberator_second*denominator_first;
			denominator_result=denominator_first*denominator_second;
			break;
		}
		case '-' :{
			numberator_result=numberator_first*denominator_second\
			-numberator_second*denominator_second;
			denominator_result=denominator_first*denominator_second;
			break;
		}
		case '*' :{
			numberator_result=numberator_first*denominator_second;
			denominator_result=denominator_first*denominator_second;
			break;
		}
		case '/' :{
			numberator_result=numberator_first*denominator_second;
			denominator_result=denominator_first*numberator_second;
			break;
		}
	}
	m=numberator_result;
	n=denominator_result;
	while(n!=0){
		temp=n;
		n=m%n;
		m=temp;
		numberator_result=numberator_result/m;
		denominator_result=denominator_result/m;
	}
	if((result=getchar())=='\n'){
		printf("the result is %d/%d",numberator_result,denominator_result);
	
	return 0;
	}
}
  • 编写程序,根据用户输入的 12 小时制的时间,显示 24 小时制该时间
#include <stdio.h>
#include <ctype.h> 
int main(void){
	char sign,sign_new;
	int hour=0,minute=0;
	printf("enter a 12-hour time :");
	scanf("%d:%d",&hour,&minute);
	
	while(1){
		sign_new=toupper(sign=getchar());
		if(sign_new=='P'){
			hour=hour+12;
			break;
		}
		if(sign_new=='A'){
			break;
		}
		
	}
	printf("the equivalent 24-hour time : %d:%d  ",hour,minute);
	return 0;
	
}
  • 编写程序,统计句子中元音字母的个数
#include <stdio.h>
#include <ctype.h>
int main(void){
	int number=0;
	char letter;
	printf("enter a sentence :");
	while(1){
		letter=getchar();
		if(letter=='\n'){
			break;
		}
		switch(toupper(letter)){
			case 'A' : case 'E' : case 'I' : case 'O' : case 'U' :{
				number++;
				break;
			}
		}
	}
	printf("your sentence contains %d vowels",number);
	return 0;
}
  • 编写程序,根据用户输入的英文名和姓先显示姓氏,其后跟一个逗号,然后显示名的首字母,最后加一个点 比如 Fosdick, L.
#include <stdio.h>
int main(void){
	char name,name_first_first;
	printf("enter a first and last name :");
	printf("(if you want to end ,you can enter ,)");
	scanf("%c",&name_first_first);
	printf("look at this \n");
	while(1){
		name=getchar();
		if(name==' '){
			while(1){
				name=getchar();
				putchar(name);
				if(name==','){
					printf("%c.",name_first_first);
					return 0;
				}
			}
		}
	}
}
  • 编写程序,对表达式求值(此处主要为从左到右求值)
#include <stdio.h>
int main (void){
	double number_1=0,number_2=0;
	char letter;
	printf ("enter an expression: ");
	scanf ("%lf", &number_1);
	while(1){	
		letter=getchar();
		if (letter == '\n') break;
		scanf ("%lf", &number_2);
		switch(letter){
			case '+':{
				number_1 = number_1 + number_2;
				break;
				}
			case '-':{
				number_1 = number_1 - number_2;
				break;
				}
			case '*':{
				number_1 = number_1 * number_2;
				break;
				}
			case '/':{
				number_1 = number_1 / number_2;
				break;
				}
		}	 
	}
	printf ("value of expression: %.1f", number_1);
	return 0;
}
  • 编写程序,计算句子的平均词长
#include <stdio.h>
int main(void){
	int number=1,sum=-1;
	char letter;
	printf("enter a sentence : ");
	while(1){
		letter=getchar();
		sum++;
		if(letter==' '){
			number++;
			sum--;
		}
		if(letter=='\n'){
			break;
		}
	}
	printf("average word length %f ",(float)sum/number);
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值