C语言编程题.docx
- 文档编号:26610713
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:41
- 大小:24.82KB
C语言编程题.docx
《C语言编程题.docx》由会员分享,可在线阅读,更多相关《C语言编程题.docx(41页珍藏版)》请在冰豆网上搜索。
C语言编程题
编程题
1.有一函数:
当x<0时,y=-1;当x=0时,y=0;当x>0时,y=1。
编一程序,输入x的值,输出y的值。
#include
intmain()
{
intx,y;
scanf("%d",&x);
if(x>=0)
if(x>0)y=1;
elsey=0;
elsey=-1;
printf("x=%d,y=%d\n",x,y);
return0;
}
2.输入三个实数,将这三个数按由大到小的顺序排列,并输出这三个数。
#include
intmain()
{floata,b,c,t;
scanf("%f,%f,%f",&a,&b,&c);
if(a
{t=a;a=b;b=t;}
if(a {t=a;a=c;c=t;} if(b {t=b;b=c;c=t;} printf("%5.2f,%5.2f,%5.2f\n",a,b,c); return0; } 3.有三个整数a,b,c,由键盘输入,输出其中最大者。 #include intmain() {inta,b,c,max; printf("请输入a,b,c\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if(max max=b; if(max max=c; printf("最大的数为%d\n",max); return0; } 4.编程求圆面积、圆周长。 要求圆半径由键盘输入,输出时要求有文字说明,取小数点后两位数字。 #include voidmain() { floatr,l,s; floatpi=3.1415926; printf("表输入圆半径r: "); scanf("%f",&r); l=2*pi*r; s=pi*r*r; printf("圆周长为: l=%6.2f\n",l); printf("圆面积为: s=%6.2f\n",s); } 5.有分段函数: 当x<-10时,y=|x|+5;当-10≤x≤10时,y=4x-8;当x>10时,y=sqrt(x)。 编一程序,输入x的值,输出y的值。 #include intmain() { intx,y; scanf("%d",&x); if(x<-10) y=abs(x)+5; elseif(x<=10) y=4*x-8; elsey=sqrt(x); printf("x=%d,y=%d\n",x,y); return0; } 6.编写程序,判断某一年是否是闰年。 (闰年的条件是: 能被4整除,但是不能被100整除,或者可以被400整除。 ) #include intmain() {intyear,leap; printf("enteryear: ");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("%dis",year); elseprintf("%disnot",year); printf("aleapyear.\n"); return0; } 7.输入一个华氏温度,要求输出摄氏温度,输出时要求有文字说明,取小数点后两位数字。 公式为c=5/9(f-32) #include intmain() { floatc,f; printf("请输入一个华氏温度: "); scanf("%f",&f); c=(5.0/9.0)*(f-32); printf("摄氏温度为: %5.2f\n",c); return0; } 8.有一函数: 当x<1时,y=|x|;当1<=x<10时,y=2x-1;当x>=10时,y=3x+11。 编一程序,输入x的值,输出y的值。 #include #include voidmain() { intx,y; printf("输入x: "); scanf("%d",&x); if(x<1) y=abs(x); elseif(x<10) y=2*x-1; else y=3*x+11; printf("x=%3d,y=%d\n",x,y); } 9.输入三个实数,将这三个数按由小到大的顺序排列,并输出这三个数。 main() {inta,b,c,*p1,*p2,*p3,t; scanf("%d,%d,%d",&a,&b,&c); p1=&a;p2=&b;p3=&c; if(*p1>*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,%d\n",*p1,*p2,*p3); } 10.输入一个字符,判断它是否是小写字母,如果是,将它转换成大写字母;如果不是,不转换。 然后输出最后得到的字符。 #include voidmain() { charch; scanf("%c",&ch); ch=(ch>='A'&&ch<='Z')? (ch+32): ch; printf("%c\n",ch); } 11.编程求圆柱体积,圆柱表面积。 要求圆半径,圆柱高由键盘输入,输出时要求有文字说明,取小数点后两位数字。 #include voidmain() { floatr,h,v,s; floatpi=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.2f\n",v); printf("圆柱表面积为: s=%6.2f\n",s); } 12.有分段函数: 当x<-5时,y=x+10;当-5≤x≤5时,y=x^2;当x>5时,y=2x-10. 编一程序,输入x的值,输出y的值。 #include intmain() { intx,y; scanf("%d",&x); if(x<-5) y=x+10; elseif(x<=5) y=x^2; elsey=2*x-10; printf("x=%d,y=%d\n",x,y); return0; } 13.有三个整数a,b,c,由键盘输入,输出其中最小者。 #include intmain() {inta,b,c,max; printf("请输入a,b,c\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if(max>b) max=b; if(max>c) max=c; printf("最小的数为%d\n",max); return0; } 14.输入一个字符,判断它是否是大写字母,如果是,将它转换成小写字母;如果不是,不转换。 然后输出最后得到的字符。 #include voidmain() { charch; scanf("%c",&ch); ch=(ch>='A'&&ch<='Z')? (ch+32): ch; printf("%c\n",ch); } 15.输入三角形的三边长,求三角形面积。 求三角形面积的公式为 area=sqrt(s(s-a)(s-b)(s-c)),其中s=(a+b+c)/2 #include #include voidmain() { floata,b,c,s,area; scanf("%f%f%f",&a,&b,&c); s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c)); printf("%f\n",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 intmain() { intday,x1,x2; day=9; x2=1; while(day>0) {x1=(x2+1)*2; x2=x1; day--; } printf("total=%d\n",x1); return0; } 18.输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。 #include voidmain() { inti,j,k,n; printf("narcissusnumbersare"); 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("%5d",n); } printf("\n"); } 19.编程求1~100之间的所有素数,并输出结果。 #include #include intmain() { intn,m=0,k,i; for(n=1;n<=100;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; } 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,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.8f\n",pi); return0; } 22.一个球从100m高度自由落下,每次落地后又反跳回原高度的一半,再落下,再反弹。 求它在第10次落地时共经过多少米? #include intmain() { inti; doublem=100,sum=0; for(i=0;i<10;i++){ sum=sum+m; m=m/2; } printf("%f\n",sum); return0; } 23.输入两个正整数m和n,求其最大公约数和最小公倍数。 #include voidmain() { intp,r,n,m,temp; printf("请输入n和m: "); scanf("%d,%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); } 24.利用循环,编程求1! +2! +3! +…+10! 的值,并输出结果。 #include intmain() { intn=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=%d\n",sum); return0; } 25.有一分数序列: 2/1,3/2,5/3,8/5,13/8,21/13......,求出这个数列前20项之和。 #include intmain() { inti,n=20; doublea=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.10f\n",s); return0; } 26.求Fibonacci数列前40个数。 这个数列有以下特点: 第1和第2个数为1,从第3个数开始,该数是其前面两个数之和。 #include intmain() {intf1=1,f2=1,f3;inti; printf("%12d\n%12d\n",f1,f2); for(i=1;i<=38;i++) {f3=f1+f2; printf("%12d\n",f3); f1=f2; f2=f3; } return0; } 27.一个数如果恰好等于它的因子之和,这个数就称为完数。 例如,6的因子为1、2、3,而6=1+2+3,因此6是完数。 编程求1000以内所有完数。 #include intmain() { intm,s,i; for(m=2;m<1000;m++) {s=0; for(i=1;i if((m%i)==0)s=s+i; if(s==m) {printf("%d,itsfactorsare",m); for(i=1;i if(m%i==0)printf("%d",i); printf("\n"); } } return0; } 28.求S=a+aa+aaa+...+aa...a(n个a)之值。 其中a是一个数字,n代表a的位数。 例如: 2+22+222+2222+22222(此时n为5),n由键盘输入。 #include intmain() { inta,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+...=%d\n",sn); return0; } 29.编程求100~200之间的所有素数,并输出结果。 #include #include intmain() { intn,m=0,k,i; 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 voidmain() { charc; intletters=0,space=0,digit=0,other=0; printf("\n"); while((c=getchar())! ='\n') { if(c>='a'&&c<'z'||c>='A'&&c<='Z') letters++; elseif(c=='') space++; elseif(c>='0'&&c<='9') digit++; else other++; } printf(": %d\n: %d\n: %d\n: %d\n",letters,space,digit,other); } 31.将一个数组中的值按逆序重新存放。 例如,原来顺序为8,6,4,3,2,0。 要求改为0,2,3,4,6,8。 #include #defineN6 voidmain() { 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("%d",a[i]); printf("\n"); } 32.编写一个函数,求数列1+1/2+1/3+1/4+1/5+...1/n,利用主函数调用这个函数并输出结果。 #include #include voidmain() { inti,s=1; floatn,t,a; t=1;a=0;n=1; printf("inputn: ",n); while(i<=n) { a=a+t; i=i++; t=s/i; } printf("a=%10.6f\n",a); } 33.将一个二维数组inta[3][4]的行和列的元素互换,存到另外一个二维数组中。 #include voidmain() { inta[2][3]={{1,2,3},{4,5,6}}; intb[3][2],i,j; printf("arraya: \n"); for(i=0;i<=1;i++) { for(j=0;j<=2;j++) { printf("%5d",a[i][j]); b[j][i]=a[i][j]; } printf("\n"); } printf("arrayb: \n"); for(i=0;i<=2;i++) { for(j=0;j<=1;j++) printf("%5d",b[i][j]); printf("\n"); } } 34.利用循环输出以下图形 ***** **** *** ** * #include intmain() { inti,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个数进行降序排序,并存入数组中。 intpaixu(x) intx[]; {inti,j,t; for(j=1;j<10;j++) for(i=0;i<=9-j;i++) if(x[i]>x[i+1]){t=x[i+1];x[i+1]=x[i];x[i]=t;} } main() {inty[10];inti; for(i=0;i<10;i++) scanf("%d",&y[i]); paixu(y); for(i=0;i<10;i++) printf("%5d",y[i]); printf("\n"); } 36.有一个3乘4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。 #include voidmain() { inti,j,row=0,colum=0,max; inta[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}}; 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); } 37.用冒泡排序法对输入的10个数进行升序排序,并存入数组中。 intpaixu(x) intx[]; {inti,j,t; for(j=1;j<10;j++) for(i=0;i<=9-j;i++) if(x[i]>x[i+1]){t=x[i+1];x[i+1]=x[i];x[i]=t;} } main() {inty[10];inti; for(i=0;i<10;i++) scanf("%d",&y[i]); paixu(y); for(i=0;i<10;i++) printf("%5d",y[i]);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 编程