C语言上机试题答案.docx
《C语言上机试题答案.docx》由会员分享,可在线阅读,更多相关《C语言上机试题答案.docx(26页珍藏版)》请在冰豆网上搜索。
C语言上机试题答案
.+95+97+99的和。
#include""
main()
{
inti,sum=0;
for(i=1;i<100;i=i+2)
sum+=i;
printf("1+3+5+....+99=%d\n",sum);
}
.+10!
.
#include<>
intfun(intn)
{
longi,s=1;
for(i=1;i<=n;i++)
s*=i;
returns;
}
main()
{
inti,n=0;
for(i=1;i<=10;i++)
n+=fun(i);
printf("1!
+2!
+...+10!
=%d",n);
}
#include<>
main()
{
inti;
printf("请输入月份(1-12):
\n");
scanf("%d",&i);
switch(i)
{
case1:
printf("January\n");break;
case2:
printf("February\n");break;
case3:
printf("March\n");break;
case4:
printf("April\n");break;
case5:
printf("May\n");break;
case6:
printf("June\n");break;
case7:
printf("July\n");break;
case8:
printf("August\n");break;
case9:
printf("September\n");break;
case10:
printf("Octobery\n");break;
case11:
printf("November\n");break;
case12:
printf("December\n");break;
default:
printf("error!
\n");break;
}
}
#include<>
main()
{
inti,j,temp1,temp2,a[5]={542,-14,90,-18,83};
printf("排序之前的数组为:
");
for(i=0;i<5;i++)
printf("%d",a[i]);
for(i=0;i<5;i++)
{temp1=a[i];
for(j=i;j<5;j++)
{
if(temp1>a[j])
{
temp1=a[j];
a[j]=a[i];
a[i]=temp1;
}
}
}
printf("\n排序后的数组为:
");
for(i=0;i<5;i++)
printf("%d",a[i]);
}
#include<>
main()
{
inta[100],i,sum=0,n;
doubleavg;
printf("请输入您要输入的数据个数,按Enter结束\n");
scanf("%d",&n);
printf("请输入数据:
\n");
for(i=0;i{
scanf("%d",&a[i]);
sum+=a[i];
}
avg=sum/n;
printf("该组数据的平均值是:
%6.2f\n",avg);
for(i=0;i{
if(a[i]>avg)
printf("%d\t",a[i]);
}
}
#include<>
main()
{
inti,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
printf("%d*%d=%d",j,i,i*j);
printf("\n");
}
}
#include<>
#include<>
main()
{
chara[100],s[100];
inti,j,flag,sum=0;
printf("请输入主串\n");
gets(a);
printf("请输入子串\n");
gets(s);
for(i=0;i{flag=0;
for(j=0;j{
if(s[j]==a[i+j])
flag++;
}
if(flag==strlen(s))
sum++;
}
printf("%d",sum);
}
#include<>
main()
{
inti;
printf("请输入学生成绩(0-100):
\n");
scanf("%d",&i);
if(i>=100||i<=0)
printf("ERROR!
\n");
else
{
switch(i/10)
{
case9:
printf("A\n");break;
case8:
printf("B\n");break;
case7:
printf("C\n");break;
case6:
printf("D\n");break;
default:
printf("E\n");break;
}
}
}
#include<>
#include<>
intlen(chara[])
{
inti;
char*p=a;
for(i=0;i<10000;i++,*p++)
{if(*p=='\0')
break;
}
returni;
}
voidmain()
{
chara[1000];
gets(a);
printf("字符串长度为%d",len(a));
}
改编fun函数,使他能得出正确的结果.
#include<>
#include<>
doublefun(intx[])
{
inti,j=0;
doubles=0;
for(i=0;i<100;i++)
{
if(x[i]>0)
{
s+=x[i];
j++;
}
}
returns/j;
}
main()
{
intx[1000],inti=0;
printf("\nPleaseentersomedata(endwith0):
");
do
{scanf("%d",&x[i]);}while(x[i++]!
=0);
printf("%f\n",fun(x));
}
例如,若输入字符串"-1234",则函数把它转换成整数值-1234.
#include<>
#include<>
intchange(chara)
{
inti;
switch(a)
{
case'0':
i=0;break;
case'1':
i=1;break;
case'2':
i=2;break;
case'3':
i=3;break;
case'4':
i=4;break;
case'5':
i=5;break;
case'6':
i=6;break;
case'7':
i=7;break;
case'8':
i=8;break;
case'9':
i=9;break;
}
returni;
}
intfun(charx[])
{
inti,j,k,n,s,m=0;
if(x[0]=='-')
{i=1;j=-1;k=strlen(x);}
else
{i=0;j=1;k=strlen(x);}
for(i;i{
s=change(x[i]);
for(n=0;ns*=10;
m+=s;
}
returnm*j;
}
main()
{
chara[100];
gets(a);
printf("\n%d",fun(a));
}
}
#include<>
voidmain()
{
intb,m,l,i;
for(b=0;b<=33;b++)
for(m=0;m<=50;m++)
{
l=100-b-m;
If((b*3+m*2+l/2==100)&&(l%2==0))
printf("大马为%d匹,中马为=%d匹,小马为=%d匹,总驮担%d担\n",b,m,l,b*3+m*2+l/2);
}
}
#include<>
main()
{
inti,s;
for(i=1,s=0;i<=1000;i++)
if((i%7==0||i%11==0)&&!
(i%7==0&&i%11==0))
{
printf("%d",i);
s++;
}
printf("\n总数为%d",s);
}
.和值通过函数值返回main函数.
#include<>
doublefun(intn)
{
inti;
doubles=0,j=1,k=2,temp;
for(i=0;i{
s+=j/k;
temp=j;
j=k;
k=k+temp;
}
returns;
}
main()
{
intn;
printf("Entern:
");
scanf("%d",&n);
printf("\nTheresult:
%f\n",fun(n));
}
#include<>
#include<>
main()
{
inti,j;
chara[100];
gets(a);
for(i=0,j=0;i{
if(a[i]=='')
j++;
}
printf("\n您输入的字符有%d个空格,%d个单词\n",j,j+1);
}
.+195+197+199的和
#include<>
main()
{
inti,s=0;
for(i=1;i<200;i+=2)
s+=i;
printf("1+3+5+7+...+195+197+199=%d",s);
}
#include<>
#include<>
#include<>
doublefun(intn)
{
inti,a[1000];
a[0]=0;a[1]=0;a[2]=1;
doublesum=1;
for(i=3;i{
a[i]=a[i-3]+a[i-2]+a[i-1];
sum+=sqrt(a[i]);
}
returnsum;
}
main()
{
intn;
printf("InputN=");
scanf("%d",&n);
printf("%f\n",fun(n));
}
#include<>
main()
{
inti,j,a[10],pos,t;
printf("请输入10个整数:
");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
{
pos=i;
for(j=i+1;j<10;j++)
if(a[j]pos=j;
if(pos!
=i)
{
t=a[i];
a[i]=a[pos];
a[pos]=t;
}
}
for(i=0;i<10;i++)
printf("%d",a[i]);
}
.+1/m!
例如,若m=6,则应输出
#include<>
#include<>
doublefun(intm)
{
longfloaty=;
inti,j,n;
for(j=1;j<=m;j++)
{
n=1;
for(i=1;i<=j;i++)
n*=i;
y+=n;
}
return(y);
}
main()
{
intn;
printf("Entern:
");
scanf("%d",&n);
printf("\nTheresultis%lf\n",fun(n));
}
.+9!
+10!
的和.
#include<>
main()
{
inti,j,sum=0,temp;
for(i=1;i<=10;i++)
{
temp=1;
for(j=1;j<=i;j++)
temp*=j;
sum+=temp;
}
printf("%d",sum);
}
#include<>
main()
{
inti;
printf("请输入您的小孩的年龄:
\n");
scanf("%d",&i);
if(i>6||i<2)
printf("非适龄儿童,该院不予接受!
\n");
else
{
switch(i)
{
case2:
case3:
printf("您的小孩应编入小班!
\n");break;
case4:
printf("您的小孩应编入中班!
\n");break;
default:
printf("您的小孩应编入大班!
\n");break;
}
}
}
.例如,运行程序后,输入,则程序输出
#include<>
#include<>
floatfun(floatnum)
{
intflag=1;
floatsum=0,n=1;
while
(1)
{
if((1/n)break;
sum+=flag/n;
n+=2;
flag*=-1;
}
returnsum*4;
}
voidmain()
{
floatn1,n2;
printf("Enterafloatnumber:
");
scanf("%f",&n1);
n2=fun(n1);
printf("%6.4f",n2);
}
#include<>
#include<>
main()
{
inti,j,temp,m,a[20];
scanf("%d",&m);
for(i=0;ia[i]=rand();
for(i=0;i{
for(j=0;jif(a[j]>a[j+1])
{
temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
}
}
for(i=0;iprintf("%d",a[i]);
}
2~1000中所有的完数.
#include<>
main()
{
inti,j,k;
for(i=2;i<=1000;i++)
{
k=0;
for(j=1;j
{
if(i%j==0)
k+=j;
}
if(k==i)
printf("%d",i);
}
}
如输入15,11,2,则输出结果330.试编写函数fun,使它能得到正确结果.
#include<>
fun(intx,inty,intz)
{
inti;
for(i=1;;i++)
if(i%x==0&&i%y==0&&i%z==0)
break;
returni;
}
main()
{
intx1,x2,x3,j;
printf("Inputx1,x2,x3:
");
scanf("%d%d%d",&x1,&x2,&x3);
printf("x1=%d,x2=%d,x3=%d\n",x1,x2,x3);
j=fun(x1,x2,x3);
printf("Theminimalcommonmultipleis:
%d\n",j);
}
密数对定义为:
若正整数a的所有因子(不含a)之和为b,b的所有因子(不含b)之和为a,且a≠b,则称a与b为亲密数对.
#include<>
intfun(intn)
{
inti,sum;
sum=1;
for(i=2;i<=n/2;i++)
if(n%i==0)sum+=i;
returnsum;
}
voidmain()
{
inta,b,c;
for(a=2;a<=1000;a++)
{
b=fun(a);
c=fun(b);
if((c==a)&&(a!
=b))
printf("%5d和%5d是亲密数对.\n",a,b);
}
}
#include<>
main()
{
inti,s=0;
for(i=100;i<999;i++)
if((i%10!
=(i/10)%10)&&(i%10!
=i/100)&&((i/10)%10!
=i/100))
s++;
printf("%d\n",s);
}
勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句.
#include<>
#include<>
#include<>
intfun(inta)
{
inti;
for(i=2;iif(a%i==0)
return0;
if(i>=a/2)
return1;
}
main()
{
intx;
printf("\nPleaseenteranumber:
");
scanf("%d",&x);
printf("%d\n",fun(x));
}
.+210
#include<>
#include<>
main()
{
intsum=1,i;
for(i=1;i<=10;i++)
sum+=pow(2,i);
printf("%d",sum);
}
[1,21]范围内有多少个梅森尼数最大的梅森尼数.
#include<>
#include<>
main()
{
inti,k=0,m,n,a;
for(n=1;n<=21;n++)
{
m=pow(2,n-1);
for(i=2;i<=m/2;i++)
if(m%i==0)
break;
if(i>m/2&&n!
=1)
{
k++;
a=n;
}
}
printf("一共有%d个梅森尼数\n最大的梅尼森数是%d",k,a);
}
编写fun函数,使它能得出正确的结果
#include<>
#include<>
longfun(intk)
{
inti;
longs=1;
for(i=1;i<=k;i++)
s*=i;
returns;
}
main()
{
intk=10;
printf("%d!
=%ld\n",k,fun(k));
}
密素数:
如果x为素数,则x+2也为素数.
#include<>
intfun(intk)
{
inti,s=1;
for(i=2;i<=k/2;i++)
{
if(k%i==0)
s=0;
}
returns;
}
main()
{
inti;
for(i=2;i<=98;i++)
{
if((fun(i)==1)&&(fun(i+2)==1))
printf("%d和%d是亲密素数对.\n",i,i+2);
}
}
.+(1+3+5+...+(2n-1))
#include<>
main()
{
inti,j,s1,s2=0,n;
printf("请输入计算上限:
\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{s1=0;
for(j=1;j<=i;j++)
s1+=(2*j-1);
s2+=s1;
}
printf("形如S=1+(1+3)+(1+3+5)+...+(1+3+5+...+(2n-1))当n=%d时结果为%d\n",n,s2);
}
.+1/(n*(n+1)),例如,当n=10时,函数值为.
#include<>
fun(intn)
{
ints;
s=n*(n+1);
returns;
}
main()
{
intn,i;
floats=;
printf("Pleaseentern=");
scanf("%d",&n);
for(i=1;i<=n;i++)
s=s+fun(i);
printf("S=%f\n",s);
}
#include<>
#include<>
check(floata,floatb,floatc)
{
if((b*b-4*a*c)<1e-6)
return0;
elsereturn1;
}
main()
{
floata,b,c,s1,s2;
scanf("%f%f%f",&a,&b,&c);
if(a==0)printf("s=%f\n",-1*c/b);
elseif(check(a,b,c)==0)printf("S1=%f+%f-I,S2=%f-%f-I\n",(-1*b)/(2*a),sqrt(-1*(b*b-4*a*c))/(2*a),(-1*b)/(2*a),sqrt(-1*(b*b-4*a*c))/(2*a));
elseprintf("S1=%f,S2=%f",*b+sqrt(b*b-4*a*c))/(2*a),*b-sqrt(b*b-4*a*c))/(2*a));
}