6.1 编写一个程序,创建一个具有26个元素的数组,并在其中存储26个小写字母,并让该程序显示该数组的内容.
#include <>
int main(void)
{
char a[26] = {'a', 'b', 'c', 'd', 'e', 'f',
'g', 'h', 'i', 'j', 'k', 'l',
'm', 'n', 'o', 'p', 'q', 'r',
's', 't', 'u', 'v', 'w', 'x', 'y', 'z' };
int i;
for(i = 0; i < 26; i++)
printf("%c", a[i]);
return 0;
}
==============================================================
6.2 使用嵌套循环产生下列图案:
$
$$
$$$
$$$$
$$$$$
#include <>
int main(void)
{
int i , j, k;
for(i = 0; i < 5; i++)
{
k = i + 1;
for(j = 0; j< k; j++)
printf("$");
printf("/n");
}
return 0;
}
==============================================================
6.3 使用嵌套循环产生下列图案:
F
FE
FED
FEDC
FEDCB
FEDCBA
#include <>
int main(void)
{
char fedcba[6] = {"FEDCBA"};
int i, j, k;
for(i = 0; i < 6; i++)
{
k = i + 1;
for(j = 0; j < k; j++)
printf("%c", fedcba[j]);
printf("/n");
}
return 0;
}
==============================================================
6.4 让程序要求用户输入一个大写字母,使用嵌套循环产生像下面这样的金字塔图案:
A
ABA
ABCBA
ABCDCBA
ABCDEDCBA
#include <>
int main(void)
{
int len;
char flag;
int i,n,p,q;
printf("Please input trigger character:");
scanf("%c", &flag);
printf("Please input length:");
scanf("%d", &len);
for(i = 0; i < len; i++)
{
for(n=2*(len-i-1); n > 0; n--)
printf(" ");
for(p=0; p<=i;p++)
printf("%c", flag+p);
for(q=0;q<i;q++)
printf("%c", flag+i-q-1);
printf("/n");
}
return 0;
}
==============================================================
6-5 编写一个程序打印一个表,表的每一行都给出一个整数,它的平方以及它的立方。要求用户输入表的上限与下限,使用一个for循环。
#include <>
int main(void)
{
int min,max,len;
int i;
int square, cube;
printf("Please input a max integar:");
scanf("%d", &max);
printf("Please input a min integar:");
scanf("%d", &min);
if((len = max - min) < 0)
printf("input max min error. /n");
printf("integar square cube/n");
for(i=0; i < len; i++)
{
square = min * min;
cube = square * min;
printf("%d %d %d/n",min,square,cube);
min++;
}
return 0;
}
==============================================================
6-6 编写一个 程序把一个单词读入一个字符数组,然后反向打印出这个词.
#include <>
#include <>
int main(void)
{
char word[256];
int len;
int i;
printf("Please input a word(length max is 256):");
scanf("%s",word);
if((len = strlen(word)) > 256)
{
printf("word is too long.../n");
return 0;
}
printf("The word is %s/n",word);
printf("End to start:");
for(i=len; i>=0;i--)
printf("%c",word[i]);
printf("/n");
return 0;
}
==============================================================
6-9 编写一个程序把8个整数读入一个数组中,然后以相反的顺序打印它们.
#include <>
#define DATA_NUM 8
int main(void)
{
int a[DATA_NUM];
int i=0;
printf("Please input %d integars:", DATA_NUM);
while(i<8)
{
scanf("%d", &a[i]);
i++;
}
for(i=DATA_NUM-1; i>=0;i--)
printf("%d ",a[i]);
return 0;
}
==============================================================
6-10 考虑这两个无限数列:
1.0+1.0/2.0+1.0/3.0+1.0/4.0+....
1.0-1.0/2.0+1.0/3.0-1.0/4.0+....
编写一个程序来计算这2个序列不断变化的总和,直到达到某个次数。让用户交互地输入这个次数。看看在20次,100次和500次之后的总和。是否每个序列看上去都收敛于某个值。
/*
A: 1.0+1.0/2.0+1.0/3.0+1.0/4.0+...
B: 1.0-1.0/2.0+1.0/3.0-1.0/4.0+...
*/
#include <>
#define N 1.0
double count_a(int denom)
{
double sa=0;
int i;
for(i=1;i<denom+1;i++)
sa += (N/i);
return sa;
}
double count_b(int denom)
{
double sb=0;
int i,flag=1;
for(i=1;i<denom+1;i++)
{
sb += (N/i * flag);
flag *= -1;
}
return sb;
}
int main(void)
{
int m;
double sum_a,sum_b;
while(1)
{
printf("Please input times:");
scanf("%d", &m);
sum_a = count_a(m);
sum_b = count_b(m);
printf("Sum of Line A is %.4f, line B is %.4f/n", sum_a, sum_b);
}
return 0;
}
==============================================================
6-11 编写一个程序,创建一个8个元素的int数组,并且把元素分别设置为2的前8次幂,然后打印出他们的值。使用for循环来设置值;为了变化,使用do while循环来显示这些值。
#include <>
int main(void)
{
int a[8];
int i,temp;
temp = 2;
a[0] = 2;
for(i=1; i<8; i++)
{
a[i] = 2 * temp;
temp = a[i];
}
i = 1;
do
{
printf("the %d is %d/n", i, a[i-1]);
}while(i++ < 8);
return 0;
}
==============================================================
6-12 编写一个程序,创建2个8元素的double数组,使用一个循环来让用户键入第一个数组的8个元素值。程序把第二个数组的元素设置为第一个数组元素的累计和。
#include <>
double count(int num, double a[8])
{
double sum;
int m;
sum = a[0];
for(m=1; m<num; m++)
sum += a[m];
return sum;
}
int main(void)
{
int i;
double a[8];
printf("Please input 8 digits:");
for(i=0; i<8; i++)
scanf("%lf",&a[i]);
for(i=0; i<8; i++)
printf("a[%d] is %lf, the first %d sum is %lf./n", i, a[i], i+1, count(i+1, a));
return 0;
}
==============================================================
6-13 编写一个程序读入一行输入,然后反向打印该行。
#include <>
#include <>
int main(void)
{
char a[255];
int i,len;
printf("Please input a string:");
scanf("%s", a);
len = strlen(a);
for(i=len-1; i>=0;i--)
printf("%c", a[i]);
return 0;
}
==============================================================
6-14 Daphne以10%的单利投资了100美元,Deirdre则以每年5%的复合利息投资了100美元,编写一个程序,计算需要多少年Deirdre的投资才会超过Daphne,并且显示出到那时两个人的投资额。
#include <>
int main(void)
{
float Daphne=100;
double Deirdre=100;
int n=0;
do
{
Daphne += 100 * 0.1;
Deirdre *= 1.05;
n++;
}while(Daphne >= Deirdre);
printf("%d years, Daphne is %f, Deirdre is %lf./n", n,Daphne,Deirdre);
return 0;
}
==============================================================
6-15 Chuckie Lucky赢了100万美元,他把它存入一个每个赢得8%的账户,在每年的最后一天,Chuckie取出10万美元,编写一个程序,计算需要多少年Chuckie就会清空他的账户。
#include <>
int main(void)
{
double total=100;
int y=0;
while(total>0)
{
total = total*1.08 -10;
y++;
}
printf("%d years./n", y);
return 0;
}
本文来自****博客,转载请标明出处:/louis82/archive/2007/04/10/