C语言考试,有几道选择题没搞懂

如题所述

    数组变量声明时的数组尺寸可以是变量,但必须是常数变量,这样才能确定数组尺寸并分配空间,所以第一个选项选A。

    ++和--操作符前置和后置的效果是同的,前置时表示先操作再赋值,后置是先赋值后操作;

    数组下标不能越界,只能是0~N-1;

    (int)((double)(3/2)+0.5+(int)1.99*2)=(int)((double)((3/2)+0.5+(int)1.99*2))
    =(int)((double)(1+0.5+1*2))=(int)(3.5)=3;

    显然是3,从fun(x,y,a)就可以看出来,从嵌套的调用看也是这样;

    你的错觉来自于vc对c++预编译中的处理方法,好像当包含stdafx后,#include <io>是合法的,但标准C和C++要求必须指定全文件名。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-05-06
5151:定义数组时,下标不能为变量
3128:i=x--;x是后减,先计算,计算之后再自减

5127:数组下标是从0开始的
3116:因为a=(int)((double)(3/2)+0.5+(int)1.99*2);强制转换只转换离运算符最近的数值,否则将要进行强制转换的表达式加个括号
6118:该函数是嵌套调用,函数参数应该看最外层循环里面有几个逗号
7113:D:.h不是必须的,可以省略。