第7章 C控制语句:分支和跳转—编程练习

本文主要探讨了C语言中控制语句的使用,重点在于分支结构(如if-else)和跳转语句(如switch,goto)的编程实践。通过一系列练习,帮助读者加深对这些概念的理解和应用。

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

/*
1、编写一个程序读取输入,读到#字符停止,然后报告读取的空格数、换行符数、
和所有其他字符的数量。
*/
#include <stdio.h>
#include<ctype.h>
#define STOP '#'
int main(void)
{
   
   
	char ch;
	int linescount = 0;	//换行符数
	int spacecount = 0;	//空格数
	int otherscount = 0;	//其他字符的数量

	printf("请输入字符:\n");
	while((ch = getchar()) != STOP)
	{
   
   
		if (ch==' ')
			spacecount++;
	   if (ch == '\n')
			linescount++;
		else
			otherscount++;
	}
	printf("spacecount=%d,linescount=%d,otherscount=%d,\n", spacecount, linescount,otherscount);

	return 0;
}
/*
2、编写一个程序读取输入,读到#字符停止。程序要打印每个输入的字符以及对应的ASCII码(十进制)。
一行打印8个字符。建议:使用字符计数和求模运算符(%)在每8个循环周期时打印一个换行符。
每行打印8个“字符-ASCII码”组合。
*/
#include <stdio.h>
int main(void)
{
   
   
	int count = 0;
	char ch;

	printf("请输入字符(#字符停止):\n");
	while ((ch = getchar()) != '#')
	{
   
   
		count++;
		printf("%c,%d\t", ch, ch);
		if (count % 8 == 0)
		{
   
   
			printf("\n");
			count = 0;
		}
	}
	printf("\n");
	return 0;
}
/*
3、编写一个程序,读取整数直到用户输入0,。输入结束后,程序应报告用户输入的偶数(不包括0)
个数、这些偶数的平均值、输入的奇数个数及其奇数的平均值。
*/
#include <stdio.h>
int main(void)
{
   
   
	int index;
	int count1 = 0, count2 = 0;
	float sum1 = 0, sum2 = 0;
	float average1, average2;

	printf("请输入整数(0停止):\n");
	while (scanf("%d", &index) && index != 0)
	{
   
   
		if (index % 2 == 0)
		{
   
   
			count1++;
			sum1 += index;
			average1 = sum1 / count1;
		}
		else
		{
   
   
			count2++;
			sum2 += index;
			average2 = sum2 / count2;
		}
	}
	if (count1)
		printf("偶数的个数是%d,平均值是%.2f\n", count1, average1);
	else
		printf("未输入偶数!\n");
	if (count2)
		printf("奇数的个数是%d,平均值是%.2f\n", count2, average2);
	else
		printf("未输入奇数!\n");
	return 0;
}
/*4、使用if else语句编写一个程序读取输入,读到#停止。用感叹号替换句号,
用两个感叹号替换原来的感叹号,最后报告进行了多少次替换。*/
#include <stdio.h>
int main(void)
{
   
   
	char ch;
	int  count = 0;

	printf("请输入字符(标点为英文输入,#停止):\n");
	while ((ch = getchar()) != '#')
	{
   
   
		if (ch == '.' )
		{
   
   
			putchar('!');
			count++;
		}
		else if (ch == '!')
		{
   
   
			putchar('!');
			putchar('!');
			count++;
		}
		else	
			putchar(ch);
	}
	printf("\n");
	printf("替换的次数为count=%d.\n", count)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值