您好,欢迎访问三七文档
一、程序设计共113题第1题题号:319功能:判断m是否为素数。答案:----------------------inti,k=1;if(m=1)k=0;for(i=2;im;i++)if(m%i==0)k=0;returnk;----------------------第2题题号:351功能:请编一个函数voidfun(inttt[M][N],intpp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入pp所指一维数组中。二维数组中的数已在主函数中赋予。答案:----------------------inti,j;for(j=0;jN;j++){pp[j]=tt[0][j];for(i=1;iM;i++)if(tt[i][j]pp[j])pp[j]=tt[i][j];}----------------------第3题题号:375功能:从键盘上输入任意实数,求出其所对应的函数值。z=e的x次幂(x10)z=log(x+3)(x-3)z=sin(x)/((cos(x)+4)答案:----------------------doublez;if(x10)z=exp(x);elseif(x-3)z=log(x+3);elsez=sin(x)/(cos(x)+4);return(z);----------------------第4题题号:334功能:求给定正整数n以内的素数之积。(n28)答案:----------------------longi,k;longs=1;for(i=2;i=n;i++){for(k=2;ki;k++)if(i%k==0)break;if(k==i)s=s*i;}returns;----------------------第5题题号:333功能:计算并输出给定整数的所有因子之积(包括自身)。规定这个整数的值不大于50。答案:----------------------longs=1,i;for(i=2;i=n;i++)if(n%i==0)s=s*i;returns;----------------------第6题题号:50功能:求出菲波那契数列的前一项与后一项之比的极限的近似值。例如:当误差为0.0001时,函数值为0.618056。答案:----------------------floatf1=1,f2=1,f3;floatr1=2,r2;do{r2=r1;r1=f1/f2;f3=f1+f2;f1=f2;f2=f3;}while(fabs(r1-r2)1e-4);returnr1;----------------------第7题题号:394功能:产生20个[30,120]上的随机整数放入二维数组a[5][4]中,求其中的最小值。答案:----------------------inti,j,s;s=a[0][0];for(i=0;i5;i++)for(j=0;j4;j++)if(sa[i][j])s=a[i][j];return(s);----------------------第8题题号:337功能:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上。例如:当a=45,b=12。调用该函数后,c=2415。答案:----------------------*c=a/10*100+a%10+b/10*10+b%10*1000;----------------------第9题题号:388答案:----------------------if(n%3==0&&n%5==0)return(1);return(0);----------------------第10题题号:16功能:编写函数fun求1!+2!+3!+……+n!的和,在main函数中由键盘输入n值,并输出运算结果。请编写fun函数。例如:若n值为5,则结果为153。答案:----------------------inti;floatf=1,s=0;for(i=1;i=n;i++){f=f*i;s=s+f;}returns;----------------------第11题题号:329功能:对某一正数的值保留2位小数,并对第三位进行四舍五入。答案:----------------------inti;i=(int)(h*1000)%10;if(i=5)return(int)(h*100+1)/100.0;elsereturn(int)(h*100)/100.0;----------------------第12题题号:410功能:编写函数fun将一个数组中的值按逆序存放,并在main()函数中输出。例如:原来存顺序为8,6,5,4,1。要求改为:1,4,5,6,8。答案:----------------------inti,t;for(i=0;in/2;i++){t=arr[i];arr[i]=arr[n-1-i];arr[n-1-i]=t;}----------------------第13题题号:327功能:能计算从1开始到n的自然数的和,n由键盘输入,并在main()函数中输出。答案:----------------------intsum,i;sum=0;for(i=1;i=n;i++){sum=sum+i;}return(sum);----------------------第14题题号:507功能:编写函数fun求一个字符串的长度,在main函数中输入字符串,并输出其长度。答案:----------------------char*p;intn=0;p=p1;while(*p++)n++;returnn;----------------------第15题题号:44功能:求出二维数组周边元素之和,作为函数值返回。二维数组的值在主函数中赋予。答案:----------------------ints=0;inti,j;for(i=0;iM;i++)s=s+a[i][0]+a[i][N-1];for(j=1;jN-1;j++)s=s+a[0][j]+a[M-1][j];returns;----------------------第16题题号:364功能:求一个四位数的各位数字的立方和。答案:----------------------intd,s=0;while(n0){d=n%10;s+=d*d*d;n/=10;}returns;----------------------第17题题号:339功能:判断整数x是否是同构数。若是同构数,函数返回1;否则返回0。x的值由主函数从键盘读入,要求不大于100。说明:所谓“同构数”是指这样的数,这个数出现在它的平方数的右边。例如:输入整数5,5的平方数是25,5是25中右侧的数,所以5是同构数。答案:----------------------intk;k=x*x;if((k%10==x)||(k%100==x))return1;elsereturn0;----------------------第18题题号:331功能:找出一个大于给定整数且紧随这个整数的素数,并作为函数值返回。答案:----------------------inti,k;for(i=n+1;;i++){for(k=2;ki;k++)if(i%k==0)break;if(k==i)return(i);}----------------------第19题题号:317功能:求出N×M整型数组的最大元素及其所在的行坐标及列坐标(如果最大元素不唯一,选择位置在最前面的一个)。例如:输入的数组为:12341561218910112求出的最大数为18,行坐标为2,列坐标为1。答案:----------------------intmax,i,j;max=array[0][0];Row=0;Col=0;for(i=0;iN;i++){for(j=0;jM;j++)if(maxarray[i][j]){max=array[i][j];Row=i;Col=j;}}return(max);----------------------第20题题号:360功能:把20个随机数存入一个数组,然后输出该数组中的最大值。答案:----------------------inti,max=0;for(i=1;isize;i++)if(list[max]list[i])max=i;returnmax;----------------------第21题题号:355功能:对长度为8个字符的字符串,将8个字符按降序排列。例如:原来的字符串为CEAedcab,排序后输出为edcbaECA。答案:----------------------inti,j;chart;for(i=0;inum;i++)for(j=i+1;jnum;j++)if(s[i]s[j]){t=s[i];s[i]=s[j];s[j]=t;}----------------------第22题题号:405功能:编写函数fun计算下列分段函数的值:x^2+x+6x0且x≠-3f(x)=x^2-5x+60≤x10且x≠2及x≠3x^2-x-1其它答案:----------------------floaty;if(x0&&x!=-3.0)y=x*x+x+6;elseif(x=0&&x10.0&&x!=2.0&&x!=3.0)y=x*x-5*x+6;elsey=x*x-x-1;returny;----------------------第23题题号:338功能:编写程序,实现矩阵(3行3列)的转置(即行列互换)例如:输入下面的矩阵:100200300400500600700800900程序输出:100400700200500800300600900答案:----------------------inti,j,t;for(i=0;i3;i++)for(j=0;ji;j++){t=array[i][j];array[i][j]=array[j][i];array[j][i]=t;}----------------------第24题题号:392功能:求一批数中最大值和最小值的积。答案:----------------------inti,max,min;max=min=a[0];for(i=1;in;i++)if(a[i]max)max=a[i];elseif(a[i]min)min=a[i];return(max*min);----------------------第25题题号:407功能:编写函数fun求sum=d+dd+ddd+……+dd...d(n个d),其中d为1-9的数字。例如:3+33+333+3333+33333(此时d=3,n=5),d和n在主函数中输入。答案:----------------------longints=0,t=0;inti;for(i=1;i=n;i++){t=t+d;s=s+t;d=d*10;}returns;----------------------第26题题号:395功能:求n阶方阵主、副对角线上的元素之积。答案:----------------------inti,j;floatt=1;for(i=0;iN;i++)for(j=0;jN;j++)if(i==j||i+j==N-1)t=t*arr[i][j];return(t);----------------------第27题题号:42功能:从字符串s中删除指定的字符c。答案:----------------------inti,k=0;for(i=0;s[i]!='\0';i++)if(s[i]!=c)s[k++]=s[i];s[k]='\0
本文标题:94程序设计
链接地址:https://www.777doc.com/doc-3211585 .html