习题答案
//6.1
#include<stdio.h>
int main(void)
{
char name[26];
int i;
for(i = 0;i < 26; i++)
{
name[i] = 'a' + i;
printf("%c ",name[i]);
}
return 0;
}
//6.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;
}
//6.3
#include<stdio.h>
int main(void)
{
char name[6];
int i,j;
for (i = 0;i < 6;i++)
{
for(j = 0;j <= i;j++)
{
name[j] = 'F' - j;
printf("%c",name[j]);
}
printf("\n");
}
return 0;
}
//6.4
#include<stdio.h>
#define SIZE 6
int main(void)
{
char ch = 'A';
int i,j;
for (i = 0;i < SIZE;i++)
{
for (j = 0;j <= i;j++)
{
printf("%c",ch++);
}
printf("\n");
}
return 0;
}
//6.5
#include<stdio.h>
int main(void)
{
int i,j,k;
char letter;
printf("输入大写字母.\n");
scanf("%c",&letter);
k = letter - 'A' + 1;
for (i = 0; i < k;i++)
{
for (j = 0; j <=k-i; j++)
printf(" ");
for (j = 0;j <= i;j++) //升序
printf("%c",'A' + j);
for (j = i - 1;j >= 0;j--) //降序
printf("%c",'A' + j);
printf("\n");
}
return 0;
}
//6.6
#include<stdio.h>
int main(void)
{
int i,j;
int start,finish;
int square_num,cube_num;
printf("请输入表格子的上下限: \n");
while(scanf("%d %d",&start,&finish) !=EOF )
{
for(j =start;j <=finish;j++)
{
square_num = j*j;
cube_num = j*square_num;
printf("number:%5d square_num:%10d cube_num:%15d\n",j,square_num,cube_num);
}
printf("再次输入表格的上下限: \n");
}
return 0;
}
//6.7
#include<stdio.h>
#include<string.h>
int main(void)
{
char letters[20];
int i;
printf("Please enter a word.\n");
scanf("%s",letters);
for (i = strlen(letters)-1;i >=0 ;i--)
printf("%c",letters[i]);
printf("\n");
return 0;
}
#include<stdio.h>
int main(void)
{
double n1,n2;
printf("Please enter two float number.\n");
while(scanf("%lf %lf",&n1,&n2)!=EOF)
{
printf("The difference between these two numbers is divided by the two-digit product is %5.3lf\n",
(n1-n2)/(n1*n2));
printf("Enter again.\n");
}
return 0;
}
//6.9
#include<stdio.h>
void result(double n1,double n2);
int main(void)
{
double n1,n2;
printf("Please enter two float number.\n");
while(scanf("%lf %lf",&n1,&n2)!=EOF)
{
result(n1,n2);
}
return 0;
}
void result(double n1,double n2)
{
printf("The difference between these two numbers is divided by the two-digit product is %5.3lf\n",
(n1-n2)/(n1*n2));
printf("Enter again.\n");
}
//6.10
#include<stdio.h>
int main(void)
{
int square_lower,square_upper;
int lower,upper;
int i;
printf("Enter lower and upper integer limits: \n");
while(scanf("%d %d",&lower,&upper)&&lower < upper)
{
int sum = 0;
for (i = lower;i <= upper;i++)
{
sum += i*i;
square_lower = lower*lower;
square_upper = upper*upper;
}
printf("The sums of the square from %d to %d is%d\n",square_lower,square_upper,sum);
printf("Enter next set of limits: ");
}
printf("Done\n");
return 0;
}
/* 第十一题 */
#include<stdio.h>
#define SIZE 8
int main(void)
{
int number[SIZE];
int result;
int i;
printf("Please enter eight numbers.\n");
for (i = 0;i < SIZE;i++)
scanf("%d",&number[i]);
for (i = SIZE - 1;i >= 0;i--)
printf("%d",number[i]);
printf("\n");
return 0;
}
//6.12
#include<stdio.h>
#include<math.h>
int main(void)
{
int limit;
int i;
printf("Please enter the limit.\n");
while(scanf("%d",&limit) && limit>0 )
{float sum1=0;
float sum2=0;
for (i = 1;i <=limit;i++)
{
sum1 += 1.0/ i;
sum2 += (1.0/i)*pow(-1,i-1);//-1的平方控制正负
}
printf("The firse result is %f\n",sum1);
printf("The second result is %f\n",sum2);
}
return 0;
}
//6.13
#include<stdio.h>
#include<math.h>
int main(void)
{
int number[8];
int i;
for (i = 0;i < 8;i++)
{
number[i] = pow(2,i+1);
}
i = 0;
do
{
printf("%d ",number[i]);
i++;
}while(i < 8);
return 0;
}
//6.14
#include<stdio.h>
#define SIZE 8
int main(void)
{
double a[SIZE];
double b[SIZE];
int i;
double sum;
for (i = 0;i < SIZE;i++)
{
scanf("%lf",&a[i]);
sum += a[i];
b[i] = sum;
}
for (i = 0;i < 8;i++)
printf("%.2lf ",a[i]);
printf("\n");
for (i = 0;i < 8;i++)
printf("%.2lf ",b[i]);
return 0;
}
//6.15
#include<stdio.h>
int main(void)
{
int i = -1;
char letters[255];
do
{
i++;
scanf("%c",&letters[i]);
}while(letters[i] != '\n');
for( ;i >= 0;i--)
printf("%c",letters[i]);
return 0;
}
//6.16
#include<stdio.h>
int main(void)
{
double sum1 = 100.0; //Daphne's money
double sum2 = 100.0; //Deirdre's money
double money = 100.0;
int years = 0;
do
{
years++;
sum1 += money*0.1;
sum2 += sum2*0.05;
}while(sum1 >= sum2);
printf("years: %d Daphne's money: %lf Deirdre's money: %lf",years,sum1,sum2);
return 0;
}
//6.17
#include<stdio.h>
int main()
{
double bonus = 100.00;
int years = 0;
do
{
years++;
bonus += bonus*0.08;
bonus -= 10.0;
}while(bonus > 0);
printf("years: %d",years);
return 0;
}
//6.18
#include<stdio.h>
int main(void)
{
int friends = 5;
int weeks = 0;
do
{
weeks++;
friends = (friends - weeks) * 2;
}while(friends < 150);
printf("Weeks: %d",weeks);
return 0;
}