c语言程序设计答案.docx
- 文档编号:11684664
- 上传时间:2023-06-02
- 格式:DOCX
- 页数:52
- 大小:35.28KB
c语言程序设计答案.docx
《c语言程序设计答案.docx》由会员分享,可在线阅读,更多相关《c语言程序设计答案.docx(52页珍藏版)》请在冰点文库上搜索。
c语言程序设计答案
编写一个程序,测试你所使用的计算机的数据表示范围。
#include
voidmain()
{
intm,n,h,k,p,i=1,s=1,q=1,x=1,y=1,M=1,N=1,H=1,K=1,P=1;
m=sizeof(int);
m=m*8;
n=sizeof(long);
n=n*8;
h=sizeof(short);
h=h*8;
k=sizeof(float);
k=k*8;
p=sizeof(double);
p=p*8;
while(i<=m)
{
M=2*M;
i++;
}
while(s<=n)
{
N=2*N;
s++;
}
while(q<=h)
{
H=2*H;
q++;
}
while(x<=k)
{
K=2*K;
x++;
}
while(y<=p)
{
P=2*P;
y++;
}
printf("数据类型");
printf("最小数据");
printf("最大数据\n");
printf("int%8d%8d\n",-(M-1),(M-1));
printf("long%8d%8d\n",-(N-1),(N-1));
printf("short%8d%8d\n",-(H-1),(H-1));
printf("float%8d%8d\n",-(K-1),(K-1));
printf("double%8d%8d\n",-(P-1),(P-1));
2、编写一个程序,键盘接收三个整数,给出这三个数的和数、乘积和平均值。
#include
voidmain()
{
inta,b,c,sum,mu;
floatvg;
printf("请输入三个整数:
");
scanf("%d%d%d",&a,&b,&c);
sum=a+b+c;
mu=a*b*c;
vg=(a+b+c)/3.0;
printf("这三个整数的和为:
%d\n",sum);
printf("这三个整数的乘积为:
%d\n",mu);
printf("这三个整数的平均值为:
%.2f\n",vg);
}
编写一个程序,键盘接收一个一位的整型数,经转换,用字符函数putchar输出。
例如输入整数5,输出字符5。
#include
intmain()
{
chara;
printf("请输入一个整数:
");
a=getchar();
putchar(a);
printf("\n");
return0;
}
编写一个程序,输入半径,计算球体表面积(
)和体积(
)#include
voidmain()
{
floatp=3.14;
floatr,area,room;
printf("请输入一个球体的半径:
");
scanf("%f",&r);
area=4*p*r*r;
room=(4/3.00)*p*r*r*r;
printf("球体的表面积为:
%.2f\n",area);
printf("球体的体积为:
%.2f\n",room);
printf("\n");
}
6、输入3个整数,输出其中的最小值。
#include
intcmp(intm,intn)
{
intmin;
if(m>n)
{min=n;}
else
{min=m;}
returnmin;}
voidmain()
{inta,b,c,min;
printf("请输入3个整数:
");
scanf("%d%d%d",&a,&b,&c);
min=cmp(cmp(a,b),c);
printf("最小的值是:
%d\n",min);}
输入一个字符,如果它是大写字母,则输出相应的小写字母;如果它是小写字母,需输出相应的大写字母;其它字符原样输出。
例如:
输入F,输出f,输入b,输出B,输入7,输出7。
#include
intmain()
{
charm,n;
printf("请输入一个字符:
");
scanf("%c",&m);
if(m>='a'&&m<='z')
{
m=m-32;
printf("相应的字符为:
%c\n",m);
}
elseif(m>='A'&&m<='Z')
{m=m+32;
printf("相应的字符为:
%c\n",m);
}
else
{printf("相应的字符为:
%c\n",m);
}return0;}
8、函数
1x>0
y=0x=0
-1x<0
⑴用条件表达式求函数值y。
y=x>=0?
(x>0?
1:
0):
-1
⑵用if语句编程,输入x,输出y,并给出你所使用的测试用例。
测试用例:
(1)x=2,y=1
(2)x=0,y=0
(2)x=-2,y=-1
(1)
#include
voidmain()
{
inty;
floatx;
printf("请输入一个数:
");
scanf("%f",&x);
y=x>=0?
(x>0?
1:
0):
-1;
printf("输出的y的值为:
%d\n",y);
(2)
#include
voidmain()
{
floatx;
inty;
printf("请输入一个数:
");
scanf("%f",&x);
if(x>0)
{
y=1;
printf("输出的y的值为:
%.d\n",y);
}
if(x=0)
{
y=0;
printf("输出的y的值为:
%.d\n",y);
}
if(x<0)
{y=-1;
printf("输出的y的值为:
%.d\n",y);
}}
9、判断输入字符的种类,即区分空格、数字字符、大写英文字母、小写英文字母和其它字符。
#include
voidmain()
{charm;
printf("请输入一个字符:
");
scanf("%c",&m);
if(m>='a'&&m<='z')
{
printf("输入的字符为小写字母。
\n");
}
elseif(m>='A'&&m<='Z')
{
printf("输入的字符为大写字母。
\n");
}
elseif(m>='0'&&m<='9')
{
printf("输入的字符为数字字符。
\n");
}
elseif(m=='')
{
printf("输入的字符为空格字符。
\n");
}
else
{
printf("输入的字符为其他字符。
\n");
}
}
10、输入三角形三条边的值,请判断它是等边三角形、等腰三角形还是不等边三角形。
请编写相应程序。
(提示:
作为完整的考虑,应该判断三条边是否能构成一个三角形)
#include
voidmain()
{
floata,b,c;
printf("请输入三条边:
");
scanf("%f%f%f",&a,&b,&c);
if((a+b)>c&&(a+c)>b&&(b+c)>a)
{
if(a==b==c)
{
printf("此三角形为等边三角形。
\n");
}
elseif(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)
{
printf("此三角形为直角三角形。
\n");
}
elseif(a==b||a==c||b==c)
{
printf("此三角形为等腰三角形。
\n");
}
else
{printf("此三角形为不等边三角形。
\n");
}
}
if((a+b) { printf("所输入的三边不能构成三角形。 \n"); } } 11、新闻记者都善于提问,请模仿记者: 若输入1打印who,输入2打印which,输入3打印where,输入4打印why,输入5打印what,输入其它数打印don’tknow。 请编写相应程序。 #include voidmain() { inti; printf("请输入一个整数: "); scanf("%d",&i); switch(i){ case1: printf("who\n");break; 、、、、 default: printf("don'tknow\n");break; }} 12、编写输出200以内所有能被7整除的数据的程序。 #include voidmain() { inti; printf("200以内能被7整除的数据有: \n"); for(i=0;i<=200;i++) { if(i%7==0) {printf("%d",i);} }printf("\n"); } 13、从键盘输入n个数,找出其中最小值,请编写相应程序。 #include voidmain() { inti; floata[10],min; printf("请输入10个数: "); for(i=0;i<10;i++) {scanf("%f",&a[i]);} min=a[0]; for(i=0;i<10;i++) {if(a[i] min=a[i];} printf("最小值为: %d\n",min);} 14、键盘输入正整数m和n(m #include voidmain() { intm,n,i; intj=0,u=0; printf("请输入两个不等的正整数: "); scanf("%d%d",&m,&n); if(m { for(i=m;i<=n;i++) {if(i%2==0){ u=u+i;} if(i%2==1) {j=j+i;} } printf("%d~%d之间的所有奇数之和为: %d\n",m,n,j); printf("%d~%d之间的所有偶数之和为: %d\n",m,n,u); } elseif(m>n) { for(i=n;i<=m;i++) { if(i%2==0) { u=u+i; } if(i%2==1) { j=j+i; } } printf("%d~%d之间的所有奇数之和为: %d\n",n,m,j); printf("%d~%d之间的所有偶数之和为: %d\n",n,m,u); } else { printf("输入的两个正整数不符合要求。 \n"); } 15、编写程序,输入一个整数,求它的各位数之和及位数。 例如123的各位数之和是6,位数是3。 #include voidmain() { inti,m,n,x,y,z,t; printf("请输入一个五位数以内的整数: "); scanf("%d",&i); if(i/1000! =0) { t=i/1000; z=i%1000/100; y=i%100/10; x=i%10; m=t+z+y+x; printf("输入的整数为4位数,各位数之和为: %d\n",m); } if(i/1000==0) { if(i/100! =0) { z=i/100; y=i%100/10; x=i%10; m=z+y+x; printf("输入的整数为3位数,各位数之和为: %d\n",m); } if(i/100==0) { if(i/10! =0) { y=i/10; x=i%10; m=y+x; printf("输入的整数为2位数,各位数之和为: %d\n",m); } if(i/10==0) { if(i/10==0) { printf("输入的整数为1位数,各位数之和为: %d\n",i);} } } } } 16、编写程序,输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。 #include voidmain() { chara[20]; inti,e=0,k=0,s=0,q=0; printf("请输入一行字符: "); for(i=0;i<20;i++) { scanf("%c",&a[i]); } for(i=0;i<20;i++) { if(a[i]>='A'&&a[i]<='z') { e++; } elseif(a[i]=='') { k++; } elseif(a[i]>='0'&&a[i]<='9') { s++; } else { q++; } } printf("英文字母的个数为: %d\n",e); printf("空格的个数为: %d\n",k); printf("数字的个数为: %d\n",s); printf("其他字符的个数为: %d\n",q); } 17、有一个分数序列 , , , , ,…… 12358 编写程序求出这个序列的前n项之和。 #include main() { inti; floatx=2,y=1,t,sum=0; for(i=0;i<30;i++) { sum+=x/y; t=y; y=x; x+=t; } printf("前30项之和为: %.2f\n",sum); } 18、用一张一元票换1分、2分和5分的硬币(至少各一枚),问有哪几种换法? 各几枚? #include intmain() { intf=1,k=1; while(f<=20) { intt=1; while(t<=50) { intn=1; while(n<=100) { if(1*n+2*t+5*f==100) printf("one=%d,two=%d,five=%d\n",n,t,f); n++; k++; } t++; } f++; } printf("\n"); printf("共有%d种换法\n",k); return0; } 19、求1到10000之间所有满足各位数字的立方和等于它本身的数。 例如153的各位数字的立方和是13+53+33=153 #include voidmain() { intg,s,b,q,w,i; printf("满足要求的数有: \n"); for(i=1;i<=10000;i++) { w=i/10000; q=i%10000/1000; b=i%1000/100; s=i%100/10; g=i%10; if(w*w*w+q*q*q+b*b*b+s*s*s+g*g*g==i) printf("%8d",i); } printf("\n"); } 20、从键盘输入10个正整数进行求和,如果错误地输入了负数,则求和结束。 请分别用braek和不用break编写相应程序。 #include voidmain() { inta[10]; inti,sum=0; printf("请输入10个正整数: "); for(i=0;i<=9;i++) { scanf("%d",&a[i]); if(a[i]>0) sum=sum+a[i]; if(a[i]<0) goto; } printf("输入的数的和为: %d\n",sum); } #include voidmain() { inta[10]; inti,sum=0; { printf("请输入10个正整数: "); for(i=0;i<=9;i++) { scanf("%d",&a[i]); if(a[i]>0) sum=sum+a[i]; if(a[i]<0) break; } printf("输入的数的和为: %d\n",sum); } } 21、父亲今年30岁,儿子今年6岁,问多少年后父亲的年龄是儿子的2倍,请编写相应程序。 #include voidmain() { intdad=30,son=6; intyear; year=dad-2*son; printf("%d年后父亲的年龄是儿子年龄的两倍。 \n",year); } 22.一天一只小猴子摘下一堆桃子,当即吃了一半,还觉得不过瘾,又多吃了一个。 第二天接着吃了前一天剩下的一半,再又多吃了一个。 以后每天如此。 到第10天只剩下一个桃子。 问小猴一共摘了多少桃子,请编写相应程序。 程序采用递归法倒推: 第10天剩一个,第九天=(1+1)×2,……依此类推*/ #include voidmain() { inti=1,sum=1,min=1; while(i<=10) { sum=2*(min+1); min=sum; i++; } printf("小猴子一共摘了%d个桃子。 \n",sum); } 23、一个球从100米高度自由落体,反弹后回到原来高度的一半,按此规律,到第8次落地时,反弹多少高度? 行程共有多少米? #include voidmain() { floatsum=100.00,i=1.00,m=100.00; while(i<=8) { m=m/2.00; sum=sum+2.00*m; i++; } printf("到第八次落地时,反弹的高度为: %.5f\n",m); printf("行程共有%f米\n",sum); } 24、验证哥德巴赫猜想: 任何一个大于6的偶数均可表示为两个素数之和。 例如6=3+3,8=3+5,…,18=7+11。 要求将6~100之间的偶数都表示成两个素数之和,打印时一行打印5组。 #include voidmain() { intm,n,i,t; for(i=6;i<=100;i++) { if(i%2==0) { for(m=2;m<=n/2;m++) if(n%m==0) for(m=2;m<=t;m++) if(t%m==0) i=n+t; printf("%5d=%d+%d",i,n,t); } } } 25、输入一长整数,从高位开始逐位分割并输出。 如输入123456,逐位输出: 1,2,3,4,5,6。 #include voidmain() { inti,a1,a2,a3,a4,a5,a6,a7; printf("请输入一个长整数: "); scanf("%d",&i); a1=i/1000000; a2=i%1000000/100000; a3=i%100000/10000; a4=i%10000/1000; a5=i%1000/100; a6=i%100/10; a7=i%10; printf("逐位输出: %d,%d,%d,%d,%d,%d,%d\n",a1,a2,a3,a4,a5,a6,a7); } 二、程序阅读题 47、输入3<回车>后,下列程序的输出结果是。 #include voidmain() { intj,k,n,temp,sum=0; inta[6][6]; scanf("%d",&n); for(k=0;k for(j=0;j a[k][j]=k*n+j; for(k=0;k sum+=a[k][n-k-1]; printf("%d\n",sum); for(k=0;k for(j=0;j temp=a[n-j-1][k]; a[n-j-1][k]=a[k][j]; a[k][j]=temp; } for(k=0;k for(j=0;j printf("%d",a[k][j]); printf("\n"); } }结果: 12 612 745 830 48、输入elephant? 后,下列程序的输出结果是。 #include voidmain() { inti=0,k,ch; staticintnum[5]; charalpha[]={'a','e','i','o','u'},in[80]; while((in[i++]=getchar())! ='? ') in[i]='\0'; i=0; while(in[i]){ for(k=0;k<5;k++) if(in[i]==alpha[k]){ num[k]++; break; } i++; } for(k=0;k<5;k++) if(num[k]) printf("%c%d",alpha[k],num[k]); printf("\n"); }结果: ale2 49、阅读程序,写出运行结果。 #include voidmain() { staticinta[][3]={9,7,5,3,1,2,4,6,8}; inti,j,s1=0,s2=0; for(i=0;i<3;i++) for(j=0;j<3;j++){ if(i==j) s1=s1+a[i][j]; if(i+j==2) s2=s2+a[i][j]; } printf(“%d\n%d\n”,s1,s2); }结果: 18 10 50、写出下列程序的运行结果。 #include
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 答案