大学MOOC C语言程序设计(常州大学)1453523165 最新慕课完整章节测试答案
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 
