膜法家

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

rASP
Dec 22, 2017
阅读本文需要 2 分钟

Section 1

2. Given: char b='B';, the value of expression 'a'<b<'z' is ___.

在 C 语言中,表达式 'a' < b < 'z' 的意义与数学上的不同。它相当于 ('a' < b) < 'z' ,也就是先判断 'a' < b 是真(1)还是假(0),再判断这个值是否小于 'z'


6.

"Hello" + 1 相等于 "ello"


8.

char str[20] = "hello, world";
for (i = 0; str[i] != '\0'; i++)
	putchar(str[i]);

对于 for 循环判断条件的 str[i] != '\0',我们可以用 str[i] 替代,也就是说对于字符串而言,ascii 码的 0 就是


10.

对选项 B

void f(int a)
{
	if (a < 0) {int a = 6;}
}

因为对 a 的重新定义在不同的代码块中,所以可以这么做。


Section 2

5.

考察关键词 static 的作用。


6.

char x[] = "hello,world\087654321";
//printf("%s\n", x);
printf("%d#%d#", sizeof(x), strlen(x+10));

如果我们执行注释的代码,就会发现输出是 hello,world,说明 \0 被当做结束符了,但是 x 这个字符数组占用的内存空间是不变的。


11.

全局变量未初始化时默认值为 0;全局指针默认值为 NULL


12.

char str[100] = "ZhejiangU 1 3 5", s[10];
int n;
sscanf(str, "%s %*d %d %*d", s, &n);
printf("%s", &s[n]);

%*d 的作用是告诉 sscanf 跳过这个输入的内容;对于上述的代码,就是把 15 跳过,也就是说只把 3 赋值给 n


15.

对于表达式 x = y = z,它相当于 x = (y = z)。 当是对于这道题来说并没什么用…


Section 3

这种模拟运行的题目,好像没什么可讲的。碰到有函数的题目,理解清楚函数的作用就很简单啦…


Section 4

填空题…似乎更没什么可讲的了hhhh还没有 NOIP 难呢


送给可爱的八八口小姐 (。ò ∀ ó。)