C语言初阶测评题:测试你的基础知识和编程技能!!
- 💓博客主页:江池俊的博客
- ⏩收录专栏:C语言刷题专栏
- 👉专栏推荐:✅C语言初阶之路 ✅C语言进阶之路
- 💻代码仓库:江池俊的代码仓库
- 🎉欢迎大家点赞👍评论📝收藏⭐
文章目录
- 🌴选择题
- 🌴编程题
- 📌求两个数的最小公倍数
- 📌倒置字符串
🎈前言:
欢迎来到这个关于C语言的初阶测评题博客!在这里,我们将为您呈现一系列考察基础知识和编程技能的问题,帮助您巩固对C语言的了解并提升编程能力。这次的测评题包含
15个选择题+2个编程题
,希望大家看完能够有所收获!!🥇
🌴选择题
- 下列程序执行后,输出的结果为( )
#include <stdio.h>
int cnt = 0;
int fib(int n)
{cnt++;if (n == 0)return 1;else if (n == 1)return 2;elsereturn fib(n - 1) + fib(n - 2);
}
void main()
{fib(8);printf("%d", cnt);//67
}
A 41
B 67
C 109
D 177
🔎正确答案:
B
67
【解析】:
cnt
是一个全局变量,用于统计递归调用次数。fib
函数用于计算斐波那契数列的第n
项。在每次递归调用时,会将cnt
增加 1。main
函数调用fib(8)
,即计算斐波那契数列的第 8 项,同时会统计递归调用次数。- 最后,
printf
输出递归调用次数,这里输出结果为 67。需要注意的是,这段代码使用递归来计算斐波那契数列,但是递归在计算较大的斐波那契数时会存在重复计算,效率较低。可以考虑使用循环或者记忆化递归等方法来优化计算。、
- 以下程序的输出结果是?
int x = 1;
do
{printf("%2d\n", x++);
} while (x--);
A 1
B 无任何输出
C 2
D 陷入死循环
🔎正确答案:
D
陷入死循环
【解析】:
- do while循环语句会先执行循环内语句再判断,
x
初值为1
- printf语句中打印的是
x++
的值,由于x
是后置++,所以打印的值为1
,执行完printf语句后x
的值变为2
- 随后进行循环条件的判断(即判断
x--
是否为真),由于是后置–,所以此时x
的值还是2
,判断结果为结果为真- 当再次进入循环后
x
的值变为1
,再次循环上述步骤,所以该程序会陷入死循环。
- 下面的代码段中,执行之后
i
和j
的值是什么()
int i = 1;
int j;
j = i++;
A 1,1
B 1,2
C 2,1
D 2,2
🔎正确答案:
C
2,1
【解析】:
在给定的代码段中,i
被赋值为1
,然后通过j = i++;
因为是后置++,所以先将i
的值赋给j
,然后i
的值自增。 所以,i
的值变为2
,j
的值为1
。
- 以下程序的
k
最终值是:
int i = 10;
int j = 20;
int k = 3;
k *= i + j;
A 90
B 50
C 70
D 30
🔎正确答案:
A
90
【解析】:
首先,计算i + j
,得到10 + 20 = 30
。
然后,将k
乘以30
,所以k
的值将变为3 * 30= 90
。
- 以下程序的最终的输出结果为:
#include<stdio.h>
#include<stdlib.h>
int a = 1;
void test()
{int a = 2;a += 1;
}int main()
{test();printf("%d\n", a);return 0;
}
A 1
B 2
C 3
D 4
🔎正确答案:
A
1
【解析】:
- 在这段代码中,首先在全局作用域中定义了一个名为
a
的全局变量并初始化为1
。然后在test
函数中定义了一个同名的局部变量a
,其初始值为2
,然后通过a += 1;
进行自增操作。由于这个自增操作仅在test
函数的局部作用域内有效,它不会影响到全局变量a
。- 在
main
函数中调用了test
函数,然后打印全局变量a
的值。由于全局变量a
没有在test
函数内被修改,所以main
函数中的printf
语句会输出全局变量a
的值,即1
。
- 下列描述中
正确
的是()
A 表示m>n为true或者m<n为true的表达式为m>n&&m<n
B switch语句结构中必须有default语句
C 如果至少有一个操作数为true,则包含“||”运算符的表达式true
D if语句结构中必须有else语句
🔎正确答案:
C
如果至少有一个操作数为true,则包含“||”运算符的表达式true
【解析】:
- 选项
A
错误,因为m>n&&m<n
表达式表示的是m
大于n
并且同时小于n
,这是不可能的,因此整个表达式永远为false
。- 选项
B
错误,switch
语句不必须包含default
语句,只有在需要处理没有匹配的情况时才需要使用default
语句。- 选项
D
错误,if
语句可以没有else
语句,只要它满足特定的逻辑需求。
- C 语言规定,在一个源程序中,
main
函数的位置()。
A 必须在最开始
B 必须在系统调用的库函数的后面
C 可以任意
D 必须在最后
🔎正确答案:
C
可以任意
【解析】:
在C语言中,编译器会从程序的入口函数main
开始执行,而main
函数可以放置在源文件的任何位置。
- 以下叙述
不正确
的是()
A 一个C源程序可由一个或多个函数组成
B 一个C源程序必须包含一个main函数
C C程序的基本组成单位是函数
D 在C程序中,注释说明只能位于一条语句的后面
🔎正确答案:
D
在C程序中,注释说明只能位于一条语句的后面
【解析】:
在C程序中,注释可以位于一条语句的后面,也可以位于一行的开头,或者在任何有效的位置。注释用于解释代码的含义,提高代码的可读性,而不影响程序的执行。在C语言中,有两种类型的注释:
- 单行注释:以
//
开始,从双斜杠后面的内容一直到行末都被视为注释。- 多行注释:以
/*
开始,以*/
结束,之间的内容被视为注释。所以,在C程序中,注释可以位于任何位置,不仅仅是一条语句的后面。
- 以下叙述
正确
的是()
A 在C程序中,main函数必须位于程序的最前面
B C程序的每行中只能写一条语句
C C语言本身没有输入输出语句
D 在对一个C程序进行编译的过程中,可发现注释中的拼写错误
🔎正确答案:
C
C语言本身没有输入输出语句
【解析】:
- 选项
A
错误,main
函数可以放在C程序的任何位置,只要程序是按顺序编译的即可;- 选项
B
错误,在C语言中,一条语句可以跨多行,也可以一行写多条语句;- 选项
C
正确,C语言本身没有输入输出语句,需要调用函数实现输入输出(例如printf
和scanf
函数);- 选项
D
错误,注释中的拼写错误对编译没有影响,编译不会检查注释中的内容。
- 执行如下代码,
c
的值是:()
int a = 0, c = 0;
do
{--c;a = a - 1;
} while (a > 0);
A 0
B 1
C -1
D 死循环
🔎正确答案:
C
-1
【解析】:
该循环会一直执行,直到a
的值不大于 0。初始时,a
的值为 0,因此循环会至少执行一次。
在每次循环中,c
会递减 1,a
会减少 1。因此,第一次循环时,c
的值会从 0 减少到 -1,而a
的值会从 0 减少到 -1。由于a
的值已经不大于 0,因此循环会在第一次执行后终止。
因此,最终c
的值是 -1。
- 假定 x 和 y 为 double 型,则执行 x=2 ; y=x+3/2; 后 y 的值为()
A 3.500000
B 3
C 2.000000
D 3.000000
🔎正确答案:
D
3.000000
【解析】:
在 C 语言中,整数除法的结果会被截断为整数部分,所以3/2
的结果是1
。然后这个结果1
会与x
(初始值为2
)相加,所以y
的计算过程是y = x + 1
,即y = 2 + 1
,结果是3.000000
。
- 以 下 for 循 环 的 执 行 次 数 是()。
for(x=0,y=0; (y=123)&&(x<4); x++) ;
A 是无限循环
B 循环次数不定
C 4次
D 3次
🔎正确答案:
C
4次
【解析】:
- 这个
for
循环的执行次数取决于条件(y=123)&&(x<4)
的值。y
的初始值被设为0
,然后在每次循环中,y
的值都会被重新赋值(y=123)
。那么条件表达式就会变为(123 && x < 4)
,由于123
是true
,所以整个表达式的结果就取决于x < 4
。因此,只要x
的值小于4
,for
循环就会一直执行下去。- 因此,
for
循环会执行4
次,因为x
初始值1
为0
,当x
的值等于4
时,条件(x < 4)
就为false
,循环会停止执行。
- 若有定义语句: int year=1009 , *p=&year ;以下
不能
使变量 year 中的值增至 1010 的语句是()
A *p+=1;
B (*p)++;
C ++(*p)
D *p++
🔎正确答案:
D
*p++
【解析】:
- A.
*p+=1;
:这将通过指针p
访问year
再修改year
变量的值,将其增加 1,变为 1010。- B.
(*p)++;
:同上,先访问year
变量再将变量的值加 1。- C.
++(*p);
:同上,只是后置++改为前置++了。- D.
*p++;
:这将会对指针p
先进行自增操作,这会将 p 指向下一个地址,但不会修改year
的值。
- 选择表达式
11|10
的结果(本题数值均为十进制)
A 11
B 10
C 8
D 2
🔎正确答案:
A
11
【解析】:
|
是按位或运算符。将两个数字的二进制表示进行按位或运算,即对应位上只要有一个为1,结果就为1,否则为0。11
的二进制表示是1011
,而10
的二进制表示是1010
。 按位或运算后,对应位上得到1、0、1、1
,转换为十进制就是11
,因此结果为11|10 = 11
。
11: 101110: 1010-----------
按位与结果: 1011
- char a ; int b ; flat c ; double d ;则表达式 a*b+d-c 值的类型为()
A float
B int
C char
D double
🔎正确答案:
D
double
【解析】:
知识点
:根据C语言中的类型转换规则,表达式中涉及到的操作数会被自动提升为更大的类型,以使得表达式能够正常计算。在这里,我们可以考虑操作数的类型提升顺序:char -> int -> float -> double。
所以,根据表达式a*b+d-c
,其中a
和b
的类型是char
和int
,它们会被提升为int
类型,而c
的类型是float
,会被提升为double
类型。因此,整个表达式会以double
类型进行计算,结果的类型也是double
。
🌴编程题
📌求两个数的最小公倍数
【牛客网链接:HJ108 求最小公倍数】
【题目信息】:
【方法一】:暴力求解,假设最小公倍数为m
,m
从1
开始每次增加1
,直到m
能同时整除输入的这两个数时,m
就是最小公倍数。
#include<stdio.h>
int main()
{int a, b;while (scanf("%d %d", &a, &b) != EOF)//多组输入{int m = 1;while (1){if (m % a == 0 && m % b == 0)break;m++;}printf("%d\n", m);}return 0;
}
【方法二】:用其中一个数(假设为a
)* i
,i
从 1
开始依次递增 1
,再利用这个数(即a* i
)%
另一个数(假设为b
),直到 (a*i % b == 0
)时,a * i
即为最小公倍数。(相比于方法一大大提高了效率)
#include <stdio.h>int main()
{int a, b;while (scanf("%d %d", &a, &b) != EOF)//多组输入{int i = 1;while (i * a % b != 0){i++;}printf("%d\n", i * a);}return 0;
}
【方法三】:两个数乘积除以它们的最大公因数(求最大公因数方法:辗转相除法)。
辗转相除法介绍:
辗转相除法,也称为欧几里德算法,是一种用于计算两个数的最大公约数(GCD)的方法。该算法基于以下原理:两个整数的最大公约数等于其中较小的数和两数相除余数的最大公约数。
以下是辗转相除法求最大公约数的详细步骤和示例:
假设要求两个数 a 和 b 的最大公约数,其中 a >= b。
计算 a 除以 b 的余数,记为 r(a = b * q + r,其中 q 是商,r 是余数)。
若 r 等于 0,则 b 即为最大公约数,算法结束。
若 r 不等于 0,则将 b 赋值给 a,将 r 赋值给 b,然后回到步骤 2。
重复执行步骤 2~4,直到余数为 0。此时的 b 就是两个数的最大公约数。
以下是一个示例,求解最大公约数 GCD(48, 18):
初始值:a = 48,b = 18。
计算商和余数:48 ÷ 18 = 2 余 12。
更新 a 和 b:a = 18,b = 12。
计算商和余数:18 ÷ 12 = 1 余 6。
更新 a 和 b:a = 12,b = 6。
计算商和余数:12 ÷ 6 = 2 余 0。
余数为 0,算法结束。最大公约数为 6。
通过上述步骤,我们得出了最大公约数 GCD(48, 18) = 6。
辗转相除法的优点在于它的迭代过程非常简单且有效。它被广泛用于计算最大公约数和最小公倍数,以及其他一些数学和算法问题中。
#include <stdio.h>int main()
{int a, b;while (scanf("%d %d", &a, &b) != EOF)//多组输入{int product=a*b;//计算a、b的乘积int r=a%b;while(r!=0){a=b;b=r;r=a%b;}//当c==0时,b的值就是最大公因数printf("%d\n",product/b);}return 0;
}
📌倒置字符串
【牛客网链接:OR62 倒置字符串】
【题目信息】:
【方法一】:直接逆序打印,从后往前依次打印单词,因为单词间以空格字符为界,所以可以从字符串末尾遍历计算出空格的位置,每次计算到空格的位置,那么此位置+1就是单词首字母的位置,拿到这个地址打印字符串即可,打印完后将空格位置改成 ‘\0’ ,依次重复上述步骤,直到遍历完这个字符串为止。
#include<stdio.h>
#include<string.h>int main()
{char arr[100] = { 0 };gets(arr);int sz = strlen(arr);while (sz){if (arr[sz] == ' '){printf("%s ", &arr[sz + 1]);arr[sz] = '\0';//打印完将字符串截断,去除打印完的字符}sz--;}printf("%s", arr);return 0;
}
【方法二】:先逆序整个字符串,再逆序每个单词(也可以反过来,先逆序每个单词,再逆序整个字符串)
#include<stdio.h>
#include<string.h>
void reverse(char* left, char* right)//逆序字符串函数
{while (left < right){char temp = *left;*left = *right;*right = temp;left++;right--;}
}int main()
{char str[101] = {0};//I like beijing.\0// 注意不能使用scanf,scanf遇到空格,一次输入接收就结束了gets(str);//输入字符串//scanf("%[^\n]s", str);//输入一串字符,不包含\n。(第二种输入字符串方法)// int ch = 0;// int i = 0;// while ((ch = getchar()) != '\n')// {// str[i++] = ch;// } //第三种输入字符串的方法(使用getchar)int len = strlen(str);//1.逆序字符串reverse(str, str + len - 1);//2.逆序每个单词char* cur = str;while (*cur){char* start = cur;//记录单词首字符的位置while(*cur != ' ' && *cur != '\0'){cur++;}char* end = cur - 1;//记录单词末尾的位置reverse(start, end);if (*cur != '\0'){cur++;}}printf("%s\n", str);return 0;
}
🔥今天的内容就到这里了,有什么问题的话欢迎大家在评论区讨论,也可以私信博主为你解答,如果觉得博主的文章还不错的话, 请👍三连支持一下博主哦🤞
相关文章:

C语言初阶测评题:测试你的基础知识和编程技能!!
💓博客主页:江池俊的博客⏩收录专栏:C语言刷题专栏👉专栏推荐:✅C语言初阶之路 ✅C语言进阶之路💻代码仓库:江池俊的代码仓库🎉欢迎大家点赞👍评论📝收藏⭐ 文…...

使用HTTPS模式建立高效爬虫IP服务器详细步骤
嘿,各位爬虫小伙伴们!想要自己建立一个高效的爬虫IP服务器吗?今天我就来分享一个简单而强大的解决方案——使用HTTPS模式建立工具!本文将为你提供详细的操作步骤和代码示例,让你快速上手,轻松建立自己的爬虫…...

每日一题 230二叉搜索树中第K小的元素(中序遍历)
题目 给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数)。 示例 1: 输入:root [3,1,4,null,2], k 1 输出:1示例 2: 输入…...

文件包含漏洞及漏洞复现
文件包含漏洞 1. 文件包含概述 程序开发人员通常会把可重复使用函数或语句写到单个文件中,形成“封装”。在使用某个功能的时候,直接调用此文件,无需再次编写,提高代码重用性,减少代码量。这种调用文件的过程通常称为…...

Android 手游聚合SDK小知识(一)
Android 手游聚合SDK小知识(一) Android 手游聚合SDK小知识(二) 聚合分包 前言 回头想想,在安卓游戏SDK这个领域,我也呆了4年了,从啥都不懂的小菜鸟,逐渐靠自己不断学习,对这个行业也算有了一些理解,趁着…...

桂理理工大题
#include <stdio.h> #include <stdlib.h>int getMax(int n); int getMin(int n); int range(int n); static int count1; //作为全局变量控制每次的序列号int main(){int num;int i,j;do{printf("输入黑洞数:\n");scanf("%d",&…...
Jmeter接口测试+压力测试
接口测试 Jmeter-http接口脚本 一般分五个步骤:(1)添加线程组 (2)添加http请求 (3)在http请求中写入接入url、路径、请求方式和参数 (4)添加查看结果树 (5)…...

mysql‘逻辑删除‘和‘唯一索引‘冲突的解决方案
一、冲突出现原因 在user表中将name字段设置唯一索引,添加逻辑删除字段del_flag(1为删除,0为未删除)之后,将name张四的字段删除,再添加一个name张四的记录则会出现冲突 二、解决 1.设置唯一索引组&#x…...

MQTT,如何在SpringBoot中使用MQTT实现消息的订阅和发布
一、MQTT介绍 1.1 什么是MQTT? MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于…...

gRPC-Gateway 快速实战
今天来分享一波 gRPC-Gateway , 之前咱们有分享过什么是 gRPC 及其使用方式,可以看看这些关于 gRPC 的历史文章: gRPC介绍 gRPC 客户端调用服务端需要连接池吗? gRPC的拦截器 gRPC的认证 分享一下 gRPC- HTTP网关 I 今天主要是分…...

〔019〕Stable Diffusion 之 单图中绘制多人分区域写提示词 篇
✨ 目录 🎈 下载区域绘制插件🎈 区域绘制使用🎈 参数讲解和基础使用🎈 Lora 自组🎈 Lora 自组的使用🎈 分区扩散🎈 分区域提示🎈 下载区域绘制插件 在绘制图片时,经常绘制的图片不仅仅是 单人图片,也可能需要绘制 多人图片那么通过正常方式绘制出来的多人图片…...

Scala入门,idea关联Scala
Scala 介绍 Scala是一种多规范的编程语言,它结合了面向对象编程(OOP)和函数式编程(FP)的特征,Scala的名字源于”Scalable language“,意为”可伸缩语言“。2003年开发的,并在JVM&a…...

3DCAT携手华为,打造XR虚拟仿真实训实时云渲染解决方案
2023年5月8日-9日,以 因聚而生 众志有为 为主题的 华为中国合作伙伴大会2023 在深圳国际会展中心隆重举行。本次大会汇聚了ICT产业界的广大新老伙伴朋友,共同探讨数字化转型的新机遇,共享数字化未来的新成果。 华为中国合作伙伴大会2023现场&…...

Spring Security注销后未正确保存空的SecurityContext漏洞CVE-2023-20862
文章目录 0.前言漏洞Spring Security介绍 1.参考文档2.基础介绍3.解决方案3.1. 升级版本3.2. 临时替代方案 4.Spring Security使用教程简单代码示例 0.前言 背景:公司项目扫描到 Spring-security 组件 注销后未正确保存空的SecurityContext CVE-2023-20862 漏洞 高…...

11、监测数据采集物联网应用开发步骤(8.2)
监测数据采集物联网应用开发步骤(8.1) 新建TCP/IP Client线程类com.zxy.tcp.ClientThread.py #! python3 # -*- coding: utf-8 -Created on 2017年05月10日 author: zxyong 13738196011 import datetime import socket import threading import timefrom com.zxy.adminlog.Us…...

【PWN · ret2text | RISC-V异构】[2023 羊城杯]login
第一道异构PWN的题目,没做出来。。。。但是是因为工具没有 QAQ 目录 前言 一、食用工具 Ghidra 安装使用 二、解题思路 三、exp 总结 前言 我们context.arch经常是i386和amd64,突然遇到RISC-V架构的题目,一是本地运行不了(…...

【HBZ分享】TCP可靠性传输如何保证的?以及传输优化之Nagle算法
ACK机制 ACK机制是发送方与接收方的一个相互确认客户端向服务端发送连接请求,此时服务端要回馈给客户端ACK,以表示服务端接到了客户端请求,这是第一和的第二次握手客户端接收到服务端响应后,同样也要回馈服务端的响应,…...

智能电销机器人,主要体现的价值是什么
21世纪科技的迅速发展,人工智能逐渐走入大家的视线,越来越多的机器人出现在我们生活中。见的最多的有电销公司的智能语音机器人、在仓库拣货打包的机器人、商场店铺供娱乐对话的机器人。机器人活跃在各行各业中,降低了人工成本,代…...

Win7系统电脑开机总出现硬盘自检的简单解决方法
你是不是经常会遇到电脑开机进行硬盘自检,而且每次开机都检查很久不能跳过;怎么才能跳过这一步骤呢?下面教大家如何让Win7系统电脑在开机的时候跳过硬盘自检这一步骤,加快开机时间。 解决步骤: 1、按下“Win R”快捷键…...

计网第四章(网络层)(五)
目录 静态路由配置 默认路由: 特定主机路由: 示例: 广播域和冲突域: 静态路由配置 在第四节(计网第四章(网络层)(四)_永无魇足的博客-CSDN博客)有提到过…...

ios 手机浏览器,点击输入框页面会放大
一个普通的h5静态页面,在ios手机上用浏览器打开,发现每次聚焦输入框的时候整个页面都会放大! 解决办法在html的头部meta标签中设置 user-scalableno viewport meta 标记 - HTML(超文本标记语言) | MDN...

全局异常处理
案例一: 自定义异常 public class StudentException extends RuntimeException {private Integer code;private String msg;public StudentException(Integer code, String msg) {this.code code;this.msg msg;}/*** 这里需要重写 getMessage方法,否…...

更健康舒适更科技的照明体验!SUKER书客护眼台灯 L1上手体验
低价又好用的护眼台灯是多数人的需求,很多人只追求功能性护眼台灯,显色高、无频闪、无蓝光等基础需求。但是在较低价格中很难面面俱到,然而刚发布的SUKER书客L1护眼台灯却是一款不可多得的性价比护眼台灯,拥有高品质光源ÿ…...

Locked勒索病毒:最新变种.locked袭击了您的计算机?
导言: 在今天的数字时代,勒索病毒已经不再是仅仅让数据变得不可访问的小威胁。 .locked 勒索病毒,作为其中的一种,以其高度复杂的加密算法和迅速变化的攻击手法而备受恶意分子喜爱。本文91数据恢复将带您深入了解 .locked 勒索病毒…...

随机森林算法
介绍 随机森林是一种基于集成学习的有监督机器学习算法。随机森林是包含多个决策树的分类器,一般输出的类别是由决策树的众数决定。随机森林也可以用于常见的回归拟合。随机森林主要是运用了两种思想。具体如下所示。 Breimans的Bootstrap aggregatingHo的random …...

如何将国标规范用EndNote插入到英文期刊中,自定义文献插入指南
EndNote自定义文献 1.插入国标JTG 2034-2020这种新建一个StandardReference填入信息参考 插入英文期刊规范ASTM 1.插入国标JTG 2034-2020这种 首先找到大家要投稿的英文期刊,然后去找那些中…...

重写 UGUI
重写Button using UnityEngine; using UnityEngine.UI; public class MyButton : Button {[SerializeField] private int _newNumber; }using UnityEditor;//编辑器类在UnityEditor命名空间下。所以当使用C#脚本时,你需要在脚本前面加上 "using UnityEditor&q…...

合宙Air724UG LuatOS-Air LVGL API控件--容器 (Container)
容器 (Container) 容器是 lvgl 相当重要的一个控件了,可以设置布局,容器的大小也会自动进行调整,利用容器可以创建出自适应成都很高的界面布局。 代码示例 – 创建容器 cont lvgl.cont_create(lvgl.scr_act(), nil) lvgl.obj_set_auto_re…...

代码随想录训练营第41天|343.整数拆分,96.不同的二叉搜索树
代码随想录训练营第41天|343.整数拆分,96.不同的二叉搜索树 343.整数拆分文章思路代码 96.不同的二叉搜索树文章思路代码 总结 343.整数拆分 文章 代码随想录|0343.整数拆分 思路 二刷不难 d p [ i ] M a x j ( m a x ( j 1 , d p [ j ] ) ∗ ( i − j ) ) \…...

高防服务器与云防产品都适用哪些情况
高防服务器与云防护产品(如高防IP,高防CDN)都可以对DDOS、CC等攻击进行防护,在现如今的互联网市场上,不法分子经常会通过DDOS、CC等攻击服务器,干扰业务正常运行,以此来获得利益。 高防服务器是…...