华冈笔试题

本文提供了SQL查询成绩合格学生的示例,展示了如何使用HTML构建页面布局,以及通过Java解决数学和排列组合问题的方法。

1   学校从各班级随机抽取学生进行了一次模拟考试。以下是一张成绩表,请利用SQL文给出成绩全部合格的信息(包含学号、科目、得分)  注:合格分:60分及以上

表1:成绩一览表

学号

科目

得分

002045

语文 

96

002045

数学 

62

002046

语文

84

002046

数学

99

003002

语文

36

003002

数学

67

 

SELECT * FROM test2 HAVING (score>=60);

SELECT * FROM test2 WHERE score>=60;

 

2    简单地用HTML画出如下的页面内容:

检索日期:2018/01/01                    商品对象:2                        检索   

日志ID

店Code

顾客Code

日期

商品ID

登录者ID

1

300

3000001

20180101

2

A

2

300

3000001

20180101

2

B

3

300

3000002

20180101

2

C

 

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />

<title>table</title>

</head>

<body>

 

<div>

<span>检索日期:<input type="text" value="2018/01/01" ></span>

<span>商品对象:

<select name="beans">

<option value="2">2</option>

<option value="3">3</option>

</select>

</span>

<input type="button" value="检索" />

</div>

<table style="border: 1px solid black;">

<tr>

<th>日志ID</th>

<th>店Code</th>

<th>顾客Code</th>

<th>日期</th>

<th>商品ID</th>

<th>登陆者ID</th>

</tr>

<tr>

<td>1</td>

<td>300</td>

<td>300001</td>

<td>20180101</td>

<td>2</td>

<td>A</td>

</tr>

<tr>

<td>2</td>

<td>300</td>

<td>300001</td>

<td>20180101</td>

<td>2</td>

<td>B</td>

</tr>

<tr>

<td>3</td>

<td>300</td>

<td>300002</td>

<td>20180101</td>

<td>2</td>

<td>C</td>

</tr>

</table>

</body>

</html>

 

3.  从键盘录入任意两个三位数,分别为最大值和最小值,在该范围内输出一个三位数,要求该三位数每一位的数字立方加起来等于这个数本身。  

public class Test {

public static void main(String[] args) {

for (int num = 100; num < 1000; num++) {

// 个位数

int a = num % 10;

// 十位数

int b = num / 10 % 10;

// 百位数

int c = num / 100 % 10;

 

if (Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3) == num) {

System.out.println(num);

}

}

}

}

 

4  某钢厂在对成品钢卷进行排列并存放,假设钢卷编号分别为NO.3,NO.4,NO.5,NO.6,NO.7,NO.8,请用你熟悉的语法编写一个函数,打印出所有不同的组合排列,如:345678,876543等,要求:NO.4号钢卷不能在第3位,NO.3和NO.5号钢卷不能相邻。

 

public class Test {

private static String[] mustExistNumber = new String[] { "3", "4", "5", "6", "7", "8" };

    private static boolean isValidNumber(String str) {

        // 检查是否包含345678这五个数,不包含返回false

        for (String number : mustExistNumber) {

            if (str.indexOf(number) < 0)

                return false;

        }

        // 检查4在不在第三位,是返回false

        if (str.charAt(2) == '4') {

            return false;

        }

        // 检查是否存在35在一起,有返回false

        if (str.indexOf("35") >= 0 || str.indexOf("53") >= 0) {

            return false;

        }

        return true;

    }

 

    public static void main(String[] args) {

        int count=0;

        for (int i = 345678; i <=876543; i++) {

            if (isValidNumber(String.valueOf(i))) {

                System.out.println(i);

                count++;

            }

        }

        System.out.println(count);

    }

}

public class Test2 {

public static String [] arr = {"3","4","5","6","7","8"};

 

public static void print () {

int count = 0;

for (int i = 0; i <= 5; i++) {

String tr = "";

tr += arr[i];

for (int j = 0; j <= 5; j++) {

String t = tr;

if (i == j ||i+j == 2) {

continue;

}

t += arr[j];

for (int a = 0; a <= 5; a++) {

String s = t;

if (a == i||a == j||a+j == 2||a == 1) {

continue;

}

s += arr[a];

for (int b = 0; b <= 5; b++) {

String d = s;

if (b == i||b == j||a+b == 2||a == b) {

continue;

}

d += arr[b];

for (int c = 0; c <= 5; c++) {

String f = d;

if (c == i||c == j||c+b == 2||c == b||c == a) {

continue;

}

f += arr[c];

for (int v = 0; v <= 5; v++) {

String g = f;

if (v == i||v == j||v+c == 2||c == v||v == a|| v == b) {

continue;

}

g += arr[v];

System.out.println(g);

count++;

 

}

}

}

}

 

}

 

}

System.out.println(count);

}

public static void main(String[] args) {

print();

}

}

 

5   请阅读以下代码,并使用JavaScript或者Jquery实现。

<ul>

      <li id="li_html">HTML</li>

      <li class="li_css">CSS</li>

      <li>JAVA</li>

      <li>C#</li>

      <li>C++</li>

</ul>

   5-1  请将上述代码中的第一个“li”中的文字修改成“HTML++”。

$("#li_html").html("HTML++");

5-2  请将上述代码中的第二个“li”的背景颜色设置为红色。

$(".li_css").css("background-color","red");

5-3  请将上述代码中的第四个“li”删除。

$(".li_css").next().next().remove();

5-4  请将上述代码中的第五个“li”里的文字内容添加到第二个“li”中。

var a=$(".li_css").next().next().next().html();

$(".li_css").append(a);

 

内容概要:本文详细记录了对一个Android ARM64静态ELF文件中字符串加密机制的逆向分析过程。该ELF文件的所有字符串均被加密,无法通过常规strings命令或IDA直接识别。作者通过分析发现,加密字符串存储在.rodata段,其解密所需信息(包括密文地址、长度16位密钥)保存在.data.rel.ro段的40字节描述符中。核心解密函数sub_10F408采用自反的双pass流密码算法,结合固定密钥KEY_TERM(由.data段24字节数据计算得出),实现字节级非线性、位置与长度相关的加密。文章还复现了完整的Python解密脚本,并揭示了该保护机制的本质为代码混淆而非强加密,最终成功批量解密全部956条字符串,暴露程序真实行为,如shell命令模板、设备标识篡改、网络重置等操作。此外,文中还提及未启用的自定义壳框架及其反dump设计。; 适合人群:具备逆向工程基础的安全研究人员、二进制分析人员及对ELF保护技术感兴趣的开发者。; 使用场景及目标:①学习ELF二进制中字符串加密的典型实现方式与逆向突破口;②掌握从结构识别、函数追踪到算法还原的完整逆向流程;③理解“绑定二进制”的完整性校验设计及其局限性;④实践编写IDAPython脚本自动化提取与解密敏感数据。; 阅读建议:此资源以实战案例驱动,不仅展示技术细节,更强调逆向思维与验证方法,建议读者结合IDA调试环境,逐步跟随文中步骤进行动态分析与算法验证,深入理解每一步的推理依据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值