????????两天没更新了,作者在复习期末考试,更新一波,祝大家都能顺利通过期末考试!!!
1. 下面程序段的运行结果是( )【多选】
char s[] = "12345", *p = s;
printf("%d\n", *(p+5));
A:字符 '\0' 的 ASCII 码值
B:0
C:字符 '5' 的地址
D:字符 '5'
本题考查的是对指针?整数和指针解引用
详谈【指针解引用】与【指针加整数】_指针解引用之后-CSDN博客
最后p + 5是 到达的\0的地址,解引用拿出来的就是\0,ASCII就是0
2. 以下程序中,while循环的次数是(? ?)
int main()
{
int i = 0;
while(i < 10)
{
if(i < 1)
continue;
if(i == 5)
break;
i++;
}
}
A:1
B:10
C:6
D:死循环,不能确定次数
本题考查的是对while循环中的continue和break语句的认识
continue语句,不执行后面语句,直接返回循环条件部分
break语句,跳出当前循环
所以本题就是一直都是i = 0 < 1 ,一直循环
3. 下面3段程序代码的效果一样吗?
int b;
(1)const int *a = &b;
(2)int const *a = &b;
(3)int *const a = &b;
A:(2) = (3)
B:(1) = (3)
C:(1) = (2)
D:都不一样
E:都一样
const在*左边:指针指向的内容不可以改变,pointer to const
const在*右边,指针本身不可被改变,const pointer
4. 有定义?int a=2.b=3,c=4;?表达式的值为()
?(a < b && !c)? ++b: a--?
A:1
B:2
C:3
D:4
5. 下列代码的输出是()
#include <stdio.h>
void print(char *s)
{
if(*s)
{
print(++s);
printf("%c", *s);
}
}
int main()
{
char str[] = "Geneius";
print (str);
return 0;
}
A:\0suiene
B:neius
C:run-time error
D:suieneG
本题考查的是函数递归
在s取到\0的地址的时候结束递归,反向输出