注册 登录
重磅消息:开通VIP会员,获取平台所有项目,永久使用,详细请咨询QQ:3376762016
远程服务部署安装,售后服务,请加QQ1:3376762016,QQ2:3597230140(即将满员),QQ3:1399491757(已满)
查看: 784|回复: 0
打印 上一主题 下一主题

广东技术师范大学 2019—2020学年度第( 2)学期期末考查试卷

[复制链接]

该用户从未签到

3518

主题

3532

帖子

66万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
668954
QQ
跳转到指定楼层
楼主
发表于 2020-6-27 10:28:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一、 编程(本题共1小题,计15分)
编写一个程序Test1.java,创建一个main函数,在main函数中,使用Scanner提示用户输入n+1个整数(n为学生学号的最后一位,例如学号为20100101的学生,该题目的输入整数个数为2),然后显示它们的和。用户输入的内容不是数字时,提示用户重新输入。要求使用try...catch来捕获程序中的异常,要求捕获的是【NumberFormatException异常】
(1)将程序的答案清单复制粘贴在试卷中;
import java.util.Scanner;
public class Test1 {
        public static void main(String[] args) {
                Scanner input=new Scanner(System.in);
                System.out.println("输入整数个数:");
                int len=input.nextInt();
                int sum=0;
                for(int i=0;i<len;i++){
                        System.out.println("请输入学生学号:");
                        String str=input.next();
                        int num=0;
                        try {
                                 num=Integer.parseInt(str);
                        } catch (NumberFormatException e) {
                                System.out.println("输入的学号不正确,请重新输入");
                                continue;
                        }
                       
                        sum=sum+num;
                }
                System.out.println("学号总和:"+sum);
               
        }
}
2)将程序的运行结果截图复制粘贴在试卷中
二、
编程(本题共1小题,计15分)
编写一个程序Test2.java,计算1!+2!+3!+…+(n+2)!,其中(n为学生学号的最后一位,例如学号为20100101的学生,该题目的计算的阶乘为1!+2!+3!),阶乘的计算用递归方法实现。
(1)将程序的答案清单复制粘贴在试卷中;
import java.util.Scanner;
public class Test2 {
        public int getFac(int n){
                   if(n==1){
                           return 1;
                          
                   }else{
                           return n*getFac(n-1);
                   }
               
        }
        public static void main(String[] args) {
                Test2 t2=new Test2();
               
                Scanner input=new Scanner(System.in);
                System.out.println("请输入学号最后一位:");
                int num=input.nextInt();
                int sum=0;
            for(int i=1;i<=num;i++){
                    sum=sum+t2.getFac(i);
            }
         
            System.out.println("1!+2!+3!++(n+2)阶乘和:"+sum);
        }
}
2)将程序的运行结果截图复制粘贴在试卷中

三、 编程(本题共1小题,计15分)
Java基本数据类型转换,运行下面程序,找出程序中存在的错误,指出错误所在语句,写出错误原因。
public class TestConvert {
public static void main (String args[]) {
int i=1,j=12;
float f1=0.1;
float f2=123;
long l1=12345678, l2=888888888;
double d1=2e20,d2=124;
byte b1=1,b2=2,b3=129;
j=j+10;
i=i/10;
i=i*0.1;
char c1=’a’,c2=125;
byte b=b1-b2;
char c=c1+c2-1;
float f3=f1+f2;
float f4=f1+f2*0.1;
double d=d1*i+j;
float f=(float)(d1*5+d2);
}
}
(1)指出程序的错误语句,并说明错误理由
第一处错误:
float f1=0.1;
原因:float类型定义变量时值的后面必须带上f,如果不带默认是double类型,所以正确写法:float f1=0.1f;
第二处:
byte b1=1,b2=2,b3=129;
原因:b3=129; byte超出byte范围-128 ~ 127,正确写法:
byte b1=1,b2=2,b3=125;
第三处:
i=i*0.1;  需要强制类型转换
原因:iint 类型,0.1double类型,最后计算结果是double类型,但是最后是int类型,所以需要强制类型转换,正确写法:
i=(int)(i*0.1);
第四处:
byte b=b1-b2;  需要强制类型转换
原因: b1-b2实现减法运算,是int类型,但最后得到bbyte类型,正确写法:
byte b=(byte)(b1-b2);
第五处:
char c=c1+c2-1;需要强制类型转换
原因: c1+c2-1实现运算,是int类型,但最后得到cchar类型,正确写法:
char c=(char)(c1+c2-1)
第六处:
float f4=f1+f2*0.1;需要强制类型转换
原因: c1+c2-1实现运算,是double类型,但最后得到f4float类型,正确写法:
float f4=(float)(f1+f2*0.1)
四、 编程(本题共1小题,计15分)
设计一个Shape接口和它的两个实现类Square和Circle,要求如下:
        (1) Shape接口中有一个抽象方法area(),方法接收一个double类型的参数,返回一个double类型的结果;
        (2) Square和Circle中实现了Shape接口的area()抽象方法,分别求正方形和圆形的面积并返回。
1)将程序的答案清单复制粘贴在试卷中;
public interface Shape {
     double area(double num);
     
}
public class Square implements Shape {
        public double area(double r) {
                return Math.PI*r*r;
        }
}
public class Circle implements Shape {
        public double area(double num) {
                return num*num;
        }
}
public class Test {
        public static void main(String[] args) {
                Shape shape = new Square();
        System.out.println("边长为2的正方形面积:"+shape.area(2));
        Shape circle = new Circle();
        System.out.println("半径为3的圆形面积"+circle.area(3));
        }
}
2)将程序的运行结果截图复制粘贴在试卷中
五、 编程(本题共1小题,计20分)
设计游戏密码验证程序:要求输入密码123456n(n为学生学号的最后一位,例如学号为20100101的学生,该题目的输入密码为1234561)后成功进入游戏(输错5次则被强行退出),要求用程序用循环实现密码验证的过程。
(1)将程序的答案清单复制粘贴在试卷中;
import java.util.Scanner;
public class Password {
        public static void main(String[] args) {
               
                Scanner input=new Scanner(System.in);
                boolean b=false;
                for (int i=0; i<5; i++) {
                        System.out.println("请输入学号:");
                        String number=input.next();
                       
            System.out.println("请输入密码:");
            String password = input.next();
            //截取学号最后一位
            String s=number.substring(number.length()-1);
            String pass="123456"+s;
            if (password.equals(pass)) {
                System.out.println("恭喜你进入游戏");
                b = true;
                break;
            }else{
                    System.out.println("密码错误,请重新输入");
            }
        }
        if (!b) {
            System.out.println("密码错误,游戏结束");
            System.exit(0);
        }
        }
}
2)将程序的运行结果截图复制粘贴在试卷中
六、
编程(本题共1小题,计20分)
循环接收用户从键盘输入的多个字符串,直到输入“end”时循环结束,输入结束后,对用户所输入的所有字符串进行统计,输出所有字符串中字符’a’的出现次数。
(1)将程序的答案清单复制粘贴在试卷中;
import java.util.Scanner;
public class Test6 {
public static void main(String[] args) {
//        键盘录入数据
        Scanner s = new Scanner(System.in);
    StringBuffer sb=new StringBuffer();
        while(true){
                System.out.println("请输入字符(end结束):");
                String str = s.nextLine();
                if(str.equals("end")){
                        break;
                }else{
          sb.append(str);
                }
        }
         int sum=0;
        for(int i=0;i<sb.length();i++){
                 char c=sb.charAt(i);
                 if(c=='a'||c=='A'){
                         sum++;
                 }
        }
        System.out.println("字符串中字符’a’的出现次数:"+sum);
}
}
2)将程序的运行结果截图复制粘贴在试卷中

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
java无忧网(http://www.javawyw.com),专业提供Java大作业,小作业,课程设计,毕业设计源码,答辩辅导,作业排错,bug修复,专业解答,远程部署运行项目等服务
本网站所有源码,保证能运行!
QQ:1399491757
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回列表 返回顶部