c语言复习题.docx
- 文档编号:50747
- 上传时间:2022-10-01
- 格式:DOCX
- 页数:17
- 大小:20.92KB
c语言复习题.docx
《c语言复习题.docx》由会员分享,可在线阅读,更多相关《c语言复习题.docx(17页珍藏版)》请在冰豆网上搜索。
c语言复习题
∙1. 编写程序,输入一个正整数n,求下列算式的值。
要求定义和调用函数fact(k)计算k的阶乘,函数返回值的类型是double。
#include
doublefact(intk)
{ doublet=1;
inti;
for(i=1;i<=k;i++)
t*=i;
returnt;
}
voidmain()
{ inti,n;
doubles=0;
scanf(“%d”,&n);
for(i=1;i<=n;i++)
s+=1/fact(i);
printf(“%f\n”,s);
}
2. 输入一个x,输出下面分段函数f(x)的值。
要求将分段函数的计算定义成函数。
#include
intf(doublex) //函数定义
{ inty=0;
if(x>0)
y=1;
elseif(x==0)
y=0;
else
y=-1;
returny;
}
voidmain()
{ doublex;
inty;
scanf(“%lf”,&x);
y=f(x);//函数调用
printf("f(%g)=%d\n",x,y);
}
3. 输入一个正整数,输出该数的各个数字之和。
要求编写函数,计算整数的各个数字之和。
#include
intsum(inta)
{ ints=0;
while(a!
=0){
s+=a%10;
a=a/10;
}
returns;
}
voidmain()
{ intx;
scanf(“%d”,&x);
printf("%d\n",sum(x));
}
4. 输入两个正整数a和n,求a+aa+aaa+……+aa…a(最后一项为n个a)之和。
例如输入2和3,输出246(即2+22+222)。
要求定义并调用函数f(a,n),它的功能是返回aa…a(n个a)。
例如f(2,3)返回222。
#include
intf(inta,intn)
{ ints=0;
for(;n>0;n--)
s=s*10+a; //s+=pow(10,n-1)*a;
returns;
}
voidmain()
{ inta,n,sum=0,i;
printf(“inputan:
\n”);
scanf(“%d%d”,&a,&n);
for(i=1;i<=n;i++)
sum+=f(a,i);
printf(“%d\n”,sum);
}
5. 输入三个数,输出它们的最小值。
要求定义一个函数,返回两个数的最小值。
#include
doublemin(doublex,doubley)
{ if(x returnx;
else
returny;
}
voidmain()
{ doublex,y,z,t;
scanf(“%lf%lf%lf”,&x,&y,&z);
t=min(x,y);
t=min(t,z);
printf("min:
%f\n",t);
}
6. 在主函数中输入字符c和m,调用函数prn,连续将字符c输出m次。
定义函数prn,完成连续将某个字符c输出m次后换行。
#include
voidprn(char,int); //函数声明
voidmain()
{ charc;
intm;
printf(“Inputcm:
\n”);
scanf(“%c%d”,&c,&m);
prn(c,m);
}
voidprn(charc,intm)
{ inti;
for(i=1;i<=m;i++)
putchar(c);
printf(“\n”);
}
7. 输入一个整数n,计算3.2n的值。
要求定义函数计算xn值。
#include
doublefact(doublex,intn);
voidmain()
{ doublex,y;
intn;
printf(“Inputxn:
\n”);
scanf(“%lf%d”,&x,&n);
y=fact(x,n);
printf(“%f\n”,y);
}
doublefact(doublex,intn)
{ inti;
doublet=1;
for(i=1;i<=n;i++)
t=t*x;
returnt;
}
8. 输入平面上p1(x1,x2)、p2(x2,y2)两点坐标,计算两点间的距离输出。
要求定义一个函数计算平面上两点间的距离。
#include
#include
doublef(double,double,double,double);
voidmain()
{ doublex1,x2,y1,y2,d;
printf(“Input(x1,y1),(x2,y2):
\n”);
scanf(“(%lf,%lf),(%lf,%lf)”,&x1,&y1,&x2,&y2);
d=f(x1,y1,x2,y2);
printf(“%f\n”,d);
}
doublef(doublex1,doubley1,doublex2,doubley2)
{ doubled;
d=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
returnd;
}
9. 输出一张摄氏温度——华氏温度转换表。
摄氏温度取[-100℃~150℃],温度间隔5℃,要求定义函数ctof(c),将摄氏温度转换为华氏温度,转换公式:
F=32+C*9/5
#include
voidmain()
{ floatc,f,ctof(float);inti;
for(i=0,c=-100;c<=150;c+=5)
{ f=ctof(c);
printf("%6.0f %-6.0f",c,f);
i++;
if(i%5==0)printf("\n");
}
}
floatctof(floatc)
{ floatf;
f=32+c*9/5;
returnf;
}
10. 求11~999之间所有“回文数”之和。
要求编制函数JSValue(m)用于判断m是否为回文数。
回文数是指各位数字左右对称,例如11、121、676、909等等。
#include
intJSValue(intm)
{ inta=0,b;
b=m;
while(b!
=0){
a=a*10+b%10;
b=b/10;
}
if(a==m)return1;
elsereturn0;
}
voidmain()
{ ints=0,i;
for(i=11;i<=999;i++)
if(JSValue(i)==1)s+=i;
printf(“%d\n”,s);
}
11. 输入100个学生的数学课程成绩,计算平均分,并统计成绩在平均分数正负10%区间的学生的人数。
#include
voidmain()
{ inta[100],i,k=0;
floatsum=0,aver;
for(i=0;i<100;i++)
{ scanf(“%d”,&a[i]);
sum+=a[i];
}
aver=sum/100;
for(i=0;i<100;i++)
if(0.9*aver<=a[i]&&a[i]<=1.1*aver) //当前成绩在平均分数正负10%区间
k++;
printf(“%f,%d\n”,aver,k);
}
12. 输入两个正整数m和n(m#include
intisprime(intx)
{ inti;
for(i=2;i if(x%i==0)return0;
return1;
}
voidmain()
{ intm,n,s=0,k;
scanf(“%d%d”,&m,&n);
for(k=m;k<=n;k++)
if(isprime(k)==1)s+=k;
printf(“%d\n”,s);
}
13. 输入一个字符串(少于80个字符),再输入一个字符,统计并输出该字符在字符串中出现的次数(例如:
输入morning回车,再输入n,输出2)。
#include
main()
{ chars[80],c;
inti,k=0;
printf("输入字符串:
\n");
gets(s);
printf("输入字符:
\n");
c=getchar();
for(i=0;s[i]!
='\0';i++)
if(s[i]==c)k++;
printf("%s中包含%d个%c\n",s,k,c);
}
14. 输入10组数,每组数3个数,输出每组数的最大值。
要求定义并调用函数max(x,y,z)求x、y、z的最大值。
#include
doublemax(doublex,doubley,doublez)
{ doublem;
m=x;
if(mif(mreturnm;
}
voidmain()
{ doublex,y,z,i;
for(i=1;i<=10;i++){
scanf(“%lf%lf%lf”,&x,&y,&z);
printf(“%f\n”,max(x,y,z));
}
}
15. 输入一个字符串,统计其中数字字符出现的次数。
#include
voidmain()
{ chars[80];
inti,n=0;
gets(s);
for(i=0;s[i]!
='\0';i++)
if(s[i]>='0'&&s[i]<='9')
n++;
printf("%s中包含%d个字符\n",s,n);
}
16. 将一个大小为10的数组b的值按逆序重新存放(数组的值由键盘任意输入,不使用辅助数组)。
#include
voidmain()
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 复习题