C Primer Plus(第六版)第六章编程答案 1~9

// 编写一个程序,创建一个包含23个元素的数组,并在其中储存26个
// 小写字母。然后打印数组的所有内容。
#include"stdio.h"
int main(void)
#define ZM 26
{
	char zimu [ZM];
	char ch='a';
	int a;
	for(a=0;a<ZM;a++,ch++)
		zimu[a]=ch;		
	for(a=0;a<ZM;a++)
		printf("%2.3c",zimu[a]);
	return 0;
 } 

// 使用嵌套循环,按下面的格式打印字符:
// $
// $$
// $$$
// $$$$
// $$$$$
#include"stdio.h"
#define zifu '$'
int main(void)
{
	int a,b;
	for(a=1;a<=5;a++)
	{
		for(b=1;b<=a;b++)			
			printf("%c",zifu);	
		printf("\n");		
	}
	return 0;
}

// 使用嵌套循环,按下面的格式打印字母:
// F
// FE
// FED
// FEDC
// FEDCB
// FEDCBA
// 注意:如果你的系统不适应ASCII或其他以数字顺序编码的代码
// 可以把字符数组初始化为字母表中的字母:
// char lets【27】 = “ABCDEFGHIJKLMNOPQRSTUVWXYZ”;
// 然后用数组下标选择单独的字母,例如lets【0】是‘A’,等等。
#include"stdio.h"
int main(void)
{
	char c;
	int a,b;
	for(a=1;a<=6;a++)
	{
		c='F';
		for(b=1;b<=a;b++)			
		{
			printf("%c",c);
			c-=1;	
		}	
		printf("\n");		
	}
	return 0;
}

第三题第二种方法

#include"stdio.h"
int main(void)
{
	int b,c;
	char a='A';
	char lets[26];
	for(b=0;b<26;b++,a++)
		lets[b]=a;
	for(b=0;b<26;b++)
		printf("%c",lets[b]);
	printf("\n");
	for(b=1;b<=6;b++)
	{	for(c=5;c>5-b;c--)
		printf("%c",lets[c]);
	printf("\n");
		}	
	return 0;
}

// 使用嵌套循环,按下面的格式打印字母:
// A
// BC
// DEF
// GHIJ
// KLMNO
// PQRSTU
// 如果你的系统不使用以数字顺序编码的代码,请参照练习3的方案解决。
#include"stdio.h"
int main(void)
{
	char c;
	int a,b;
	c='A';
	for(a=1;a<=6;a++)
	{
		for(b=1;b<=a;b++)			
		{
			printf("%c",c);
			c++;	
		}	
		printf("\n");		
	}
	return 0;
}

第四题第二种方法

#include"stdio.h"
int main(void)
{
	int b,c,d;
	d=0;
	char a='A';
	char lets[26];
	for(b=0;b<26;b++,a++)
		lets[b]=a;
	for(b=1;b<=6;b++)
	{	
		for(c=1;c<=b;c++)
			{printf("%c",lets[d]);
			d++;
			}
	printf("\n");	
	}
	return 0;
}

//  编写一个程序,提示用户输入大写字母。使用嵌套循环以下面
//  金字塔型的格式打印字母:
//     A
//    ABA
//   ABCBA
//  ABCDCBA
// ABCDEDCBA
// 打印这样的图形,要根据用户输入的字母来决定。例如,上面的图形是在用户输入E后的打印结果。
// 提示:用外层循环处理行,每行使用3个内层循环,分别处理空格、以升序打印字母、以降序打印字母
// 如果系统不适用ASCII或其他以数字顺序编码的代码,请参照练习3的解决方案。
#include"stdio.h"
int main(void)
{
	char ch;
	int a,b,d;
	printf("please enter a letter:\n");
	scanf("%c",&ch);
	for(a=1;a<=5;a++)//ch-'A'+1
	{
		for(b=1;b<=5-a;b++)							
		printf(" ");
		
		for(b=0;b<a;b++)
		printf("%c",ch-4+b);
		
		for(b=a-2;b>=0;b--)
		printf("%c",ch-4+b);
		
		printf("\n");		
	}
	return 0;
}

第五题第二种方法

#include"stdio.h"
int main(void)
{
	char ch;
	int a,b,d;
	char e='A';
	char lets[26];
	for(b=0;b<26;b++,e++)
		lets[b]=e;
	for (b = 0; b < 26; b++)
	{
		printf("%c",lets[b]);
	}
	printf("\nplease enter a letter:\n");
	scanf("%c",&ch);
	for(a=1;a<=5;a++)//ch-'A'+1
	{
		for(b=1;b<=5-a;b++)							
		printf(" ");
		
		for(b=0;b<a;b++)
		printf("%c",lets[0]+b);
		
		for(b=a-2;b>=0;b--)
		printf("%c",lets[0]+b);
		
		printf("\n");		
	}
	return 0;
}

// 编写一个程序打印一个表格,每一行打印一个整数、该数的平方、该数的立方。
// 要求用户输入表格的上下限。使用一个for循环
#include"stdio.h"
int main(void)
{
	int low,hight;
	printf("Please enter the lower limit of integer:\n");
	scanf("%d",&low);
	printf("Please enter the upper limit of integer:\n");
	scanf("%d",&hight);
	printf("\ninteger   square   cube\n");
	printf("——————————————————\n");
	for( ;low<=hight;low++)
	{
		printf("%7d %7d %7d\n",low,low*low,low*low*low);
		printf("——————————————————\n");
	}
	return 0;
}

// 编写一个程序把一个单词读入一个字符数组中,然后倒序打印这个单词。
// 提示strlen()函数(第4章介绍过)可用于计算数组最后一个字符的下标
#include <stdio.h>
#include <string.h>
int main (void)
{
    char str[20];
    int max;
    int i;
 
    printf ("Enter a word:\n");
    scanf ("%s", str);
    max = strlen (str) - 1;
 
    for (i = max; i >= 0; i--)
        printf ("%c", str[i]);
 
    return 0;
}

// 编写一个程序,要求用户输入两个浮点数,并打印两数之差除以两数乘积的结果
// 在用户输入非数字之前,程序应循环处理用户输入的每对值。
#include"stdio.h"
int main(void)
{
	float a,b,c,d;
	printf("please enter tow float nonber:");
	while(scanf("%f %f",&a,&b)==2)
	{
		c=a-b;
		d=a*b;
		printf("%f-%f=%f\n",a,b,c);
		printf("%f*%f=%f\n",a,b,d);
		printf("%f/%f=%f\n",c,d,c/d);
		printf("please enter tow float nonber again:\n");
	}
	return 0;
}

// 修改练习8,使用一个函数返回计算的结果。
#include"stdio.h"
float HANSHU(float n,float p);
int main(void)
{
	float a,b,q;
	printf("please enter tow float nonber:");
	while(scanf("%f %f",&a,&b)==2)
	{
		q=HANSHU(a,b);
		printf("%f\n",q);
	}
	return 0;
}
float HANSHU(float n,float p)
{	float c,d,q;
	c=n-p;
	d=n*p;
	q=c/d;
	return  q;	
}

如有问题,及时会答复

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

X在学了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值