参考编程题库.doc_第1页
参考编程题库.doc_第2页
参考编程题库.doc_第3页
参考编程题库.doc_第4页
参考编程题库.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 删除一个字符串中所有的空格1函数delspace的功能是删除一个字符串中所有的空格。例如,输入字符串为This is a string,则输出结果为Thisisastring。测试用主函数如下所示,请编制函数delspace。 #include #include void main()char *delspace(char *str);char s81,*ds;gets(s);ds=delspace(s);printf(nResult: %sn, ds);char *delspace(char *str)char *p=str; while(*p)if(*p= )strcpy(p,p+1);elsep+;return str;I am a student.Result: Iamastudent.Press any key to continue2、 求3位数2. 已知两个3位数abc和cba之和为1333(即abc+cba=1333),编程序求出3个数字a、b和c。#include void main()int n,a,b,c;for(n=100;n1000;n+)a=n/100;b=n/10%10;c=n%10;if(a*100+b*10+c+c*100+b*10+a=1333)printf(abc is: %d%d%dn,a,b,c);abc is: 419abc is: 518abc is: 617abc is: 716abc is: 815abc is: 914Press any key to continue3、 求同构数3.若一个数出现在自己平方数的右边,则称该数为同构数。如,因有5*5=25,25*25=625,所以5和25都是同构数;请编制程序找出1100之间的全部同构数。#includevoid main() int check(int n); int n; for(n=1;n=100;n+) if(check(n) printf(%d,%dn,n,n*n); int check(int n) int k;k=n*n;if(k%10=n|k%100=n)return 1;elsereturn 0;1,15,256,3625,62576,5776Press any key to continue4、 有序数组插入元素4.编程序实现功能:在一个元素值按升序存放的整型数组中插入一个数,使得插入后的数组元素仍然有序#include#define N 5void main() int aN+1,x,i,k; for(i=0;iN;i+) scanf(%d,&ai); scanf(%d,&x); for(i=0;aixⅈk-) ak=ak-1; ai=x; for(i=0;i=N;i+) printf(%5d,ai); putchar(n); 34 678 89 124 36789 34 89 678 89 124 367Press any key to continue#include#define N 5void main() void insert(int v,int n,int x);int aN+1,x,i; for(i=0;iN;i+) scanf(%d,&ai); scanf(%d,&x); insert(a,N,x); for(i=0;i=N;i+) printf(%5d,ai); putchar(n); void insert(int v,int n,int x) int i,k; for(i=0;vixⅈk-) vk=vk-1; vi=x; 23 45 67 89 99989 23 45 67 89 89 999Press any key to continue5、 求满足条件最小正整数5. 编程序实现功能:一个正整数与3的和是5的倍数,与3的差是6的倍数,求出符合此条件的最小正整数。#includevoid main() int i; for(i=9;i+) if(i+3)%5=0&(i-3)%6=0) printf(%dn,i); break; 27Press any key to continue6、 颠倒字符串6. 函数reverse的原型为:void reverse(char s);,其功能是将字符串s中的字符位置颠倒。例如,字符串“abcdefg”中的字符位置颠倒后变为“gfedcba”。编制函数reverse并用相应的主函数进行测试。#include#includevoid reverse(char s) int i,j; char c; for(i=0,j=strlen(s)-1;ij;i+,j-) c=si; si=sj; sj=c; void main()char s100;puts(input a string:);gets(s);reverse(s);puts(s);input a string:Great Wall ChinaanihC llaW taerGPress any key to continue7、 求3位整数7.编程序实现功能:求出所有各位数字的立方和等于1099的3位整数。#includevoid main() int a,b,c; for(a=1;a=9;a+) for(b=0;b=9;b+) for(c=0;c=9;c+) if(a*a*a+b*b*b+c*c*c=1099) printf(%d%d%dn,a,b,c); 379397739793937973Press any key to continue#includevoid main() int a,b,c,n; for(n=100;n1000;n+) a=n/100;b=n%100/10; c=n%10; if(a*a*a+b*b*b+c*c*c=1099) printf(%d%d%dn,a,b,c); 379397739793937973Press any key to continue8、 截子串8. 函数cut的原型为:char *cut(char *s,int m,int n);,其功能是:从字符串s中第m个位置开始,截取含有n个字符的子串;若从m开始剩余的字符不足n个,则截取剩余的所有字符;函数返回所截子串的首地址。编制函数reverse并用相应的主函数进行测试。#include char *cut(char *,int,int);void main() char s=goodmorning; char *p; p=cut(s,10,4); printf(%sn,p);char *cut(char *s,int m,int n)int i;static char sub20; for(i=0;in;i+)subi=sm+i-1; subi=0; return sub;ngPress any key to continue9、 求阶乘的累加和9. 求阶乘的累加和(即求1!+2!+3!+4!+5!+20!)代码:#include int main() double s=0,t=1; int n; for (n=1;n=20;n+) t=t*n; s=s+t; printf(1!+2!+.+20!=%22.15en,s); return 0;结果:1!+2!+.+20!=2.561327494111820e+018Press any key to continue10、 求水仙花数求出所有水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该本身。例如:153是一个水仙花数,因为153=13+53+33。代码:#include int main() int i,j,k,n; printf(parcissus numbers are ); for (n=100;n1000;n+) i=n/100; j=n/10-i*10; k=n%10; if (n=i*i*i + j*j*j + k*k*k) printf(%d ,n); printf(n); return 0;结果:parcissus numbers are 153 370 371 407Press any key to continue11、 求素数用筛法求100之内的素数。代码:#include #include int main()int i,j,n,a101; for (i=1;i=100;i+) ai=i; a1=0; for (i=2;isqrt(100);i+) for (j=i+1;j=100;j+) if(ai!=0 & aj!=0) if (aj%ai=0) aj=0; printf(n);for (i=2,n=0;i=100;i+) if(ai!=0)printf(%5d,ai);n+;if(n=10)printf(n);n=0; printf(n);return 0;结果: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97Press any key to continue12、 选择法排序用选择法对10个整数从小到大排序。代码:#include int main()int i,j,min,temp,a11; printf(enter data:n); for (i=1;i=10;i+) printf(a%d=,i); scanf(%d,&ai); printf(n); printf(The orginal numbers:n); for (i=1;i=10;i+) printf(%5d,ai); printf(n); for (i=1;i=9;i+) min=i; for (j=i+1;jaj) min=j; temp=ai; ai=amin; amin=temp; printf(nThe sorted numbers:n); for (i=1;i=10;i+) printf(%5d,ai); printf(n); return 0; 结果:enter data:a1=34a2=86a3=92a4=16a5=69a6=62a7=29a8=95a9=60a10=8The orginal numbers: 34 86 92 16 69 62 29 95 60 8The sorted numbers: 8 16 29 34 60 62 69 86 92 95Press any key to continue13、 输出杨辉三角形输出以下的杨辉三角形(要求打印出10行)。1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 代码:#include #define N 10int main() int i,j,aNN; for (i=0;iN;i+) aii=1; ai0=1; for (i=2;iN;i+) for (j=1;j=i-1;j+) aij=ai-1j-1+ai-1j; for (i=0;iN;i+) for (j=0;j=i;j+) printf(%6d,aij); printf(n); printf(n); return 0;结果: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1Press any key to continue14、 起泡法排序写一个函数,用“起泡法”对输入的10个字符按由小到大的顺序排列。代码:#include #include #define N 10char strN;int main()void sort(char );int i,flag;for (flag=1;flag=1;)printf(input string:n);scanf(%s,&str);printf(Inputed string is: %sn,str);if (strlen(str)N)printf(string too long,input again!);elseflag=0;sort(str);printf(string sorted:n);for (i=0;iN;i+)printf(%c,stri);printf(n);return 0;void sort(char str)int i,j;char t;for(j=1;jN;j+)for (i=0;(istri+1)t=stri;stri=stri+1;stri+1=t;结果:input string:GoodbyeInputed string is: Goodbyestring sorted:15、 字符串排序用指向指针的指针的方法对5个字符串排序输出。代码:#include #include #define LINEMAX 20 /*定义字符串的最大长度*/int main() int sort(char *p);int i; char *p,*pstr5,str5LINEMAX; for (i=0;i5;i+) pstri=stri; /*将第i个字符串的首地址赋予指针数组 pstr 的第i个元素*/ printf(input 5 strings:n); for (i=0;i5;i+) scanf(%s,pstri); p=pstr; sort(p); printf(strings sorted:n); for (i=0;i5;i+) printf(%sn,pstri);int sort(char *p) /*冒泡法对5个字符串排序函数*/int i,j;char *temp;for (i=0;i5;i+)for (j=i+1;j0) /*比较后交换字符串地址*/temp=*(p+i);*(p+i)=*(p+j);*(p+j)=temp;return 0;结果:input 5 strings:wangzhuliumingxuestrings sorted:liumingwangxuezhuPress any key to continue16、 打印学生数据编写一个函数print,打印一个学生的成绩数,该数组中有5个学生的数据记录,每个记录包括num、name、sore3,用主函数输入这些记录,用print函数输出这些记录。代码:#include #define N 5struct student char num6; char name8; int score4;stuN;int main()void print(struct student stu6);int i,j;for (i=0;iN;i+)printf(ninput score of student %d:n,i+1); printf(NO.: ); scanf(%s,stui.num); printf(name: ); scanf(%s,); for (j=0;j3;j+) printf(score %d:,j+1); scanf(%d,&stui.scorej); printf(n);print(stu);return 0;void print(struct student stu6)int i,j;printf(n NO. name score1 score2 score3n);for (i=0;iN;i+)printf(%5s%10s,stui.num,);for (j=0;j3;j+)printf(%9d,stui.scorej);printf(n);结果:input score of student 1:NO.: 110name: Liuscore 1:34score 2:56score 3:67input score of student 2:NO.: 120name: Wangscore 1:88score 2:87score 3:95input score of student 3:NO.: 130name: Mingscore 1:83score 2:89score 3:97input score of student 4:NO.: 140name: Zhuscore 1:46score 2:35score 3:68input score of student 5:NO.: 150name: Weiscore 1:56score 2:86score 3:93 NO. name sc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论