华阳路街道网站建设,如何建设内网网站,企业网站建设找智恒网络,jfinal网站开发模板目录 1.参数解析1.1题目描述1.2思路1.3代码 2.跳石板2.1题目2.2思路2.3代码 3.选择题 1.参数解析
1.1题目描述
在命令行输入如下命令#xff1a;
xcopy /s c:\ d:\e#xff0c;
各个参数如下#xff1a;
参数1#xff1a;命令字xcopy
参数2#xff1a;字符串/s
参数… 目录 1.参数解析1.1题目描述1.2思路1.3代码 2.跳石板2.1题目2.2思路2.3代码 3.选择题 1.参数解析
1.1题目描述
在命令行输入如下命令
xcopy /s c:\ d:\e
各个参数如下
参数1命令字xcopy
参数2字符串/s
参数3字符串c:\
参数4: 字符串d:\e
请编写一个参数解析程序实现将命令行各个参数解析出来。 解析规则 1.参数分隔符为空格 2.对于用包含起来的参数如果中间有空格不能解析为多个参数。比如在命令行输入xcopy /s “C:\program files” d:“时参数仍然是4个第3个参数应该是字符串C:\program files而不是C:\program注意输出参数时需要将”去掉引号不存在嵌套情况。 3.参数不定长 4.输入由用例保证不会出现不符合要求的输入 数据范围字符串长度1\le s\le 1000\1≤s≤1000 进阶时间复杂度O(n)\O(n) 空间复杂度O(n)\O(n)
输入描述 输入一行字符串可以有空格 输出描述 输出参数个数分解后的参数每个参数都独占一行 示例1 输入 xcopy /s c:\ d:\e 输出 4 xcopy /s c:\ d:\e
1.2思路 xcopy /s c:\ d:\e 这个字符串中间空了三个空格但是有四个参数因此我们只需要在遇见空格的时候count最后输出count1的数就是我们的参数个数。 不过这里需要注意因为我们在双引号里面的算是一个字符串所以哪怕双引号里面有空格我们以不能计算上例如xcopy /s “C:\program files” d:\这个还是4个参数C:\program files这个一个整体。 双引号外面的我们直接打印遇到空格和双引号不打印并且遇到双引号外面的空格还要换行。但还如果遇到双引号怎么办我们可以先定义一个flag1遇到双引号就异或1此时结果为0这个时候就在全部打印就可以了空格也打印在遇到双引号再异或上1此时变为1这个时候空格需要换行 大家需要注意flag0代表在上引号里面flag1代表在外面/双引号结束了。
1.3代码
import java.util.*;
public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);String str sc.nextLine();int count 0;for (int i 0; i str.length(); i) {//如果碰到双引号我们就需要i直到找到下一个双引号if (str.charAt(i) ) {do {i;} while (str.charAt(i) ! );}if (str.charAt(i) ) {count;}}System.out.println(count 1);int flag 1;for (int i 0; i str.length(); i) {//遇到第一个双引号flag变为0//遇到第二个双引号结束后flag重新变为1//只要在打印双引号中的内容的时候flag的值始终为0if (str.charAt(i) ) {flag ^ 1;}//除了双引号和特殊空格以外的字符都要打印if (str.charAt(i) ! str.charAt(i) ! ) {System.out.print(str.charAt(i));}//双引号中的空格需要打印if (str.charAt(i) flag 0) {System.out.print(str.charAt(i));}//双引号外碰到空格需要换行if (str.charAt(i) flag 1) {System.out.println();}}}
}2.跳石板
2.1题目
描述 小易来到了一条石板路前每块石板上从1挨着编号为1、2、3… 这条石板路要根据特殊的规则才能前进对于小易当前所在的编号为K的 石板小易单次只能往前跳K的一个约数(不含1和K)步即跳到KX(X为K的一个非1和本身的约数)的位置。 小易当前处在编号为N的石板他想跳到编号恰好为M的石板去小易想知道最少需要跳跃几次可以到达。 例如 N 4M 24 4-6-8-12-18-24 于是小易最少需要跳跃5次就可以从4号石板跳到24号石板 输入描述 输入为一行有两个整数NM以空格隔开。 (4 ≤ N ≤ 100000) (N ≤ M ≤ 100000) 输出描述 输出小易最少需要跳跃的步数,如果不能到达输出-1
示例1 输入 4 24 输出 5
2.2思路
将1 - M个石板看做一个结果数组stepNum每个stepNum[i]储存着从起点到这一步最小的步数其中0为不 能到达。 从起点开始对stepNum进行遍历先求i的所有约数即从stepNum[i]能走的步数然后更新那 几个能到达的位置的最小步数。如果不能到达则更新为此时位置的最小步数 1如果是能到达的就更新为 min已记录的最小步数此处的最小步数 1遍历一遍后得到结果。
2.3代码
import java.util.*;
public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt();int m sc.nextInt();int[] step new int[m 1];for (int i 0; i m 1; i) {step[i] Integer.MAX_VALUE;}step[n] 0;for (int i n; i m; i) {if (step[i] Integer.MAX_VALUE) {continue;}//求i的约数ListInteger list div(i);for (int j : list) {//j代表此时我们一步可以条几个台阶if (i j m step[i j] ! i) {step[i j] Math.min(step[i j], step[i] 1);} else if (i j m) {step[i j] step[i] 1;}}}if (step[m] Integer.MAX_VALUE) {System.out.println(-1);} else {System.out.println(step[m]);}}public static ListInteger div(int num) {ListInteger list new ArrayList();for (int i 2; i * i num; i) {if (num % i 0) {list.add(i);if (num / i ! i) {list.add(num / i);}}}return list;}
}3.选择题
一个关系数据库文件中的各条记录 B 。 A 前后顺序不能任意颠倒一定要按照输入的顺序排列 B 前后顺序可以任意颠倒不影响库中的数据关系 C 前后顺序可以任意颠倒但排列顺序不同统计处理的结果就可能不同 D 前后顺序不能任意颠倒一定要按照关键字字段值的顺序排列 关系数据库的逻辑性强而物理性弱因此关系数据库中的各条记录前后顺序可以任意颠倒不影响库中数据的关系。 2.一名员工可以使用多台计算机每台计算机只能由一名员工使用则实体员工和计算机间的联系是A A 一对多 B 多对多 C 多对一 D 一对一 一名员工可以使用多个计算机所以是1对多 3.下列关于视图的说法错误的是B A 视图是从一个或多个基本表导出的表它是虚表 B 视图一经定义就可以和基本表一样被查询、删除和更新 C 某一用户可以定义若干个视图 D 视图可以用来定义新的视图 视图是指计算机数据库中的视图是一个虚拟表其内容由蛮询定义。同真实的表一样视图包含一系列带有名称的列和行数据。但是视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表并且在引用视图时动态生成。 视图一经定义就无法修改 不能更新 4.在Mysql中订单表 ( 订单号雇员代号地区代号订购日期 ) 中订单号为主键要删除订单中前三年以前的信息 SQL 为D A delete from 订单表 where 订购日期getdate()3 B delete from 订单表 where 订购日期DATEADD(yy,3,getdate()) C delete from 订单表 where 订购日期getdate()-3 D delete from 订单表 where 订购日期DATEADD(yy,-3,getdate()) DATEADD()函数在日期中添加或减去指定的时间间隔。 语法 DATEADD(datepart,number ,date) datapart参数的取值范围是{yy/yyyy,qq/q,mm/m,dy/y,dd/d,wk/ww,dw/w,hh,mi/n,ss/s,ms ,mcs,ns] number 是您希望添加的间隔数 date 参数是合法的日期表达式 GETDATEO函数从 SQL Server 返回当前的时间和日期。 mysq1中获取当前日期和时间的函数为now0mysgl中没有getdate()函数mysq]中也有dateadd()函数语法为 DATE_ADD(date,INTERVAL expr type)date 参数是合法的日期表达式。expr 参数是您希望添加的时间间隔。 负责数据库中查询操作的数据库语言是C 。 A 数据定义语言 B 数据管理语言 C 数据操纵语言 D 数据控制语言 数据定义语言DDL 数据定义语言DDL用来创建数据库中的各种对象:表、视图、索引、同义词、聚族等。例如:CREATE TABLE/VIEW/INDEX/SYN/CLUSTERDDL操作是隐性提交的不能ro11back。 数据操作语言DML 主要负责数据的基本操作包括查询及增加、剧除、修改等操作。 数据控制语言DCL 数据控制语言DCL用来授予或回收访问数据除的某种特权并控制数据除操纵事务发生的时间及效果对数据原实行监视 等。 如1) GRANT:授权 2) ROLLBACK IWORK] TO[SAVEPOINT1: 网退到某一点ROLLBACK:回涨回滚命令使数据库状态回到上次最后提交的状态。其格式为: SQLROLLBACK。3) COMMIT [WORK]: 提交 数据库管理系统是 B。 A 操作系统的一部分 B 在操作系统支持下的系统软件 C 一种编译系统 D 一种操作系统
7.SQL 语句中修改表结构的命令是C A MODIFY TABLE B MODIFY STRUCTURE C ALTER TABLE D ALTER STRUCTURE 修改表结构的关键字都alter table 表名再跟具体修改的语句如:添加表字段 alter table table_name add 字段名称 字段类型 删除表字段 alter table table_name drop 字段名称 修改表字段 alter table table_name change 旧字段名称 新字段名称 字段类型 alter table table_name modify 字段名称 字段类型 8.在sql数据库中哪个语句能校验整数列 i 的值不小于 1 不大于 10 A
A i BETWEEN 1 AND 10 B i BETWEEN 0 AND 11 C i IN INTERVAL(0,11) D i IN INTERVAL(1,10)
9.在学生表 Student 的系别 (Sdept) 属性中查询信息系 (IS) 、数学系 (MA) 和计算机系 (CS) 的学生姓名(Sname) 和性别 (Ssex) 正确的命名格式应为B A SELECT Student FROM Sname, Ssex WHERE Sdept IN (‘IS’, ’MA’, ‘CS’) B SELECT Sname, Ssex FROM Student WHERE Sdept IN (‘IS’, ’MA’, ‘CS’) C SELECT Sname, Ssex FROM Student WHERE Sdept (IS, MA, CS) D SELECT Sname, Ssex FROM Student WHERE Sdept LIKE IS, MA, CS
10.SQL 查询语句中 WHERE 、 GROUP BY 、 HAVING 这些关键字区别和用法总结错误的是D A HAVING在查询语句中必须依赖于GROUP BY B WHERE子句用来限制SELECT语句从表中指定选取的行 C GROUP BY子句用来分组WHERE子句的输出结果集 D HAVING子句用来从分组的结果中筛选列 having是分组查询时在分组后条件过滤。这里的过滤是针对行来过滤不是筛选列