课程:
200分找人做C语言编程 11个题目
你自己调试吧。
#ifdef _DEBUG
printf("%d\t",i);
#endif
类似这样的代码,是调试时输出中间值用的,你可以当它不存在
29./*已知 f(n)=f(n-1)+2f(n-2)-5f(n-3),f(0)=1,f(1)=2,f(2)=3,求f(0)+f(1)+…f(30)。*/
#include "stdio.h"
int f(int n)
{
switch(n)
{
case 0:
return 1;
case 1:
return 2;
case 2:
return 3;
default:
return f(n-1)+2*f(n-2)-5*f(n-3);
}
return 0;
}
int main(void)
{
int i,Sum=0;
for(i=0;i30;i++) Sum+=f(i);
printf("f(0)+f(1)+...+f(30)=%d",Sum);
return 0;
}
30./*已知S1=2, S2=2+4, S3=2+4+6, S4=2+4+6+8,S5=2+4+6+8+10,…,求S=S1+S2+S3+S4 +S5+…+S20的值。*/
#include "stdio.h"
int main(void)
{
int i,Data=0,Sum=0;
for(i=1;i21;i++)
{
Data+=i*2;
Sum+=Data;
}
printf("S1+S2+...+S20=%d",Sum);
return 0;
}
31./*求出以下分数序列的前35之和,2/1,3/2,5/3,8/5,13/8,21/13,......给出程序结果(保留6位小数)。*/
#include "stdio.h"
int main(void)
{
int i;
double Sum=0.0,Data1=1.0,Data2=2.0,Temp;
for(i=0;i35;i++)
{
Sum+=Data2/Data1;
Temp=Data2;
Data2+=Data1;
Data1=Temp;
}
printf("2/1+3/2+5/3+8/5+13/8+21/13...=%0.6lf",Sum);
return 0;
}
32./*计算A15值。A1=1, A2=1/(1+A1), A3=1/(1+A2), A4=1/(1+A3), ......(保留10位小数)。*/
#include "stdio.h"
int main(void)
{
int i;
double Data1=1.0;
for(i=0;i15;i++)
{
Data1=1.0/(Data1+1.0);
}
printf("A15=%0.10lf",Data1);
return 0;
}
33./*求[1,800]之间能被3和8整除的数的个数。*/
#include "stdio.h"
int main(void)
{
int i,Sum=0;
for(i=1;i=800;i++)
{
if(i%8==0 i%3==0)
{
#ifdef _DEBUG
printf("%d\t",i);
#endif
Sum++;
}
}
printf("[1,800]之间能被3和8整除的数的个数为",Sum);
return 0;
}
34./*求[2000,20000]之间同时满足除以7余5,除以5余3,除以3余1的整数的个数。*/
#include "stdio.h"
int main(void)
{
int i,Sum=0;
for(i=2000;i=20000;i++)
{
if(i%7==5 i%5==3 i%3==1)
{
#ifdef _DEBUG
printf("%d\t",i);
#endif
Sum++;
}
}
printf("[2000,20000]之间同时满足除以7余5,除以5余3,除以3余1的整数的个数为",Sum);
return 0;
}
28./*[100,999]范围内同时满足以下两个条件的十进制数: ⑴其个位数字与十位数字之和除以10所得的余数是百位数字;⑵该数是素数; 求有多少个这样的数? */
#include "stdio.h"
int IsPrime(int n)
{
int i=0;
for(i=3;in/2;i+=2)
{
if(n%i==0) return 0;
}
return 1;
}
int main(void)
{
int i,Sum=0;
for(i=101;i=999;i+=2)
{
if(((i%10)+((i/10)%10)==(i/100)) IsPrime(i))
{
#ifdef _DEBUG
printf("%d\t",i);
#endif
Sum++;
}
}
printf("[100,999]范围内同时满足以下两个条件的十进制数: ⑴其个位数字与十位数字之和除以10所得的余数是百位数字;⑵该数是素数; 有%d个",Sum);
return 0;
}
29./*猴吃桃:有一天小猴子摘下了若干个桃子,当即吃掉一半,还觉得不过瘾,又多吃了一个。第二天接着吃了剩下的桃子中的一半,仍不过瘾,又多吃了一个。以后每天都是吃尚存桃子的一半零一个。到第10天早上小猴子再去吃桃子时,看到只剩下一个桃子了。问小猴子第一天共摘下了多少个桃子。*/
#include "stdio.h"
int main(void)
{
int i,Sum=1;
for(i=9;i=1;i--)
{
Sum=(Sum+1)*2;
}
printf("The number of peach is %d in the first day",Sum);
return 0;
}
30./*数列E(1)=E(2)=1,E(n)=(n-1)*E(n-1)+(n-2)*E(n-2) (n2) 称为E数列,每一个E(n),(n=1,2,…)称为E数。求不超过30000的最大E数的值(注: 是求E30000的最大E数值)。*/
#include "stdio.h"
int E(int n)
{
if(n=2) return 1;
else return E(n-1)*(n-1)+(n-2)*E(n-2);
}
int main(void)
{
int i=1,LastE=0,CurrentE=0;
do
{
i++;
LastE=CurrentE;
CurrentE=E(i);
}while(CurrentE30000);
printf("The number of the Max. E that lass than 30000 is %d.",LastE);
return 0;
}
31./*求7到2156之间的所有奇数的平方和。(保留整数位)*/
#include "stdio.h"
int main(void)
{
int i,Sum=0;
for(i=7;i2156;i+=2)
{
Sum+=i*i;
}
printf("7到2156之间的所有奇数的平方和为%d.",Sum);
return 0;
}
32./*求出将十进制整数98765432等值转换为二进制形式表示后其中数字1的个数。(提示:模拟人工计算的“2除取余”法*/
#include "stdio.h"
int main(void)
{
int Data=98765432,Sum=0;
while(Data0)
{
if(Data%2) Sum++;
Data/=2;
}
printf("98765432表示为二进制后其中数字1的个数为%d.",Sum);
return 0;
}
或者
#include "stdio.h"
int main(void)
{
int Data=98765432,Sum=0;
while(Data0)
{
if(Data0x01) Sum++;
Data=1;
}
printf("98765432表示为二进制后其中数字1的个数为%d.",Sum);
return 0;
}
200分找人用C语言编程 10个题目
// 2.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
1./*编写程序,求四位数的偶数中,所有各位数字之和是15的倍数的数的和。*/
#include "stdio.h"
int main(void)
{
int i,Sum=0;
for(i=1000;i9999;i+=2)
{
if((i/1000+((i/100)%10)+((i/10)%10)+(i%10))%15==0)
{
#ifdef _DEBUG
printf("%d\t",i);
#endif
Sum+=i;
}
}
printf("四位数的偶数中,所有各位数字之和是15的倍数的数的和为%d",Sum);
return 0;
}
2./*已知AB, A和B均为正整数,且A*B=716699,求A+B的最小值。*/
#include "stdio.h"
/*因为716699是奇数所以A和B都是奇数;
A和B是成对出现的,只考虑A的话只要判断A小于716699的平方根的情况就可以了716699开平方的值为847*/
int main(void)
{
int i,Min=1+716699;//以第一个符合条件的值来初始化
for(i=1;i847;i+=2)
{
if(716699%i==0)
{
#ifdef _DEBUG
printf("%d*%d\t",i,716699/i);
#endif
if(i+(716699/i)Min) Min=i+(716699/i);
}
}
printf("A+B的最小值为%d",Min);
return 0;
}
3./*编写程序,求在四位数的奇数中,所有各位数字之和是25的倍数的数的和。*/
#include "stdio.h"
int main(void)
{
int i,Sum=0;
for(i=1001;i=9999;i+=2)
{
if((i/1000+((i/100)%10)+((i/10)%10)+(i%10))%25==0)
{
#ifdef _DEBUG
printf("%d\t",i);
#endif
Sum+=i;
}
}
printf("四位数的奇数中,所有各位数字之和是25的倍数的数的和为%d",Sum);
return 0;
}
4./*一个数如果刚好与它所有的因子之和相等,则称该数为一个"完数",如:6=1+2+3,则6就是一个完数。求出1000以内的完数的个数。*/
#include "stdio.h"
int main(void)
{
int i,j,Value,Sum=0;
for(i=1;i=1000;i++)
{
Value=0;
for(j=1;ji;j++)
{
if(i%j==0) Value+=j;
}
if(Value==i)
{
#ifdef _DEBUG
printf("%d\t",i);
#endif
Sum++;
}
}
printf("1000以内的完数的个数为%d",Sum);
return 0;
}
5./*已知f(0)=f(1)=1,f(2)=0,f(n)=f(n-1)-2*f(n-2)+f(n-3) (n2),求f(0)到f(50)中的最大值。*/
#include "stdio.h"
int f(int n)
{
if(n2) return 1;
else if(n==2) return 0;
else return f(n-1)-2*f(n-2)+f(n-3);
}
int main(void)
{
int i,Value,Max=0;
for(i=0;i=50;i++)
{
Value=f(i);
#ifdef _DEBUG
printf("%d\t",i);
#endif
if(ValueMax)
{
Max=Value;
}
}
printf("f(0)到f(50)中的最大值为%d",Max);
return 0;
}
6./*一个数如果刚好与小于它的所有因子之和相等,则称该数为一个“完数”,如:6=1+2+3,则6就是一个完数。求出400以内的所有完数之和。*/
#include "stdio.h"
int main(void)
{
int i,j,Value,Sum=0;
for(i=1;i=400;i++)
{
Value=0;
for(j=1;ji;j++)
{
if(i%j==0) Value+=j;
}
if(Value==i)
{
#ifdef _DEBUG
printf("%d\t",i);
#endif
Sum+=i;
}
}
printf("400以内的完数的和为%d",Sum);
return 0;
}
7./*斐波那契数列的前二项是1,1,以后每一项都是前面两项之和。求前30个斐波那契数之和。*/
#include "stdio.h"
int main(void)
{
int i,Data1=1,Data2=1,Sum=0,Temp;
Sum+=Data1+Data2;
for(i=2;i30;i++)
{
Temp=Data2;
Data2+=Data1;
Data1=Temp;
Sum+=Data2;
}
printf("前30个斐波那契数之和为%d",Sum);
return 0;
}
8./*某些分数的分子和分母都是二位正整数的真分数具有下列特点:如果将该分数的分子的两位数字相加作分子,而将该分数的分母的两位数字相加作分母,得到的新分子跟原分子相等。例如,63/84=(6+3)/(8+4)。试求所有具有这种特点的真分子(非约简真分数)的分子与分母之和的和。*/
#include "stdio.h"
int main(void)
{
int i,j,Sum=0;
for(i=10;i100;i++)
{
for(j=10;ji;j++)
{
if(j*1.0/i==((j/10)+(j%10))*1.0/((i/10)+(i%10)))
{
#ifdef _DEBUG
printf("%d/%d\t",j,i);
#endif
Sum+=i+j;
}
}
}
printf("所有具有题设特点的真分子的分子与分母之和的和为%d",Sum);
return 0;
}
10./*编写程序,求出100到500之间同时满足除5余4和除7余2条件的数的个数。*/
#include "stdio.h"
int main(void)
{
int i,Sum=0;
for(i=100;i500;i++)
{
if(i%5==4 i%7==2)
{
#ifdef _DEBUG
printf("%d\t",i);
#endif
Sum++;
}
}
printf("100到500之间同时满足除5余4和除7余2条件的数的个数为%d",Sum);
return 0;
}
11./*[300,800]范围内同时满足以下两个条件的十进制数.⑴其个位数字与十位数字之和除以10所得的余数是百位数字 ;⑵该数是素数;求满足上述条件的最大的三位十进制数 */
#include "stdio.h"
int IsPrime(int n)
{
int i;
for(i=3;in/2+1;i+=2)
{
if(n%i==0) return 0;
}
return 1;
}
int main(void)
{
int i,Max=0;
for(i=301;i=800;i+=2)
{
if(((((i/10)%10)+(i%10))%10)==i/100 IsPrime(i))
{
#ifdef _DEBUG
printf("%d\t",i);
#endif
if(iMax) Max=i;
}
}
printf("300到800之间满足上述条件的最大的三位十进制数为%d",Max);
return 0;
}
有什么适合大一计算机专业学生免费的刷题网站?
既然大一的同学选择计算机专业,当然少不了刷题啦!但是有很多刷题网站是免费的,同学们想知道吗?下面由我来讲讲吧。
1.力扣
这个网站收录了很多知名互联网公司出的算法题目,相信大一同学很熟悉了,很多同学都在这里刷题,增强对计算机基础知识掌握。它支持多种编程语言,如:Java、Ptthon、Ruby等。最常做的是算法题,目前有一千多道的题目。有专门的图文和视频讲解,方便同学们茶楼补缺。也可以在个人界面查看进展,看自己的学习情况。如果出来工作笔试中,面试官会从这里抽题。刷题过程中全部会了,那么工作没有什么大问题。
2.洛谷
一个很良心的网站,有着强大的社区,可以在线学习,带来的是清爽的体验。里面功能真是多,题量大,有涉及到A+B、WC、CTSC等。可以加入题单,方便日后复习,来弥补自己的劣势。在刷题的同时,右边的界面可以查看刷题的通过率,在会显示历史成绩,看成绩的波动。不定时会举行比赛,分为个人公开赛和团队公开赛,胜出者会有奖励。有讨论区,可以跟在线的小伙伴一起交流学习知识,感受到学习的乐趣。
3.牛客网
被称为"互联网求职神器“,这里不只刷题,也可以求职、面试。有很多丰富的历年校招编程真题,为以后校招的笔试做好准备,热度达到上万的程度。题库质量很高,难度分为简单题、中等题、难题。都有配套的讲解,有涵盖到知识点标签,也有自测运行。个人界面有刷题统计,也有排名榜,跟小伙伴PK。也有刷题日历,你在什么时候刷题。可以筛选标签,有栈、堆、链表等,对标签做好分类,选起来真是方便!
以上我列举了三个计算机免费刷题的网站,同学们看到我写的推荐后,来收藏夹吃灰~希望同学们有时间使用这三个网站学习计算机相关知识,提高计算机专业能力,祝你们学有所成!