版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
万维考试系统-C语言题库万维考试系统-C语言题库万维考试系统-C语言题库xxx公司万维考试系统-C语言题库文件编号:文件日期:修订次数:第1.0次更改批准审核制定方案设计,管理制度第1题(分)题号:390功能:编写函数求1~100中奇数的平方和。结果为。答案:----------------------floats=0;inti;for(i=1;i<=n;i=i+2)s=s+i*i;return(s);----------------------第2题(分)题号:320功能:在键盘上输入一个3行3列矩阵的各个元素的值(值为整数),然后输出主对角线元素的积,并在fun()函数中输出。答案:----------------------intsum;inti,j;sum=1;for(i=0;i<3;i++)sum=sum*a[i][i];returnsum;----------------------第3题(分)题号:324功能:能计算从1开始到n的自然数中偶数的平方的和,n由键盘输入,并在main()函数中输出。(n是偶数)答案:----------------------intsum,i;sum=0;for(i=2;i<=n;i=i+2){sum=sum+i*i;}return(sum);----------------------第4题(分)题号:345功能:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的个位和百位上。例如:当a=45,b=12。调用该函数后,c=4251。答案:----------------------*c=a/10*1000+a%10*10+b/10+b%10*100;----------------------第5题(分)题号:366功能:求一组数中大于平均值的数的个数。例如:给定的一组数为1,3,6,9,4,23,35,67,12,88时,函数值为3。答案:----------------------inti,k=0;floats=0,ave;for(i=0;i<n;i++)s+=a[i];ave=s/n;printf("%f",ave);for(i=0;i<n;i++)if(a[i]>ave)k++;returnk;----------------------第6题(分)题号:355功能:对长度为8个字符的字符串,将8个字符按降序排列。例如:原来的字符串为CEAedcab,排序后输出为edcbaECA。答案:----------------------inti,j;chart;for(i=0;i<num;i++)for(j=i+1;j<num;j++)if(s[i]<s[j]){t=s[i];s[i]=s[j];s[j]=t;}----------------------第7题(分)题号:44功能:求出二维数组周边元素之和,作为函数值返回。二维数组的值在主函数中赋予。答案:----------------------ints=0;inti,j;for(i=0;i<M;i++)s=s+a[i][0]+a[i][N-1];for(j=1;j<N-1;j++)s=s+a[0][j]+a[M-1][j];returns;----------------------第8题(分)题号: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;----------------------第9题(分)题号:383功能:用函数实现字符串的复制,不允许用strcpy()函数。答案:----------------------inti;for(i=0;str1[i]!='\0';i++)str2[i]=str1[i];str2[i]='\0';----------------------第10题(分)题号:310功能:计算并输出给定整数n的所有因子之和(不包括1与自身)。注意:n的值不大于1000。例如:n的值为855时,应输出704。答案:----------------------ints=0,i;for(i=2;i<n;i++)if(n%i==0)s=s+i;returns;----------------------第11题(分)题号:354功能:求小于lim的所有素数并放在aa数组中,该函数返回所求出素数的个数。 答案:----------------------intn=0;inti,j;for(i=2;i<=lim;i++){for(j=2;j<i;j++)if(i%j==0)break;if(j==i)aa[n++]=i;}returnn;----------------------第12题(分)题号:341功能:删除所有值为y的元素。数组元素中的值和y的值由主函数通过键盘输入。答案:----------------------inti,j;for(i=0;i<*n;){if(bb[i]==y){for(j=i;j<*n;j++)bb[j]=bb[j+1];*n=*n-1;}elsei++;}----------------------第13题(分)题号:317功能:求出N×M整型数组的最大元素及其所在的行坐标及列坐标(如果最大元素不唯一,选择位置在最前面的一个)。例如:输入的数组为:12341561218910112求出的最大数为18,行坐标为2,列坐标为1。答案:----------------------intmax,i,j;max=array[0][0];Row=0;Col=0;for(i=0;i<N;i++){for(j=0;j<M;j++)if(max<array[i][j]){max=array[i][j];Row=i;Col=j;}}return(max);----------------------第14题(分)题号:392功能:求一批数中最大值和最小值的积。答案:----------------------inti,max,min;max=min=a[0];for(i=1;i<n;i++)if(a[i]>max)max=a[i];elseif(a[i]<min)min=a[i];return(max*min);----------------------第15题(分)题号:501题目:从键盘输入一个大写字母,要求改用小写字母输出。答案:c=c+32;returnc;第16题(分)题号:502题目:用while语句求1~100的累计和。答案:inti=1,sum=0;while(i<=n){ sum=sum+i; i++; }returnsum;第17题(分)题号:409题目:输入华氏温度求摄氏温度。转换公式为c=5/9(f-32),输出结果取两位小数。答案:floatn;n=*(m-32);returnn;第18题(分)题号:29功能:对任意输入的x,用下式计算并输出y的值。5x<10y=0x=10-5x>10答案:intm;if(n<10)m=5;elseif(n==10)m=0;elsem=-5;returnm;或intm;if(n>=10)if(n>10)m=-5;elsem=0;elsem=5;returnm;第19题(分)题号:382功能:给定n个数据,求最小值出现的位置(如果最小值出现多次,求出第一次出现的位置即可)。答案:----------------------inti,k;k=0;for(i=1;i<n;i++)if(s[i]<s[k])k=i;return(k);----------------------第20题(分)题号:367功能:找出一批正整数中的最大的偶数。答案:----------------------inti,amax=-1;for(i=0;i<n;i++)if(a[i]%2==0)if(a[i]>amax)amax=a[i];returnamax;----------------------第21题(分)题号:384功能:产生20个[30,120]上的随机整数放入二维数组a[5][4]中,求每行元素的和。答案:----------------------inti,j;for(i=0;i<5;i++){b[i]=0;for(j=0;j<4;j++)b[i]=b[i]+a[i][j];}----------------------第22题(分)题号:334功能:求给定正整数n以内的素数之积。(n<28)答案:----------------------longi,k;longs=1;for(i=2;i<=n;i++){for(k=2;k<i;k++)if(i%k==0)break;if(k==i)s=s*i;}returns;----------------------第23题(分)题号:363功能:求一个给定字符串中的字母的个数。答案:----------------------inti,k=0;for(i=0;s[i]!='\0';i++)if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z')k++;returnk;----------------------第24题(分)题号:361功能:编写程序,求矩阵(3行3列)与2的乘积例如:输入下面的矩阵:100200300400500600700800900程序输出:20040060080010001200140016001800答案:----------------------inti,j;for(i=0;i<3;i++)for(j=0;j<3;j++)array[i][j]=array[i][j]*2;----------------------第25题(分)题号:400功能:编写main程序调用函数fact求解从m个元素选n个元素的组合数的个数。计算公式是:组合数=m!/(n!.(m-n)!)。要求:m不能小于n,否则应有容错处理。说明:函数fact(x)的功能是求x!。答案:----------------------while(m<n){printf("m和n输入错!请重新输入:\n");scanf("%d%d",&m,&n);}zhsgs=fact(m)/(fact(n)*fact(m-n));----------------------第26题(分)题号:411功能:对任意输入的x,用下式计算并输出y的值。-1x<0y=0x=01x>0答案:intm;if(n<0)m=-1;elseif(n==0)m=0;elsem=1;returnm;或intm;if(n>=0)if(n>0)m=1;elsem=0;elsem=-1;returnm;第27题(分)题号:509功能:编写函数fun其功能是:根据整型形参m,计算如下公式的值:y=1+1/3+1/5+1/7+…+1/(2m+1)例如:若m=9,则应输出:答案:----------------------doubley=1;inti;for(i=1;i<=m;i++){y+=(2*i+1);}return(y);----------------------第28题(分)题号:394功能:产生20个[30,120]上的随机整数放入二维数组a[5][4]中,求其中的最小值。答案:----------------------inti,j,s;s=a[0][0];for(i=0;i<5;i++)for(j=0;j<4;j++)if(s>a[i][j])s=a[i][j];return(s);----------------------第29题(分)题号:330功能:计算出k以内最大的10个能被13或17整除的自然数之和。(k〈3000)。答案:----------------------inta=0,b=0;while((k>=2)&&(b<10)){if((k%13==0)||(k%17==0)){a=a+k;b++;}k--;}returna;----------------------第30题(分)题号:364功能:求一个四位数的各位数字的立方和。答案:----------------------intd,s=0;while(n>0){d=n%10;s+=d*d*d;n/=10;}returns;----------------------第31题(分)题号:348功能:从低位开始取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。例如:当s中的数为:7654321时,t中的数为:642。答案:----------------------longsl=10;s/=10;t=s%10;while(s>0){s=s/100;t=s%10*sl+t;sl=sl*10;}----------------------第32题(分)题号:313功能:从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main函数中输出。答案:----------------------intmin,i;min=x[0];for(i=1;i<n;i++){if(x[i]<min)min=x[i];}returnmin;----------------------第33题(分)题号:391功能:将字符串中的小写字母转换为对应的大写字母,其它字符不变。答案:----------------------inti;for(i=0;str[i]!='\0';i++)if(str[i]>='a'&&str[i]<='z')str[i]=str[i]-32;----------------------第34题(分)题号:397功能:编写函数fun(str,i,n),从字符串str中删除第i个字符开始的连续n个字符(注意:str[0]代表字符串的第一个字符)。答案:----------------------while(str[i+n-1]){str[i-1]=str[i+n-1];i++;}str[i-1]='\0';----------------------第35题(分)题号:325功能:在键盘上输入一个3行3列矩阵的各个元素的值(值为整数),然后输出主对角线元素的平方和,并在fun()函数中输出。答案:----------------------intsum;inti;sum=0;for(i=0;i<3;i++)sum=sum+a[i][i]*a[i][i];returnsum;----------------------第36题(分)题号:388功能:编写函数判断一个整数能否同时被3和5整除,若能则返回值为1,否则为0。调用该函数求出15~300之间能同时被3和5整除的数的个数。答案:----------------------if(n%3==0&&n%5==0)return(1);return(0);----------------------第37题(分)题号:399功能:编写程序求无理数e的值并输出。计算公式为:e=1+1/1!+1/2!+1/3!+......+1/n!当1/n!<时e=。答案:----------------------longintj;inti,k;doublee,jc;i=1;e=;jc=;while(jc>={e=e+jc;j=1;for(k=1;k<=i;k++)j=j*k;jc=j;i++;}returne;----------------------第38题(分)题号:312功能:调用函数fun判断一个三位数是否"水仙花数"。在main函数中从键盘输入一个三位数,并输出判断结果。请编写fun函数。说明:所谓"水仙花数"是指一3位数,其各位数字立方和等于该数本身。例如:153是一个水仙花数,因为153=1+125+27。答案:----------------------intbw,sw,gw;bw=n/100;sw=(n-bw*100)/10;gw=n%10;if(n==bw*bw*bw+sw*sw*sw+gw*gw*gw)return1;elsereturn0;----------------------第39题(分)题号:335功能:求一个n位自然数的各位数字的积。(n是小于10的自然数)答案:----------------------longd,s=1;while(n>0){d=n%10;s*=d;n/=10;}returns;----------------------第40题(分)题号:379功能:给定n个数据,求最大值出现的位置(如果最大值出现多次,求出第一次出现的位置即可)。答案:----------------------inti,k;k=0;for(i=1;i<=n;i++)if(s[i]>s[k])k=i;return(k+1);----------------------第41题(分)题号:22功能:从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main函数中输出。请编写fun函数。答案:----------------------intmin,i;min=x[0];for(i=1;i<n;i++){if(x[i]<min)min=x[i];}returnmin;----------------------第42题(分)题号:381功能:求一批数中小于平均值的数的个数。答案:----------------------inti,sum=0,k=0;doubleaverage;for(i=0;i<n;i++)sum=sum+a[i];average=sum*n;for(i=0;i<n;i++)if(average>a[i])k++;return(k);----------------------第43题(分)题号:352功能:根据整型形参m,计算如下公式的值:y=1/2+1/4+1/6+...+1/2m。例如:若m=9,则应输出:答案:----------------------doubley=0;inti;for(i=1;i<=m;i++){y+=(2*i);}return(y);----------------------第44题(分)题号:33功能:用do-while语句求1~100的累计和。答案:inti=1,sum=0;do{sum=sum+i; i++; }while(i<=n);returnsum;第45题(分)题号:347功能:把20个随机数存入一个数组,然后输出该数组中的最小值。其中确定最小值的下标的操作在fun函数中实现,请给出该函数的定义。答案:----------------------inti,min=0;for(i=1;i<size;i++)if(list[min]>list[i])min=i;returnmin;----------------------第46题(分)题号:343功能:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位上。例如:当a=45,b=12,调用该函数后,c=2514。答案:----------------------*c=a/10+a%10*100+b/10*10+b%10*1000;----------------------第47题(分)题号:504功能:编写程序打印如图1所示图形。*************************要求:要求使用abs()。答案:for(m=-i;m<=i;m++){for(n=0;n<abs(m);n++)printf("");for(n=0;n<7-2*abs(m);n++)printf("*");printf("\n");}第48题(分)题号:365功能:求1到100之间的偶数之积。答案:----------------------doubley=1;inti;for(i=1;i<=m;i++)if(i%2==0)y*=i;returny;----------------------第49题(分)题号:410功能:编写函数fun将一个数组中的值按逆序存放,并在main()函数中输出。例如:原来存顺序为8,6,5,4,1。要求改为:1,4,5,6,8。答案:----------------------inti,t;for(i=0;i<n/2;i++){t=arr[i];arr[i]=arr[n-1-i];arr[n-1-i]=t;}----------------------第50题(分)题号:373功能:用函数求fibonacci数列前n项的和。说明:fibonacci数列为数列的第一项值为1,第二项值也为1,从第三项开始,每一项均为其前面相邻两项的和。例如:当n=28时,运行结果:832039答案:----------------------longf,k=f1+f2;inti;for(i=3;i<=28;i++){f=f1+f2;k=k+f;f1=f2;f2=f;}return(k);----------------------第51题(分)题号:378功能:编写函数用冒泡排序法对数组中的数据进行从小到大的排序。答案:----------------------inti,j,t;for(i=0;i<n-1;i++)for(j=0;j<n-1-i;j++)if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}----------------------第52题(分)题号:323功能:求1到w之间的奇数之和。(w是大于等于100小于等于1000的整数)答案:----------------------longy=0;inti;for(i=1;i<=w;i++)if(i%2==1)y+=i;returny;----------------------第53题(分)题号:380功能:用辗转相除法求两个整数的最大公约数。答案:----------------------intr,t;if(n<m){t=n;n=m;m=t;}r=n%m;while(r!=0){n=m;m=r;r=n%m;}return(m);----------------------第54题(分)题号:503题目:分别统计字符串中字母、数字、空格和其他字符出现的次数(字符长度小于80)。答案:inti;for(i=0;c[i]!='\0';i++)if((c[i]>='A'&&c[i]<='Z')||(c[i]>='a'&&c[i]<='z'))a=a+1;elseif(c[i]>='0'&&c[i]<='9') num=num+1;elseif(c[i]=='') b=b+1; else other=other+1;第55题(分)题号:395功能:求n阶方阵主、副对角线上的元素之积。答案:----------------------inti,j;floatt=1;for(i=0;i<N;i++)for(j=0;j<N;j++)if(i==j||i+j==N-1)t=t*arr[i][j];return(t);----------------------第56题(分)题号:318功能:输入一个字符串,过滤此串,只保留串中的字母字符,并统计新生成串中包含的字母个数。例如:输入的字符串为ab234$df4,新生成的串为abdf。答案:----------------------inti,j;for(i=0,j=0;*(ptr+i)!='\0';i++)if(*(ptr+i)<='z'&&*(ptr+i)>='a'||*(ptr+i)<='Z'&&*(ptr+i)>='A'){*(ptr+j)=*(ptr+i);j++;}*(ptr+j)='\0';return(j);----------------------第57题(分)题号:311功能:计算n门课程的平均值,计算结果作为函数值返回。例如:若有5门课程的成绩是:92,76,69,58,88,则函数的值为。答案:----------------------inti;floaty=0;for(i=0;i<n;i++)y+=a[i];y=y/n;returny;----------------------第58题(分)题号:358功能:根据整型形参m,计算如下公式的值:y=sin(m)*10。例如:若m=9,则应输出:答案:----------------------doubley=0;y=sin(m)*10;return(y);----------------------第59题(分)题号:23功能:从键盘输入一个大于3的整数,调用函数fun判断其是否素数,然后在main函数中输出相应的结论信息。例如:7是素数,8不是素数。请编写fun函数。素数是仅能被1和自身整除的数答案:----------------------inti;intj;j=1;for(i=2;i<n;i++){if(n%i==0)j=0;}returnj;----------------------第60题(分)题号:349功能:从低位开始取出长整型变量s奇数位上的数,依次构成一个新数放在t中。例如:当s中的数为:7654321时,t中的数为:7531。答案:----------------------longsl=10;t=s%10;while(s>0){s=s/100;t=s%10*sl+t;sl=sl*10;}----------------------第61题(分)题号:332功能:根据整型参数n,计算如图公式的值。答案:----------------------doublea=1;inti;for(i=1;i<n;i++)a=(1+a);returna;----------------------第62题(分)题号:327功能:能计算从1开始到n的自然数的和,n由键盘输入,并在main()函数中输出。答案:----------------------intsum,i;sum=0;for(i=1;i<=n;i++){sum=sum+i;}return(sum);----------------------第63题(分)题号:351功能:请编一个函数voidfun(inttt[M][N],intpp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入pp所指一维数组中。二维数组中的数已在主函数中赋予。答案:----------------------inti,j;for(j=0;j<N;j++){pp[j]=tt[0][j];for(i=1;i<M;i++)if(tt[i][j]>pp[j])pp[j]=tt[i][j];}----------------------第64题(分)题号:389功能:编写函数求表达式的和(n的值由主函数输入)。1-1/2+1/3-1/4+......+1/m例如:当n=20时,表达式的值为。答案:----------------------floats=0;inti,k=1;for(i=1;i<=n;i++){s=s+k*i;k=-k;}return(s);----------------------第65题(分)题号:54功能:求1到100之间的偶数之积。答案:----------------------doubley=1;inti;for(i=1;i<=m;i++)if(i%2==0)y*=i;returny;----------------------第66题(分)题号:353功能:对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按降序排列。例如:原来的字符串为CEAedca,排序后输出为CedcEAa。答案:----------------------inti,j;chart;for(i=1;i<num-1;i++)for(j=i+1;j<num-1;j++)if(s[i]<s[j]){t=s[i];s[i]=s[j];s[j]=t;}----------------------第67题(分)题号:328功能:求k!(k〈13),所求阶乘的值作为函数值返回。(要求使用递归)答案:----------------------if(k>0)return(k*fun(k-1));elseif(k==0)return1L;----------------------第68题(分)题号:346功能:将从键盘上输入的每个单词的第一个字母转换为大写字母,输入时各单词必须用空格隔开,用’.’结束输入。答案:----------------------if(*c=='')return1;else{if(status&&*c<='z'&&*c>='a')*c+='A'-'a';return0;}----------------------第69题(分)题号:403功能:编写函数fun,求任一整数m的n次方。答案:----------------------longintx=1;inti;for(i=1;i<=n;i++)x=x*m;returnx;----------------------第70题(分)题号:387功能:求一批数中最大值和最小值的差。答案:----------------------inti,max,min;max=min=a[0];for(i=1;i<n;i++)if(a[i]>max)max=a[i];elseif(a[i]<min)min=a[i];return(max-min);----------------------第71题(分)题号:336功能:从字符串中删除指定的字符。同一字母的大、小写按不同字符处理。例如:若程序执行时输入字符串为:turbocandborlandc++从键盘上输入字符:n,则输出后变为:turbocadborladc++,如果输入的字符在字符串中不存在,则字符串照原样输出。答案:----------------------char*q=s;for(;*q;q++)if(*q!=c)*(s++)=*q;*s=0;----------------------第72题(分)题号:338功能:编写程序,实现矩阵(3行3列)的转置(即行列互换)例如:输入下面的矩阵:100200300400500600700800900程序输出:100400700200500800300600900答案:----------------------inti,j,t;for(i=0;i<3;i++)for(j=0;j<i;j++){t=array[i][j];array[i][j]=array[j][i];array[j][i]=t;}----------------------第73题(分)题号:42功能:从字符串s中删除指定的字符c。答案:----------------------inti,k=0;for(i=0;s[i]!='\0';i++)if(s[i]!=c)s[k++]=s[i];s[k]='\0';----------------------第74题(分)题号:342功能:在键盘上输入一个3行3列矩阵的各个元素的值(值为整数),然后输出矩阵第一行与第三行元素之和,并在fun()函数中输出。答案:----------------------intsum;inti,j;sum=0;for(i=0;i<3;i+=2)for(j=0;j<3;j++)sum=sum+a[i][j];returnsum;----------------------第75题(分)题号:359功能:实现两个整数的交换。例如:给a和b分别输入:60和65,输入为:a=65b=60答案:----------------------intt;t=*a;*a=*b;*b=t;----------------------第76题(分)题号:374功能:编写函数实现两个数据的交换,在主函数中输入任意三个数据,调用函数对这三个数据从大到小排序。答案:----------------------intk;k=*a;*a=*b;*b=k;----------------------第77题(分)题号:356功能:求大于lim(lim小于100的整数)并且小于100的所有素数并放在aa数组中,该函数返回所求出素数的个数。答案:----------------------intn=0;inti,j;for(i=lim;i<=100;i++){for(j=2;j<i;j++)if(i%j==0)break;if(j==i)aa[n++]=i;}returnn;----------------------第78题(分)题号:53功能:求一个四位数的各位数字的立方和答案:----------------------intd,k,s=0;while(n>0){d=n%10;s+=d*d*d;n/=10;}returns;----------------------第79题(分)题号:322功能:判断一个整数w的各位数字平方之和能否被5整除,可以被5整除则返回1,否则返回0。答案:----------------------intk,s=0;do{s=s+(w%10)*(w%10);w=w/10;}while(w!=0);if(s%5==0)k=1;elsek=0;return(k);----------------------第80题(分)题号:326功能:求一个大于10的n位整数的后n-1位的数,并作为函数值返回。答案:----------------------intn=0;inti=1;while(w>10){n=n+i*(w%10);w/=10;i*=10;}returnn;----------------------第81题(分)题号:321功能:编写函数fun其功能是:根据整型形参m,计算如下公式的值:y=1/2!+1/4!+…+1/m!(m是偶数)答案:doubley=;inti,j;doubles=1;for(i=2;i<=m;i+=2){for(j=i-1;j<=i;j++)s=s*j;y=y+s;}returny;第82题(分)题号: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;----------------------第83题(分)题号:396功能:编写函数fun对主程序中用户输入的具有10个数据的数组a按由大到小排序,并在主程序中输出排序结果。答案:----------------------intk,j,t;for(k=0;k<n-1;k++)for(j=k+1;j<n;j++)if(array[k]<array[j]){t=array[k];array[k]=array[j];array[j]=t;}----------------------第84题(分)题号: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;----------------------第85题(分)题号:50功能:求出菲波那契数列的前一项与后一项之比的极限的近似值。例如:当误差为时,函数值为。答案:----------------------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;----------------------第86题(分)题号:372题目:用函数求一个N阶方阵右下三角元素的和(包括副对角线上的元素)。答案:----------------------inti,j,k=0;for(i=0;i<N;i++)for(j=N-1-i;j<N;j++)k=k+a[i][j];return(k);----------------------第87题(分)题号:401功能:若x、y为奇数,求x到y之间的奇数和;若x、y为偶数,则求x到y之间的偶数和。答案:----------------------inti,s=0;for(i=x;i<=y;i+=2)s=s+i;returns;----------------------第88题(分)题号:398功能:编写函数fun求s=1^k+2^k+3^k+......+N^k的值,(1的K次方到N的K次方的累加和)。答案:----------------------longpower,sum=0;inti,j;for(i=1;i<=n;i++){power=i;for(j=1;j<k;j++)power*=i;sum+=power;}returnsum;----------------------第89题(分)题号:315功能:将主函数中输入的字符串反序存放。例如:输入字符串“abcdefg”,则应输出“gfedcba”。答案:----------------------inti,j;charc;for(i=0,j=n-1;i<j;i++,j--)/*或者for(i=0,j=n-1;i<n/2;i++,j--)*/{c=*(str+i);*(str+i)=*(str+j);*(str+j)=c;}----------------------第90题(分)题号:329功能:对某一正数的值保留2位小数,并对第三位进行四舍五入。答案:----------------------inti;i=(int)(h*1000)%10;if(i>=5)return(int)(h*100+1)/;elsereturn(int)(h*100)/;----------------------第91题(分)题号:333功能:计算并输出给定整数的所有因子之积(包括自身)。规定这个整数的值不大于50。答案:----------------------longs=1,i;for(i=2;i<=n;i++)if(n%i==0)s=s*i;returns;----------------------第92题(分)题号:62功能:求5行5列矩阵的主、副对角线上元素之和。注意,两条对角线相交的元素只加一次。例如:主函数中给出的矩阵的两条对角线的和为45。答案:----------------------ints=0;inti,j;for(i=0;i<M;i++)s=s+a[i][i]+a[i][M-1-i];s=s-a[(M-1)/2][(M-1)/2];returns;----------------------第93题(分)题号:375功能:从键盘上输入任意实数,求出其所对应的函数值。z=e的x次幂(x>10)z=log(x+3)(x>-3)z=sin(x)/((cos(x)+4)答案:----------------------doublez;if(x>10)z=exp(x);elseif(x>-3)z=log(x+3);elsez=sin(x)/(cos(x)+4);return(z);----------------------第94题(分)题号:452功能:有一个一维数组score,内放10个学生的成绩,用一个函数来求平均成绩。例如:如果10个学生的成绩分别为92,87,68,56,92,84,70,65,90,60则平均成绩为:答案:----------------------inti;floataver,sum=array[0];for(i=1;i<10;i++)sum=sum+array[i];aver=sum/10;returnaver;----------------------第95题(分)题号:377功能:编写函数用选择排序法对数组中的数据进行从小到大的排序。答案:----------------------inti,j,k,t;for(i=0;i<n-1;i++){k=i;for(j=i+1;j<n;j++)if(a[k]>a[j])k=j;if(k!=i){t=a[i];a[i]=a[k];a[k]=t;}}----------------------第96题(分)题号:357功能:根据整型形参m,计算如下公式的值:y=1/5+1/6+1/7+1/8+1/9+1/10...+1/(m+5)例如:若m=9,则应输出:答案:----------------------doubley=0;inti;for(i=0;i<=m;i++){y+=(i+5);}return(y);----------------------第97题(分)题号:56功能:找出一批正整数中的最大的偶数。答案:----------------------inti,amax=-1;for(i=0;i<n;i++)if(a[i]%2==0)if(a[i]>amax)amax=a[i];returnamax;----------------------第98题(分)题号:319功能:判断m是否为素数。答案:----------------------inti,k=1;if(m<=1)k=0;for(i=2;i<m;i++)if(m%i==0)k=0;returnk;----------------------第99题(分)题号:368功能:求一分数序列2/1,3/2,5/3,8/5,13/8,21/13…的前n项之和。说明:每一分数的分母是前两项的分母之和,每一分数的分子是前两项的分子之和例如:求前20项之和的值为。答案:----------------------inti;floatf1=1,f2=1,f3,s=0;for(i=1;i<=n;i++){f3=f1+f2;f1=f2;f2=f3;s=s+f2/f1;}returns;----------------------第100题(分)题号:316功能:统计出若干个学生的平均成绩,最高分以及得最高分的人数。例如:输入10名学生的成绩分别为92,87,68,56,92,84,67,75,92,66,则输出平均成绩为,最高分为92,得最高分的人数为3人。答案:----------------------inti;floatsum=0,ave;Max=array[0];for(i=0;i<n;i++){if(Max<array[i])Max=array[i];sum=sum+array[i];}ave=sum/n;for(i=0;i<n;i++)if(array[i]==Max)J++;return(ave);----------------------第101题(分)题号:331功能:找出一个大于给定整数且紧随这个整数的素数,并作为函数值返回。答案:----------------------inti,k;for(i=n+1;;i++){for(k=2;k<i;k++)if(i%k==0)break;if(k==i)return(i);}----------------------第102题(分)题号:362功能:求给定正整数m以内的素数之和。例如:当m=20时,函数值为77。答案:----------------------inti,k,s=0;for(i=2;i<=m;i++){for(k=2;k<i;k++)if(i%k==0)break;if(k==i)s=s+i;}returns;----------------------第103题(分)题号:360功能:把20个随机数存入一个数组,然后输出该数组中的最大值。答案:----------------------inti,max=0;for(i=1;i<size;i++)if(list[max]<list[i])max=i;returnmax;----------------------第104题(分)题号:37功能:输入2个学生3门课的成绩,计算学生成绩平均分,课程平均分和最高分.例如:输入2名学生3门课的成绩分别为92,87,68,56,92,84则学生1平均分:学生2平均分:课程1平均分:课程2平均分:课程3平均分:最高分为:92答案: inti,j; floatsum;for(i=0;i<2;i++)/*计算第i个学生平均分*/ { sum=0;for(j=0;j<3;j++)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论