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

下载本文档

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

文档简介

一、简单问题:1. 编程求下列式子的值, 1-1/2+1/3-1/4+1/99-1/100 并将结果输出,格式为: 1-1/2+1/3-1/4+1/99-1/100 = 表达式的值 public class Porg public static 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=+sum);2. 请编程实现:由键盘输入的任意一组字符,统计其中大写字母的个数m和小写字母的个数n,并输出m、n中的较大者。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;iA&str.charAt(i)n)System.out.println(m);elseSystem.out.println(n);3. 编程,求全部水仙花数。所谓水仙花数是指一个三位数,其各位数字立方的和等于该数。如:153 = 13 + 53+ 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=60&m=70&m=80&m=90)System.out.print(A);else System.out.print(E);6. 输入一行字符,将其中的字母变成其后续的第3个字母,输出。例:ad,x a;y b;编程实现。import java.util.Scanner;public class Prog6 public static void main(String args) char zimu=new chara,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,a,b,c;Scanner cin=new Scanner(System.in);String str=cin.nextLine();for(int j=0;jstr.length();j+)for(int i=0;i29;i+)if(str.charAt(j)=zimui)System.out.println(zimui+3); break;7. 编写程序,输入任意一个17之间的整数,将他们转换成对应的英文单词. 例如:1转换成Monday,7转换成Sunday.import java.util.Scanner;public class Prog7 public static void main(String args) System.out.print(请输入任意一个17之间的整数n);Scanner cin=new Scanner(System.in);int m=cin.nextInt(); if(m=1) System.out.print(Monday); else if(m=2) System.out.print(Tuesday); else if(m=3) System.out.print(Wensday); else if(m=4) System.out.print(Thuesday); else if(m=5) System.out.print(Friday); else if(m=6) System.out.print(Saturday); else System.out.print(Sunday);8. 输入三角形的三边a, b, c,判断能否构成三角形. 若能,计算面积.import java.util.Scanner;public class Prog8 public static void main(String args) System.out.print(请输入三个整数n);Scanner cin=new Scanner(System.in);int a=cin.nextInt();int b=cin.nextInt();int c=cin.nextInt();if(a+bc|a+cb|c+b=0) double x1=(-b+Math.pow(1/2, b*b-4*a*c)/(2*a); double x2=(-b-Math.pow(1/2, b*b-4*a*c)/(2*a); System.out.println(x1); System.out.print(x2);else System.out.print(无解);10.计算出前20项 fibonacci 数列, 要求一行打印5个数. 一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔都不死,那么一年以后可以繁殖多少对兔子? 我们不妨拿新出生的一对小兔子分析一下: 第一个月小兔子没有繁殖能力,所以还是一对; 两个月后,生下一对小兔总数共有两对; 三个月以后,老兔子又生下一对,因为小兔子还没有繁殖能力,所以一共是三对; 依次类推可以列出下表: 经过月数0123456789101112幼仔对数01123581321345589144成兔对数1123581321345589144233总体对数123581321345589144233377import 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;if(n=1)System.out.println(a );System.out.println(b );System.out.println(c );else for(int i=2;i=n;i+) a=b; b=c; c=a+b; System.out.println(幼崽数+a+成年兔子书+ b+总数+ c);11输出10010000之间个位数为3的所有素数。public class Prog11 public static void main(String args) for(int i=103;i10000;i=i+10) boolean flag=true; for(int j=2;ji/2;j+) if(i%j=0) flag=false;break; if(flag=true)System.out.println(i); 12. 百钱买百鸡问题:公鸡每只 5 元,母鸡每只 3 元,小鸡 3 只一元,问一百元买一百只鸡有几种买法. public class Prog12 public static void main(String args) int m=0;for(int a=0;a100;a+)for(int b=0;b100;b+)for(int c=0;c100)System.out.print(a*a+b*b);elseSystem.out.print(a+b);14. 编程实现:对键盘输入的任意一个四位正整数,计算各位数字平方和。如:2345 ,则:计算22+32+42+52import java.util.Scanner;public class Prog14 public static void main(String args) System.out.print(请输入任意一个四位正整数n);int sum=0;Scanner cin=new Scanner(System.in);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;dosum=sum/2-2;m+; while(sum=0);System.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;C200;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(个数为:+m);17. 设是一个四位数,它的倍恰好是其反序数(例如:123的反序数是321),编程,输出所有满足条件的。package easy;public class The17 static long s,M;public static void main(String args) for(long N=1009;N0) s=s*10+M%10; M=M/10;if(N=s) System.out.println(s);18. 编程,输出555555的约数中最大的三位数。package easy;public class The18th public static void main(String args) double a=555555;long b=0;/long yueShu=new long555555;for(long i=1;i99&ib)b=i;System.out.println(b);19. 编程,输出所有个位数为6且能被31整除的五位数及其个数。package easy;public 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(System.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.charAt(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 multiply(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.nextInt();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.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+和+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&ri)r=i; /System.out.println(r);return r; 2. 请编程实现:建立一个4*4的二维整型数组,求对角线元素的和。package moreEasy;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;iewsz.length;i+)for(int j=0;jewszi.length;j+)ewszij=cin.nextInt();/*for(int i=0;iewsz.length;i+)for(int j=0;jewszi.length;j+)System.out.print(ewszij);if(j=3)System.out.println(); */int sum=0;for(int i=0;iewsz.length;i+)sum=sum+ewszii;System.out.println(sum);3. 写一个判断素数的函数prime,在主函数中输入10个整数,调用prime,输出这0个整数中的素数的累加和。package moreEasy;import java.util.Scanner;public class The3th public static void main(String args) int shu=new int10;int sum=0;Scanner cin=new Scanner(System.in);for(int i=0;ishu.length;i+)shui=cin.nextInt();for(int i=0;ishu.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;ia;i+)if(a%i=0|a=1) return false;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;for(int i=0;in;i+)chengJii=cin.nextInt();max=chengJi0;min=chengJi0;for(int j=0;jchengJi.length;j+)if(maxchengJij)min=chengJij; n1=j;System.out.println(max=+max+ +n);System.out.println(min=+min+ +n1);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(i20) System.out.print(i+!+);elseSystem.out.print(i+!=+sum);6. 有一个 * 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);System.out.print(数组长度:);int n=cin.nextInt();for(int i=0;in;i+)arrayi=cin.nextInt();int min=array0;int max=array0;/System.out.println(min);/System.out.println(max);for(int i=0;iarray.length;i+)if(arrayimin)min=arrayi;if(maxarrayi)max=arrayi;System.out.println(min);System.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(int i=0;iar.length;i+)ari=cin.nextInt();/if(ari=-1)/break;for(int j=0;jar.length;j+)System.out.print(arj);System.out.println();for(int i=0;iar.length/2;i+)int a=arar.length-i-1;arar.length-i-1=ari;ari=a; for(int j=0;jar.length;j+)System.out.print(arj);9. 编写函数,将给定的字符串的大写字母转变成小写字母; 其它字符不变。主函数输入一个字符串,调用该函数对其进行转换,分别输出原串和转换之后的串。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(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.nextLine();char aa=new charstr.length();char bb=new charstr.length();for(int i=0;iaa.length;i+)aai=str.charAt(i);copy(aa,bb);for(int i=0;iaa.length;i+)System.out.print(aai+ );System.out.println();for(int i=0;iaa.length;i+) System.out.print(bbi+ );public static void copy(char a,char b)for(int i=0;ia.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(int i=0;iduiCheng.length;i+)for(int j=0;jduiChengi.length;j+)duiChengij=cin.nextInt();for(int i=0;iduiCheng.length;i+) for(int j=0;jduiChengi.length;j+)if(j=n-1)System.out.print(duiChengij+n);else System.out.print(duiChengij+ );for(int i=0;iduiCheng.length;i+)for(int j=0;jduiChengi.length;j+)if(duiChengij=duiChengji)count+;if(count=n*n)System.out.println(对称矩阵);elseSystem.out.println(非对称矩阵);12. 给出年、月、日, 计算该日是该年的第几天?package moreEasy;import java.util.Scanner;public class The12th public static void main(String args) int n=0;Scanner 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;case 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=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,求出乘积矩阵,在主程序中将原矩阵和乘积矩阵输出。package moreEasy;import java.util.Scanner;public class The13th public static void ma

温馨提示

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

评论

0/150

提交评论