C Primier Plus(第六版)第6章 编程练习 VS2019测试

本文详细介绍了C Primer Plus第六版第6章的编程练习,包括从第1题到第18题的全部内容,涵盖了一系列C语言编程实践。
摘要由CSDN通过智能技术生成

第1题

/*编程练习6.1创建数组存储小写字母并打印*/
#include<stdio.h>

int main(void)
{
	char letter[26],c='a';
	int index;

	for (index = 0; index < 26; index++,c++) {
		letter[index]=c;		
	}
	for (index = 0; index < 26; index++)
		printf("%c", letter[index]);
	printf("\nDone!");

	return 0;
}

第2题

/*编程练习6.2使用嵌套循环打印字符*/
#include<stdio.h>

int main(void)
{
	int num,line;	//定义每行个数、行数
	
	for (line = 1; line<=5; line++) {
		for (num=1;num<=line;num++)		//每行打印等于行数的字符
			printf("$");
		printf("\n");		//结尾换行
	}

	return 0;
}

第3题

/*编程练习6.3嵌套循环打印字母*/
#include<stdio.h>

int main(void)
{
	int line,num;	//定义行数和每行打印数
	char c;

	for (line = 1; line <= 6; line++) {
		for (num=1,c='F'; num <= line; num++,c--)	//每行打印行数字符,字母递减
			printf("%c", c);
		printf("\n");
	}

	return 0;
}

第4题

/*编程练习6.4嵌套循环打印字母*/
#include<stdio.h>

int main(void)
{
	int line, num;
	char c='A';

	for (line = 1; line <= 6; line++) {
		for (num = 1; num <= line; num++, c++)
			printf("%c", c);
		printf("\n");
	}

	return 0;
}

第5题

/*编程练习6.5用户输入大写字母,嵌套打印*/
#include<stdio.h>

int main(void)
{
	int line, num,LINE;
	char c,C;
	
	printf("Please input an uppercase letter:\n");
	scanf_s("%c", &C);
		if ('A' <= C && C <= 'Z') {
			LINE = (int)C - (int)'A' + 1;	//用户输入大写字符,确定总行数
			for (line = 1; line <= LINE; line++) {
				for (num = LINE - line; num > 0; num--)
					printf(" ");	//打印每行前置空格
				{
					for (c = 'A'; c < 'A' + line; c++)
						printf("%c", c);	//打印每行的字母(递增)
					for (c-=2; c >= 'A'; c--)
						printf("%c", c);	//打印每行的字母(递减)
				}				
				printf("\n");
			}
		}
		else
		;
	printf("Please input an uppercase letter!\n");

	return 0;
}

第6题

/*编程练习6.6打印表格,现实整数及其平方、立方*/
#include<stdio.h>

int main(void)
{
	int UPPER, LOWER,num;

	printf("Please input the UPPER and LOWER(UPPER>=LOWER):\n");
	scanf_s("%d %d", &UPPER, &LOWER);
	printf("  number  square    cube\n");
		for (num = LOWER; num <= UPPER; num++)
		printf("%8d%8d%8d\n", num, num * num, num * num * num);

	return 0;
}

第7题

/*编程练习6.7将单词置入字符数组,并倒序打印该单词*/
#include<stdio.h>
#include<string.h>

int main(void)
{
	char word[40];
	int i, length;

	printf("Please input a word:\n");
	scanf_s("%s",&word,40);
	length = strlen(word);
	for (i = length - 1; i >= 0; i--) 
		printf("%c", word[i]);
	printf("\nDone.\n");

	return 0;
}

第8题、第9题

/*编程练习6.8求两数之差与两数之积的商*/
#include<stdio.h>
double calculate(double i, double j);

int main(void)
{
	double num_1, num_2;
	
	printf("Please input two float number:\n");
	while (scanf_s("%lf %lf", &num_1, &num_2) == 2)
		calculate(num_1, num_2);
	printf("Done.\n");

	return 0;
}

double calculate(double i, double j)
{
	double result;
	result = (i - j) / (i * j);
	printf("The result is %8.2lf\n", result);

	return result;
}

第10题

/* 编程练习6.10用户输入上下限,求平方和*/
#include<stdio.h>

int main(void)
{
	int lower, upper, sum , i;

	printf("Enter lower and upper integer limits:\n");
	scanf_s("%d %d", &lower, &upper);
	while (lower < upper) {
		for (i = lower, sum = 0; i <= upper; i++)
			sum += i * i;
		printf("The sum of the square from %d to %d is %d\n", lower, upper, sum);
		printf("Enter lower and upper integer limits:\n");
		scanf_s("%d %d", &lower, &upper);
	}
	printf("Done\n");

	return 0;
}

第11题

/*编程练习6.11从数组中读入8个整数,并倒序打印*/
#include<stdio.h>
#include<string.h>

int main(void)
{
	int array[8], i,j;

	printf("Please input some integer:\n");
	for (i = 0; i < 8; i++)
		scanf_s("%d", &array[i]);
	printf("The rusult is:\n");
	for (j = 7; j >= 0; j--)
		printf("%d\n", array[j]);

	return 0;
}

第12题

/*编程练习6.12计算两个无限序列之和*/
#include<stdio.h>
#include<math.h>

int main(void)
{
	float sum, sqc_1, sqc_2;
	int i,limit;

	printf("Please input the limit:\n");
	scanf_s("%d", &limit);
	while (limit > 0) {
		for (i = 1, sqc_1 = 0, sqc_2 = 0, sum = 0; i <= limit; i++) {
			sqc_1 += 1.0 / i;
			sqc_2 += 1.0*pow(-1,i) / (-i);
			sum = sqc_1 + sqc_2;
		}
		printf("sequnce_1=%f, sequnce_2=%f, rusult=%f.\n", sqc_1,sqc_2,sum);
		printf("Please input the limit:\n");
		scanf_s("%d", &limit);
	}
	printf("Done!\n");

	return 0;
}

第13题

/*编程练习6.13创建8个元素的数组,数组元素分别为2的前8次幂,并用do while打印数组值*/
#include<stdio.h>
#include<math.h>

int main(void)
{
	int array[8], i;

	for (i = 0; i < 8; i++) 
		array[i] = pow(2, (i + 1));
	i = 0;
	do {		
		printf("array[%d]=%d\n", i, array[i]);
		i++;
	} while (i < 8);
	printf("Done!\n");

	return 0;
}

第14题

/*编程练习6.14设置2个数组,为第一个数组输入数值,第二个数组是第一个数组对应的累积和*/
#include<stdio.h>

int main(void)
{
	double data_1[8], data_2[8],sum;
	int i;

	printf("Please input the data:\n");
	for (i = 0, sum = 0; i < 8; i++) {
		scanf_s("%lf",&data_1[i], 8);
		sum += data_1[i];
		data_2[i] = sum;
	}
	for (i = 0; i < 8; i++) 
		printf("%8.2lf\t", data_1[i]);
	printf("\n");
	for (i = 0; i < 8; i++)
		printf("%8.2lf\t", data_2[i]);

	return 0;
}

第15题

/*编程练习6.15*/
#include<stdio.h>
int main(void)
{
	int i = -1;
	char letters[255];

	printf("Enter the char in a line:\n");
	do
	{
		i++;
		scanf_s("%c", &letters[i]);
	} while (letters[i] != '\n');
	printf("The rusult is:\n");
	for (; i >= 0; i--)
		printf("%c", letters[i]);

	return 0;
}

第16题

/*编程练习6.16计算投资回报*/
#include<stdio.h>
#define RATE_DAHNE 0.1
#define RATE_DEIRDRE 0.05

int main(void)
{
	double dahne=100, deirdre=100;
	int i=0;

	do {
		i++;
		dahne += 100 * RATE_DAHNE;
		deirdre *= (1 + RATE_DEIRDRE);
	} while (dahne > deirdre);
	printf("i=%d dahne=%.2lf deirdre=%.2lf\n", i, dahne, deirdre);

	return 0;
}

第17题

/*编程练习6.17一次投资固定回报*/
#include<stdio.h>
#define PRINCIPAL 100	//本金100万 
#define FUNDS 10	//每年提取10万

int main(void)
{
	const float rate = 0.08;
	float balance;	//账户余额
	int i=1;

	balance = PRINCIPAL * (1+rate)-FUNDS;
	while (balance > 0) {
		i++;
		balance = balance * (1 + rate) - FUNDS;
	}
	printf("year is %d,last fund is %.2lf\n", i,balance+FUNDS);

	return 0;
}

第18题

/*编程练习6.18计算朋友变化*/
#include<stdio.h>
#define D_NUM 150

int main(void)
{
	int friends = 5, week;

	for (week = 1; friends <= D_NUM; week++) {
		friends = (friends - week) * 2;
		printf("At %d week,Rabnud has %4d friends.\n", week,friends);
	}

	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值