• 2016年软件技术3+2专业技能测试A卷


    专业技能测试A卷

    C语言

    1、删除ch

    【题目】(15分)编写程序,输入一个字符串(长度不超过50),再输入单独的一个字符ch,将字符串str当中所有的ch字符都删掉,从而得到一个新的字符串str2,然后把这个字符串打印出来。
    【代码】

    #include<stdio.h>
    #include <string.h>
    main()
    {
    	char str1[50];
    	char str2[50];
    	char ch;
    	gets(str1);
    	ch=getchar();
    	int i=0,j=0;
    	int k=0;
    	for(i=0;i<strlen(str1);i++){
    		if(str1[i]==ch){
    			for(k=i;k<strlen(str1)-1;k++){
    				str1[k] = str1[k+1];
    			}
    			str1[k] = '';
    			i--;
    		}else{
    			str2[j++] = str1[i];
    		}
    	}
    	puts(str1);
    	puts(str2);
    } 
    

    2、取每行的最小值

    【题目】(15分)编写函数求矩阵a[n][n]中每行的最小值,结果存放到数组b中,若
    则结果为1,5,9,13
    4
    1 4 3 2
    8 6 5 7
    11 10 12 9
    13 16 14 15
    【代码】

    #include<stdio.h>
    #include <string.h>
    main()
    {
    	int n;
    	scanf("%d",&n);
    	char a[n][n];
    	int b[n];
    	for(int i=0;i<n;i++){
    		for(int j=0;j<n;j++){
    			scanf("%d",&a[i][j]);
    		}
    	}
    	for(int i=0;i<n;i++){
    		b[i] = a[i][0];
    		for(int j=1;j<n;j++){
    			if(b[i]>a[i][j]){
    				b[i] = a[i][j];
    			}
    		}
    	}
    	for(int i=0;i<n;i++){
    		printf("%d,",b[i]);
    	}
    }
    

    3、不安全的洞

    【题目】(C语言,15分)围绕山顶一圈有N个山洞,编号为0、1、2、3、……、N-1,有一只狐狸和一只
    兔子在洞中居住。狐狸总想找到兔子并吃掉它,它的寻找方法是先找到第一个洞(即编号为0的洞)
    中找;再隔一个洞,即编号为2的洞中找;再隔2个洞,即编号为5的洞中找;下次再隔3个洞;即
    编号为9的洞中找;……。若狐狸找一圈,请为兔子指出所有不安全的洞号。程序中用a数组元素模
    拟一个洞,数组元素的下标即为洞号,数组元素中的值为0时,表示该洞安全,为1时表示该洞不安
    全。
    例如:若形参n的值为30时,不安全的洞号为0、2、5、9、14、20、27
    【代码】

    #include<stdio.h>
    main()
    {
    	int n;
    	scanf("%d",&n);
    	int a[n];
    	int f = 1;
    	for(int i=0;i<n;i++){
    		a[i] = 0;
    	}
    	for(int i=0;i<n;i=i+f){
    		a[i] = 1;
            printf("%d,",i);
    		f++;
    	}
    }
    

    Java

    1、面积类重写

    【题目】(java,15分)方法的重载的应用。设计一个求几何图形--圆、长方形面积的类,根据用户设置的
    参数自动调用对应的方法实现。
    输出样例:
    半径为3的圆的面积是:28.27
    边长为4,5的长方形的面积是:20.00
    【代码】

    
    class Area{
    	public static double area(double r) {
    		return Math.PI*r*r;
    	}
    	public static double area(double x,double y) {
    		return x*y;
    	}
    }
    
    
    public class 面积类 {
    	public static void main(String[] args) {
    		System.out.println("半径为3的圆的面积是:"+Area.area(3));
    		System.out.println("边长为4,5的长方形的面积是:"+Area.area(4,5));
    	}
    }
    
    

    2、随机点名器

    【题目】(java,15分)随机点名器。编写一个随机点名器程序,使其能够在全班同学中随机点中某一名同
    学的名字。包括三个模块:存储全班同学的名字、总览全班同学的姓名和随机点取其中一人姓名。
    运行样例:
    --------随机点名器-------
    存储第1个姓名:张春晓
    存储第2个姓名:李思思
    存储第3个姓名:王启明
    第1个学生姓名:张春晓
    第2个学生姓名:李思思
    第3个学生姓名:王启明
    被点到名的同学是:王启明
    【代码】

          package 专业技能测试A卷;
    
    import java.util.ArrayList;
    import java.util.Random;
    import java.util.Scanner;
    
    public class 随机点名器 {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		ArrayList<String> names = new ArrayList<String>();
    		System.out.println("--------随机点名器---------");
    		for(int i=1;i<=3;i++) {
    			System.out.print("存储第"+i+"个姓名:");
    			names.add(sc.next());
    		}
    		for(int i=1;i<=3;i++) {
    			System.out.println("第"+i+"个学生姓名:"+names.get(i-1));
    		}
    		Random random = new Random();
    		System.out.println("被点到名的同学是:"+names.get(random.nextInt(3)));
    	}
    }
    

    3、隔离病毒 dfs

    【题目】(java,20分)某地区爆发病毒,给定一个矩阵,x代表隔离墙,o代表病毒,病毒区域是由它水平方向或垂直方向
    上相邻的病毒连接而成,斜角连接不会构成病毒区域。你要计算出矩阵中有几个病毒区域(假设矩阵
    周边是被隔离墙包围的).

    【代码】

          public class 隔离病毒 {
    	static int x,y;
    	static int nums[][];
    	static char matrix[][];
    	static int ans=0;
    	public static void main(String[] args) {
    		// x隔离墙 o病毒
    		Scanner sc = new Scanner(System.in);
    		x = sc.nextInt();
    		y = sc.nextInt();
    		nums = new int[x][y];
    		matrix = new char[x][y];
    		for(int i=0;i<x;i++) {
    			String string = sc.next();
    			for(int j=0;j<y;j++) {
    				matrix[i][j] = string.charAt(j);
    			}
    		}
    		for(int i=0;i<x;i++) {
    			for(int j=0;j<y;j++) {
    				if(matrix[i][j]=='o'&&nums[i][j]==0) {
    					dfs(i,j);
    					ans++;
    				}
    			}
    		}
    		System.out.println(ans);
    	}
    	public static void dfs(int i,int j) {
    		if(i<0||i>=x||j<0||j>=y) {
    			return;
    		}
    		if(nums[i][j]==1) {
    			return;
    		}
    		if(matrix[i][j]=='x') {
    			return;
    		}
    		if(matrix[i][j]=='o') {
    			nums[i][j] = 1;
    		}
    		dfs(i-1,j); // 向上走
    		dfs(i+1,j); // 向下走
    		dfs(i,j-1); // 向左走
    		dfs(i,j+1); // 向右走
    	}
    }
    
  • 相关阅读:
    vue-递归 组件嵌套组件循环 附加:(项目中可以用form来提交 或者 v-model 绑定的提交)
    Vue-开卡充值 -轮询
    bootstrap3 三级下拉菜单
    【UOJ #50】【UR #3】—链式反应(生成函数+分治NTT/多项式Exp+常微分方程)
    【CSP-S 2019模拟】题解
    【洛谷P4233】— 射命丸文的笔记(竞赛图+多项式求逆)
    【LOJ #2264】「CTSC2017」吉夫特(Lucas定理+Dp)
    【LOJ #3120】「CTS2019 | CTSC2019」珍珠(生成函数+NTT)
    【LOJ #2541】「PKUWC2018」猎人杀(容斥+分治NTT)
    【LOJ #2346】「JOI 2016 Final」断层(线段树)
  • 原文地址:https://www.cnblogs.com/lyhLive/p/13886550.html
Copyright © 2020-2023  润新知