C++编程练习题及答案_第1页
C++编程练习题及答案_第2页
C++编程练习题及答案_第3页
C++编程练习题及答案_第4页
C++编程练习题及答案_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、盛年不重来,一日难再晨.及时宜自勉,岁月不待人.一、简单问题:1 .编程求以下式子的值,y = 1-1/2+1/3-1/4+1/99-1/100并将结果输出,格式为:1-1/2+1/3-1/4+1/99-1/100 =表达式的值publicclassPorg publicstatic void main(String口 args) double sum=0; for (double i=1;i<=100;i+) sum=sum+Math. pow (-1, i-1)*(1/i); System. out .print(" 1-1/2+1/3-1/4+ -+1/99 -1/100

2、="+sum); 2 .请编程实现:由键盘输入的任意一组字符,统计其中大写字母的个数m和小写字母的个数n,并输出nn中的较大者.import java.util.Scanner; public class Prog2 public static void main(String口 args) int m=0,n=0; Scanner cin= new Scanner(System. in ); String str=cin.nextLine(); for (int i=0;i<str.length();i+) if (str.charAt(i)>'A'&a

3、mp;&str.charAt(i)<='Z')m+; elsen+; if (m>n) System. out .println(m); elseSystem. out .println(n); |3 .编程,求全部水仙花数.所谓水仙花数是指一个三位数,其各位数字立方的和等于该数.如:153 = 13+ 5 3+ 33.public class Prog3 public static void main(String args) int a,b,c;for (a=1;a<=9;a+) for (b=0;b<=9;b+) for (c=0;c<

4、;=9;c+) if (a*100+b*10+c=a*a*a+b*b*b+c*c*c) System. out .println(a*100+b*10+c); 4 .请编制程序判断输入的正整数是否既是5又是7的整倍数.假设是,那么输出 yes;否那么输出no.import java.util.Scanner;publicclassProg4 publicstatic voidmain(String args) Scanner cin= new Scanner(System. in ); int i=cin.nextInt();if ( i%5=0&&i%7=0) System.

5、 out .print("yes");else System. out .print("no");90分以上为A', 8089分5 .请编程实现:对于给定的一个百分制成绩,输出相应的五分制成绩.设: 为B', 7079 分为C', 6069 分为D', 60 分以下为E'. import java.util.Scanner;publicclassProg5 publicstatic void main(String args) Scanner cin= new Scanner(System. in );int m=

6、cin.nextInt();if (m>=60&&m<=69)System. out .print("D");elseif (m>=70&&m<=79)System. out .print("C");elseif (m>=80&&m<=89)System. out .print("B");elseif (m>=90) System. out .print("A");else System. out .print("E

7、"); 6 .输入一行字符,将其中的字母变成其后续的第3个字母,输出.例:a-d, x - a ; y - b ;编程实现.import java.util.Scanner;publicclassProg6 publicstatic voidmain(String args) char 口 zimu= newchar 口'a','b','c','d','e','f,'g','h','i','j',k,T,'m',

8、9;n','o','p','q',' r','s','t','u','v',W,'x',V'z','a','b','c'Scanner cin= new Scanner(System. in );String str=cin.nextLine();for (int j=0;j<str.length();j+) for (int i=0;i<29;i+) if (str.

9、charAt(j)=zimui) System. out .println(zimui+3); break ; 7 .编写程序,输入任意一个17之间的整数,将他们转换成对应的英文单词.例如:1转换成Monday, 7转换成Sunday.import java.util.Scanner;publicclassProg7 publicstatic voidmain(String args) System. out .print("请输入任意一个17之间的整数n");Scanner cin= new Scanner(System. in ); int m=cin.nextInt(

10、); if (m=1)System. out .print("Monday"); elseif (m=2) System. out .print("Tuesday");else if (m=3)System. out .print("Wensday");elseif (m=4)System. out .print("Thuesday");elseif (m=5) System. out .print("Friday");elseif (m=6)System. out .print("S

11、aturday");else System. out .print("Sunday"); 8 .输入三角形的三边 a, b, c,判断能否构成三角形.假设能,计算面积import java.util.Scanner;publicclassProg8 publicstatic void main(String args) System. out .print("请输入三个整数 n");Scanner cin= new Scanner(System. in );int a=cin.nextInt();int b=cin.nextInt();int

12、c=cin.nextInt();if (a+b<c|a+c<b|c+b<a)System. out .print("不能构成三角形 n");elseint l=a+b+c;System. out .print(l); |9 .编程序,输入 a,b,c ,求方程ax 2+bx+c=0的解.import java.util.Scanner;publicclassProg9 publicstatic void main(String args) System. out .print("请输入三个整数 n");Scanner cin= new

13、Scanner(System. in );int a=cin.nextInt();int b=cin.nextInt();int c=cin.nextInt();if (a=0)(System. out .println(-c/b);) else if (b*b-4*a*c>=0)(doublex1=(-b+Math.pow(1/2, b*b-4*a*c)/(2*a);doublex2=(-b-Math.pow(1/2, b*b-4*a*c)/(2*a);System.out .println(x1);System.out .print(x2);)else System. out .pr

14、int(" 无解");)10.计算出前20项fibonacci数列,要求一彳T打印5个数.一般而言,兔子在出生两个月后,就有繁殖水平,一对兔子每个月能生出一对小兔子来.如果所有兔都不死,那么一年以后可以繁殖多少对兔子?我们不妨拿新出生的一对小兔子分析一下:第一个月小兔子没有繁殖水平,所以还是一对;两个月后,生下一对小兔总数共有两对;三个月以后,老兔子又生下一对,由于小兔子还没有繁殖水平,所以一共是三对依次类推可以列出下表:经过月数0123456789101112幼仔对数01123581321345589144成兔对数1123581321345589144233总体对数123

15、581321345589144233377import java.util.Scanner;public class Prog10 public static void main(String args) Scanner cin= new Scanner(System. in );int n=cin.nextInt();int a=0,b=1,c=1;AAAAAAAAif (n=1)System. out .println(a );System.out .println(b );System.out .println(c );else for (int i=2;i<=n;i+) a=b;

16、b=c;c=a+b;幼崽数"+a+"成年兔子书"+ b+" 总数"+ c);System. out .println(" 11.输出10010000之间个位数为3的所有素数.publicclassProg11 publicstatic void main(String口 args) for (int i=103;i<10000;i=i+10) boolean flag= true ; for (int j=2;j<i/2;j+) if (i%j=0) flag=false ; break ; if (flag= true

17、)System. out .println(i); 12 .百钱买百鸡问题:公鸡每只 5元,母鸡每只3元,小鸡3只一元,问一百元买一百只鸡有几种买 法.public class Prog12 public static void main(String args) int m=0;for (int a=0;a<100;a+) for (int b=0;b<100;b+) for (int c=0;c<100;c+)if (5*a+3*b+1/3*c=100&&a+b+c=100) m+;System. out .print("一百元买一百只鸡有 &q

18、uot;+m+"种买法");13 .请编制程序要求输入整数a和b,假设a2+b2大于100,那么输出a2+b2百位以上的数字,否那么输出两数之和.import java.util.Scanner;public class Prog13 public static void main(String口 args) System. out .print("请输入两个整数 n");Scanner cin= new Scanner(System. in );int a=cin.nextInt();int b=cin.nextInt(); if (a*a+b*b&g

19、t;100) System. out .print(a*a+b*b);. elseSystem. out .print(a+b); |14 .编程实现:对键盘输入的任意一个四位正整数,计算各位数字平方和.如:2345 ,贝U:计算 22+32+42+52 import java.util.Scanner;public class Prog14 public static void main(String args) System. out .print("请输入任意一个四位正整数n");int sum=0;Scanner cin= new Scanner(System. i

20、n );int a=cin.nextInt();sum=(a/1000*a/1000)+(a/100)%10*(a/100)%10)+(a/10%100%10)*(a/10%100%10) +(a%10)*(a%10);System. out .print(sum);)15 .有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完,请编程public class Prog15 public static void main(String args) int m=0,sum=1020;do sum=sum/2-2;m+; while (sum>=0);Syste

21、m. out .print(m+"天以后能卖完");16 .编程,输出200以内所有完全平方数C (满足C2=A2+B2)及其个数.public class Prog16 public static void main(String args) int m=0;for (int C=1;C<200;C+) for ( int A=1;A<=200;A+) for (int B=1;B<=200;B+) if (A*A+B*B=C*C)System. out .println(C);A=201;B=201; m+;)System. out .println(

22、" 个数为:"+m); )17 .设N是一个四位数,它的9倍恰好是其反序数(例如:123的反序数是321),编程,输出所有满足条件的N.package easy;public class The17 static long s,M;public static void main(String口 args) for(long N=1009;N<=1109;N=N+10)M=9*N;s=0;while(M>0) s=s*10+M%10; M=M/10;) if(N=s) System.out.println(s);)18 .编程,输出555555的约数中最大的三位数

23、.package easy;public class The18th public static void main(String args) double a=555555;long b=0;/long口 yueShu=new 10ng555555;for(long i=1;i<=555555;i+)if(a%i=0&&i>99&&i<1000) while(i>b) b=i;) ) ) System.out.println(b);)19 .编程,输出所有个位数为6且能被31整除的五位数及其个数.package easy;public

24、class The19th public static void main(String口 args) for(long i=10006;i<=99996;i=i+10)if(i%31=0)System.out.println(i); )20 .编写程序,输入两个整数,和+、-、*、/、之中的任意一个运算符,输出计算结果package easy;/import java.util.InputMismatchException;import java.util.Scanner;public class The20th static Scanner cin=new Scanner(Syste

25、m.in); public static void main(String口 args) Scanner cin1=new Scanner(System.in);int d1,d2;String str=new String("");d1=cin.nextInt();d2=cin.nextInt();System.out.println(d1);System.out.println(d2);str=cin1.nextLine();/System.out.println(str);/System.out.println(str.charAt(0);switch(str.cha

26、rAt(0)case '+':System.out.println(d1+d2); break;)case '-':System.out.println(d1-d2);break;)case '*':System.out.println(d1*d2);break;case '/':System.out.println(d1/d2); break;/*static int add(int a,int b) return a+b;static int sub(int a,int b) return a-b;static int mul

27、tiply(int a,int b) return a*b;static int divide(int a,int b) return (int)(a/b);*/由键盘输入.21 .计算:1+1/ (1+2) +1/ (1+2+3) + 1/ (1+2+ - +n) , n package easy;import java.util.Scanner;public class The21th public static void main(String口 args) double sum=0,div=0;Scanner cin=new Scanner(System.in);int n=cin.n

28、extInt();for(int i=1;i<=n;i+)div=div+i;System.out.println("1/"+div);sum=sum+1/div;System.out.println(sum);22 .编程计算:1*2*3+3*4*5+ +99*100*101 的值.package easy;public class The22th public static void main(String args) long sum=0;for(int i=1;i+2<=101;i=i+2)sum=sum+i*(i+1)*(i+2);System.out

29、.println(sum);二、比拟简单问题:1 .编一个函数 GCD求两个无符号整数的最大公约数.主函数输入两个正整数m和n,调用GCD求出m和n的最大公约数和最小公倍数.并输出.package moreEasy;import java.util.Scanner;public class The1th public static void main(String args) Scanner cin=new Scanner(System.in);int m=cin.nextInt();int n=cin.nextInt();System.out.println(m+"和"+

30、n+的最大公约数为:"+GCD(m,n);System.out.println(m+"和"+n+的最小公倍数为:"+m*n/GCD(m,n);public static int GCD(int a,int b) int r=0;for(int i=1;i<=a&&i<=b;i+)if(a%i=0&&b%i=0&&r<i)r=i;/System.out.println(r);return r;2 .请编程实现:建立一个4*4的二维整型数组,求对角线元素的和.package moreEasy;

31、import java.util.Scanner;public class The2th public static void main(String args) int ewsz=new int44;Scanner cin=new Scanner(System.in);for(int i=0;i<ewsz.length;i+)for(int j=0;j<ewszi.length;j+) ewszij=cin.nextInt();/*for(int i=0;i<ewsz.length;i+)for(int j=0;j<ewszi.length;j+)System.out

32、.print(ewszij);if(j=3)System.out.println("");*/int sum=0;for(int i=0;i<ewsz.length;i+) sum=sum+ewszii;System.out.println(sum);3 .写一个判断素数的函数prime ,在主函数中输入10个整数,调用prime ,输出这1 0个整数中的素数的累加和.package moreEasy;import java.util.Scanner;public class The3th public static void main(String args) in

33、t shu=new int10;int sum=0;Scanner cin=new Scanner(System.in);for(int i=0;i<shu.length;i+)shui=cin.nextInt();for(int i=0;i<shu.length;i+)if(prime(shui)sum=sum+shui;System.out.println(sum);public static boolean prime(int a)/double b=Math.pow(a, 0.5);for(int i=2;i<a;i+)if(a%i=0|a=1) return fal

34、se;return true; )4 .从键盘上输入假设干学生的一门课成绩,存入一个数组中,当输入负数时结束输入.输出最高成绩和最低成绩及相应的序号.package moreEasy;import java.util.Scanner;public class The4th public static void main(String args) int n,n1=0,max,min;Scanner cin=new Scanner(System.in);System.out.print("学生人数");n=cin.nextInt();int chengJi=new intn;

35、for(int i=0;i<n;i+)chengJii=cin.nextInt(); ) max=chengJi0;min=chengJi0;for(int j=0;j<chengJi.length;j+)if(max<chengJij)max=chengJij;n=j;)if(min>chengJij)min=chengJij;n1=j; )System.out.println("max="+max+" "+n);System.out.println("min="+min+" "+n1);

36、 )5 .编程计算:1!+2!+3!+20!,并将结果输出.输出格式:1!+2!+3!+20!=表达式的值package moreEasy;public class The5th public static void main(String args) long sum=0;for(int i=1;i<=20;i+)long r=1;for(int j=1;j<=i;j+)r*=j; )sum=sum+r;/System.out.print(" r="+r); if(i<20)System.out.print(i+!+");elseSystem.

37、out.print(i+"!="+sum); )6 .有一个3 *4的矩阵,编程实现:找出该矩阵中每行元素的最大值,存入一个一维数组中.输出原始矩阵和结果矩阵.7 .将假设干个整数放到一维数组中,找出该数组中的最大值和它的下标.然后将它和数组中的最前面的元素对换.不明白package moreEasy;import java.util.Scanner;public class The7th public static void main(String口 args) int array=new int10;Scanner cin=new Scanner(System.in);

38、System.out.print("数组长度:");int n=cin.nextInt();for(int i=0;i<n;i+)arrayi=cin.nextInt();)int min=array0;int max=array0;/System.out.println(min);/System.out.println(max);for(int i=0;i<array.length;i+)if(arrayi<min)min=arrayi;if(max<arrayi)max=arrayi;)System.out.println(min);System

39、.out.println(max); )8 .编写一个函数converse ,将一维数组中的数逆序存放,不允许使用辅助数组.主函数输入原始数据, 调用converse ,实现逆置.并将原数组和逆置后的数组输出package moreEasy;import java.util.Scanner;public class The8th public static void main(String args) converse();public static void converse()int ar=new int10;Scanner cin=new Scanner(System.in);for(i

40、nt i=0;i<ar.length;i+)ari=cin.nextInt();/if(ari=-1)/break;for(int j=0;j<ar.length;j+)System.out.print(arj);System.out.println("");for(int i=0;i<ar.length/2;i+)int a=arar.length-i-1;arar.length-i-1=ari;ari=a;for(int j=0;j<ar.length;j+)System.out.print(arj);其它字符不变.主函数输入一个字符串,调9 .

41、编写函数,将给定的字符串的大写字母转变成小写字母; 用该函数对其进行转换,分别输出原串和转换之后的串.package moreEasy;import java.util.Scanner;public class The9th static String str=""public static void main(String args) String str=""Scanner cin=new Scanner(System.in);str=cin.nextLine();zhuanHuan(str);public static void zhuanHuan

42、(String str1)str=str1;str=str.toLowerCase();System.out.println(str);10 .编写一个函数,将字符数组a中的全部字符复制到字符数组b中.不要使用strcpy函数.主函数输入任意一个字符串,调该函数,复制出另一个字符串.将两个串输出.package moreEasy;import java.util.Scanner;public class The10th public static void main(String args) Scanner cin=new Scanner(System.in);String str=cin.n

43、extLine();char aa=new charstr.length();char bb=new charstr.length();for(int i=0;i<aa.length;i+)aai=str.charAt(i);copy(aa,bb);for(int i=0;i<aa.length;i+) System.out.print(aai+"");System.out.println("");for(int i=0;i<aa.length;i+)System.out.print(bbi+"");public s

44、tatic void copy(char a,char b)for(int i=0;i<a.length;i+) bi=ai;11 .判断一个N*N的矩阵是否为对称矩阵.将原矩阵输出,判断结果输出.package moreEasy;import java.util.Scanner;public class The11th public static void main(String args) Scanner cin=new Scanner(System.in);int n=cin.nextInt();int count=0;int口口 duiCheng=new intnn;for(in

45、t i=0;i<duiCheng.length;i+)for(int j=0;j<duiChengi.length;j+) duiChengij=cin.nextInt();for(int i=0;i<duiCheng.length;i+)for(int j=0;j<duiChengi.length;j+)if(j=n-1)System.out.print(duiChengij+"n");elseSystem.out.print(duiChengij+"");for(int i=0;i<duiCheng.length;i+)

46、for(int j=0;j<duiChengi.length;j+) if(duiChengij=duiChengji) count+;if(count=n*n)System.out.println("对称矢I阵");elseSystem.out.println("非对称矩阵");12 .给出年、月、日,计算该日是该年的第几天?package moreEasy;import java.util.Scanner;public class The12th public static void main(String args) int n=0;Scan

47、ner cin=new Scanner(System.in);int y=cin.nextInt();System.out.println("年");int m=cin.nextInt();System.out.println("月");int d=cin.nextInt();System.out.println("日");if(y%4=0&&y%100!=0|y%400=0)switch(m)case 1:n=d;break;case 2:n=d+31;break;case 3:n=d+31+29;break;cas

48、e 4:n=d+31+29+31;break;case 5:n=d+31+29+31+30;break;case 6:n=d+31+29+31+30+31;break;case 7:n=d+31+29+31+30+31+30;break;case 8:n=d+31+29+31+30+31+30+31;break;case 9:n=d+31+29+31+30+31+30+31+31;break;case 10:n=d+31+29+31+30+31+30+31+31+30;break;case 11:n=d+31+29+31+30+31+30+31+31+30+31;break;case 12:n

49、=d+31+29+31+30+31+30+31+31+30+31+30; break;elseswitch(m)case 1:n=d;break;case 2:n=d+31;break;case 3:n=d+31+28;break;case 4:n=d+31+28+31;break;case 5:n=d+31+28+31+30;break;case 6:n=d+31+28+31+30+31;break;case 7:n=d+31+28+31+30+31+30;break;case 8:n=d+31+28+31+30+31+30+31;break;case 9:n=d+31+28+31+30+31+30+31+31;break;case 10:n=d+31+28+31+30+31+30+31+31+30;break;case 11:n=d+31+28+31+30+31+30+31+31+30+31;break;case 12:n=d+31+28+31+30+31+30+31+31+30+31+30;break;System.out.println(n);13 .编写一个子函数fun ,求两个矩阵的乘积矩阵;主程序中输入两个矩阵的阶数和元素值,调用 fun , 求出乘积矩阵,在主程序中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论