C语言基础编程题

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

5-1求幂之和(15分)本题要求编写程序,计算sum=2^1+2^2+2^3+\cdots+2^nsum=21+22+23+⋯+2n。可以调用pow函数求幂。输入格式:输入在一行中给出正整数nn(\le≤10)。输出格式:按照格式“result=计算结果”输出。输入样例:5输出样例:result=62#includestdio.h#includemath.hintmain(){inti,n,sum=0;scanf(%d,&n);for(i=1;i=n;i++){sum=sum+pow(2,i);}printf(result=%d\n,sum);return0;}5-2近似求PI(15分)本题要求编写程序,根据下式求\piπ的近似值,直到最后一项小于给定精度eps。\frac{\pi}{2}=1+\frac{1!}{3}+\frac{2!}{3\times5}+\frac{3!}{3\times5\times7}+\cdots+\frac{i!}{3\times5\times\cdots\times(2\timesi+1)}+\cdots2π=1+31!+3×52!+3×5×73!+⋯+3×5×⋯×(2×i+1)i!+⋯输入格式:输入在一行中给出精度eps,可以使用以下语句来读输入:scanf(%le,&eps);输出格式:在一行内,按照以下格式输出\piπ的近似值(保留小数点后5位):PI=近似值输入样例:1E-5输出样例:PI=3.14158#includestdio.h#includemath.hintmain(){doublea=1,b=3,i=1,j=3;doubleeps,m=1,sum=0;scanf(%le,&eps);while(meps){m=a/b;sum=sum+m;i=i+1;j=j+2;a=a*i;b=b*j;}printf(PI=%.5lf\n,2+2*sum);return0;}5-3判断素数(15分)输入一个正整数m,如果它是素数,输出YES,否则,输出NO(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。输入格式:在一行中输入一个正整数m。输出格式:对每一组输入,在一行中输出结果并换行。输入样例:17输出样例:YES#includestdio.h#includemath.hintmain(){inti,j,n;scanf(%d,&n);j=sqrt(n);for(i=2;i=j;i++)if(n%i==0)break;if(i=j&&n!=1)printf(YES\n);elseprintf(NO\n);return0;}5-4出生年(15分)以上是新浪微博中一奇葩贴:“我出生于1988年,直到25岁才遇到4个数字都不相同的年份。”也就是说,直到2013年才达到“4个数字都不相同”的要求。本题请你根据要求,自动填充“我出生于y年,直到x岁才遇到n个数字都不相同的年份”这句话。输入格式:输入在一行中给出出生年份y和目标年份中不同数字的个数n,其中y在[1,3000]之间,n可以是2、或3、或4。注意不足4位的年份要在前面补零,例如公元1年被认为是0001年,有2个不同的数字0和1。输出格式:根据输入,输出x和能达到要求的年份。数字间以1个空格分隔,行首尾不得有多余空格。年份要按4位输出。注意:所谓“n个数字都不相同”是指不同的数字正好是n个。如“2013”被视为满足“4位数字都不同”的条件,但不被视为满足2位或3位数字不同的条件。输入样例1:19884输出样例1:252013输入样例2:12输出样例2:00001#includestdio.h#includestring.hintmain(){inty,n,a,b,c,d,f[10],l=0;scanf(%d%d,&y,&n);for(inti=y;i10000;i++){a=i/1000;b=i/100%10;c=i%100/10;d=i%10;memset(f,0,sizeof(f));f[a]=1;if(f[b]!=1)f[b]=1;if(f[c]!=1)f[c]=1;if(f[d]!=1)f[d]=1;intsum=0;for(intj=0;j10;j++){sum=sum+f[j];}if(sum==n&&l==0){printf(%d%04d\n,i-y,i);l++;}}return0;}5-5计算函数P(n,x)(10分)输入一个正整数repeat(0repeat10),做repeat次下列运算:输入一个整数n(n=0)和一个双精度浮点数x,输出函数p(n,x)的值(保留2位小数)。1(n=0)x(n=1)((2n-1)p(n-1,x)-(n-1)*p(n-2,x))/n(n1)例:括号内是说明输入样例:3(repeat=3)00.9(n=0,x=0.9)1-9.8(n=1,x=-9.8)101.7(n=10,x=1.7)输出样例:p(0,0.90)=1.00p(1,-9.80)=-9.80p(10,1.70)=3.05时间限制:400ms内存限制:64MB代码长度限制:16kB判题程序:系统默认作者:王秀单位:福州大学题目判定解题程序#includestdio.hintmain(){doublep(intn,doublex);intrepeat,ri,n;doublex,result;scanf(%d,&repeat);for(ri=1;ri=repeat;ri++){scanf(%d%lf,&n,&x);result=p(n,x);printf(p(%d,%.2lf)=%.2lf\n,n,x,result);}return0;}doublep(intn,doublex){doublet;if(n==0)t=1;elseif(n==1)t=x;elset=((2*n-1)*p(n-1,x)-(n-1)*p(n-2,x))/n;returnt;}5-6在数组中查找指定元素(10分)输入一个正整数repeat(0repeat10),做repeat次下列运算:输入一个正整数n(1n=10),然后输入n个整数存入数组a中,再输入一个整数x,在数组a中查找x,如果找到则输出相应元素的最小下标,否则输出Notfound。要求定义并调用函数search(list,n,x),它的功能是在数组list中查找元素x,若找到则返回相应元素的最小下标,否则返回-1,函数形参list的类型是整型指针,形参n和x的类型是int,函数的类型是int。输出格式语句:printf(index=%d\n,);输入输出示例:括号内为说明,无需输入输出输入样例:2(repeat=2)3(n=3)12-62(x=2)5(n=5)122540(x=0)输出样例:index=1Notfound时间限制:400ms内存限制:64MB代码长度限制:16kB判题程序:系统默认作者:王秀单位:福州大学题目判定#includestdio.hintmain(){intsearch(intlist[],intn,intx);intn,i,a[10],res,x,repeat,index,ri;scanf(%d,&repeat);for(ri=1;ri=repeat;ri++){scanf(%d,&n);for(i=0;in;i++)scanf(%d,&a[i]);scanf(%d,&x);res=search(a,n,x);if(res!=-1)printf(index=%d\n,res);elseprintf(Notfound\n);}return0;}intsearch(intlist[],intn,intx){inti,q=-1;for(i=0;in;i++){if(list[i]==x){returni;}}returnq;}5-7使用函数的选择法排序(10分)输入一个正整数repeat(0repeat10),做repeat次下列运算:输入一个正整数n(1n=10),再输入n个整数存入数组a中,用选择法将数组a中的元素按升序排列,最后输出排序后的数组元素。要求定义并调用函数sort(a,n),它的功能是采用选择排序算法,将数组a的前n个元素按从小到大的顺序排序,函数形参a的类型是整型指针,形参n的类型是int,函数的类型是void。输出格式:数据直接以空格分隔,最后的一个数据后面没有空格。输入输出示例:括号内为说明,无需输入输出输入样例:3(repeat=3)4(n=4)51763(n=3)1235(n=5)54321输出样例:Aftersorted:1567Aftersorted:123Aftersorted:12345时间限制:400ms内存限制:64MB代码长度限制:16kB判题程序:系统默认作者:王秀单位:福州大学题目判定解题程序#includestdio.h#defineMAXN10voidsort(inta[],intn);intmain(){inti,n,x,j;inta[MAXN];scanf(%d,&x);for(j=0;jx;j++){scanf(%d,&n);for(i=0;in;i++)scanf(%d,&a[i]);sort(a,n);printf(Aftersorted:);for(i=0;in-1;i++)printf(%d,a[i]);printf(%d,a[i]);printf(\n);}return0;}voidsort(inta[],intn){inti,x,j,temp;for(i=0;in-1;i++){x=i;for(j=i+1;jn;j++)if(a[j]a[x])x=j;if(x!=i){temp=a[x];a[x]=a[i];a[i]=temp;}}}5-8求组合数(15分)本题要求编写程序,根据公式C^{m}_{n}=\frac{n!}{m!(n-m)!}Cnm=m!(n−m)!n!算出从nn个不同元素中取出mm个元素(m\lenm≤n)的组合数。建议定义和调用函数fact(n)计算n!,其中n的类型是int,函数类型是double。输入格式:输入在一行中给出两个正整数mm和nn(m\lenm≤n),以空格分隔。输出格式:按照格式“result=组合数计算结果”输出。题目保证结果在double类型范围内。输入样例:27输出样例:result=21时间限制:400ms内存限制:64MB代码长度限制:16kB判题程序:系统默认作者:颜晖单位:浙江大学城市学院题目判定#includestdio.hintmain(){doublefact(intn);intm,n;doublesum;scanf(%d%d,&m,&n);if(n=m)sum=fact(n)/(fact(m)*fact(n-m));printf(result=%.0lf\n,sum);return0;}doublefact(intn){inti;doubles=1;for(i=1;i=n;i++){s=s*i;}returns;}5-9判断数字字符(10分)编写函数,判断指定的字符是否是数字字符,如果是函数返回1,否则函数返回0.要求在主调函数中输入该字符,调用函数并输出判断结果。输入格式:在一行中给出1个字符。输出格式:对于给定输入的字符,输出判断结果yes或no。输入样例:6输出样例:yes输入样例:H输出样例:no时间限制:400ms内存限制:64MB代码长度限制:16kB判题程序:系统默认作者:韩玫瑰单位:济南大学题目判定解题程序#includestdio.hintmain(){voidpanduan(charch);charch;scanf(%c,&ch);panduan(ch);return0;}voidpanduan(charch){if(ch='0'&&c

1 / 20
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功