《C Primer Plus》第六章编程题

1、编写一个程序,创建一个具有26个元素的数组,并在其中存储26个小写字母。并让该程序显示该数组的内容。

#include <stdio.h>

int main(void)
{
	char alphabet[26];
	int i;
	int index=0;

	for(i='a';i<='z';i++)
	{
		alphabet[index]=(char)i;
		index++;
	}
	
	for(index = 0;index<=('z'-'a');index++)
	{
		printf("%3c",alphabet[index]);
	}
	return 0;
}

2、使用嵌套循环产生下列图案:

$

$$

$$$

$$$$

$$$$$

#include <stdio.h>
#define COLUMN 5

int main(void)
{
	int i,j;
	for(i=1;i<=COLUMN;i++)
	{
		for(j=1;j<=i;j++)
		{
			printf("%c",'$');
		}
		printf("\n");
	}
	return 0;
}
3、使用嵌套循环产生下列图案:

F

FE

FED

FEDC

FEDCB

FEDCBA

#include <stdio.h>

int main(void)
{
	int i,j,temp,alpha;
	int index = 0;
	char alphabet[10];
	
	for(alpha='A';alpha<='F';alpha++)
	{
		alphabet[index]=alpha;
		index++;
	}
	temp=index;
	for(i=1;i<=6;i++)
	{
		index = temp;
		for(j=1;j<=i;j++)
		{
		   index--;
		   printf("%c",alphabet[index]);
			
		}
		printf("\n");
	}
	return 0;
}

前段时间一直在忙期末考试,大学生伤不起。现在最近的一门考试在27号。总算是可以静下心来写几道程序了。

4、让程序要求用户输入一个大写字母,使用嵌套循环产生像下面这样的金字塔图案:

     A

   ABA

 ABCBA(以输入C为例)

#include <stdio.h>
#include <string.h>
void rwrite(char ch);

int main(void)
{
	char let;
	printf("Please enter a letter:\n");
	scanf("%c",&let);
	printf("The letter is %c\n",let);
	rwrite(let);
	return 0;
}
void rwrite(char ch)
{
	char lets[27]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	int row,tempr,position,startp,endp;
	int index = 0;
	while(lets[index]!=ch)
	{
		index++;
	}
	for(row=1;row<=(index+1);row++)
	{
		tempr=row;
		for(position=1;position<=(index-tempr+1);position++)
			printf("%s"," ");
		for(startp=0;startp<=tempr-1;startp++)
			printf("%c",lets[startp]);
		for(endp=(tempr-1);endp>0;endp--)
		{
			printf("%c",lets[endp-1]);
		}
		printf("\n");
	}
}

5、编写一个程序打印一个表,表的每一行都给出一个整数、它的平方以及它的立方。要求用户输入表的上限与下限。使用一个for循环。

#include <stdio.h>

int main(void)
{
	long int maxlimit;
	long int minlimit;
	long int max,min;
	long int count;
	printf("Please enter maxlimit and minlimit:\n");
	while(scanf("%ld %ld",&maxlimit,&minlimit)==2)
	{
		if(maxlimit<minlimit)
		{
			min = maxlimit;
			max = minlimit;
		}
		else
		{
			max = maxlimit;
			min = minlimit;
		}
		printf("The maxlimit you input is %ld,the minlimit you input is %ld.\n",max,min);
	for(count=min;count<=max;count++)
	{
		printf("Integer:%ld,Square:%ld,Cube:%ld.\n",count,count*count,count*count*count);
	}
	}
	return 0;
}

6、编写一个程序把一个单词读入一个字符数组,然后反向打印出这个词。


#include <stdio.h>
#include <string.h>

int main(void)
{
	char ch[50];
	int i;
	printf("Please enter a letter:\n");
	scanf("%s",&ch);
	printf("The letter you entered is %s.\n",ch);
	for(i=strlen(ch);i>=0;i--)
	{
		printf("%c",ch[i]);
	}
	return 0;
}
7、编写一个程序,要求输入两个浮点数,然后打印出用二者的差值除以二者的乘积所得的结果。

#include <stdio.h>

int main(void)
{
	double num1,num2;
	printf("Please enter two floats:\n");
	while(scanf("%lf %lf",&num1,&num2)==2)
	{
		printf("The number you entered is %lf , %lf.\n",num1,num2);
		printf("The result is:%.2f\n",(num1-num2)/(num1*num2));
		printf("Please enter two numbers(q to quit):");
	}
	printf("Thank you for using.");
	return 0;
}

8、对7进行修改,让它使用一个函数来返回计算值。

#include <stdio.h>
double calculate(double,double);

int main(void)
{
	double num1,num2;
	printf("Please enter two floats:\n");
	while(scanf("%lf %lf",&num1,&num2)==2)
	{
		printf("The number you entered is %lf , %lf.\n",num1,num2);
		printf("The result is:%.2f\n",calculate(num1,num2));
		printf("Please enter two numbers(q to quit):");
	}
	printf("Thank you for using.");
	return 0;
}
double calculate(double num1,double num2)
{
	return (num1-num2)/(num1*num2);
}

循环这章题目大多类似,先跳过了。以后找些稍微有点难度的看看。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值