(1)实现防火墙的主流技术有哪些?
实施防火墙主要采用哪些技术 - 服务器 - 亿速云 (yisu.com)
(2)
- char arr[][2] = {'a', 'b', 'c', 'd'};
- printf("%d", *(arr+1));
- 输出的是谁的地址?字符c
- 测试代码如下
- char arr[][2] = {'a', 'b', 'c', 'd'};
- printf("%d\n", *(arr+1));
- printf("%x\n", *(arr+1));
- printf("%d %c", &arr[1][0], arr[1][0]);
-
- 输出结果如下:
- -1454471282
- a94e878e
- -1454471282 c
(3)
- int main()
- {
- printf("%p", main);
- return(0);
- }
- 上述代码会死循环吗?不会
(4)
- int main()
- {
- int a = 4;
- a += a*a<<1+2;
- printf("%d", a);
- return(0);
- }
- 输出132,a = 4 + (4*4)<<(1+2) = 132
- 算数运算优先级大于移位运算符>赋值运算符
(5)如果两个动态库包含一个同名的全局函数,则他们不能同时链接?
C 多个动态库存在同名函数问题处理方法:-fvisibility=hidden_c语言库函数重名_万能菜道人的博客-CSDN博客 C/C++多个链接库含有同名函数,编译会报错吗_c 语言连接两个静态库方法一样没有报错_杰特JET的博客-CSDN博客
(6)
- int main()
- {
- int ii = 0;
- printf("%d,%d,%d", ++ii, ++ii, ++ii);
- return(0);
- }
- 输出3,3,3
(7)
- void fun(char a[100]) {
- char b[100];
- printf("%d, %d", sizeof(a), sizeof(b));
- }
-
- int main()
- {
- char a[100];
- fun(a);
- return(0);
- }
- 64位系统中输出8,100
(8)内核空间和用户空间都属于虚拟内存空间吗?内核为系统所有进程共享吗?
虚拟内存、内核空间和用户空间_optics_ts的博客-CSDN博客
linux虚拟内存与物理内存,内核态与用户态_物理内存被分为内核和用户?_selfsongs的博客-CSDN博客
(9)
- union x{
- int a;
- char b[2];
- }t;
-
- int main()
- {
-
- t.b[0] = 10;
- t.b[1] = 1;
- printf("%d", t.a);
- return(0);
- }
- 输出266
(10)
- #include
-
- using namespace std;
-
- class Base {
- virtual void method() {cout << "from Base" << endl;}
- public:
- virtual ~Base() {method();}
- void baseMethod() {method();}
- };
-
- class A : public Base {
- void method() { cout << "from A" << endl;}
- public:
- ~A() { method();}
-
- };
- int main()
- {
- Base* base = new A;
- // 基类指针调用非虚方法,则这里调用的是父类的baseMethod()方法
- // 父类方法中又调用了method(),而这个方法是虚方法,相当于指向子类的基类指针调用
- // method,发生多态,先调用子类的method方法,输出from A
- base->baseMethod();
- // delete base,由于析构函数虚函数,所以会调用子类的析构函数输出from A
- // 然后调用父类的析构函数输出from Base
- delete base;
- return 0;
- }
-
- 测试输出:(以上是个人理解,不对之处,请指出)
- from A
- from A
- from Base
(11)
- int main()
- {
- // 然后调用父类的析构函数输出from Base
- char* str = "hello, world";
- str[1] = 'a';
- printf("%s", str);
- return 0;
- }
- 段错误,通过char* str = 字符串这种方式定义的,字符串在常量区,不能原地修改。
C语言:字符串内容的修改_c语言修改字符串_不吃饭就会放大招的博客-CSDN博客
(12)对文件的操作模式中,a和a+、w和w+、r和r+有什么区别
r只读模式,文件必须存在;
r+读写模式,文件必须存在;
a追加模式,文件存在则追加,文件不存在则创建;
w写模式,文件存在则覆盖,文件不存在则创建;
w+读写模式,文件存在则覆盖,文件不存在则创建;
a+读写模式,和a一样;
如果以二进制模式,则rb+,或者r+b,
(13)
- int main()
- {
- char* p_string = "0123456789";
- printf("sizeof(p_string):%d\n", sizeof(p_string));
- printf("sizeof(*p_string):%d\n", sizeof(*p_string));
- printf("char:%c\n", *p_string);
- printf("p_string=%s\n", p_string);
- printf("strlen(p_string):%d\n", strlen(p_string));
- return 0;
- }
-
- 输出:
- sizeof(p_string):8
- sizeof(*p_string):1
- char:0
- p_string=0123456789
- strlen(p_string):10
(14)
- int g_inta;
- static int g_intb;
- void fun() {
- static int intc;
- int intd;
- printf("%d,%d,%d,%d", g_inta, g_intb, intc, intd);
- }
- int main()
- {
- fun();
- return 0;
- }
-
- 输出0,0,0,0
(15)
- int main()
- {
- char str[] = {'1', 49};
- printf("%d,%d,%c,%c", str[0], str[1], str[0], str[1]);
- return 0;
- }
- 输出49,49,1,1
(16)
- class A {
- public:
- A() {cout << "A()" << endl;};
- A(int val) {cout << "A(int val)" << endl;}
- };
- int main()
- {
- A a, b(3), *p;
- return 0;
- }
- 输出
- A()
- A(int val)
- 调用两次构造函数
(17)
- void fun(char* str) {
- str = (char*)malloc(10*sizeof(char));
- strcpy(str, "hello");
-
- }
- int main()
- {
- char* str = "world";
- fun(str);
- printf("%s\n", str);
- return 0;
- }
- 输出world
(18)
- int main()
- {
- int val=100, *p=&val;
- printf("%d", *p);
- return 0;
- }
- 输出100
(19)double(*(*(*fp)(int))[5])(char) 中定义的fp是什么类型?
以下来自chatgpt回答:
表达式 `double(*(*(*fp)(int))[5])(char)` 定义了一个名为 `fp` 的函数指针,该函数指针指向一个函数,该函数具有以下特征:
1. 接受一个 `int` 类型的参数。
2. 返回一个指向数组的指针,该数组包含5个元素。
3. 每个数组元素都是一个指向函数的指针,这些函数接受一个 `char` 参数并返回 `double`。
总的来说,`fp` 是一个指向复杂函数签名的函数指针类型。这种类型的声明可能在某些高级的应用中使用,但通常很难理解和维护,因为它包含了多层指针和函数指针的组合。
单循环比赛生成网站:赢生科技 - 在线单循环赛编排 (16win.cn)