题目:

若变量已正确定义并赋值,符合C语言语法的表达式是() A。a=a+7; B.a=7+b+c,a++

若变量已正确定义并赋值,符合C语言语法的表达式是()

A。a=a+7;

B.a=7+b+c,a++

C.int(12.3%4)

D.a=a+7=c+b

要解释,谢谢

解答:

以下详细解析.

A:正确B:a=7+b+c,a++;在编译器看来这句代码是可以通过编译的,但是!逗号表达式的值是最后一个表达式的值,也就是说,a=a++;a=a++;这句代码存在undefined behavier,C语言标准规定:逗号表达式存在序点,副作用必须在两个序点间完成.这句代码中7+b+c的副作用可以保证被执行(事实上7+b+c没有副作用),但是不能保证a++的副作用在赋值前被执行.

也就是说,a=a++;你无法判断什么时候a会自增1,是赋值了之后a再自增呢,还是先a自增了再赋值成原来的a呢.int a=0;

a=a++;

// a=0?a=1?注意:尽管++的优先级比a高,但是!重点是,++的副作用完成的时间是不确定的!C:%运算符两侧必须是整数操作数.D:a=a+7=c+b;这句代码的问题在于a+7=c+b;a+7是什么?a+7是一个右值(right-value),是不允许被赋值的.关于什么叫右值,你可以自行去百度搜搜看.

附上A和B的编译截图

再问: 可是答案是B

再答: 答案有问题,你可以请老师举出a=a+7;这句代码错误的地方.

同时也问问老师知不知道什么叫序点,什么叫副作用,什么叫ISO/IEC,什么叫ANSI C.(注:即使是在国家标准GB中这也是Undefined behavior,国家标准事实上就是对国际ISO/IEC标准的翻译.)

栗子代码:// for c++

#include

int main(void)

{

int a=0;

a=a+7;

std::cout <

a=a++;

std::cout <

return 0;

}// for c

#include

int main(void)

{

int a=0;

a=a+7;

printf("%d",a); // must be 7

a=a++;

printf("%d",a); // undefined behavior

return 0;

}同时我还可以给你个我以前做过的图片合集:这种++--的问题在不同编译器下给出的神奇答案.http://tieba.baidu.com/p/3141315099

猜你喜欢:

1.8分之1等于10分之几等于多少分之12等于20分之几

2.苏教版五年级上册语文补充习题13课答案

3.在c语言中,该变量已正确定义并赋值,以下正确的表达式是 A.x=y*5=x+z

4.设变量已正确定义并赋值,正确的C语言表达式是 C.int(12.3%5) D.a=a+5=b+c C和D错在哪里

5.设变量已正确定义并赋值,正确的C语言表达式是:A.a=a+10 B.a=b=c++ C.int(12.3%5) D.a=

6.有以下程序段,且变量已正确定义和赋值.for (s=1.0,k=1;k

7.设变量已正确定义并赋值,以下正确的表达式是( ) A x=y*5=x+z B int(15.8%5) C x=y+z+5

8.若变量已正确定义并赋值,表达式______不符合C语言语法.A、a*b/c; B、3.14%2 C、2,b D、a/b/

9.在C语言中,若变量已正确定义并赋值,则该表达式 a=a+7=c+b

10.C语言题目:若变量已正确定义并赋值,为什么“a=a+7=c+b”不符合C语言语法的表达式?

符合c语言语法规定的是,若变量已正确定义并赋值,符合C语言语法的表达式是 A。a=a+7; B.a=7+b+c,a++...相关推荐

  1. 若变量已正确定义并赋值,下面符合C语言语法的表达式是

    等号左边不能为表达式

  2. 若变量均已正确定义并赋值,以下合法的c语言赋值语句是,若变量均已正确定义并赋值,以下合法的C语言赋值语句是()...

    需要单独密封储存,若变防止串味的药品有哪些? 令 f 和 g 都是实数集合R上的函数,量均如下: f={x,y|x,y∈R∧y=3x+1 } g={x,y|x,y∈R∧y= x2+x}分别求 gof ...

  3. linux C语言多线程库pthread中条件变量的正确用法逐步详解

    linux C语言多线程库pthread中条件变量的正确用法: 了解pthread常用多线程API和pthread互斥锁,但是对条件变量完全不知道或者不完全了解的人群. 关于条件变量的典型应用,可以参 ...

  4. c语言变量对那一次赋值有效,C语言取整+滤波方法.docx

    C语言取整+滤波方法.docx 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3.该文档 ...

  5. java中类变量的特点_已正确定义JavaBean中boolean类型的成员变量published,则符合JavaBean特点的方法是选项( )。...

    新生儿出生体重3.2kg口生后48小时血清总胆红紊257mmol/L(15mg/dl),结合胆红素34.2mmol/L(2mg/dl).首选治疗方案是() 下列关于公允价值的说法,正确的是( ). 喷 ...

  6. 让数组的左边全为奇数C语言,2015年全国计算机等级考试全真模拟考场_二级C语言试卷四.docx...

    2015年全国计算机等级考试全真模拟考场_二级C语言试卷四 全国计算机等级考试全真模拟试卷(4) 二级C (考试时间l20分钟,满分100分) 一.选择题(每小题1分,共40分) (1)算法是指( ) ...

  7. 全国计算机等级考试二级教程——c语言程序设计》,格式为doc.,《全国计算机等级考试二级教程C语言程序设计》.doc...

    PAGE / NUMPAGES <全国计算机等级考试二级教程--C语言程序设计> 课后题及参考答案 第一章 程序设计基本概念 1.1 在TRUBO C环境中用RUN命令运行一个C程序时,所 ...

  8. 全国计算机等级考试二级教程——c语言程序设计》,格式为doc.,《全国计算机等级考试二级教程C语言程序设计》汇编.doc...

    <全国计算机等级考试二级教程C语言程序设计>汇编 <全国计算机等级考试二级教程--C语言程序设计>课后题及参考答案 程序设计基本概念 1.1 在TRUBO C环境中用RUN命令 ...

  9. 哈工大 c语言测控系统 输入一个数x,其小于10^100,哈工大C语言试题.doc

    哈工大C语言试题.doc C语言程序设计 笔试试题(A卷)哈尔滨工业大学(威海)2008/2009秋季学期C语言程序设计 笔试试题(A卷)题号一二三四五六笔试(70%)平时(30%)总分分数号学名姓试 ...

  10. c语言求e近似值精度在10e6,中石油2013秋季学期《C语言》补考在线适用于2014年4月...

    2013秋季学期<C语言>补考在线考试(适用于2014年4月份考试) 0 t' _+ ?, k. `试卷总分:100   测试时间:-- 0 r& |0 [! F* z一.单选题( ...

最新文章

  1. 论外部调用代理应该属于那一层
  2. 科普丨一文看懂语音识别的技术原理
  3. OSPF通过MPLS ×××
  4. JS密码校验规则前台验证(不能连续字符(如123、abc)连续3位或3位以上)(不能相同字符(如111、aaa)连续3位或3位以上)...
  5. Java中的Map List Set等集合类
  6. SpringBoot 实现登录验证码(附集成SpringSecurity)
  7. addEventListener和attachEvent的区别(转载)
  8. 计算机 随机分组的方法,最小化随机分组方法介绍及其SAS实现
  9. java深度学习车牌识别open-lpr
  10. 【算法】递归|迷宫回溯问题|八皇后问题
  11. Lvs+keepAlived实现负载均衡高可用集群(DR实现)
  12. STM32F103C8T6封装引脚图
  13. 【官方】BootCDN-稳定、快速、免费的前端开源项目 CDN 加速服务
  14. receptive field,即感受野
  15. 是机遇还是挑战?---浅谈谷歌收购摩托罗拉移动
  16. 数据库:不允许保存更改数据库表问题的解决
  17. idea连接数据库快速生成pojo类
  18. labview的TDMS文件读写
  19. Thesus!王子归来!
  20. chenzi.exe的分析及解决方法

热门文章

  1. makefile:425: *** 遗漏分隔符
  2. Qt_QFileInfo几个路径函数的区别
  3. Qt QPushButton 解决触摸屏点击 pressed样式表无效
  4. LINUX内核段错误调试详细指南精品培训PPT讲义
  5. GCC 编译安装在线文档
  6. Compile qt-2.3.10
  7. 计算机原理专科试卷带答案,计算机组成原理专科生期末试卷一
  8. 全局唯一递增的id_细聊分布式ID生成方法
  9. matlab用于系统框图建模的函数,matlab工具箱与s份imulink.ppt
  10. Printf函数中%p代表什么数据类型