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

1、第254题 (1.0分) 题号:186 已知p,p1为指针变量,a为数组名,j为整型变量,下列赋值语句中 不正确的是()。

A
 p=&j,p=p1;
B
 p=a;
C
 p=&a[j];
D
 p=10;

答案解析

正确答案:D

解析:

**解析:** 本题考查 C 语言中指针变量的赋值规则。指针变量用于存储内存地址,因此只能将地址值赋给指针变量。 * **A. `p=&j, p=p1;`** * `&j` 是整型变量 `j` 的地址,类型匹配,可以赋值给指针 `p`。 * `p1` 也是指针变量,两个同类型的指针之间可以相互赋值。 * 该语句合法。 * **B. `p=a;`** * 在 C 语言中,数组名 `a` 代表数组首元素的地址(即 `&a[0]`)。 * 将数组首地址赋给指针 `p` 是常见的操作,使 `p` 指向数组开头。 * 该语句合法。 * **C. `p=&a[j];`** * `a[j]` 是数组中的第 `j` 个元素,`&a[j]` 取该元素的地址。 * 将数组元素的地址赋给指针 `p`,类型匹配。 * 该语句合法。 * **D. `p=10;`** * `10` 是一个整型常量(int),而不是一个合法的内存地址表达式。 * 虽然在某些旧标准或特定编译器下可能仅发出警告(因为整数可以被强制转换为指针),但在标准的 C 语言编程规范和大多数现代编译器严格模式下,**不能直接将一个整数常量赋值给指针变量**,除非进行显式的强制类型转换(如 `p = (int *)10;`),且直接赋值为非零常数通常被视为非法或不安全的操作,因为它指向了一个未定义或受保护的内存区域。在考试语境中,这是典型的错误用法,因为指针应该存储地址,而非随意的整数值。 * 该语句不正确。 综上所述,不正确的赋值语句是 **D**。 **答案:D**
题目纠错
c语言选择判断题库

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

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