1.
结果:127 -128
signed char的范围是-128~127
unsigned char的范围是0~256
计算a-ch是把ch转换成整数,而输出ch是进行了类型转换为char类型,128超出了char的范围,所以就是-127了。
2.
*
结果:Xi You Linux Group 2021
考察点就是printf的返回值是打印字符的个数
西邮Linux兴趣小组2022年纳新面试题解析_杜子咕咕叫!的博客-CSDN博客
3.
#include<stdio.h>
int i = 2;//全局变量作用域是整个源程序
void func()
{
if(i != 0)
{
static int m = 0;//使用static修饰符定义静态局部变量,它的生命周期是整个程序,只会被初始化一次
int n = 0;
n++;
m++;
printf("m = %d, n = %d\n", m, n);
//m=1,n=1
//m=2,n=1
i--;
func();
}
else
return;
}
int main(int argc, char *argv[])
{
func();
return 0;
}
4.
结果:ch=A i=A f=A
分析:A的ASCII值是65
33554433的二进制是0000 0010 0000 0000 0000 0000 0000 0001
右移24位为0000 0000 0000 0000 0000 0000 0000 0010(十进制为2)
‘?’的ASCII码是63,63+2=65就是A
5.
结果:
&a,&a[0],&a[0][0]的地址相同,但是&a代表整个数组的地址,a是一个二维数组,&a[0]代表的是数组第一行的地址,&a[0][0]代表的是第一行第一个元素的地址
&a+1代表下一个数组的地址,&a[0]+1代表的是数组第二行的地址,&a[0][0]+1代表的是第一行第二个元素的地址
6.
功能是:想输出array数组中的值
array在函数作用完后会自动释放内存,所以找不到此数组的地址,使p是野指针
7.
结果:16 8 25 24
sizeof是运算符,计算的是你使用的操作数所占的空间字节大小,包括’\0’,而strlen是函数,计算的是字符串的长度,不包括’\0’。
注意’\ddd’代表三位八进制,‘\t’代表水平指标符,’\b’代表退格符都只占一个字节
8.
结果:XiyouLinuxGroup2021
Waiting for y0u!
||和&&是由左到右判断
||左边为真就不用判断右边啦,&&左边为假也就不用判断右边啦
具体看本人2022年题解
9.
随机输入一个数字,a=c
scanf("a=%d",(int*)c)//是指向a的地址并且赋值给c
10.
谈谈C语言从源文件变为可执行文件之间发生的过程详解(C程序的编译链接运行)
11.
结果:XiyouLinuxGroup2021
考察点与2021,2022 年一样参考一下
12.
通过冒泡排序输出了排序后的结果,更多关于fgets的用法fgets函数及其用法,C语言fgets函数详解