2019题目

2019

int main(int argc, char *argv[]) {
for (unsigned int i = 3; i >= 0; i--)
putchar('=');
}

因为i为无符号数,所以i的值永远大于等于0,将无法退出循环。
3.

void f() {
printf("%d\n", X*X);
static int a = 0;
int b = 0;
printf("%d, %d\n", ++a, ++b);
}

b的作用域只有f,但a为静态局部变量。
4.

int main(void) {
x = -1, y = 4, t = -1
x = 0, y = 5, t = 1printf("%d\n", printf("Xiyou Linux Group2%d", printf("")));
}

函数printf从右到左压栈,然后将先读取放到栈底,最后读取的放在栈顶,处理时候是从栈顶开始的,所以我们看见的结果是,从右边开始处理的。
6.

int main(int argc, char *argv[]) {
char x = -2, y = 3;
char t = (++x) | (y++);
printf("x = %d, y = %d, t = %d\n", x, y, t);
t = (++x) || (y++);
printf("x = %d, y = %d, t = %d\n", x, y, t);
}

输出为:

x = -1, y = 4, t = -1
               x = 0, y = 5, t = 1

8.i

nt val = 2018;
int *pi = 2019;
//pi指向2019这个地址
pi = &val;
//pi指向val
*pi = 0;
//等价于val=0;
int main(int argc, char *argv[]) {
char *p = (char *)malloc(sizeof(char) * 20),
*q = p;
scanf("%s %s", p, q);
printf("%s %s\n", p, q);
}

p 和 q 都是指向那块动态开辟的空间,指向的为同一块内存空间。
在输入数据时,首先输入 xiyou ,这时 p 所指向的空间存储的数据就为xiyou 。由于 q 与 p 指向同一块空间,q 此时指向的也是 xiyou。 这时又给 q 赋值,将 Linux输入给 q 。q = p ,Linux这时就将 xiyou给覆盖掉了。所以这个程序的输出结果为 Linux Linux。
10.

int main(int argc, char *argv[]) {
int a[4] = { 2, 0, 1, 9 }; 
printf("%p, %p\n", a, &a); 
printf("%p, %p\n", a + 1, &a + 1);
}

每次输出结果不同,因为编译器给数组开辟的空间地址不同。
11.

int f(int n)
{
    int s=0;
    if(n==1)
    return 1;
    else if(n==2)
    return 1;
    else
    s=f(n-1)+f(n-2);
    return s;
}

13.大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;这和我们的阅读习惯一致。
小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值