单选题
1、第77题 (1.0分) 题号:541 若有int i=3,*p;p=&i;下列语句中输出结果为3的是()。
A
printf(”%d”,&p);
B
printf(”%d”,*i);
C
printf(”%d”,*p);
D
printf(”%d”,p);
答案解析
正确答案:C
解析:
**解析:**
本题考查 C 语言中指针的基本概念及运算符的使用。
**1. 代码分析:**
* `int i = 3;`:定义了一个整型变量 `i`,并赋值为 3。
* `int *p;`:定义了一个指向整型的指针变量 `p`。
* `p = &i;`:将变量 `i` 的地址赋值给指针 `p`。此时,`p` 指向 `i`,即 `p` 存储的是 `i` 的内存地址。
**2. 选项逐一分析:**
* **A. `printf("%d", &p);`**
* `&p` 表示取指针变量 `p` 本身的地址。
* 输出的是 `p` 这个指针变量在内存中的地址值,而不是 `i` 的值 3。
* **结果错误。**
* **B. `printf("%d", *i);`**
* `i` 是一个整型变量(int),不是指针。
* 对非指针类型使用解引用运算符 `*` 是非法操作,会导致编译错误。
* **结果错误。**
* **C. `printf("%d", *p);`**
* `p` 是指向 `i` 的指针。
* `*p` 是解引用操作,表示访问指针 `p` 所指向的内存单元中的值。
* 因为 `p` 指向 `i`,所以 `*p` 等价于 `i`。
* `i` 的值为 3,因此输出结果为 3。
* **结果正确。**
* **D. `printf("%d", p);`**
* `p` 存储的是变量 `i` 的地址。
* 输出的是 `i` 的内存地址值(通常是一个很大的整数或十六进制数),而不是 `i` 的值 3。
* **结果错误。**
**结论:**
只有选项 C 能够正确输出变量 `i` 的值 3。
**正确答案:C**
题目纠错
c语言选择判断题库
相关题目
单选题
1、第182题 (1.0分) 题号:581 sizeof( )是()。
单选题
1、第181题 (1.0分) 题号:508 int a=1,b=2,c=3; if( )b=a;a=c;c=b;则c的值为()。
单选题
1、第180题 (1.0分) 题号:169 下列说法不正确的是()。
单选题
1、第179题 (1.0分) 题号:602 在C语言中,要求运算数必须是整型的运算符是()。
单选题
1、第178题 (1.0分) 题号:605 以下所列的C语言常量中,错误的是()。
单选题
1、第177题 (1.0分) 题号:716 设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是()。
单选题
1、第176题 (1.0分) 题号:721 fseek函数的正确调用形式是()。
单选题
1、第175题 (1.0分) 题号:190 关于指针概念说法不正确的是()。
单选题
1、第174题 (1.0分) 题号:119 下列运算符中,不属于关系运算符的是()。
单选题
1、第173题 (1.0分) 题号:660 在C语言中,函数的隐含存储类别是()。
