膜法家

2014-2015《程序设计基础》期末考试 write-up

rASP
Dec 25, 2017
阅读本文需要 1 分钟

Section 1

emmm感觉挺简单的就不讲了hhhh


Section 2

3.

char c = 255;
printf("%d", c); 

这道题嘛…是有问题的,当然之前给的解释也是错误的。

在 C 语言的标准中,int 默认是等于 signed int 的,但是并没有规定 charsigned char 还是 unsigned char

通常来说,在 x86-64 平台上,char 等同于 signed char,然而在 arm 平台上, char 等同与 unsigned char…所以这道题的正确答案应该是 -1 或者 255


5.

void swap(int *pa, *pb)
{
	int *t = pa;
	pa = pb;
	pb = t;
}
int a = 1, b = 2;
swap(&a, &b);
printf("%d#%d#", a, b);

首先,这道题目是有错误的:在定义 swap 函数时,应该写 void swap(int *pa, int *pb)

然后,我们仔细研究一下这个 swap 函数,会发现它把 papb 指向的地址进行了调换,但是并不影响主函数里的值。


11.

对于 !*("2015-01-28"+5) 这个表达式

首先 *("2015-01-28"+5) 的值是 ‘0’,那么它的逻辑非的结果是什么呢?

注意:对于 char 来说,只有 '\0' 才是真正的 0


13.

这题的指针有点复杂,打字解释不清楚,可以亲自来问我hhhh


emmm就当做给八八口的圣诞礼物吧(๑>؂<๑)