c语言程序范例
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
break; k=k+1; } printf("%f\n",s); } 题目 10、输入若干名学生成绩(非负),统计平均分、最高分、不及格人数。 #include <stdio.h> void main() { int n1=0,n2=0,s=0,g=0,x; double v; while(1) { scanf("%d",&x) if(x<0) //输入负数时结束循环
}
题目 13、输出 n 行图形(n 值通过键盘输入),
假设 n=5,则图形如下:
*********
wk.baidu.com
*******
***** *** *
#include <stdio.h> void main() { int k=1,j,n;
scanf("%d",&n); for(k=1;k<=n;k++) { for(j=1;j<=k-1;j++)
t=-t; } printf("%.3f\n",s); } 解答 2: #include <stdio.h> void main() { int k,n; double s=0; scanf("%d",&n); for(k=1;k<=n;k++) { if(k%2) //与 if(k%2==1)等价
printf("%d\n",a[k]); } 题目 18、按行输入 4 行 5 列二维整型数组,将首列与最后一列对应元素对调,最后按列输出。 #include <stdio.h> void main() { int a[4][5],i,j,t;
printf("%.2f\n",y);
}
题目 2、从键盘输入任意一个四位正整数,将其各位数字反序输出到屏幕上。
#include <stdio.h>
void main()
{ int x,a,b,c,d;
scanf("%d",&x);
a=x%10;
//个位数
b=x/10%10; //十位数
c=x/100%10; //百位数
void main()
{ int x,y;
scanf("%d",&x);
if(x<1)
y=2*x+1;
if(x==1) //关系运算“等于”必须使用两个等号
y=4*x+3;
if(x>1)
y=6*x+5;
printf("%d\n",y);
}
解答方法 2:
#include <stdio.h>
void main()
d=x/1000%10; //千位数
printf("%d %d %d %d\n",a,b,c,d);
}
第 3 章:选择结构程序设计
题目 3、计算分段函数,输入 x(整数),输出 y(整数):
┌ 2x+1 (x<1)
y=│ 4x+3 (x=1)
└ 6x+5 (x>1)
解答方法 1:
#include <stdio.h>
{ int x,y;
scanf("%d",&x);
if(x<1)
y=2*x+1;
else if(x==1)
y=4*x+3;
else
y=6*x+5; printf("%d\n",y); } 解答方法 3:下面程序是错的 x=0 时输出 5 #include <stdio.h> void main() { int x,y; scanf("%d",&x); if(x<1)
printf(" "); if(k!=n)
printf("#"); for(j=1;j<=2*n-2*k-1;j++)
printf("*"); printf("#\n"); } } 第 4 章:循环结构程序设计:其它 题目 15、用 100 元钱买 100 只鸡,其中公鸡 5 元 1 只,母鸡 3 元 1 只,小鸡 1 元 3 只, 要求每种鸡至少买 1 只,100 元钱必须一分不剩,计算输出所有的购买方案(整数解). 解答 1: #include <stdio.h> void main() { int x,y,z; for(x=1;x<20;x++) for(y=1;y<33;y++)
y=2*x+1; if(x==1)
y=4*x+3; else
y=6*x+5; printf("%d\n",y); } 题目 4、输入三个整数,然后输出最大值。 #include <stdio.h> void main() { int a,b,c,x;
scanf("%d%d%d",&a,&b,&c); x=a; if(x<b)
} 第 4 章:循环结构程序设计:不固定次数循环 题目 9、计算 s=1+1/2!+1/3!+....,直到加上的项值刚好小于 0.00001 为止。 解答 1: #include <stdio.h> void main() { int k=1,p=1;
double s=0; do { p=p*k
s=s+1.0/p; k=k+1; }while(1.0/p>=0.1e-4); printf("%f\n",s); } 解答 2: #include <stdio.h> void main() { int k=1,p=1; double s=0; while(1) { p=p*k s=s+1.0/p; if(1.0/p<0.1e-4)
for(z=1;z<100;z++) if(x+y+z==100 && 5*x+3*y+z/3.0==100) //注意 3.0 printf("%d %d %d\n",x,y,z);
}
解答 2: #include <stdio.h> void main() { int x,y,z;
for(x=1;x<20;x++) for(y=1;y<33;y++) { z=100-x-y; if(x+3*y+z/3.0==100) printf("%d %d %d\n",x,y,z); }
} 题目 16、有一条长阶梯,若每步跨 2 阶,则最后剩余 1 阶;若每步跨 3 阶,则最后剩 2 阶;若每步跨 5 阶,则 最后剩 4 阶;若每步跨 6 阶则最后剩 5 阶;若每步跨 7 阶,最后才正好一阶不剩。这条阶梯至少多少阶? #include <stdio.h> void main() { int n=1;
printf("%c 是数字\n",x);
else if(x>='A' && x<='Z') printf("%c 是大写字母\n",x);
else if(x>='a' && x<='z') printf("%c 是小写字母\n",x);
else printf("%c 是其它字符\n",x);
} 第 4 章:循环结构程序设计:固定次数循环 题目 7、计算级数和 s= 1/(1*3) + 2/(3*5) + 3/(5*7) +....+ n/((2*n-1)*(2*n+1))。
x=b; if(x<c)
x=c; printf("%d\n",x); } 题目 5、输入三个双精度型数,按由大至小的顺序输出。 #include <stdio.h> void main() { double a,b,c,t; scanf("%lf%lf%lf",&a,&b,&c); if(a<b) { t=a;a=b;b=t;} //if 控制多条语句,必须使用花括号构成复合语句。 if(a<c) { t=a;a=c;c=t;} if(b<c) { t=b;b=c;c=t;} printf("%d %d %d\n",a,b,c); } 题目 6、输入一个字符,判断该字符的类型(数字、大写字母、小写字母、其它字符) 解答: #include <stdio.h> void main() { char x; x=getchar(); if(x>='0' && x<='9') //不能写成'0'<=x<='9'
s=s+1.0/(2*k-1); //注意 1.0 else
s=s-1.0/(2*k-1); } printf("%.3f\n",s); } 解答 3: #include <stdio.h> void main()
{ int k,n; double t=1,s=0; scanf("%d",&n); for(k=1;k<=2*n-1;k=k+2) { s=s+t/k; //t 为实型 t=-t; } printf("%.3f\n",s);
while(1) { if(n%2==1 && n%3==2 && n%5==4 && n%6==5 && n%7==0)
break; n++; } printf("%d\n",n); } 第 5 章:数组 题目 17、输入 9 名同学考试成绩,计算并输出平均分和高于平均分的成绩。 #include <stdio.h> void main() { int a[9],k,s; double v; for(k=0;k<9;k++) scanf("%d",&a[k]); for(k=0,s=0;k<9;k++) s+=a[k]; v=s/9.0; printf("v=%f\n",v); for(k=0;k<9;k++) if(a[k]>v)
printf("#");
for(j=1;j<=k;j++)
//多一个:+k
printf("*");
printf("\n");
}
}
题目 12、输出 n 行图形(n 值通过键盘输入),
假设 n=5,则图形如下:
#####*
####***
###*****
##*******
#*********
#include <stdio.h>
(n 从键盘输入,保留 3 位小数) #include <stdio.h> void main() { int k,n;
double s=0; scanf("%d",&n); for(k=1;k<=n;k++)
s=s+(double)k/((2*k-1)*(2*k+1)); //注意括号和类型 printf("%.3f\n",s); } 题目 8、计算 s = 1 - 1/3 + 1/5 - 1/7 + 1/9 - ... 前 n 项和。 解答 1: #include <stdio.h> void main() { int k,n; double t=1,s=0; scanf("%d",&n); for(k=1;k<=n;k++) //注意项数,for(k=1;k<=n;k=k+2)不是 n 次循环 { s=s+t/(2*k-1); //t 为实型
break; s+=x;n1++; //总成绩和总人数 if(x<60)
n2++; //不及格人数
if(x>g)
g=x; //最高分
}
v=(double)s/n1;
printf("平均分=%f,最高分=%d,不及格人数=%d\n",v,g,n2);
}
第 4 章:循环结构程序设计:输出图形
题目 11、输出 n 行图形(n 值通过键盘输入),
第 2 章:程序设计基础
题目 1、定义三个整型变量,从键盘输入三个整数,计算平均值,计算结果输出到屏幕上,平均值保留 2 位小数。
#include <stdio.h>
void main()
{ int a,b,c;
double y;
scanf("%d%d%d",&a,&b,&c);
y=(a+b+c)/3.0;
假设 n=5,则图形如下:
#####*
####**
###***
##****
#*****
#include <stdio.h>
void main()
{ int k=1,j,n;
scanf("%d",&n);
for(k=1;k<=n;k++)
{ for(j=1;j<=n-k+1;j++) //少一个:-k
void main()
{ int k=1,j,n;
scanf("%d",&n);
for(k=1;k<=n;k++)
{ for(j=1;j<=n-k+1;j++)
printf("#");
for(j=1;j<=2*k-1;j++) //多二个:+2*k
printf("*");
printf("\n");
}
printf(" "); for(j=1;j<=2*n-2*k+1;j++) //少二个:-2*k
printf("*"); printf("\n"); } } 题目 14、输出 n 行图形(n 值通过键盘输入), 假设 n=5,则图形如下: #*******# #*****# #***# #*# # #include <stdio.h> void main() { int k=1,j,n; scanf("%d",&n); for(k=1;k<=n;k++) { for(j=1;j<=k-1;j++)
}
题目 13、输出 n 行图形(n 值通过键盘输入),
假设 n=5,则图形如下:
*********
wk.baidu.com
*******
***** *** *
#include <stdio.h> void main() { int k=1,j,n;
scanf("%d",&n); for(k=1;k<=n;k++) { for(j=1;j<=k-1;j++)
t=-t; } printf("%.3f\n",s); } 解答 2: #include <stdio.h> void main() { int k,n; double s=0; scanf("%d",&n); for(k=1;k<=n;k++) { if(k%2) //与 if(k%2==1)等价
printf("%d\n",a[k]); } 题目 18、按行输入 4 行 5 列二维整型数组,将首列与最后一列对应元素对调,最后按列输出。 #include <stdio.h> void main() { int a[4][5],i,j,t;
printf("%.2f\n",y);
}
题目 2、从键盘输入任意一个四位正整数,将其各位数字反序输出到屏幕上。
#include <stdio.h>
void main()
{ int x,a,b,c,d;
scanf("%d",&x);
a=x%10;
//个位数
b=x/10%10; //十位数
c=x/100%10; //百位数
void main()
{ int x,y;
scanf("%d",&x);
if(x<1)
y=2*x+1;
if(x==1) //关系运算“等于”必须使用两个等号
y=4*x+3;
if(x>1)
y=6*x+5;
printf("%d\n",y);
}
解答方法 2:
#include <stdio.h>
void main()
d=x/1000%10; //千位数
printf("%d %d %d %d\n",a,b,c,d);
}
第 3 章:选择结构程序设计
题目 3、计算分段函数,输入 x(整数),输出 y(整数):
┌ 2x+1 (x<1)
y=│ 4x+3 (x=1)
└ 6x+5 (x>1)
解答方法 1:
#include <stdio.h>
{ int x,y;
scanf("%d",&x);
if(x<1)
y=2*x+1;
else if(x==1)
y=4*x+3;
else
y=6*x+5; printf("%d\n",y); } 解答方法 3:下面程序是错的 x=0 时输出 5 #include <stdio.h> void main() { int x,y; scanf("%d",&x); if(x<1)
printf(" "); if(k!=n)
printf("#"); for(j=1;j<=2*n-2*k-1;j++)
printf("*"); printf("#\n"); } } 第 4 章:循环结构程序设计:其它 题目 15、用 100 元钱买 100 只鸡,其中公鸡 5 元 1 只,母鸡 3 元 1 只,小鸡 1 元 3 只, 要求每种鸡至少买 1 只,100 元钱必须一分不剩,计算输出所有的购买方案(整数解). 解答 1: #include <stdio.h> void main() { int x,y,z; for(x=1;x<20;x++) for(y=1;y<33;y++)
y=2*x+1; if(x==1)
y=4*x+3; else
y=6*x+5; printf("%d\n",y); } 题目 4、输入三个整数,然后输出最大值。 #include <stdio.h> void main() { int a,b,c,x;
scanf("%d%d%d",&a,&b,&c); x=a; if(x<b)
} 第 4 章:循环结构程序设计:不固定次数循环 题目 9、计算 s=1+1/2!+1/3!+....,直到加上的项值刚好小于 0.00001 为止。 解答 1: #include <stdio.h> void main() { int k=1,p=1;
double s=0; do { p=p*k
s=s+1.0/p; k=k+1; }while(1.0/p>=0.1e-4); printf("%f\n",s); } 解答 2: #include <stdio.h> void main() { int k=1,p=1; double s=0; while(1) { p=p*k s=s+1.0/p; if(1.0/p<0.1e-4)
for(z=1;z<100;z++) if(x+y+z==100 && 5*x+3*y+z/3.0==100) //注意 3.0 printf("%d %d %d\n",x,y,z);
}
解答 2: #include <stdio.h> void main() { int x,y,z;
for(x=1;x<20;x++) for(y=1;y<33;y++) { z=100-x-y; if(x+3*y+z/3.0==100) printf("%d %d %d\n",x,y,z); }
} 题目 16、有一条长阶梯,若每步跨 2 阶,则最后剩余 1 阶;若每步跨 3 阶,则最后剩 2 阶;若每步跨 5 阶,则 最后剩 4 阶;若每步跨 6 阶则最后剩 5 阶;若每步跨 7 阶,最后才正好一阶不剩。这条阶梯至少多少阶? #include <stdio.h> void main() { int n=1;
printf("%c 是数字\n",x);
else if(x>='A' && x<='Z') printf("%c 是大写字母\n",x);
else if(x>='a' && x<='z') printf("%c 是小写字母\n",x);
else printf("%c 是其它字符\n",x);
} 第 4 章:循环结构程序设计:固定次数循环 题目 7、计算级数和 s= 1/(1*3) + 2/(3*5) + 3/(5*7) +....+ n/((2*n-1)*(2*n+1))。
x=b; if(x<c)
x=c; printf("%d\n",x); } 题目 5、输入三个双精度型数,按由大至小的顺序输出。 #include <stdio.h> void main() { double a,b,c,t; scanf("%lf%lf%lf",&a,&b,&c); if(a<b) { t=a;a=b;b=t;} //if 控制多条语句,必须使用花括号构成复合语句。 if(a<c) { t=a;a=c;c=t;} if(b<c) { t=b;b=c;c=t;} printf("%d %d %d\n",a,b,c); } 题目 6、输入一个字符,判断该字符的类型(数字、大写字母、小写字母、其它字符) 解答: #include <stdio.h> void main() { char x; x=getchar(); if(x>='0' && x<='9') //不能写成'0'<=x<='9'
s=s+1.0/(2*k-1); //注意 1.0 else
s=s-1.0/(2*k-1); } printf("%.3f\n",s); } 解答 3: #include <stdio.h> void main()
{ int k,n; double t=1,s=0; scanf("%d",&n); for(k=1;k<=2*n-1;k=k+2) { s=s+t/k; //t 为实型 t=-t; } printf("%.3f\n",s);
while(1) { if(n%2==1 && n%3==2 && n%5==4 && n%6==5 && n%7==0)
break; n++; } printf("%d\n",n); } 第 5 章:数组 题目 17、输入 9 名同学考试成绩,计算并输出平均分和高于平均分的成绩。 #include <stdio.h> void main() { int a[9],k,s; double v; for(k=0;k<9;k++) scanf("%d",&a[k]); for(k=0,s=0;k<9;k++) s+=a[k]; v=s/9.0; printf("v=%f\n",v); for(k=0;k<9;k++) if(a[k]>v)
printf("#");
for(j=1;j<=k;j++)
//多一个:+k
printf("*");
printf("\n");
}
}
题目 12、输出 n 行图形(n 值通过键盘输入),
假设 n=5,则图形如下:
#####*
####***
###*****
##*******
#*********
#include <stdio.h>
(n 从键盘输入,保留 3 位小数) #include <stdio.h> void main() { int k,n;
double s=0; scanf("%d",&n); for(k=1;k<=n;k++)
s=s+(double)k/((2*k-1)*(2*k+1)); //注意括号和类型 printf("%.3f\n",s); } 题目 8、计算 s = 1 - 1/3 + 1/5 - 1/7 + 1/9 - ... 前 n 项和。 解答 1: #include <stdio.h> void main() { int k,n; double t=1,s=0; scanf("%d",&n); for(k=1;k<=n;k++) //注意项数,for(k=1;k<=n;k=k+2)不是 n 次循环 { s=s+t/(2*k-1); //t 为实型
break; s+=x;n1++; //总成绩和总人数 if(x<60)
n2++; //不及格人数
if(x>g)
g=x; //最高分
}
v=(double)s/n1;
printf("平均分=%f,最高分=%d,不及格人数=%d\n",v,g,n2);
}
第 4 章:循环结构程序设计:输出图形
题目 11、输出 n 行图形(n 值通过键盘输入),
第 2 章:程序设计基础
题目 1、定义三个整型变量,从键盘输入三个整数,计算平均值,计算结果输出到屏幕上,平均值保留 2 位小数。
#include <stdio.h>
void main()
{ int a,b,c;
double y;
scanf("%d%d%d",&a,&b,&c);
y=(a+b+c)/3.0;
假设 n=5,则图形如下:
#####*
####**
###***
##****
#*****
#include <stdio.h>
void main()
{ int k=1,j,n;
scanf("%d",&n);
for(k=1;k<=n;k++)
{ for(j=1;j<=n-k+1;j++) //少一个:-k
void main()
{ int k=1,j,n;
scanf("%d",&n);
for(k=1;k<=n;k++)
{ for(j=1;j<=n-k+1;j++)
printf("#");
for(j=1;j<=2*k-1;j++) //多二个:+2*k
printf("*");
printf("\n");
}
printf(" "); for(j=1;j<=2*n-2*k+1;j++) //少二个:-2*k
printf("*"); printf("\n"); } } 题目 14、输出 n 行图形(n 值通过键盘输入), 假设 n=5,则图形如下: #*******# #*****# #***# #*# # #include <stdio.h> void main() { int k=1,j,n; scanf("%d",&n); for(k=1;k<=n;k++) { for(j=1;j<=k-1;j++)