《C语言程序设计》指针-知识点训练 2026版山东省软件与应用技术类专业 考纲百套卷 第11卷

2025-07-08
| 2份
| 11页
| 114人阅读
| 0人下载

资源信息

学段 中职
学科 职教专业课
课程 C语言程序设计
教材版本 -
年级 -
章节 -
类型 题集-专项训练
知识点 指针
使用场景 中职复习
学年 2025-2026
地区(省份) 山东省
地区(市) -
地区(区县) -
文件格式 ZIP
文件大小 133 KB
发布时间 2025-07-08
更新时间 2025-07-08
作者 xkw_069767526
品牌系列 学易金卷·考纲百套卷
审核时间 2025-07-08
下载链接 https://m.zxxk.com/soft/52951620.html
价格 3.00储值(1储值=1元)
来源 学科网

内容正文:

编写说明:2026版《软件与应用技术考纲百套卷》依据2026版山东省《软件与应用技术类专业知识考试标准》编写,本套试卷共100份,分为三个部分,第一部分是知识点训练卷,每个知识点2份试卷共76份,第二部分是常考题训练卷,每个知识模块2份训练卷共12份,第三个部分是专业综合训练卷,参考历年软件与应用技术类专业真题试卷,编写了12份。 本试卷是2026版《软件与应用技术考纲百套卷》的第11卷,按知识模块1 C语言程序设计知识6.指针的两点范围要求编写。其两点要求是: (1)了解指针变量的定义及引用。 (2)理解指向数组的指针变量。 2026版山东省《软件与应用技术考纲百套卷》 第11卷 知识模块1 C语言程序设计知识 6.指针 知识点训练卷 一、单项选择题(本大题共20小题,每题3分,共60分) 1. 在C语言中,指针变量存储的是( ) A. 变量的值 B. 变量的地址 C. 变量的类型 D. 变量的长度 【答案】B 2. 若有说明:int a=2,*p=&a,*q=p;,则一下非法的赋值语句是( ) A.p=q; B.*p=*q; C.a=*q; D.q=a; 【答案】D 3. 已有定义int a=2,*p1=&a,*p2=&a;下面不能正确执行的赋值语句是( ) A.a=*p1+*p2; B.p1=a; C.p1=p2; D.a=*p1*(*p2); 【答案】B 4. 变量的指针,其含义是指该变量的( ) A. 值 B. 地址 C. 名 D. 一个标志 【答案】B 5. 在C语言中,空指针的值是( ) A. 0 B. 1 C. -1 D. NULL 【答案】D 6. 已知在程序中定义了如下的语句: int *p1,*p2; in tk; p1=&k;p2=&k; 则下列语句中不能正确执行的是( ) A.k=*p1+*p2; B.p2=k; C.p1=p2; D.k=*p1*(*p2); 【答案】B 7. 假设有以下声明:`int arr[10], *p;`,下列哪个表达式是正确的?( ) A. p = arr; B. p = &arr[0]; C. p = &arr; D. p = arr[0]; 【答案】A 8.若有以下定义和语句,则对 `a` 数组元素地址的正确引用为( )。 int a[2][3], (*p)[3]; p = a; A. `*(p+2)` B. `p[2]` C. `p[1]+1` D. `(p+1)+2` 【答案】C 9.若有说明语句:int a,b,c,&d=&c;,则能正确从键盘读入三个整数分别赋给变量a,b,c的语句是( ) A.scnaf("%d%d%d",&a,&b,d); B.scanf("%d%d%d",a,b,d); C.scanf("%d%d%d",&a,&b,&d); D.scanf("%d%d%d",a,b,*d); 【答案】A 10.若有语句int *p,a=10;p=&a;下面均代表地址的一组选项是( ) A.a,p,*&a; B.&*a,&a,*p; C.*&p,*q,&a; D.&a,&*p,p; 【答案】D 11.对于类型相同的指针变量,不能进行哪种运算?( ) A.+ B.- C.= D.== 【答案】A 12.指针变量p1,p2类型相同,要使p1,p2指向同一变量,哪个语句是正确的( ). A.p2=*&p1; B.p2=**p1; C.p2=&p1; D.p2=*p1 【答案】A 13.假设整型变量a的值为2,a的地址为2000,若欲使p为指向a的指针变量,则以下赋值正确的是( ) A.&a=3; B.*p=2; C.*p=2000; D.p=&a; 【答案】D 14.假定a是一个二维数组,则a[i][j]的指针访问方式为( ). A.*(a+i+j) B.*(*(a+i)+j) C.*(a+i)+j D.*a+i+j 【答案】B 15.设有如下定义: char *aa[2]={“abcd”,”PQMN”}; 则下列说法中正确的是( ). A.aa数组元素的值分别是”abcd”、”PQMN” B.aa是指针变量,它指向含有两个数组元素的字符型一维数组 C.aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址 D.aa数组的两个元素分别存放了字符’a’和’P’的地址 【答案】D 16.若有定义int n=2,*p=&n,*q=p;,则一下非法的赋值语句是( ) A.p=q; B.*p=*q; C.n=*q; D.p=n; 【答案】D 17.若a是整型变量,则下列表达式能得到a的值的合法形式是( ). A.&(a+5) B.*a C.&*a D.*&a 【答案】D 18.设p1和p2均为指向一个int型数组的指针变量,x为int型变量,则以下不能正确执行的赋值语句是( ) A.x=*p1+*p2; B.p2=x; C.p1=p2; D.x=*p1*(*p2); 【答案】B 19.若有int *p1, *p2,k; 不正确的语句是( ). A. p1=&k B. p2=p1 C. *p1=k+12 D. k=p1+p2 【答案】D 20.若有定义int *p,m=6,n;以下正确的程序段是( ) A.p=&n;scanf(“%d”,&p); B.p=&n;scanf(“%d”,*p); C.p=&n;*p=m; D.scanf(“%d”,&n);*p=n; 【答案】C 二、简答题(本大题共5小题,每题6分,共30分) 1. 简述指针的概念及其在C语言中的作用。 【答案】指针是一个变量,用于存储内存地址。在C语言中,指针用于间接访问内存中的数据,实现对数据的动态分配和操作。通过指针,可以实现对变量的间接访问和修改,以及对数组和字符串的高效操作。 2. 指针变量的声明方式。 【答案】指针变量的声明方式是在数据类型后面加上星号(*),例如:`int *p;` 这里声明了一个指向整型的指针变量 `p`。 3. 简述取地址操作符(&)和间接访问操作符(*)的作用。 【答案】取地址操作符(&)用于获取变量的内存地址,例如:`&a` 获取变量 `a` 的地址。间接访问操作符(*)用于通过指针访问其指向的变量,例如:`*p` 访问指针 `p` 所指向的变量。 4. 指针与数组的关联。 【答案】在C语言中,数组名表示数组首元素的地址。指针可以用来访问和操作数组元素,通过指针的算术运算,可以遍历数组元素。此外,指针还可以用于动态分配数组。 5. 指针数组和数组指针的区别。 【答案】指针数组是一个数组,其元素为指针类型,例如:`int *p[10];` 声明了一个包含10个整型指针的数组。数组指针是一个指向数组的指针,例如:`int (*p)[10];` 声明了一个指向包含10个整数的数组的指针。 三、编程题(本大题共1小题,共10分) 1. 编写程序,输入两个数,然后交换并输出。 【答案】 #include<stdio.h> main(){ int a,b,c,*p1=&a,*p2=&b; scanf("%d%d",p1,p2); c=*p1; *p1=*p2; *p2=c; printf("a=%d,b=%d",*p1,*p2); } 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $$ 编写说明:2026版《软件与应用技术考纲百套卷》依据2026版山东省《软件与应用技术类专业知识考试标准》编写,本套试卷共100份,分为三个部分,第一部分是知识点训练卷,每个知识点2份试卷共76份,第二部分是常考题训练卷,每个知识模块2份训练卷共12份,第三个部分是专业综合训练卷,参考历年软件与应用技术类专业真题试卷,编写了12份。 本试卷是2026版《软件与应用技术考纲百套卷》的第11卷,按知识模块1 C语言程序设计知识6.指针的两点范围要求编写。其两点要求是: (1)了解指针变量的定义及引用。 (2)理解指向数组的指针变量。 2026版山东省《软件与应用技术考纲百套卷》 第11卷 知识模块1 C语言程序设计知识 6.指针 知识点训练卷 一、单项选择题(本大题共20小题,每题3分,共60分) 1. 在C语言中,指针变量存储的是( ) A. 变量的值 B. 变量的地址 C. 变量的类型 D. 变量的长度 2. 若有说明:int a=2,*p=&a,*q=p;,则一下非法的赋值语句是( ) A.p=q; B.*p=*q; C.a=*q; D.q=a; 3. 已有定义int a=2,*p1=&a,*p2=&a;下面不能正确执行的赋值语句是( ) A.a=*p1+*p2; B.p1=a; C.p1=p2; D.a=*p1*(*p2); 4. 变量的指针,其含义是指该变量的( ) A. 值 B. 地址 C. 名 D. 一个标志 5. 在C语言中,空指针的值是( ) A. 0 B. 1 C. -1 D. NULL 6. 已知在程序中定义了如下的语句: int *p1,*p2; in tk; p1=&k;p2=&k; 则下列语句中不能正确执行的是( ) A.k=*p1+*p2; B.p2=k; C.p1=p2; D.k=*p1*(*p2); 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 a,b,c,&d=&c;,则能正确从键盘读入三个整数分别赋给变量a,b,c的语句是( ) A.scnaf("%d%d%d",&a,&b,d); B.scanf("%d%d%d",a,b,d); C.scanf("%d%d%d",&a,&b,&d); D.scanf("%d%d%d",a,b,*d); 10.若有语句int *p,a=10;p=&a;下面均代表地址的一组选项是( ) A.a,p,*&a; B.&*a,&a,*p; C.*&p,*q,&a; D.&a,&*p,p; 11.对于类型相同的指针变量,不能进行哪种运算?( ) A.+ B.- C.= D.== 12.指针变量p1,p2类型相同,要使p1,p2指向同一变量,哪个语句是正确的( ). A.p2=*&p1; B.p2=**p1; C.p2=&p1; D.p2=*p1 13.假设整型变量a的值为2,a的地址为2000,若欲使p为指向a的指针变量,则以下赋值正确的是( ) A.&a=3; B.*p=2; C.*p=2000; D.p=&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.若有定义int n=2,*p=&n,*q=p;,则一下非法的赋值语句是( ) A.p=q; B.*p=*q; C.n=*q; D.p=n; 17.若a是整型变量,则下列表达式能得到a的值的合法形式是( ). A.&(a+5) B.*a C.&*a D.*&a 18.设p1和p2均为指向一个int型数组的指针变量,x为int型变量,则以下不能正确执行的赋值语句是( ) A.x=*p1+*p2; B.p2=x; C.p1=p2; D.x=*p1*(*p2); 19.若有int *p1, *p2,k; 不正确的语句是( ). A. p1=&k B. p2=p1 C. *p1=k+12 D. k=p1+p2 20.若有定义int *p,m=6,n;以下正确的程序段是( ) A.p=&n;scanf(“%d”,&p); B.p=&n;scanf(“%d”,*p); C.p=&n;*p=m; D.scanf(“%d”,&n);*p=n; 二、简答题(本大题共5小题,每题6分,共30分) 1. 简述指针的概念及其在C语言中的作用。 2. 指针变量的声明方式。 3. 简述取地址操作符(&)和间接访问操作符(*)的作用。 4. 指针与数组的关联。 5. 指针数组和数组指针的区别。 三、编程题(本大题共1小题,共10分) 1. 编写程序,输入两个数,然后交换并输出。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $$

资源预览图

《C语言程序设计》指针-知识点训练 2026版山东省软件与应用技术类专业 考纲百套卷 第11卷
1
《C语言程序设计》指针-知识点训练 2026版山东省软件与应用技术类专业 考纲百套卷 第11卷
2
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。