C语言练习题答案.docx
《C语言练习题答案.docx》由会员分享,可在线阅读,更多相关《C语言练习题答案.docx(175页珍藏版)》请在冰豆网上搜索。
C语言练习题答案
1.已知三角形的三边长为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,5
area=6.00
答案:
#include
intmain(void)
{
floata,b,c,s,area;
printf("Inputa,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;
}
-----------------1
2.从键盘任意输入一个4位整数,编程计算并输出它的逆序数.例如:
输入1234,分离出千位1、百位2、十位3和个位4,然后计算4*1000+3*100+2*10+1=4321,并输出4321。
**要求输入提示信息为:
无
**要求输入格式为:
"%d"
**要求输出格式为:
1234此处为输入
4321此处为输出
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);
--------------2
3.有关输入输出问题。
输入为:
12a↙
b↙
运行结果为:
1,2,a,b,123.300000,65535
请改正程序中的错误,使它能得出正确的结果。
main()
intb;
unsignedshorta=65535;
shortk=a;
charc,d;
intf,g;
b=(1234.0-1)/10;
scanf("%c",&c);
scanf("%c",&d);
scanf("%d",&f);
scanf("%d",&g);
printf("%c,%c,%c,%c,%f,%d",c,d,f,g,b,k);
doubleb;
inta=65535;
scanf("%c\t",&f);
scanf("%c",&g);
printf("%c,%c,%c,%c,%f,%d",c,d,f,g,b,a);
--------3
4.输入一行字符,统计其中的英文字符、数字字符、空格字符,以及其他字符的个数。
请找出以下程序的错误,并改正之。
#defineARR_SIZE=80;
charstr[ARR_SIZE];
int len,i;
int letter=0,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++; } else other++; } printf("英文字符数:%d\n",letter); printf("数字字符数:%d\n",digit); printf("空格数:%d\n",space); printf("其他字符数:%d\n",other);}答案:#include#include #defineARR_SIZE 80 main(){ charstr[ARR_SIZE]; int len,i; int letter=0,digit=0,space=0,other=0; printf("请输入一个字符串:"); gets(str); len=strlen(str); for(i=0;i { if('a'<=str[i]&&str[i]<='z'||'A'<=str[i]&&str[i]<='Z') { letter++; } elseif('0'<=str[i]&&str[i]<='9') { digit++; } elseif(str[i]=='') { space++; } else other++; } printf("英文字符数:%d\n",letter); printf("数字字符数:%d\n",digit); printf("空格数:%d\n",space); printf("其他字符数:%d\n",other);}--------------------45.对输入的一个数判断是否是素数。所谓素数是指这个数只能被1和自身整除。要求在主函数输入一个数,调用函数Fun()判断该数是否是素数。打印信息在主函数中进行。例如:从键盘输入5,5是素数则打印如下信息:"5isaprimenumber"。又如:从键盘输入4,4不是素数则打印如下信息:"4isnotaprimenumber"。负数、0和1均不是素数。对输入的数据要考虑数据的合法性,不满足条件的数要重新输入直到满足条件为止。不能使用全局变量,不按给定的函数原型编写程序不给分。Fun()函数原型为:intFun(intm);**输入数据提示信息:"Pleaseinputanumber:\n"注:该提示信息请放在循环体外**输入数据格式为:"%d"**输出格式要求:若是素数输出数据格式为:"%disaprimenumber\n"若不是素数输出数据格式为:"%disnotaprimenumber\n"不完整答案:#includeintFun(inta){ inti; if(a>1) { for(i=2;i { if(a%i==0) return0; else continue; } return1; } else return0; }main(){ intb,c; printf("Pleaseinputanumber:\n"); scanf("%d",&b); c=Fun(b); if(0==c) printf("%disnotaprimenumber\n",b); else printf("%disaprimenumber\n",b); }参考答案:#include"stdio.h"intFun(intm);intmain(){ intm,flag; printf("Pleaseinputanumber:\n"); do { scanf("%d",&m);//1 } while(m<2);//e1 flag=Fun(m);//3 if(flag)//1 printf("%disaprimenumber\n",m); else printf("%disnotaprimenumber\n",m);//1 return0;} intFun(intm)//2{ inti,flag=1;//1 for(i=2;i { if(m%i==0)//1 { flag=0;//1 break; } } returnflag;//2} ----------------------------------------------------------56.求1898现將不超过2000的所有素数从小到大排成第一行,第二行上的每个数都等于它“右肩”上的素数与“左肩”上的素数之差。请编程求出:第二行数中是否存在这样的若干个连续的整数,它们的和恰好是1898?假如存在的话,又有几种这样的情况?**输入格式要求:提示信息:"Therearefollwingprimesinfirstrow:\n"**输出格式要求:"(%d).%3d,......,%d\n"程序运行示例如下:Therearefollwingprimesinfirstrow:(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;k++;}elsecontinue;}printf("Therearefollwingprimesinfirstrow:\n");for(c=329;c>=0;c--)for(b=c+1;cif(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表示为质因数从小到大顺序排列的乘积形式输出,否则输出"Itisaprimenumber"。例如,用户输入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#includeintIsPrime(intx);voidOutputPrimeFactor(intx);intmain(){intm;printf("Inputm:");scanf("%d",&m);if(IsPrime(m)){printf("Itisaprimenumber\n");}else{printf("%d=",m);OutputPrimeFactor(m);}return0;}intIsPrime(intx){inti,flag=1;intsquareRoot=sqrt(x);if(x<=1){flag=0;}for(i=2;i<=squareRoot&&flag;i++){if(x%i==0){flag=0;}}returnflag;}voidOutputPrimeFactor(intx){inti;for(i=2;i{if(x%i==0){printf("%d*",i);OutputPrimeFactor(x/i);return;}}printf("%d",x);}---------------------------78.将任一整数转换为二进制形式。**输入格式要求:"%d"提示信息:"Inputnumber:"**输出格式要求:"numberofdecimalform:%d\n""it\'sbinaryform:"程序运行示例如下:Inputnumber:876numberofdecimalform:876it'sbinaryform:00000000000000000000001101101100答案:#include#includeintmain(){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答案:#includeintmain(){intn,i=1,k;printf("Pleaseinputn:");scanf("%d",&n);for(k=n+1;i;k++){for(i=2;iif(k%i==0)break;elsecontinue;if(i==k){printf("%d",k);i=0;break;}}}---------------910.如果一个正整数m的所有小于m的不同因子(包括1)加起来正好等于m本身,那么就被称它为完全数。它是指这样的一些特殊的自然数,它所有的真因子(即除了自身以外的约数)的和,恰好等于它本身。注意:1没有真因子,所以不是完全数。例如,6就是一个完全数,是因为6=1+2+3。请编写一个判断完全数的函数IsPerfect(),然后判断从键盘输入的整数是否是完全数。要求:按如下原型编写判断完全数的函数,若函数返回0,则代表不是完全数,若返回1,则代表是完全数。intIsPerfect(intx);**要求输入提示信息为:"Inputm:\n"**要求输入格式为:"%d"**要求输出格式为"%disaperfectnumber\n""%disnotaperfectnumber\n"注:不能使用指针、结构体、共用体、文件、goto、枚举类型进行编程,主函数不能使用intmain和return0。答案:#includeintIsPerfect(intx);intmain(){intm;printf("Inputm:\n");scanf("%d",&m);if(IsPerfect(m))printf("%disaperfectnumber\n",m);elseprintf("%disnotaperfectnumber\n",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.用函数编程计算两整数的最大值,在主函数中调用该函数计算并输出从键盘任意输入的两整数的最大值。**输入格式要求:"%d,%d"提示信息:"Inputa,b:"**输出格式要求:"max=%d\n"程序运行示例如下:Inputa,b:5,8max=8答案:#includeintmax(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));}---------------------------1112.利用求阶乘函数Fact(),编程计算并输出1!+2!+…+n!的值。**输入格式要求:"%u"提示信息:"Inputn(n>0):"**输出格式要求:"sum=%lu\n"答案:#includeintsum_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;}--------------------------------------1213.编程输出如下菜单界面(具体的输出则以下面提示中要求的输出格式为准):=======大学信息管理系统=======------------------------------办公室管理财务管理教务管理图书管理科研管理设备管理人事管理后勤管理退出系统------------------------------请您在上述功能中选择(0——8): 提示:输出如下格式"=======大学信息管理系统=======\n""------------------------------\n""1.办公室管理5.财务管理\n""2.教务管理6.图书管理\n""3.科研管理7.设备管理\n""4.人事管理8.后勤管理\n""0.退出系统\n""------------------------------\n""请您在上述功能中选择(0——8):\n"答案:#includemain(){
if(a= { letter++; } elseif(0= { digit++; } elseif(str[i]='') { space++; } else other++; } printf("英文字符数:%d\n",letter); printf("数字字符数:%d\n",digit); printf("空格数:%d\n",space); printf("其他字符数:%d\n",other);}答案:#include#include #defineARR_SIZE 80 main(){ charstr[ARR_SIZE]; int len,i; int letter=0,digit=0,space=0,other=0; printf("请输入一个字符串:"); gets(str); len=strlen(str); for(i=0;i { if('a'<=str[i]&&str[i]<='z'||'A'<=str[i]&&str[i]<='Z') { letter++; } elseif('0'<=str[i]&&str[i]<='9') { digit++; } elseif(str[i]=='') { space++; } else other++; } printf("英文字符数:%d\n",letter); printf("数字字符数:%d\n",digit); printf("空格数:%d\n",space); printf("其他字符数:%d\n",other);}--------------------45.对输入的一个数判断是否是素数。所谓素数是指这个数只能被1和自身整除。要求在主函数输入一个数,调用函数Fun()判断该数是否是素数。打印信息在主函数中进行。例如:从键盘输入5,5是素数则打印如下信息:"5isaprimenumber"。又如:从键盘输入4,4不是素数则打印如下信息:"4isnotaprimenumber"。负数、0和1均不是素数。对输入的数据要考虑数据的合法性,不满足条件的数要重新输入直到满足条件为止。不能使用全局变量,不按给定的函数原型编写程序不给分。Fun()函数原型为:intFun(intm);**输入数据提示信息:"Pleaseinputanumber:\n"注:该提示信息请放在循环体外**输入数据格式为:"%d"**输出格式要求:若是素数输出数据格式为:"%disaprimenumber\n"若不是素数输出数据格式为:"%disnotaprimenumber\n"不完整答案:#includeintFun(inta){ inti; if(a>1) { for(i=2;i { if(a%i==0) return0; else continue; } return1; } else return0; }main(){ intb,c; printf("Pleaseinputanumber:\n"); scanf("%d",&b); c=Fun(b); if(0==c) printf("%disnotaprimenumber\n",b); else printf("%disaprimenumber\n",b); }参考答案:#include"stdio.h"intFun(intm);intmain(){ intm,flag; printf("Pleaseinputanumber:\n"); do { scanf("%d",&m);//1 } while(m<2);//e1 flag=Fun(m);//3 if(flag)//1 printf("%disaprimenumber\n",m); else printf("%disnotaprimenumber\n",m);//1 return0;} intFun(intm)//2{ inti,flag=1;//1 for(i=2;i { if(m%i==0)//1 { flag=0;//1 break; } } returnflag;//2} ----------------------------------------------------------56.求1898现將不超过2000的所有素数从小到大排成第一行,第二行上的每个数都等于它“右肩”上的素数与“左肩”上的素数之差。请编程求出:第二行数中是否存在这样的若干个连续的整数,它们的和恰好是1898?假如存在的话,又有几种这样的情况?**输入格式要求:提示信息:"Therearefollwingprimesinfirstrow:\n"**输出格式要求:"(%d).%3d,......,%d\n"程序运行示例如下:Therearefollwingprimesinfirstrow:(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;k++;}elsecontinue;}printf("Therearefollwingprimesinfirstrow:\n");for(c=329;c>=0;c--)for(b=c+1;cif(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表示为质因数从小到大顺序排列的乘积形式输出,否则输出"Itisaprimenumber"。例如,用户输入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#includeintIsPrime(intx);voidOutputPrimeFactor(intx);intmain(){intm;printf("Inputm:");scanf("%d",&m);if(IsPrime(m)){printf("Itisaprimenumber\n");}else{printf("%d=",m);OutputPrimeFactor(m);}return0;}intIsPrime(intx){inti,flag=1;intsquareRoot=sqrt(x);if(x<=1){flag=0;}for(i=2;i<=squareRoot&&flag;i++){if(x%i==0){flag=0;}}returnflag;}voidOutputPrimeFactor(intx){inti;for(i=2;i{if(x%i==0){printf("%d*",i);OutputPrimeFactor(x/i);return;}}printf("%d",x);}---------------------------78.将任一整数转换为二进制形式。**输入格式要求:"%d"提示信息:"Inputnumber:"**输出格式要求:"numberofdecimalform:%d\n""it\'sbinaryform:"程序运行示例如下:Inputnumber:876numberofdecimalform:876it'sbinaryform:00000000000000000000001101101100答案:#include#includeintmain(){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答案:#includeintmain(){intn,i=1,k;printf("Pleaseinputn:");scanf("%d",&n);for(k=n+1;i;k++){for(i=2;iif(k%i==0)break;elsecontinue;if(i==k){printf("%d",k);i=0;break;}}}---------------910.如果一个正整数m的所有小于m的不同因子(包括1)加起来正好等于m本身,那么就被称它为完全数。它是指这样的一些特殊的自然数,它所有的真因子(即除了自身以外的约数)的和,恰好等于它本身。注意:1没有真因子,所以不是完全数。例如,6就是一个完全数,是因为6=1+2+3。请编写一个判断完全数的函数IsPerfect(),然后判断从键盘输入的整数是否是完全数。要求:按如下原型编写判断完全数的函数,若函数返回0,则代表不是完全数,若返回1,则代表是完全数。intIsPerfect(intx);**要求输入提示信息为:"Inputm:\n"**要求输入格式为:"%d"**要求输出格式为"%disaperfectnumber\n""%disnotaperfectnumber\n"注:不能使用指针、结构体、共用体、文件、goto、枚举类型进行编程,主函数不能使用intmain和return0。答案:#includeintIsPerfect(intx);intmain(){intm;printf("Inputm:\n");scanf("%d",&m);if(IsPerfect(m))printf("%disaperfectnumber\n",m);elseprintf("%disnotaperfectnumber\n",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.用函数编程计算两整数的最大值,在主函数中调用该函数计算并输出从键盘任意输入的两整数的最大值。**输入格式要求:"%d,%d"提示信息:"Inputa,b:"**输出格式要求:"max=%d\n"程序运行示例如下:Inputa,b:5,8max=8答案:#includeintmax(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));}---------------------------1112.利用求阶乘函数Fact(),编程计算并输出1!+2!+…+n!的值。**输入格式要求:"%u"提示信息:"Inputn(n>0):"**输出格式要求:"sum=%lu\n"答案:#includeintsum_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;}--------------------------------------1213.编程输出如下菜单界面(具体的输出则以下面提示中要求的输出格式为准):=======大学信息管理系统=======------------------------------办公室管理财务管理教务管理图书管理科研管理设备管理人事管理后勤管理退出系统------------------------------请您在上述功能中选择(0——8): 提示:输出如下格式"=======大学信息管理系统=======\n""------------------------------\n""1.办公室管理5.财务管理\n""2.教务管理6.图书管理\n""3.科研管理7.设备管理\n""4.人事管理8.后勤管理\n""0.退出系统\n""------------------------------\n""请您在上述功能中选择(0——8):\n"答案:#includemain(){
letter++;
elseif(0= { digit++; } elseif(str[i]='') { space++; } else other++; } printf("英文字符数:%d\n",letter); printf("数字字符数:%d\n",digit); printf("空格数:%d\n",space); printf("其他字符数:%d\n",other);}答案:#include#include #defineARR_SIZE 80 main(){ charstr[ARR_SIZE]; int len,i; int letter=0,digit=0,space=0,other=0; printf("请输入一个字符串:"); gets(str); len=strlen(str); for(i=0;i { if('a'<=str[i]&&str[i]<='z'||'A'<=str[i]&&str[i]<='Z') { letter++; } elseif('0'<=str[i]&&str[i]<='9') { digit++; } elseif(str[i]=='') { space++; } else other++; } printf("英文字符数:%d\n",letter); printf("数字字符数:%d\n",digit); printf("空格数:%d\n",space); printf("其他字符数:%d\n",other);}--------------------45.对输入的一个数判断是否是素数。所谓素数是指这个数只能被1和自身整除。要求在主函数输入一个数,调用函数Fun()判断该数是否是素数。打印信息在主函数中进行。例如:从键盘输入5,5是素数则打印如下信息:"5isaprimenumber"。又如:从键盘输入4,4不是素数则打印如下信息:"4isnotaprimenumber"。负数、0和1均不是素数。对输入的数据要考虑数据的合法性,不满足条件的数要重新输入直到满足条件为止。不能使用全局变量,不按给定的函数原型编写程序不给分。Fun()函数原型为:intFun(intm);**输入数据提示信息:"Pleaseinputanumber:\n"注:该提示信息请放在循环体外**输入数据格式为:"%d"**输出格式要求:若是素数输出数据格式为:"%disaprimenumber\n"若不是素数输出数据格式为:"%disnotaprimenumber\n"不完整答案:#includeintFun(inta){ inti; if(a>1) { for(i=2;i { if(a%i==0) return0; else continue; } return1; } else return0; }main(){ intb,c; printf("Pleaseinputanumber:\n"); scanf("%d",&b); c=Fun(b); if(0==c) printf("%disnotaprimenumber\n",b); else printf("%disaprimenumber\n",b); }参考答案:#include"stdio.h"intFun(intm);intmain(){ intm,flag; printf("Pleaseinputanumber:\n"); do { scanf("%d",&m);//1 } while(m<2);//e1 flag=Fun(m);//3 if(flag)//1 printf("%disaprimenumber\n",m); else printf("%disnotaprimenumber\n",m);//1 return0;} intFun(intm)//2{ inti,flag=1;//1 for(i=2;i { if(m%i==0)//1 { flag=0;//1 break; } } returnflag;//2} ----------------------------------------------------------56.求1898现將不超过2000的所有素数从小到大排成第一行,第二行上的每个数都等于它“右肩”上的素数与“左肩”上的素数之差。请编程求出:第二行数中是否存在这样的若干个连续的整数,它们的和恰好是1898?假如存在的话,又有几种这样的情况?**输入格式要求:提示信息:"Therearefollwingprimesinfirstrow:\n"**输出格式要求:"(%d).%3d,......,%d\n"程序运行示例如下:Therearefollwingprimesinfirstrow:(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;k++;}elsecontinue;}printf("Therearefollwingprimesinfirstrow:\n");for(c=329;c>=0;c--)for(b=c+1;cif(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表示为质因数从小到大顺序排列的乘积形式输出,否则输出"Itisaprimenumber"。例如,用户输入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#includeintIsPrime(intx);voidOutputPrimeFactor(intx);intmain(){intm;printf("Inputm:");scanf("%d",&m);if(IsPrime(m)){printf("Itisaprimenumber\n");}else{printf("%d=",m);OutputPrimeFactor(m);}return0;}intIsPrime(intx){inti,flag=1;intsquareRoot=sqrt(x);if(x<=1){flag=0;}for(i=2;i<=squareRoot&&flag;i++){if(x%i==0){flag=0;}}returnflag;}voidOutputPrimeFactor(intx){inti;for(i=2;i{if(x%i==0){printf("%d*",i);OutputPrimeFactor(x/i);return;}}printf("%d",x);}---------------------------78.将任一整数转换为二进制形式。**输入格式要求:"%d"提示信息:"Inputnumber:"**输出格式要求:"numberofdecimalform:%d\n""it\'sbinaryform:"程序运行示例如下:Inputnumber:876numberofdecimalform:876it'sbinaryform:00000000000000000000001101101100答案:#include#includeintmain(){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答案:#includeintmain(){intn,i=1,k;printf("Pleaseinputn:");scanf("%d",&n);for(k=n+1;i;k++){for(i=2;iif(k%i==0)break;elsecontinue;if(i==k){printf("%d",k);i=0;break;}}}---------------910.如果一个正整数m的所有小于m的不同因子(包括1)加起来正好等于m本身,那么就被称它为完全数。它是指这样的一些特殊的自然数,它所有的真因子(即除了自身以外的约数)的和,恰好等于它本身。注意:1没有真因子,所以不是完全数。例如,6就是一个完全数,是因为6=1+2+3。请编写一个判断完全数的函数IsPerfect(),然后判断从键盘输入的整数是否是完全数。要求:按如下原型编写判断完全数的函数,若函数返回0,则代表不是完全数,若返回1,则代表是完全数。intIsPerfect(intx);**要求输入提示信息为:"Inputm:\n"**要求输入格式为:"%d"**要求输出格式为"%disaperfectnumber\n""%disnotaperfectnumber\n"注:不能使用指针、结构体、共用体、文件、goto、枚举类型进行编程,主函数不能使用intmain和return0。答案:#includeintIsPerfect(intx);intmain(){intm;printf("Inputm:\n");scanf("%d",&m);if(IsPerfect(m))printf("%disaperfectnumber\n",m);elseprintf("%disnotaperfectnumber\n",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.用函数编程计算两整数的最大值,在主函数中调用该函数计算并输出从键盘任意输入的两整数的最大值。**输入格式要求:"%d,%d"提示信息:"Inputa,b:"**输出格式要求:"max=%d\n"程序运行示例如下:Inputa,b:5,8max=8答案:#includeintmax(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));}---------------------------1112.利用求阶乘函数Fact(),编程计算并输出1!+2!+…+n!的值。**输入格式要求:"%u"提示信息:"Inputn(n>0):"**输出格式要求:"sum=%lu\n"答案:#includeintsum_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;}--------------------------------------1213.编程输出如下菜单界面(具体的输出则以下面提示中要求的输出格式为准):=======大学信息管理系统=======------------------------------办公室管理财务管理教务管理图书管理科研管理设备管理人事管理后勤管理退出系统------------------------------请您在上述功能中选择(0——8): 提示:输出如下格式"=======大学信息管理系统=======\n""------------------------------\n""1.办公室管理5.财务管理\n""2.教务管理6.图书管理\n""3.科研管理7.设备管理\n""4.人事管理8.后勤管理\n""0.退出系统\n""------------------------------\n""请您在上述功能中选择(0——8):\n"答案:#includemain(){
digit++;
elseif(str[i]='')
space++;
else
other++;
printf("英文字符数:
%d\n",letter);
printf("数字字符数:
%d\n",digit);
printf("空格数:
%d\n",space);
printf("其他字符数:
%d\n",other);
#defineARR_SIZE 80
for(i=0;i { if('a'<=str[i]&&str[i]<='z'||'A'<=str[i]&&str[i]<='Z') { letter++; } elseif('0'<=str[i]&&str[i]<='9') { digit++; } elseif(str[i]=='') { space++; } else other++; } printf("英文字符数:%d\n",letter); printf("数字字符数:%d\n",digit); printf("空格数:%d\n",space); printf("其他字符数:%d\n",other);}--------------------45.对输入的一个数判断是否是素数。所谓素数是指这个数只能被1和自身整除。要求在主函数输入一个数,调用函数Fun()判断该数是否是素数。打印信息在主函数中进行。例如:从键盘输入5,5是素数则打印如下信息:"5isaprimenumber"。又如:从键盘输入4,4不是素数则打印如下信息:"4isnotaprimenumber"。负数、0和1均不是素数。对输入的数据要考虑数据的合法性,不满足条件的数要重新输入直到满足条件为止。不能使用全局变量,不按给定的函数原型编写程序不给分。Fun()函数原型为:intFun(intm);**输入数据提示信息:"Pleaseinputanumber:\n"注:该提示信息请放在循环体外**输入数据格式为:"%d"**输出格式要求:若是素数输出数据格式为:"%disaprimenumber\n"若不是素数输出数据格式为:"%disnotaprimenumber\n"不完整答案:#includeintFun(inta){ inti; if(a>1) { for(i=2;i { if(a%i==0) return0; else continue; } return1; } else return0; }main(){ intb,c; printf("Pleaseinputanumber:\n"); scanf("%d",&b); c=Fun(b); if(0==c) printf("%disnotaprimenumber\n",b); else printf("%disaprimenumber\n",b); }参考答案:#include"stdio.h"intFun(intm);intmain(){ intm,flag; printf("Pleaseinputanumber:\n"); do { scanf("%d",&m);//1 } while(m<2);//e1 flag=Fun(m);//3 if(flag)//1 printf("%disaprimenumber\n",m); else printf("%disnotaprimenumber\n",m);//1 return0;} intFun(intm)//2{ inti,flag=1;//1 for(i=2;i { if(m%i==0)//1 { flag=0;//1 break; } } returnflag;//2} ----------------------------------------------------------56.求1898现將不超过2000的所有素数从小到大排成第一行,第二行上的每个数都等于它“右肩”上的素数与“左肩”上的素数之差。请编程求出:第二行数中是否存在这样的若干个连续的整数,它们的和恰好是1898?假如存在的话,又有几种这样的情况?**输入格式要求:提示信息:"Therearefollwingprimesinfirstrow:\n"**输出格式要求:"(%d).%3d,......,%d\n"程序运行示例如下:Therearefollwingprimesinfirstrow:(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;k++;}elsecontinue;}printf("Therearefollwingprimesinfirstrow:\n");for(c=329;c>=0;c--)for(b=c+1;cif(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表示为质因数从小到大顺序排列的乘积形式输出,否则输出"Itisaprimenumber"。例如,用户输入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#includeintIsPrime(intx);voidOutputPrimeFactor(intx);intmain(){intm;printf("Inputm:");scanf("%d",&m);if(IsPrime(m)){printf("Itisaprimenumber\n");}else{printf("%d=",m);OutputPrimeFactor(m);}return0;}intIsPrime(intx){inti,flag=1;intsquareRoot=sqrt(x);if(x<=1){flag=0;}for(i=2;i<=squareRoot&&flag;i++){if(x%i==0){flag=0;}}returnflag;}voidOutputPrimeFactor(intx){inti;for(i=2;i{if(x%i==0){printf("%d*",i);OutputPrimeFactor(x/i);return;}}printf("%d",x);}---------------------------78.将任一整数转换为二进制形式。**输入格式要求:"%d"提示信息:"Inputnumber:"**输出格式要求:"numberofdecimalform:%d\n""it\'sbinaryform:"程序运行示例如下:Inputnumber:876numberofdecimalform:876it'sbinaryform:00000000000000000000001101101100答案:#include#includeintmain(){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答案:#includeintmain(){intn,i=1,k;printf("Pleaseinputn:");scanf("%d",&n);for(k=n+1;i;k++){for(i=2;iif(k%i==0)break;elsecontinue;if(i==k){printf("%d",k);i=0;break;}}}---------------910.如果一个正整数m的所有小于m的不同因子(包括1)加起来正好等于m本身,那么就被称它为完全数。它是指这样的一些特殊的自然数,它所有的真因子(即除了自身以外的约数)的和,恰好等于它本身。注意:1没有真因子,所以不是完全数。例如,6就是一个完全数,是因为6=1+2+3。请编写一个判断完全数的函数IsPerfect(),然后判断从键盘输入的整数是否是完全数。要求:按如下原型编写判断完全数的函数,若函数返回0,则代表不是完全数,若返回1,则代表是完全数。intIsPerfect(intx);**要求输入提示信息为:"Inputm:\n"**要求输入格式为:"%d"**要求输出格式为"%disaperfectnumber\n""%disnotaperfectnumber\n"注:不能使用指针、结构体、共用体、文件、goto、枚举类型进行编程,主函数不能使用intmain和return0。答案:#includeintIsPerfect(intx);intmain(){intm;printf("Inputm:\n");scanf("%d",&m);if(IsPerfect(m))printf("%disaperfectnumber\n",m);elseprintf("%disnotaperfectnumber\n",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.用函数编程计算两整数的最大值,在主函数中调用该函数计算并输出从键盘任意输入的两整数的最大值。**输入格式要求:"%d,%d"提示信息:"Inputa,b:"**输出格式要求:"max=%d\n"程序运行示例如下:Inputa,b:5,8max=8答案:#includeintmax(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));}---------------------------1112.利用求阶乘函数Fact(),编程计算并输出1!+2!+…+n!的值。**输入格式要求:"%u"提示信息:"Inputn(n>0):"**输出格式要求:"sum=%lu\n"答案:#includeintsum_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;}--------------------------------------1213.编程输出如下菜单界面(具体的输出则以下面提示中要求的输出格式为准):=======大学信息管理系统=======------------------------------办公室管理财务管理教务管理图书管理科研管理设备管理人事管理后勤管理退出系统------------------------------请您在上述功能中选择(0——8): 提示:输出如下格式"=======大学信息管理系统=======\n""------------------------------\n""1.办公室管理5.财务管理\n""2.教务管理6.图书管理\n""3.科研管理7.设备管理\n""4.人事管理8.后勤管理\n""0.退出系统\n""------------------------------\n""请您在上述功能中选择(0——8):\n"答案:#includemain(){
if('a'<=str[i]&&str[i]<='z'||'A'<=str[i]&&str[i]<='Z')
elseif('0'<=str[i]&&str[i]<='9')
elseif(str[i]=='')
--------------------4
5.对输入的一个数判断是否是素数。
所谓素数是指这个数只能被1和自身整除。
要求在主函数输入一个数,调用函数Fun()判断该数是否是素数。
打印信息在主函数中进行。
例如:
从键盘输入5,5是素数则打印如下信息:
"5isaprimenumber"。
又如:
从键盘输入4,4不是素数则打印如下信息:
"4isnotaprimenumber"。
负数、0和1均不是素数。
对输入的数据要考虑数据的合法性,不满足条件的数要重新输入直到满足条件为止。
不能使用全局变量,不按给定的函数原型编写程序
不给分。
Fun()函数原型为:
intFun(intm);
**输入数据提示信息:
"Pleaseinputanumber:
\n"
注:
该提示信息请放在循环体外
**输入数据格式为:
若是素数输出数据格式为:
"%disaprimenumber\n"
若不是素数输出数据格式为:
"%disnotaprimenumber\n"
不完整答案:
intFun(inta)
inti;
if(a>1)
for(i=2;i { if(a%i==0) return0; else continue; } return1; } else return0; }main(){ intb,c; printf("Pleaseinputanumber:\n"); scanf("%d",&b); c=Fun(b); if(0==c) printf("%disnotaprimenumber\n",b); else printf("%disaprimenumber\n",b); }参考答案:#include"stdio.h"intFun(intm);intmain(){ intm,flag; printf("Pleaseinputanumber:\n"); do { scanf("%d",&m);//1 } while(m<2);//e1 flag=Fun(m);//3 if(flag)//1 printf("%disaprimenumber\n",m); else printf("%disnotaprimenumber\n",m);//1 return0;} intFun(intm)//2{ inti,flag=1;//1 for(i=2;i { if(m%i==0)//1 { flag=0;//1 break; } } returnflag;//2} ----------------------------------------------------------56.求1898现將不超过2000的所有素数从小到大排成第一行,第二行上的每个数都等于它“右肩”上的素数与“左肩”上的素数之差。请编程求出:第二行数中是否存在这样的若干个连续的整数,它们的和恰好是1898?假如存在的话,又有几种这样的情况?**输入格式要求:提示信息:"Therearefollwingprimesinfirstrow:\n"**输出格式要求:"(%d).%3d,......,%d\n"程序运行示例如下:Therearefollwingprimesinfirstrow:(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;k++;}elsecontinue;}printf("Therearefollwingprimesinfirstrow:\n");for(c=329;c>=0;c--)for(b=c+1;cif(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表示为质因数从小到大顺序排列的乘积形式输出,否则输出"Itisaprimenumber"。例如,用户输入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#includeintIsPrime(intx);voidOutputPrimeFactor(intx);intmain(){intm;printf("Inputm:");scanf("%d",&m);if(IsPrime(m)){printf("Itisaprimenumber\n");}else{printf("%d=",m);OutputPrimeFactor(m);}return0;}intIsPrime(intx){inti,flag=1;intsquareRoot=sqrt(x);if(x<=1){flag=0;}for(i=2;i<=squareRoot&&flag;i++){if(x%i==0){flag=0;}}returnflag;}voidOutputPrimeFactor(intx){inti;for(i=2;i{if(x%i==0){printf("%d*",i);OutputPrimeFactor(x/i);return;}}printf("%d",x);}---------------------------78.将任一整数转换为二进制形式。**输入格式要求:"%d"提示信息:"Inputnumber:"**输出格式要求:"numberofdecimalform:%d\n""it\'sbinaryform:"程序运行示例如下:Inputnumber:876numberofdecimalform:876it'sbinaryform:00000000000000000000001101101100答案:#include#includeintmain(){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答案:#includeintmain(){intn,i=1,k;printf("Pleaseinputn:");scanf("%d",&n);for(k=n+1;i;k++){for(i=2;iif(k%i==0)break;elsecontinue;if(i==k){printf("%d",k);i=0;break;}}}---------------910.如果一个正整数m的所有小于m的不同因子(包括1)加起来正好等于m本身,那么就被称它为完全数。它是指这样的一些特殊的自然数,它所有的真因子(即除了自身以外的约数)的和,恰好等于它本身。注意:1没有真因子,所以不是完全数。例如,6就是一个完全数,是因为6=1+2+3。请编写一个判断完全数的函数IsPerfect(),然后判断从键盘输入的整数是否是完全数。要求:按如下原型编写判断完全数的函数,若函数返回0,则代表不是完全数,若返回1,则代表是完全数。intIsPerfect(intx);**要求输入提示信息为:"Inputm:\n"**要求输入格式为:"%d"**要求输出格式为"%disaperfectnumber\n""%disnotaperfectnumber\n"注:不能使用指针、结构体、共用体、文件、goto、枚举类型进行编程,主函数不能使用intmain和return0。答案:#includeintIsPerfect(intx);intmain(){intm;printf("Inputm:\n");scanf("%d",&m);if(IsPerfect(m))printf("%disaperfectnumber\n",m);elseprintf("%disnotaperfectnumber\n",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.用函数编程计算两整数的最大值,在主函数中调用该函数计算并输出从键盘任意输入的两整数的最大值。**输入格式要求:"%d,%d"提示信息:"Inputa,b:"**输出格式要求:"max=%d\n"程序运行示例如下:Inputa,b:5,8max=8答案:#includeintmax(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));}---------------------------1112.利用求阶乘函数Fact(),编程计算并输出1!+2!+…+n!的值。**输入格式要求:"%u"提示信息:"Inputn(n>0):"**输出格式要求:"sum=%lu\n"答案:#includeintsum_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;}--------------------------------------1213.编程输出如下菜单界面(具体的输出则以下面提示中要求的输出格式为准):=======大学信息管理系统=======------------------------------办公室管理财务管理教务管理图书管理科研管理设备管理人事管理后勤管理退出系统------------------------------请您在上述功能中选择(0——8): 提示:输出如下格式"=======大学信息管理系统=======\n""------------------------------\n""1.办公室管理5.财务管理\n""2.教务管理6.图书管理\n""3.科研管理7.设备管理\n""4.人事管理8.后勤管理\n""0.退出系统\n""------------------------------\n""请您在上述功能中选择(0——8):\n"答案:#includemain(){
if(a%i==0)
continue;
return1;
intb,c;
printf("Pleaseinputanumber:
\n");
scanf("%d",&b);
c=Fun(b);
if(0==c)
printf("%disnotaprimenumber\n",b);
printf("%disaprimenumber\n",b);
参考答案:
#include"stdio.h"
intFun(intm);
intmain()
intm,flag;
do
scanf("%d",&m);//1
while(m<2);//e1
flag=Fun(m);//3
if(flag)//1
printf("%disaprimenumber\n",m);
printf("%disnotaprimenumber\n",m);//1
intFun(intm)//2
inti,flag=1;//1
for(i=2;i { if(m%i==0)//1 { flag=0;//1 break; } } returnflag;//2} ----------------------------------------------------------56.求1898现將不超过2000的所有素数从小到大排成第一行,第二行上的每个数都等于它“右肩”上的素数与“左肩”上的素数之差。请编程求出:第二行数中是否存在这样的若干个连续的整数,它们的和恰好是1898?假如存在的话,又有几种这样的情况?**输入格式要求:提示信息:"Therearefollwingprimesinfirstrow:\n"**输出格式要求:"(%d).%3d,......,%d\n"程序运行示例如下:Therearefollwingprimesinfirstrow:(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;k++;}elsecontinue;}printf("Therearefollwingprimesinfirstrow:\n");for(c=329;c>=0;c--)for(b=c+1;cif(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表示为质因数从小到大顺序排列的乘积形式输出,否则输出"Itisaprimenumber"。例如,用户输入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#includeintIsPrime(intx);voidOutputPrimeFactor(intx);intmain(){intm;printf("Inputm:");scanf("%d",&m);if(IsPrime(m)){printf("Itisaprimenumber\n");}else{printf("%d=",m);OutputPrimeFactor(m);}return0;}intIsPrime(intx){inti,flag=1;intsquareRoot=sqrt(x);if(x<=1){flag=0;}for(i=2;i<=squareRoot&&flag;i++){if(x%i==0){flag=0;}}returnflag;}voidOutputPrimeFactor(intx){inti;for(i=2;i{if(x%i==0){printf("%d*",i);OutputPrimeFactor(x/i);return;}}printf("%d",x);}---------------------------78.将任一整数转换为二进制形式。**输入格式要求:"%d"提示信息:"Inputnumber:"**输出格式要求:"numberofdecimalform:%d\n""it\'sbinaryform:"程序运行示例如下:Inputnumber:876numberofdecimalform:876it'sbinaryform:00000000000000000000001101101100答案:#include#includeintmain(){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答案:#includeintmain(){intn,i=1,k;printf("Pleaseinputn:");scanf("%d",&n);for(k=n+1;i;k++){for(i=2;iif(k%i==0)break;elsecontinue;if(i==k){printf("%d",k);i=0;break;}}}---------------910.如果一个正整数m的所有小于m的不同因子(包括1)加起来正好等于m本身,那么就被称它为完全数。它是指这样的一些特殊的自然数,它所有的真因子(即除了自身以外的约数)的和,恰好等于它本身。注意:1没有真因子,所以不是完全数。例如,6就是一个完全数,是因为6=1+2+3。请编写一个判断完全数的函数IsPerfect(),然后判断从键盘输入的整数是否是完全数。要求:按如下原型编写判断完全数的函数,若函数返回0,则代表不是完全数,若返回1,则代表是完全数。intIsPerfect(intx);**要求输入提示信息为:"Inputm:\n"**要求输入格式为:"%d"**要求输出格式为"%disaperfectnumber\n""%disnotaperfectnumber\n"注:不能使用指针、结构体、共用体、文件、goto、枚举类型进行编程,主函数不能使用intmain和return0。答案:#includeintIsPerfect(intx);intmain(){intm;printf("Inputm:\n");scanf("%d",&m);if(IsPerfect(m))printf("%disaperfectnumber\n",m);elseprintf("%disnotaperfectnumber\n",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.用函数编程计算两整数的最大值,在主函数中调用该函数计算并输出从键盘任意输入的两整数的最大值。**输入格式要求:"%d,%d"提示信息:"Inputa,b:"**输出格式要求:"max=%d\n"程序运行示例如下:Inputa,b:5,8max=8答案:#includeintmax(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));}---------------------------1112.利用求阶乘函数Fact(),编程计算并输出1!+2!+…+n!的值。**输入格式要求:"%u"提示信息:"Inputn(n>0):"**输出格式要求:"sum=%lu\n"答案:#includeintsum_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;}--------------------------------------1213.编程输出如下菜单界面(具体的输出则以下面提示中要求的输出格式为准):=======大学信息管理系统=======------------------------------办公室管理财务管理教务管理图书管理科研管理设备管理人事管理后勤管理退出系统------------------------------请您在上述功能中选择(0——8): 提示:输出如下格式"=======大学信息管理系统=======\n""------------------------------\n""1.办公室管理5.财务管理\n""2.教务管理6.图书管理\n""3.科研管理7.设备管理\n""4.人事管理8.后勤管理\n""0.退出系统\n""------------------------------\n""请您在上述功能中选择(0——8):\n"答案:#includemain(){
if(m%i==0)//1
flag=0;//1
break;
returnflag;//2
----------------------------------------------------------5
6.求1898
现將不超过2000的所有素数从小到大排成第一行,第二行上的每个数都等于它“右肩”上的素数与“左肩”上的素数之差。
请编程求出:
第二行数中是否存在这样的若干个连续的整数,它们的和恰好是1898?
假如存在的话,又有几种这样的情况?
提示信息:
"Therearefollwingprimesinfirstrow:
"(%d).%3d,......,%d\n"
Therearefollwingprimesinfirstrow:
(1).101,......,1999
(2).89,......,1987
(3).53,......,1951
(4).3,......,1901
#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)
if(j==i)
a[k]=i;
k++;
printf("Therearefollwingprimesinfirstrow:
for(c=329;c>=0;c--)
for(b=c+1;c
if(b<330)
if((a[b]-a[c])==1898)
printf("(%d).%3d,......,%d\n",d,a[c],a[b]);
d++;
7.从键盘任意输入一个整数m,若m不是素数,则对m进行质因数分解,并将m表示为质因数从小到大顺序排列的乘积形式输出,否则输出"Itisaprimenumber"。
例如,用户输入90时,程序输出90=2*3*3*5;用户输入17时,程序输出"Itisaprimenumber"。
输入提示信息:
"Inputm:
输入格式:
输出格式:
是素数时输出"Itisaprimenumber\n"
否则输出用"%d=","%d*"
运行示例1:
Inputm:
90↙
90=2*3*3*5
运行示例2:
13↙
Itisaprimenumber
intIsPrime(intx);
voidOutputPrimeFactor(intx);
intm;
printf("Inputm:
scanf("%d",&m);
if(IsPrime(m))
printf("Itisaprimenumber\n");
printf("%d=",m);
OutputPrimeFactor(m);
intIsPrime(intx)
inti,flag=1;
intsquareRoot=sqrt(x);
if(x<=1)
flag=0;
for(i=2;i<=squareRoot&&flag;i++)
if(x%i==0)
returnflag;
voidOutputPrimeFactor(intx)
for(i=2;i{if(x%i==0){printf("%d*",i);OutputPrimeFactor(x/i);return;}}printf("%d",x);}---------------------------78.将任一整数转换为二进制形式。**输入格式要求:"%d"提示信息:"Inputnumber:"**输出格式要求:"numberofdecimalform:%d\n""it\'sbinaryform:"程序运行示例如下:Inputnumber:876numberofdecimalform:876it'sbinaryform:00000000000000000000001101101100答案:#include#includeintmain(){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答案:#includeintmain(){intn,i=1,k;printf("Pleaseinputn:");scanf("%d",&n);for(k=n+1;i;k++){for(i=2;iif(k%i==0)break;elsecontinue;if(i==k){printf("%d",k);i=0;break;}}}---------------910.如果一个正整数m的所有小于m的不同因子(包括1)加起来正好等于m本身,那么就被称它为完全数。它是指这样的一些特殊的自然数,它所有的真因子(即除了自身以外的约数)的和,恰好等于它本身。注意:1没有真因子,所以不是完全数。例如,6就是一个完全数,是因为6=1+2+3。请编写一个判断完全数的函数IsPerfect(),然后判断从键盘输入的整数是否是完全数。要求:按如下原型编写判断完全数的函数,若函数返回0,则代表不是完全数,若返回1,则代表是完全数。intIsPerfect(intx);**要求输入提示信息为:"Inputm:\n"**要求输入格式为:"%d"**要求输出格式为"%disaperfectnumber\n""%disnotaperfectnumber\n"注:不能使用指针、结构体、共用体、文件、goto、枚举类型进行编程,主函数不能使用intmain和return0。答案:#includeintIsPerfect(intx);intmain(){intm;printf("Inputm:\n");scanf("%d",&m);if(IsPerfect(m))printf("%disaperfectnumber\n",m);elseprintf("%disnotaperfectnumber\n",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.用函数编程计算两整数的最大值,在主函数中调用该函数计算并输出从键盘任意输入的两整数的最大值。**输入格式要求:"%d,%d"提示信息:"Inputa,b:"**输出格式要求:"max=%d\n"程序运行示例如下:Inputa,b:5,8max=8答案:#includeintmax(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));}---------------------------1112.利用求阶乘函数Fact(),编程计算并输出1!+2!+…+n!的值。**输入格式要求:"%u"提示信息:"Inputn(n>0):"**输出格式要求:"sum=%lu\n"答案:#includeintsum_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;}--------------------------------------1213.编程输出如下菜单界面(具体的输出则以下面提示中要求的输出格式为准):=======大学信息管理系统=======------------------------------办公室管理财务管理教务管理图书管理科研管理设备管理人事管理后勤管理退出系统------------------------------请您在上述功能中选择(0——8): 提示:输出如下格式"=======大学信息管理系统=======\n""------------------------------\n""1.办公室管理5.财务管理\n""2.教务管理6.图书管理\n""3.科研管理7.设备管理\n""4.人事管理8.后勤管理\n""0.退出系统\n""------------------------------\n""请您在上述功能中选择(0——8):\n"答案:#includemain(){
printf("%d*",i);
OutputPrimeFactor(x/i);
return;
printf("%d",x);
---------------------------7
8.
将任一整数转换为二进制形式。
"%d"提示信息:
"Inputnumber:
"numberofdecimalform:
%d\n""it\'sbinaryform:
Inputnumber:
876
numberofdecimalform:
it'sbinaryform:
00000000000000000000001101101100
inta;
charb[32];
printf("Inputnumber:
printf("numberofdecimalform:
%d\n",a);
printf("it\'sbinaryform:
printf("%s\n",itoa(a,b,2));
---------------------------8
9.
求自然数n最近的素数k,k>n。
***输入提示信息**:
"Inputn:
***输入数据格式**:
***输出数据格式**:
示例
输入:
257
输出:
Pleaseinputn:
263
intn,i=1,k;
printf("Pleaseinputn:
scanf("%d",&n);
for(k=n+1;i;k++)
for(i=2;iif(k%i==0)break;elsecontinue;if(i==k){printf("%d",k);i=0;break;}}}---------------910.如果一个正整数m的所有小于m的不同因子(包括1)加起来正好等于m本身,那么就被称它为完全数。它是指这样的一些特殊的自然数,它所有的真因子(即除了自身以外的约数)的和,恰好等于它本身。注意:1没有真因子,所以不是完全数。例如,6就是一个完全数,是因为6=1+2+3。请编写一个判断完全数的函数IsPerfect(),然后判断从键盘输入的整数是否是完全数。要求:按如下原型编写判断完全数的函数,若函数返回0,则代表不是完全数,若返回1,则代表是完全数。intIsPerfect(intx);**要求输入提示信息为:"Inputm:\n"**要求输入格式为:"%d"**要求输出格式为"%disaperfectnumber\n""%disnotaperfectnumber\n"注:不能使用指针、结构体、共用体、文件、goto、枚举类型进行编程,主函数不能使用intmain和return0。答案:#includeintIsPerfect(intx);intmain(){intm;printf("Inputm:\n");scanf("%d",&m);if(IsPerfect(m))printf("%disaperfectnumber\n",m);elseprintf("%disnotaperfectnumber\n",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.用函数编程计算两整数的最大值,在主函数中调用该函数计算并输出从键盘任意输入的两整数的最大值。**输入格式要求:"%d,%d"提示信息:"Inputa,b:"**输出格式要求:"max=%d\n"程序运行示例如下:Inputa,b:5,8max=8答案:#includeintmax(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));}---------------------------1112.利用求阶乘函数Fact(),编程计算并输出1!+2!+…+n!的值。**输入格式要求:"%u"提示信息:"Inputn(n>0):"**输出格式要求:"sum=%lu\n"答案:#includeintsum_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;}--------------------------------------1213.编程输出如下菜单界面(具体的输出则以下面提示中要求的输出格式为准):=======大学信息管理系统=======------------------------------办公室管理财务管理教务管理图书管理科研管理设备管理人事管理后勤管理退出系统------------------------------请您在上述功能中选择(0——8): 提示:输出如下格式"=======大学信息管理系统=======\n""------------------------------\n""1.办公室管理5.财务管理\n""2.教务管理6.图书管理\n""3.科研管理7.设备管理\n""4.人事管理8.后勤管理\n""0.退出系统\n""------------------------------\n""请您在上述功能中选择(0——8):\n"答案:#includemain(){
if(k%i==0)
if(i==k)
printf("%d",k);
i=0;
---------------9
10.
如果一个正整数m的所有小于m的不同因子(包括1)加起来正好等于m本身,那么就被称它为完全数。
它是指这样的一些特殊的自然数,它所有的真因子(即除了自身以外的约数)的和,恰好等于它本身。
注意:
1没有真因子,所以不是完全数。
例如,6就是一个完全数,是因为6=1+2+3。
请编写一个判断完全数的函数IsPerfect(),然后判断从键盘输入的整数是否是完全数。
要求:
按如下原型编写判断完全数的函数,若函数返回0,则代表不是完全数,若返回1,则代表是完全数。
intIsPerfect(intx);
**要求输出格式为
"%disaperfectnumber\n"
"%disnotaperfectnumber\n"
不能使用指针、结构体、共用体、文件、goto、枚举类型进行编程,主函数不能使用intmain和return0。
if(IsPerfect(m))
printf("%disaperfectnumber\n",m);
printf("%disnotaperfectnumber\n",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.用函数编程计算两整数的最大值,在主函数中调用该函数计算并输出从键盘任意输入的两整数的最大值。**输入格式要求:"%d,%d"提示信息:"Inputa,b:"**输出格式要求:"max=%d\n"程序运行示例如下:Inputa,b:5,8max=8答案:#includeintmax(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));}---------------------------1112.利用求阶乘函数Fact(),编程计算并输出1!+2!+…+n!的值。**输入格式要求:"%u"提示信息:"Inputn(n>0):"**输出格式要求:"sum=%lu\n"答案:#includeintsum_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;}--------------------------------------1213.编程输出如下菜单界面(具体的输出则以下面提示中要求的输出格式为准):=======大学信息管理系统=======------------------------------办公室管理财务管理教务管理图书管理科研管理设备管理人事管理后勤管理退出系统------------------------------请您在上述功能中选择(0——8): 提示:输出如下格式"=======大学信息管理系统=======\n""------------------------------\n""1.办公室管理5.财务管理\n""2.教务管理6.图书管理\n""3.科研管理7.设备管理\n""4.人事管理8.后勤管理\n""0.退出系统\n""------------------------------\n""请您在上述功能中选择(0——8):\n"答案:#includemain(){
b=b+i;
if(b==x)
---------------------10
11.
用函数编程计算两整数的最大值,在主函数中调用该函数计算并输出从键盘任意输入的两整数的最大值。
"%d,%d"提示信息:
"Inputa,b:
"max=%d\n"
Inputa,b:
5,8
max=8
intmax(inta,intb)
if(a>=b)
returna;
returnb;
inta=0,b=0;
printf("Inputa,b:
scanf("%d,%d",&a,&b);
printf("max=%d\n",max(a,b));
---------------------------11
12.
利用求阶乘函数Fact(),编程计算并输出1!
+2!
+…+n!
的值。
"%u"提示信息:
"Inputn(n>0):
"sum=%lu\n"
intsum_s(inti);
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)
for(a=1;i;i--)
if(i>1)
a=a*i;
a=a*1;
--------------------------------------12
13.
编程输出如下菜单界面(具体的输出则以下面提示中要求的输出格式为准):
=======大学信息管理系统=======
------------------------------
办公室管理财务管理
教务管理图书管理
科研管理设备管理
人事管理后勤管理
退出系统
请您在上述功能中选择(0——8):
提示:
输出如下格式
"=======大学信息管理系统=======\n"
"------------------------------\n"
"1.办公室管理5.财务管理\n"
"2.教务管理6.图书管理\n"
"3.科研管理7.设备管理\n"
"4.人事管理8.后勤管理\n"
"0.退出系统\n"
"请您在上述功能中选择(0——8):
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1