1、大学阶段C语言题库+判断题试题一、编程大题1.有一函数:当x0时,y=1。编一程序,输入x的值,输出y的值。#includeint main() int x,y; scanf(%d,&x);if (x=0) if (x0) y=1; else y=0;else y=-1;printf(x=%d,y=%dn,x,y);return 0;2.输入三个实数,将这三个数按由大到小的顺序排列,并输出这三个数。#include int main() float a,b,c,t; scanf(%f,%f,%f,&a,&b,&c); if(ab) t=a; a=b; b=t; if(ac) t=a; a=c;
2、 c=t; if(bc) t=b; b=c; c=t; printf(%5.2f,%5.2f,%5.2fn,a,b,c); return 0;3.有三个整数a,b,c,由键盘输入,输出其中最大者。#includeint main()int a,b,c,max;printf(请输入a,b,cn);scanf(%d,%d,%d,&a,&b,&c);max=a;if(maxb)max=b;if(maxc)max=c;printf(最大的数为%dn,max);return 0;4.编程求圆面积、圆周长。要求圆半径由键盘输入,输出时要求有文字说明,取小数点后两位数字。#include void main
3、()float r, l, s;float pi=3.1415926; printf(表输入圆半径r:); scanf(%f, &r); l=2*pi*r; s=pi*r*r; printf(圆周长为:l=%6.2fn, l); printf(圆面积为:s=%6.2fn, s); 5.有分段函数:当x10时,y=sqrt(x)。编一程序,输入x的值,输出y的值。#includeint main() int x,y; scanf(%d,&x); if(x-10) y=abs(x)+5; else if(x=10) y=4*x-8; else y=sqrt(x); printf(x=%d,y=%d
4、n,x,y); return 0;6.编写程序,判断某一年是否是闰年。(闰年的条件是:能被4整除,但是不能被100整除,或者可以被400整除。)#include int main() int year,leap; printf(enter year:); 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); pri
5、ntf(a leap year.n); return 0;7.输入一个华氏温度,要求输出摄氏温度,输出时要求有文字说明,取小数点后两位数字。公式为c=5/9(f-32)#include int main()float c,f; printf(请输入一个华氏温度:);scanf(%f,&f); c=(5.0/9.0)*(f-32); printf(摄氏温度为:%5.2fn,c);return 0; 8.有一函数:当x1时,y=|x|;当1=x=10时,y=3x+11。编一程序,输入x的值,输出y的值。 #include #include void main()int x, y; printf(输
6、入x:);scanf(%d,&x); if (x1) y=abs(x); else if (x*p2) t=p1;p1=p2;p2=t; if(*p1*p3) t=p1;p1=p3;p3=t; if(*p2*p3) t=p2;p2=p3;p3=t; printf(%d,%d,%dn,*p1,*p2,*p3); 10.输入一个字符,判断它是否是小写字母,如果是,将它转换成大写字母;如果不是,不转换。然后输出最后得到的字符。#include void main ( )char ch; scanf(%c,& ch); ch=(ch=A& ch=Z)?(ch+32):ch; printf(%cn,ch
7、); 11.编程求圆柱体积,圆柱表面积。要求圆半径,圆柱高由键盘输入,输出时要求有文字说明,取小数点后两位数字。#include void main()float r, h, v, s;float pi=3.1415926; printf(表输入圆半径r、圆柱高h:); scanf(%f%f, &r,&h); v=pi*r*r*h; s=2*pi*r*r+2*pi*r*h; printf(圆柱体积为:v=%6.2fn, v); printf(圆柱表面积为:s=%6.2fn, s); 12.有分段函数:当x5时,y=2x-10.编一程序,输入x的值,输出y的值。#includeint main(
8、) int x,y; scanf(%d,&x); if(x-5) y=x+10; else if(x=5) y=x2; else y=2*x-10; printf(x=%d,y=%dn,x,y); return 0;13.有三个整数a,b,c,由键盘输入,输出其中最小者。#includeint main()int a,b,c,max;printf(请输入a,b,cn);scanf(%d,%d,%d,&a,&b,&c);max=a;if(maxb)max=b;if(maxc)max=c;printf(最小的数为%dn,max);return 0;14.输入一个字符,判断它是否是大写字母,如果是,
9、将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。#include void main ( )char ch; scanf(%c,& ch); ch=(ch=A& ch=Z)?(ch+32):ch; printf(%cn,ch); 15.输入三角形的三边长,求三角形面积。求三角形面积的公式为area=sqrt(s(s-a)(s-b)(s-c),其中s=(a+b+c)/2#include #include void main ( )float a,b,c,s,area;scanf(%f%f%f,&a,&b,&c); s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-
10、b)*(s-c);printf(%fn,area); 16.编程求2!+4!+6!+8!+10!的值,并输出结果。#include 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=%dn,sum); return 0;17.猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想吃时就剩一个桃子了。求第一天共摘了多少
11、个桃子。#includeint main() int day,x1,x2; day=9; x2=1; while(day0) x1=(x2+1)*2; x2=x1; day-; printf(total=%dn,x1); return 0; 18.输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。#includevoid main()int i,j,k,n; printf(narcissus numbers are);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*
12、k) printf(%5d,n); printf(n);19.编程求1100之间的所有素数,并输出结果。#include #include int main() int n,m=0,k,i; for(n=1;n=100;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;20.编程求1!+3!+5!+7!+9!的值,并输出结果。#include int main() int n=1,sum=0,j,m=1,i; for(i=1;i=5;i+) m=1;
13、 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 #include int main() int sign=1; double pi=0,n=1,term=1; 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.一
14、个球从100m高度自由落下,每次落地后又反跳回原高度的一半,再落下,再反弹。求它在第10次落地时共经过多少米?#includeint main() int i; double m=100,sum=0; for(i=0;i10;i+) sum=sum+m; m=m/2; printf(%fn,sum); return 0; 23.输入两个正整数m和n,求其最大公约数和最小公倍数。#includevoid main()int p,r,n,m,temp; printf(请输入n和m: );scanf(%d,%d,%d,&n,&m); if(nm)temp=n;n=m;m=temp; p=n*m; w
15、hile(m!=0) r=n%m;n=m;m=r; printf(:%dn,n);printf( :%dn,p/n); 24.利用循环,编程求1!+2!+3!+10!的值,并输出结果。#include int main() int n=1,sum=0,j,m=1,i; for(i=1;i=10;i+) m=1; for(j=1;j=i;j+) m=m*j; sum=sum+m; printf(sum=%dn,sum); return 0;25.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13.,求出这个数列前20项之和。#includeint main()int i,n=20
16、;double a=2,b=1,s=0,t;for(i=1;i=n;i+)s=s+a/b;t=a,a=a+b,b=t;printf(sum=%16.10fn,s);return 0;26.求Fibonacci数列前40个数。这个数列有以下特点:第1和第2个数为1,从第3个数开始,该数是其前面两个数之和。#include int main() int f1=1,f2=1,f3; int i; printf(%12dn%12dn,f1,f2); for(i=1; i=38; i+) f3=f1+f2; printf(%12dn,f3); f1=f2; f2=f3; return 0;27.一个数如
17、果恰好等于它的因子之和,这个数就称为完数。例如,6的因子为1、2、3,而6=1+2+3,因此6是完数。编程求1000以内所有完数。#include int main() int m,s,i; for (m=2;m1000;m+) s=0; for (i=1;im;i+) if(m%i)=0)s=s+i; if(s=m) printf(%d,its factors are ,m); for(i=1;im;i+) if(m%i=0) printf(%d ,i); printf(n); return 0; 28.求S=a+aa+aaa+.+aa.a(n个a)之值。其中a是一个数字,n代表a的位数。例
18、如:2+22+222+2222+22222(此时n为5),n由键盘输入。#include int main() int a,sn=0,tn=0,k,i=1,n; 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,m=0,k,i; for(n=101;n=200;n=n+2) k=sqrt(n); fo
19、r (i=2;i=k+1) printf(%d ,n); m=m+1; if(m%10=0) printf(n); printf(n); return 0;30.输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。#includevoid main()char c;int letters=0,space=0,digit=0,other=0; printf(n);while(c=getchar()!=n) if(c=a&c=A&c=0&c=9) digit+; elseother+; printf(:%dn:%dn:%dn:%dn,letters,space,digit,other
20、); 31.将一个数组中的值按逆序重新存放。例如,原来顺序为8,6,4,3,2,0。要求改为0,2,3,4,6,8。#include#define N 6void 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(n Now,array a:n);for(i=0;iN;i+)printf(%d ,
21、ai); printf(n);32.编写一个函数,求数列1+1/2+1/3+1/4+1/5+.1/n,利用主函数调用这个函数并输出结果。#include#includevoid main() int i,s=1; float n,t,a; t=1;a=0;n=1; printf(input n:,n); while(i=n) a=a+t; i=i+; t=s/i; printf(a=%10.6fn,a);33.将一个二维数组int a34的行和列的元素互换,存到另外一个二维数组中。#include void main()int a23=1,2,3,4,5,6;int b32,i,j; prin
22、tf(array a:n);for (i=0;i=1;i+) for (j=0;j=2;j+) printf(%5d,aij);bji=aij;printf(n);printf(array b:n);for (i=0;i=2;i+)for(j=0;j=1;j+) printf(%5d,bij);printf(n);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); ret
23、urn 0;35.用冒泡排序法对输入的10个数进行降序排序,并存入数组中。int paixu(x) int x; int i,j,t; for(j=1;j10;j+) for(i=0;ixi+1) t=xi+1;xi+1=xi;xi=t; main() int y10;int i; for(i=0;i10;i+) scanf(%d,&yi); paixu(y); for(i=0;i10;i+) printf(%5d,yi); printf(n); 36.有一个3乘4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。#include void main()int i,j,r
24、ow=0,colum=0,max; int a34=1,2,3,4,9,8,7,6,-10,10,-5,2; 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); 37.用冒泡排序法对输入的10个数进行升序排序,并存入数组中。int paixu(x) int x; int i,j,t; for(j=1;j10;j+) for(i=0;ixi+1) t=xi+1;xi+1=xi;xi=t; main() int y10;int i; for(i=0;i10;i+) scanf(%d,&yi); paixu(y); for(i=0;i
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1