询问一道选择题(希望可以给出答案和解释)

Timmy_Y 2012-06-01 08:21:34
以下叙述中错误的是 _____。
选择一个答案
A. 在 C 语言中,在调用函数时,实参和对应形参在类型上只需赋值兼容。
B. 在 C 语言中,函数形参的存储类型是自动(auto)类型的变量。
C. 在 C 语言中,外部变量的隐含类别是自动存储类别。
D. 在 C 语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值。
...全文
759 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
Timmy_Y 2012-06-10
  • 打赏
  • 举报
回复
答案是c
wZi 2012-06-08
  • 打赏
  • 举报
回复
又来看了下帖子。看来我对D的理解还是很惆怅。
fzamygsd 2012-06-08
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 的回复:]

不要迷信书、考题、老师、回帖;
要迷信CPU、编译器、调试器、运行结果。
并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。
任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实!
[/Quote]
赵老师的话要仔细琢磨。。。。。。。。。。。
初学时有点琢磨不透,说明我们的道行太浅了。。
UpCokio 2012-06-07
  • 打赏
  • 举报
回复
c是错误的
存储类别有四种
1 auto
2 extern
3 static
4 register
存贮区域有三种
1 程序区
2 静态区
3 动态区
auto属于动态存储 extern static为静态存储
auto和extern都可以省略 但是 变量所在的位置不同 代表省略的含义不同。
赵4老师 2012-06-06
  • 打赏
  • 举报
回复
不要迷信书、考题、老师、回帖;
要迷信CPU、编译器、调试器、运行结果。
并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。
任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实!
JAYXIANJIAN 2012-06-06
  • 打赏
  • 举报
回复
附加:自动局部变量默认是一个不确定的值!所以每次调用时重新赋值!
JAYXIANJIAN 2012-06-06
  • 打赏
  • 举报
回复
C错的!外部变量(extern声明的函数外部的变量)都是静态存储的,作用域为定义处到文件结尾。
D对的!自动变量(auto/省略)都是函数调用时分配内存,调用完释放!
nice_cxf 2012-06-06
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]

引用 11 楼 的回复:

仔细想了一下,大概还是c是错的,外部变量指的应该是extern,这样具体是什么类型要看这个变量在其他文件中的定义,不一定是auto的,不过d描述的很混乱,不清楚到底什么意思


d是对的,静态变量初始化一次,你可以写一个循环的代码,在循环体内 ,static int a=1,int b=2如果每次赋值的话,那么每次循环执行到这的时候,a,b的值会重新赋值的……
[/Quote]
我去,调用是这个意思,描述的也太混乱了,原来调用就是程序执行到这行的意思,这样的话d是对的
fzamygsd 2012-06-06
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]

仔细想了一下,大概还是c是错的,外部变量指的应该是extern,这样具体是什么类型要看这个变量在其他文件中的定义,不一定是auto的,不过d描述的很混乱,不清楚到底什么意思
[/Quote]

d是对的,静态变量初始化一次,你可以写一个循环的代码,在循环体内 ,static int a=1,int b=2如果每次赋值的话,那么每次循环执行到这的时候,a,b的值会重新赋值的
写代码试试吧,看看哪个只赋值一次,哪个每次赋值。。。。。。。。。。循环体内最最好改变ab值,以坐比较
我用的手机,不好写哦,
nice_cxf 2012-06-05
  • 打赏
  • 举报
回复
仔细想了一下,大概还是c是错的,外部变量指的应该是extern,这样具体是什么类型要看这个变量在其他文件中的定义,不一定是auto的,不过d描述的很混乱,不清楚到底什么意思
wZi 2012-06-04
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

假定一个类的构造函数为A(int aa,int bb){a=aa--;b=a*bb--;},则执行Ax(4,5);语句后,x.a和x.b的值分别为( )
A. 4和5 B. 5和4
C. 4和20 D. 20和5
我是来问问题的 = =
[/Quote]


C 4和20

AA-- 此时值还是4
是运算完一次后,才是3
所以a=4
b=a*bb--
b=4*5
运行完后bb = 4;
wZi 2012-06-04
  • 打赏
  • 举报
回复
D是错的
A. 在 C 语言中,在调用函数时,实参和对应形参在类型上只需赋值兼容。

A应该没问题吧?
B. 在 C 语言中,函数形参的存储类型是自动(auto)类型的变量。

>>没有static 或者 register,默认就是auto.
C. 在 C 语言中,外部变量的隐含类别是自动存储类别。

>>外部变量就是全局变量。意思跟上面B一样
D. 在 C 语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值。

>>这个一直不能理解。可以赋值,但是比如说
int x = 100;

printf("%d",x);
x +=1;
printf("%d",x);

不会两个X都=100吧?
sunshine0306 2012-06-04
  • 打赏
  • 举报
回复
假定一个类的构造函数为A(int aa,int bb){a=aa--;b=a*bb--;},则执行Ax(4,5);语句后,x.a和x.b的值分别为( )
A. 4和5 B. 5和4
C. 4和20 D. 20和5
我是来问问题的 = =
hmjhmj0003 2012-06-04
  • 打赏
  • 举报
回复
求答案~~~~~
nice_cxf 2012-06-04
  • 打赏
  • 举报
回复
d错的把?
不加static修饰的都是auto变量,应该是这样的把?
cainiao_learn 2012-06-04
  • 打赏
  • 举报
回复 1
错误的应该是c

外部变量即全局变量,用关键字auto作存储类别的自动变量指的是函数中的局部变量,包括函数的形参和在函数中定义的变量。


Avril_smile 2012-06-02
  • 打赏
  • 举报
回复
菜鸟,帮顶啊,。。。
fzamygsd 2012-06-02
  • 打赏
  • 举报
回复

//全局区(静态区)(static)— 全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量
//在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后由系统释放。
看看上面的链接 ,我感觉选C,俺也是菜鸟,晚上来围观
fzamygsd 2012-06-02
  • 打赏
  • 举报
回复
c_xiaoqi 2012-06-02
  • 打赏
  • 举报
回复
B. 在 C 语言中,函数形参的存储类型是自动(auto)类型的变量。

这个是错的
首先,形式参数没有存储。其次,就算是实参,也是栈上的,和函数内的变量一般情况下是一致的。也可以认为是auto

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧