C语言期末考试编程题.docx
- 文档编号:25681976
- 上传时间:2023-06-11
- 格式:DOCX
- 页数:15
- 大小:17.65KB
C语言期末考试编程题.docx
《C语言期末考试编程题.docx》由会员分享,可在线阅读,更多相关《C语言期末考试编程题.docx(15页珍藏版)》请在冰豆网上搜索。
C语言期末考试编程题
#include<>
voidmain()
{
inta,b,c,s,i=0;
for(s=100;s<1000;s++)
{
c=s%10;
b=s/10%10;
a=s/100;
if(s==a*a*a+b*b*b+c*c*c)
{
printf("%d\t",s);
++i;
if(i%5==0)
printf("\n");
}
}
}
2.求1+2!
+3!
+...+20!
的和
#include<>
voidmain()
{
doublefact=,sum=;
inti,j;
for(i=1;i<=20;i++)
{
for(j=1;j<=i;j++)
fact*=j;
sum+=fact;
fact=1;
}
printf("%.0f\n",sum);
}
3.输入一个5位数,判断它是不是回文数。
即12321是回文数,个位与万位相同,十位与千位相同。
#include<>
#include<>
voidmain()
{
longnum;
inta,b,c,d;
printf("Pleaseinputthenumber:
");
scanf("%d",&num);
if(num<=9999||num>=100000)
{
printf("%Thenumberiserror!
\n");
exit(0);
}
a=num/10000;
b=num/1000%10;
c=num/10%10;
d=num%10;
if(a==d&&b==c)
printf("\nYes,the%ldispalindrome!
\n",num);
else
printf("\nNo,the%ldisnotpalindrome!
\n",num);
}
4.求出1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数并并按照一行5个的格式输出。
#include<>
voidmain()
{
intnum,i=0;
for(num=1;num<=1000;num++)
if(((num%7||num%11)==1)&&((num%7&&num%11)==0))
{
printf("%d\t",num);
++i;
if(i%5==0)
printf("\n");
}
}
5.编程列出200以内所有的素数,按照一行10个的格式输出,并求出所有素数的平均值,
#include<>
#include<>
voidmain()
{
inti,j,k=0,sum=0,avg=0;
for(i=2;i<200;i++)
{
for(j=2;j<=sqrt(i);j++)
if(i%j==0)
break;
if(j>sqrt(i))
{
printf("%d\t",i);
++k;
sum+=i;
if(k%10==0)printf("\n");
}
}
avg=sum/k;
printf("\nTheaverageis%d\n",avg);
}
6、编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1+1/3+1/5...+1/n
#include<>
voidmain()
{
voidodd(intn);
voideven(intn);
intn;
printf("Pleaseinputthenumber:
");
scanf("%d",&n);
if(n%2)
odd(n);
else
even(n);
}
voidodd(intn)
{
floatsum=;
floatj;
inti;
for(i=1;i<=n;i+=2)
{
j=i;
sum+=j;
}
printf("%f\n",sum);
}
voideven(intn)
{
floatsum=;
inti;
floatj;
if(n==0)
printf("%f\n",sum);
else
{
for(i=2;i<=n;i+=2)
{
j=i;
sum+=j;
}
printf("%f\n",sum);
}
}
7、已知abc+cba=1333,其中a,b,c均为一位数,编程求出满足条件的a,b,c所有
组合。
#include<>
voidmain()
{
inta,b,c;
for(a=1;a<=9;a++)
for(b=0;b<=9;b++)
for(c=1;c<=9;c++)
if((100*a+10*b+c+100*c+10*b+a)==1333)
printf("a=%d,b=%d,c=%d\n",a,b,c);
}
8、用户输入12个0-100之间的整数,统计出小于60,60到79,80到100三个范围的整数各有多少个?
#include<>
#include<>
voidmain()
{
inti,j,k,n,num;
i=j=k=0;
printf("Pleaseinputthe12numberswith0~100:
");
for(n=1;n<=12;n++)
{
scanf("%d",&num);
if(!
(num>=0&&num<=100))exit(0);
if(num<60)++i;
elseif(num<80)++j;
else++k;
}
printf("\nThereare%dnumberslessthan60,%dnumbersbetween60and79,%dnumbersbetween80and100.\n",i,j,k);
}
9、求这样一个三位数并输出该数字,该三位数等于其每位数字的阶乘之和。
即:
abc=a!
+b!
+c!
#include<>
voidmain()
{
inta,b,c,num;
ints(int);
for(num=100;num<1000;num++)
{
a=num/100;
b=num/10%10;
c=num%10;
if(num==s(a)+s(b)+s(c))
{
printf("Thenumberis%d\n",num);
break;
}
}
}
s(intn)
{
inti,sum=1;
for(i=1;i<=n;i++)
sum*=i;
returnsum;
}
10、猜数游戏:
由用户随机输入一个1位正整数数让人来猜,只能猜5次,如果人猜对了,则在屏幕上显示“Youaresoclever”,否则计算机给出提示,告诉人所猜的数是太大还是太小,直到人猜对为止或者5次都猜不对给出提示“GameOver”。
#include<>
#include<>
voidmain()
{
intnum,i,n;
printf("Pleaseinputthenumberwith0~9forguessing:
");
scanf("%d",&num);
system("cls");
if(num<0||num>9)exit(0);
for(i=1;i<=5;i++)
{
printf("\nPleaseinputthenumberyouguess:
");
scanf("%d",&n);
if(num==n)
{
printf("\nYouaresoclever!
\n");
break;
}
elseif(n { printf("\nThenumberyouinputislittle,goonplease! Youhave%dtimesleft! \n",5-i); continue; } else { printf("\nThenumberyouinputislarge,goonplease! Youhave%dtimesleft! \n",5-i); continue; } } if(i>5)printf("GameOver! \n"); } 11、设N是一个四位数,它的9倍恰好是其反序数(例如: 123的反序数是321),求N的值。 #include<> voidmain() { intn,k,a,b,c,d; for(n=1000;n<=9999;n++) { a=n/1000; b=n/100%10; c=n/10%10; d=n%10; k=1000*d+100*c+10*b+a; if(k==9*n) printf("N=%d\n",n); } } 12、100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,小马两匹驮1担。 试编写程序计算大、中、小马的数目。 #include<> voidmain() { inth1,h2,h3; for(h1=0;h1<=100;h1++) for(h2=0;h2<=100;h2++) for(h3=0;h3<=100;h3+=2) { if(h1+h2+h3==100&&3*h1+2*h2+1/2*h3==100) printf("Theoldhorsehas%d,middlehorsehas%d,younghorsehas%d\n",h1,h2,h3); } } 13、一位司机酒驾撞人逃跑。 现场三人目击事件,但都没记住车号,只记下车号的一些特征。 甲说: 牌照的前两位数字是相同的;乙说: 牌照的后两位数字是相同的;丙是位数学家,他说: 四位的车号刚好是一个整数的平方。 请根据以上线索求出车号。 (车号为4位数) #include<> #include<> voidmain() { intn,a,b,c,d,i; for(n=1000;n<=9999;n++) { a=n/1000; b=n/100%10; c=n/10%10; d=n%10; i=sqrt(n); if(a==b&&c==d&&i*i==n) printf("%d\n",n); } } 14、求S=1/(1*2)+1/(2*3)+1/(3*4)+……前50项之和并输出结果。 #include<> voidmain() { floati; floats=0; for(i=1;i<51;i++) s+=(i*(i+1)); printf("%f",s); } 15、编程求出所有1000到3000之间能被7、11、17同时整除的整数,并求其平均值,并输出结果(结果保留两位小数)。 #include<> voidmain() { inti,k=0,sum=0; for(i=1000;i<=3000;i++) if(i%7==0&&i%11==0&&i%17==0) { sum+=i; ++k; printf("%d\t",i); } printf("\n%d",sum/k); } 16、编程找出满足下列条件的所有四位数的和并输出: 该数第一、三位数字之和为10,第二、四位数字之积为12。 #include<> #include<> intmain(void) { inti,j,x,y,z,m; for(i=1000;i<10000;i++) { x=i/1000; y=(i/100)%10; z=(i/10)%10; m=i%10; if((x+z)==10&&(y+m)==12) { printf("%d\t",i); } } printf("\n"); return0; } 17、求并输出所有满足如下条件的三位正整数: 它是某整数的平方,它的三位数码有两位是相同的。 (如100是10的平方,它有两个0,225是15的平方,它有两个2)。 #include<> #include<> voidmain() { intn,i,a,b,c; for(n=100;n<=999;n++) { a=n/100; b=n/10%10; c=n%10; i=sqrt(n); if((a==b||a==c||b==c)&&n==i*i) printf("%d\t",n); } } 18、输出所有大于1010的4位偶数,且该类偶数的各位数字两两不相同。 #include<> voidmain() { intnum,a,b,c,d; for(num=1012;num<=9999;num+=2) { a=num/1000; b=num/100%10; c=num/10%10; d=num%10; if(a! =b&&b! =c&&c! =d) printf("%d\t",num); } } 19、编制程序要求输入整数a和b,若a2+b2大于100,则输出a2+b2百位以上的数字,否则输出两数字之和。 #include<> voidmain() { inta,b,s; printf("Pleaseinputaandb: "); scanf("%d%d",&a,&b); s=a*a+b*b; if(s>100) printf("\n%d\n",s/100); else printf("\n%d\n",a+b); } 20、编写一个程序实现如下功能: 计算1~100之间所有包含4或者包含5的数字,并显示其累加之和 #include<> voidmain() { inta,b,i,sum=0; for(i=1;i<=99;i++) { a=i/10; b=i%10; if(a==4||a==5||b==4||b==5) { sum+=i; printf("%d\t",i); } } printf("\n%d\n",sum); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 期末考试 编程