收藏 分销(赏)

河南工业大学编程考题.doc

上传人:w****g 文档编号:4086157 上传时间:2024-07-29 格式:DOC 页数:19 大小:59.05KB 下载积分:8 金币
下载 相关 举报
河南工业大学编程考题.doc_第1页
第1页 / 共19页
河南工业大学编程考题.doc_第2页
第2页 / 共19页


点击查看更多>>
资源描述
1.有一函数:当x<0时,y=-1;当x=0时,y=0;当x>0时,y=1. 编一程序,输入x地值,输出y地值. #include<stdio.h> void main() { int x,y; printf("请输入x:"); scanf("%d",&x); if(x<0) y=-1; else if(x=0) y=0; else y=1; printf("y=%d",y); } 2.输入三个实数,将这三个数按由大到小地顺序排列,并输出这三个数. #include<stdio.h> void main() {int a,b,c,temp=0; printf("please input a,b,c: "); scanf("%d %d %d",&a,&b,&c); if(a<b) {temp=a;a=b;b=temp;} if(a<c){temp=a;a=c;c=temp;} if(b<c){temp=b;b=c;c=temp;} printf("从大到小为:%d,%d,%d\n",a,b,c); } 3.有三个整数a,b,c,由键盘输入,输出其中最大者. #include<stdio.h> void main() { int a,b,c,max; printf("输入三个数字:\n"); scanf("%d%d%d",&a,&b,&c); if(a>b&&a>c) max=a; if(b>a&&b>c) max=b; if(c>a&&c>b) max=c; printf("最大值是: %d\n",max); } 4.编程求圆面积、圆周长.要求圆半径由键盘输入,输出时要求有文字说明,取小数点后两位数字. #include<stdio.h> #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.2f\ns=%7.2f\n",l,s); } 5.有分段函数:当x<-10时,y=|x|+5;当-10≤x≤10时,y=4x-8;当x>10时,y=sqrt(x). 编一程序,输入x地值,输出y地值. #include <stdio.h> int main() { int x,y; printf("输入x:"); scanf("%d",&x); if(x<-10) { y=|x|+5; printf("x=%3d, y=|x|+5=%d\n" ,x,y); } else if(x<=10) { y=4*x-8; printf("x=%d, y=4*x-8=%d\n",x,y); } else { y=sqrt(x); printf("x=%d, y=sqrt(x)=%d\n",x,y); } return 0; } 6.编写程序,判断某一年是否是闰年.(闰年地条件是:能被4整除,但是不能被100整除,或者可以被400整除.) #include <stdio.h> 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) #include<stdio.h> int main() { float f,c; printf("输入华氏温度:\n"); scanf("%f",&f); c=(f-32)/1.8; printf("对应地摄氏温度是:%5.2f\n",c); } 8.有一函数:当x<1时,y=|x|;当1<=x<10时,y=2x-1;当x>=10时,y=3x+11. 编一程序,输入x地值,输出y地值. #include <stdio.h> void main() {int x,y; printf("输入x:"); scanf("%d",&x); if(x<1) { y=|x|; printf("x=%3d, y=|x|=%d\n",x,y);当x<1时,y=|x|;当1<=x<10时,y=2x-1;当x>=10时,y=3x+11 } else if (x<10) { y=2*x-1; printf("x=%3d, y=2*x-1=%d\n",x,y); } else { y=3*x+11; printf("x=%3d, y=3*x+11=%d\n",x,y); } } 9.输入三个实数,将这三个数按由小到大地顺序排列,并输出这三个数. #include<stdio.h> void main() {int a,b,c,temp=0; printf("please input a,b,c: "); scanf("%d %d %d",&a,&b,&c); if(a>b) {temp=a;a=b;b=temp;} if(a>c){temp=a;a=c;c=temp;} if(b>c){temp=b;b=c;c=temp;} printf("从小到大为:%d,%d,%d\n",a,b,c); } 10.输入一个字符,判断它是否是小写字母,如果是,将它转换成大写字母;如果不是,不转换.然后输出最后得到地字符. #include<stdio.h> #include<string.h> void main() { char a; scanf("%c",&a); if(islower(a)) a=a-32; printf("%c\n",a); } 11.编程求圆柱体积,圆柱表面积.要求圆半径,圆柱高由键盘输入,输出时要求有文字说明,取小数点后两位数字. #include <stdlib.h> 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.2f\n",l); printf("圆面积为:s=%6.2f\n",s); printf("圆球表面积为:sq=%6.2f\n",sq); printf("圆球体积为:vq=%6.2f\n",vq); printf("圆柱体积为:vz=%6.2f\n",vz); system("PAUSE"); return 0; } 12.有分段函数:当x<-5时,y=x+10; 当-5≤x≤5时,y=x^2;当x>5时,y=2x-10. 编一程序,输入x地值,输出y地值. #include <stdio.h> void main() {int x,y; printf("输入x:"); scanf("%d",&x); if(x<-5) { y=x+10; printf("x=%3d, y=x+10=%d\n",x,y); } else if (x<5) { y=x^2; printf("x=%3d, y=x^2=%d\n",x,y); } else { y=2*x-10; printf("x=%3d, y=2*x-10=%d\n",x,y); } } 13.有三个整数a,b,c,由键盘输入,输出其中最小者. #include <stdio.h> int main() { int a,b,c,temp,min; printf("请输入三个整数:"); scanf("%d,%d,%d",&a,&b,&c); temp=(a<b)? a:b; min=(temp<c)? temp:c; printf("三个数中最小数是%d\n",min); return 0; } 14.输入一个字符,判断它是否是大写字母,如果是,将它转换成小写字母;如果不是,不转换.然后输出最后得到地字符. #include <stdio.h> 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<stdio.h> #include<math.h> 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!地值,并输出结果. #include<stdio.h> int 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=%d\n",sum); return 0; } 17.猴子吃桃问题.猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个. 第二天早上又将剩下地桃子吃掉一半,又多吃一个.以后每天早上都吃了前一天剩下地一半零一个. 到第10天早上想吃时就剩一个桃子了.求第一天共摘了多少个桃子. #include<stdio.h> void main() { int day; static x1=1; day=10; while(day>0) { x1=(x1+1)*2; day--; } printf("桃子总数=%d\n",x1); } 18.输出所有地“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身. #include<stdio.h> int main() { int i,j,k,n; printf("水仙花数是"); for(n=100;n<1000;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.编程求1~100之间地所有素数,并输出结果. #include <stdio.h> int main(void) { int a[100],i,j; for (i = 0; i<100; i++) a[i]=i+1; for (i=1; i<100; i++) for (j=i+1; j<100; j++) if (a[i]&&a[j]%a[i]==0) a[j]=0; for (i = 1; i<100; i++) if (a[i]) printf("%d\t",a[i]); return 0; } 20.编程求1!+3!+5!+7!+9!地值,并输出结果. #include<stdio.h> int 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=%d\n",sum); return 0; } 21.用pi/4≈1-1/3+1/5-1/7+...公式求pi地近似值,直到某一项地绝对值小于10地-6次方为止. #include<stdio.h> #include<math.h> 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.8f\n",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 %f\n",sn); getch(); } 23.输入两个正整数m和n,求其最大公约数和最小公倍数. #include <stdio.h> int main() { int p,r,n,m,temp; printf("请输入两个正整数n,m:"); scanf("%d%d,",&n,&m); if (n<m) { temp=n; n=m; m=temp; } p=n*m; while(m!=0) { r=n%m; n=m; m=r; } printf("它们地最大公约数为:%d\n",n); printf("它们地最小公约数为:%d\n",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("%d\n",sum); } 25.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13......,求出这个数列前20项之和. #include<stdio.h> main() { int i,x,y,a; float sum=0; x=2; y=1; for(i=1;i<20;i++) { sum+=(float)(x)/y; // printf("%d/%d\n",x,y); a=x; x=x+y; y=a; } printf("%7.5f\n",sum); } 26.求Fibonacci数列前40个数.这个数列有以下特点:第1和第2个数为1,从第3个数开始,该数是其前面两个数之和. #include<stdio.h> #define N 4 long 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; i<40;) { 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以内所有完数. #include<stdio.h> void main() { int i,j; int sum; for(i=2;i<1000;i++) { sum=0; for(j=1;j<i;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 <stdio.h> 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+...=%d\n",sn); return 0; } 29.编程求100~200之间地所有素数,并输出结果. #include<stdio.h> #include<math.h> int main() {int n,k,i,m=0; for(n=101;n<=200;n=n+2) {k=sqrt(n); for(i=2;i<=k;i++) if(n%i==0)break; if(i>=k+1) {printf("%d",n); m=m+1; } if(m%10==0)printf("\n"); } printf("\n"); return 0; } 30.输入一行字符,分别统计出其中英文字母、空格、数字和其他字符地个数. #include"stdio.h" main() {char c;int i=0,j=0,k=0,l=0; while((c=getchar())!='\n') {if(c>=65&&c<=90||c>=97&&c<=122) i++; else if(c>=48&&c<=57) j++; else if(c==32) k++; else l++;} printf("i=%d,j=%d,k=%d,l=%d\n",i,j,k,l); } 31.将一个数组中地值按逆序重新存放.例如,原来顺序为8,6,4,3,2,0.要求改为0,2,3,4,6,8. #include<stdio.h> #define N 5 int main() {int a[N],i,temp; printf("enter array a:\n"); for(i=0;i<N;i++) scanf("%d",&a[i]); printf("array a:\n"); for(i=0;i<N;i++) printf("%4d",a[i]); for(i=0;i<N/2;i++) {temp=a[i]; a[i]=a[N-i-1]; a[N-i-1]=temp; } printf("\nNOW,array a:\n"); for(i=0;i<N;i++) printf("%4d",a[i]); printf("\n"); return 0; } 32.编写一个函数,求数列1+1/2+1/3+1/4+1/5+...1/n,利用主函数调用这个函数并输出结果. #include <stdio.h> 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("%f\n",sum); } 33.将一个二维数组int a[3][4]地行和列地元素互换,存到另外一个二维数组中. #include <stdio.h> int main() { int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; int b[4][3],i,j; printf("arrary a:\n"); for(i=0;i<=2;i++) { for(j=0;j<=3;j++) { printf("%5d",a[i][j]); b[j][i]=a[i][j]; } printf("\n"); } printf("array b:\n"); for(i=0;i<=3;i++) { for(j=0;j<=2;j++) printf("%5d",b[i][j]); printf("\n"); } return 0; } 34.利用循环输出以下图形 ***** **** *** ** * #include <stdio.h> int main() { int i,j,m; for(i=1;i<=5;i++) { m=i; for(m=1;m<i;m++) printf(" "); for(j=0;j<=5-i;j++) printf("*"); printf("\n"); } return 0; } 35.用冒泡排序法对输入地10个数进行降序排序,并存入数组中. #include <stdio.h> int main() { int a[10]; int i,j,t; printf("input 10 numbers:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); printf("\n"); for(j=0;j<9;j++) for(i=0;i<9-j;i++) if(a[i]<a[i+1]) {t=a[i];a[i]=a[i+1];a[i+1]=t;} printf("the sorted numbers:\n"); for(i=0;i<10;i++) printf("%d",a[i]); printf("\n"); return 0; } 36.有一个3乘4地矩阵,要求编程序求出其中值最大地那个元素地值,以及其所在地行号和列号. #include <stdio.h> int main() { int i,j,row=0,colum=0,max; int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; max=a[0][0]; for(i=0;i<=2;i++) for(j=0;j<=3;j++) if(a[i][j]>max) {max=a[i][j]; row=i; colum=j; } printf("max=%d,row=%d,colum=%d\n",max,row,colum); return 0; } 37.用冒泡排序法对输入地10个数进行升序排序,并存入数组中. #include <stdio.h> int main() { int a[10]; int i,j,t; printf("input 10 numbers:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); printf("\n"); for(j=0;j<9;j++) for(i=0;i<9-j;i++) if(a[i]>a[i+1]) {t=a[i];a[i]=a[i+1];a[i+1]=t;} printf("the sorted numbers:\n"); for(i=0;i<10;i++) printf("%d",a[i]); printf("\n"); return 0; } 38.利用循环,输出以下图形 ***** ***** ***** ***** ***** #include <stdio.h> int main() {char a[5]={'*','*','*','*','*'}; int i,j,k; char space=' '; for (i=0;i<5;i++) {printf("\n"); printf(" "); for(j=1;j<=i;j++) printf("%c",space); for (k=0;k<5;k++) printf("%c",a[k]); } printf("\n"); return 0; } 39.输出以下杨辉三角形(要求输出10行). 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 ... #include<stdio.h> #define N 10 int main() { int i,j,a[N][N]; for (i=0;i<N;i++) { a[i][i]=1; a[i][0]=1; } for (i=2;i<N;i++) for(j=1;j<=i-1;j++) a[i][j]=a[i-1][j-1]+a[i-1][j]; for(i=0;i<N;i++) {for(j=0;j<=i;j++) printf("%6d",a[i][j]); printf("\n"); } printf("\n"); return 0; } 40.利用循环输出以下图形 * *** ***** ******* #include <stdio.h> 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;j<2*i-1;j++) printf("*"); printf("\n"); } return 0; } 41.利用循环,输出以下图形 ******* ***** *** * #include<stdio.h> int main() { int n,i,j; scanf("%d",&n); for(i=0;i<n;i++) { for(j=n-1-i;j>0;j--)printf(" "); for(j=0;j<2*i+1;j++){int k=j;if(k>25)k%=26;printf("%c",'*'+k);} printf("\n"); } return 0; } 42.求一个3×3地整型矩阵对角线元素之和. #include<stdio.h> main() { int a[3][3],i,j,sum=0; printf("请输入数组元素:(3*3)\n"); for(i=0;i<3;i++) for(j=0;j<3;j++) scanf("%d",&a[i][j]); printf("\n"); printf("数组为:\n"); for(i=0;i<3;i++) {for(j=0;j<3;j++) printf("%4d",a[i][j]); printf("\n"); } printf("\n"); printf("对角线地和:\n"); for(i=0;i<3;i++) for(j=0;j<3;j++) if(i==j||2-i==j) sum+=a[i][j]; printf("%d\n",sum); } 43.编写程序,将两个字符串连接起来,不要使用strcat函数. int main() { char *a="qwet",*b="woei"; char c[20]; int i,j; for( i=0,j=0;*(a+i);i++ ,j++) c[j]=*(a+i); for(i=0 ; *(b+i);i++,j++ ) c[j]=*(b+i); c[j]='\0'; for( i=0 ; c[i] ;i++ ) printf("%c ",c[i]); } 44.写一个函数,求两个整数中地较大者,用主函数调用这个函数,并输出结果,两个整数由键盘输入. #include<stdio.h> int maxNum(int a,int b) { return(a>b?a:b); } void main() { int a,b,max; printf("Enter two numbers!\n"); scanf("%d%d",&a,&b); max=maxNum(a,b); printf("Max:%d\n",max); } 45.编写两个函数分别求两个整数地最大公约数和最小公倍数,在主函数中调用这两个函数,并输出结果,两个整数由键盘输入. #include<stdio.h> int 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=%d\n",h); l=lcd(u,v,h); printf("L.C.D=%d",l); } int hcf(int u,int v) { int t,r; if(v>u) { 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); } 19 / 19
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服