• 1-5题


    模块一 程序设计 1.试题编号:

    J1-1《小学生数学辅助学习系统》关键算法

    (1)任务描述 随着社会的发展及人们对小学阶段的教育重视程度在不断提高,A 公司决定开发一套小 学生数学辅助学习系统,通过完成趣味试题,采用游戏通关的方式,帮助小学生掌握数学里 的基本概念和计算方法。

    任务一:实现趣味试题 1 的关键算法并绘制流程图(30 分) 通过键盘输入某年某月某日,计算并输出这一天是这一年的第几天。例如,2001 年 3 月 5 日是这一年的第 64 天。 注意:使用分支结构语句实现。

    package ex1;
    
    import java.util.*;
    
    public class ex1_1 {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		int year;  //年份
            int month;  //月份
            int day;  //日
            int days;    //累计天数
            int d=0;
            int e = 0;
            Scanner scanner = new Scanner(System.in);
                System.out.print("输入年:");
                year = scanner.nextInt();
                System.out.print("输入月:");
                month = scanner.nextInt();
                System.out.print("输入日:");
                day = scanner.nextInt();
                days=day;
            for (int i = 1; i <month; i++) {
                switch (i) {
                case 1:
                case 3:
                case 5:
                case 7:
                case 8:
                case 10:
                case 12: {
                    d = 31;
                    break;
                }
                case 4:
                case 6:
                case 9:
                case 11: {
                    d = 30;
                    break;
                }
                case 2: {
                    /**
                     * 闰年:①:非整百年数除以4,无余为闰,有余为平;②整百年数除以400,无余为闰有余平
                     * 二月:平年28天、闰年29天
                     */
                    if ((year % 100 !=0 &&year % 4 == 0) || (year % 100 == 0 && year%400==0)) {
                        d = 29;
                    } else {
                        d = 28;
                    }
                }
                default:
                    break;
                }
                days+=d;
            }
            System.out.println(year+"年"+month+"月"+day+"日"+"是这一年的第"+days+"天");
    
    	}
    
    }
    # -*- coding:utf-8 -*-
    print("输入年:")
    year = int(input())
    print("输入月:")
    months = int(input())
    print("输入日:")
    day = int(input())
    y = [1,3,5,7,8,10,12]
    m = [4,6,9,11]
    d1 = 0
    d2 = 0
    d3 = 0
    d4 = 0
    for month in range(1, months):
        if month in y:
            d1 = 31
        if month in m:
            d2 = 30
        if month == 2:
            if (year % 4) == 0 and (year % 100) != 0 or (year % 400) == 0:
                d3 = 29
            else:
                d3 = 28
                break
    d4 = (d1+d2+d3)
    print("{}年{}月{}日是这一年的第{}" .format(year,months,day,(d4+day)))
    python版本

    任务二:实现乘法口诀助记功能的关键算法并绘制流程图(30 分) 选择乘法口诀助记功能,输出阶梯形式的 9*9 乘法口诀表,如图 1.1.1 所示。

    1*1=1

    1*2=2  2*2=4

    1*3=3  2*3=6  3*3=9

    1*4=4  2*4=8  3*4=12    4*4=16

    1*5=5  2*5=10  3*5=15  4*5=20  5*5=25

    1*6=6  2*6=12  3*6=18  4*6=24  5*6=30  6*6=36

    1*7=7  2*7=14  3*7=21  4*7=28  5*7=35  6*7=42  7*7=49

    1*8=8  2*8=16  3*8=24  4*8=32  5*8=40  6*8=48  7*8=56  8*8=64

    1*9=9  2*9=18  3*9=27  4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81 图 1.1.1 乘法口诀表 注意:使用循环结构语句实现。

    package ex1;
    
    public class ex1_2 {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		for (int i = 1; i <=9; i++) //i*j
    		{
    			for (int j = 1; j <=i; j++) 
    			{
    				System.out.print(j+"*"+i+"="+(i*j)+"	");
    			}
    			System.out.println();
    		}
    
    	}
    
    }
    # -*- coding:utf-8 -*-
    for i in range(1,10):
        for j in range(1,i+1):
            print("{}*{}={}".format(i,j,i*j),end=' ')
        print()
    python版本

    任务三:实现趣味试题 2 关键算法并绘制流程图(30 分) 判断一个整数是否为“水仙花数”。所谓“水仙花数”是指一个三位的整数,其各位数 字立方和等于该数本身。例如:153 是一个“水仙花数”, 因为 153=1^3+5^3+3^3。 注意: 用带有一个输入参数的函数(或方法)实现,返回值类型为布尔类型。 (2)作品提交要求见本模块附录 1 (3)实施条件要求见本模块附录 2 (4)评价标准见本模块附录 3 2.试题编号:

    package ex1;
    
    import java.util.Scanner;
    
    public class ex1_3 {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		 Scanner scan = new Scanner(System.in);// 接收控制台输入信息
    	        System.out.print("请输入一个整数:");
    	        try {
    	            int num = scan.nextInt();// 取出控制台输入的信息
    	 
    	            if (isDaffodilNumber(num)) {// 调用isDaffodilNumber()方法
    	                System.out.println(num + "是水仙花数!");// 若为true,输出是水仙花数
    	            } else {
    	                System.out.println(num + "不是水仙花数!");// 否则,输出不是水仙花数
    	            }
    	        } catch (Exception e) {
    	            System.out.println("必须输入整数");// 捕捉异常,输入的必须为整数,若否,输出必须输入整数
    	        } 
    	}
    	 // 用于判断一个整数是否是水仙花数
     public static  boolean isDaffodilNumber(int i) {
         boolean flag = true;
    
         int a = i / 100; // 取得百位数
         int b = (i / 10) % 10; // 取得十位数
         int c = i % 10; // 取得个位数
         /*
          * if ((Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3)) != i) {// 若各位数字立方和不等于该数本身
          *       flag = false;// 返回false 
          * }
          */
         if (a * a * a + b * b * b + c * c * c != i) {// 若各位数字立方和不等于该数本身
             flag = false;//返回false
         }
         return flag;
     }
    
    
    }
    # -*- coding:utf-8 -*-
    print("输入一个整数")
    num = int(input())
    a = int(num/100)
    b = int((num/10)%10)
    c = num%10
    if(a*a*a+b*b*b+c*c*c == num):
        print("是水仙花")
    else:
        print("不是水仙花")
    python版本

    J1-2《帮你算系统》关键算法

    (1)任务描述 随着网络的不断发展,我们每天接触的新鲜事物都在不断增加,处在这一个信息量大爆 炸的时代,我们的时间就尤为重要,为了帮一些人解决时间不充裕的问题,处于创业的某公 司准备开发一套“帮你算”系统,用来解决生活中那些简单、繁琐的数学问题。

    任务一:实现平均成绩计算功能的关键算法并绘制流程图(30 分) 已知某个班有 30 个学生,学习 5 门课程,已知所有学生的各科成绩。请编写程序:分 别计算每个学生的平均成绩,并输出。 注意:定义一个二维数组 A,用于存放 30 个学生的 5 门成绩。定义一个一维数组 B,用 于存放每个学生的 5 门课程的平均成绩。 ①使用二重循环,将每个学生的成绩输入到二维数组 A 中。
    ②使用二重循环,对已经存在于二维数组 A 中的值进行平均分计算,将结果保存到一维 数组 B 中。 ③使用循环输出一维数组 B(即平均分)的值。

    package ex2;
    
    import java.util.Scanner;
    
    public class ex2_1 {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		  int[][] A = new int[30][5];  //存放30个学生5门成绩
    		  Scanner s=new Scanner(System.in);
    		  int[] B = new int[30];// 存放每个学生的5门课程的平均成绩
    		  int [] total=new int[30];// 存放每个学生的5门课程的总成绩
    		  int i, j, k = 0;
    		// ***********输入每个学生的每门课程的成绩***************
    		  for (i = 0; i <A.length; i++)
    		   {
    			  System.out.println("输入第"+(i+1)+"个学生的5门课成绩");
    		      for (j = 0; j <A[i].length; j++)// 初始化数组
    		    	  A[i][j]=s.nextInt(); 
    		   }
    		  // ******************计算每个学生的5门课程的平均分*****************
    		  for (i = 0; i <A.length; i++) {
    			  total[i]=0;
    		   for (j = 0; j <A[i].length; j++) {
    		    total[i] += A[i][j];
    		   }
    		    B[i]=total[i]/ 5;
    		  }
    		// ******************输出每个学生的5门课程的平均分*****************  
    		  for (i = 0; i <B.length; i++) 
    			  System.out.println("第"+(i+1)+"个学生5门课程的平均分为:"+B[i]); 
    
    	}
    
    }

    任务二:实现阶乘计算功能关键算法并绘制流程图(30 分) 输入一个整数 n,计算并输出他的阶乘。 注意:定义一个函数(或方法),用于求阶乘的值。 在主函数(或主方法)中调用该递归函数(或方法),求出 5 的阶乘,并输出结果。

    package ex2;
    
    import java.util.Scanner;
    
    public class ex2_2 {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		int n; //
    		int f;//存储n的阶乘
    		System.out.println("请输入一个整数:");
    		Scanner s=new Scanner(System.in);
    		n=s.nextInt();
    		f=factFor(n);
            System.out.println(n+"的阶乘是:"+f);
    	}
       public  static int factFor(int n){
            int sum = 1;
             
            if(n == 0){
                return 1;
            }
            for(int i = 1; i <= n; i++){
                sum*=i;
            }
            return sum;
        }
    
    
    }

    任务三:实现前项列和计算功能关键算法并绘制流程图(30 分) 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13 … 求出这个数列的前 20 项之和。
    要求:利用循环计算该数列的和。注意分子分母的变化规律。 注意:

    a1=2, b1=1, c1=a1/b1; a2=a1+b1, b2=a1, c2=a2/b2; a3=a2+b2, b3=a2, c3=a3/b3; … s = c1+c2+…+c20; s 即为分数序列:2/1,3/2,5/3,8/5,13/8,21/13 … 的前 20 项之和。 (2)作品提交要求见本模块附录 1 (3)实施条件要求见本模块附录 2 (4)评价标准见本模块附录 3 3.试题编号:

    package ex2;
    
    public class ex2_3 {
    
    	public static void main(String[] args) {
    		 double sum = 0;
    	        double n1 =2;
    	        double n2 = 1;
    	        double sn = 0;
    	        for (int i = 0; i <20; i++) {
    	            sum += n1/n2;
    	            sn = n1+n2;
    	            n2 = n1;
    	            n1 = sn;
    	        }
    	        System.out.println(sum);
    	    }
    
    
    }
    

      

    J1-3《网络选拔赛题库系统》关键算法

    (1)任务描述 随着网络的普及,许多比赛开始采用网络选拔赛的模式。某大赛组委会决定开发一个网 络选拔赛题库系统,实现该系统需要完成以下任务。

    任务一:实现统计元音关键算法并绘制流程图(30 分) 输入一个字符串统计每个元音字母(aeiou)在字符串中出现的次数。 对于结果输出 5 行,格式如下: a:num1(a 的个数)

    e:num2(b 的个数)

    i:num3(i 的个数)

    o:num4(o 的个数)

    u:num5(u 的个数)

    例如输入 aeioubbbccc,输出:

    a:1

    e:1

    i:1

    o:1

    u:1

    注意:使用分支语句实现。

    package ex3;
    
    import java.util.Scanner;
    
    public class ex3_1 {
    
    	public static void main(String[] args) {
    		Scanner sc=new Scanner(System.in);
    		String str=sc.nextLine();
    		int counta=0,counte=0,counti=0,counto=0,countu=0;
    		for(int i=0;i<str.length();i++)
    		{
    			if(str.charAt(i)=='a')
    				counta++;
    			else if(str.charAt(i)=='e')
    				counte++;
    			else if(str.charAt(i)=='i')
    				counti++;
    			else if(str.charAt(i)=='o')
    				counto++;
    			else if(str.charAt(i)=='u')
    				countu++;
    		}
    		System.out.println("a:"+counta);
    		System.out.println("e:"+counte);
    		System.out.println("i:"+counti);
    		System.out.println("o:"+counto);
    		System.out.println("u:"+countu);
    		}	
    
    
    }

    任务二:实现 Switch Game 关键算法并绘制流程图(30 分) 有 n 盏灯,编号 1~n(0<n<100)。第 1 个人把所有灯打开,第 2 个人按下所有编号为 2 的倍数的开关(这些灯将被关掉),第 3 个人按下所有编号为 3 的倍数的开关(其中关掉 的灯将被打开,开着的灯将被关闭),依次类推。输入灯数和人数,输出开着的灯的编号。
    比如输入:10 2 输出最后亮灯的编号:1,3,5,7,9 注意:使用循环语句实现。

    package ex3;
    
    import java.util.Scanner;
    
    public class ex3_2 {
    
    	public static void main(String[] args) {
    		int i,j=2,n,d,r;
    		int[]x=new int[100];
    		 Scanner s=new Scanner(System.in);
    		 d=s.nextInt();
    		 r=s.nextInt();
    		 for (i=1;i<=d;i++)//灯的编号
    		    x[i]=i;
    		while (j<=r)
    		{
    		   for (i=j;i<=d;i++) //灯数从等于人数开始
    		   {
    		   if (i%j==0)  //是人的倍数
    			   {
    		          if (x[i]!=0)//不为0则要关灯
    					  x[i]=0; 
    				  else       //为0则要开灯
    							x[i]=i;
    					}
    				}
    			j++;  //下一个人数
    				}
    			for (i=1;i<=d;i++)
    				if (x[i]!=0)
    					System.out.print(x[i]+",");
    	}
    
    }

    任务三:实现 2^x mod n = 1 关键算法并绘制流程图(30 分) 给你一个数字 n,找到满足 2^x mod n = 1 的最小值 x,如果 x 存在,则输出“2 ^x mod n = 1”,否则输出“2 ^? mod n = 1”,您需要用真实的 x 和 n 的值来替代字符串中的变 量。 例如输入 5,输出答案为 2^4 mod 5 = 1。 (2)作品提交要求见本模块附录 1 (3)实施条件要求见本模块附录 2 (4)评价标准见本模块附录 3 4.试题编号:

    package ex3;
    
    import java.util.Scanner;
    
    public class ex3_3 {
    
    	public static void main(String[] args) {
    		int n,t,i;
            Scanner s=new Scanner(System.in);
            n=s.nextInt();
            if(n%2==0||n==1)
    		{
    				System.out.println("2^? mod "+n+"= 1");
    		}
    		else
    		{
    		    int ans=1,cnt=0;
    		    while(ans!=1||cnt==0)
    		     {
    		         cnt++;
    		       	ans=(ans*2)%n;
    		     }
    			System.out.println("2^"+cnt+" mod"+n+"= 1");
    			}		
    
    
    	}
    
    }
    

      

    J1-4《图形体积计算系统》关键算法

    (1)任务描述 图形在我们的生活中无处不在,看看我们的周围,到处都是图形的缩影、例如空调是长 方形、水瓶瓶盖是圆形,这些图形的计算对于我们的土木工程师来说,那可是非常重要的啊, 所以某公司开发出一套图形面积计算系统,帮助那些工程师们更好的计算。

    任务一:实现计算体积关键算法并绘制流程图(30 分) 根据输入的半径值,计算球的体积。输入数据有多组,每组占一行,每行包括一个实数, 表示球的半径。输出对应球的体积,对于每组输入数据,输出一行,计算结果保留三位小数。 注:PI = 3.1415927 例如:输入 2 输出 33.510 注意:使用公式完成。

    package ex4;
    
    import java.util.Scanner;
    
    public class ex4_1 {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		 Scanner sc=new Scanner(System.in);
             while(sc.hasNext())
             {
                 double r=sc.nextDouble();
                 double pi=3.1415927;
                 double s=4*r*r*r*pi/3;
                 System.out.format("%.3f",s).println();
             }
    
    	}
    
    }

    任务二:实现坐标求长度关键算法并绘制流程图(30 分) 输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离。输入数据有多组,每组 占一行,由 4 个实数组成,分别表示 x1,y1,x2,y2,数据之间用空格隔开。 例如输入: 1 3 4 6 则输出:4.24 注意:结果保留两位小数。

    package ex4;
    
    import java.util.Scanner;
    
    public class ex4_2 {
    
    	public static void main(String[] args) {
    		 Scanner sc=new Scanner(System.in);
    		 double x1,y1,x2,y2,distance;
             while(sc.hasNext())
             {
            	 x1=sc.nextDouble();
            	 y1=sc.nextDouble();
            	 x2=sc.nextDouble();
            	 y2=sc.nextDouble();
            	 distance =Math.sqrt(Math.abs((x1 - x2)*(x1 - x2))+Math.abs((y1 - y2)*(y1 - y2)));
            	System.out.format("%.3f",distance).println();
             } 
          
    
    
    	}
    
    }

    任务三:实现图形面积大小比较关键算法并绘制流程图(30 分) 按顺序输入正方形的边长(a),长方形的长(l)和宽(d),以及圆的半径(r),计 算并比较它们哪个图形面积更大,输出面积最大的图形。 例如:输入 1 3 4 1,输出:长方形 (2)作品提交要求见本模块附录 1 (3)实施条件要求见本模块附录 2 (4)评价标准见本模块附录 3 5.试题编号:

    package ex4;
    
    import java.util.Scanner;
    
    public class ex4_3 {
    
    	public static void main(String[] args) {
    		Scanner sc=new Scanner(System.in);
    	    int a=sc.nextInt();
    	    int l=sc.nextInt();
    	    int d=sc.nextInt();
    	    int r=sc.nextInt();
    	    double area1=a*a;
    	    double area2=l*d;
    	    double area3=Math.PI*r*r;
    	    if(area1>area2)
    	    {
    	    	if(area1>area3)
    	    		System.out.println("正方形");
    	    	else
    	    		System.out.println("圆");
    	    }
    	    else 
    	    {
    	    	if(area2>area3)
    	    		System.out.println("长方形");
    	    	else
    	    		System.out.println("圆");
    	    }
    
    
    	}
    
    }
    

      

    J1-5《中国结图案打印系统》关键算法

    (1)任务描述 中国结是一种中国特有的手工编织工艺品,它身上所显示的情致与智慧正是中华古老文 明的一个写照。它原本是由旧石器时代的缝衣打结,后推展至汉朝的仪礼记事,再演变成今 日的装饰手艺。当代多用来装饰室内、亲友间的馈赠礼物及个人的随身饰物。因为其外观对 称精致,可以代表中国悠久的历史,符合中国传统装饰的习俗和审美观念,故命名为中国结。 现在 A 公司想要开发一个中国结图案打印系统,现在请你完成以下任务。

    任务一:实现主结长度关键算法并绘制流程图(30 分)
    公司现在需要打印中国结的主结(位于中间,最大的那一个结),为了打印出漂亮新颖的 主结,于是设计打印主结的长度满足可以被 7 整除这个条件。现在公司需要统计某个范围内 能被 7 整除的整数的个数,以及这些能被 7 整除的数的和。 从键盘上输入一个整数 N,输出 1~N 之间能被 7 整除的整数的个数,以及这些能被 7 整 除的数的和。

    package ex5;
    
    import java.util.Scanner;
    
    public class ex5_1 {
    
    	public static void main(String[] args) {
    		 Scanner sc=new Scanner(System.in);
    		 System.out.println("请输入");
    		 int n = sc.nextInt();
    		 int count = 0;
    		 int sum = 0;
    		 for(int i=1;i<n;i++){
    		 if(i%7==0){
    		 count++;
    		 sum+=i;
    		 }
    		 }
    		 System.out.println("1-"+n+"之间能被7整除的数有"+count+"个,他们的和是:"+sum);
    
    
    	}
    
    }

    任务二:实现副结长度关键算法并绘制流程图(30 分) 公司设计的中国节还需要副结(主结周围的结),于是打算设计副结的长度满足是素数这 个条件。现在公司需要统计出某个范围内哪些数是素数。 从键盘上输入一个整数 N,输出 1~N 之间的素数。 注意:用带有一个输入参数的函数(或方法)实现,返回值类型为布尔类型。

    package ex5;
    
    import java.util.Scanner;
    
    public class ex5_2 {
    
    	public static void main(String[] args) {
    		 Scanner sc=new Scanner(System.in);
    		 int n = sc.nextInt(); //输入n
    		 for(int i=1;i<=n;i++)//
    		 {
    			 if(IsPrime(i))
    				 System.out.print(i+"	");
    		 }
    		
    	}
    	static boolean IsPrime(int x) //判断是否是素数
    	{
    		boolean b=false;
    		int i;
    		 for (i = 2; i<x; i++) // 1不是素数,所以直接从2开始循环
    		 {      
    			 if(x%i==0) break;
    		 }
    		  if (i==x)
    	           b=true;
    	    return b;
    	}
    
    
    }

    任务三:实现打印中国结图案关键算法并绘制流程图(30 分) 由于中国结的形状是菱形图案,所以现在公司需要设计一个打印菱形的方法。 从键盘输入一个整数 N,打印出有 N*2-1 行的菱形。 例如输入整数 4,则屏幕输出如下菱形。

                *

         *      *     *

    *    *      *     *    *

         *      *     *

                *
    现要求输入整数为 7,在屏幕中输出相应的菱形。 要求:用循环结构语句实现。 (2)作品提交要求见本模块附录 1 (3)实施条件要求见本模块附录 2 (4)评价标准见本模块附录 3

    import java.util.Scanner;
    
    
    public class Task3 {
    	
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		System.out.print("输入整数:");
    		Scanner s = new Scanner(System.in);
    		int n = s.nextInt();
    		int row = n*2-1;//行
    		int onrow = row/2+1;//上行数
    		int downrow = row/2;//下行数
    		
    		
    		for (int i = 1; i <= onrow ; i++) {//打印上行数
    			for (int j = 1; j <=onrow-i; j++) //打印空格数
    				System.out.print(" ");
    			for (int k = 1; k <= 2*i-1; k++) //打印*数
    				System.out.print("*");
    			System.out.println();//换一行
    		}
    		
    		for (int i = 1; i <= downrow; i++) {//打印下行数
    			for (int j = 1; j <= i; j++)//打印空格数
    				System.out.print(" ");
    			for (int k = row-2; k >= 2*i-1; k--)//打印*数
    				System.out.print("*");
    			System.out.println();//换一行
    		}
    		
    	}
    }

      

  • 相关阅读:
    Dart Learn Notes 04
    Dart Learn Notes 03
    Dart Learn Notes 02
    一介书生,仅此而已
    计算机技术的演进及编程语言的多样
    C#方法(用法,参数)
    C#数组--(Array类的属性和方法)
    C#数组--(一维数组,二维数组的声明,使用及遍历)
    程序设计的编程方法
    C#流程控制语句--跳转语句(break,continue,goto,return,)
  • 原文地址:https://www.cnblogs.com/xiaoqianbook/p/9609782.html
Copyright © 2020-2023  润新知