《C Primer Plus(第五版)中文版》第7章第1至11题

本博客涵盖了《C Primer Plus(第五版)》第7章的部分练习题,包括读取字符计数、整数输入统计、字符串替换、工资计算、素数显示、税务计算以及购物订单总价的计算。涉及if/else和switch语句的应用,以及循环和条件判断的实践。
摘要由CSDN通过智能技术生成

1、编写一个程序,该程序读取输入直到遇到#字符,然后报告读取空格数目,读取的换行符数目以及读取所有的其它字符数目。

#include <stdio.h>
#include <string.h>
int main(void){
	int bs = 0; //统计空格符
	int es = 0; //统计换行符
	int th = 0; //统计其它字符
	char ch;
	printf("请输入字符,输入#号后结束:\n");
	fflush(stdout);
	while((ch = getchar()) != '#'){
		if(ch == ' '){
			bs++;
		}
		else if(ch == '\n'){
			es++;
		}else
			th++;
	}
	printf("空格数:%d,换行符数:%d,其它字符 :%d\n",bs,es,th);
	printf("\nend\n");
	return 0;
}

2、编写一个程序。该程序读取输入直到遇到#字符,使程序打印每个输入的字符以及它的十进制ASCII码,每行打印8个字符/编码对,建 议:利用字符计数和模运符(%)在每8个循环周期时打印一个换行符。

#include <stdio.h>
#include <string.h>
int main(void){
	const int LINE = 8; //每行打印8个字符
	char ch;
	int chsum = 0; //统计输入的字符数
	printf("请输入字符串,以#号键结束:\n");
	fflush(stdout);
	while((ch = getchar()) != '#'){
		printf("%c %d\t",ch,ch);
		chsum++;
		if(chsum % LINE == 0)
			printf("\n");
	}
	printf("\n输入了%d个字符",chsum);
	printf("\nend\n");
	return 0;
}


3、编写一个程序,该程序读取整数,直到输入零,输入终止。输入终止后,程序应该报告输入的偶数(不包括零)总个数,偶数的平均值,输入的奇数总个数以及平均值。

#include <stdio.h>
#include <string.h>
int main(void){
	int sum = 0;
	int sum2 = 0;
	int sum2a =0;
	int sum3 = 0;
	int sum3a = 0;
	int n;
	printf("请输入整数,结束请输入0\n");
	fflush(stdout);
	while(scanf("%d",&n) != 0 && n != 0){
		sum++;
		if((n != 0) && (n % 2 == 0)){
			sum2++;
			sum2a += n;
		}
		else{
			sum3++;
			sum3a += n;
		}
	}
	printf("共%d个整数,其中%d个偶数,平均值为%d,%d个奇数,平均值为%d\n",sum,sum2,sum2a/sum2,sum3,sum3a/sum3);
	printf("\nend\n");
	return 0;
}

4、利用if else语句编写程序读取输入,直到遇到#号结束,用一个感叹号替换每个句号,将原有每个感叹号用两个感叹号代替,最后报告进行了多少次替代。

#include <stdio.h>
#include <string.h>
int main(void){
	char ch;
	int dousum = 0;
	int hansum = 0;
	printf("请入字符串并以#后键结束:\n");
	fflush(stdout);
	while((ch = getchar()) != '#'){
		if(ch == '!'){
			putchar(ch);
			printf("!");
			hansum++;
		}else if(ch == '.'){
			dousum++;
			printf("!");
		}else{
			putchar(ch);
		}
	}
	printf("\n替换了%d句号,替换了%d感叹号,总计%d处\n",dousum,hansum,dousum+hansum);
	printf("\nend\n");
	return 0;
}

5、用swich重做练习3

#include <stdio.h>
#include <string.h>
int main(void){
	int sum = 0;
	int sum2 = 0;
	int sum2a =0;
	int sum3 = 0;
	int sum3a = 0;
	int n;
	int a;
	printf("请输入整数
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值