天天看點

C primer plus (第6版)中文版 第六章答案

//第 1 題

#include <stdio.h>
int main(void)
{
	char alphabet[26];
	int i;
	char c = 'a';
	for (i = 0; i < 26; i++, c++)
		alphabet[i] = c;
	for (i = 0; i < 26; i++)
		printf("%c ", alphabet[i]);
	return 0;
}
           
//第 2 題

#include <stdio.h>
int main(void)
{
	int i, j;
	for (i = 0; i <= 5; i++)
	{
		for (j = 0; j < i; j++)
			printf("$");
		printf("\n");
	}
	return 0;
}
           
//第 3 題

#include <stdio.h>
int main(void)
{
	int i, j;
	char c;
	for (i = 0; i <= 6; i++)
	{
		for (j = 0, c = 'F'; j < i; j++, c--)
			printf("%c", c);
		printf("\n");
	}
	return 0;
}
           
//第 4 題

#include <stdio.h>
int main(void)
{
	int i, j;
	char c = 'A';
	for (i = 1; i <= 6; i++)
	{
		for (j = 0; j <= i; j++, c++)
			printf("%c", c);
		printf("\n");
	}
	return 0;
}
           
//第 5 題

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
	int i, j, num;
	char c;
	printf("Enter the core char you want to print(A...Z):");
	scanf("%c", &c);
	char ch = 'A';
	num = c - 'A' + 1;
	for (i = 0; i <= num; i++)         
	{
		for (j = 0; j < num - i; j++) 
			printf(" ");
		for (ch = 'A'; j < num; j++)    
			printf("%c", ch++);
		for (j = 1, ch -= 2; j < i; j++, ch--) 
			printf("%c", ch);
		printf("\n");
	}
	return 0;
}
           
//第 6 題

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
	int start, end;
	printf("Please enter the start number:");
	scanf("%d", &start);
	printf("Please enter the end number:");
	scanf("%d", &end);
	printf("   Ori:    Square:    Cubic:\n");
	for (int i = start; i <= end; i++)
	{
		printf("%6d,%10d,%10d", i, i * i, i * i * i);
		printf("\n");
	}			
	return 0;
}
           
//第 7 題

#include <stdio.h>
#include <string.h>
int main(void)
{
	char word[30];
	printf("Please enter the words:");
	printf("The word you enter is : %s\n", word);
	printf("The reverse word you enter is : ");
	printf("%d", strlen(word));
	for (int i = strlen(word) - 1; i >= 0; i--)
	{
		printf("%c", word[i]);
	}
	return 0;
}
           
//第 8 題

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
	float x, y;
	printf("Please enter the two foloat data(seprate by blank):");

	while (scanf("%f %f", &x, &y) == 2)
	{
		printf("The answer is %f\n", (x - y) / (x * y));
		printf("Enter again.\n");
	}
	printf("Program end!");
	return 0;
}
           
//第 9 題

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
float calc(float x, float y);
int main(void)
{
	float x, y;
	printf("Please enter the two foloat data(seprate by blank): ");
	while (scanf("%f %f", &x, &y) == 2)
	{
		printf("The answer is %f\n", calc(x, y));
		printf("Please enter the two foloat data(seprate by blank): ");
	}
	printf("Program end!");
	return 0;
}
float calc(float x, float y)
{
	float result;
	result = (x - y) / (x * y);
	return result;
}
           
//第 10 題

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main(void)
{
	int lower, upper;
	printf("Enter lower and upper integer limits: ");
	scanf("%d %d", &lower, &upper);
	while (upper < lower)
	{
		int sum = 0;                            
		for (int i = lower; 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: ");
		scanf("%d %d", &lower, &upper);
	}
	printf("Done!\n");
	return 0;
}
           
//第 11 題

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
	int data[8];
	printf("Enter the 8 integer data (seprate by blank): ");

	
	for (int i = 0; i < S8; i++)
		scanf("%d", &data[i]);
	printf("Ok,the reverse data is :");
	for (int i = 8 - 1; i >= 0; i--)
		printf("%d", data[i]);
	printf("\nDone!\n");
	return 0;
}
           
//第 12 題

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main(void)
{
	int length;
	double sum = 0.0;
	printf("Enter the limit length: ");
	scanf("%d", &length);
	while (length > 0)
	{
		sum = 0.0;
		for (int i = 1; i <= length; i++)
			sum += 1.0 / i;
		printf("The sum for 1.0 +...+ 1.0/%d.0 is %lf\n", length, sum);
		sum = 0.0;
		for (int i = 0; i < length; i++)
		{
			if (i % 2 != 0)sum = sum - 1.0 / i;
			else
				sum += 1.0 / i;
		}
		printf("The sum for 1.0 +1.0+2.0/3.0+...+ 2.0/%d.0 is %lf\n",
			length, sum);


		printf("Enter the limit length: ");
		scanf("%d", &length);
	}
	printf("\nDone!\n");
	return 0;
}
           
//第 13 題

#include <stdio.h>
int main(void)
{
	int data[8];
	data[0] = 2;
	for (int i = 1; i < 8; i++)
		data[i] = data[i - 1] * 2;
	int i = 0;
	do
	{
		printf("%d ", data[i++]);
	} while (i < 8);
	printf("\nDone!\n");
	return 0;
}
           
//第 14 題

#include <stdio.h>
int main(void)
{
	double first[8], second[8];
	printf("Enter 8 data to the FIRST array: ");
	for (int i = 0; i < 8; i++)
		scanf("%lf", &first[i]);
	for (int i = 0; i < 8; i++)
	{
		double sum = 0;
		for (int j = 0; j <= i; j++)
			sum += first[j];
		second[i] = sum;
	}
	printf("All the data of two array:\n");
	printf("First Array: ");
	for (int i = 0; i < 8; i++)
		printf("%12lf ", first[i]);
    printf("\nSecond Array: ");
    for (int i = 0; i < 8; i++)
	    printf("%12lf. ", second[i]);
    printf("\nDone!\n");
	return 0;
}
           
//第 15 題

#include <stdio.h>
#include <string.h>
int main(void)
{
	char data[256];
	printf("Enter the char in a line : ");
	int i = 0;
	do
	{
		scanf("%c", &data[i]);		
	} while (data[i] != '\n' && i++);
	printf("The reverse char of the data: ");
	for (i--; i >= 0; i--)
		printf("%c", data[i]);
	printf("\nDone!\n");
	return 0;
}
           
//第 16 題

#include <stdio.h>
#include <string.h>
int main(void)
{
	float daphne, deirdre;
	daphne = deirdre = 100.0;
	int year = 0;
	do {
		daphne = daphne + 100 * 0.1;
		deirdre = deirdre + deirdre * 0.05;
		year++;
	} while ((deirdre - daphne) < 0);
	printf("%d years later. \nDaphne = %f.\nDeirdre= %f \n",
		year, dahne, deirdre); 
	printf("\nDone!\n");
	return 0;
}
           
//第 17 題

#include <stdio.h>
#include <string.h>
int main(void)
{
	float chuckie = 100;
	int year = 0;
	do {
		chuckie = chuckie + chuckie * 0.08;
		chuckie -= 10;
		year++;
		printf("%f\n", chuckie);
	} while (chuckie > 9);
	printf("%d years later. Chuckie's account %f \n", year, chuckie);
	printf("%d years later. Chuckie's account is null \n", ++year);;
	printf("\nDone! \n");
	return 0;
}
           
//第 18 題

# include <stdio.h>
#include <string.h>
int main(void)
{
	int rabnud = 5;
	int weeks = 1;
	while (rabnud < 150)
	{
		printf("At %d weeks, Rabnud has %4d friends \n", weeks, rabnud);
		rabnud = 2 * (rabnud - weeks++);
	}
	printf("\nDone!\n");
	return 0;
}