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