4个菜鸟级别C语言选择题

以下程序段中有语法错误的是_D________
A. fun(char aa[10])
{ while(*aa) printf(“%c”,*aa++);}
B. fun(char *aa)
{ while(aa[0]) printf(“%c”,*aa++);}
C. main()
{ char *aa=”Hello!”;}while(*aa) printf(“%c,*aa++);
}
D. main()
{ char aa[10]=”Hello!”;}
while(*aa) printf(“%c”,*aa++);
}

若有声明”int a[3][4],*p=a[0],(*q)[4]=a;”,则下列叙述中错误的是_B______
A. a[2][3]与q[2][3]等价
B. a[2][3]与p[2][3]等价
C. a[2][3]与*(p+11)等价
D. a[2][3]与p=p+11,*p等价

对带宽为300-3400Hz的语音,若采样频率为8kHz、量化位数为8位且为单声道,则未压缩时的码率约为___A_________
A.64Kb/s
B.64KB/s
C.128Kb/s
D.128KB/s
请讲下这么做的吧,谢谢了
漏了一题若需要对一个数据文件abc.txt中的数据做加密处理并且限定只能做一次打开文件操作,则在”fp=fopen(“abc.txt”,模式字符串);”中,模式字符串应当是__B___
A.”w+”
B.”r+”
C.”a+”
D.”r”

你好!!!
1.为什么选择D呢??因为数组名字就第一个元素的地址,但是数组名字是个是常量,是不可以改变的 !!而*aa++,就是改变数组。但你可能会问,选项A,怎么对啊??首先我要知道指针变量可以自加或自减。原因是 fun(char aa[10])
{ while(*aa) printf(“%c”,*aa++);},调用函数fun()实参是数组名,那么形参可以是数组名或是指针变量,要是指针变的话,相信你可以理解,要是数组名的哈,你可能会想aa++也是错的,但是调用函数的时候,形参要是数组明的话,系统会自动的把数组名转化指针变量,所以选项A,对的!!

2.首先],(*q)[4]=a;表示定义一个指向一维数组的指针变量q,此时q指向数组a的第一个元素。那么选项B:a[2][3]与p[2][3]等价;其中p[2][3]是错误的,指针p只是一维数组指针变量,不是二维,不可以用p[2][3]的形式

后面的前两位都讲了。
要是还不理解我们再联系!!!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-09-05
第一题: D:a[10]="hello" 这里的hello就等于是一个常量的,就像数字100一样,你不能一个个的读他们的地址
第二题:p=p+11 是一个地址而不是值
第2个回答  2010-09-05
1.D 2.B 3.A 4.B
第四题:一般是用‘r’,但由于只能开一次,所以用‘r+’
第3个回答  2010-09-05
DBAB

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网