网协安全组二面试题
导航
返回网络安全分类
这是我大一加入网协安全组的二面试题。
算法题
棋盘问题
设有一个N×M方格的棋盘(1≤N≤100,1≤M≤100)
求出该棋盘中包含有多少个正方形、多少个长方形(不包括正方形)。
例如:当N=2,M=3时:
正方形的个数有8个:即边长为1的正方形有6个;
边长为2的正方形有2个。
长方形的个数有10个:
即
2×1的长方形有4个
1×2的长方形有3个:
3×1的长方形有2个:
3×2的长方形有1个:
如上例:输入:2,3
输出:8,10
1 |
|
倒计时
设计一个倒计时的程序。下面仅演示分钟和秒的递减输出,不包含每秒等待,不能直接作为真实计时器;输入要求分钟非负、秒数为0至59。
1 |
|
C语言基础
代码问题
1、找出下面代码的问题
1 |
|
读代码
阅读下面语句,写出输出结果
1.执行语句printf(“%c”,’A’+32);屏幕显示____(“a”)
在ASCII兼容字符集中,A的编码是65,a的编码是97,所以此例输出a。C标准不保证所有执行字符集都满足这个差值,通用大小写转换应使用<ctype.h>中的函数。
2.执行语句printf(“%d”,-1 > sizeof(int));屏幕显示____(“1”)
sizeof的结果类型是size_t。在常见的32/64位平台上,通常算术转换会将-1转换为相应无符号类型的最大值,因此此例输出1;数值不一定是4294967295,也不是发生有符号溢出。严格来说结果取决于实现的整数类型和转换规则。
3.执行语句printf(“%x”,-1);原题预期为____(“ffffffff”)
%x要求对应参数为unsigned int,而原题传入的是int,不能把它当作可移植的标准写法。改为printf("%x", (unsigned int)-1);时,转换按无符号整数规则得到UINT_MAX;在32位unsigned int平台上输出ffffffff,位宽不同则结果不同。
4.执行语句printf(“%d”,!9);屏幕显示____(0)
c语言中非零为真,9代表真,!9代表假(0)。
注意:sizeof的结果和strlen的返回值都是size_t,它是实现定义的无符号整数类型,不一定是unsigned long。C99及以后用%zu输出,例如printf("%zu", sizeof(int));。类型转换和格式要求参见C11委员会草案N1570的6.3.1.3、6.3.1.8和7.21.6.1节。