C语言练习题及答案docx.docx
《C语言练习题及答案docx.docx》由会员分享,可在线阅读,更多相关《C语言练习题及答案docx.docx(156页珍藏版)》请在冰豆网上搜索。
C语言练习题及答案docx
1•己知三角形的三边长为d,b,C,计算三角形面积的公式为:
area=sqrt(s(s-a)(s-b)(s-c))»其中s=(a+b+c)/2o
试編程从键盘输入a,b,c的值(假设a,b,c的值可以保证其构成一个三角形),计算并输出三角形的面积。
**输入格式要求:
"鮎f\%f,鮎厂提示信息:
"Inputa,b,c<
**输出格式要求:
"area=%.2f\n*
程序运行示例如下:
Inputa,b,c:
3,4,5
area=6.00
答案:
#include
intmain(void)
{
floatazbzc,s,area;
printf(nlnputa/b/c:
n);
scanf(,,%f/%t%f,/&a,&b,&c);
s=(a+b+c)/2;
area=sqrt(s*(s-a)拿(s•b)*(s•c));
printf("area=%.2f\n"/area);
return0;
}
1
2•从键盘任意输入一个4位整数,编程计算并输出它的逆序数•例如:
输入1234,分离出千位J百位2、十位3和个位4,然后计4*1000+3*100+2*10+1=4321,并输出4321。
材要求输入提示信息为:
无
粋要求输入格式为:
"%d"
林要求输出格式为:
3d"
1234此处为输入
4321此处为输出
答案:
inta,bzc,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;
printfC,%dM,a);
3•有关输入输出问题。
输入为:
12aZ
b/
运行结果为:
1,2,a,b,123.300000,65535
谙改正程序中的错误,使它能得出正确的结果。
林include
main()
intb;
unsignedshorta=65535;
shortk=a;
charc,d:
intf,g;
b=(1234.0-1)/10;
sesnf&c);
scanf("We",&d):
scanf("鴛d",&『);
scanf*("曙d",&g);
printf("%c,%c,%c,%c,%F,Wd",c,d,f,g,b,k):
ftinclude
doubleb;
inta=65535;
charc,d;
intf.g;
scanf「%c蔦&c);
scanf(,,%c,,/&d);
scanf(”%c\U&f);
scanf(,,%c"/&g);
printf(,,%cz%cz%c/%c/%f/%d,,/c,d,f,g,b,a);
4•输入一行字符,统计其中的英文字符、数字字符、空格字符,以及其他字符的个数。
请找出以下程序的错误,并改正之。
存include
^include〈string.h〉
defineARR_STZE=80;
charstr[ARR_SIZE]:
intlen,i;
intletter^,digit=0,space=0,other=0:
printf("谙输入一个字符串:
");
gets(str);
len=strlen(str);
for(i=0;i{if(a={letter++;}elseif(0={digit++;}elseif(str[i]=>'){space++;}elseother++;}print""英文字符数:%d\nz\letter):printfC数字字符数:%d\n\digit);printfC空格数d\n",space):printf(z,其他字符数:%d\nz\other);}答案:#includedefineARRSIZE80main(){charstr[ARR_STZE]:intlen,i;intletter=0,digit=0,space=0,other=0:printf("谙输入一个字符串:");gets(str);len=strlen(str);for(i=0;i{ifCa"<=str[i]&&str[i]<='/11'A'<=str[i]&&str[i]<='Z'){letter++;}elseif('O'<=str[i]&&str[i]<='9'){digil++;}elseif(str[i]=''){space++;}elseother++;}printf(z,英文字符数:%d\nz\letter):printfC数字字符数:%d\n\digit):printfC空格数:%d\n",space);printf(z,其他字符数:%d\nz\other);}5•对输入的一个数判断是否妊索数.所谓索数超指这个数只能被1和自身整除。要求在主函数输入一个数,调用函数Fun()判断该数是否是素数。打印信息在主函数中进行。例如:从键盘输入5,5是素数则打印如卜-信息:"5isaprimenumber\又如:从键盘输入4,4不是素数则打卬如下信息:"4isnotaprimenumber\负数、0和1均不是素数。对输入的数据要考虑数据的合法性,不满足条件的数要重新输入直到满足条件为止。不能使用全局变量,不按给定的函数原型编写程序不给分。Fun()函数原型为:intFun(intm):**输入数据提示信息:"Pleaseinputanumber:\n"粋输入数据格式为:羯『**输出格式要求:若是索数输出数据格式为:*%disaprimenumber\nw若不是索数输出数拯格式为:"%disnotaprimenumber\n^不完號答案:#includeintFun(inta){inti;if(a>l){ford=2;i{if(a%i==0)return0;elsecontinue;}return1;}elsereturn0;}main(){intb,c;printf(^Pleaseinputanumber:\n^):scanf("鮎d",&b);c=Fun(b);if(0==c)printfC*%disnotaprimenumber\n*,b):elseprintrC%disaprimenumber\n^,b):}参考答案:^include"sldio.h"intFun(intm):intmain(){intm,flag;printf(^Pleaseinputanumber:\n^):}whi1e(m<2);//elflag=Fun(m);//3if(flag)//IprintfC%disaprimenumber\n*,m);elseprintf(”%disnotaprimenumber\n",m);//Ireturn0:}intFun(intm)//2{inti,flag=1;//Ifor(i=2;i{if(m%i==0)//I{flag=0;//Ibreak;}}returnflag;//2}56•求1898现將不超过2000的所有素数从小到大排成第一行,.第二行上的每个数都等于它“右肩”上的素数与“左肩”上的素数Z差。请编程求出:第二行数中是否存在这样的若干个连续的整数,它们的和恰好是1898?假如存在的话,又有几种这样的情况?**输入格式耍求:提示信息:"Therearefollwingprimesinfirstrow:\n?,**输出格式要求:'(%d).%3d,%d\『程序运行示例如下:Therearcfoilwingprimesinfirstrow:(1)・101,1999(2).89,1987(3).53,1951(4).3,1901答案:^include^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{if(i%j==0)break;elsecontinue;}if(j==i){a[k]=i;好+;}elsecontinue;}printf('"Therearefollwingprimesinfirstrow:\n">;for(c=329;c>=0;c--)for(b=c+1;cif(b<330){if((a[b]一a[c])==1898){printfC(%d).%3d%d\n",d,a[c],a[b]);d++;}elsecontinue;}elsebreak;}7.从键盘任意输入一个整数m,若m不是素数,则对m进行质因数分解,并将m表示为质因数从小到大顺序排列的乘积形式输出,否则输出"Itisaprimenumber".例如,用户输入90时,程序输出90=2*3*3*5;用户输入17时,程序输出"Itisaprimenumber*o输入提示信息:"Inputm:"输入格式:先d"输出格式:是素数时输出"Itisaprimenumber'n"否则输出用Wd=\驾d*"运行示例1:Tnputm:90Z90=2*3*3*5运行示例2:Inputm:13/Itisaprimenumber答案:^include#includeintTsPrimc(intx);voidOutputPrimeFactor(intx):intmain(){intm;printf(^Tnputm:");scanf&id);if(IsPrime(m)){printf(^ItisaprimenumberXn^):}else{printfC%d=",m);OutputPrimcFiictor(m);}return0:}intIsPrime(intx){inti,flag=l;intsquarcRoot=sqrt(x):if(x<=!){flag=0;}for(i=2:i<=squarcRoot&&T1ag:i++){if(x%i==0){flag=0;}}returnflag;voidOutputPrimeFactor(intx)inti;for(i=2;i〈x;i++){if(x%i==0){printfC%d♦",i);OutputPrimeFactor(x/i);return;}}printfr%d^,x);}7&将任一整数转换为二进制形式。**输入格式要求%d〃提示信息:,zInputnumber/7**输出格式要求:"numbcrofdecimalform:%d\"it\'sbinaryform:程序运行示例如下:Inputnumber:876numberofdecimalform:876it'sbinaryform:00000000000000000000001101101100答案:#inelude#includeintmainO{inta;charb[32];printf(z,Inputnumber/');scanf("%d",&a);printf(z,nuniberofdecimalform:%d\nz,,a):printf(z,it\'sbinaryform:”);printf("%s\n",itoa(a,b,2));}89.求自然数n最近的素数k,k>n。***输入提示信息**:"Inputn:"***输入数据格式%d"***输出数据格式細:理d〃示例输入:257输出:Pleaseinputn:263答案:#includeintinain(){intn,i二1,k;printfC'Plcascinputn:");scanf&n);for(k=n+l;i;k++){for(i=2;iif(k%i==0)break;elsecontinue;if(i==k){printfk);i=0;break;}}}910.如果一个正整数ni的所有小于ni的不同因子(包括1)加起来止好等于m本身,那么就被称它为完全数。它是指这样的一些特殊的口然数,它所有的真因子(即除了自身以外的约数)的和,恰好等于它本身。注意:1没有真因子,所以不是完全数。例如,6就是一个完全数,是因为6=1+2+3。请编写一个判断完全数的函数IsPerfect(),然后判断从键盘输入的整数是否是完全数。要求:按如下原型编写判断完全数的函数,若函数返冋0,则代表不是完全数,若返冋1,则代表是完全数。intIsPcrfcct(intx);**要求输入提示信息为:"Inputm:\rT粋要求输入格式为:〃%**要求输出格式为"%disaperfectnumber\n,/isnotaperfectnumbcr\n,/注:不能使用指针.结构体.共用体.文件.goto.枚举类型进行编程,主函数不能使用intmain和return0。答案:#includeintTsPerfect(intx);intmain(){intm;printf("Inputm:\rT);scanf("%d",&【n);if(IsPerfect(m))printf(z,%disaperfectnumber\n,,>m);elseprintf(z,%disnotaperfectnumber\nz,,m);}intIsPerfect(intx){inti=1,b=0;for(i=1:iif(x%i二二0){b=b+i;continue;}elsecontinue;if(b==x)return1;elsereturn0;}1011.用函数编程计算两整数的最人值,在主函数中调用该函数计算并输出从键盘任意输入的两整数的最人值。**输入格式要求:提示信息:"Inputa,b/**输出格式要求:"max=%d\n"程序运行示例如下:Inputa,b:5,8max=8答案:ttincludcintmax(inta,intb)辻(a>=b)returna;elsereturnb;}main0{inta=0,b=0;printf("Iriputa,b:");scanf("%d,%d",&a,&b);printfC'max=%d\n",max(a,b));}1112.利用求阶乘函数FactO,编程计算并输出1!+2!+…+n!的值。**输入格式要求:”%u"提示信息:"Inputn(n>0):"**输出格式要求:"sum=%lu\n"答案:#includeintsums(inti);main0{unsignedintn=0;unsignedlongb二0;printf(,zTnputn(n〉0):");scanf&n);for(b;n;n一){b=b+sum_s(n);}printf("sum=%lu\n",b);}intsums(inti){inta;for(a二1;i;i―){if(i>1)a=a*i;elsea=a*1;}returna;办公室管理教务管理科研管理人事管理退出系统财务管理图书管理设备管理后勤管理请您在上述功能屮选择(08):提示:输出如下格式=======大学信息管理系统=======printf(“0.退出系统\n");printfC\n〃);printf(”请您在上述功能中选择(08):\n");14.利用静态变量计算n的阶乘。**输入格式要求:〃側〃提示信息:〃Inputn:〃**输出格式要求:"%d!=%ld\n"程序运行示例如下:Inputn:101!=12!=23!=64!=245!=1206!=7207!=50408!=403209!=36288010!=3628800答案:#includeintsum_s(inti);main()Iunsignedintn二0,b二1;printf("Inputn:");scanf&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,程序的输出结果格式如下:12)123提示:使用求余运算符获得余数,使用整数除法获得商。**输入格式耍求:驾d%d〃提示信息:〃请输入两个整数:”**输出格式要求:13dRemainder=%d\n"\n"%5d)%5d"答案:ttincludcmain()inta,b,c,d;printfC请输入两个整数:");scanf("%d%d",&a,&b);c=a/b;d=a%b:printf(/z%13dRemainder=%d\n",c,d);printfC\n〃);printf(z,%5d)%5d",b,a);}1516.写一个程序,将接收的摄氏温度转换为对应的华氏温度。程序应显示如下的提示信息:Pleaseinputcels:然后输入一个十进制数并iHl车,然后程序以合适的消息形式输出转换后的华氏温度。程序使用如下的公式完成转换:摄氏温度=5.0*(华氏温麼-32.0)/9.0**输入格式要求:If"提示信息:"Pleaseinputcels:**输出格式要求:"Thefahris:%.2『"答案:ttincludcmain(){doublea,b;printf(^Pleaseinputcels:”);scanf&a);b=(9.0*a)/5.0+32.0;printf(z,Thefahris:%.2f",b);}1617.写一个程序,将接收的华氏温度转换为对应的摄氏温度。程序应显示如下的提示信息:Pleaseinputfahr:然后输入一个十进制数并iHl车,然后程序以合适的消息形式输出转换后的华氏温度。程序使用如下的公式完成转换:摄氏温度=5.0*(华氏温度-32.0)/9.0**输入格式要求:If"提示信息:"Pleaseinputfahr:**输出格式要求:"Thecelsis:%.2『"答案:ttincludcmain()Idoublea,b;printf(^Pleaseinputfahr:”);scanf&a);b=5.0*(a-32.0)/9.0;printf("Thecelsis:%.2f",b);}1718.编写一个程序,输入一个3位整数,要求逆序输出对应的数。例如:输入123,则输出321。**输入格式耍求:"%d"提示信息:"Pleaseenterapositiveinteger:**输出格式要求:"%d--〉%d\n"程序运
if(a={letter++;}elseif(0={digit++;}elseif(str[i]=>'){space++;}elseother++;}print""英文字符数:%d\nz\letter):printfC数字字符数:%d\n\digit);printfC空格数d\n",space):printf(z,其他字符数:%d\nz\other);}答案:#includedefineARRSIZE80main(){charstr[ARR_STZE]:intlen,i;intletter=0,digit=0,space=0,other=0:printf("谙输入一个字符串:");gets(str);len=strlen(str);for(i=0;i{ifCa"<=str[i]&&str[i]<='/11'A'<=str[i]&&str[i]<='Z'){letter++;}elseif('O'<=str[i]&&str[i]<='9'){digil++;}elseif(str[i]=''){space++;}elseother++;}printf(z,英文字符数:%d\nz\letter):printfC数字字符数:%d\n\digit):printfC空格数:%d\n",space);printf(z,其他字符数:%d\nz\other);}5•对输入的一个数判断是否妊索数.所谓索数超指这个数只能被1和自身整除。要求在主函数输入一个数,调用函数Fun()判断该数是否是素数。打印信息在主函数中进行。例如:从键盘输入5,5是素数则打印如卜-信息:"5isaprimenumber\又如:从键盘输入4,4不是素数则打卬如下信息:"4isnotaprimenumber\负数、0和1均不是素数。对输入的数据要考虑数据的合法性,不满足条件的数要重新输入直到满足条件为止。不能使用全局变量,不按给定的函数原型编写程序不给分。Fun()函数原型为:intFun(intm):**输入数据提示信息:"Pleaseinputanumber:\n"粋输入数据格式为:羯『**输出格式要求:若是索数输出数据格式为:*%disaprimenumber\nw若不是索数输出数拯格式为:"%disnotaprimenumber\n^不完號答案:#includeintFun(inta){inti;if(a>l){ford=2;i{if(a%i==0)return0;elsecontinue;}return1;}elsereturn0;}main(){intb,c;printf(^Pleaseinputanumber:\n^):scanf("鮎d",&b);c=Fun(b);if(0==c)printfC*%disnotaprimenumber\n*,b):elseprintrC%disaprimenumber\n^,b):}参考答案:^include"sldio.h"intFun(intm):intmain(){intm,flag;printf(^Pleaseinputanumber:\n^):}whi1e(m<2);//elflag=Fun(m);//3if(flag)//IprintfC%disaprimenumber\n*,m);elseprintf(”%disnotaprimenumber\n",m);//Ireturn0:}intFun(intm)//2{inti,flag=1;//Ifor(i=2;i{if(m%i==0)//I{flag=0;//Ibreak;}}returnflag;//2}56•求1898现將不超过2000的所有素数从小到大排成第一行,.第二行上的每个数都等于它“右肩”上的素数与“左肩”上的素数Z差。请编程求出:第二行数中是否存在这样的若干个连续的整数,它们的和恰好是1898?假如存在的话,又有几种这样的情况?**输入格式耍求:提示信息:"Therearefollwingprimesinfirstrow:\n?,**输出格式要求:'(%d).%3d,%d\『程序运行示例如下:Therearcfoilwingprimesinfirstrow:(1)・101,1999(2).89,1987(3).53,1951(4).3,1901答案:^include^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{if(i%j==0)break;elsecontinue;}if(j==i){a[k]=i;好+;}elsecontinue;}printf('"Therearefollwingprimesinfirstrow:\n">;for(c=329;c>=0;c--)for(b=c+1;cif(b<330){if((a[b]一a[c])==1898){printfC(%d).%3d%d\n",d,a[c],a[b]);d++;}elsecontinue;}elsebreak;}7.从键盘任意输入一个整数m,若m不是素数,则对m进行质因数分解,并将m表示为质因数从小到大顺序排列的乘积形式输出,否则输出"Itisaprimenumber".例如,用户输入90时,程序输出90=2*3*3*5;用户输入17时,程序输出"Itisaprimenumber*o输入提示信息:"Inputm:"输入格式:先d"输出格式:是素数时输出"Itisaprimenumber'n"否则输出用Wd=\驾d*"运行示例1:Tnputm:90Z90=2*3*3*5运行示例2:Inputm:13/Itisaprimenumber答案:^include#includeintTsPrimc(intx);voidOutputPrimeFactor(intx):intmain(){intm;printf(^Tnputm:");scanf&id);if(IsPrime(m)){printf(^ItisaprimenumberXn^):}else{printfC%d=",m);OutputPrimcFiictor(m);}return0:}intIsPrime(intx){inti,flag=l;intsquarcRoot=sqrt(x):if(x<=!){flag=0;}for(i=2:i<=squarcRoot&&T1ag:i++){if(x%i==0){flag=0;}}returnflag;voidOutputPrimeFactor(intx)inti;for(i=2;i〈x;i++){if(x%i==0){printfC%d♦",i);OutputPrimeFactor(x/i);return;}}printfr%d^,x);}7&将任一整数转换为二进制形式。**输入格式要求%d〃提示信息:,zInputnumber/7**输出格式要求:"numbcrofdecimalform:%d\"it\'sbinaryform:程序运行示例如下:Inputnumber:876numberofdecimalform:876it'sbinaryform:00000000000000000000001101101100答案:#inelude#includeintmainO{inta;charb[32];printf(z,Inputnumber/');scanf("%d",&a);printf(z,nuniberofdecimalform:%d\nz,,a):printf(z,it\'sbinaryform:”);printf("%s\n",itoa(a,b,2));}89.求自然数n最近的素数k,k>n。***输入提示信息**:"Inputn:"***输入数据格式%d"***输出数据格式細:理d〃示例输入:257输出:Pleaseinputn:263答案:#includeintinain(){intn,i二1,k;printfC'Plcascinputn:");scanf&n);for(k=n+l;i;k++){for(i=2;iif(k%i==0)break;elsecontinue;if(i==k){printfk);i=0;break;}}}910.如果一个正整数ni的所有小于ni的不同因子(包括1)加起来止好等于m本身,那么就被称它为完全数。它是指这样的一些特殊的口然数,它所有的真因子(即除了自身以外的约数)的和,恰好等于它本身。注意:1没有真因子,所以不是完全数。例如,6就是一个完全数,是因为6=1+2+3。请编写一个判断完全数的函数IsPerfect(),然后判断从键盘输入的整数是否是完全数。要求:按如下原型编写判断完全数的函数,若函数返冋0,则代表不是完全数,若返冋1,则代表是完全数。intIsPcrfcct(intx);**要求输入提示信息为:"Inputm:\rT粋要求输入格式为:〃%**要求输出格式为"%disaperfectnumber\n,/isnotaperfectnumbcr\n,/注:不能使用指针.结构体.共用体.文件.goto.枚举类型进行编程,主函数不能使用intmain和return0。答案:#includeintTsPerfect(intx);intmain(){intm;printf("Inputm:\rT);scanf("%d",&【n);if(IsPerfect(m))printf(z,%disaperfectnumber\n,,>m);elseprintf(z,%disnotaperfectnumber\nz,,m);}intIsPerfect(intx){inti=1,b=0;for(i=1:iif(x%i二二0){b=b+i;continue;}elsecontinue;if(b==x)return1;elsereturn0;}1011.用函数编程计算两整数的最人值,在主函数中调用该函数计算并输出从键盘任意输入的两整数的最人值。**输入格式要求:提示信息:"Inputa,b/**输出格式要求:"max=%d\n"程序运行示例如下:Inputa,b:5,8max=8答案:ttincludcintmax(inta,intb)辻(a>=b)returna;elsereturnb;}main0{inta=0,b=0;printf("Iriputa,b:");scanf("%d,%d",&a,&b);printfC'max=%d\n",max(a,b));}1112.利用求阶乘函数FactO,编程计算并输出1!+2!+…+n!的值。**输入格式要求:”%u"提示信息:"Inputn(n>0):"**输出格式要求:"sum=%lu\n"答案:#includeintsums(inti);main0{unsignedintn=0;unsignedlongb二0;printf(,zTnputn(n〉0):");scanf&n);for(b;n;n一){b=b+sum_s(n);}printf("sum=%lu\n",b);}intsums(inti){inta;for(a二1;i;i―){if(i>1)a=a*i;elsea=a*1;}returna;办公室管理教务管理科研管理人事管理退出系统财务管理图书管理设备管理后勤管理请您在上述功能屮选择(08):提示:输出如下格式=======大学信息管理系统=======printf(“0.退出系统\n");printfC\n〃);printf(”请您在上述功能中选择(08):\n");14.利用静态变量计算n的阶乘。**输入格式要求:〃側〃提示信息:〃Inputn:〃**输出格式要求:"%d!=%ld\n"程序运行示例如下:Inputn:101!=12!=23!=64!=245!=1206!=7207!=50408!=403209!=36288010!=3628800答案:#includeintsum_s(inti);main()Iunsignedintn二0,b二1;printf("Inputn:");scanf&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,程序的输出结果格式如下:12)123提示:使用求余运算符获得余数,使用整数除法获得商。**输入格式耍求:驾d%d〃提示信息:〃请输入两个整数:”**输出格式要求:13dRemainder=%d\n"\n"%5d)%5d"答案:ttincludcmain()inta,b,c,d;printfC请输入两个整数:");scanf("%d%d",&a,&b);c=a/b;d=a%b:printf(/z%13dRemainder=%d\n",c,d);printfC\n〃);printf(z,%5d)%5d",b,a);}1516.写一个程序,将接收的摄氏温度转换为对应的华氏温度。程序应显示如下的提示信息:Pleaseinputcels:然后输入一个十进制数并iHl车,然后程序以合适的消息形式输出转换后的华氏温度。程序使用如下的公式完成转换:摄氏温度=5.0*(华氏温麼-32.0)/9.0**输入格式要求:If"提示信息:"Pleaseinputcels:**输出格式要求:"Thefahris:%.2『"答案:ttincludcmain(){doublea,b;printf(^Pleaseinputcels:”);scanf&a);b=(9.0*a)/5.0+32.0;printf(z,Thefahris:%.2f",b);}1617.写一个程序,将接收的华氏温度转换为对应的摄氏温度。程序应显示如下的提示信息:Pleaseinputfahr:然后输入一个十进制数并iHl车,然后程序以合适的消息形式输出转换后的华氏温度。程序使用如下的公式完成转换:摄氏温度=5.0*(华氏温度-32.0)/9.0**输入格式要求:If"提示信息:"Pleaseinputfahr:**输出格式要求:"Thecelsis:%.2『"答案:ttincludcmain()Idoublea,b;printf(^Pleaseinputfahr:”);scanf&a);b=5.0*(a-32.0)/9.0;printf("Thecelsis:%.2f",b);}1718.编写一个程序,输入一个3位整数,要求逆序输出对应的数。例如:输入123,则输出321。**输入格式耍求:"%d"提示信息:"Pleaseenterapositiveinteger:**输出格式要求:"%d--〉%d\n"程序运
letter++;
elseif(0={digit++;}elseif(str[i]=>'){space++;}elseother++;}print""英文字符数:%d\nz\letter):printfC数字字符数:%d\n\digit);printfC空格数d\n",space):printf(z,其他字符数:%d\nz\other);}答案:#includedefineARRSIZE80main(){charstr[ARR_STZE]:intlen,i;intletter=0,digit=0,space=0,other=0:printf("谙输入一个字符串:");gets(str);len=strlen(str);for(i=0;i{ifCa"<=str[i]&&str[i]<='/11'A'<=str[i]&&str[i]<='Z'){letter++;}elseif('O'<=str[i]&&str[i]<='9'){digil++;}elseif(str[i]=''){space++;}elseother++;}printf(z,英文字符数:%d\nz\letter):printfC数字字符数:%d\n\digit):printfC空格数:%d\n",space);printf(z,其他字符数:%d\nz\other);}5•对输入的一个数判断是否妊索数.所谓索数超指这个数只能被1和自身整除。要求在主函数输入一个数,调用函数Fun()判断该数是否是素数。打印信息在主函数中进行。例如:从键盘输入5,5是素数则打印如卜-信息:"5isaprimenumber\又如:从键盘输入4,4不是素数则打卬如下信息:"4isnotaprimenumber\负数、0和1均不是素数。对输入的数据要考虑数据的合法性,不满足条件的数要重新输入直到满足条件为止。不能使用全局变量,不按给定的函数原型编写程序不给分。Fun()函数原型为:intFun(intm):**输入数据提示信息:"Pleaseinputanumber:\n"粋输入数据格式为:羯『**输出格式要求:若是索数输出数据格式为:*%disaprimenumber\nw若不是索数输出数拯格式为:"%disnotaprimenumber\n^不完號答案:#includeintFun(inta){inti;if(a>l){ford=2;i{if(a%i==0)return0;elsecontinue;}return1;}elsereturn0;}main(){intb,c;printf(^Pleaseinputanumber:\n^):scanf("鮎d",&b);c=Fun(b);if(0==c)printfC*%disnotaprimenumber\n*,b):elseprintrC%disaprimenumber\n^,b):}参考答案:^include"sldio.h"intFun(intm):intmain(){intm,flag;printf(^Pleaseinputanumber:\n^):}whi1e(m<2);//elflag=Fun(m);//3if(flag)//IprintfC%disaprimenumber\n*,m);elseprintf(”%disnotaprimenumber\n",m);//Ireturn0:}intFun(intm)//2{inti,flag=1;//Ifor(i=2;i{if(m%i==0)//I{flag=0;//Ibreak;}}returnflag;//2}56•求1898现將不超过2000的所有素数从小到大排成第一行,.第二行上的每个数都等于它“右肩”上的素数与“左肩”上的素数Z差。请编程求出:第二行数中是否存在这样的若干个连续的整数,它们的和恰好是1898?假如存在的话,又有几种这样的情况?**输入格式耍求:提示信息:"Therearefollwingprimesinfirstrow:\n?,**输出格式要求:'(%d).%3d,%d\『程序运行示例如下:Therearcfoilwingprimesinfirstrow:(1)・101,1999(2).89,1987(3).53,1951(4).3,1901答案:^include^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{if(i%j==0)break;elsecontinue;}if(j==i){a[k]=i;好+;}elsecontinue;}printf('"Therearefollwingprimesinfirstrow:\n">;for(c=329;c>=0;c--)for(b=c+1;cif(b<330){if((a[b]一a[c])==1898){printfC(%d).%3d%d\n",d,a[c],a[b]);d++;}elsecontinue;}elsebreak;}7.从键盘任意输入一个整数m,若m不是素数,则对m进行质因数分解,并将m表示为质因数从小到大顺序排列的乘积形式输出,否则输出"Itisaprimenumber".例如,用户输入90时,程序输出90=2*3*3*5;用户输入17时,程序输出"Itisaprimenumber*o输入提示信息:"Inputm:"输入格式:先d"输出格式:是素数时输出"Itisaprimenumber'n"否则输出用Wd=\驾d*"运行示例1:Tnputm:90Z90=2*3*3*5运行示例2:Inputm:13/Itisaprimenumber答案:^include#includeintTsPrimc(intx);voidOutputPrimeFactor(intx):intmain(){intm;printf(^Tnputm:");scanf&id);if(IsPrime(m)){printf(^ItisaprimenumberXn^):}else{printfC%d=",m);OutputPrimcFiictor(m);}return0:}intIsPrime(intx){inti,flag=l;intsquarcRoot=sqrt(x):if(x<=!){flag=0;}for(i=2:i<=squarcRoot&&T1ag:i++){if(x%i==0){flag=0;}}returnflag;voidOutputPrimeFactor(intx)inti;for(i=2;i〈x;i++){if(x%i==0){printfC%d♦",i);OutputPrimeFactor(x/i);return;}}printfr%d^,x);}7&将任一整数转换为二进制形式。**输入格式要求%d〃提示信息:,zInputnumber/7**输出格式要求:"numbcrofdecimalform:%d\"it\'sbinaryform:程序运行示例如下:Inputnumber:876numberofdecimalform:876it'sbinaryform:00000000000000000000001101101100答案:#inelude#includeintmainO{inta;charb[32];printf(z,Inputnumber/');scanf("%d",&a);printf(z,nuniberofdecimalform:%d\nz,,a):printf(z,it\'sbinaryform:”);printf("%s\n",itoa(a,b,2));}89.求自然数n最近的素数k,k>n。***输入提示信息**:"Inputn:"***输入数据格式%d"***输出数据格式細:理d〃示例输入:257输出:Pleaseinputn:263答案:#includeintinain(){intn,i二1,k;printfC'Plcascinputn:");scanf&n);for(k=n+l;i;k++){for(i=2;iif(k%i==0)break;elsecontinue;if(i==k){printfk);i=0;break;}}}910.如果一个正整数ni的所有小于ni的不同因子(包括1)加起来止好等于m本身,那么就被称它为完全数。它是指这样的一些特殊的口然数,它所有的真因子(即除了自身以外的约数)的和,恰好等于它本身。注意:1没有真因子,所以不是完全数。例如,6就是一个完全数,是因为6=1+2+3。请编写一个判断完全数的函数IsPerfect(),然后判断从键盘输入的整数是否是完全数。要求:按如下原型编写判断完全数的函数,若函数返冋0,则代表不是完全数,若返冋1,则代表是完全数。intIsPcrfcct(intx);**要求输入提示信息为:"Inputm:\rT粋要求输入格式为:〃%**要求输出格式为"%disaperfectnumber\n,/isnotaperfectnumbcr\n,/注:不能使用指针.结构体.共用体.文件.goto.枚举类型进行编程,主函数不能使用intmain和return0。答案:#includeintTsPerfect(intx);intmain(){intm;printf("Inputm:\rT);scanf("%d",&【n);if(IsPerfect(m))printf(z,%disaperfectnumber\n,,>m);elseprintf(z,%disnotaperfectnumber\nz,,m);}intIsPerfect(intx){inti=1,b=0;for(i=1:iif(x%i二二0){b=b+i;continue;}elsecontinue;if(b==x)return1;elsereturn0;}1011.用函数编程计算两整数的最人值,在主函数中调用该函数计算并输出从键盘任意输入的两整数的最人值。**输入格式要求:提示信息:"Inputa,b/**输出格式要求:"max=%d\n"程序运行示例如下:Inputa,b:5,8max=8答案:ttincludcintmax(inta,intb)辻(a>=b)returna;elsereturnb;}main0{inta=0,b=0;printf("Iriputa,b:");scanf("%d,%d",&a,&b);printfC'max=%d\n",max(a,b));}1112.利用求阶乘函数FactO,编程计算并输出1!+2!+…+n!的值。**输入格式要求:”%u"提示信息:"Inputn(n>0):"**输出格式要求:"sum=%lu\n"答案:#includeintsums(inti);main0{unsignedintn=0;unsignedlongb二0;printf(,zTnputn(n〉0):");scanf&n);for(b;n;n一){b=b+sum_s(n);}printf("sum=%lu\n",b);}intsums(inti){inta;for(a二1;i;i―){if(i>1)a=a*i;elsea=a*1;}returna;办公室管理教务管理科研管理人事管理退出系统财务管理图书管理设备管理后勤管理请您在上述功能屮选择(08):提示:输出如下格式=======大学信息管理系统=======printf(“0.退出系统\n");printfC\n〃);printf(”请您在上述功能中选择(08):\n");14.利用静态变量计算n的阶乘。**输入格式要求:〃側〃提示信息:〃Inputn:〃**输出格式要求:"%d!=%ld\n"程序运行示例如下:Inputn:101!=12!=23!=64!=245!=1206!=7207!=50408!=403209!=36288010!=3628800答案:#includeintsum_s(inti);main()Iunsignedintn二0,b二1;printf("Inputn:");scanf&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,程序的输出结果格式如下:12)123提示:使用求余运算符获得余数,使用整数除法获得商。**输入格式耍求:驾d%d〃提示信息:〃请输入两个整数:”**输出格式要求:13dRemainder=%d\n"\n"%5d)%5d"答案:ttincludcmain()inta,b,c,d;printfC请输入两个整数:");scanf("%d%d",&a,&b);c=a/b;d=a%b:printf(/z%13dRemainder=%d\n",c,d);printfC\n〃);printf(z,%5d)%5d",b,a);}1516.写一个程序,将接收的摄氏温度转换为对应的华氏温度。程序应显示如下的提示信息:Pleaseinputcels:然后输入一个十进制数并iHl车,然后程序以合适的消息形式输出转换后的华氏温度。程序使用如下的公式完成转换:摄氏温度=5.0*(华氏温麼-32.0)/9.0**输入格式要求:If"提示信息:"Pleaseinputcels:**输出格式要求:"Thefahris:%.2『"答案:ttincludcmain(){doublea,b;printf(^Pleaseinputcels:”);scanf&a);b=(9.0*a)/5.0+32.0;printf(z,Thefahris:%.2f",b);}1617.写一个程序,将接收的华氏温度转换为对应的摄氏温度。程序应显示如下的提示信息:Pleaseinputfahr:然后输入一个十进制数并iHl车,然后程序以合适的消息形式输出转换后的华氏温度。程序使用如下的公式完成转换:摄氏温度=5.0*(华氏温度-32.0)/9.0**输入格式要求:If"提示信息:"Pleaseinputfahr:**输出格式要求:"Thecelsis:%.2『"答案:ttincludcmain()Idoublea,b;printf(^Pleaseinputfahr:”);scanf&a);b=5.0*(a-32.0)/9.0;printf("Thecelsis:%.2f",b);}1718.编写一个程序,输入一个3位整数,要求逆序输出对应的数。例如:输入123,则输出321。**输入格式耍求:"%d"提示信息:"Pleaseenterapositiveinteger:**输出格式要求:"%d--〉%d\n"程序运
digit++;
elseif(str[i]=>')
space++;
else
other++;
print""英文字符数:
%d\nz\letter):
printfC数字字符数:
%d\n\digit);
printfC空格数d\n",space):
printf(z,其他字符数:
%d\nz\other);
defineARRSIZE80main()
charstr[ARR_STZE]:
intletter=0,digit=0,space=0,other=0:
for(i=0;i{ifCa"<=str[i]&&str[i]<='/11'A'<=str[i]&&str[i]<='Z'){letter++;}elseif('O'<=str[i]&&str[i]<='9'){digil++;}elseif(str[i]=''){space++;}elseother++;}printf(z,英文字符数:%d\nz\letter):printfC数字字符数:%d\n\digit):printfC空格数:%d\n",space);printf(z,其他字符数:%d\nz\other);}5•对输入的一个数判断是否妊索数.所谓索数超指这个数只能被1和自身整除。要求在主函数输入一个数,调用函数Fun()判断该数是否是素数。打印信息在主函数中进行。例如:从键盘输入5,5是素数则打印如卜-信息:"5isaprimenumber\又如:从键盘输入4,4不是素数则打卬如下信息:"4isnotaprimenumber\负数、0和1均不是素数。对输入的数据要考虑数据的合法性,不满足条件的数要重新输入直到满足条件为止。不能使用全局变量,不按给定的函数原型编写程序不给分。Fun()函数原型为:intFun(intm):**输入数据提示信息:"Pleaseinputanumber:\n"粋输入数据格式为:羯『**输出格式要求:若是索数输出数据格式为:*%disaprimenumber\nw若不是索数输出数拯格式为:"%disnotaprimenumber\n^不完號答案:#includeintFun(inta){inti;if(a>l){ford=2;i{if(a%i==0)return0;elsecontinue;}return1;}elsereturn0;}main(){intb,c;printf(^Pleaseinputanumber:\n^):scanf("鮎d",&b);c=Fun(b);if(0==c)printfC*%disnotaprimenumber\n*,b):elseprintrC%disaprimenumber\n^,b):}参考答案:^include"sldio.h"intFun(intm):intmain(){intm,flag;printf(^Pleaseinputanumber:\n^):}whi1e(m<2);//elflag=Fun(m);//3if(flag)//IprintfC%disaprimenumber\n*,m);elseprintf(”%disnotaprimenumber\n",m);//Ireturn0:}intFun(intm)//2{inti,flag=1;//Ifor(i=2;i{if(m%i==0)//I{flag=0;//Ibreak;}}returnflag;//2}56•求1898现將不超过2000的所有素数从小到大排成第一行,.第二行上的每个数都等于它“右肩”上的素数与“左肩”上的素数Z差。请编程求出:第二行数中是否存在这样的若干个连续的整数,它们的和恰好是1898?假如存在的话,又有几种这样的情况?**输入格式耍求:提示信息:"Therearefollwingprimesinfirstrow:\n?,**输出格式要求:'(%d).%3d,%d\『程序运行示例如下:Therearcfoilwingprimesinfirstrow:(1)・101,1999(2).89,1987(3).53,1951(4).3,1901答案:^include^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{if(i%j==0)break;elsecontinue;}if(j==i){a[k]=i;好+;}elsecontinue;}printf('"Therearefollwingprimesinfirstrow:\n">;for(c=329;c>=0;c--)for(b=c+1;cif(b<330){if((a[b]一a[c])==1898){printfC(%d).%3d%d\n",d,a[c],a[b]);d++;}elsecontinue;}elsebreak;}7.从键盘任意输入一个整数m,若m不是素数,则对m进行质因数分解,并将m表示为质因数从小到大顺序排列的乘积形式输出,否则输出"Itisaprimenumber".例如,用户输入90时,程序输出90=2*3*3*5;用户输入17时,程序输出"Itisaprimenumber*o输入提示信息:"Inputm:"输入格式:先d"输出格式:是素数时输出"Itisaprimenumber'n"否则输出用Wd=\驾d*"运行示例1:Tnputm:90Z90=2*3*3*5运行示例2:Inputm:13/Itisaprimenumber答案:^include#includeintTsPrimc(intx);voidOutputPrimeFactor(intx):intmain(){intm;printf(^Tnputm:");scanf&id);if(IsPrime(m)){printf(^ItisaprimenumberXn^):}else{printfC%d=",m);OutputPrimcFiictor(m);}return0:}intIsPrime(intx){inti,flag=l;intsquarcRoot=sqrt(x):if(x<=!){flag=0;}for(i=2:i<=squarcRoot&&T1ag:i++){if(x%i==0){flag=0;}}returnflag;voidOutputPrimeFactor(intx)inti;for(i=2;i〈x;i++){if(x%i==0){printfC%d♦",i);OutputPrimeFactor(x/i);return;}}printfr%d^,x);}7&将任一整数转换为二进制形式。**输入格式要求%d〃提示信息:,zInputnumber/7**输出格式要求:"numbcrofdecimalform:%d\"it\'sbinaryform:程序运行示例如下:Inputnumber:876numberofdecimalform:876it'sbinaryform:00000000000000000000001101101100答案:#inelude#includeintmainO{inta;charb[32];printf(z,Inputnumber/');scanf("%d",&a);printf(z,nuniberofdecimalform:%d\nz,,a):printf(z,it\'sbinaryform:”);printf("%s\n",itoa(a,b,2));}89.求自然数n最近的素数k,k>n。***输入提示信息**:"Inputn:"***输入数据格式%d"***输出数据格式細:理d〃示例输入:257输出:Pleaseinputn:263答案:#includeintinain(){intn,i二1,k;printfC'Plcascinputn:");scanf&n);for(k=n+l;i;k++){for(i=2;iif(k%i==0)break;elsecontinue;if(i==k){printfk);i=0;break;}}}910.如果一个正整数ni的所有小于ni的不同因子(包括1)加起来止好等于m本身,那么就被称它为完全数。它是指这样的一些特殊的口然数,它所有的真因子(即除了自身以外的约数)的和,恰好等于它本身。注意:1没有真因子,所以不是完全数。例如,6就是一个完全数,是因为6=1+2+3。请编写一个判断完全数的函数IsPerfect(),然后判断从键盘输入的整数是否是完全数。要求:按如下原型编写判断完全数的函数,若函数返冋0,则代表不是完全数,若返冋1,则代表是完全数。intIsPcrfcct(intx);**要求输入提示信息为:"Inputm:\rT粋要求输入格式为:〃%**要求输出格式为"%disaperfectnumber\n,/isnotaperfectnumbcr\n,/注:不能使用指针.结构体.共用体.文件.goto.枚举类型进行编程,主函数不能使用intmain和return0。答案:#includeintTsPerfect(intx);intmain(){intm;printf("Inputm:\rT);scanf("%d",&【n);if(IsPerfect(m))printf(z,%disaperfectnumber\n,,>m);elseprintf(z,%disnotaperfectnumber\nz,,m);}intIsPerfect(intx){inti=1,b=0;for(i=1:iif(x%i二二0){b=b+i;continue;}elsecontinue;if(b==x)return1;elsereturn0;}1011.用函数编程计算两整数的最人值,在主函数中调用该函数计算并输出从键盘任意输入的两整数的最人值。**输入格式要求:提示信息:"Inputa,b/**输出格式要求:"max=%d\n"程序运行示例如下:Inputa,b:5,8max=8答案:ttincludcintmax(inta,intb)辻(a>=b)returna;elsereturnb;}main0{inta=0,b=0;printf("Iriputa,b:");scanf("%d,%d",&a,&b);printfC'max=%d\n",max(a,b));}1112.利用求阶乘函数FactO,编程计算并输出1!+2!+…+n!的值。**输入格式要求:”%u"提示信息:"Inputn(n>0):"**输出格式要求:"sum=%lu\n"答案:#includeintsums(inti);main0{unsignedintn=0;unsignedlongb二0;printf(,zTnputn(n〉0):");scanf&n);for(b;n;n一){b=b+sum_s(n);}printf("sum=%lu\n",b);}intsums(inti){inta;for(a二1;i;i―){if(i>1)a=a*i;elsea=a*1;}returna;办公室管理教务管理科研管理人事管理退出系统财务管理图书管理设备管理后勤管理请您在上述功能屮选择(08):提示:输出如下格式=======大学信息管理系统=======printf(“0.退出系统\n");printfC\n〃);printf(”请您在上述功能中选择(08):\n");14.利用静态变量计算n的阶乘。**输入格式要求:〃側〃提示信息:〃Inputn:〃**输出格式要求:"%d!=%ld\n"程序运行示例如下:Inputn:101!=12!=23!=64!=245!=1206!=7207!=50408!=403209!=36288010!=3628800答案:#includeintsum_s(inti);main()Iunsignedintn二0,b二1;printf("Inputn:");scanf&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,程序的输出结果格式如下:12)123提示:使用求余运算符获得余数,使用整数除法获得商。**输入格式耍求:驾d%d〃提示信息:〃请输入两个整数:”**输出格式要求:13dRemainder=%d\n"\n"%5d)%5d"答案:ttincludcmain()inta,b,c,d;printfC请输入两个整数:");scanf("%d%d",&a,&b);c=a/b;d=a%b:printf(/z%13dRemainder=%d\n",c,d);printfC\n〃);printf(z,%5d)%5d",b,a);}1516.写一个程序,将接收的摄氏温度转换为对应的华氏温度。程序应显示如下的提示信息:Pleaseinputcels:然后输入一个十进制数并iHl车,然后程序以合适的消息形式输出转换后的华氏温度。程序使用如下的公式完成转换:摄氏温度=5.0*(华氏温麼-32.0)/9.0**输入格式要求:If"提示信息:"Pleaseinputcels:**输出格式要求:"Thefahris:%.2『"答案:ttincludcmain(){doublea,b;printf(^Pleaseinputcels:”);scanf&a);b=(9.0*a)/5.0+32.0;printf(z,Thefahris:%.2f",b);}1617.写一个程序,将接收的华氏温度转换为对应的摄氏温度。程序应显示如下的提示信息:Pleaseinputfahr:然后输入一个十进制数并iHl车,然后程序以合适的消息形式输出转换后的华氏温度。程序使用如下的公式完成转换:摄氏温度=5.0*(华氏温度-32.0)/9.0**输入格式要求:If"提示信息:"Pleaseinputfahr:**输出格式要求:"Thecelsis:%.2『"答案:ttincludcmain()Idoublea,b;printf(^Pleaseinputfahr:”);scanf&a);b=5.0*(a-32.0)/9.0;printf("Thecelsis:%.2f",b);}1718.编写一个程序,输入一个3位整数,要求逆序输出对应的数。例如:输入123,则输出321。**输入格式耍求:"%d"提示信息:"Pleaseenterapositiveinteger:**输出格式要求:"%d--〉%d\n"程序运
ifCa"<=str[i]&&str[i]<='/11'A'<=str[i]&&str[i]<='Z')
elseif('O'<=str[i]&&str[i]<='9')
digil++;
elseif(str[i]='')
printf(z,英文字符数:
%d\n\digit):
printfC空格数:
%d\n",space);
5•对输入的一个数判断是否妊索数.所谓索数超指这个数只能被1和自身整除。
要求在主函数输入一个数,调用函数Fun()判断该数是否是素数。
打印信息在主函数中进行。
例如:
从键盘输入5,5是素数则打印如卜-信息:
"5isaprimenumber\又如:
从键盘输入4,4不是素数则打卬如下信息:
"4isnotaprimenumber\负数、0和1均不是素数。
对输入的数据要考虑数据的合法性,不满足条件的数要重新输入直到满足条件为止。
不能使用全局变量,不按给定的函数原型编写程序
不给分。
Fun()函数原型为:
intFun(intm):
**输入数据提示信息:
"Pleaseinputanumber:
\n"
粋输入数据格式为:
羯『
**输出格式要求:
若是索数输出数据格式为:
*%disaprimenumber\nw
若不是索数输出数拯格式为:
"%disnotaprimenumber\n^
不完號答案:
intFun(inta)
inti;
if(a>l)
ford=2;i{if(a%i==0)return0;elsecontinue;}return1;}elsereturn0;}main(){intb,c;printf(^Pleaseinputanumber:\n^):scanf("鮎d",&b);c=Fun(b);if(0==c)printfC*%disnotaprimenumber\n*,b):elseprintrC%disaprimenumber\n^,b):}参考答案:^include"sldio.h"intFun(intm):intmain(){intm,flag;printf(^Pleaseinputanumber:\n^):}whi1e(m<2);//elflag=Fun(m);//3if(flag)//IprintfC%disaprimenumber\n*,m);elseprintf(”%disnotaprimenumber\n",m);//Ireturn0:}intFun(intm)//2{inti,flag=1;//Ifor(i=2;i{if(m%i==0)//I{flag=0;//Ibreak;}}returnflag;//2}56•求1898现將不超过2000的所有素数从小到大排成第一行,.第二行上的每个数都等于它“右肩”上的素数与“左肩”上的素数Z差。请编程求出:第二行数中是否存在这样的若干个连续的整数,它们的和恰好是1898?假如存在的话,又有几种这样的情况?**输入格式耍求:提示信息:"Therearefollwingprimesinfirstrow:\n?,**输出格式要求:'(%d).%3d,%d\『程序运行示例如下:Therearcfoilwingprimesinfirstrow:(1)・101,1999(2).89,1987(3).53,1951(4).3,1901答案:^include^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{if(i%j==0)break;elsecontinue;}if(j==i){a[k]=i;好+;}elsecontinue;}printf('"Therearefollwingprimesinfirstrow:\n">;for(c=329;c>=0;c--)for(b=c+1;cif(b<330){if((a[b]一a[c])==1898){printfC(%d).%3d%d\n",d,a[c],a[b]);d++;}elsecontinue;}elsebreak;}7.从键盘任意输入一个整数m,若m不是素数,则对m进行质因数分解,并将m表示为质因数从小到大顺序排列的乘积形式输出,否则输出"Itisaprimenumber".例如,用户输入90时,程序输出90=2*3*3*5;用户输入17时,程序输出"Itisaprimenumber*o输入提示信息:"Inputm:"输入格式:先d"输出格式:是素数时输出"Itisaprimenumber'n"否则输出用Wd=\驾d*"运行示例1:Tnputm:90Z90=2*3*3*5运行示例2:Inputm:13/Itisaprimenumber答案:^include#includeintTsPrimc(intx);voidOutputPrimeFactor(intx):intmain(){intm;printf(^Tnputm:");scanf&id);if(IsPrime(m)){printf(^ItisaprimenumberXn^):}else{printfC%d=",m);OutputPrimcFiictor(m);}return0:}intIsPrime(intx){inti,flag=l;intsquarcRoot=sqrt(x):if(x<=!){flag=0;}for(i=2:i<=squarcRoot&&T1ag:i++){if(x%i==0){flag=0;}}returnflag;voidOutputPrimeFactor(intx)inti;for(i=2;i〈x;i++){if(x%i==0){printfC%d♦",i);OutputPrimeFactor(x/i);return;}}printfr%d^,x);}7&将任一整数转换为二进制形式。**输入格式要求%d〃提示信息:,zInputnumber/7**输出格式要求:"numbcrofdecimalform:%d\"it\'sbinaryform:程序运行示例如下:Inputnumber:876numberofdecimalform:876it'sbinaryform:00000000000000000000001101101100答案:#inelude#includeintmainO{inta;charb[32];printf(z,Inputnumber/');scanf("%d",&a);printf(z,nuniberofdecimalform:%d\nz,,a):printf(z,it\'sbinaryform:”);printf("%s\n",itoa(a,b,2));}89.求自然数n最近的素数k,k>n。***输入提示信息**:"Inputn:"***输入数据格式%d"***输出数据格式細:理d〃示例输入:257输出:Pleaseinputn:263答案:#includeintinain(){intn,i二1,k;printfC'Plcascinputn:");scanf&n);for(k=n+l;i;k++){for(i=2;iif(k%i==0)break;elsecontinue;if(i==k){printfk);i=0;break;}}}910.如果一个正整数ni的所有小于ni的不同因子(包括1)加起来止好等于m本身,那么就被称它为完全数。它是指这样的一些特殊的口然数,它所有的真因子(即除了自身以外的约数)的和,恰好等于它本身。注意:1没有真因子,所以不是完全数。例如,6就是一个完全数,是因为6=1+2+3。请编写一个判断完全数的函数IsPerfect(),然后判断从键盘输入的整数是否是完全数。要求:按如下原型编写判断完全数的函数,若函数返冋0,则代表不是完全数,若返冋1,则代表是完全数。intIsPcrfcct(intx);**要求输入提示信息为:"Inputm:\rT粋要求输入格式为:〃%**要求输出格式为"%disaperfectnumber\n,/isnotaperfectnumbcr\n,/注:不能使用指针.结构体.共用体.文件.goto.枚举类型进行编程,主函数不能使用intmain和return0。答案:#includeintTsPerfect(intx);intmain(){intm;printf("Inputm:\rT);scanf("%d",&【n);if(IsPerfect(m))printf(z,%disaperfectnumber\n,,>m);elseprintf(z,%disnotaperfectnumber\nz,,m);}intIsPerfect(intx){inti=1,b=0;for(i=1:iif(x%i二二0){b=b+i;continue;}elsecontinue;if(b==x)return1;elsereturn0;}1011.用函数编程计算两整数的最人值,在主函数中调用该函数计算并输出从键盘任意输入的两整数的最人值。**输入格式要求:提示信息:"Inputa,b/**输出格式要求:"max=%d\n"程序运行示例如下:Inputa,b:5,8max=8答案:ttincludcintmax(inta,intb)辻(a>=b)returna;elsereturnb;}main0{inta=0,b=0;printf("Iriputa,b:");scanf("%d,%d",&a,&b);printfC'max=%d\n",max(a,b));}1112.利用求阶乘函数FactO,编程计算并输出1!+2!+…+n!的值。**输入格式要求:”%u"提示信息:"Inputn(n>0):"**输出格式要求:"sum=%lu\n"答案:#includeintsums(inti);main0{unsignedintn=0;unsignedlongb二0;printf(,zTnputn(n〉0):");scanf&n);for(b;n;n一){b=b+sum_s(n);}printf("sum=%lu\n",b);}intsums(inti){inta;for(a二1;i;i―){if(i>1)a=a*i;elsea=a*1;}returna;办公室管理教务管理科研管理人事管理退出系统财务管理图书管理设备管理后勤管理请您在上述功能屮选择(08):提示:输出如下格式=======大学信息管理系统=======printf(“0.退出系统\n");printfC\n〃);printf(”请您在上述功能中选择(08):\n");14.利用静态变量计算n的阶乘。**输入格式要求:〃側〃提示信息:〃Inputn:〃**输出格式要求:"%d!=%ld\n"程序运行示例如下:Inputn:101!=12!=23!=64!=245!=1206!=7207!=50408!=403209!=36288010!=3628800答案:#includeintsum_s(inti);main()Iunsignedintn二0,b二1;printf("Inputn:");scanf&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,程序的输出结果格式如下:12)123提示:使用求余运算符获得余数,使用整数除法获得商。**输入格式耍求:驾d%d〃提示信息:〃请输入两个整数:”**输出格式要求:13dRemainder=%d\n"\n"%5d)%5d"答案:ttincludcmain()inta,b,c,d;printfC请输入两个整数:");scanf("%d%d",&a,&b);c=a/b;d=a%b:printf(/z%13dRemainder=%d\n",c,d);printfC\n〃);printf(z,%5d)%5d",b,a);}1516.写一个程序,将接收的摄氏温度转换为对应的华氏温度。程序应显示如下的提示信息:Pleaseinputcels:然后输入一个十进制数并iHl车,然后程序以合适的消息形式输出转换后的华氏温度。程序使用如下的公式完成转换:摄氏温度=5.0*(华氏温麼-32.0)/9.0**输入格式要求:If"提示信息:"Pleaseinputcels:**输出格式要求:"Thefahris:%.2『"答案:ttincludcmain(){doublea,b;printf(^Pleaseinputcels:”);scanf&a);b=(9.0*a)/5.0+32.0;printf(z,Thefahris:%.2f",b);}1617.写一个程序,将接收的华氏温度转换为对应的摄氏温度。程序应显示如下的提示信息:Pleaseinputfahr:然后输入一个十进制数并iHl车,然后程序以合适的消息形式输出转换后的华氏温度。程序使用如下的公式完成转换:摄氏温度=5.0*(华氏温度-32.0)/9.0**输入格式要求:If"提示信息:"Pleaseinputfahr:**输出格式要求:"Thecelsis:%.2『"答案:ttincludcmain()Idoublea,b;printf(^Pleaseinputfahr:”);scanf&a);b=5.0*(a-32.0)/9.0;printf("Thecelsis:%.2f",b);}1718.编写一个程序,输入一个3位整数,要求逆序输出对应的数。例如:输入123,则输出321。**输入格式耍求:"%d"提示信息:"Pleaseenterapositiveinteger:**输出格式要求:"%d--〉%d\n"程序运
if(a%i==0)
continue;
return1;
intb,c;
printf(^Pleaseinputanumber:
\n^):
scanf("鮎d",&b);
c=Fun(b);
if(0==c)
printfC*%disnotaprimenumber\n*,b):
printrC%disaprimenumber\n^,b):
参考答案:
^include"sldio.h"
intmain()
intm,flag;
whi1e(m<2);//elflag=Fun(m);//3if(flag)//I
printfC%disaprimenumber\n*,m);
printf(”%disnotaprimenumber\n",m);//I
return0:
intFun(intm)//2
inti,flag=1;//I
for(i=2;i{if(m%i==0)//I{flag=0;//Ibreak;}}returnflag;//2}56•求1898现將不超过2000的所有素数从小到大排成第一行,.第二行上的每个数都等于它“右肩”上的素数与“左肩”上的素数Z差。请编程求出:第二行数中是否存在这样的若干个连续的整数,它们的和恰好是1898?假如存在的话,又有几种这样的情况?**输入格式耍求:提示信息:"Therearefollwingprimesinfirstrow:\n?,**输出格式要求:'(%d).%3d,%d\『程序运行示例如下:Therearcfoilwingprimesinfirstrow:(1)・101,1999(2).89,1987(3).53,1951(4).3,1901答案:^include^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{if(i%j==0)break;elsecontinue;}if(j==i){a[k]=i;好+;}elsecontinue;}printf('"Therearefollwingprimesinfirstrow:\n">;for(c=329;c>=0;c--)for(b=c+1;cif(b<330){if((a[b]一a[c])==1898){printfC(%d).%3d%d\n",d,a[c],a[b]);d++;}elsecontinue;}elsebreak;}7.从键盘任意输入一个整数m,若m不是素数,则对m进行质因数分解,并将m表示为质因数从小到大顺序排列的乘积形式输出,否则输出"Itisaprimenumber".例如,用户输入90时,程序输出90=2*3*3*5;用户输入17时,程序输出"Itisaprimenumber*o输入提示信息:"Inputm:"输入格式:先d"输出格式:是素数时输出"Itisaprimenumber'n"否则输出用Wd=\驾d*"运行示例1:Tnputm:90Z90=2*3*3*5运行示例2:Inputm:13/Itisaprimenumber答案:^include#includeintTsPrimc(intx);voidOutputPrimeFactor(intx):intmain(){intm;printf(^Tnputm:");scanf&id);if(IsPrime(m)){printf(^ItisaprimenumberXn^):}else{printfC%d=",m);OutputPrimcFiictor(m);}return0:}intIsPrime(intx){inti,flag=l;intsquarcRoot=sqrt(x):if(x<=!){flag=0;}for(i=2:i<=squarcRoot&&T1ag:i++){if(x%i==0){flag=0;}}returnflag;voidOutputPrimeFactor(intx)inti;for(i=2;i〈x;i++){if(x%i==0){printfC%d♦",i);OutputPrimeFactor(x/i);return;}}printfr%d^,x);}7&将任一整数转换为二进制形式。**输入格式要求%d〃提示信息:,zInputnumber/7**输出格式要求:"numbcrofdecimalform:%d\"it\'sbinaryform:程序运行示例如下:Inputnumber:876numberofdecimalform:876it'sbinaryform:00000000000000000000001101101100答案:#inelude#includeintmainO{inta;charb[32];printf(z,Inputnumber/');scanf("%d",&a);printf(z,nuniberofdecimalform:%d\nz,,a):printf(z,it\'sbinaryform:”);printf("%s\n",itoa(a,b,2));}89.求自然数n最近的素数k,k>n。***输入提示信息**:"Inputn:"***输入数据格式%d"***输出数据格式細:理d〃示例输入:257输出:Pleaseinputn:263答案:#includeintinain(){intn,i二1,k;printfC'Plcascinputn:");scanf&n);for(k=n+l;i;k++){for(i=2;iif(k%i==0)break;elsecontinue;if(i==k){printfk);i=0;break;}}}910.如果一个正整数ni的所有小于ni的不同因子(包括1)加起来止好等于m本身,那么就被称它为完全数。它是指这样的一些特殊的口然数,它所有的真因子(即除了自身以外的约数)的和,恰好等于它本身。注意:1没有真因子,所以不是完全数。例如,6就是一个完全数,是因为6=1+2+3。请编写一个判断完全数的函数IsPerfect(),然后判断从键盘输入的整数是否是完全数。要求:按如下原型编写判断完全数的函数,若函数返冋0,则代表不是完全数,若返冋1,则代表是完全数。intIsPcrfcct(intx);**要求输入提示信息为:"Inputm:\rT粋要求输入格式为:〃%**要求输出格式为"%disaperfectnumber\n,/isnotaperfectnumbcr\n,/注:不能使用指针.结构体.共用体.文件.goto.枚举类型进行编程,主函数不能使用intmain和return0。答案:#includeintTsPerfect(intx);intmain(){intm;printf("Inputm:\rT);scanf("%d",&【n);if(IsPerfect(m))printf(z,%disaperfectnumber\n,,>m);elseprintf(z,%disnotaperfectnumber\nz,,m);}intIsPerfect(intx){inti=1,b=0;for(i=1:iif(x%i二二0){b=b+i;continue;}elsecontinue;if(b==x)return1;elsereturn0;}1011.用函数编程计算两整数的最人值,在主函数中调用该函数计算并输出从键盘任意输入的两整数的最人值。**输入格式要求:提示信息:"Inputa,b/**输出格式要求:"max=%d\n"程序运行示例如下:Inputa,b:5,8max=8答案:ttincludcintmax(inta,intb)辻(a>=b)returna;elsereturnb;}main0{inta=0,b=0;printf("Iriputa,b:");scanf("%d,%d",&a,&b);printfC'max=%d\n",max(a,b));}1112.利用求阶乘函数FactO,编程计算并输出1!+2!+…+n!的值。**输入格式要求:”%u"提示信息:"Inputn(n>0):"**输出格式要求:"sum=%lu\n"答案:#includeintsums(inti);main0{unsignedintn=0;unsignedlongb二0;printf(,zTnputn(n〉0):");scanf&n);for(b;n;n一){b=b+sum_s(n);}printf("sum=%lu\n",b);}intsums(inti){inta;for(a二1;i;i―){if(i>1)a=a*i;elsea=a*1;}returna;办公室管理教务管理科研管理人事管理退出系统财务管理图书管理设备管理后勤管理请您在上述功能屮选择(08):提示:输出如下格式=======大学信息管理系统=======printf(“0.退出系统\n");printfC\n〃);printf(”请您在上述功能中选择(08):\n");14.利用静态变量计算n的阶乘。**输入格式要求:〃側〃提示信息:〃Inputn:〃**输出格式要求:"%d!=%ld\n"程序运行示例如下:Inputn:101!=12!=23!=64!=245!=1206!=7207!=50408!=403209!=36288010!=3628800答案:#includeintsum_s(inti);main()Iunsignedintn二0,b二1;printf("Inputn:");scanf&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,程序的输出结果格式如下:12)123提示:使用求余运算符获得余数,使用整数除法获得商。**输入格式耍求:驾d%d〃提示信息:〃请输入两个整数:”**输出格式要求:13dRemainder=%d\n"\n"%5d)%5d"答案:ttincludcmain()inta,b,c,d;printfC请输入两个整数:");scanf("%d%d",&a,&b);c=a/b;d=a%b:printf(/z%13dRemainder=%d\n",c,d);printfC\n〃);printf(z,%5d)%5d",b,a);}1516.写一个程序,将接收的摄氏温度转换为对应的华氏温度。程序应显示如下的提示信息:Pleaseinputcels:然后输入一个十进制数并iHl车,然后程序以合适的消息形式输出转换后的华氏温度。程序使用如下的公式完成转换:摄氏温度=5.0*(华氏温麼-32.0)/9.0**输入格式要求:If"提示信息:"Pleaseinputcels:**输出格式要求:"Thefahris:%.2『"答案:ttincludcmain(){doublea,b;printf(^Pleaseinputcels:”);scanf&a);b=(9.0*a)/5.0+32.0;printf(z,Thefahris:%.2f",b);}1617.写一个程序,将接收的华氏温度转换为对应的摄氏温度。程序应显示如下的提示信息:Pleaseinputfahr:然后输入一个十进制数并iHl车,然后程序以合适的消息形式输出转换后的华氏温度。程序使用如下的公式完成转换:摄氏温度=5.0*(华氏温度-32.0)/9.0**输入格式要求:If"提示信息:"Pleaseinputfahr:**输出格式要求:"Thecelsis:%.2『"答案:ttincludcmain()Idoublea,b;printf(^Pleaseinputfahr:”);scanf&a);b=5.0*(a-32.0)/9.0;printf("Thecelsis:%.2f",b);}1718.编写一个程序,输入一个3位整数,要求逆序输出对应的数。例如:输入123,则输出321。**输入格式耍求:"%d"提示信息:"Pleaseenterapositiveinteger:**输出格式要求:"%d--〉%d\n"程序运
if(m%i==0)//I
flag=0;//I
break;
returnflag;//2
5
6•求1898
现將不超过2000的所有素数从小到大排成第一行,.第二行上的每个数都等于它“右肩”上的素数与“左肩”上的素数Z差。
请编程求出:
第二行数中是否存在这样的若干个连续的整数,它们的和恰好是1898?
假如存在的话,又有几种这样的情况?
**输入格式耍求:
提示信息:
"Therearefollwingprimesinfirstrow:
\n?
,
'(%d).%3d,%d\『
Therearcfoilwingprimesinfirstrow:
(1)・101,1999
(2).89,1987
(3).53,1951
(4).3,1901
^include
^defineN330
inta[N];
intc=0,b=0,d=1:
inti=0,j=0,k=0;for(i=3;i<=2000;i++){
for(j=2;j
if(i%j==0)break;else
if(j==i)
a[k]=i;
好+;
printf('"Therearefollwingprimesinfirstrow:
\n">;
for(c=329;c>=0;c--)
for(b=c+1;c
if(b<330)
if((a[b]一a[c])==1898)
printfC(%d).%3d%d\n",d,a[c],a[b]);
d++;
7.从键盘任意输入一个整数m,若m不是素数,则对m进行质因数分解,并将m表示为质因数从小到大顺序排列的乘积形式输出,否则输出"Itisaprimenumber".例如,用户输入90时,程序输出90=2*3*3*5;用户输入17时,程序输出"Itisaprimenumber*o
输入提示信息:
"Inputm:
"
输入格式:
先d"
输出格式:
是素数时输出"Itisaprimenumber'n"
否则输出用Wd=\驾d*"
运行示例1:
Tnputm:
90Z
90=2*3*3*5
运行示例2:
Inputm:
13/
Itisaprimenumber
intTsPrimc(intx);
voidOutputPrimeFactor(intx):
intm;
printf(^Tnputm:
");
scanf&id);
if(IsPrime(m))
printf(^ItisaprimenumberXn^):
printfC%d=",m);
OutputPrimcFiictor(m);
intIsPrime(intx)
inti,flag=l;
intsquarcRoot=sqrt(x):
if(x<=!
)
flag=0;
for(i=2:
i<=squarcRoot&&T1ag:
i++)
if(x%i==0)
returnflag;
voidOutputPrimeFactor(intx)
for(i=2;i〈x;i++)
printfC%d♦",i);
OutputPrimeFactor(x/i);
return;
printfr%d^,x);
7
&
将任一整数转换为二进制形式。
**输入格式要求%d〃提示信息:
,zInputnumber/7
"numbcrofdecimalform:
%d\"it\'sbinaryform:
Inputnumber:
876
numberofdecimalform:
it'sbinaryform:
00000000000000000000001101101100
#inelude
intmainO
inta;
charb[32];
printf(z,Inputnumber/');
scanf("%d",&a);
printf(z,nuniberofdecimalform:
%d\nz,,a):
printf(z,it\'sbinaryform:
”);
printf("%s\n",itoa(a,b,2));
8
9.
求自然数n最近的素数k,k>n。
***输入提示信息**:
"Inputn:
***输入数据格式%d"
***输出数据格式細:
理d〃
示例
输入:
257
输出:
Pleaseinputn:
263
intinain()
intn,i二1,k;
printfC'Plcascinputn:
scanf&n);
for(k=n+l;i;k++)
for(i=2;iif(k%i==0)break;elsecontinue;if(i==k){printfk);i=0;break;}}}910.如果一个正整数ni的所有小于ni的不同因子(包括1)加起来止好等于m本身,那么就被称它为完全数。它是指这样的一些特殊的口然数,它所有的真因子(即除了自身以外的约数)的和,恰好等于它本身。注意:1没有真因子,所以不是完全数。例如,6就是一个完全数,是因为6=1+2+3。请编写一个判断完全数的函数IsPerfect(),然后判断从键盘输入的整数是否是完全数。要求:按如下原型编写判断完全数的函数,若函数返冋0,则代表不是完全数,若返冋1,则代表是完全数。intIsPcrfcct(intx);**要求输入提示信息为:"Inputm:\rT粋要求输入格式为:〃%**要求输出格式为"%disaperfectnumber\n,/isnotaperfectnumbcr\n,/注:不能使用指针.结构体.共用体.文件.goto.枚举类型进行编程,主函数不能使用intmain和return0。答案:#includeintTsPerfect(intx);intmain(){intm;printf("Inputm:\rT);scanf("%d",&【n);if(IsPerfect(m))printf(z,%disaperfectnumber\n,,>m);elseprintf(z,%disnotaperfectnumber\nz,,m);}intIsPerfect(intx){inti=1,b=0;for(i=1:iif(x%i二二0){b=b+i;continue;}elsecontinue;if(b==x)return1;elsereturn0;}1011.用函数编程计算两整数的最人值,在主函数中调用该函数计算并输出从键盘任意输入的两整数的最人值。**输入格式要求:提示信息:"Inputa,b/**输出格式要求:"max=%d\n"程序运行示例如下:Inputa,b:5,8max=8答案:ttincludcintmax(inta,intb)辻(a>=b)returna;elsereturnb;}main0{inta=0,b=0;printf("Iriputa,b:");scanf("%d,%d",&a,&b);printfC'max=%d\n",max(a,b));}1112.利用求阶乘函数FactO,编程计算并输出1!+2!+…+n!的值。**输入格式要求:”%u"提示信息:"Inputn(n>0):"**输出格式要求:"sum=%lu\n"答案:#includeintsums(inti);main0{unsignedintn=0;unsignedlongb二0;printf(,zTnputn(n〉0):");scanf&n);for(b;n;n一){b=b+sum_s(n);}printf("sum=%lu\n",b);}intsums(inti){inta;for(a二1;i;i―){if(i>1)a=a*i;elsea=a*1;}returna;办公室管理教务管理科研管理人事管理退出系统财务管理图书管理设备管理后勤管理请您在上述功能屮选择(08):提示:输出如下格式=======大学信息管理系统=======printf(“0.退出系统\n");printfC\n〃);printf(”请您在上述功能中选择(08):\n");14.利用静态变量计算n的阶乘。**输入格式要求:〃側〃提示信息:〃Inputn:〃**输出格式要求:"%d!=%ld\n"程序运行示例如下:Inputn:101!=12!=23!=64!=245!=1206!=7207!=50408!=403209!=36288010!=3628800答案:#includeintsum_s(inti);main()Iunsignedintn二0,b二1;printf("Inputn:");scanf&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,程序的输出结果格式如下:12)123提示:使用求余运算符获得余数,使用整数除法获得商。**输入格式耍求:驾d%d〃提示信息:〃请输入两个整数:”**输出格式要求:13dRemainder=%d\n"\n"%5d)%5d"答案:ttincludcmain()inta,b,c,d;printfC请输入两个整数:");scanf("%d%d",&a,&b);c=a/b;d=a%b:printf(/z%13dRemainder=%d\n",c,d);printfC\n〃);printf(z,%5d)%5d",b,a);}1516.写一个程序,将接收的摄氏温度转换为对应的华氏温度。程序应显示如下的提示信息:Pleaseinputcels:然后输入一个十进制数并iHl车,然后程序以合适的消息形式输出转换后的华氏温度。程序使用如下的公式完成转换:摄氏温度=5.0*(华氏温麼-32.0)/9.0**输入格式要求:If"提示信息:"Pleaseinputcels:**输出格式要求:"Thefahris:%.2『"答案:ttincludcmain(){doublea,b;printf(^Pleaseinputcels:”);scanf&a);b=(9.0*a)/5.0+32.0;printf(z,Thefahris:%.2f",b);}1617.写一个程序,将接收的华氏温度转换为对应的摄氏温度。程序应显示如下的提示信息:Pleaseinputfahr:然后输入一个十进制数并iHl车,然后程序以合适的消息形式输出转换后的华氏温度。程序使用如下的公式完成转换:摄氏温度=5.0*(华氏温度-32.0)/9.0**输入格式要求:If"提示信息:"Pleaseinputfahr:**输出格式要求:"Thecelsis:%.2『"答案:ttincludcmain()Idoublea,b;printf(^Pleaseinputfahr:”);scanf&a);b=5.0*(a-32.0)/9.0;printf("Thecelsis:%.2f",b);}1718.编写一个程序,输入一个3位整数,要求逆序输出对应的数。例如:输入123,则输出321。**输入格式耍求:"%d"提示信息:"Pleaseenterapositiveinteger:**输出格式要求:"%d--〉%d\n"程序运
if(k%i==0)
if(i==k)
printfk);
i=0;
9
10.
如果一个正整数ni的所有小于ni的不同因子(包括1)加起来止好等于m本身,那么就被称它为完全数。
它是指这样的一些特殊的口然数,它所有的真因子(即除了自身以外的约数)的和,恰好等于它本身。
注意:
1没有真因子,所以不是完全数。
例如,6就是一个完全数,是因为6=1+2+3。
请编写一个判断完全数的函数IsPerfect(),然后判断从键盘输入的整数是否是完全数。
要求:
按如下原型编写判断完全数的函数,若函数返冋0,则代表不是完全数,若返冋1,则代表是完全数。
intIsPcrfcct(intx);
**要求输入提示信息为:
\rT
〃%
**要求输出格式为
"%disaperfectnumber\n,/
isnotaperfectnumbcr\n,/
注:
不能使用指针.结构体.共用体.文件.goto.枚举类型进行编程,主函数不能使用intmain和return0。
intTsPerfect(intx);
printf("Inputm:
\rT);
scanf("%d",&【n);
if(IsPerfect(m))
printf(z,%disaperfectnumber\n,,>m);
printf(z,%disnotaperfectnumber\nz,,m);
intIsPerfect(intx)
inti=1,b=0;
for(i=1:
iif(x%i二二0){b=b+i;continue;}elsecontinue;if(b==x)return1;elsereturn0;}1011.用函数编程计算两整数的最人值,在主函数中调用该函数计算并输出从键盘任意输入的两整数的最人值。**输入格式要求:提示信息:"Inputa,b/**输出格式要求:"max=%d\n"程序运行示例如下:Inputa,b:5,8max=8答案:ttincludcintmax(inta,intb)辻(a>=b)returna;elsereturnb;}main0{inta=0,b=0;printf("Iriputa,b:");scanf("%d,%d",&a,&b);printfC'max=%d\n",max(a,b));}1112.利用求阶乘函数FactO,编程计算并输出1!+2!+…+n!的值。**输入格式要求:”%u"提示信息:"Inputn(n>0):"**输出格式要求:"sum=%lu\n"答案:#includeintsums(inti);main0{unsignedintn=0;unsignedlongb二0;printf(,zTnputn(n〉0):");scanf&n);for(b;n;n一){b=b+sum_s(n);}printf("sum=%lu\n",b);}intsums(inti){inta;for(a二1;i;i―){if(i>1)a=a*i;elsea=a*1;}returna;办公室管理教务管理科研管理人事管理退出系统财务管理图书管理设备管理后勤管理请您在上述功能屮选择(08):提示:输出如下格式=======大学信息管理系统=======printf(“0.退出系统\n");printfC\n〃);printf(”请您在上述功能中选择(08):\n");14.利用静态变量计算n的阶乘。**输入格式要求:〃側〃提示信息:〃Inputn:〃**输出格式要求:"%d!=%ld\n"程序运行示例如下:Inputn:101!=12!=23!=64!=245!=1206!=7207!=50408!=403209!=36288010!=3628800答案:#includeintsum_s(inti);main()Iunsignedintn二0,b二1;printf("Inputn:");scanf&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,程序的输出结果格式如下:12)123提示:使用求余运算符获得余数,使用整数除法获得商。**输入格式耍求:驾d%d〃提示信息:〃请输入两个整数:”**输出格式要求:13dRemainder=%d\n"\n"%5d)%5d"答案:ttincludcmain()inta,b,c,d;printfC请输入两个整数:");scanf("%d%d",&a,&b);c=a/b;d=a%b:printf(/z%13dRemainder=%d\n",c,d);printfC\n〃);printf(z,%5d)%5d",b,a);}1516.写一个程序,将接收的摄氏温度转换为对应的华氏温度。程序应显示如下的提示信息:Pleaseinputcels:然后输入一个十进制数并iHl车,然后程序以合适的消息形式输出转换后的华氏温度。程序使用如下的公式完成转换:摄氏温度=5.0*(华氏温麼-32.0)/9.0**输入格式要求:If"提示信息:"Pleaseinputcels:**输出格式要求:"Thefahris:%.2『"答案:ttincludcmain(){doublea,b;printf(^Pleaseinputcels:”);scanf&a);b=(9.0*a)/5.0+32.0;printf(z,Thefahris:%.2f",b);}1617.写一个程序,将接收的华氏温度转换为对应的摄氏温度。程序应显示如下的提示信息:Pleaseinputfahr:然后输入一个十进制数并iHl车,然后程序以合适的消息形式输出转换后的华氏温度。程序使用如下的公式完成转换:摄氏温度=5.0*(华氏温度-32.0)/9.0**输入格式要求:If"提示信息:"Pleaseinputfahr:**输出格式要求:"Thecelsis:%.2『"答案:ttincludcmain()Idoublea,b;printf(^Pleaseinputfahr:”);scanf&a);b=5.0*(a-32.0)/9.0;printf("Thecelsis:%.2f",b);}1718.编写一个程序,输入一个3位整数,要求逆序输出对应的数。例如:输入123,则输出321。**输入格式耍求:"%d"提示信息:"Pleaseenterapositiveinteger:**输出格式要求:"%d--〉%d\n"程序运
if(x%i二二0)
b=b+i;
if(b==x)
10
11.
用函数编程计算两整数的最人值,在主函数中调用该函数计算并输出从键盘任意输入的两整数的最人值。
**输入格式要求:
"Inputa,b/
"max=%d\n"
Inputa,b:
5,8
max=8
ttincludc
intmax(inta,intb)
辻(a>=b)
returna;
returnb;
main0
inta=0,b=0;
printf("Iriputa,b:
scanf("%d,%d",&a,&b);printfC'max=%d\n",max(a,b));
11
12.
利用求阶乘函数FactO,编程计算并输出1!
+2!
+…+n!
的值。
”%u"提示信息:
"Inputn(n>0):
"sum=%lu\n"
intsums(inti);
unsignedintn=0;
unsignedlongb二0;
printf(,zTnputn(n〉0):
for(b;n;n一)
b=b+sum_s(n);
printf("sum=%lu\n",b);
intsums(inti)
for(a二1;i;i―)
if(i>1)
a=a*i;
a=a*1;
}returna;
办公室管理教务管理科研管理人事管理退出系统
财务管理图书管理设备管理后勤管理
请您在上述功能屮选择(08):
提示:
输出如下格式
=======大学信息管理系统=======
printf(“0.退出系统\n");
printfC\n〃);
printf(”请您在上述功能中选择(08):
\n");
14.
利用静态变量计算n的阶乘。
〃側〃提示信息:
〃Inputn:
〃
"%d!
=%ld\n"
Inputn:
1!
=1
2!
=2
3!
=6
4!
=24
5!
=120
6!
=720
7!
=5040
8!
=40320
9!
=362880
10!
=3628800
intsum_s(inti);
I
unsignedintn二0,b二1;
printf("Inputn:
for(b=l;b<=n;b++)
printf(^%d!
=%ld\n",b,sum_s(b));
intsum_s(inti)
14
15.
写一个程序从键盘输入两个整数,然后显示输出第1个数除以第2个数的结果。
例如,输入123和
12,程序的输出结果格式如下:
12)123
使用求余运算符获得余数,使用整数除法获得商。
驾d%d〃提示信息:
〃请输入两个整数:
”**输出格式要求:
13dRemainder=%d\n"
\n
"%5d)%5d"
inta,b,c,d;
printfC请输入两个整数:
scanf("%d%d",&a,&b);
c=a/b;
d=a%b:
printf(/z%13dRemainder=%d\n",c,d);
printf(z,%5d)%5d",b,a);
1516.
写一个程序,将接收的摄氏温度转换为对应的华氏温度。
程序应显示如下的提示信息:
Pleaseinputcels:
然后输入一个十进制数并iHl车,然后程序以合适的消息形式输出转换后的华氏温度。
程序使用如下的公式完成转换:
摄氏温度=5.0*(华氏温麼-32.0)/9.0**输入格式要求:
If"提示信息:
"Pleaseinputcels:
"Thefahris:
%.2『"
doublea,b;
printf(^Pleaseinputcels:
scanf&a);
b=(9.0*a)/5.0+32.0;
printf(z,Thefahris:
%.2f",b);
16
17.
写一个程序,将接收的华氏温度转换为对应的摄氏温度。
Pleaseinputfahr:
摄氏温度=5.0*(华氏温度-32.0)/9.0
"Pleaseinputfahr:
"Thecelsis:
printf(^Pleaseinputfahr:
b=5.0*(a-32.0)/9.0;
printf("Thecelsis:
17
18.
编写一个程序,输入一个3位整数,要求逆序输出对应的数。
输入123,则输出321。
"%d"提示信息:
"Pleaseenterapositiveinteger:
"%d--〉%d\n"
程序运
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1