C++编程练习题大全(带答案)

上传人:xian****hua 文档编号:155527913 上传时间:2022-09-23 格式:DOC 页数:407 大小:1.38MB
返回 下载 相关 举报
C++编程练习题大全(带答案)_第1页
第1页 / 共407页
C++编程练习题大全(带答案)_第2页
第2页 / 共407页
C++编程练习题大全(带答案)_第3页
第3页 / 共407页
点击查看更多>>
资源描述
一、简单问题: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);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 main(String args) Scanner cin=new Scanner(System.in);Scanner cin1=new Scanner(System.in);System.out.print(阶数:);int n1=cin.nextInt();/int n2=cin.nextInt();int aa=new intn1n1;int bb=new intn1n1;System.out.println(输入第一个矩阵);for(int i=0;in1;i+)for(int j=0;jn1;j+)aaij=cin.nextInt();System.out.println(输入第二个矩阵);for(int i=0;in1;i+)for(int j=0;jn1;j+)bbij=cin1.nextInt();fun(aa,bb);for(int i=0;iaa.length;i+)for(int j=0;jaai.length;j+)if(j=n1-1) System.out.print(aaij+n);elseSystem.out.print(aaij);public static void fun(int a,int b)for(int i=0;ia.length;i+)for(int j=0;jai.length;j+)aij=aij*bij;14. 打印出如图所示的杨辉三角,要求打印出n行,n由键盘输入. 11 11 2 11 3 3 1 package moreEasy;import java.util.Scanner;/有毛病,未解决public class The14th /* * param args */public static void main(String args) Scanner cin=new Scanner(System.in);int n=cin.nextInt();int yhsj=new intnn;yhsj00=1;for(int i=1;iyhsj.length;i+)yhsji0=1;for(int j=1;jyhsji.length;j+)yhsjij=yhsji-1j-1+yhsji-1j;yhsjiyhsji.length-1=1;for(int i=0;iyhsj.length;i+)for(int j=0;ji;j+)System.out.
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!