内容正文:
编写说明:《软件与应用技术考纲百套卷》依据山东省《软件与应用技术类专业知识考试标准》编写,本套试卷共100份,分为三个部分,第一部分是知识点训练卷,每个知识点2份试卷共76份,第二部分是常考题训练卷,每个知识模块2份训练卷共12份,第三个部分是专业综合训练卷,参考历年软件与应用技术类专业真题试卷,编写了12份。
本试卷是《软件与应用技术考纲百套卷》的第11卷,按知识模块1 C语言程序设计知识6.指针的两点范围要求编写。其两点要求是:
(1)了解指针变量的定义及引用。
(2)理解指向数组的指针变量。
山东省《软件与应用技术考纲百套卷》 第11卷
知识模块1 C语言程序设计知识
6.指针 知识点训练卷
一、单项选择题(本大题共20小题,每题3分,共60分)
1. 在C语言中,指针变量存储的是:( )
A. 变量的值
B. 变量的地址
C. 变量的类型
D. 变量的长度
2. 下列哪个操作符用于间接访问指针所指向的值?( )
A. *
B. &
C. ->
D. <<
3. 假设有以下声明:`int *p, a;`,下列哪个语句是正确的?( )
A. p = &a;
B. *p = &a;
C. &p = a;
D. *p = *a;
4. 下列哪个操作符用于对指针进行自增操作?( )
A. ++
B. --
C. +=
D. -=
5. 在C语言中,空指针的值是:
A. 0
B. 1
C. -1
D. NULL
6. 下列哪个函数用于动态分配内存?( )
A. malloc()
B. calloc()
C. realloc()
D. alloc()
7. 假设有以下声明:`int arr[10], *p;`,下列哪个表达式是正确的?( )
A. p = arr;
B. p = &arr[0];
C. p = &arr;
D. p = arr[0];
8.若有以下定义和语句,则对 `a` 数组元素地址的正确引用为( )。
int a[2][3], (*p)[3];
p = a;
A. `*(p+2)`
B. `p[2]`
C. `p[1]+1`
D. `(p+1)+2`
9.若有定义:`int (*p)[4];` 则标识符 `p`( )。
A. 是一个指向整型变量的指针
B. 是一个指针数组名
C. 是一个指针,它指向一个含有四个整型元素的一维数组
D. 说明不合法
10.以下叙述错误的是( )。
A. 指针可以进行加减等算术运算
B. 指针中存放的是地址值
C. 指针是一个变量
D. 指针变量不占用存储空间
11.对于类型相同的指针变量,不能进行哪种运算?( )
A.+ B.- C.= D.==
12.指针变量p1,p2类型相同,要使p1,p2指向同一变量,哪个语句是正确的( ).
A.p2=*&p1; B.p2=**p1; C.p2=&p1; D.p2=*p1
13.下列语句定义x为指向int类型变量a的指针,正确的是( ).
A.int a,*x=a; B.int a,*x=&a; C.int *x=&a,a; D.int a,x=a;
14.假定a是一个二维数组,则a[i][j]的指针访问方式为( ).
A.*(a+i+j)
B.*(*(a+i)+j)
C.*(a+i)+j
D.*a+i+j
15.设有如下定义:
char *aa[2]={“abcd”,”PQMN”};
则下列说法中正确的是( ).
A.aa数组元素的值分别是”abcd”、”PQMN”
B.aa是指针变量,它指向含有两个数组元素的字符型一维数组
C.aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址
D.aa数组的两个元素分别存放了字符’a’和’P’的地址
16.具有相同类型的指针类型变量p与数组a,不能进行的操作是( ).
A p=a; B *p=a[0]; C p=&a[0]; D p=&a;
17.若a是整型变量,则下列表达式能得到a的值的合法形式是( ).
A.&(a+5) B.*a C.&*a D.*&a
18.若有定义:int *a[4];则标识符a是( ).
A.是一个指针数组名
B.是一个指向整型变量的指针
C.是一个指针,它指向一个含有四个整型元素的一维数组
D.定义不合法
19.若有int *p1, *p2,k; 不正确的语句是( ).
A. p1=&k B. p