完整版C语言题库编程河南工业大学河工大c语言期末考考试库.docx
- 文档编号:3796407
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:26
- 大小:20.79KB
完整版C语言题库编程河南工业大学河工大c语言期末考考试库.docx
《完整版C语言题库编程河南工业大学河工大c语言期末考考试库.docx》由会员分享,可在线阅读,更多相关《完整版C语言题库编程河南工业大学河工大c语言期末考考试库.docx(26页珍藏版)》请在冰豆网上搜索。
完整版C语言题库编程河南工业大学河工大c语言期末考考试库
C语言题库(编程)河南工业大学河工大c语言期末考试题库
二、编程题
1.有一函数:
当x<0时,y=-1;当x=0时,y=0;当x>0时,y=1。
编一程序,输入x的值,输出y的值。
#include
voidmain()
{
intx,y;
printf("请输入x:
");
scanf("%d",&x);
if(x<0)
y=-1;
elseif(x=0)
y=0;
else
y=1;
printf("y=%d",y);
}
2.输入三个实数,将这三个数按由大到小的顺序排列,并输出这三个数。
#include
voidmain()
{inta,b,c,temp=0;
printf("pleaseinputa,b,c:
");
scanf("%d%d%d",&a,&b,&c);
if(a
if(a if(b printf("从大到小为: %d,%d,%d\n",a,b,c); } 3.有三个整数a,b,c,由键盘输入,输出其中最大者。 voidmain() { inta,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 #definepi3.1416 main() { floatr,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的值。 6.编写程序,判断某一年是否是闰年。 (闰年的条件是: 能被4整除,但是不能被100整除,或者可以被400整除。 ) #include intmain() { intyear,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("%dis",year); else printf("%disnot",year); printf("aleapyear.\n"); return0; } 7.输入一个华氏温度,要求输出摄氏温度,输出时要求有文字说明,取小数点后两位数字。 公式为c=5/9(f-32) #include intmain() { floatf,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的值。 9.输入三个实数,将这三个数按由小到大的顺序排列,并输出这三个数。 #include voidmain() {inta,b,c,temp=0; printf("pleaseinputa,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 #include voidmain() { chara; scanf("%c",&a); if(islower(a)) a=a-32; printf("%c\n",a); } 11.编程求圆柱体积,圆柱表面积。 要求圆半径,圆柱高由键盘输入,输出时要求有文字说明,取小数点后两位数字。 #include intmain(intargc,char*argv[]) { floatr,h,l,s,sq,vq,vz; floatpi=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"); return0; } 12.有分段函数: 当x<-5时,y=x+10;当-5≤x≤5时,y=x^2;当x>5时,y=2x-10. 编一程序,输入x的值,输出y的值。 13.有三个整数a,b,c,由键盘输入,输出其中最小者。 #include intmain() { inta,b,c,temp,min; printf("请输入三个整数: "); scanf("%d,%d,%d",&a,&b,&c); temp=(a a: b; min=(temp temp: c; printf("三个数中最小数是%d\n",min); return0; } 14.输入一个字符,判断它是否是大写字母,如果是,将它转换成小写字母;如果不是,不转换。 然后输出最后得到的字符。 #include voidmain() { charc; printf("inputch: "); c=getchar(); if(c>='A'&&c<='Z') { c=c+32; printf("%c",c); } elseprintf("%c",c); } 15.输入三角形的三边长,求三角形面积。 求三角形面积的公式为 area=sqrt(s(s-a)(s-b)(s-c)),其中s=(a+b+c)/2 #include #include voidmain() { floata,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 intmain() { intn=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); return0; } 17.猴子吃桃问题。 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。 第二天早上又将剩下的桃子吃掉一半,又多吃一个。 以后每天早上都吃了前一天剩下的一半零一个。 到第10天早上想吃时就剩一个桃子了。 求第一天共摘了多少个桃子。 #include voidmain() { intday;staticx1=1; day=10; while(day>0) { x1=(x1+1)*2; day--; } printf("桃子总数=%d\n",x1); } 18.输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。 #include intmain() { inti,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"); return0; } 19.编程求1~100之间的所有素数,并输出结果。 #include intmain(void) { inta[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]); return0; } 20.编程求1! +3! +5! +7! +9! 的值,并输出结果。 #include intmain() { intn=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); return0; } 21.用pi/4≈1-1/3+1/5-1/7+...公式求pi的近似值的绝,直到某一项对值小于10的-6次方为止。 #include #include intmain() { intsign=1; doublepi=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); return0; } 22.一个球从100m高度自由落下,每次落地后又反跳回原高度的一半,再落下,再反弹。 求它在第10次落地时共经过多少米? #include"stdio.h" #include"stdio.h" main() { floatsn=100.0,hn=sn/2; intn; for(n=2;n<=10;n++) { sn=sn+2*hn;/*第n次落地时共经过的米数*/ hn=hn/2;/*第n次反跳高度*/ } printf("thetotalofroadis%f\n",sn); getch(); } 23.输入两个正整数m和n,求其最大公约数和最小公倍数。 #include intmain() { intp,r,n,m,temp; printf("请输入两个正整数n,m: "); scanf("%d%d,",&n,&m); if(n { 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); return0; } 24.利用循环,编程求1! +2! +3! +…+10! 的值,并输出结果。 main() { inti,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 main() {inti,x,y,a; floatsum=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 #defineN4 longfibonacci(intn) { if(0==n||1==n)return1; else returnfibonacci(n-1)+fibonacci(n-2); } intmain(void) { inti; printf("Fibonacci数列的前40项\n"); for(i=0;i<40;) { printf("%-10ld",fibonacci(i++)); if(i%N==0)printf("\n"); } printf("\n"); return0; } 27.一个数如果恰好等于它的因子之和,这个数就称为完数。 例如,6的因子为1、2、3,而6=1+2+3,因此6是完数。 编程求1000以内所有完数。 #include voidmain() { inti,j; intsum; for(i=2;i<1000;i++) { sum=0; for(j=1;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 intmain() { 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+...=%d\n",sn); return0; } 29.编程求100~200之间的所有素数,并输出结果。 #include #include intmain() {intn,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"); return0; } 30.输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。 #include"stdio.h" main() {charc;inti=0,j=0,k=0,l=0; while((c=getchar())! ='\n') {if(c>=65&&c<=90||c>=97&&c<=122)i++; elseif(c>=48&&c<=57)j++; elseif(c==32)k++; elsel++;} 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 #defineN5 intmain() {inta[N],i,temp; printf("enterarraya: \n"); for(i=0;i scanf("%d",&a[i]); printf("arraya: \n"); for(i=0;i printf("%4d",a[i]); for(i=0;i {temp=a[i]; a[i]=a[N-i-1]; a[N-i-1]=temp; } printf("\nNOW,arraya: \n"); for(i=0;i printf("%4d",a[i]); printf("\n"); return0; } 32.编写一个函数,求数列1+1/2+1/3+1/4+1/5+...1/n,利用主函数调用这个函数并输出结果。 #include main() { floati=1,sum=0,n; printf("inputanumbern: "); scanf("%f",&n); while(i<=n) { sum+=1.0/i; i=i+1; } printf("%f\n",sum); } 33.将一个二维数组inta[3][4]的行和列的元素互换,存到另外一个二维数组中。 #include intmain() { inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; intb[4][3],i,j; printf("arrarya: \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("arrayb: \n"); for(i=0;i<=3;i++) { for(j=0;j<=2;j++) printf("%5d",b[i][j]); printf("\n"); } return0; } 34.利用循环输出以下图形 ***** **** *** ** * #include intmain() { int i,j,m; for(i=1;i<=5;i++) { m=i; for(m=1;m printf(""); for(j=0;j<=5-i;j++) printf("*"); printf("\n"); } return0; } 35.用冒泡排序法对输入的10个数进行降序排序,并存入数组中。 #include intmain() { inta[10]; inti,j,t; printf("input10numbers: \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++)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整版 语言 题库 编程 河南 工业大学 河工 期末 考试