1、编写一个程序,创建一个具有26个元素的数组,并在其中存放26个小写字母,并让该程序显示该数组的内容。
#include
int main(void){
char c[26];
int i;
char j = 'a';
for(i=0;i<26;i++,j++)
{
c[i] = j;
printf("%c ",c[i]);
}
return 0;
}
2、使用嵌套循环产生下列图案:
$
$ $
$ $ $
$ $ $ $
$ $ $ $ $
#include
const char C = '$';
int main(void){
int i,j;
for(i=0;i<5;i++){
for(j=0;j<=i;j++){
printf("%c",C);
}
printf("\n");
}
return 0;
}
F
FE
FED
FEDC
FEDCB
FEDCBA
#include
int main(void){
char a = 'F';
int i,j;
for(i=0;i<6;i++){
for(j=0,a='F';j<=i;j++,a--){
printf("%c",a);
}
printf("\n");
}
return 0;
}
4、让程序要求用户输入一个大写字母,使用嵌套循环产生像下面这样的金字塔图案,
A
ABA
ABCBA
ABCDCBA
ABCDEDCBA
这种图案要扩展到用户输入字符,例如,前面的图案是在输入E时需要产生的。
#include
int main(void){
char c = 'E';
char t1,t2;
printf("请输入一个大写字母:\n");
fflush(stdout);
scanf("%c",&c);
for(int i = 0;i<=c - 'A';i++){
for(int k = c-'A'-i;k>0;k--)
printf(" ");
for(int j = 1,t1 = 'A';j<= i*2+1;j++)
{
if(j<=(i*2+1)/2+1){
printf("%c",t1++);
}
}
for(int s = 1,t2 = i-1+'A';s<= i*2+1;s++)
{
if(s >(i*2+1)/2+1){
printf("%c",t2--);
}
}
printf("\n");
}
printf("end\n");
return 0;
}
5、编写一个程序打印一个表,表的每一行都给出一个整数,它的平方以及它的立方。要求用户输入表的上限和下限,使用一个for循环。
#include
int main(void){
int a,b;
printf("请输入两个整数,中间用逗号分隔:\n");
fflush(stdout);
scanf("%d,%d",&a,&b);
for(;a<=b;a++){
printf("数值:%d 平方:%d,立方:%d\n",a,a*a,a*a*a);
}
printf("end\n");
return 0;
}
#include
#include
int main(void){
char c[30];
char w[30];
scanf("%s",w);
for(int i = 0; i< strlen(w);i++){
c[i]= w[i];
}
for(int i = strlen(c);i>=0;i--)
printf("%c",c[i]);
return 0;
7、编写一个程序,要求输入两个浮点数,然后打印出用二者的差值除以二者的乘积所得结果,在用户键入非数字的输入前程序退出。。
#include
int main(void){
float a,b;
printf("请输入两个浮点数,中间用空隔分开,输入Q退出程序\n");
fflush(stdout);
while(scanf("%f%f",&a,&b) != 0){
printf("(%.2f - %-.2f)/ (%.2f * %-.2f)= %.2f\n",a,b,a,b,(a-b)/(a*b));
printf("继续,请输入两个浮点数,中间用空隔分开,输入Q退出程序\n");
fflush(stdout);
}
printf("end");
return 0;
}
8、对练习7进行修改,让它使用一个函数来返回计算值:
#include
float fduc(float a,float b);
int main(void){
float a,b;
printf("请输入两个浮点数,中间用空隔分开,输入Q退出程序\n");
fflush(stdout);
while(scanf("%f%f",&a,&b) != 0){
printf("(%.2f - %-.2f)/ (%.2f * %-.2f)= %.2f\n",a,b,a,b,fduc(a,b));
printf("继续,请输入两个浮点数,中间用空隔分开,输入Q退出程序\n");
fflush(stdout);
}
printf("end");
return 0;
}
float fduc(float a,float b){
return (a-b)/(a*b);
}
9、编写一个程序,要求用户输入下限整数和一个上限整数,然后,依次计算从下限到上限的每一个整数的平方的加和,最后显示结果,程序将不断提示用户输入下限和上限并显示答案,直到用户输入的上下限相等,可是上限上小于下限为止.
#include
int main(void){
int a,b;
int s = 0;
printf("请输入两个整数,中间用空分隔:");
fflush(stdout);
while(scanf("%d%d",&a,&b) != 0 && a < b){
for(int i = a;i<=b;i++){
s=s+a*a;
}
printf("%d,%d的总和为:%d\n",a*a,b*b,s);
printf("请输入两个整数,中间用空分隔:");
fflush(stdout);
}
printf("end\n");
return 0;
}
10、编写一个程序把8个整数读入一个数组中,然后以相反的顺序打印它们:
#include
int main(void){
int a[8];
for(int i=0;i<8;i++){
printf("请输入第%d个整数:", i);
fflush(stdout);
scanf("%d", &a[i]);
}
for(int i= 7;i>=0;i--){
printf("%d\t",a[i]);
}
printf("\nend\n");
return 0;
}
11、考虑这两个无限序列:
表达式一:1.0+1.0/2.0+1.0/3.0+1.0/4.0+1.0/5.0.......
表达式二:1.0-1.0/2.0+1.0/3.0-1.0/4.0+1.0/5.0.......
编写一个程序来计算这两序列不断变化的总和,直到达到某个次数,让用户交互地输入这个次数,看看在20次,100次和500次之后的总和。
#include
int main(void){
double a = 1.0;
int n;
double sum1,sum2;
double tx=0;
int i,cx;
printf("请输入计算次数:");
fflush(stdout);
while(scanf("%d",&n) != 0){
for(i = 1,tx=1.0,cx=1,sum1=0,sum2=0;i<=n;i++,tx=tx+1.0,cx++){
sum1+=1.0/tx;
if(cx%2 == 0){
sum2-=1.0/tx;
}
else{
sum2+=1.0/tx;
}
}
printf("%d次计算后得表达式一和二的结果分别为:%f\t%f\n",n,sum1,sum2);
printf("请输入下一个计算次数:");
fflush(stdout);
}
printf("\nend\n");
return 0;
}
12、编写一个程序,创建一个8个元素的int数组,并且把元素分别设置为 2的前8次幂,然后打印出它们的值,使用for循环来设置值,为了变化,使用do while循环来显示这些值。
#include
int main(void){
int n[8];
int s,i;
for(i = 0,s=1;i<8;i++){
s=s*2;
n[i]=s;
}
i=0;
do{
printf("%d ",n[i]);
i++;
}while(i<8);
printf("\nend\n");
return 0;
}
#include
int main(void){
double a[8],b[8];
double sum = 0;
for(int i = 0;i < 8;i++){
printf("请输入第%d元值:",i);
fflush(stdout);
scanf("%lf",&a[i]);
sum += a[i];
b[i] = sum;
}
printf("\n显示结果:\n");
for(int i = 0;i<8;i++){
printf("%10.2lf ",a[i]);
}
printf("\n");
for(int i = 0;i<8;i++){
printf("%10.2lf ",b[i]);
}
printf("\nend\n");
return 0;
}
14、编写一个程序读入一行输入,然后反向打印该行,您可以把输入存储在一个char数组中,假定该行不超过255个字符。
#include
#include
int main(void){
char s[255];
char c;
int i = 0;
printf("请输入一行的内容:\n");
fflush(stdout);
do{
scanf("%c",&c);
s[i]=c;
i++;
}while(c !='\n');
while(i >= 0){
i--;
printf("%c",s[i]);
}
printf("\nend\n");
return 0;
}
15、Daphne以10%的单利息投资了100美元(也就是说,每年投资赢得的利息等于原始投资 的10%)。Derdre则以每年5%的复合利息投资了100美元,也就是说利息当前结余的5%,其中包含了以前的利息。编写一个程序,计算需要多少年Deirdre的投资额才会超过Daphne,并且显示出到那时两个人投资额。
#include
#include
int main(void){
float sum1,sum2;
int i = 1;
sum1=100;
sum2=100;
do{
sum1 = sum1 + 100 * 0.10;
sum2 = sum2 + sum2*0.05;
printf("第%d年 Daphne:%10.2f Deirdre:%10.2f:\n",i++,sum1,sum2);
}while(sum2 <= sum1);
printf("Deirdre将在%d年后超过Daphne.\n",--i);
printf("\nend\n");
return 0;
}
#include
#include
int main(void){
float sum;
int i = 1;
sum=1000000;
do{
sum = sum - 100000 + sum*0.08;
printf("第%d年 Chuckie Lucky帐户余额为:%.2f\n",i++,sum);
}while(sum > 0);
printf("Chukie Lucky将在%d年后清空帐户.\n",--i);
printf("\nend\n");
return 0;
}