计算机对口单招c语言程序整理.doc

上传人:wux****ua 文档编号:9043713 上传时间:2020-04-02 格式:DOC 页数:32 大小:60KB
返回 下载 相关 举报
计算机对口单招c语言程序整理.doc_第1页
第1页 / 共32页
计算机对口单招c语言程序整理.doc_第2页
第2页 / 共32页
计算机对口单招c语言程序整理.doc_第3页
第3页 / 共32页
点击查看更多>>
资源描述
计算机对口单招c语言程序整理1.输出1-100之间的所有的素数#include main()int i,n;n=2;while(+n100) i=1;while (+in)if(n%i=0)break;if(i=n)printf(%dn,n);2. 输出100-200之间的不能被3整除的数#include main()int n;for (n=100;n=200;n+) if(n%3=0)continue;printf(%dn,n);3. 打印九九表#include main() int i,j;for (i=1;i10;i+)for (i=1;i10;i+) for(j=1;j10;j+)printf(%4d,i*j);printf(n);getch();4. 打印九九乘法表#include main() int i,j;for (i=1;i10;i+) for(j=1;j10;j+)printf(%d*%d=%2d ,i,j,i*j);printf(n);getch();5.求不同半径的圆柱体的体积(只计算体积在100以下的圆柱体)#include #define PI 3.1415926main()int r;float v,h;printf(请输入圆柱体的高:);scanf(%f,&h);for (r=1;r100.0) break;printf(半径等于%d,体积等于%.2fn,r,v);printf(此时r=%dn,r);6.输出50100之间所有不能被7整除的数#include main()int num;for(num=50;num=100;num+)if (num%7!=0)continue;printf(%dn,num);7.判断一个数是否为素数#include #include main()int num,j,tag=1,m;printf(请输入一个自然数:);scanf(%d,&num);m=sqrt(num);for(j=2;j=m;j+)if(num%j=0)tag=0;break;if(tag=0)printf(%d 是素数n,num);elseprintf(%d 不是素数n,num);8. 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?main()int i,j,k;printf(n);for(i=1;i5;i+)*以下为三重循环*/ for(j=1;j5;j+) for (k=1;k2)/*如果是闰年且月份大于2,总天数应该加一天*/sum+;printf(It is the %dth day.,sum);10. 输入三个整数x,y,z,请把这三个数由小到大输出。main()int x,y,z,t;scanf(%d%d%d,&x,&y,&z);if (xy)t=x;x=y;y=t; /*交换x,y的值*/if(xz)t=z;z=x;x=t;/*交换x,z的值*/if(yz)t=y;y=z;z=t;/*交换z,y的值*/printf(small to big: %d %d %dn,x,y,z);11. 斐波那契数列()main()long f1,f2;int i;f1=f2=1;for(i=1;i=20;i+) printf(%12ld %12ld,f1,f2); if(i%2=0) printf(n);/*控制输出,每行四个*/ f1=f1+f2; /*前两个月加起来赋值给第三个月*/ f2=f1+f2; /*前两个月加起来赋值给第三个月*/ 12. 判断101-200之间有多少个素数,并输出所有素数。#include math.hmain() int m,i,k,h=0,leap=1; printf(n); for(m=101;m=200;m+) k=sqrt(m+1); for(i=2;i=k;i+) if(m%i=0) leap=0;break; if(leap) printf(%-4d,m);h+; if(h%10=0) printf(n); leap=1; printf(nThe total is %d,h);13. 打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数 本身。例如:153是一个“水仙花数”,因为153=1的三次方5的三次方3的三次方。main()int i,j,k,n;printf(water flowernumber is:); for(n=100;n=a&c=A&c=0&c=9) digit+; else others+;printf(all in all:char=%d space=%d digit=%d others=%dn,letters,space,digit,others);16. 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13.求出这个数列的前20项之和。main()int n,t,number=20;float a=2,b=1,s=0;for(n=1;n=number;n+) s=s+a/b; t=a;a=a+b;b=t;/*这部分是程序的关键,请读者猜猜t的作用*/ printf(sum is %9.6fn,s);17. 求1+2!+3!+.+20!的和main()float n,s=0,t=1;for(n=1;n=20;n+) t*=n; s+=t; printf(1+2!+3!.+20!=%en,s);18. 打印出杨辉三角形(要求打印出10行如下图) 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10105 1 main()int i,j;int a1010;printf(n);for(i=0;i10;i+) ai0=1; aii=1;for(i=2;i10;i+) for(j=1;ji;j+) aij=ai-1j-1+ai-1j;for(i=0;i10;i+) for(j=0;j=i;j+) printf(%5d,aij); printf(n); 19.找出10个学生中成绩低于平均成绩的人数并输出#include main()int i,count=0;float scores10,ave=0;for(i=0;i10;i+)scanf(%f,&scoresi);ave+=scoresi;ave/=10;for (i=0;i10;i+)if (scoresiave)count+;printf(%d,count);20.输入5个学生的3门课程成绩,求每个学生的平均成绩和每门的平均成绩#include main()float scores53,avestu5,avecourse3;int i,j;printf(input scores:n);for(i=0;i5;i+)for(j=0;j3;j+)scanf(%f,&scoresij);for(i=0;i5;i+) avestui=0; for(j=0;j3;j+) avestui+=scoresij; avestui/=3;for(i=0;i3;i+) avecoursei=0; for(j=0;j5;j+) avecoursei+=scoresij; avecoursei/=5;printf(every average of student:n);for(i=0;i5;i+)printf(%8.2f,avestui);printf(every average of course:n);for(i=0;i3;i+)printf(%8.2f,avecoursei);21.求出一组10个数据中的最大值和最小值#include main()int a10,i,max,min;for(i=0;i10;i+)scanf(%d,&ai);max=a0;min=a0;for(i=1;imax)max=ai;if(aimin)min=ai;printf(max=%d,min=%d,max,min);22.有一行文字不超过20个字符,统计其中大写字母,小写字母,数字字符和各类标点符号的个数#include #include main()char ch20;int a4,i,n;gets(ch);n=strlen(ch);for(i=0;i=A&chi=a&chi=0&chi9)a2+;else a3+;printf(%d ,ai);23.将20个学生的体重分成若干组,统计其中各组人数,假设体重范围48-87千克,且分为8各组。#include main()Char a20=48,65,49,75,52,61,49,84,79,56,57,54,65,65,68,68,71,70,80,85;int s8,i,k;for(i=0;i8;i+)si=0;for(i=0;i20;i+)k=(ai-48)/5;sk+;for(i=0;i8;i+)printf(%d%d %dt,(48+i*5),(52+i*5),si);24.顺序比较法排序将六个数3,9,4,6,7,1按由小到大的顺序排列起来#include main()int a6=3,9,4,6,7,1;int i,j,t;for(i=0;i=4;i+)for(j=i+1;jaj)t=ai;ai=aj;aj=t;for(i=0;i=5;i+)printf(%d,ai);25.选择法排序将六个数3,9,4,6,7,1按由小到大的顺序排列起来#include main()int a6=3,9,4,6,7,1;int i,j,t,p;for(i=0;i=4;i+)p=i;for(j=i+1;jaj)p=j;if (p!=i)t=ai;ai=ap;ap=t;for(i=0;i=5;i+)printf(%d,ai);26.冒泡法排序将六个数3,9,4,6,7,1按由小到大的顺序排列起来#include main()int a6=3,9,4,6,7,1;int i,j,t,p;for(i=0;i=4;i+)for(j=0;jaj+1)t=aj;aj=aj+1;aj+1=t;for(i=0;i=5;i+)printf(%d,ai);27.插入法排序将六个数3,9,4,6,7,1按由小到大的顺序排列起来#include main()int a6=3,9,4,6,7,1;int i,j,k,x;for(i=1;i=5;i+)x=ai;for(j=0;j=i-1;j+)if(x=j;k-)ak+1=ak;aj=x;for(i=0;i=5;i+)printf(%d,ai);28.顺序查找从键盘输入10个数,再输入x,判断是否是,是就输出位置#include main()int a10;int x,i;for(i=0;i10;i+)scanf(%d,&ai);scanf(%d,&x);for(i=0;i10;i+)if(ai=x)printf(%d,i);29.对半查找有一个数组有十个元素,已按照升序排序,今输入一个数x,要求查找是否为其中的数,对各种情况输出相应的信息,请用对半查找#include main()int a10=10,11,12,13,14,15,16,17,18,19;int low=0,high=9,mid,x,f=0;scanf(%d,&x);while (f=0&low=high)mid=(low+high)/2;if(x=amid)f=1;else if(xamid)high=mid-1;else low=mid+1;if(f=0)printf(Nofind);elseprintf(a%d=%d,mid,amid);30.有三人的四门成绩分别按人的科目求平均成绩,并输出包括平均成绩的二维数组成绩表#include main()int i,j;float s45;for(i=0;i3;i+)for(j=0;j4;j+)scanf(%f,&sij);for(i=0;i3;i+)si4=0;for(j=0;j4;j+)si4+=sij;si4/=4.0;for(j=0;j4;j+)s3j=0;for(i=0;i3;i+)s3j+=sij;s3j/=3.0;s34=0;for(i=0;i4;i+)s34+=s3i; s34/=4.0;for(i=0;i4;i+) for(j=0;j5;j+)printf(%2f,sij); printf(n);31.最大公约数和最小公倍数main()int r,m,n,temp,gec,lcm; printf(“please input m,n:”); scanf(“%d,%d“,&m,&n); lcm=m; while(m%n!=0) r=m%n; m=n; n=r; gce=n; lcm=lcm/gcd; printf(“gcd=%d,lcm=%d”,gcd,lcm);32.输出19002000年中所有的润年。每输出三个年号换一行main()int i,n=; printf(“打印润年”); for (i=1990;i =2000;i+) if (i%4=0&i%100!=0|i%400=0) n+; if (n%3=0)printf(“n”); printf(“%d”,i); 33.输入两个整数,按先大后小的的顺序输出 main() int *p1,*p2,*p,a,b;scanf(“%d,%d”,&a,&b);p1=&a;p2=&b;if(ab) p=p1;p1=p2;p2=p;printf(“%d,%d”,a,b);printf(“max=%d,min=%d“,*p1,*p2);34.给出一百分制成绩,要求输出成绩等级A,B,C,D,E。90分以上为A,8089分为B,7079分为C,6069分为D,60分以下为E。#include main()float a;int b;printf(请输入成绩);scanf(%f,&a);b=a/10;switch (b)case 1:case 2:case 3:case 4:case 5:printf(En);break;case 6:printf(Dn);break;case 7:printf(Cn);break;case 8:printf(Bn);break;case 9:case 10:printf(An);break;35.从键盘输入两个整数,从小到大输出#include main()int a,b;printf(请输入两个整数:);scanf(%d,%d,&a,&b);if (ab)printf(%d,%d,b,a);elseprintf(%d,%d,a,b);36. 从键盘输入两个整数,输出其中的最大者#include main()int a,b;printf(请输入两个整数:);scanf(%d,%d,&a,&b);if (ab)printf(%d,a);elseprintf(%d,b);37. 从键盘上输入a,b,c 三个整数,输出其中的最小者#include main()int a,b,c,d;printf(请输入三个整数:);scanf(%d,%d,%d,&a,&b,&c);d=a;if (db)d=b;if (dc)d=c;printf(%d,d);38.利用if嵌套完成下列程序Y= #include main()int x,y;printf(请输入x的值);scanf(%d,&x);if(x0) y=1;elsey=0;printf(%d,y);39.计算s1+2+100。(累加型)(方法一)#include #include void main()int i=1,sum=0; clrscr(); while(i=100) sum+=i; i+; printf(1+2+3+.+100=%dn,sum);(方法二)#include #include void main()int i,sum;clrscr(); for(i=1,sum=0;i=100;i+) sum+=i; printf(1+2+3+.+100=%dn,sum);40.请输入数n,计算n!。(连乘型)(方法一)#include #include void main()int i=1,n; long fac=1; clrscr(); scanf(%d,&n); while(i=n) fac*=i; i+; printf(%d!=%ldn,n,fac);(方法二)#include #include void main()int i,n; long fac; clrscr(); scanf(%d,&n); for(i=1,fac=1;i=n;i+) fac*=i; printf(%d!=%ldn,n,fac);41.输出所有的水仙花数。(范围型)(方法一)#include #include void main()int n=100,a,b,c; clrscr(); while(n=999) a=n/100; b=n/10%10; c=n%10; if(a*a*a+b*b*b+c*c*c=n) printf(%6d,n); n+; printf(n);(方法二)#include #include void main()int n,a,b,c; clrscr(); for(n=100;n=999;n+) a=n/100; b=n/10%10; c=n%10; if(a*a*a+b*b*b+c*c*c=n) printf(%6d,n); printf(n);42.判断n是否为素数。(反向思维型)(方法一)#include #include void main()int n,i=2; clrscr(); scanf(%d,&n); while(i=n) printf(%d is a prime numbern,n); else printf(%d is not a prime numbern,n);(方法二)#include #include void main()int n,i; clrscr(); scanf(%d,&n); for(i=2;i=n) printf(%d is a prime numbern,n); else printf(%d is not a prime numbern,n);43.输出100-200之间能同时被3和5整除的数。(用continue语句)#include #include void main()int i,k; clrscr();for(i=100,k=0;i=200;i+)if(i%3!=0 | i%5!=0) continue; else if(k%5=0) printf(n); k+; printf(%6d,i);44.输入任意n个数,输出其中最大数和最小数,并输出它们在序列中的位置。#include#include void main() int i,n,max_location=1,min_location=1; float x,max,min; clrscr(); printf(input n:); scanf(%d,&n); /*输入数的个数*/printf(input the first number :); scanf(%f,&x); /*输入第一个数*/ max=min=x; /*假设第一个数既是最大数,也是最小数*/ for(i=2;imax) max=x; max_location=i; /*如果xmax,则赋给max,并记下位置*/ if(xmin) min=x; min_location=i; /*如果xmin,则赋给mix,并记下位置*/ printf(nmax=%6.2f,max_location=%dn,max,max_location);printf(nmin=%6.2f,min_location=%dn,min,min_location);45.输出以下图形: * * * * * *#include#include void main()int i,j; clrscr(); for(i=1;i=4;i+) for(j=1;j=4-i;j+) printf( ); for(j=1;j=1;i-) for(j=1;j=4-i;j+) printf( ); for(j=1;j=2*i-1;j+) printf(*); printf(n); 46.输出以下图形: 1 123 12345 1234567123456789 1234567 12345 123 1#include#include void main()int i,j; clrscr(); for(i=1;i=5;i+) for(j=1;j=5-i;j+) printf( ); for(j=1;j=1;i-) for(j=1;j=5-i;j+) printf( ); for(j=1;j=2*i-1;j+) printf(%d,j); printf(n); 47.输出以下图形: 1 121 12321 1234321123454321 1234321 12321 121 1#include#include void main()int i,j; clrscr(); for(i=1;i=5;i+) for(j=1;j=5-i;j+) printf( ); for(j=1;j=1;j-) printf(%d,j); printf(n); for(i=4;i=1;i-) for(j=1;j=5-i;j+) printf( ); for(j=1;j=1;j-) printf(%d,j); printf(n); 48. 随机产生10个10,100之间的随机正整数输出。方法一:#include stdio.h#include time.hvoid main()int i,x;srand(unsigned)time(NULL);printf(n);for(i=1;i=10;i+)x=rand()%91+10;printf(%dt,x); 方法二:#include stdio.h#include time.hvoid main()int i,x;randomize();printf(n);for(i=1;i=10;i+)x=rand()%91+10;printf(%dt,x); 49.从外部输入三角形的三个边,求三角形面积,要求结果保留两位数。#include stdio.h#include math.hmain()float a,b,c,p,s;scanf(%f,%f,%f,&a,&b,&c);p=(a+b+c)/2;s=sqrt(p*(p-a)*(p-b)*(p-c);printf(s=%f,s);50. 随机产生两个100以内的正整数,求这两个数的和。#include stdio.h#include stdlib.h#include time.hvoid main()int m,n,s;srand(unsigned)time(NULL);m=rand()%99+1;n=rand()%99+1;s=m+n;printf(%d+%d=%d,m,n,s); 51. 利用双重循环结构打印图形9 8 7 6 5 4 32 10#include stdio.hvoid main()int m=9; int i,j; for(i=1;i=4;i+) for(j=1;j=5-i;j+) printf(%dt,m); m=m-1; printf(n); 52. 编写程序,打印出将一元人民币换成1、2、5角零钱的各种换法。#include stdio.hvoid main()int n=0; int x,y,z; for(x=0;x=2;x+) for(y=0;y=5;y+) for(z=0;z=2; i-) x=2*(x+1); printf(“The number of peaches is :%d”,x);
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!