做两题C语言概念题

ERcompose 2010-07-10 10:54:43
1.若有以下定义:char a; int b; float c;double d则表达试a*b+d-c的植的类型为 (我觉得应该是double型 没有依据)
2.以下叙述中不正确的是 A 在不同的函数中可以使用相同名字的变量 (我觉得对的)
B函数中的形式参数是局部变量 (我觉得对的)
C在一个函数内定义的变量只在本函数范围内有效 (我觉得对的)
D在一个函数的复合语句中定义的变量在本函数范围内有效 (那就是选D了,为什么这个错?什么叫函数的复合语句 解释一下这句话)
...全文
86 点赞 收藏 3
写回复
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ERcompose 2010-07-11
[Quote=引用 1 楼 qq120848369 的回复:]
a*b是int吧,+d是 double吧, -c是double吧, 所以就是double吧

2.A,对了 B,对了, C,对了 D,错了,复合语句就是if(),for(),while()括号里定义的或者{}花括号里定义的,都属于一个代码块, 里边定义的变量在括号外边就释放了.

比如: void test() { {int a=10;} printf("%d\n",a); }

花括……
[/Quote]谢谢
回复
低调走过 2010-07-11
第一题是double,像高级的提升了
第二题的是D,楼上解释的正确
回复
qq120848369 2010-07-10
a*b是int吧,+d是 double吧, -c是double吧, 所以就是double吧

2.A,对了 B,对了, C,对了 D,错了,复合语句就是if(),for(),while()括号里定义的或者{}花括号里定义的,都属于一个代码块, 里边定义的变量在括号外边就释放了.

比如: void test() { {int a=10;} printf("%d\n",a); }

花括号里的a,离开花括号就释放了, 所以printf就出错了. 根据题目就是, 复合语句中的变量只在复合语句范围内有效;.
回复
发动态
发帖子
数据结构与算法
创建于2007-08-27

3.2w+

社区成员

数据结构与算法相关内容讨论专区
申请成为版主
社区公告
暂无公告