天津理工大学C语言上机题库.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 天津 理工大学 语言 上机 题库
- 资源描述:
-
(完整版)天津理工大学C语言上机题库 1.键盘上输入n个数,输出最大值最小值 #include〈stdio.h〉 void main() { int array[50]; int i,n; printf(”please input numbers , input '0' to stop\n"); for(i=0;i<n;i++) { scanf(”%d”,&array[i]); } for(i=0;i〈n;i++) if(array[0]>=array[i+1]) array[0]=array[i+1]; printf("the min number is %d\n",array[0]); for(n=0;n<=i-2;n++) if(array[0]〈=array[i+1]) array[0]=array[i+1]; printf("the max number is %d\n”,array[0]); } 2。求一个3位数abc使得a的阶乘+b的阶乘+c的阶乘=abc #include<stdio.h> void main() { int jiecheng(int a); int a,b,c; for(a=1;a〈=9;a++) for(b=1;b<=9;b++) for(c=1;c〈=9;c++) if(jiecheng(a)+jiecheng(b)+jiecheng(c)==a*100+b*10+c) printf("a is %d,b is %d ,c is %d \n",a,b,c); } int jiecheng(int a) { int i,s=1; for(i=1;i<=a;i++) s=s*i; return s; } //输出145 3.题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13。。.求出这个数列的前20项之和。 #include<stdio.h〉 void main() { int i; float m=1,n=1,t,s=0; for(i=1;i<=20;i++) /*就是进行二十次循环,求个和*/ { t=m+n; s=s+t/n; m=n; n=t; } printf("%9。6f\n",s); } 4.输入整数N,求N的阶乘 #include〈stdio。h〉 void main() { int i,j=1,n; scanf(”%d",&n); for(i=1;i〈=n;i++) j=j*i; printf("%d\n”,j); } /*注意在实际打的时候,i,j要定义为float型,其初值比都是1*/ 5。输入一串正整数,倒序输出 #include〈stdio。h〉 void main() { int a[10],i; for(i=0;i〈=9;i++) scanf("%d",&a[i]); for(i=9;i>=0;i——) printf(”%d\n”,a[i]); } 6. 求10~1000之间所有数字之和为5的整数的个数 #include<stdio。h〉 int main() { int i; int counter=0; for(i=100; i<1000; ++i) if(i/100+(i/10)%10 + i%10 == 5) ++counter; printf("%d\n”,counter); return 0; } 7。 输入字符串打印除小写,元音,字母之外的。用数组 #include<stdio.h> void main() { int i,j; char s[20]; /*字符串长度(实际上是字符总数)不超过20*/ for(i=0;i〈20;i++) /*从s[0]开始,逐个字符输*/ scanf(”%c",&s[i]); for(j=0;j〈20;j++) { if(s[j]!='a’&&s[j]!='e’&&s[j]!=’i'&&s[j]!='o'&&s[j]!=’u’) printf("%c”,s[j]); /*不换行,各字符在一行输出*/ } } 8. 从键盘输入10个整数,计算其中偶数的和以及偶数平均数,(用小数表示) #include<stdio。h> void main() { int a[10]; int i,s=0; float m; for(i=0;i〈=9;i++) { scanf("%d”,&a[i]); if(a[i]%2==0) { printf("%d%d\n",a[i],i); s=s+a[i]; m=(float)(s)/10; } } printf("%d%f\n",s,m); } 9。 从键盘输入10个整数,计算其中奇数之和以及奇数的平均数,(用小数表示) #include<stdio.h〉 void main() { int a[10],i,sum=0; float m; for(i=0;i〈=9;i++) { scanf(”%d”,&a[i]); if(a[i]%2!=0) { sum=sum+a[i]; m=(float)(sum)/10; } } printf(”%f\n",m); } 10。 循环语句求Sn=a+aa+aaa+…+aaa…a(n个a)的值其中a是一个数字n由键盘输入 #include 〈stdio.h〉 main() { double n1,x,t,t1;int cx,i; scanf("%lf,%d”,&n1,&cx); t=n1; t1=n1; for(i=1;i<cx;i++) {t=t*10+n1; t1+=t;} printf("%0。0lf",t1); } 11.求1!+2!+3!+…+n!(当 n=10时 得4037913) #include〈stdio.h〉 void main() { int i,j=1,n,sum=0; scanf("%d",&n); for(i=1;i〈=n;i++) { j=j*i; sum=sum+j; } printf(”%d\n",sum); } 12.1*1+2*2+…。+n*n<=1000的最大数n #include〈stdio.h> #include〈math.h〉 void main() { int i,j=1,k,sum=0; for(i=1;sum<=1000;j++) { i=j*j; sum=sum+i; } k=sqrt(i)-1; printf("%d\n",k); } 13。 0~1000同时被7和13整除的数 #include〈stdio。h> void main() { int n; for(n=1;n〈=1000;n++) { if(n%7==0&&n%13==0) printf(”%d\n”,n); } } 14.1/1+1/2+1/3+…+1/20 #include<stdio.h> void main() { int i,j=1,n; float sum=0; n=1+2*(20-1); for(i=1;i〈=n;) { sum=sum+j/(float)(i); /*变i或变j都一样,运算后自然向高级靠拢,不能都变!*/ i=i+2; } printf("%f\n",sum); } 15。sum=1-1/3+1/5-1/7+…+1/n (1/n<0。0001) #include<stdio.h〉 #include<math.h〉 void main() { int i,j=1; float k=1,sum=0; for(i=1;fabs((float)(j)/i)>1e—4;) { sum=sum+(float)(j)/i; if(i〉0) { i=i+2; i=—i; } else { i=i—2; i=-i; } } printf("%f\n”,sum); } 16。求e用e=1+1/1!+1/2!+…+1/n!(1/n!〈10的-6次方) #include<stdio.h〉 void main() { int i,j=1,n=1; float sum=1; for(i=1;((float)(i)/n)>1e—6;j++) { n=n*j; sum=sum+(float)(i)/n; } printf(”%f\n”,sum); } 17.用л∕4约等于1-1/3+1/5-1/7+…直到某一项的绝对值小于10的—6次方为止 #include〈stdio。h> #include〈math.h> void main() { float j=1,pi=0,n=1。0; /*pi就是∏*/ int i=1; while(fabs(j)>1e—6) /*最后一项绝对值大于10的—6次方,用到了数学函数*/ { pi=pi+j; i=—i; n=n+2; j=i/n; } pi=pi*4; printf(”%10.6f\n”,pi); /*规定长为十位,有六位小数*/ } 18.输出1~10的阶乘,分行打出 #include〈stdio。h〉 void main() { int i,j=1; for(i=1;i〈=10;i++) { j=j*i; printf(”%d\n”,j); } } 19.输入正数,判断是否是素数 #include〈stdio。h> void main() { int i,m; scanf(”%d”,&m); for(i=2;i<=m;i++) if(m%i==0)break; /*这句话很关键*/ if(i<m) printf("%d不是一个素数",m); else printf(”%d是一个素数",m); } 20。1+(1+2)+(1+2+3)+…+(1+2+…+n)输入n=20,得1540 #include〈stdio。h> void main() { int i,n,temp=0,sum=0; scanf("%d”,&n); for(i=1;i〈=n;i++) { temp=temp+i; sum=sum+temp; } printf("%d\n”,sum); } 21.输入年月,输出该月有多少天. #include〈stdio。h> void main() { int a,c; scanf("%d,%d”,&a,&c); if(((a%4==0)&&(a%100!=0))||(a%400==0)) { if(c==2) printf(”29\n"); } else { if(c==2) printf("28\n”); } switch(c) { case 1: case 3: case 5: case 7: case 8: case 10: case 12:printf(”%d\n”,31);break; case 4: case 6: case 9: case 11:printf(”%d\n",30);break; } } 22。 编一个计算器,可以计算“+”“-”“*”“/” #include 〈stdio。h> void main() { float a,b; char f; scanf("%f",&a); f=getchar(); scanf("%f”,&b); switch(f) { case'+’:printf("a+b=%f”,a+b);break; case'-’:printf("a—b=%f",a—b);break; case’*':printf("a*b=%f”,a*b);break; case'/’:printf("a/b=%f”,a/b);break; default:printf(”input error!\n”); } } 23。求555555的约数中最大的3位数:777 #include〈stdio。h> void main() { long j=555555; int i; for(i=999;i>=100;i-—) if(j%i==0) { printf("%d\n",i); break; } } 24. 韩信点兵:士兵5人一行,末行一人;6人一行,末行5人;7人一行,末行4人,11人一行,末行10人。求士兵人数〉11:2111 #include<stdio.h> void main() { int i; for(i=11;i〈=3000;i++) { if(i%5==1&&i%6==5&&i%7==4&&i%11==10) printf("%d\n",i); } } 25. 爱因斯坦阶梯问题(119) #include<stdio。h〉 void main() { int i; for(i=1;i〈=200;i++) { if(i%2==1&&i%3==2&&i%5==4&&i%6==5&&i%7==0) printf(”%d\n",i); } } 26.输入m,n求其最小公倍数 #include〈stdio。h〉 void main() { int m,n,max,min,i; printf(”请输入两个数(逗号隔开):"); scanf(”%d,%d”,&m,&n); if(m>n) { i=m; m=n; n=i; } for(i=m;i〉0;i--) { if(m%i==0 && n%i==0) { max=i; min=m*n/max; break; } } printf("这两个数的最小公倍数是%d\n",min); } 27输入m,n求其最大公约数 #include〈stdio。h> void main() { int m,n,max,i; printf(”请输入两个数(逗号隔开):”); scanf("%d,%d",&m,&n); if(m〉n) { i=m; m=n; n=i; } for(i=m;i〉0;i——) { if(m%i==0 && n%i==0) { max=i; break; } } printf(”这两个数的最大公约数是%d\n",max); } 1.输入两个正整数,m和n,求其最大公约数和最小公倍数。 #include〈stdio。h> void main() { int m,n,max,min,i; printf("请输入两个数(逗号隔开):"); scanf("%d,%d”,&m,&n); if(m>n) { i=m; m=n; n=i; } for(i=m;i>0;i——) { if(m%i==0 && n%i==0) { max=i; min=m*n/max; break; } } printf("这两个数的最大公约数是%d,最小公倍数是%d\n",max,min); } 28输入一行字符,分别统计出其中字母、空格、数字和其他字符的个数。 #include〈stdio.h> void main() { char c; int letters=0,space=0,digit=0,other=0; printf("请输入一行字符:\n"); while((c=getchar())!=’\n') { if(c〉='a'&&c<=’z’||c>=’A’&&c〈=’Z’) letters++; else if(c==’ ') space++; else if(c〉='0’&&c〈='9') digit++; else other++; } printf(”字母数:%d\n 空格数:%d\n 数字数:%d\n 其他字符数:%d\n”,letters,space,digit,other); } 29. 输入十个数,将其排序 #include〈stdio。h〉 void main() { int i,j,k,a[10]; printf("Please input 10 numbers:"); for(i=0;i<10;i++) scanf("%d”,&a[i]); for(j=0;j〈9;j++) for(i=0;i〈9—j;i++) { if(a[i]〉a[i+1]) { k=a[i]; a[i]=a[i+1]; a[i+1]=k; } } for(i=0;i〈10;i++) printf(”%d\n",a[i]); } 30。 输出100~200之间的素数 #include<stdio.h〉 int judge(int a) { int j=1,i; for(i=2;i<=a—1;i++) { if(a%i==0) j=0; } return(j); } void main() { int b,c; printf("The prime numbers in 100~200 are:\n”); for(b=0;b<10;b++) for(c=0;c<10;c++) { if(judge(100+10*b+c)) printf("%d ",100+10*b+c); } } 31.由36块砖,男人一次可以搬4块,女人一次可以搬3块,2个小孩一次可以搬一块,问男人女人小孩各需多少人可以一次性将砖搬完.(key :man3 woman 3 child 30) #include<stdio.h〉 void main() { int a,b,c,d; for(a=0;a<=9;a++) for(b=0;b〈=12;b++) for(c=0;c〈=72;c++) { if(4*a+3*b+0。5*c==36&&a+b+c==36) printf("It need %d men\nIt need %d women\nIt need %d children\n",a,b,c); } } 计算100元可以分成几个一元,两元,五元相加的总和(可以只由一种面值组成) #include〈stdio。h〉 void main() { int a,b,c,d=0; for(a=0;a<=100;a++) for(b=0;b〈=50;b++) for(c=0;c〈=20;c++) { if(a+2*b+5*c==100) d++; } printf(”There are %d kinds of possible",d); } Word 资料展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




天津理工大学C语言上机题库.doc



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/2334320.html