以下能正确定义一维数组的选项是( ) 选择一个答案 A. int num[]; B. #define N 100 int num[N];

以下能正确定义一维数组的选项是( )
选择一个答案

A. int num[];

B. #define N 100 int num[N];

C. int num[0..100];

D. int N = 100; int num[N];

d再某些环境下是可以的
a无初始化 不能缺省长度
b不可以放到一行中 如果是
#define N 100
int num[N];
这样就可以了
c c语言出现的第一天起,就没有这种形式
d,变量不可以做为数组的长度追问

楼上说D通不过编译器,这么肯定,我觉得装个编译器试试

追答

d也得再某些 情况下可以!
linux下可以 我再vs2008中测试不可以

gcc -Wall -g -lm -lcurl -lssl -lpthread -lreadline -lGeoIP baidu.c -o baidu
baidu.c:2: warning: return type of ‘main’ is not ‘int’
baidu.c: In function ‘main’:
baidu.c:5: warning: unused variable ‘num’
$ cat baidu.c
#include
void main()
{
int N= 100;
int num[N];
printf("hello world\n");
}

追问

现在我很晕, 为了作业,选B..为了编程,是不是就没答案了?

追答

理论上讲这个问题应该是B,但是写法不对!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-24
二级C语言教程章节测试9.一维数组与指针(一)的吧?
是B,有答案的!
第2个回答  2011-05-23
B吧追问

有详解么?
A. 差什么?
C. 多了一个点 应该是int num[0,100] 还是?
D. 错在哪里?

追答

A,没有定义大小.
C,语法都不对。没有这种写法。
D,对于编译器来说N是一个变量。静态数组不能那么定义。动态数组也不是那么定义的。

总体说来。。就是:ACD都过不到编译器。语法错误。这个不用解释吧。

本回答被提问者和网友采纳