C语言编程答案(工大题库)

C语言编程答案(工大题库)

ID:41032318

大小:27.92 KB

页数:22页

时间:2019-08-14

上传者:qwe189537
C语言编程答案(工大题库)_第1页
C语言编程答案(工大题库)_第2页
C语言编程答案(工大题库)_第3页
C语言编程答案(工大题库)_第4页
C语言编程答案(工大题库)_第5页
资源描述:

《C语言编程答案(工大题库)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、输入一个字符,判断它是否是大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。#includeintmain(){charc1;printf("inputalatter: ");scanf("%c",&c1);if(c1>='A'&&c1<='Z')c1=c1+32;printf("%c",c1);return0;}2、输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。#includeintmain(){charc;intletters=0,space=0,digit=0,other=0;printf("Pleaseinputletters: ");while((c=getchar())!=' '){if(c>='a'&&c<='z'||c>='A'&&c<='Z')letters++;elseif(c>='0'&&c<='9')digit++;elseif(c=='')space++;elseother++;}printf("字母数:%d 数字数:%d 空格数:%d 其他字母数:%d ",letters,digit,space,other);return0;}3、编写一个函数,求数列1+1/2+1/3+1/4+1/5+...1/n,利用主函数调用这个函数并输出结果。#includeintmain(){intn;floatc;floatsum(intn);scanf("%d",&n);c=sum(n);printf("%f ",c); }floatsum(intn){inti;floatsum=0.0;for(i=1;i<=n;i++)sum=sum+1.0/i;returnsum;}4、输入一个字符,判断它是否是小写字母,如果是,将它转换成大写字母;如果不是,不转换。然后输出最后得到的字符。#includeintmain(){charc1;printf("inputalatter: ");scanf("%c",&c1);if(c1>='a'&&c1<='z')c1=c1-32;printf("%c",c1);return0;}5、求S=a+aa+aaa+...+aa...a(n个a)之值。其中a是一个数字,n代表a的位数。例如:2+22+222+2222+22222(此时n为5),n由键盘输入。#includeintmain(){inti,a,b,c,n;scanf("%d,%d",&a,&n);c=b=a;for(i=2;i<=n;i++){b=10*b+a;c=b+c;}printf("%d ",c);return0;}6、将一个二维数组行和列的元素互换,存到另外一个二维数组中。#includeintmain() {inti,j;inta[3][3]={1,2,3,4,5,6,7,8,9},b[3][3];printf("arraya: ");for(i=0;i<=2;i++){for(j=0;j<=2;j++){printf("%5d",a[i][j]);b[j][i]=a[i][j];}printf(" ");}printf(" ");printf("arrayb: ");for(i=0;i<=2;i++){for(j=0;j<=2;j++)printf("%5d",b[i][j]);printf(" ");}return0;}7、有三个整数a,b,c,由键盘输入,输出其中最大者。#includeintmain(){inta,b,c,d;intmax(intx,inty,intz);scanf("%d%d%d",&a,&b,&c);d=max(a,b,c);printf("%d ",d);return0;}intmax(intx,inty,intz){intq,p;if(x>y)q=x;elseq=y;if(z>q)p=z;elsep=q;returnp; }8、将一个数组中的值按逆序重新存放。例如,原来顺序为8,6,4,3,2,0。要求改为0,2,3,4,6,8。#includeintmain(){inta[6]={8,6,4,3,2,0};inti,b[6];printf("arraya: ");for(i=0;i<6;i++)printf("%5d",a[i]);printf(" ");for(i=0;i<6;i++)b[i]=a[5-i];printf(" ");printf("arrayb: ");for(i=0;i<6;i++)printf("%5d",b[i]);printf(" ");return0;}9、有分段函数:当x<-5时,y=x+10;当-5≤x≤5时,y=x/2;当x>5时,y=2x-10.编一程序,输入x的值,输出y的值。#includeintmain(){floaty,x;printf("请输入X的值");scanf("%f",&x);if(x<-5){y=x+10;printf("%3f,y=x+10=%f ",x,y);}elseif(x>=-5&&x<=5){y=x/2;printf("%3f,y=x/2=%f ",x,y);}else{y=2*x-10; printf("%3f,y=2*x-10=%f ",x,y);}return0;}10、用pi4≈1-1/3+1/5-1/7+...公式求pi的近似值,直到某一项的绝对值小于10的-6次方为止。#include#includeintmain(){intsign=1,count=0;doublepi=0.0,n=1.0,term=1.0;while(fabs(term)>=1e-8){pi=pi+term;n=n+2;sign=-sign;term=sign/n;}pi=pi*4;printf("pi=%10.8f ",pi);return0;}11、输出以下图形****************#includeintmain(){inti,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(" ");}//下面的可以不要/*for(i=0;i<=2;i++){for(j=0;j<=i;j++)printf("");for(k=0;k<=4-2*i;k++)printf("*");printf(" "); }*/return0;}12、输入三个实数,将这三个数按由大到小的顺序排列,并输出这三个数。#includeintmain(){inta,b,c,t;printf("请输入a,b,c的值 ");scanf("%d,%d,%d",&a,&b,&c);if(aintmain(){intday,x1,x2;day=9;x2=1;while(day>0){x1=(x2+1)*2; x2=x1;day--;}printf("total=%d ",x1);return0;}14、用冒泡排序法对输入的10个数进行升序排序,并存入数组中。#includeintmain(){inta[10],i,j,t;printf("pleaseinput10numbers: ");for(i=0;i<10;i++)scanf("%d",&a[i]);for(j=0;j<=9;j++)for(i=1;i<9-j;i++)if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}printf("thesortednumbers: ");for(i=0;i<10;i++)printf("%5d",a[i]);printf(" ");return0;}15、输入三角形的三边长,求三角形面积。求三角形面积的公式为area=sqrt(s(s-a)(s-b)(s-c)),其中s=(a+b+c)/2。#include/*有问题*/#includeintmain(){floata,b,c,s,area;printf("pleaseinputa,b,c: ");scanf("%f,%f,%f",&a,&b,&c);s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));printf("a=%ftb=%ft%f ",a,b,c);printf("area=%f ",area);return0;}16、一个数如果恰好等于它的因子之和,这个数就称为完数。例如,6的因子为1、2、3 ,而6=1+2+3,因此6是完数。编程求1000以内所有完数。#defineM1000#includeintmain(){intk1,k2,k3,k4,k5,k6,k7,k8,k9,k10;inti,a,n,s;for(a=2;a<=M;a++){n=0;s=a;for(i=1;i1)printf("%d,%d",k1,k2);if(n>2)printf(",%d",k3);if(n>3)printf(",%d",k4);if(n>4)printf(",%d",k5); if(n>5)printf(",%d",k6);if(n>6)printf(",%d",k7);if(n>7)printf(",%d",k8);if(n>8)printf(",%d",k9);if(n>9)printf(",%d",k10);printf(" ");}}return0;}17、有三个整数a,b,c,由键盘输入,输出其中最小者。#includeintmain(){inta,b,c,t;printf("请输入a,b,c的值 ");scanf("%d,%d,%d",&a,&b,&c);if(aintmain(){ints=0,i,j,a; for(i=1;a=1,i<=9;i=i+2){for(j=1;j<=i;j++)a=a*j;s=s+a;}printf("%d ",s);return0;}19、有分段函数:当x<-10时,y=|x|+5;当-10≤x≤10时,y=4x-8;当x>10时,y=sqrt(x)。编一程序,输入x的值,输出y的值。#include#includeintmain(){intx;floaty;printf("输入x:");scanf("%d",&x);if(x<-10){y=-x+5;printf("x=%3d,y=|x|+5=%f ",x,y);}elseif(x<=10){y=4*x-8;printf("x=%d,y=4*x-8=%f ",x,y);}else{y=sqrt(x);printf("x=%d,y=sqrt(x)=%f ",x,y);}return0;}20、有一函数:当x<0时,y=-1;当x=0时,y=0;当x>0时,y=1。编一程序,输入x的值,输出y的值。#includeintmain(){intx,y;printf("enterx:");scanf("%d",&x);if(x==0)y=-1;elseif(x!=0)if(x>0)y=1; elsey=0;printf("x=%d,y=%d ",x,y);return0;}21、输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。#includeintmain(){inti,j,k,n;printf("parcissusnumbersare");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(" ");return0;}22、写一个函数,求两个整数中的较大者,用主函数调用这个函数,并输出结果,两个整数由键盘输入。#includeintmain(){inta,b,c;intmax(intx,inty);printf("请输入a,b的值: ");scanf("%d,%d",&a,&b);c=max(a,b);printf("%d ",c);return0;}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;returnz;} 23、编程求2!+4!+6!+8!+10!的值,并输出结果。#includeintmain(){ints=0,i,j,a;for(i=2;a=1,i<=10;i=i+2){for(j=1;j<=i;j++)a=a*j;s=s+a;}printf("%d ",s);return0;}24、编程求圆面积、圆周长。要求圆半径由键盘输入,输出时要求有文字说明,取小数点后两位数字。#include#definepi3.1415926intmain(){floatr,h,c,s,bm,v,zt;printf("请输入圆半径r,圆柱高h: ");scanf("%f,%f",&r,&h);c=2*pi*r;s=r*r*pi;bm=4*pi*r*r;v=3.0/4.0*pi*r*r*r;zt=pi*r*r*h;printf("圆周长为:c=%f 圆面积为:s=%f 圆球表面积为:bm=%f 圆球体积为:v=%f 圆柱体积为:zt=%f ",c,s,bm,v,zt);return0;}25、编程求1~100之间的所有素数,并输出结果。#include#includeintmain(){intn,k,i,m=0;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(" ");}printf(" ");return0;}26、求一个3×3的整型矩阵对角线元素之和。#includeintmain(){inta[3][3],sum=0;inti,j;printf("enterdata: ");for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%3d",&a[i][j]);for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%5d",a[i][j]);printf(" ");}for(i=0;i<3;i++)sum=sum+a[i][i];printf("sum=%6d ",sum);return0;}27、将一个二维数组行和列的元素互换,存到另外一个二维数组中。#includeintmain(){inta[2][2],b[2][2],i,j;printf("enterdata: ");for(i=0;i<2;i++)for(j=0;j<2;j++)scanf("%d",&a[i][j]);printf(" ");printf("arraya: ");for(i=0;i<2;i++){for(j=0;j<2;j++) {printf("%3d",a[i][j]);b[j][i]=a[i][j];}printf(" ");}printf("arrayb: ");for(i=0;i<2;i++){for(j=0;j<2;j++)printf("%3d",b[i][j]);printf(" ");}printf(" ");return0;}28、编程求1!+2!+3!+…+10!的值,并输出结果。#includeintmain(){intsum=0,i,j,a;for(i=1;i<=10;i++){for(j=1,a=1;j<=i;j++)a=a*j;sum=sum+a;}printf("%d ",sum);return0;}29、编写两个函数分别求两个整数的最大公约数和最小公倍数,在主函数中调用这两个函数,并输出结果,两个整数由键盘输入。#includeintmain(){inthcf(int,int);intlcd(int,int,int);intu,v,h,l;scanf("%d,%d",&u,&v);h=hcf(u,v);printf("H.C.F=%d ",h);l=lcd(u,v,h);printf("L.C.D=%d ",l);return0; }inthcf(intu,intv){intt,r;if(v>u){t=u;u=v;v=t;}while((r=u%v)!=0){u=v;v=r;}return(v);}intlcd(intu,intv,inth){return(u*v/h);}30、输入一个华氏温度,要求输出摄氏温度,输出时要求有文字说明,取小数点后两位数字。公式为c=5/9(f-32)。#includeintmain(){floatf,c;printf("请输入一个华氏温度:");scanf("%f",&f);c=(5.0/9.0)*(f-32);printf("对应的摄氏温度为:");printf("%6.2f ",c);return0;}31、编写程序,将两个字符串连接起来,不要使用strcat函数。#includevoidmain(){charstr1[20],str2[20];inti=0,j=0;printf("请输入字符串1: ");scanf("%s",str1);printf("请输入字符串2: ");scanf("%s",str2);while(str1[i]!='')i++;while(str2[j]!='')str1[i++]=str2[j++];str1[i]=''; printf("合并之后的字符串为:%s ",str1);}32、有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13......,求出这个数列前20项之和。#includeintmain(){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 ",s);return0;}33、输出以下图形****************#includeintmain(){inti,j,k;for(i=0;i<=3;i++){for(j=0;j<=i;j++)printf("");for(k=0;k<=6-2*i;k++)printf("*");printf(" ");}return0;}34、有一个3乘4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。#includeintmain(){inta[3][4]={12,23,56,89,78,85,94,63,41,75,86,52},i,j,max;max=a[0][0]; i=0;j=0;for(i=0;i<3;i++){for(j=0;j<4;j++){if(maxintmain(){longintf1,f2;inti;f1=1;f2=1;for(i=1;i<=20;i++){printf("%12d%12d",f1,f2);if(i%2==0)printf(" ");f1=f1+f2;f2=f2+f1;}return0;}36、编写程序,判断某一年是否是闰年。(闰年的条件是:能被4整除,但是不能被100整除,或者可以被400整除。#includeintmain(){intn,leap;scanf("%d",&n);if(n%4==0){if(n%100==0){if(n%400==0)leap=1;elseleap=0; }elseleap=1;}elseleap=0;if(leap)printf("%dis",n);elseprintf("%disnot",n);printf("aleapyear. ");}37、一个球从100m高度自由落下,每次落地后又反跳回原高度的一半,再落下,再反弹。求它在第10次落地时共经过多少米?#includeintmain(){floatsn=100,hn=sn/2;intn;for(n=2;n<=10;n++){hn=hn/2;sn=sn+2*hn;}printf("%f ",sn);return0;}38、输出“魔方矩阵”。所谓魔方阵是指这样的矩阵,它的每一行、每一列和对角线之和均相等。例如,三界魔方阵为816357492要求输出1---n*n的自然数构成的魔方阵。#includeintmain(){inta[15][15],i,j,k,p,n;p=1;while(p==1){printf("entern(n=1--15):");scanf("%d",&n);if((n!=0)&&(n<=15)&&(n%2!=0))p=0;}for(i=1;i<=n;i++)for(j=1;j<=n;j++)a[i][j]=0;j=n/2+1;a[1][j]=1; for(k=2;k<=n*n;k++){i=i-1;j=j+1;if((i<1)&&(j>n)){i=i+2;j=j-1;}else{if(i<1)i=n;if(j>n)j=1;}if(a[i][j]==0)a[i][j]=k;else{i=i+2;j=j-1;a[i][j]=k;}}for(i=1;i<=n;i++){for(j=1;j<=n;j++)printf("%5d",a[i][j]);printf(" ");}return0;}39、编程求100~200之间的所有素数,并输出结果。#include#includeintmain(){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(" ");} printf(" ");return0;}40、编写一个程序,将字符数组a中的全部字符复制到字符数组b中。不要使用strcpy函数。#include#includevoidmain(){chara[40],b[40];inti;printf("请输入a:");scanf("%s",a);for(i=0;i<=strlen(a);i++)b[i]=a[i];printf("b:%s ",b);}41、从键盘输入一行字符,统计出输入的字符个数(注:不要使用strlun函数编程)。#includevoidmain(){intalphabet=0,i=0;charstr[100];printf("请输入一个字符串 ");gets(str);for(i=0;str[i]!='';i++)++alphabet;printf("有%d个字母 ",alphabet);}42、输入学生的成绩,利用计算机将学生的成绩划分出等级并输出:#includevoidmain(){floatm;printf("输入学生成绩: ");scanf("%f",&m);if((m>100)||(m<0))printf("数据有误 ");elseif(m>=90)printf("A级 ");elseif(m>=80)printf("B级 ");elseif(m>=70)printf("C级 ");elseif(m>=60)printf("D级 ");elseprintf("E级 ");} 43、给出年、月、日,计算该日是该年的第几天。#includeintmain(){intsum_day(intmonth,intday);intleap(intyear);intyear,month,day,days;printf("inputdate(year,month,day):");scanf("%d,%d,%d",&year,&month,&day);printf("%d/%d/%d",year,month,day);days=sum_day(month,day);/*调用函数sum_day*/if(leap(year)&&month>=3)/*调用函数leap*/days=days+1;printf("isthe%dthdayinthisyear. ",days);return0;}intsum_day(intmonth,intday)/*函数sum_day:计算日期*/{intday_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};inti;for(i=1;iintmain(){chara[5]={'*','*','*','*','*'};inti,j,k;charspace='';for(i=0;i<4;i++)//这里的4为行数{printf(" ");printf(""); for(j=1;j<=i;j++)printf("%c",space);for(k=0;k<5;k++)printf("%c",a[k]);}printf(" ");return0;}45、输出以下杨辉三角形(要求输出10行)。11112113311464115101051#include#defineN10intmain(){inti,j,a[N][N];for(i=0;i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭