1“高级语言程序设计”编程题1.从键盘输入3个整数,求其中的最大数和最小数,并输出结果。2.从键盘上输入一个3*3的整数矩阵,求其各行的平均值并输出,输出时保留两位小数。3.输出x2的值,x取值从0到10。4.从键盘上输入一个3*4的整数矩阵,要求输出其最大元素的值,以及它的行号和列号。5.编写一个程序从键盘输入10个数,要求输出其中最小的。6.编写一个函数根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。s=7.输出1000年(包括1000年)到1999年之间的所有闰年,要求每三个一行,分行输出。8.编写程序打印所有的“水仙花数”。“水仙花数”指一个三位数,其各位数字立方和等于该数本身,例如153是一个“水仙花数”,因为153=1×1×1+3×3×3+5×5×5。9.编写一个程序,输入一个3位数的正整数,然后反向输出对应的数。如:123,则输出321。参考答案:#includestdio.hvoidmain(){inti,s=0,j;scanf(%d,&i);if(i=100&&i=999){j=i%10;s=s+j;j=(i-j)/10%10;s=s*10+j;j=i/100;s=s*10+j;printf(theinversenumberis%d,s);}2elseprintf(inputerroe!);}10.从键盘输入10名学生的C语言成绩存入一维数组内,编写程序计算10名学生的最高分、平均分和及格人数。参考答案:#includestdio.hvoidmain(){inti,score[10],max,min;floatave;for(i=0;i10;i++)scanf(%d,&score[i]);max=score[0];min=score[0];ave=score[0];for(i=1;i10;i++){if(score[i]max)max=score[i];if(score[i]min)min=score[i];ave=ave+score[i];}ave=ave/10.0;printf(max=%d,min=%d,ave=%f,max,min,ave);}11.编写一个程序,判断用户输入的字符是否是数字,若是数字,则输出“anumericalcharacter”,否则输出“othercharacter”。参考答案:#includestdio.hvoidmain(){charch;ch=getchar();if(ch='0'&&ch='9')printf(anumericalcharacter);elseprintf(othercharacter);}312.从键盘输入12个数存入二维数组a[3][4]中,编写程序求出最大元素的值及它所在的行号和列号。参考答案:#includestdio.hvoidmain(){inti,j,a[3][4],max,index_i,index_j;for(i=0;i3;i++)for(j=0;j4;j++)scanf(%d,&a[i][j]);max=a[0][0];index_i=0;index_j=0;for(i=0;i3;i++)for(j=0;j4;j++)if(a[i][j]max){max=a[i][j];index_i=i;index_j=j;}printf(max=%d,index_x=%d,index_y=%d,max,index_i,index_j);}13.打印所有的“水仙花数”,所谓“水仙花数”是指一个三位正整数,其各位数字的立方和等于该数本身。参考答案:#includestdio.hvoidmain(){inti,j,k,n;printf(resultis:);for(n=100;n1000;n++){i=n/100;j=(n-i*100)/10;k=n%10;if(n==i*i*i+j*j*j+k*k*k)printf(%d,n);}printf(\n);}14.利用函数将给定的3×3二维数组转置。4参考答案:#includestdio.hvoidconvert(intarray[3][3]){inti,j,k;for(i=0;i3;i++)for(j=i+1;j3;j++){k=array[i][j];array[i][j]=array[j][i];array[j][i]=k;}}voidmain(){inti,j;inta[3][3]={1,2,3,4,5,6,7,8,9};printf(转换前:\n);for(i=0;i3;i++){for(j=0;j3;j++)printf(\t%d,a[i][j]);printf(\n);}convert(a);printf(\n转换后:\n);for(i=0;i3;i++){for(j=0;j3;j++)printf(\t%d,a[i][j]);printf(\n);}}15.编程输入a、b、c的值后,输出一元二次方程ax2+bx+c=0的解。参考答案:#includestdio.h#includemath.hvoidmain(){floata,b,c,d,x1,x2;printf(inputa,b,c:);5scanf(%f%f%f,&a,&b,&c);d=sqrt(b*b-4*a*c);x1=(-b+d)/(2*a);x2=(-b-d)/(2*a);printf(x1=%.2fx2=%.2f\n,x1,x2);}16.从键盘上输入任意两个数和一个运算符(+、-、*、/),根据输入的运算符对两个数计算,并输出结果。参考答案:#includestdio.hvoidmain(){floata,b;inttag=0;charch;floatresult;printf(inputtwonumber:);scanf(%f%f,&a,&b);fflush(stdin);printf(inputarithmeticlable(+-*/):);scanf(%c,&ch);switch(ch){case'+':result=a+b;break;case'-':result=a-b;break;case'*':result=a*b;break;case'/':if(!b){printf(divisoriszero!\n);tag=1;}elseresult=a/b;break;default:printf(illegalarithmeticlable\n);tag=1;}if(!tag)printf(%.2f%c%.2f=%.2f\n,a,ch,b,result);}17.编写输入一个字符串,计算其中空格的个数。618.采用二维数组输入多个学生五门课的成绩,分别求出每个学生的平均成绩和每门课的成绩。19.编写程序,逆转字符串。20.编写程序,统计一个英语文本中的英语单词个数。21.打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。参考答案:#include“stdio.h”voidmain(){inti,j,k,n;for(i=1;i=9;i++)for(j=0;j=9;j++)for(k=0;k=9;k++)if(i*i*i+j*j*j+k*k*k==i*100+j*10+k){n=i*100+j*10+k;printf(n=%d\n,n);}}22.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。参考答案:#includestdio.hmain(){intn,t,number=20;floata=2,b=1,s=0;for(n=1;n=number;n++){s=s+a/b;t=a;a=a+b;b=t;}printf(sumis%9.6f\n,s);}723.找出101~200中所有的素数。参考答案:#includestdio.h#includemath.hintisprimer(intn){inti,m;m=(int)(sqrt(n));for(i=2;i=m;i++){if(n%i==0)return0;}return1;}voidmain(){inti;for(i=101;i=200;i++)if(isprimer(i))printf(%d\n,i);}24.使用循环结构编写程序,打印出如下图案*********参考答案:#include“stdio.h”voidmain(){inti,j,k;for(i=1;i=3;i++){for(j=1;j=3-i;j++)printf();for(k=1;k=2*i-1;k++)8printf(*);printf(\n);}}25.用冒泡排序法将10个整数由大到小排序。参考答案:#includestdio.hvoidmain(){inta[10],i,j,t;printf(input%dnumbers:\n,10);for(i=0;i10;i++)scanf(%d,&a[i]);for(i=0;i9;i++)for(j=0;j9-i;j++)if(a[j]a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}printf(thesortednumbers:\n);for(i=0;i10;i++)printf(%d,a[i]);}26.输入任意正整数,编程判断该数是否为回文数(回文数是指从左到右读与从右到左读一样,如12321)。参考答案:#includestdio.hvoidmain(){intn,m=0,s,r;printf(Inputdatais:);scanf(%d,&n);s=n;while(s!=0){r=s%10;m=10*m+r;s=s/10;}if(m==n)9printf(yes\n);elseprintf(no\n);}27.求出10至1000之内能同时被2、3、7整除的数,并输出。28.输入一字符串,检查是否回文(回文是指正反序相同,如,LeveL),若是则输出“Yes”,否则输出“No”。29.设计一个函数,用来判断一个整数是否为素数。参考答案:#includestdio.h#includemath.hintIsPrimer(intn){inti;if(n=1)return0;for(i=2;i=(int)sqrt(n);i++){if(n%i==0)return0;}return1;}voidmain(){inti;scanf(%d,&i);if(IsPrimer(i))printf(这是素数\n);elseprintf(这不是素数\n);}printf(thesortednumbers:\n);for(i=0;i10;i++)printf(%d,a[i]);}30.从键盘上输入若干学生成绩(成绩在0~100之间),计算平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。参考答案:#includestdio.hvoidmain(){10floatx[1000],sum=0,ave,a;intn=0,i;printf(Entermark:\n);scanf(%f,&a);while(a=0&&a=100&&n1000){sum+=a;x[n]=a;n++;scanf(%f,&a);}ave=sum/n;printf(Output:\n);printf(ave=%f\n,ave);for(i=0;in;i++)if(x[i]ave)printf(%f\n,x[i]);}31.设计一个函数,用来判断一个整数是否为素数。参考答案:#includestdio.h#includemath.hintIsPrimer(intn){inti;if(n=1)return0;for(i=2;i=(