版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、c 语言题库(编程)河南工业大学 河工大 c 语言期末考试题库二、编程题1.有一函数:当 x0 时,y=1。编一程序,输入 x 的值,输出 y 的值。#include void main()int x,y;printf(请输入 x:);scanf(%d,&x); if(x0)y=-1;else if(x=0) y=0;elsey=1;printf(y=%d,y);2. 输入三个实数,将这三个数按由大到小的顺序排列,并输出这三个数。#include void main()int a,b,c,temp=0; printf(please input a,b,c:); scanf(%d %d %d,&
2、a,&b,&c); if(ab) temp=a;a=b;b=temp; if(ac)temp=a;a=c;c=temp; if(bb&ac)max=a; if(ba&bc) max=b; if(ca&cb) max=c;printf(最大值是: %dn,max);4. 编程求圆面积、圆周长。要求圆半径由键盘输入,输出时要求有文字说明,取小数点后两位数字。#include #define pi 3.1416 main()float r,l,s;printf(请输入半径:n); scanf(%f,&r);l=2*pi*r; s=pi*r*r;printf(l=%7.2fns=%7.2fn,l,s)
3、;5. 【有点难】 有分段函数:当 x10 时,y=sqrt(x)。编一程序,输入 x 的值,输出 y 的值。6. 编写程序,判断某一年是否是闰年。(闰年的条件是:能被 4 整除, 但是不能被 100 整除,或者可以被 400 整除。)#include int main()int year,leap; scanf(%d,&year); if (year%4=0)if(year%100=0)if(year%400=0) leap=1;elseleap=0;elseleap=1;elseleap=0; if (leap)printf(%d is ,year); elseprintf(%d is n
4、ot ,year); printf(a leap year.n); return 0;7. 输入一个华氏温度,要求输出摄氏温度,输出时要求有文字说明,取小数点后两位数字。公式为 c=5/9(f-32) #includeint main()float f,c;printf(输入华氏温度:n); scanf(%f,&f);c=(f-32)/1.8;printf(对应的摄氏温度是:%5.2fn,c);8.有一函数:当 x1 时,y=|x|;当 1=x=10 时, y=3x+11。编一程序,输入 x 的值,输出 y 的值。9. 输入三个实数,将这三个数按由小到大的顺序排列,并输出这三个数。#inclu
5、de void main()int a,b,c,temp=0; printf(please input a,b,c:); scanf(%d %d %d,&a,&b,&c); if(ab) temp=a;a=b;b=temp; if(ac)temp=a;a=c;c=temp; if(bc)temp=b;b=c;c=temp;printf(从小到大为:%d,%d,%dn,a,b,c);10. 输入一个字符,判断它是否是小写字母,如果是,将它转换成大写字母;如果不是,不转换。然后输出最后得到的字符。#include#include void main()char a; scanf(%c,&a); i
6、f(islower(a) a=a-32;printf(%cn,a);11. 编程求圆柱体积,圆柱表面积。要求圆半径,圆柱高由键盘输入, 输出时要求有文字说明,取小数点后两位数字。#include int main(int argc, char *argv)float r,h,l,s,sq,vq,vz; float pi=3.1415926;printf(请输入圆的半径 r,圆柱高 h:); scanf(%f,%f,&r,&h);l=2*pi*r; s=pi*r*r; sq=4*pi*r*r; vq=4.0/3.0*pi*r*r; vz=pi*r*r*h;printf( 圆 周 长 为 :l=%
7、6.2fn,l); printf( 圆 面 积 为 :s=%6.2fn,s); printf(圆球表面积为:sq=%6.2fn,sq); printf(圆球体积为:vq=%6.2fn,vq); printf(圆柱体积为:vz=%6.2fn,vz); system(pause);return 0;12.有分段函数:当 x5 时,y=2x-10.编一程序,输入 x 的值,输出 y 的值。13. 有三个整数 a,b,c,由键盘输入,输出其中最小者。#include int main()inta,b,c,temp,min; printf(请输入三个整数:); scanf(%d,%d,%d,&a,&b,
8、&c); temp=(ab)? a:b; min=(tempc)? temp:c;printf(三个数中最小数是%dn,min); return 0;14. 输入一个字符,判断它是否是大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。#include void main()char c;printf(input ch:); c=getchar();if( c=a&c=z)c=c+32;printf(%c,c);else printf(%c,c);15. 输入三角形的三边长,求三角形面积。求三角形面积的公式为area=sqrt(s(s-a)(s-b)(s-c), 其
9、 中 s=(a+b+c)/2 #include#include void main()float a,b,c,s,area; printf(依次输入 a,b,c:);scanf(%f%f%f,&a,&b,&c); s=(float)0.5*(a+b+c);area = (float)sqrt(s*(s-a)*(s-b)*(s-c); printf(面积为:%7.2f,area);16.编程求 2!+4!+6!+8!+10!的值,并输出结果。#includeint main()int n=1,sum=0,j,m=1,i; for(i=1;i=5;i+)m=1;for(j=1;j=2*i;j+)
10、m=m*j;sum=sum+m;printf(sum=%dn,sum); return 0;17. 猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。到第 10 天早上想吃时就剩一个桃子了。求第一天共摘了多少个桃子。#includevoid main()int day; static x1=1; day=10;while(day0)x1=(x1+1)*2;day-;printf(桃子总数=%dn,x1);18. 输出所有的“水仙花数”,所谓“水仙花数”是指一个 3 位数,其各位数
11、字立方和等于该数本身。#include int main()int i,j,k,n;printf(水仙花数是); 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;19. 编程求 1100 之间的所有素数,并输出结果。#include int main(void)int a100,i,j;for (i = 0; i100; i+) ai=i+1; for (i=1; i100; i+)for (j=i+1; j100; j+) if (a
12、i&aj%ai=0) aj=0;for (i = 1; i100; i+)if (ai) printf(%dt,ai); return 0;20.编程求 1!+3!+5!+7!+9!的值,并输出结果。#includeint main()int n=1,sum=0,j,m=1,i; for(i=1;i=5;i+)m=1;for(j=1;j=2*i-1;j+) m=m*j;sum=sum+m;printf(sum=%dn,sum); return 0;21.用 pi/41-1/3+1/5-1/7+.公式求 pi 的近似值的绝,直到某一项对值小于 10 的-6 次方为止。#include #incl
13、ude int main()int sign=1;double pi=0.0,n=1.0,term=1.0; while(fabs(term)=1e-6)pi=pi+term; n=n+2;sign=-sign; term=sign/n;pi=pi*4; printf(pi=%10.8fn,pi); return 0;22. 一个球从 100m 高度自由落下,每次落地后又反跳回原高度的一半,再落下,再反弹。求它在第 10 次落地时共经过多少米? #include stdio.h#include stdio.h main()float sn=100.0,hn=sn/2; int n; for(n
14、=2;n=10;n+)sn=sn+2*hn;/*第 n 次落地时共经过的米数*/hn=hn/2; /*第 n 次反跳高度*/printf(the total of road is %fn,sn); getch();23. 输入两个正整数 m 和 n,求其最大公约数和最小公倍数。#include int main()intp,r,n,m,temp;printf(请输入两个正整数 n,m:);scanf(%d%d,&n,&m); if (nm)temp=n; n=m; m=temp;p=n*m; while(m!=0)r=n%m; n=m; m=r;printf(它们的最大公约数为:%dn,n);
15、 printf(它们的最小公约数为:%dn,p/n); return 0;24.利用循环,编程求 1!+2!+3!+10!的值,并输出结果。main()int i,j,n,sum=0; for(i=1;i=10;i+) n=1;for(j=1;j=i;j+) n*=j;sum+=n;printf(%dn,sum);25.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13.,求出这个数列前 20 项之和。#include main() int i,x,y,a; float sum=0; x=2;y=1;for(i=1;i20;i+)sum+=(float)(x)/y;/ prin
16、tf(%d/%dn,x,y); a=x;x=x+y; y=a;printf(%7.5fn,sum);26. 求 fibonacci 数列前 40 个数。这个数列有以下特点:第 1 和第 2个数为 1,从第 3 个数开始,该数是其前面两个数之和。#include #define n 4long fibonacci(int n)if (0=n|1=n) return 1; elsereturn fibonacci(n-1)+fibonacci(n-2);int main(void)int i;printf(fibonacci 数列的前 40 项n); for (i=0; i40;)printf(%
17、-10ld,fibonacci(i+); if(i%n=0) printf(n);printf(n); return 0;27. 一个数如果恰好等于它的因子之和,这个数就称为完数。例如,6 的因子为 1、2、3,而 6=1+2+3,因此 6 是完数。编程求 1000 以内所有完数。#include void main()int i,j;intsum; for(i=2;i1000;i+)sum=0; for(j=1;ji;j+)if(i%j=0) sum=sum+j; if(sum=i)printf(%d 是完数n,sum);28. 求 s=a+aa+aaa+.+aa.a(n 个 a)之值。其中
18、 a 是一个数字,n 代表 a 的位数。例如:2+22+222+2222+22222(此时 n 为 5),n 由键盘输入。#include int main()inta,n,i=1,sn=0,tn=0; printf(a,n=:);scanf(%d,%d,&a,&n); while(i=n)tn=tn+a; sn=sn+tn; a=a*10;+i;printf(a+aa+aaa+.=%dn,sn); return 0;29. 编程求 100200 之间的所有素数,并输出结果。#include#include int main()int n,k,i,m=0; for(n=101;n=200;n=
19、n+2)k=sqrt(n); for(i=2;i=k+1)printf(%d,n); m=m+1;if(m%10=0)printf(n);printf(n); return 0;30. 输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。#includestdio.h main()char c;int i=0,j=0,k=0,l=0; while(c=getchar()!=n)if(c=65&c=97&c=48&c=57) j+;else if(c=32) k+; else l+;printf(i=%d,j=%d,k=%d,l=%dn,i,j,k,l);31. 将一个数组中的值按
20、逆序重新存放。例如,原来顺序为8,6,4,3,2,0。要求改为 0,2,3,4,6,8。#include#define n 5 int main()int an,i,temp; printf(enter array a:n); for(i=0;in;i+) scanf(%d,&ai); printf(array a:n);for(i=0;in;i+) printf(%4d,ai);for(i=0;in/2;i+)temp=ai; ai=an-i-1;an-i-1=temp;printf(nnow,array a:n); for(i=0;in;i+) printf(%4d,ai); printf
21、(n);return 0;32.编写一个函数,求数列 1+1/2+1/3+1/4+1/5+.1/n,利用主函数调用这个函数并输出结果。#include main()float i=1,sum=0,n; printf(input a number n:); scanf(%f,&n);while(i=n)sum+=1.0/i; i=i+1;printf(%fn,sum);33. 将一个二维数组 int a34的行和列的元素互换,存到另外一个二维数组中。#include int main()int a34=1,2,3,4,5,6,7,8,9,10,11,12;int b43,i,j; printf(
22、arrary a:n); for(i=0;i=2;i+)for(j=0;j=3;j+)printf(%5d,aij);bji=aij;printf(n);printf(array b:n); for(i=0;i=3;i+)for(j=0;j=2;j+) printf(%5d,bij);printf(n);return 0;34. 利用循环输出以下图形*#include int main()int i,j,m;for(i=1;i=5;i+)m=i; for(m=1;mi;m+)printf( ); for(j=0;j=5-i;j+) printf(*);printf(n);return 0;35
23、. 用冒泡排序法对输入的 10 个数进行降序排序,并存入数组中。#include int main()int a10;int i,j,t;printf(input 10 numbers:n); for(i=0;i10;i+)scanf(%d,&ai); printf(n); for(j=0;j9;j+)for(i=0;i9-j;i+) if(aiai+1)t=ai;ai=ai+1;ai+1=t; printf(the sorted numbers:n); for(i=0;i10;i+)printf(%d,ai); printf(n);return 0;36. 有一个 3 乘 4 的矩阵,要求编
24、程序求出其中值最大的那个元素的值,以及其所在的行号和列号。#include int main()int i,j,row=0,colum=0,max;int a34=1,2,3,4,5,6,7,8,9,10,11,12;max=a00; for(i=0;i=2;i+)for(j=0;jmax)max=aij; row=i; colum=j;printf(max=%d,row=%d,colum=%dn,max,row,colum);return 0;37. 用冒泡排序法对输入的 10 个数进行升序排序,并存入数组中。#include int main()int a10;int i,j,t;prin
25、tf(input 10 numbers:n); for(i=0;i10;i+)scanf(%d,&ai); printf(n); for(j=0;j9;j+)for(i=0;iai+1)t=ai;ai=ai+1;ai+1=t; printf(the sorted numbers:n); for(i=0;i10;i+)printf(%d,ai); printf(n);return 0;38. 利用循环,输出以下图形*#include int main()char a5=*,*,*,*,*; int i,j,k;char space= ; for (i=0;i5;i+)printf(n);prin
26、tf(); for(j=1;j=i;j+) printf(%c,space); for (k=0;k5;k+) printf(%c,ak);printf(n); return 0;39. 输出以下杨辉三角形(要求输出 10 行)。11112113311464115101051.#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
27、,aij); printf(n);printf(n); return 0;40. 利用循环输出以下图形*#include int main()int i,j,m;for (i=1;i=4;i+)m=i;for (m=1;m=4-i;m+) printf( );for (j=0;j2*i-1;j+) printf(*);printf(n);return 0;41. 利用循环,输出以下图形* #includeint main()int n,i,j; scanf(%d,&n); for(i=0;i0;j-)printf( ); for(j=0;j25)k%=26;printf(%c,*+k); pr
28、intf(n);return 0;42. 求一个 33 的整型矩阵对角线元素之和。#includemain()int a33,i,j,sum=0;printf(请输入数组元素:(3*3)n); for(i=0;i3;i+)for(j=0;j3;j+) scanf(%d,&aij);printf(n); printf(数组为:n); for(i=0;i3;i+)for(j=0;j3;j+) printf(%4d,aij);printf(n);printf(n);printf(对角线的和:n); for(i=0;i3;i+) for(j=0;j3;j+)if(i=j|2-i=j) sum+=aij
29、;printf(%dn,sum);43. 编写程序,将两个字符串连接起来,不要使用 strcat 函数。int main()char *a=qwet,*b=woei; char c20;int i,j;for( i=0,j=0;*(a+i);i+ ,j+) cj=*(a+i);for(i=0; *(b+i);i+,j+ )cj=*(b+i);cj=0;for( i=0; ci ;i+)printf(%c ,ci);44. 写一个函数,求两个整数中的较大者,用主函数调用这个函数, 并输出结果,两个整数由键盘输入。#includeint maxnum(int a,int b)return(ab?a
30、:b);void main()int a,b,max;printf(enter two numbers!n); scanf(%d%d,&a,&b); max=maxnum(a,b); printf(max:%dn,max);45. 编写两个函数分别求两个整数的最大公约数和最小公倍数,在主函数中调用这两个函数,并输出结果,两个整数由键盘输入。#includeint hcf(int,int);int lcd(int,int,int); void main()int u,v,h,l; scanf(%d,%d,&u,&v); h=hcf(u,v); printf(h.c.f=%dn,h); l=lcd(u,v,h); printf(l.c.d=%d,l);int hcf(int u,int v)int t,r; if(vu)t=u;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《汇编语言基础》课件
- 《公共组织结构》课件
- 下肢静脉血栓术后护理
- 《光探测和光接收机》课件
- 危化品使用存储培训
- 孝老爱亲中队活动
- 头晕与晕厥的护理
- 医疗护士专用
- 拼音第一课知识课件
- 医院文化建设规划方案
- 外线小市政施工方案
- 华为经营管理-华为的研发管理(6版)
- 给高二孩子的一封信
- 2023年国家开放大学《财务报表分析》形成性考核(1-4)试题答案解析
- 体外诊断试剂注册申报资料模板-稳定性研究资料
- 艾宾浩斯遗忘曲线-计划表《遗忘曲线》
- 真核生物基因表达调控
- 综掘机、综掘工艺专项安全风险辨识评估报告
- 核心素养下的小学音乐大单元教学策略
- 社会学课件-阶级和阶层完整版
- 苏教版译林初中英语词汇表(七年级至九年级)
评论
0/150
提交评论