011235813用java写出来_C 编程练习题大全(带答案)

以下为《C 编程练习题大全(带答案)》的无排版文字预览,完整格式请下载

下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

一、简单问题: 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); } }

}

1. 编程求下列式子的值,

y= 1-1/2+1/3-1/4+ … +1/99-1/100

并将结果输出,格式为 : 1-1/2+1/3-1/4+ public class Porg {

… +1/99-1/100 =

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. 请编程实现: 由键盘输入的任意一组字符, 统计其中大写字母的个数 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 );

m和小写字母的个数 n,并输出 m、

409--1

String str=cin.nextLine(); for ( int i=0;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. 编程,求全部水仙花数。所谓水仙花数是指一个三位数,其各位数字立方的和等于该数。如: + 5 3+ 3 3。

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);

}

}

}

}

153 = 13

4. 请编制程序判断输入的正整数是否既是 5 又是 7 的整倍数。若是,则输出 import java.util.Scanner; public class Prog4 { public static void main(String[] args) {

yes ;否则输出 no。

Scanner cin= new Scanner(System.

in );

int i=cin.nextInt();

if ( i%5==0&&i%7==0)

System. out .print("yes");

409--2

else System. out .print("no");

} }

5. 请编程实现:对于给定的一个百分制成绩,输出相应的五分制成绩。设:

为‘ 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");

}

90 分以上为‘ A’, 80— 89 分

}

6. 输入一行字符,将其中的字母变成其后续的第

3 个字母,输出。例:

现。

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

{

for ( int i=0;i<29;i++)

{

if (str.charAt(j)==zimu[i])

{

System. out .println(zimu[i+3]);

a→ d, x → a ;y → b ;编程实

409--3

break ; } } }

7. 编写程序,输入任意一个 1~7 之间的整数,将他们转换成对应的英文单词

转换成 Sunday. import java.util.Scanner;

public public

class Prog7 { 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"); }

. 例如: 1 转换成 Monday, 7

}

8. 输入三角形的三边 a, b, c ,判断能否构成三角形 . 若能,计算面积 . import java.util.Scanner;

public public

class Prog8 { 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

409--4

{ System. out .print(" } else { int l=a+b+c; System. out .print(l); } }

不能构成三角形 \n");

}

9. 编程序,输入 a,b,c ,求方程 ax 2+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. double x2=(-b-Math.

pow (1/2, b*b-4*a*c))/(2*a); 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 个数 .

一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有

兔都不死,那么一年以后可以繁殖多少对兔子?

我们不妨拿新出生的一对小兔子分析一下:

第一个月小兔子没有繁殖能力,所以还是一对

;

两个月后,生下一对小兔总数共有两对

;

409--5

三个月以后,老兔子又生下一对,因为小兔子还没有繁殖能力,所以一共是三对

;

,,

依次类推可以列出下表:

经过月数

012345

6

7

8

9

10

11

12

幼仔对数

011235

8

13 21 34 55

89

144

成兔对数

112358

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 public

class Prog10 { 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 public

class Prog11 { static void main(String[] args) { for ( int i=103;i<10000;i=i+10) {

boolean flag= true ;

409--6

for ( int j=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);

409--7

}

}

14. 编程实现:对键盘输入的任意一个四位正整数,计算各位数字平方和。 如: 2345 , 则:计算 22+32+42+52

import java.util.Scanner; public class Prog14 {

public static void main(String[] args) {

System. out .print(" int sum=0;

请输入任意一个四位正整数 \n");

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)及其个数 .

409--8

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倍恰好是其反序数(例如: 件的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; }

123 的反序数是 321),编程,输出所有满足条

409--9

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);

409--10

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);

}*/

409--11

} 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,求两个无符号整数的最大公约数。主函数输入两个正整数

和 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();

m 和 n, 调用 GCD,求出 m

409--12

System.out.println(m+" System.out.println(m+" }

和 "+n+" 的最大公约数为: "+GCD(m,n)); 和 "+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

} } //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

for(int j=0;j

} } /*for(int i=0;i

for(int j=0;j

} }*/ int sum=0; for(int i=0;i

sum=sum+ewsz[i][i]; } System.out.println(sum); } } 3. 写一个判断素数的函数 prime ,在主函数中输入 10 个整数,调用 prime ,输出这1 0 个整数中的素数的 累加和。 package moreEasy;

409--13

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[i]=cin.nextInt(); } for(int i=0;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

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

chengJi[i]=cin.nextInt(); } max=chengJi[0]; min=chengJi[0]; for(int j=0;j

if(max

. 输出最高成绩和最

409--14

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);

409--15

System.out.print(" 数组长度: "); int n=cin.nextInt(); for(int i=0;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

if(array[i]

if(max

} 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

} for(int j=0;j

System.out.print(ar[j]); } System.out.println(""); for(int i=0;i

int a=ar[ar.length-i-1]; ar[ar.length-i-1]=ar[i]; ar[i]=a;

409--16

} for(int j=0;j

>>>>>>内容过长,仅展示部分文字预览,全文请查看图片预览。<<<<<<

以上为《C 编程练习题大全(带答案)》的无排版文字预览,完整格式请下载

下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值