10.2指针

小测验9.1

1、单选题:
‌对于:​int a[] = {5, 15, 34, 54, 14, 2, 52, 72};
int *p = &a[5];‌则:​‌p[-2]的值是?​‌​
选项:
A: 编译出错,因为数组下标越界了
B: 运行出错,因为数组下标越界了
C: 54
D: 2
答案: 【 54

2、多选题:
‍如果:‌int a[] = {0};
int *p = a;‍则以下哪些表达式的结果为真?‌
选项:
A: p == a[0]
B: p == &a[0]
C: *p == a[0]
D: p[0] == a[0]
答案: 【 p == &a[0];
*p == a[0];
p[0] == a[0]

3、判断题:
​以下变量定义:‏​int* p,q;‏​中,p和q都是指针。‏
选项:
A: 正确
B: 错误
答案: 【 错误

4、填空题:
​对于:​int a[] = {5, 15, 34, 54, 14, 2, 52, 72};
int *p = &a[1];​则:​​p[2]的值是?​
答案: 【 54

小测验9.2

1、单选题:
‌对于以下代码段,正确的说法是:‍char *p;
while (1) {
    p = malloc(1);
    *p = 0;
}‌‍
选项:
A: 最终程序会因为没有没有空间了而退出
B: 最终程序会因为向0地址写入而退出
C: 程序会一直运行下去
D: 程序不能被编译
答案: 【 最终程序会因为向0地址写入而退出

2、单选题:
‏对于以下代码段:‎int a[] = {1,2,3,4,5,};
int *p = a;
int *q = &a[5];
printf("%d", q-p);‏当sizeof(int)为4时,以下说法正确的是:‎
选项:
A: 因为第三行的错误不能编译
B: 因为第三行的错误运行时崩溃
C: 输出5
D: 输出20
答案: 【 输出5

3、判断题:
‏使用malloc就可以做出运行时可以随时改变大小的数组‌
选项:
A: 正确
B: 错误
答案: 【 错误

11字符串

第二次单元测验

1、单选题:
​下面的代码段执行后,输出的结果是:‎int i=0;
if ( i==0 ) {
    int i=3;
}
printf("%dn", i);​‎
选项:
A: 0
B: 3
C: 1
D: 2
E: 4
答案: 【 0

2、单选题:
​下面哪个选项可以交换指针p和q所指的int型变量的值?​
选项:
A: temp = *p; 
*p = *q; 
*q = temp;
B: temp = p; 
p = q; 
q = temp;
C: temp = p; 
*p = *q; 
q = temp;
D: temp = &p; 
*p = *q; 
q = *temp;
答案: 【 temp = *p; 
*p = *q; 
*q = temp;

3、单选题:
‏若有变量定义:​‏int a = 5, *p = &a, *q = &a;则下面不能做的运算是:​‏​
选项:
A: p=a;
B: q=a;
C: p=q;
D: a=p-q;
E: a=(*p)*(*q);
答案: 【 p=a;;
q=a;

4、单选题:
‌若有变量定义​‌int x, y=5, *p=&x;​‌则能完成x=y的选项是:​
选项:
A: *p=y;
B: x=y;
C: x=*p;
D: x=&y;
E: *p = &y;
答案: 【 *p=y;;
x=y;

5、单选题:
​若有变量定义:‌​int a[][3] = {1,2,3,4,5,6,7};‌​则数组a的第一维的大小是:‌
选项:
A: 3
B: 2
C: 4
D: 5
E: 6
F: 7
G: 1
答案: 【 3

6、单选题:
‌若二维数组a有m列,则在a[i][j]之前的元素个数是‌
选项:
A: i*m+j
B: j*m+i
C: i*m+j-1
D: j*m+i-1
答案: 【 i*m+j

7、单选题:
‌若有以下数组定义和函数调用,则函数fun的原型为:‌int a[3][4] = {1};
fun(a);‌‌
选项:
A: fun(int a[][4]);
B: fun(int a[][]);
C: fun(int a[]);
D: fun(int a[3][]);
答案: 【 fun(int a[][4]);

8、单选题:
​若函数的参数是数组,则传递给这个参数的值是:‍
选项:
A: 数组的首地址
B: 数组的第一个元素的地址
C: 整个数组被拷贝过去
D: 数组元素的个数
E: 数组第一个元素的值
答案: 【 数组的首地址;
数组的第一个元素的地址

9、单选题:
‏以下数组初始化错误的是:‍
选项:
A: int d[2][3] = {{1,2},{3,4},{5,6}};
B: int a[2][3] = {0};
C: int b[][3] = {{1,2},{0}};
D: int a[][3] = {1,2,3,4,5,6};
答案: 【 int d[2][3] = {{1,2},{3,4},{5,6}};

10、单选题:
‍假如int类型变量占据4个字节,变量​‍int x[10] = {0,2,4};​‍则x在内存中占据的字节数是:​
选项:
A: 40
B: sizeof(int)*10
C: sizeof(x)
D: 12
E: 4
F: 3
答案: 【 40;
sizeof(int)*10;
sizeof(x)

11、单选题:
​若有数组:​​char x[] = "China";​​则x所占据的空间为:​
选项:
A: 6个字节
B: sizeof(x)
C: 4个字节
D: 5个字节
E: 8个字节
F: 7个字节
答案: 【 6个字节;
sizeof(x)

12、单选题:
‎如果i是变量,而p是指向i的指针,则下列哪个表达式可以代替i?‎
选项:
A: *p
B: *&i
C: p
D: &i
E: &p
F: *&p
G: &*p
H: *i
I: &i
J: &*i
答案: 【 *p;
*&i

13、单选题:
‏以下不能正确进行字符串初始化的语句是:‎
选项:
A: char str[5] = "good!";
B: char str[5] = {'g', 'o', 'o', 'd', '!'};
C: char str[] = {'g', 'o', 'o', 'd', '!'};
D: char str[] = "good!";
E: char str[8] = "good!";
F: char *str = "good!";
G: char&nbsp

剩余75%内容付费后可查看

发表评论

电子邮件地址不会被公开。 必填项已用*标注