版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
L已知三角形的三边长为a,b,c,计算三角形面积的公式为:area=sqrt(s(s-a)(s-b)(s-c))»其中s=(a+b+c)/2。试编程从键盘输入a,b,c的值(假设a,b,c的值可以保证其构成一个三角形),计算并输出三角形的面积。**输入格式要求:*%f,%f,%f*提示信息:*Inputa,b,c:***输出格式要求:*area=%.2f\n*程序运行示例如下:Inputa,b,c:3,4,5area=6.00答案:#include<stdio.h>#include<math.h>intmain(void)(floata,b,c,s,area;printf("lnputa,b,c:");scanf("%f,%f,%f",&a,&b,&c);s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));printf("area=%.2f\n",area);return0;} 12.从键盘任意输入一个4位整数,编程计算并输出它的逆序数.例如:输入1234,分离出千位1、百位2、十位3和个位4,然后计算4*1000+3*100+2*10+1=4321.并输出43210杵要求输入提示信息为:无**要求输入格式为:飞d”**要求输出格式为:"为r程序运行示例如下:1234 此处为输入4321此处为输出答案:#include<stdio.h>intmain(void)(inta,b,c,d,e;scanf("%d",&a);b=a/1000;c=a%1000/100;d=a%100/10;e=a%10;a=e*1000+d*100+c*10+b;printf("%d",a);return0;.有关输入输出问题。输入为:12a/b/运行结果为:1,2,a,b,123.300000,65535请改正程序中的错误,使它能得出正确的结果。#include<stdio.h>main(){intb;unsignedshorta=65535;shortk=a;charc,d;intf,g;b=(1234.0-1)/10;scanf(*%c*,&c);scanf&d);scanf(*%d*.&f);scanf(*%d*.&g);printf(*%c,%c,%c,%c,%f,%d*,c,d,f,g,b,k);)答案:#indude<stdio.h>main()(doubleb;inta=65535;charc,d;intf,g;b=(1234.0-1)/10;scanf("%c",&c);scanf("%c",&d);scanf("%c\t",&f);scanf("%c",&g);printf("%c,%c,%c,%c,%f,%d",c,d,f,g,b,a);)-3.输入一行字符,统计其中的英文字符、数字字符、空格字符,以及其他字符的个数。清找出以ド程序的错误,并改正之.^include<stdio.h>#includeくstring.h>ttdefineARRSIZE=80;main()(charstr[ARR_SIZE];intlen,i;int letter=0,digit=0,space=0,other=0;printf("请输入ー一个字符串:つ;gets(str);len=strlen(str);for(i=0;i<len;i++)(if(a=<str[i]<=z||A=<str[i]<=Z)|letter++;}elseif(0=<str[i]<=9){digit++;}elseif(str[i]=,*){space++;|elseother++;)printf("英文字符数:%d\n",letter);printf「数字字符数:%d\rT,digit);printfぐ空格数:%d\n”,space);printf「其他字符数:%d\n,other);)答案:#include<stdio.h>#include<string.h>#defineARR_SIZE80mainO{charstr[ARR_S!ZE]:intlen,i;intletter=0,digit=0,space=0,other=0:printfC请输入一个字符串:“);gets(str);len=strlen(str);for(i=0;i<len;i++)(ifCa<=str[i]&&str[i]く=‘z'||'A'<=str[i]&&str[i]<='Z'){letter++;)elseifCO'<=str[i]&&str[i]<=*9,)(digit++;)elseif(str[i]='')(space++;)elseother++;)printf(.英文字符数:%d\n",letter);printf("数字字符数:%d\n",digit);printf("空格数:%d\n”,space);printf("其他字符数:%d\n",other);.对输入的ー个数判断是否是素数。所谓素数是指这个数只能被1和自身整除。要求在主函数输入ー个数,调用函数Fun()判断该数是否是素数。打印信息在主函数中进行。例如:从键盘输入5,5是素数则打印如下信息:"5isaprimenumber"〇又如:从键盘输入4,4不是素数则打印如ド信息:"4isnotaprimenumber".负数、。和1均不是素数。对输入的数据要考虑数据的合法性,不满足条件的数要重新输入直到满足条件为止。不能使用全局变量,不按给定的函数原型编写程序不给分。Fun()函数原型为:intFun(intm):**输入数据提示信息:"Pleaseinputanumber:\n"注:该提示信息请放在循环体外**输入数据格式为:飞d"**输出格式要求:若是素数输出数据格式为:飞disaprimenumberXn^若不是素数输出数据格式为:/disnotaprimenumber\n"不完整答案:#includeくstdio,h>intFun(inta)(inti;if(a>l)(for(i=2;i<a;i++)(if(a%i==0)return01;elsecontinue;)return1;)elsereturn0;)mainO(intb,c;printf(*Pleaseinputanumber:\n*);scanf("*d”,&b);c=Fun(b);if(0==c)printfC,%disnotaprimenumber\nvtb);elseprintf(*%disaprimenumber\n*,b);)参考答案:^include#stdio.h*intFun(intm);intmain(){int叫flag;printf(¢Pleaseinputanumber:\n*);doscanf&ni);//Iwhile(m<2);//elflag=Fun(m);//3if(flag)//Iprintf(*%disaprimenumber\n*,m);elseprintf(*%disnotaprimenumber\n*,m);//Ireturn0;)intFun(intm)//2(inti,flag=1;//Ifor(i=2;i<m;i++)//I!if(m%i=0)//I(flag=0;//Ibreak;}}returnflag;//2) 5.求1898现將不超过2000的所有素数从小到大排成第一行,第二行上的每个数都等于它“右肩”上的素数与“左肩”上的素数之差。请编程求出:第二行数中是否存在这样的若干个连续的整数,它们的和恰好是1898?假如存在的话,又有几种这样的情况?**输入格式要求:提示信息:"TherearefolIwingprimesinfirstrow:\n"**输出格式要求:"(如).%3d %d\n"程序运行示例如下:TherearefolIwingprimesinfirstrow:TOC\o"1-5"\h\z.101, 1999. 89, 1987. 53, 1951. 3 1901答案:einclude<stdio.h>#defineN330inta[N];intmain()intc=0,b=0,d=1;inti=0,j=0,k=0;for(i=3;i<=2000:i++){for(j=2;jくi;j++)(if(i%j=0)break;elsecontinue;)if(j==i)(a[k]=i;k++:)elsecontinue;)printf(*TherearefolIwingprimesinfirstrow:\n*);for(c=329;c>=0;c—)for(b=c+l;c<b;b++)if(b<330)(if((a[b]-a[c])=1898){printf(*(%d).%3d %d\n*, d,a[c],a[b]);d++;)elsecontinue:}elsebreak;)7.从键盘任意输入ー个整数m,若m不是素数,则对m进行质因数分解,并将m表示为质因数从小到大顺序排列的乘积形式输出,否则输出"【tisaprimenumber"。例如,用户输入90时,程序输出90=2*3♦3♦5;用户输入17时,程序输出"Itisaprimenumber"〇输入提示信息:"Inputm:"输入格式:飞d"输出格式:是素数时输出"Itisaprimenumber\n"否则输出用”%d=",*%d**运行示例1:Inputm:90/90=2*3*3*5运行示例2:Inputm:13/Itisaprimenumber答案:#include<stdio.h>/include<math.h>intIsPrime(intx);voidOutputPrimeFactor(intx);intmainO{intm;printf(*Inpulm:*);scanf("%d*,&m);if(IsPrime(m)){printf(*Itisaprimenumber\n");)else{printf(*%d=*,m);OutputPrimeFactor(m);)return0;)intIsPrime(intx){inti,flag=l;intsquareRoot=sqrt(x);if(x<=l){flag=0:}for(i=2;i<=squareRoot&&flag;i++){if(x%i==0){flag=0;))returnflag;)voidOutputPrimeFactor(intx)inti;for(i=2:i<x;i++){if(x%i==0)<printf(*%d**,i);OutputPrimeFactor(x/i);return;))printfx);) 7&将任一整数转换为二进制形式。**输入格式要求:〃%d〃提示信息:〃Inputnumber**输出格式要求:"numberofdecimalform:%d\n""it\'sbinaryform:程序运行示例如下:Inputnumber:876numberofdecimalform:876it'sbinaryform:00000000000000000000001101101100答案:^include<stdio.h>#include<stdlib.h>intmainO(inta;charb[32];printf(*Inputnumber:");scanf("%d",&a);printf("numberofdecimalform:%d\n",a);printf("it\'sbinaryform:");printf("%s\n",itoa(a,b,2));) 89.求自然数n最近的素数k,k>n。***输入提示信息・*:"Inputn:"***输入数据格式**:"%d"***输出数据格式・*:"%d"示例输入:257输出:Pleaseinputn:263答案:#include<stdio.h>intmain()(intn,i=1,k;printf(""Pleaseinputn:*);scanf("%d",&n);for(k=n+1;i;k++){for(i=2;i<k;i++)if(k%i=0)break;elsecontinue;if(i=k)(printfk);i=0;break;)}}如果ー个正整数m的所有小于m的不同因子(包括1)加起来正好等于m本身,那么就被称它为完全数。它是指这样的ー些特殊的自然数,它所有的真因子(即除了自身以外的约数)的和,恰好等于它本身。注意:1没有真因子,所以不是完全数。例如,6就是ー个完全数,是因为6=1+2+3。请编写ー个判断完全数的函数IsPerfectO,然后判断从键盘输入的整数是否是完全数。要求:按如下原型编写判断完全数的函数,若函数返回。,则代表不是完全数,若返回1,则代表是完全数。intIsPerfect(intx);*要求输入提示信息为:"Inputm:\n"*要求输入格式为:猿d”*要求输出格式为"%disaperfectnumber\n""%disnotaperfectnumber\n"注:不能使用指针、结构体、共用体、文件、goto,枚举类型进行编程,主函数不能使用intmain和return〇〇答案:#include<stdio.h>intTsPerfect(intx);intmain()(intm;printf(*lnputm:\n");scanf(*%d*,&m);if(IsPerfect(m))printfl%disaperfectnumber'n”,m);elseprintf(*%disnotaperfectnumbcr'n”,m);)intIsPerfect(intx)(inti=1,b=0;for(i=1;i<x;i++)if(x%i==0)(b=b+i;continue;)elsecontinue;if(b=x)return1;elsereturn0;} 1011.用函数编程计算两整数的最大值,在主函数中调用该函数计算并输出从键盘任意输入的两整数的最大值。**输入格式要求:"%d,%d”提示信息:*Inputa,b<**输出格式要求:"max=%d\n*程序运行示例如下:Inputa,b:5,8max=8答案:#include<stdio.h>intmax(inta,intb)if(a>=b)returna;elsereturnb;)main()(inta=0,b=0;printf(*Inputa,b:');scanf("%d,%d",&a,&b);printf(*max=%d\n*,max(a,b));) ロ利用求阶乘函数Fact。,编程计算并输出1!+2!+…+n!的值。**输入格式要求:"%u”提示信息:"Inputn(n>0):"**输出格式要求:"sum=%lu\n"答案:^include<stdio.h>intsum_s(inti);main()(unsignedintn=0;unsignedlongb=0;printf("Inputn(n>0):*);scanf("%u",&n);for(b;n;n-)(b=b+sum_s(n);)printf("sum=%lu\n",b);}intsum_s(inti)(inta;for(a=1;i;i-)(if(i>1)a=a*i;elsea=a*1;returna;12编程输出如下菜单界面(具体的输出则以下面提示中要求的输出格式为准):====大学信息管理系统=====办公室管理财务管理教务管理图书管理科研管理设备管理人事管理后勤管理退出系统请您在上述功能中选择(0ーー8):提示:输出如下格式"======大学信息管理系统======\n"办公室管理5.-- -\n财务管理'n”“2.教务管理6.图书管理'n”“3.科研管理7.设备管理'n”"4.人事管理8.后勤管理、n”“0,退出系统'n”* —- -\n”请您在上述功能中选择(0 8):\n"答案:ttinclude<stdio.h>main()(printf("=======大学信息管理系统======\ぺ);printf(一\ぺ)printf("l.办公室管理5.财务管理'ぺ)printf("2.教务管理6.图书管理ゝn")printf(*3.科研管理7.设备管理ゝn")printf(*4,人事管理8.后勤管理ゝn")printf(*0.退出系统'n");printf(" "\nOprintf("请您在上述功能中选择(0——8):\n");) 13利用静态变量计算n的阶乘.**输入格式要求:"%d”提示信息:“Inputn:"**输出格式要求:"%d!=%ld\n"程序运行示例如下:Inputn:101!=12!=23!=64!=245!=1206!=7207!=50408!=403209!=36288010!=3628800答案:^include<stdio.h>intsum_s(inti);main()(unsignedintn=0,b=1;printfCInputn:");scanf("%d",&n);for(b=l;b<=n;b++)(printf("%d!=%ld\n",b,sum_s(b));))intsum_s(inti)(inta;for(a=1;i;i-){if(i>1)a=a*i;elsea=a*1;returna;} 1415.写一个程序从键盘输入两个整数,然后显示输出第1个数除以第2个数的结果。例如,输入123和12.程序的输出结果格式如下:10Remainder=312) 123提示:使用求余运算符获得余数,使用整数除法获得商。**输入格式要求:"%㈱d”提示信息:”请输入两个整数:"**输出格式要求:"%13dRemainder=%d\n""%5d)%5d"答案:ttinclude<stdio.h>main()(inta,b,c,d;printf("请输入两个整数:");scanf&a,&b);c=a/b;d=a%b;printf(*%13dRemainder=%d\n*,c,d);printf(" \n");printf("%5d)%5d",b,a);) 1516.写ー个程序,将接收的摄氏温度转换为对应的华氏温度。程序应显示如下的提示信息:Pleaseinputcels:然后输入一个十进制数并回车,然后程序以合适的消息形式输出转换后的华氏温度。程序使用如下的公式完成转换:摄氏温度=5.0*(华氏温度ー32.0)/9.0**输入格式要求:"%lf"提示信息:"Pleaseinputcels:"**输出格式要求:"Thefahris:%.2f*答案:#include<stdio.h>main()(doublea,b;printf("Pleaseinputcels:");scanf("%ir,&a);b=(9.0*a)/5.0+32.0;printf("Thefahris:%.2f",b);) 16写ー个程序,将接收的华氏温度转换为对应的摄氏温度。程序应显示如下的提示信息:Pleaseinputfahr:然后输入一个十进制数并回车,然后程序以合适的消息形式输出转换后的华氏温度。程序使用如下的公式完成转换:摄氏温度=5.0*(华氏温度-32.0)/9.0**输入格式要求:提示信息:"Pleaseinputfahr:"**输出格式要求:"Thecelsis:%.2f"答案:^include<stdio.h>main()(doublea,b;printf("Pleaseinputfahr:");scanf&a);b=5.0*(a-32.0)/9.0;printf("Thecelsis:%.2f",b);) 17编写ー个程序,输入ー个3位整数,要求逆序输出对应的数。例如:输入123,则输出321。**输入格式要求:"%d"提示信息:"Pleaseenterapositiveinteger:"**输出格式要求:"%d—>%d\n"程序运行示例如下:Pleaseenterapositiveinteger:345345—>543答案:#include<stdio.h>intmain(void)(inta,b,c,d,e;printf("Pleaseenterapositiveinteger:");scanf("%d",&a);b=a/100;d=a%100/10;e=a%10;c=e*100+d*10+b;printf("%d—>%d”,a,c);return0;} 18计算两个数的平方和从键盘读入两个实数,编程计算并输出它们的平方和,要求使用数学函数pow(x,y)计算平方值,输出结果保留2位小数。提示:使用数学函数需要在程序中加入编译预处理命令»include<math.h>以下为程序的输出示例:Pleaseinputxandy:1.2,3.4/result=13.00输入格式:"%f,%f”输出格式:输入提不信息:“Pleaseinputxandy:\n"输出格式:"result=%.2f\n"答案:#include<stdio.h>^include<math.h>main()(floatx,y,z;printf("Pleaseinputxandy:\n");scanf(*%f,%f*,&x,&y);z=pow(x,2)+pow(y,2);printf(*result=%.2f\n",z);) 19写ー个程序从键盘输入两个整数,然后显示第1个整数占第二个整数的百分比,保留到小数点后1位。例如输入5和40,程序输出结果如下:5is12.5percentof40**输入格式要求:"%d%d"提示信息:"请输入两个整数:”**输出格式要求:"%dis%.Ifpercentof%d"答案:#include<stdio.h>main()(inta,b;floatc;printf("请输入两个整数:〃);scanf("%d%d",&a,&b);c=(float)a/(float)b;c=c*100;printf("%dis%.Ifpercentof%d",a,c,b);}21.求三角形面积。输入三角形的三个边长,计算三角形的面积。设三角形的三个边长分别为a、b、c,为简单起见,我们认为输入的三个边长数据是正确的,可以组成一个三角形。**输入格式要求:"%f,%f,%f”提示信息:“Enter3floats:***输出格式要求:"area趣.2f\n"程序运行示例如下:Enter3floats:2,2,3area=L98答案:#include<stdio.h>#include<math.h>intmain(void){floata,b,c,s,area;printf(/zEnter3floats:");scanf("%f,%f,%f",&a,&b,&c);s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));printf("area=%.2f\n”,area);return0;}22.写ー个程序计算长为11.5厘米,宽为2.5厘米,高为10厘米的盒子的体积和表面积。程序说明:采用直接赋值,不用输入。**输出格式要求“area=%.2f,volume=%.2f"答案:ttinclude<stdio.h>main()(floata,b;a=(11.5*2.5+11.5*10+10*2.5)*2;b=11.5*2.5*10;printf("area二%.2f,volume二%.2f",a,b);)23.用递归方法计算整数n的阶乘n!。**输入格式要求:飞d"提示信息:"Inputn:""nく。,dataerror!\n"**输出格式要求:"%d!=%ld\n"程序运行示例如下:Inputn:55!=120答案;★include<stdio.h>intf(intn)if(n==lIn==0)return1;elsereturnn*f(n-1);)main()(intn;o:printf(*Inputn:");scanf&n);while(n<0)(printf(*n<0,dataerror!\n*);gotoo;}printf("%d!=%ld\n*,n,f(n));} 2324.用递归方法编程计算Fibonacci数列的前N项。其中fib(O)=0,fib(l)=l,fib(n)=fib(n-1)+fib(n-2)〇**输入格式要求:〃%d”提示信息:"Inputn:"**输出格式要求:"Fib(%d)=%d\n"程序运行示例如下:Inputn:10Fib(l)=lFib(2)=1Fib(3)=2Fib(4)=3Fib(5)=5Fib(6)=8Fib(7)=13Fib(8)=21Fib(9)=34Fib(10)=55答案:^include<stdio.h>intFib(intn)(if(n==0)return0;elseif(n==1)return1;elsereturnFib(n-1)+Fib(n-2);)main()(intn,a;printf(*Inputn:");scanf("%d",&n);for(a=1;a<=n;a++)(printf(*Fib(%d)=%d\n*,a,Fib(a));}} 2425.利用求阶乘函数Fact。,编程计算并输出从1到n之间所有数的阶乘值。**输入格式要求:"%u”提示信息:"Inputn(n>0):"**输出格式要求:"%d!=%lu\n"程序运行示例如下:Inputn(n>0):101!=12!=23!=64!=245!=1206!=7207!=50408!=403209!=36288010!=3628800答案:#include<stdio.h>intsum_s(unsignedinti)(unsignedinta;for(a=1;i;i-)(if(i>1)a=a*i;elsea=a*1;)returna;)intFact(unsignedintn)unsignedinti;for(i=l;i<=n;i++)(printf(*%d!=%lu\n*,i,sum_s(i));}}main()(unsignedinti;printf(*Inputn(n>0):*);scanf(飞u",&i);Fact(i);} 25爱因斯坦曾出过这样一道数学题:有一条长阶梯,若每步跨2阶,最后剩下1阶;若每步跨3阶,最后剩下2阶;若每步跨5阶,最后剩下4阶;若每步跨6阶,则最后剩下5阶;只有每步跨7阶,最后オ正好1阶不剩。参考例6.15程序,编写计算这条阶梯共有多少阶的程序如下所示,其中存在ー些语法和逻辑错误,请找出并改正之,然后上机运行程序并写出程序的运行结果。#include<stdio.h>main()(intx=1,find=0;while(!find);(if(x%2=l&&x%3=2&&x%5=4&&x%6=5&&x%7=0)(printf("x=%d\n”,x);find=1;x++;)})答案:^include<stdio.h>main()(intx=1,find=0;while(!find){if(x%2==l&&x%3==2&&x%5=4&&x%6=5&&x%7==0)printf(*x=%d\n”,x);find=1;)x++;)) 26从键盘任意输入ー个正整数,编程判断它的奇偶性。要求输入变量定义为int类型且由用户从键盘输入。程序的运行示例1:Inputanintegernumber:4/4isanevennumber程序的运行示例2:Inputanintegernumber:3/3isanoddnumber输入格式:"%d"输出格式:输入信息提示:"Inputanintegernumber:\n"偶数输出格式:"%disanevennumber\n"奇数输出格式:"%disanoddnumber\n"答案:^include<stdio.h>main()(intn,m;printf(*Inputanintegernumber:\n*);scanf("%d",&n);m=n%2;if(m)printf("%disanoddnumber\n",n);elseprintf("%disanevennumber\n",n);)2728.用动态数组编程输入任意m个班学生(每班n个学生)的某门课的成绩,计算最髙分,并指出具有该最高分成绩的学生是第几个班的第几个学生。其中,m和n的值由用户从键盘任意输入(不限定m和n的上限值)。输入提示信息:“Inputarraysizem,n:*"Input%d*%darray:\n"输入格式:"%d,%d”输出提示信息和格式:"maxScore=%d,class=%d,number=%d\n"答案:^include<stdio.h>#include<stdlib.h>voidInputScore(int*p,intm,intn);intFindMax(int*p,intmtintn,int*pRow,int*pCol);intmainO(int*pScore,m,n,maxScore,row,col;printf("Inputarraysizem,n:");scanf("%d,%d",&m,&n);pScore=(int*)calloc(m*n,sizeof(int));/・申请动态内存・/if(pScore==NULL)(printf("Noenoughmemory!\n");exit(0);}InputScore(pScore,m,n);maxScore=FindMax(pScore,m,n,&row,&col);printfC/maxScore=%d,class=%d,number=%d\n",maxScore,row+1,col+1);free(pScore); /・释放动态内存・/return0;}/・函数功能:输入m行n列二维数组的值・/voidInputScore(int*p,intm,intn)(inti,j;printf("Input%d*%darray:\n",m,n);for(i=0;i<m;i++)(for(j=0;j<n;j++)(scanf("%d",&p[i*n+j]);}})/・函数功能:计算任意m行n列二维数组中元素的最大值,并指出其所在行列下标值・/
intFindMax(int*p,intm,intn,int*pRow,int*pCol)inti,j,max=p[〇];*pRow=0;*pCol=0;for(i=0;i<m;i++){for(j=0;j<n;j++)(if(p[i*n+j]>max){max=p[i*n+j];/*记录行下标・//*记录列下标/*记录行下标・//*记录列下标・/找出其中的错误并改正之。*pCol=j;returnmax;) 2829.下面程序的功能是交换变量a和b中的值。#include<stdio.h>main()(inta,b,*p,*q,*t;P=&a;q二&b;printf("请输入变量a和b的值:〃);scanf("%d%d”,&p,&q);t二*p;p二*q;q二*t;rintf("交换后a和b的值:a=%db=%d\n*,a,b);)答案:#include<stdio.h>main()(inta,b,*p,*q,*t;p=&a;q二&b;printf("请输入变量a和b的值:〃);scanf(〃%d%d〃,&a,&b);t=*p;p二*q;q二*t;printf("交换后a和b的值:a=%db=%d\n〃,*p,*q);) 29编程打印200^300之间所有素数。要求判断ー个数是否是素数用函数实现,打印结果请在主函数实现。判断ー个数是否是素数函数原型为:intfun(intm);参数说明:参数:m是要进行判断的数;返回值:若此数是素数,则返回值为1;否则返回值为〇**输入提示信息:无**输入数据格式要求:无**输出数据格式要求:〃%d\n"注:不允许使用goto语句答案:^include<stdio.h>intfun(intm);main()(inta;for(a=200;a<=300;a++)(if(fum(a))printf(%d\n”,a);elsecontinue;)intfum(intm)(inti;for(i=2;i<m;i++)(if(m%i=0)return0;elsecontinue;)return1;30输入某班学生某门课的成绩(最多不超过40人),当输入为负值时,表示输入结束,用函数编程统计成绩髙于平均分的学生人数。要求按如下原型编写统计成绩在全班平均分及平均分之上的学生人数intGetAboveAver(intscore[],intn);**输入要求:"%d〃**输出要求:"Totalstudentsare%d\n"“Averagescoreis%d\n""Studentsofaboveaverageis%d\n"答案:^include<stdio.h>inta[40]={0},i=0;intGetAboveAver(intscore[],intn);intmain()(for(i;i<=40;i++){intb=0;scanf("%d",&b);if(b>=0)a[i]=b;elsebreak;}printf("Totalstudentsare%d\n",i);GetAboveAver(a,i);}intGetAboveAver(intscore[],intn)(intsum=0,c;intd,e=0;for(c=0;c<i;c++){sum=sum+score[c];)d=sum/i;printf("Averagescoreis%d\n",d);for(c=0;c<i;c++)if(score[c]>d)e++;elsecontinue;}printfC*Studentsofaboveaverageis%d\n',e);return0;} 3031./*编程实现简单的计算器功能,要求用户按如下格式从键盘输入算式:操作数1运算符op操作数2计算并输出表达式的值,其中算术运算符包括:加(+)、减(-)、乘(*)、除(ハ、’(次鬲)。要求使其能进行浮点数的算术运算,同时允许使用字符・、x与X作为乘号,并且允许输入的算术表达式中的操作数和运算符之间可以加入任意多个空格符。**输入格式要求:*%f%c%f・提示信息:"Pleaseentertheexpression:\n"**输出格式要求:"%f+%f=%f\n""%f-%f=%f\n""%f*%f=%f\n""%f/%f=%f\n""Divisionbyzero!\n""%f%f=%f\n*"Invalidoperator!\n"程序运行示例1如下:Pleaseentertheexpression:2.0+4.02.000000+4.000000=6.000000程序运行示例2如下:Pleaseentertheexpression:2.0-4.02.000000-4.000000=-2.000000程序运行示例3如下:Pleaseentertheexpression:2.0*4.02.000000♦4.000000=8.000000程序运行示例4如下:Pleaseentertheexpression:2.0x4.02.000000*4.000000=8.000000程序运行示例5如下:Pleaseentertheexpression:2.0X4.02.000000*4.000000=8.000000程序运行示例6如下:Pleaseentertheexpression:2.0/4.02.000000/4.000000=0.5000000程序运行示例7如下:Pleaseentertheexpression:2.0/0Divisionbyzero!程序运行示例8如下:Pleaseentertheexpression^.05.02.000000'5.000000=32.000000程序运行示例9如下:Pleaseentertheexpression:2.0\4.0Invalidoperator!*/^include<stdio.h>^include<math.h>intmain()(floata,b;charc;printf("Pleaseentertheexpression:\n");scanf("%f%c%f",&a,&c,&b);if(c='+')printf("%f+%f=%f\n",a,b,a+b);elseif(c==')printf("%f-%f=%f\n",a,b,a-b);elseif(c=='/'){if(b!=0)printf(飞f/%f=%f\n",a,b,a/b);elseprintf("Divisionbyzero!");)elseif(cニニ'*'IIcニニ'x'||c=='X')printf("%f*%f=%f\n",a,b,a*b);elseif(cニニ…)printf("%f%f=%f\n",a,b,pow(a,b));elseprintf("Invalidoperator!\n");} 31下面程序的功能是计算两个正整数的最小公倍数,请改正其中的错误。ttinclude<stdio.h>intMinCommonMultiple(inta,intb)main(){inta,b,x;printf(z,Inputa,b:');scanf("%d,%d”,a,b);x=MinCommonMultiple(inta,intb);printf(z/MinCommonMultiple=%d\nzz,x);intMinCommonMultiple(inta,intb);{inti;for(i=l;i<a*b;i++)(if(i%a==0IIi%b==0)
returni;))答案:#include<stdio.h>intMinCommonMultiple(inta,intb);intmainO(inta,b,x;printf(*lnputa,b:");scanfC%d,%d\&a,&b);x=MinCommonMu11ip1e(a,b);printf(*MinCommonMultiple=%d\n*»x);)intMinCommonMultiple(inta,intb)(inti;for(i=1;i<=a*b;i++){if(i%a==0&&i%b==0)returni;} 32请编写函数fuc(),函数的功能是:根据以下公式求出P的值,结果由函数值返回。m,n是两个正整数,且m>n.P=m!/(n!*(m-n)!)**输入格式要求:"%d%d"提示信息:"请输入叫n的值(m>n):\n"**输出格式要求:"n项之和为:%lf\n"程序运行示例如下:请输入m,n的值(m>n):53n项之和为:10.000000答案:#include<stdio.h>intfuc(intm,intn);intsum_s(inti);intmain()intm,n;printf(〃请输入m,n的值(m>n):\n");scanf(〃%d%d”,&m,&n);printf(〃n项之和为:%lf\nz,,(double)fuc(m,n));)intfuc(intm,intn)(intp;p=sum_s(m)/(sum_s(n)*sum_s(m-n));returnp;}intsum_s(inti){ints_=1,a;for(a=1;aく=i;a++)(s_=s_*a;)returns_;) 33采用穷举法,按如下函数原型/・函数功能:计算a和b的最小公倍数,当a或者b为非正整数时返回ー1*/intLem(inta,intb);用函数编程实现计算两个正整数的最小公倍数(LeastCommonMultiple,LCM)的函数,在主函数中调用该函数计算并输出从键盘任意输入的两整数的最小公倍数。**输入格式要求:"%d,%d”提示信息:〃Inputa,b:〃**输出格式要求:“LeastCommonMultipleof%dand%dis%d\n""Inputerror!\n"程序运行示例如下:Inputa,b:16,24LeastCommonMultipleof16and24is48注:不允许使用goto语句答案:ttinclude<stdio.h>intLcm(inta,intb);intmain()inta,b;printf("Inputa,b:");scanf("%d,%d",&a,&b);if(Lem(a,b)>0)printf("LeastCommonMultipleof%dand%dis%d\n",a,b,Lem(a,b));elseprintf("Inputerror!\n");)intLcm(inta,intb)(inti;if(a>0&&b>0)(for(i=1;i<a*b;i++)(if((i%a==0)&&(i%b==0))returni;))elsereturn-1;} 34输入某班学生某门课的成绩(最多不超过40人),当输入为负值时,表示输入结束,用函数编程统计成绩不低于平均分的学生人数。要求:(1)按如下函数原型进行编程:intGetAboveAver(intscore[],intn);(2)在主函数中:输入学生成绩,然后调用函数GetAboveAver计算成绩不低于平均分的学生人数,最后输出该人数。要求:(1)学生成绩和平均分均定义为int类型(2)**无输入提示信息**输入格式为:"%d"**输出格式为:"Studentsofaboveaverageis%d\n"答窠:ttinclude<stdio.h>inta[40]={0},i=0;intGetAboveAver(intscore[],intn);intmain()for(i;i<=40;i++)(intb=0;scanf("%d",&b);if(b>=0)a[i]=b;elsebreak;)GetAboveAver(a,i);)intGetAboveAver(intscore[],intn)(intsum=0,c;intd,e=0;for(c=0;c<i;c++)(sum=sum+score[c];)d=sum/i;for(c=0;c<i;c++)(if(score[c]>=d)e++;elsecontinue;)printf("Studentsofaboveaverageis%d\n",e);return0;} 35从键盘任意输入10个整数存入一个数组中,然后任意输入ー个整数X,采用顺序查找法,在数组中查找该数,如果找到,则函数返回该数在数组中的下标位置,并在主函数中打印该值;如果没有找到,则返回T,并在主函数中打印“Notfound!"〇要求按如下函数原型编程实现查找功能。intSearch(intaロ,intn,intx);在主函数中调用函数Search顺序查找x,然后在主函数中打印查找结果。要求必须按照题目要求和用函数编程,否则不给分。求・要求输入!0个整数的提示信息格式为:,zInput10numbers:\n"(每输入ー个数,键ー次回车);**要求输入整数x的提示信息格式为:“Inputx:\n"**要求输出格式为:找到时的打印格式为"Subscriptofxis%d\n"没找到时的打印格式为"Notfound!\n〃答窠:#include<stdio.h>intSearch(inta口,intn,intx);intb[10]={0};intmain()(intx,n;printf("Input10numbers:\n");for(x=0;x<10;x++)(scanf("%d",&n);b[x]=n;)printf("Inputx:\n");scanf("%d",&x);Search(b,n,x);if(Search(b,n,x)>0)printf("Subscriptofxis%d\n/z,Search(b,n,x));elseprintf("Notfound!\nz,);)intSearch(inta[],intn,intx)(for(n=0;n<10;n++){if(a[n]=x)returnn;elsecontinue;)return-1;) 36利用ー个字符数组作函数参数,实现字符串(最大长度为80个字符)的逆序存放。要求如下:(1)在子函数!nverse中实现字符串的逆序存放。函数原型为:voidInverse(charstr[]);(2)在主函数中从键盘输入字符串(使用gets函数)然后,调用Inverse函数,最后,输出逆序后的字符串。(3)**输入提示信息:"Inputastring:\n"**输出提示信息:"Inversedresults:\n"**输出格式:"%s\n"注:不能使用指针、结构体、共用体、文件、got。、枚举类型进行编程,主函数不能使用intmain和return〇〇答案:#include<stdio.h>charstr_l[81];voidInverse(charstrロ);intmain()(printf("Inputastring:\n#);gets(str_l);Inverse(str_l);)voidInverse(charstrロ)(charb;inta,c;for(a=0;a<81;a++)if(str[a]=='、〇')break;elsecontinue;}for(c=0;c<(a)/2.0;c++)(b=str[c];str[c]=str[(a-1)-c];str[(a-1)-c]=b;)printf("Inversedresults:\n");printf("%s\n",str);38.从键盘任意输入一个字符串,计算其实际字符个数并打印输出,即不使用字符串处理函数strlen()编程实现strlenO的功能。**输入格式要求:〃%s”提示信息:"Pleaseenterastring:"**输出格式要求:“Thelengthofthestringis:%u\n"程序的运行示例如下:Pleaseenterastring:HelloChinaThelengthofthestringis:11答案:#include<stdio.h>main()(inta;charstr[100];printf(z,Pleaseenterastring:zZ丿;gets(str);for(a=0;a<100;a++)(if(str[a]=='、〇')break;elsecontinue;)printf(zzThelengthofthestringis:%u\nzz,a);)一38输入一行字符,统计其中的英文字符、数字字符、空格字符,以及其他字符的个数。请找出以下程序的错误,并改正之。Sinclude<stdio.h>ttinclude<string.h>#defineARR_SIZE=80;main()(charstr[ARR_SIZE];intlen,i;intletter=0,digit=O,space=0,other=0;printf(〃请输入一个字符串:〃);gets(str);len=strlen(str);for(i=0;i<len;i++)(if(a=<str[i]<=z||A=<str[i]<=Z){letter++;)elseif(0=<str[i]<=9)(digit++;)elseif(str[i]='){space++;)elseother++;)printf("英文字符数:%d\n〃,letter);printf(〃数字字符数:%d\n”,digit);printf(〃空格数:%d\n”,space);printf(〃其他字符数:%d\n〃,other);)答案:ttinclude<stdio.h>#include<string.h>#defineARR_SIZE80main()(charstr[ARR_SIZE];intlen,i;intletter=0,digit=0,space=0,other=0;printf(〃请输入一个字符串:");gets(str);len=strlen(str);for(i=0;i<=len;i++)if('a'<=str[i]&&str[i]くニ‘z‘II'A'<=str[i]&&str[i]<='Z')letter++;elseif('〇'く=str[i]&&str[i]<='9')(digit++;)elseif(str[i]=='')(space++;}elseother++;printf(〃英文字符数:%d\n",letter);printf("数字字符数:%d\n",digit);printf(〃空格数:%d\n〃,space);printf(〃其他字符数:%d\n",other-1); 39编程判断输入的ー个字符串是否是“回文”。所谓“回文”字符串就是左读和右读都一样的字符串。例如:〃abcba〃就是ー个回文字符串。输入提示信息:〃Inputastring:\n,z输入格式:gets()判断是回文的输出提示信息:〃Thisstringisaplalindrome."判断不是回文的输出提示信息:〃Thisstringisnotaplalindrome.程序运行示例1:Inputastring:abcba/Thisstringisaplalindrome.程序运行示例2:Inputastring:friendZThisstringisnotaplalindrome.答案:#include<stdio.h>charstr_l[81];voidInverse(charstr[]);intmain()printf(z,Inputastring:\nz,);gets(str_l);Inverse(str_l);}voidInverse(charstrロ)(charb;inta,c;for(a=0;a<81;a++)(if(str[a]==‘、〇')break;elsecontinue;)for(c=0;c<(a)/2.0;c++)(if(str[c]==str[(a-1)-c])continue;else(printf(z,Thisstringisnotaplalindrome.");return;}}printf(zzThisstringisaplalindrome.〃);) 40编程实现从键盘输入5个国名(每个国名最长80个字符),找出并输出按字典顺序排在最前面的国名要求:(1)用gets输入字符串。(2)**输入提示信息为:"Inputfivecountries'names:\nz,**输出格式为:"Theminimumis:%s\n答案:#include<stdio.h>main()chara[5][81]={0},b,c;printf(z,Inputfivecountries'names:\nz/);for(i=0;i<5;i++){gets(a[i]);)b=a[0][0];for(i=1;i<5;i++)(if(a[i][0]<b)(b=a[i][0];c=i;)elseif(a[i][0]==b){if(a[i][l]<a[i-1][1])c=i;elsec=i-1;)elsecontinue;)printf("Theminimumis:%s\n",a[c]);ー个n位正整数如果等于它的n个数字的n次方和,该数称为n位自方慕数。设计求3、6位自方基数。**输出格式要求:"%d位自騒数有:""%ld\t""\n"(每位完后换行)程序运行示例如下:3位自暴数有:1533703714074位自幕数有:1634820894745位自幕数有:5474892727 930846位自察数有:548834尚未完成 42从键盘为3*3的矩阵输入数据,找出主对角线上最大的元素,以及所在的行号。**输入提示信息:无**输入格式要求:"%d"**输出格式要求:“max=%d,row=%d"程序运行示例如下:123456789max=9,row=2注:不允许使用goto语句答案:ttinclude<stdio.h>main(){inti,j,row=0,max;inta[3][3];for(i=0;i<3;i++){for(j=0;j<3;j++)scanf("%d〃,&a[i][j]);max=a[0][0];for(i=0;i<3;i++)(if(max<a[i][i])(max=a[i][i];row=i;))printf(,,max=%d,row二%d〃,max,row); 43任意输入英文的星期几,通过查找星期表,输出其对应的数字,若查到表尾,仍未找到,则输出错误提示信息。**输入格式要求:提示信息:〃Pleaseenterastring:\n**输出格式要求:〃%sis%d\n""Notfound!\n"查找表中信息:Friday,Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday"程序运行示例1如下:Pleaseenterastring:MondayMondayis1程序运行示例2如下:MonkeyNotfound!答案:ttinclude<stdio.h>ttinclude<string.h>#defineWEEKDAYS7ttdefineMAX_STR_LEN10intmain(){inti,pos;intfindFlag=0;charx[MAX_STR_LEN];luesday,charweekDay[][MAX_STR_LEN]=luesday,printfC'Pleaseenterastring:\nz,);scanf("%s",x);for(i=0;i<WEEKDAYS&&ifindFlag;i++)(if(strcmp(x,weekDay[i])==0)(pos=i;findFlag=1;))if(findFlag){printf("%sis%d\n",x,pos);)else{printf("Notfound!\n");)return0;) 44有一个3*4的矩阵,求其中的最大元素的值。矩阵为:{{1,3,5,7},{2,4,6,8},{15,17,34,12}};**输出格式要求:"maxvalueis刎、n”程序运行示例如下:maxvalueis34答案:Sinclude<stdio.h>main()(inta[3][4]={{1,3,5,7},{2,4,6,8},{15,17,34,12}};inti,j,c;c=a[〇][〇];for(i=0;i<3;i++){for(j=0;j<4;j++)(if(a[i][j]>=c)c=a[i][j];elsecontinue;printf(z/maxvalueis%d\n〃,c);) 45按如下函数原型编写程序,输入nXn阶矩阵,用函数编程计算并输出其两条对角线上的各元素之和。voidInputMatrix(inta[N][N],intn);intAddDiagonal(inta[N][N],intn);输入提示信息:Inputn:zzzzInput%d*%dmatrix:\nzz输入格式:〃%d〃输出提示信息和输出格式:"sum=%d\n"答案:#include<stdio.h>ttdefinePL50main()(inta[PL][PL];inti,j,n,sum=0;printf(z,Inputn:zz);scanf(,z%d,z,&n);printf(z,Input%d*%dmatrix:\nzz,n,n);for(i=0;i<n;i++)for(j=0;j<n;j++)(scanf(*%d*,&a[i][j]);}for(i=0;i<n;i++)for(j=0;j<n;j++)(if(i==jII(i+j)==(n-1))sum=sum+a[i][j];}printf(*sum=%d\n,/,sum);) 46有如下3*4的矩阵,求出其中值最大的元素的值。TOC\o"1-5"\h\z12 3 48 7 6-1 -4 4在对数组进行初始化时,给出上面数据。*要求输入提示信息为:无输入提示信息和输入数据*要求输出格式为:"max=%d\n"答案:include<stdio.h>main()(inta[3][4]={{1.2,3.4},{9,8,7,6},{10,-1,-4,4}};inti,j,c;c=a[〇][〇];for(i=0;i<3;i++){for(j=0;j<4;j++)(if(a[i][j]>=c)
c=a[i][j];elsecontinue;printf("max二%d\n',c);) 47输入ー个正整数n,再输入n个学生的成绩,计算平均分,并统计不及格成绩的个数。**输入格式要求:〃%d〃提示信息:〃Entergrade#%d:"〃%lf”提示信息:Entern:“**输出格
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基于二型模糊逻辑的死锁与数据竞争检测方法:理论、实践与创新
- 山西省晋中市名校2027届七年级数学第一学期期末监测模拟试题含解析
- 2027届湖北省宜昌市秭归县数学九年级第一学期期末综合测试试题含解析
- 2027届云南省罗平县八上数学期末考试试题含解析
- 山东省济宁市曲阜市2027届七上数学期末复习检测试题含解析
- 2026学年延安市志丹县三年级数学第二学期期中调研模拟试题(含答案解析)
- 2025年湖北省丹江口市高二生物上册期末考试考试卷含答案(精练)
- 2026年广东省乐昌市高二生物下册期末考试模拟检测卷含答案(研优卷)
- 2027届晋城市重点中学八上数学期末学业水平测试试题含解析
- 陕西省华阴市2027届七上数学期末经典模拟试题含解析
- L25J101-2建筑工程做法(下册)
- 彩钢顶屋面维修工程维修施工方案
- 普通动物学题库-普通动物学习题及答案
- 大学室长培训
- 雨课堂学堂在线学堂云《神经网络理论及应用(北工商)》单元测试考核答案
- 2025重庆日报报业集团所属企业招聘3人笔试历年典型考点题库附带答案详解试卷3套
- 雨课堂在线学堂《走进医学》作业单元考核答案
- 人教版二年级数学上册第二单元1~6的表内乘法达标测试卷(含答案)
- 义乌商贸城租房合同范本
- 医药代表开发医院经验分享
- 《网评员管理办法》
评论
0/150
提交评论