AI智能推荐题库-试题通 AI智能整理导入题库-试题通
×
首页 题库中心 c语言选择判断题库 题目详情
CA4E3A01C46000013755684012D01E55
c语言选择判断题库
379
单选题

1、第163题 (1.0分) 题号:712 若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是()。

A
 p=q;
B
 *p=*q;
C
 n=*q;
D
 p=n;

答案解析

正确答案:D

解析:

这是一道关于 C 语言指针基础知识的题目。我们需要分析变量定义以及每个选项中赋值语句的合法性。 **1. 变量定义分析** ```c int n = 2; // 定义整型变量 n,初始值为 2 int *p = &n; // 定义整型指针 p,指向 n 的地址(即 p 存储的是 n 的地址) int *q = p; // 定义整型指针 q,指向 p 所指向的地址(即 q 也存储的是 n 的地址) ``` 此时: - `n` 是 `int` 类型。 - `p` 和 `q` 都是 `int *` 类型(指向整型的指针)。 - `*p` 和 `*q` 代表指针所指向的值,即 `n` 的值,类型为 `int`。 **2. 选项逐一分析** * **A. `p = q;`** * **分析**:`p` 和 `q` 都是 `int *` 类型的指针变量。将指针 `q` 的值(地址)赋给指针 `p` 是完全合法的。这表示让 `p` 指向 `q` 当前指向的位置。 * **结论**:合法。 * **B. `*p = *q;`** * **分析**:`*p` 和 `*q` 都解引用了指针,得到的是它们指向的内存中的整数值(即 `n` 的值)。这里是将 `int` 类型的值赋给 `int` 类型的变量(`n = n`)。 * **结论**:合法。 * **C. `n = *q;`** * **分析**:`*q` 解引用后得到的是 `int` 类型的值。`n` 也是 `int` 类型的变量。将整数值赋给整型变量是标准的赋值操作。 * **结论**:合法。 * **D. `p = n;`** * **分析**: * `p` 是 `int *` 类型(指针),期望接收一个地址。 * `n` 是 `int` 类型(整数),值为 2。 * 在 C 语言中,不能直接将一个整型变量赋值给指针变量(除非进行强制类型转换,如 `p = (int *)n;`,但即便如此,将小整数直接赋给指针通常也是危险且不符合常规逻辑的,而在标准语法检查中,不同类型且无隐式转换规则的赋值被视为非法或至少会产生编译警告/错误)。编译器会报错或警告,提示类型不匹配(cannot convert 'int' to 'int *')。 * **结论**:**非法**。 **3. 最终结论** 选项 D 试图将一个整型变量直接赋值给指针变量,类型不匹配,因此是非法的赋值语句。 **答案:D**
题目纠错
c语言选择判断题库

扫码进入小程序
随时随地练习

关闭登录弹窗
专为自学备考人员打造
勾选图标
自助导入本地题库
勾选图标
多种刷题考试模式
勾选图标
本地离线答题搜题
勾选图标
扫码考试方便快捷
勾选图标
海量试题每日更新
波浪装饰图
欢迎登录试题通
可以使用以下方式扫码登陆
APP图标
使用APP登录
微信图标
使用微信登录
试题通小程序二维码
联系电话:
400-660-3606
试题通企业微信二维码