C语言题库编程河南工业大学河工大c语言期末考考试库.doc

上传人:s****u 文档编号:12811974 上传时间:2020-05-26 格式:DOC 页数:27 大小:53.50KB
返回 下载 相关 举报
C语言题库编程河南工业大学河工大c语言期末考考试库.doc_第1页
第1页 / 共27页
C语言题库编程河南工业大学河工大c语言期末考考试库.doc_第2页
第2页 / 共27页
C语言题库编程河南工业大学河工大c语言期末考考试库.doc_第3页
第3页 / 共27页
点击查看更多>>
资源描述
C语言题库(编程)河南工业大学 河工大 c语言期末考试题库二、编程题1.有一函数:当x0时,y=1。编一程序,输入x的值,输出y的值。#includevoid main() int x,y; printf(请输入x:); scanf(%d,&x); if(x0) y=-1; else if(x=0) y=0; else y=1; printf(y=%d,y);2.输入三个实数,将这三个数按由大到小的顺序排列,并输出这三个数。#includevoid 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(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); 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; else leap=0; else leap=1; else leap=0; if (leap) printf(%d is ,year); else printf(%d is not ,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.输入三个实数,将这三个数按由小到大的顺序排列,并输出这三个数。#includevoid 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#includevoid main() char a; scanf(%c,&a);if(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=%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() int a,b,c,temp,min; printf(请输入三个整数:); scanf(%d,%d,%d,&a,&b,&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),其中s=(a+b+c)/2#include#includevoid 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+) 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位数,其各位数字立方和等于该数本身。#includeint 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 (ai&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#includeint 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=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() int p,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); 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项之和。#includemain() int i,x,y,a; float sum=0; x=2; y=1; for(i=1;i20;i+) sum+=(float)(x)/y; / printf(%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; else return fibonacci(n-1)+fibonacci(n-2); int main(void) int i; printf(Fibonacci数列的前40项n); for (i=0; i40;) printf(%-10ld,fibonacci(i+); if(i%N=0) printf(n); printf(n); return 0; 27.一个数如果恰好等于它的因子之和,这个数就称为完数。例如,6的因子为1、2、3,而6=1+2+3,因此6是完数。编程求1000以内所有完数。#includevoid 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)之值。其中a是一个数字,n代表a的位数。例如:2+22+222+2222+22222(此时n为5),n由键盘输入。#include int main() int a,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#includeint main()int n,k,i,m=0;for(n=101;n=200;n=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.将一个数组中的值按逆序重新存放。例如,原来顺序为8,6,4,3,2,0。要求改为0,2,3,4,6,8。#include#define N 5int 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(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(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.用冒泡排序法对输入的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的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。#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; printf(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);printf( );for(j=1;j=i;j+)printf(%c,space);for (k=0;k5;k+)printf(%c,ak);printf(n);return 0;39.输出以下杨辉三角形(要求输出10行)。11 11 2 11 3 3 11 4 6 4 11 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;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); printf(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;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: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; u=v; v=t; while(r=u%v)!=0) u=v; v=r; return (v); int lcd(int u,int v, int h) return (u*v/h); 46. . 输出左边图案。 . . . . . .#includeint main()int i,j,k;for(i=0;i=3;i+)for(j=0;j=2-i;j+)printf( );for(k=0;k=2*i;k+)printf(*);printf(n);for(i=0;i=2;i+)for(j=0;j=i;j+)printf( );for(k=0;k=4-2*i;k+)printf(*);printf(n);return 0;27 / 27
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 考试试卷


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

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


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