《C语言程序设计》(七)指针-知识点训练卷 吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》第20卷

2025-02-24
| 2份
| 18页
| 133人阅读
| 1人下载

资源信息

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

内容正文:

编写说明:吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》,依据吉林省高职分类(对口招生)考试各类专业综合卷考试科目及纲要(2021版),种信息工程类(电子与信息类)专业综合卷考试科目及纲要编写。本专辑共150份试卷两部分组成,第一部分是按考纲的考点要求编写的120份知识点训练卷,第二部分是针对6门课程的掌握要求,编写的30份常考题训练卷。 本试卷是吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》的第20卷,是知识点训练卷。按“C语言程序设计”考试纲要(七)指针的六点知识点要求编写,其六点要求是: 1. 了解指针的概念。2.了解指向简单变量。 吉林省《信息工程类(电子与信息类)考纲百套卷》 第20卷 《C语言程序设计》 (七)指针-知识点训练卷 考试时间60分钟 满分100分 班级 姓名 学号 成绩 一、选择题(本大题共10小题,每小题2分,共20分) 1.以下关于指针的说法正确的是( ) A. 指针变量存储的是变量的值 B. 指针变量存储的是变量的地址 C. 指针变量可以直接存储字符串 D. 指针变量不能进行算术运算 2.以下代码的输出结果是( ) int a = 10; int *p = &a; printf("%d", *p); A. 10 B. a的地址 C. p的地址 D. 编译错误 3.以下代码的输出结果是( ) int a = 5; int *p = &a; *p = 20; printf("%d", a); A. 5 B. 20 C. p的地址 D. 编译错误 4.以下代码的输出结果是( ) int a = 10; int *p = &a; int **pp = &p; printf("%d", **pp); A. 10 B. p的地址 C. pp的地址 D. 编译错误 5.以下代码的输出结果是( ) int a[] = {1, 2, 3, 4, 5}; int *p = a; printf("%d", *(p + 2)); A. 1 B. 2 C. 3 D. 4 6.以下代码的输出结果是( ) char *str = "Hello"; printf("%c", *(str + 1)); A. H B. e C. l D. o 7.以下代码的输出结果是( ) int a = 10; int *p = &a; printf("%p", p); A. 10 B. a的地址 C. p的地址 D. 编译错误 8.以下代码的输出结果是( ) int a = 10; int *p = &a; int *q = p; printf("%d", *q); A. 10 B. p的地址 C. q的地址 D. 编译错误 9.以下代码的输出结果是( ) int a = 10; int *p = &a; int **pp = &p; printf("%d", *p); A. 10 B. p的地址 C. pp的地址 D. 编译错误 10.以下代码的输出结果是( ) int a = 10; int *p = &a; *p = 20; printf("%d", a); A. 10 B. 20 C. p的地址 D. 编译错误 二、判断题(本大题共10小题,每小题2分,共20分) 1.指针变量可以存储任何类型的数据。( ) 2.int *p; 声明了一个指向整型数据的指针变量。( ) 3.指针变量可以进行加、减、乘、除等算术运算。( ) 4.int *p = NULL; 表示指针p指向空地址。( ) 5.在C语言中,如果指针变量 p 指向一个整型变量 a ,那么 *p 和 a 的值是相同的。( ) 6.数组名是一个指针常量,不能修改其值。( ) 7.int *p = &a; 和 int *p; p = &a; 是等价的。( ) 8.int *p; p = 10; 是合法的代码。( ) 9.int *p; p = &a; 和 int *p = &a; 是等价的。( ) 10.int *p; p = (int *)malloc(sizeof(int)); 语法正确。( ) 三、填空题(本大题共5小题,每题2分,共10分) 1. 在 C 语言中,若定义 int a = 10; int *p = &a;,那么 *p 代表的是变量 a 的 ____。 2. 若有定义 char str[] = "Hello"; char *ptr = str;,ptr + 3 指向的是字符 ____。 3. 已知 int arr[5] = {1, 2, 3, 4, 5}; int *q = arr;,*(q + 4) 的值是 ____。 4. 定义 double num = 3.14; double *r = &num;,若要通过指针 r 修改 num 的值为 6.28,应使用语句 ____。 5.若有 int x = 20; int *y; y = &x;,此时 &(*y) 等价于 ____。 四、读程序写结果题(本大题共5小题,每题5分,共25分) 1.以下程序的运行结果是______。 #include <stdio.h> int main() { int a = 10; int *p = &a; *p = 20; printf("%d ", a); return 0; } 2.以下程序的运行结果是______。 #include <stdio.h> int main() { int a = 5, b = 10; int *p = &a; int *q = &b; *p = *q + 2; printf("%d ", a); return 0; } 3.以下程序的运行结果是______。 #include <stdio.h> int main() { int a[] = {1, 2, 3, 4, 5}; int *p = a; printf("%d ", *(p + 2)); return 0; } 4.以下程序的运行结果是______。 #include <stdio.h> int main() { int a = 10; int *p = &a; int **q = &p; **q = 30; printf("%d ", a); return 0; } 5.以下程序的运行结果是______。 #include <stdio.h> int main() { int a = 5, b = 10; int *p = &a; int *q = &b; p = q; *p = 15; printf("%d ", b); return 0; } 五、编程题(本大题共5小题,每题5分,共25分) 1. 编写一个程序,使用指针交换两个整数的值。 2.编写一个程序,使用指针计算数组元素的和。 3.编写一个程序,使用指针反转字符串。 4.编写一个程序,使用指针查找数组中的最大值。 5.编写一个程序,使用指针实现字符串的拼接。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $$ 编写说明:吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》,依据吉林省高职分类(对口招生)考试各类专业综合卷考试科目及纲要(2021版),种信息工程类(电子与信息类)专业综合卷考试科目及纲要编写。本专辑共150份试卷两部分组成,第一部分是按考纲的考点要求编写的120份知识点训练卷,第二部分是针对6门课程的掌握要求,编写的30份常考题训练卷。 本试卷是吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》的第20卷,是知识点训练卷。按“C语言程序设计”考试纲要(七)指针的六点知识点要求编写,其六点要求是: 1. 了解指针的概念。2.了解指向简单变量。 吉林省《信息工程类(电子与信息类)考纲百套卷》 第20卷 《C语言程序设计》 (七)指针-知识点训练卷 考试时间60分钟 满分100分 班级 姓名 学号 成绩 一、选择题(本大题共10小题,每小题2分,共20分) 1.以下关于指针的说法正确的是( ) A. 指针变量存储的是变量的值 B. 指针变量存储的是变量的地址 C. 指针变量可以直接存储字符串 D. 指针变量不能进行算术运算 答案:B 2.以下代码的输出结果是( ) int a = 10; int *p = &a; printf("%d", *p); A. 10 B. a的地址 C. p的地址 D. 编译错误 答案:A 3.以下代码的输出结果是( ) int a = 5; int *p = &a; *p = 20; printf("%d", a); A. 5 B. 20 C. p的地址 D. 编译错误 答案:B 4.以下代码的输出结果是( ) int a = 10; int *p = &a; int **pp = &p; printf("%d", **pp); A. 10 B. p的地址 C. pp的地址 D. 编译错误 答案:A 5.以下代码的输出结果是( ) int a[] = {1, 2, 3, 4, 5}; int *p = a; printf("%d", *(p + 2)); A. 1 B. 2 C. 3 D. 4 答案:C 6.以下代码的输出结果是( ) char *str = "Hello"; printf("%c", *(str + 1)); A. H B. e C. l D. o 答案:B 7.以下代码的输出结果是( ) int a = 10; int *p = &a; printf("%p", p); A. 10 B. a的地址 C. p的地址 D. 编译错误 答案:B 8.以下代码的输出结果是( ) int a = 10; int *p = &a; int *q = p; printf("%d", *q); A. 10 B. p的地址 C. q的地址 D. 编译错误 答案:A 9.以下代码的输出结果是( ) int a = 10; int *p = &a; int **pp = &p; printf("%d", *p); A. 10 B. p的地址 C. pp的地址 D. 编译错误 答案:A 10.以下代码的输出结果是( ) int a = 10; int *p = &a; *p = 20; printf("%d", a); A. 10 B. 20 C. p的地址 D. 编译错误 答案:B 二、判断题(本大题共10小题,每小题2分,共20分) 1.指针变量可以存储任何类型的数据。( ) 答案:错误 2.int *p; 声明了一个指向整型数据的指针变量。( ) 答案:正确 3.指针变量可以进行加、减、乘、除等算术运算。( ) 答案:错误 4.int *p = NULL; 表示指针p指向空地址。( ) 答案:正确 5.在C语言中,如果指针变量 p 指向一个整型变量 a ,那么 *p 和 a 的值是相同的。( ) 答案:正确 6.数组名是一个指针常量,不能修改其值。( ) 答案:正确 7.int *p = &a; 和 int *p; p = &a; 是等价的。( ) 答案:正确 8.int *p; p = 10; 是合法的代码。( ) 答案:错误 9.int *p; p = &a; 和 int *p = &a; 是等价的。( ) 答案:正确 10.int *p; p = (int *)malloc(sizeof(int)); 语法正确。( ) 答案:正确 三、填空题(本大题共5小题,每题2分,共10分) 1. 在 C 语言中,若定义 int a = 10; int *p = &a;,那么 *p 代表的是变量 a 的 ____。 答案:值 2. 若有定义 char str[] = "Hello"; char *ptr = str;,ptr + 3 指向的是字符 ____。 答案:'l' 3. 已知 int arr[5] = {1, 2, 3, 4, 5}; int *q = arr;,*(q + 4) 的值是 ____。 答案:5 4. 定义 double num = 3.14; double *r = &num;,若要通过指针 r 修改 num 的值为 6.28,应使用语句 ____。 答案:*r = 6.28; 5.若有 int x = 20; int *y; y = &x;,此时 &(*y) 等价于 ____。 答案:&x 四、读程序写结果题(本大题共5小题,每题5分,共25分) 1.以下程序的运行结果是______。 #include <stdio.h> int main() { int a = 10; int *p = &a; *p = 20; printf("%d ", a); return 0; } 答案: 20 2.以下程序的运行结果是______。 #include <stdio.h> int main() { int a = 5, b = 10; int *p = &a; int *q = &b; *p = *q + 2; printf("%d ", a); return 0; } 答案: 12 3.以下程序的运行结果是______。 #include <stdio.h> int main() { int a[] = {1, 2, 3, 4, 5}; int *p = a; printf("%d ", *(p + 2)); return 0; } 答案: 3 4.以下程序的运行结果是______。 #include <stdio.h> int main() { int a = 10; int *p = &a; int **q = &p; **q = 30; printf("%d ", a); return 0; } 答案: 30 5.以下程序的运行结果是______。 #include <stdio.h> int main() { int a = 5, b = 10; int *p = &a; int *q = &b; p = q; *p = 15; printf("%d ", b); return 0; } 答案: 15 五、编程题(本大题共5小题,每题5分,共25分) 1. 编写一个程序,使用指针交换两个整数的值。 答案: #include <stdio.h> void swap(int *a, int *b) { int temp = *a; *a = *b; *b = temp; } int main() { int x = 10, y = 20; swap(&x, &y); printf("x = %d, y = %d ", x, y); return 0; } 2.编写一个程序,使用指针计算数组元素的和。 答案: #include <stdio.h> int sum(int *arr, int n) { int sum = 0; for (int i = 0; i < n; i++) { sum += *(arr + i); } return sum; } int main() { int a[] = {1, 2, 3, 4, 5}; int n = sizeof(a) / sizeof(a[0]); printf("Sum = %d ", sum(a, n)); return 0; } 3.编写一个程序,使用指针反转字符串。 答案: #include <stdio.h> #include <string.h> void reverse(char *str) { int len = strlen(str); char *start = str; char *end = str + len - 1; while (start < end) { char temp = *start; *start = *end; *end = temp; start++; end--; } } int main() { char str[] = "Hello"; reverse(str); printf("%s ", str); return 0; } 4.编写一个程序,使用指针查找数组中的最大值。 答案: #include <stdio.h> int findMax(int *arr, int n) { int max = *arr; for (int i = 1; i < n; i++) { if (*(arr + i) > max) { max = *(arr + i); } } return max; } int main() { int a[] = {3, 7, 2, 9, 5}; int n = sizeof(a) / sizeof(a[0]); printf("Max = %d ", findMax(a, n)); return 0; } 5.编写一个程序,使用指针实现字符串的拼接。 答案: #include <stdio.h> void concat(char *dest, const char *src) { while (*dest) dest++; while (*src) { *dest = *src; dest++; src++; } *dest = '\0'; } int main() { char str1[50] = "Hello, "; char str2[] = "World!"; concat(str1, str2); printf("%s ", str1); return 0; } 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $$

资源预览图

《C语言程序设计》(七)指针-知识点训练卷 吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》第20卷
1
《C语言程序设计》(七)指针-知识点训练卷 吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》第20卷
2
《C语言程序设计》(七)指针-知识点训练卷 吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》第20卷
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。