C语言指针练习与解析

5星 · 超过95%的资源 需积分: 17 33 下载量 152 浏览量 更新于2024-09-17 收藏 60KB DOC 举报
"c语言指针习题" 在C语言中,指针是一个非常重要的概念,它被广泛用于实现各种高级编程技巧。指针变量存储的是其他变量的内存地址,而不是它们的值。通过指针,我们可以直接访问和修改存储在特定地址的数据,这使得C语言能够高效地处理数据结构、数组、字符串以及内存管理。 1. 在选择题1中,正确答案是B)地址。指针变量存储的是变量的地址,而不是它的值、名字或标志。 2. 在选择题2中,B)ptr2=k 是错误的赋值语句,因为ptr2是一个指针,应该指向内存地址,而不是赋值为整型变量k的值。 3. 在选择题3中,正确答案是A)p=&n; 这行代码将指针p初始化为变量n的地址。B和C选项都是错误的,因为指针不应该直接赋值为整型变量的值,而D选项在没有初始化p的情况下就使用*p会导致未定义的行为。 4. 对于选择题4,函数`print_value`接受一个指向整型变量的指针,并递增该变量的值然后打印。因此,当传入变量a的地址时,函数会递增a的值,然后打印新值,所以输出是D)26。 5. 在选择题5中,正确赋值语句的选项是C)p1=&m;p2=p1; 这两行代码将指针p1设置为变量m的地址,然后p2设置为p1的值,即同样指向m的地址。 6. 对于选择题6,正确选项是D)&a,&*p,p 这些都代表地址:&a是变量a的地址,&*p是解引用p后得到的值的地址(也就是a的地址),p本身也是变量a的地址。 7. 判断题7中,正确答案是C)char*s=”china”;等价于char*s;s=”china”; 这两个声明都创建了一个指向字符数组的指针s,并将其初始化为字符串"china"的地址。 8. 在选择题8中,for循环的执行次数是C)6。字符串`s`实际上包含了6个字符,包括开头的空格和转义字符'\018'。 9. 在选择题9中,能正确进行字符串赋值操作的是C)char*s=”ABCDE”; 这行代码创建了一个指向字符串常量的指针s。 10. 对于程序段: ```c char*s="abc"; ``` 这行代码声明了一个字符指针s,并将其初始化为字符串"abc"的地址。由于题目没有给出后续的代码,我们无法确定具体的运行结果,但通常这个指针现在指向字符串的第一个字符'a'。 通过这些习题,我们可以深入了解C语言指针的工作原理,如何使用指针进行赋值、传递参数、遍历字符串以及操作内存。熟练掌握指针是成为C语言高手的关键。