C++编程练习题及答案.doc
《C++编程练习题及答案.doc》由会员分享,可在线阅读,更多相关《C++编程练习题及答案.doc(22页珍藏版)》请在咨信网上搜索。
一、简单问题: 1. 编程求下列式子的值, y=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;i<str.length();i++) { if(str.charAt(i)>'A'&&str.charAt(i)<='Z') m++; else n++; } if(m>n) { System.out.println(m); } else System.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<=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; public class Prog4 { public static void main(String[] args) { Scanner cin=new Scanner(System.in); int i=cin.nextInt(); if( i%5==0&&i%7==0) System.out.print("yes"); else System.out.print("no"); } } 5. 请编程实现:对于给定的一个百分制成绩,输出相应的五分制成绩。设:90分以上为‘A’,80—89分为‘B’,70—79分为‘C’,60—69分为‘D’,60分以下为‘E’ 。 import java.util.Scanner; public class Prog5 { public static void main(String[] args) { Scanner cin=new Scanner(System.in); int m=cin.nextInt(); if(m>=60&&m<=69) System.out.print("D"); else if(m>=70&&m<=79) System.out.print("C"); else if(m>=80&&m<=89) System.out.print("B"); else if(m>=90) System.out.print("A"); else System.out.print("E"); } } 6. 输入一行字符,将其中的字母变成其后续的第3个字母,输出。例:a→d,x → a;y → b;编程实现。 import java.util.Scanner; public class Prog6 { public static void main(String[] args) { char[] zimu=new char[]{'a','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;j<str.length();j++) { for(int i=0;i<29;i++) { if(str.charAt(j)==zimu[i]) { System.out.println(zimu[i+3]); break; } } } 7. 编写程序,输入任意一个1~7之间的整数,将他们转换成对应的英文单词. 例如:1转换成Monday,7转换成Sunday. import java.util.Scanner; public class Prog7 { public static void main(String[] args) { System.out.print("请输入任意一个1~7之间的整数\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+b<c||a+c<b||c+b<a) { System.out.print("不能构成三角形\n"); } else { int l=a+b+c; System.out.print(l); } } } 9. 编程序,输入a,b,c,求方程 ax2+bx+c=0 的解。 import java.util.Scanner; public class Prog9 { 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==0) { System.out.println(-c/b); } else if(b*b-4*a*c>=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个数. 一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔都不死,那么一年以后可以繁殖多少对兔子? 我们不妨拿新出生的一对小兔子分析一下: 第一个月小兔子没有繁殖能力,所以还是一对; 两个月后,生下一对小兔总数共有两对; 三个月以后,老兔子又生下一对,因为小兔子还没有繁殖能力,所以一共是三对; …… 依次类推可以列出下表: 经过月数 0 1 2 3 4 5 6 7 8 9 10 11 12 幼仔对数 0 1 1 2 3 5 8 13 21 34 55 89 144 成兔对数 1 1 2 3 5 8 13 21 34 55 89 144 233 总体对数 1 2 3 5 8 13 21 34 55 89 144 233 377 import 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.输出100~10000之间个位数为3的所有素数。 public class Prog11 { public static 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){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("一百元买一百只鸡有"+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>100) { System.out.print(a*a+b*b); } else System.out.print(a+b); } } 14. 编程实现:对键盘输入的任意一个四位正整数,计算各位数字平方和。 如:2345 ,则:计算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.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; do{ sum=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;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("个数为:"+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的约数中最大的三位数。 package easy; public class The18th { public static void main(String[] args) { double a=555555; long b=0; //long[] yueShu=new long[555555]; 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 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&&r<i){ 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 int[4][4]; Scanner cin=new Scanner(System.in); for(int i=0;i<ewsz.length;i++){ for(int j=0;j<ewsz[i].length;j++){ ewsz[i][j]=cin.nextInt(); } } /*for(int i=0;i<ewsz.length;i++){ for(int j=0;j<ewsz[i].length;j++){ System.out.print(ewsz[i][j]); if(j==3){ System.out.println(""); } } }*/ int sum=0; for(int i=0;i<ewsz.length;i++){ sum=sum+ewsz[i][i]; } System.out.println(sum); } } 3. 写一个判断素数的函数prime,在主函数中输入10个整数,调用prime,输出这10个整数中的素数的累加和。 package moreEasy; import java.util.Scanner; public class The3th { public static void main(String[] args) { int[] shu=new int[10]; int sum=0; Scanner cin=new Scanner(System.in); for(int i=0;i<shu.length;i++){ shu[i]=cin.nextInt(); } for(int i=0;i<shu.length;i++){ if(prime(shu[i])) sum=sum+shu[i]; } 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 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 int[n]; for(int i=0;i<n;i++){ chengJi[i]=cin.nextInt(); } max=chengJi[0]; min=chengJi[0]; for(int j=0;j<chengJi.length;j++){ if(max<chengJi[j]){ max=chengJi[j]; n=j; } if(min>chengJi[j]){ min=chengJi[j]; 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(i<20) System.out.print(i+"!+"); else System.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 int[10]; Scanner cin=new Scanner(System.in); System.out.print("数组长度:"); int n=cin.nextInt(); for(int i=0;i<n;i++){ array[i]=cin.nextInt(); } int min=array[0]; int max=array[0]; //System.out.println(min); //System.out.println(max); for(int i=0;i<array.length;i++){ if(array[i]<min) min=array[i]; if(max<array[i]) max=array[i]; } 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 int[10]; Scanner cin=new Scanner(System.in); for(int i=0;i<ar.length;i++){ ar[i]=cin.nextInt(); //if(ar[i]==-1) //break; } for(int j=0;j<ar.length;j++){ System.out.print(ar[j]); } System.out.println(""); for(int i=0;i<ar.length/2;i++){ int a=ar[ar.length-i-1]; ar[ar.length-i-1]=ar[i]; ar[i]=a; } for(int j=0;j<ar.length;j++){ System.out.print(ar[j]); } } } 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 char[str.length()]; char[] bb=new char[str.length()]; for(int i=0;i<aa.length;i++){- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 编程 练习题 答案
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文