【编程练习】《全国计算机考试二级教程—— C 语言程序设计(2019年版)》第 6 章 字符型数据,习题:三、编程题

6.19 请编写程序,输入一行字符(用回车结束),输出每个字符以及与之对应的 ASCII 代码值,每行输出三对。

输出时分别用格式控制符 %c%d 就能将输入的每个字符及对应的 ASCII 码值输出。

环境:Microsoft Visual C++ 2010 学习版
ex6_19.c

#include <stdio.h>
#include <Windows.h>

int main(void)
{
	char ch;
	int i=0;

	while ((ch = getchar()) != '\n')
	{
		i++;
		printf("  字符%c,ASCII码值%d", ch, ch);
		if (i == 3)
		{
			putchar('\n');
			i = 0;
		}
	}

	printf("\n");

	system("pause");
	return 0;
}

编译运行结果:

fn+F5


6.20 请编写程序,输入一行数字字符(用回车结束),每个数字字符的前后都有空格。请编程,把这一行中的数字转换成一个整数。例如,若输入:

2 4 8 3 enter
则输出整数:2483。

字符 9 与字符 0 相减得到数值 9,存入字符变量 l
l= '9' - '0'
因为事先不清楚数字字符的个数,所以先按输入的顺序将转换成数值的数字,除以对应次序的 10 次方,最后通过在总和上乘以 10 的,输入数字个数的次方。

环境:Microsoft Visual C++ 2010 学习版
ex6_20.c

#include <stdio.h>
#include <ctype.h>
#include <Windows.h>

int main(void)
{
	char ch;
	int i=1, j=1, k=1;
	double sum=0, l=0;

	while ((ch = getchar()) != '\n')
	{
		if (isspace(ch))
		{
			continue;
		}
		else
		{
			l = ch - '0';
			for (i = j; i > 0; i--) /* 数字字符个数 */
			{
				l = l/10.0;
			}
			k = k*10;
			sum += l;
			j = j + 1;
		}
	}
	sum = sum*k;
	printf("%d\n", (int)sum);

	system("pause");
	return 0;
}

编译运行结果:
fn+F5
这样输出的才是一个整数,而不是数字紧贴着输出。

6.21 请编写程序统计输入的行数,用 ! 号结束输入,! 号所在行不计入行数。

环境:Microsoft Visual C++ 2010 学习版
ex6_21.c

#include <stdio.h>
#include <ctype.h>
#include <Windows.h>

int main(void)
{
	int n;
	char ch;
	n = 0;

	while ((ch = getchar()) != '!')
	{
		if (ch== '\n')
		{
			n++;
		}
	}

	printf("行数为:%d\n", n);

	system("pause");
	return 0;
}

编译运行结果:
fn+<kbd
fn+<kbd

6.22 请编写程序统计输入的一行中小写字母的个数。

环境:Microsoft Visual C++ 2010 学习版
ex6_22.c

#include <stdio.h>
#include <ctype.h>
#include <Windows.h>

int main(void)
{
	int n;
	char ch;
	n = 0;

	while((ch = getchar()) != '\n')
	{
		if (islower(ch))
		{
			n++;
		}
	}

	printf("小写字母的个数为:%d\n", n);

	system("pause");
	return 0;
}

编译运行结果:
fn+<kbd

6.23 请编写输出以下图案的程序,图案的行数由输入的整数值确定(每行中字符之间没有空格)。

A B B B C C C C C D D D D D D D E E E E E E E E E \begin{aligned} &A \\ B&BB \\ CC&CCC \\ DDD&DDDD \\ EEEE&EEEEE \\ \end{aligned} BCCDDDEEEEABBCCCDDDDEEEEE
环境:Microsoft Visual C++ 2010 学习版
ex6_23.c

#include <stdio.h>
#include <Windows.h>

int main(void)
{
	int i, j, n;
	printf("请输入图案的行数:");
	scanf("%d", &n);

	for (i = 1; i <= n; i++)
	{
		for (j = 0; j < n-i; j++)
		{
			printf("%c", '\0');
		}
		for (j = 0; j < 2*i-1; j++)
		{
			printf("%c", 64+i);
		}
		printf("%c", '\n');
	}

	system("pause");
	return 0;
}

编译运行结果:
fn+F5

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值