初学C语言,请各位帮帮忙

您可以把每个选项都解释一下吗?
下列叙述错误的是
A) 一个C语言程序只能实现一种算法
B) C程序可以由多个程序文件组成
C) C程序可以由一个或多个函数组成
D) 一个C函数可以单独作为一个C程序文件存在
(4)以下关于 C语言的叙述中正确的是
A)C语言中的注释不可以夹在变量名或关键字的中间
B)C语言中的变量可以在使用之前的任何位置进行定义
C)在 C语言算术表达式的书写中,运算符两侧的运算数类型必须一致
D)C语言的数值常量中夹带空格不影响常量值的正确表示

错误A) 一个C语言程序只能实现一种算法 //没为什么,就是可以实现多种算法
B) C程序可以由多个程序文件组成 //当然可以,不然的话怎么用c做各种稍显复杂的应用呢
C) C程序可以由一个或多个函数组成 //只有一个main函数,其他的随便多少个
D) 一个C函数可以单独作为一个C程序文件存在 //可以的,例如众所周知的helloworld

正确A)C语言中的注释不可以夹在变量名或关键字的中间 //确实是不可以,那样词就不成词了,可以放在变量名和关键字中间,注意是和,不过一般都是放在行尾,别给自己添麻烦
B)C语言中的变量可以在使用之前的任何位置进行定义 //不可以,得在函数开头的地方定义
C)在 C语言算术表达式的书写中,运算符两侧的运算数类型必须一致 //可以不一样,会进行强制类型转换
D)C语言的数值常量中夹带空格不影响常量值的正确表示 //这个没试过,但是应该会影响吧,不然嘞?追问

第二个选择题 答案给的是B,答案错了?

追答

呃。。B肯定是不对,c语言中怎么可能在是在使用之前的任何位置进行定义
,你不相信的话可以试一下
例如
main() {
int i=0, j=1;
printf("%d", i);
printf("%d", i);
}
如果按B所说的,下面这也算对的?
main() {
int i=0;
printf("%d", i);
int j=1;
printf("%d", i);
}
很显然这在c中是错的,在c++中是可以的

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-02-02
我看了一下clibuwei 的回答,回答还不错,有一点我要说明“B)C语言中的变量可以在使用之前的任何位置进行定义 ”,这句话是对的。有一个作用域问题。
就拿答案的例子来说:
main() {
int i=0;
printf("%d", i);
int j=1;
printf("%d", i);
}
//这个程序确实是错误的。因为j在main函数体里面,即作用域为main函数
main() {
int i=0;
printf("%d", i);
{
int j=1;
printf("%d", j);
}
}
//注意我加了一个花括号,这个程序是可以的,变量j的作用域为printf("%d",j);
//希望能够帮助到你本回答被提问者采纳
第2个回答  2012-02-02
下列叙述错误的是a,一个c语言程序可以有多种算法。
(4)a,注释符之后的都将解释为注释,所以不可以
b,正确
c,可以不一直,但是这样的话会引发自动类型转换,使他们变成一致的。
d,当然影响夹带空格后一个数值常量值就分割成多个数值了。

回复 clibuwei:b之所以正确,是因为变量只要在使用之前声明过就可以了,变量的声明其实就是先在内存中占个位置,然后后面使用的时候就是往这个内存里填东西或则拿东西。另外注释之后不管你怎么注释的,那一行之后的将被忽略,所以不能。追问

那您是说A和B都对??

追答

很显然A是错的啊,因为关键字和变量名如果被注释给分开了,那么变量名就相当于被注释掉了,此时就只剩下一个关键字了。这样的语句显然没有达到期望的目的。比如你要声明一个变量a如下:
int a;如果按照A的操作就成了int /*-------------*/ a;这个时候它的效果就只剩下一个int了连分号都没有,根本连个完整的语句都不算,因为它和int已经被切割成两段了。

追问

那A选项不是和您说的一样吗,也是说不可以?
您能举个例子吗?

追答

晕,我看错了,a选项说的是不可以,那么a和B都是正确的。

第3个回答  2012-02-02
1 A 2 B追问

您说说第2题A选项哪儿不对啊,

相似回答