C程序设计:指针基础与实践题目详解

4星 · 超过85%的资源 需积分: 0 3 下载量 33 浏览量 更新于2024-11-03 收藏 95KB DOC 举报
在C程序设计的考试试题中,涉及了指针这一核心概念的多个知识点。首先,第7题考查了指针的基本用法,通过定义`inta=511`和`*b=&a`,`*b`表示变量`a`的地址,因此`printf("%d\n",*b)`将输出变量`a`的值511,答案是D。 3题测试了赋值语句的理解,其中`A`选项`a=*p1+*p2;`是正确的,它计算并赋值给`a`两个指针所指向的值之和;`B`错误地试图将`a`的地址赋给自身,`C`正确地将两个指针指向相同的内存位置;`D`选项`a=*p1*(*p2);`首先解引用`*p1`,再与`(*p2)`相乘,可能产生未定义行为,所以不正确。 指针的概念在第4题中体现,变量的指针指的是该变量的地址,即B. 地址。 第7题进一步讨论了指针的引用,选项A、B和C中的`&*a`、`&a`和`*&p`分别代表`a`的地址、`a`本身和`p`所指向的地址,而`p`和`&a`在选项C中是一致的,因此正确答案可能是C或D,取决于题目设置的具体细节。 8题考察了指针和动态内存分配的关系,要创建一个`double`类型的指针并指向`x`的值,应使用`p = &x`,所以答案是B。 10题涉及到指针间的赋值,要复制`m`和`n`的值,`p=q`将使`p`指向`q`所指向的`n`,符合题意,答案是C。 字符串处理在16题中显得尤为重要,选项A、C和D都是正确的字符串初始化方式,而B选项虽然语法上正确,但`char*`类型实际上不会复制字符串内容,它只保存字符串的地址,所以答案是B。 18题中,字符串指针`s`经过`s+=2`操作后,指向了下一个字符,然后输出`s`的值,由于`printf("%d")`会尝试输出字符的ASCII码,所以结果是字符'c'的地址,答案是C。 19题,`t=s`使得`t`指向了`s`数组的第一个字符,选项B正确,描述了两者关系。 23题的程序段将`s`中的字符转换为大写,直到遇到`'p'`为止,输出的结果是`EXAMPLE!`,答案是A。 26题涉及二维数组和指针,`ps=s`将一维数组`ps`的行指针指向`s`,允许通过`ps`访问整个数组,这是对数组元素的正确引用方式。 这些试题主要围绕指针的基本概念、赋值、数组和字符串操作以及指针对数组的间接访问展开,旨在检验考生对C语言指针深入理解的能力。