指向n1的指针,下列语句中,正确的是( )。
A. p=&n1; n2=*p;
B. *p=n2; p=&n2;
C. p=&n1; n2=p;
D. *p=n2; p=&n2;
(2) 在C语言中,指针的作用是( )。
A. 用来定义变量的类型
B. 用来指代数组的下标
C. 用来存储变量的地址
D. 用来存储变量的值
(3) 下列程序片段的输出结果是( )。
#include <stdio.h>
int main()
{
int a = 5;
int *p;
p = &a;
printf("%d", p);
return 0;
}
A. 5
B. 0
C. 警告:format specifies type 'int' but the argument has type 'int*'
D. 乱码
(4) 下面有关指针的说法,错误的是( )。
A. 指针是一个地址
B. 指针可以指向变量
C. 指针的大小与被指向的数据类型无关
D. 指针可以直接和普通变量相加
(5) 下列程序的输出结果是( )
#include <stdio.h>
int main()
{
int array[] = {1, 2, 3, 4, 5};
int *p = &array[0];
printf("%d", *(p + 2));
return 0;
}
A. 1
B. 2
C. 3
D. 4
二、填空题
(1) 指向整型变量的指针变量定义方式是___________。
(2) 下面程序的输出是什么?
#include <stdio.h>
int main()
{
int a = 3, b = 4, *p;
p = &a;
*p = *p + b;
printf("%d", a);
return 0;
}
答案是___________。
(3) 指向字符型变量的指针变量定义方式是___________。
(4) 下面程序的输出是什么?
#include <stdio.h>
int main()
{
char c = 'A', *p;
p = &c;
printf("%c", *p + 1);
return 0;
}
答案是___________。
三、解答题
(1) 请写出一个简单的C语言程序,实现交换两个整型变量的值。
(2) 请写出一个简单的C语言程序,实现将一个整型数组中的所有元素加1后输出。
以上是全国计算机等级考试二级C语言指针测试题的部分内容,通过这些题目可以对指针的基本概念和应用进行考察。指针作为C语言中一项重要的概念,对于理解内存存储和地址操作有着至关重要的作用。希望考生能够通过此次测试加深对指针的理解,提升自己在C语言编程方面的能力。