C语言上机题参考答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

一、表达式1、从键盘输入任意一个四位正整数,将其各位数字反序输出到屏幕上。示例:输入1234输出:4321#includestdio.hvoidmain(){intx;scanf(%d,&x);printf(%d%d%d%d\n,x%10,x/10%10,x/100%10,x/1000);}2、定义三个整型变量,从键盘输入三个整数,计算平均值,计算结果输出到屏幕上,平均值保留2位小数。示例:输入:按如下格式输入3个数:212225输出:(注意保留2位小数)22.67#includestdio.hvoidmain(){inta,b,c;scanf(%d%d%d,&a,&b,&c);printf(%.2f\n,(a+b+c)/3.0);}二、选择结构3、输入一个字符,如果是小写字母,转化为大写字母后输出,其它字符原样输出。示例:输入a输出A#includestdio.hvoidmain(){charch;ch=getchar();if(ch='a'&&ch='z')ch-=32;putchar(ch);}4、输入三个整数,然后输出最大值。示例:输入123输出3#includestdio.hvoidmain(){inta,b,c;scanf(%d%d%d,&a,&b,&c);if(ab)a=b;if(ac)a=c;printf(%d,a);}5、输入一个三位正整数x,根据十位上的数输出如下:┌百位(十位上的数是奇数)输出=┤└个位(十位上的数是偶数)示例1:输入123输出3#includestdio.hvoidmain(){inta;scanf(%d,&a);if(a/10%2)printf(%d,a/100);elseprintf(%d,a%10);}6、计算分段函数,输入x(整数),输出y(整数):┌2x+1(x1)y=│4x+3(x=1)└6x+5(x1)示例:输入1输出7#includestdio.hvoidmain(){intx,y;scanf(%d,&x);if(x1)y=2*x+1;if(x==1)y=4*x+3;if(x1)y=6*x+5;printf(%d,y);}三、循环图形7、编程输出n行图形(n值通过键盘输入)假设n=5,则图形如下:***************假设n=6,则图形如下:*********************#includestdio.hvoidmain(){inti,j,n;scanf(%d,&n);for(i=1;i=n;i++){for(j=1;j=i;j++)printf(*);printf(\n);}}8、编程输出n行图形(n值通过键盘输入),假设n=5,则图形如下:***************假设n=6,则图形如下:*********************#includestdio.hvoidmain(){inti,j,k,n;scanf(%d,&n);for(i=1;i=n;i++){for(j=1;j=n-i;j++)printf();for(k=1;k=i;k++)printf(*);printf(\n);}}9、编程输出n行图形(n值通过键盘输入),假设n=5,则图形如下:*************************假设n=6,则图形如下:************************************#includestdio.hvoidmain(){inti,j,k,n;scanf(%d,&n);for(i=1;i=n;i++){for(j=1;j=n-i;j++)printf();for(k=1;k=2*i-1;k++)printf(*);printf(\n);}}10、编程输出n行图形(n值通过键盘输入),假设n=5,则图形如下:***************假设n=6,则图形如下:*********************#includestdio.hvoidmain(){inti,j,k,n;scanf(%d,&n);for(i=1;i=n;i++){for(j=1;j=i;j++)printf();for(k=1;k=n-i+1;k++)printf(*);printf(\n);}}11、编程输出n行图形(n值通过键盘输入),假设n=5,则图形如下:***************假设n=6,则图形如下:*********************#includestdio.hvoidmain(){inti,j,n;scanf(%d,&n);for(i=1;i=n;i++){for(j=1;j=n-i+1;j++)printf(*);printf(\n);}}四、循环12、输入若干字符(回车'\n'为止),统计数字字符、大写字母、小写字母和其它字符的个数。示例输入1ABabc@#%!输出:(共四个数,它们是:数字字符个数大写字母个数小写字母个数其它字符个数)1234#includestdio.hvoidmain(){charch;intsz=0,dx=0,xx=0,qt=0;while((ch=getchar())!='\n'){if(ch='0'&&ch='9')sz++;elseif(ch='A'&&ch='Z')dx++;elseif(ch='a'&&ch='z')xx++;elseqt++;}printf(%d%d%d%d\n,sz,dx,xx,qt);}13、计算级数和s=1/(1*3)+2/(3*5)+3/(5*7)+....+n/((2*n-1)*(2*n+1))。(n从键盘输入,保留3位小数)示例输入:2输出:0.467#includestdio.hvoidmain(){inti,n;doubles=0;scanf(%d,&n);for(i=1;i=n;i++)s+=1.0*i/((2*i-1)*(2*i+1));printf(%.3f,s);}14、计算s=1-1/3+1/5-1/7+1/9-...前n项和。(n从键盘输入,保留2位小数)。示例输入:2输出:0.67#includestdio.hvoidmain(){inti,n;doubles=0;scanf(%d,&n);for(i=1;i=n;i++)s+=1.0/(2*i-1)*(i%2?1:-1);printf(%.2f\n,s);}15、计算级数2/1,3/2,5/3,8/5,13/8,21/13,...前n项之和。(n从键盘输入,保留3位小数)示例输入:2输出:3.500#includestdio.hvoidmain(){inti,n;doublea=2,b=1,t,s=0;scanf(%d,&n);for(i=1;i=n;i++){s+=a/b;t=a;a=a+b;b=t;}printf(%.3f\n,s);}16、输入一个a=6的偶数,输出满足a=b+c素数对b和c,这里b和c是素数,且b=c。示例1:输入:6输出:33示例2:输入:10输出:(按b由小至大输出)3755#includestdio.hvoidmain(){inta,b,c,i;scanf(%d,&a);for(b=2;b=a/2;b++){for(i=2;ib;i++)if(b%i==0)break;if(i==b){c=a-b;for(i=2;ic;i++)if(c%i==0)break;if(i==c)printf(%d%d\n,b,c);}}}五、一维数组17、输入不多于500个大于0的整数到一维数组(当输入的数为0时结束输入),然后降序排序,最后将奇数输出。输出格式为:下标值整数下标值整数...示例:输入:123450输出:052341*/#includestdio.hvoidmain(){inta[500],i,j,t,n=0;scanf(%d,&a[n]);while(a[n]!=0){n++;scanf(%d,&a[n]);}for(i=0;in-1;i++)for(j=0;jn-1;j++)if(a[j]a[j+1])t=a[j],a[j]=a[j+1],a[j+1]=t;for(i=0;in;i++)if(a[i]%2)printf(%d%d\n,i,a[i]);}18、输入不多于500个大于0的整数到一维数组(当输入的数为0时结束输入),然后升序排序,最后将其中完数输出。提示:一个数的各因子之和等于该数本身即为完数,例如:6的因子是1,2,3,而6=1+2+3,所以6是完数。28也是完数,28=1+2+4+7+14。示例:输入:364528116370输出:6628*/#includestdio.hvoidmain(){inta[500],i,j,t,n=0,s;scanf(%d,&a[n]);while(a[n]!=0){n++;scanf(%d,&a[n]);}for(i=0;in-1;i++)for(j=0;jn-1;j++)if(a[j]a[j+1])t=a[j],a[j]=a[j+1],a[j+1]=t;for(i=0;in;i++){s=0;for(j=1;ja[i];j++)if(a[i]%j==0)s+=j;if(s==a[i])printf(%d,a[i]);}}19、首先输入不多于500个整数到一维数组,然后降序排序,最后将下标值为奇的元素输出。输入格式:整数个数整数1整数2整数3...输出格式下标数组元素值下标数组元素值...示例:输入:512345输出:1432*/#includestdio.hvoidmain(){inta[500],i,j,t,n;scanf(%d,&n);for(i=0;in;i++)scanf(%d,&a[i]);for(i=0;in-1;i++)for(j=0;jn-1;j++)if(a[j]a[j+1])t=a[j],a[j]=a[j+1],a[j+1]=t;for(i=0;in;i++)if(i%2)printf(%d%d\n,i,a[i]);}20、设有1=n=500个人围坐一圈并按顺时针方向从1到n编号,从第s个人开始进行1到m的报数,报数到第m个人,此人出圈,再从他的下一个人重新开始1到m的报数,如此进行下去直到所有的人都出圈为止。要求按出圈次序输出编号。输入格式如下:nsm示例:输入:613输出:364251*/#includestdio.hvoidmain(){inta[500],n,s,m,i,b=0,z=0;scanf(%d%d%d,&n,&s,&m);for(i=0;in;i++)a[i]=i+1;i=s-1;while(zn)if(a[i++%n]){b++;if(b%m==0){z++;printf(%d,a[(i-1)%n]);a[(i-1)%n]=0;}}}六、二维数组21、定义5×5的整形数组,输入每行中的前4个元素值,每行第5个是前4个元素的平均值。最后输出示例1:输入:5行12341234123412341234输出:5行1234212342123421234212342示例2:输入:5行11112222333344445555输出:5行1111122222333334444455555*/#includestdio.hvoidmain(){inta[5][5],i,j;for(i=0;i5;i++){for(j=0;j4;j++)scanf(%d,&a[i][j]);a[i][4]=(a[i][0]+a[i][1]+a[i][2]+a[i][3])/4;}for(i=0;i5;i++){for(j=0;j5;j++)printf(%d,a[i][j]);printf(\n);}}22、定义5×5的整形数组,输入每列中的前4个元素值,每列第5个是前4个元素的平均值。最后输出示例

1 / 21
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功