ImageVerifierCode 换一换
格式:DOC , 页数:20 ,大小:58.50KB ,
资源ID:498004      下载积分:2000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-498004.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文([计算机类试卷]国家二级C语言机试(函数和数组)模拟试卷9及答案与解析.doc)为本站会员(sofeeling205)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

[计算机类试卷]国家二级C语言机试(函数和数组)模拟试卷9及答案与解析.doc

1、国家二级 C语言机试(函数和数组)模拟试卷 9及答案与解析 一、选择题 1 有以下程序 #include stdio h func(int n) void main() static int num=1; func(3); func(4); printf(“ n“); num=num+n; printf(“ d“, num); 程序运行后的输出是 ( A) 4 5 ( B) 3 5 ( C) 4 8 ( D) 3 4 2 有以下程序 fun(int x, int y) main() static int m=0, i=2; intj=1, m=1, k; i+=m+1; m=i+x+y; re

2、turn m; k=fun(j, m); printf(“ d, “, k); k=fun(j, m); printf(“ d n“, k); 执行后 的输出结果是 ( A) 5, 5 ( B) 5, 11 ( C) 11, 11 ( D) 11, 5 3 在 C语言中,只有在使用时才占用内存单元的变量,其存储类型是 ( A) extern和 register ( B) auto和 static ( C) static和 register ( D) auto和 register 4 有以下程序 #include stdio h main()int i, s=1; int fun()static

3、 int x=1; for(i=1; i =3; i+) x*=2; s*=fun(); return x; printf(“ d n“, s); 程序运行后的输出结果是 ( A) 0 ( B) 10 ( C) 30 ( D) 64 5 有以下程序 #include stdio h int f(int n); main()int a=3, s; int f(int n)static int a=1; s=f(a); n+=a+: s=s+f(a); return n; printf(“ d n“, s); 程序运行后的输出结果是 ( A) 9 ( B) 8 ( C) 7 ( D) 10 6 有

4、以下程序 #include stdio h int fun()static int x=1; main()int i, s=l; x+=1; for(i=1; i =5; i+)s+=fun(); return x; printf(“ d n“, s); 程序运行后的输出结果是 ( A) 11 ( B) 21 ( C) 6 ( D) 120 7 有以下程序 int fun(int x, int n) main() static int sum=0, i; int a=1, 2, 3, 4, 5, b=6, 7, 8, 9,s=O; for(i=0; i n; i+) sum+=xi; s=fu

5、n(a, 5)+fun(b, 4); printf(“ d n“, s); return sum; ( A) 50 ( B) 45 ( C) 60 ( D) 55 8 有以下程序 int f(int m) main()int n=0; static int n=0; printf(“ d, “, f(+n); n+=m; return n; printf(“ d n“, f(n+); 程序运行后的输出结果是 ( A) 1, 1 ( B) 1, 2 ( C) 2, 3 ( D) 3, 3 9 有以下程序 #include stdio h main() int fun() int i, s=1;

6、static int x=1; for(i=1; i =2; i+)s=fun(); x*=2; return x; printf(“ d n“, s); 程序运行后的输出结果是 ( A) 4 ( B) 1 ( C) 0 ( D) 8 10 有下列程序: int a=4: int f(int n) main() int t=0; static int a=5; int s=a, i=0; if(n 2)int a=6; t+=a+; for(; i 2; i+)s+=f(i); elseint a=7; t+=a+; printf(“ d n“, s); return t+a+; 程序运行后的

7、输出结果是 ( A) 28 ( B) 24 ( C) 32 ( D) 36 11 已有定义: char a=“xyz“,b=x, y, z;,以下叙述中正确的是 ( A)数组 a和 b长度相同 ( B) a数组长度小于 b数组长度 ( C) a数组长度大于 b数组长度 ( D)上述说法都不对 12 若有语句: char*line5;,以下叙述中正确的是 ( A)定义 line是一个数组,每个数组元素是一个基类型为 char的指针变量 ( B)定义 line是一个指针变量,该变量可以指向一个长度为 5的字符型数组 ( C)定义 line是一个指针数组,语句中的 *号称为间址运算符 ( D)定义

8、line是一个指向字符型函数的指针 13 若有定义语句: int m=5, 4, 3, 2, 1), i=4;,则下面对 m数组元素的引用中错误的是 ( A) m-i ( B) m2*2 ( C) mm0 ( D) mmi 14 若有定义语句: double x5=1 0, 2 0, 3 0,4 0, 5 0, *p=x;则错误引用 x数组元素的是 ( A) *P ( B) x5 ( C) *(p+1) ( D) *x 15 若要定义一个具有 5个元素的整型数组,以 下错误的定义语句是 ( A) int a5=0; ( B) int b=0, 0, 0, 0, 0; ( C) int c2+3

9、 ( D) int i=5, di; 16 以下能正确定义一维数组的选项是 ( A) int a5=0, 1, 2, 3, 4, 5; ( B) char a=0, 1, 2, 3, 4, 5; ( C) char a=A, B, C; ( D) int a5=“0123“; 17 有以下程序 void fun(int a, int n)int i, t; for(i=0; i n 2; i+) t=ai; ai=an 1 i; an 1 i=t; main() int k10=1, 2, 3, 4, 5, 6, 7, 8, 9, 10, i; fun(k, 5); for(i=2; i 8;

10、 i+)printf(“ d“, ki); printf(“ n“); 程序的运行结果 是 ( A) 876543 ( B) 321678 ( C) 1098765 ( D) 345678 18 下列定义数组的语句中,正确的是 ( A) int N=10; int xN; ( B) #define N 10 int xN; ( C) int x0 10; ( D) int x; 19 有以下程序 #include stdio h void main() int a=2, 3, 5, 4, i; for(i=0; i 4; i+) switch(i 2) case 0: switch(ai 2)

11、 case 0: ai+; break; case 1: ai-; break; case 1: ai=0; for(i=0; i 4; i+) printf(“ d“, ai); printf(“ n“); 程序运行后的输出结果是 ( A) 2 0 5 0 ( B) 3 3 4 4 ( C) 3 0 4 0 ( D) 0 3 0 4 20 有以下程序 #include stdio h main() void fun(int a, int b) int c10=1, 2, 3, 4, 5, 6, 7, 8, 9, 0), i; int t: for(i=0; i 10; i+=2) t=a;

12、a=b; b=t; fun(ci, ci+1); for(i=0; i 10; i+)printf(“ d, “, ci); printf(“ n“); 程序的运行结果是 ( A) 2, 1, 4, 3, 6, 5, 8, 7, 0, 9, ( B) 0, 9, 8, 7, 6, 5, 4, 3, 2, 1, ( C) 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, ( D) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 21 有下列程序: main() int i, s=0, t=1, 2, 3, 4, 5, 6, 7, 8, 9; for(i=0; i 9; i+

13、=2)s+=*(t+i); printf(“ d n“, s); 程序执行后的输出结果是 ( A) 20 ( B) 45 ( C) 36 ( D) 25 22 下列选项中,能正确定义数组的语句是 ( A) int num; ( B) int N=2008; int numN; ( C) int num0 2008; ( D) #define N 2008 int numN; 23 若要求定义具有 10个 int型元素的 一维数组 a,则以下定义语句中错误的是 ( A) #define n 5 int a2*n; ( B) int a5+5; ( C) #define N 10 int aN;

14、( D) int n=10, an; 24 下列程序中函数 f的功能是:当 flag为 1时,进行由小到大排序;当 flag为 0时,进行由大到小排序 void f(int b, int n, int flag) main() int i, j, t; int a10=5, 4, 3, 2, 1, 6, 7, 8, 9, 10,i; for(i=0; i n 1; i+) f&a2, 5, 0); for(j=i+1; j n; j+) f(a, 5, 1); if(flag?bi bj: bi bj) for(i=0; i 10; i+) t=bi; bi=bj; bj=t; printf(

15、“ d, “, ai); 程序运行后的输出结果是 ( A) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ( B) 3, 4, 5, 6, 7, 2, 1, 8, 9, 10, ( C) 5,4, 3, 2, 1, 6, 7, 8, 9, 10, ( D) 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 25 有以下程序 #include stdio h main() int s12=1, 2, 3, 4, 4, 3, 2, 1, 1, 1, 2, 3), c5=0, i; for(i=0; i 12; i+)csi+; for(i=1; i 5; i+)prin

16、tf(“ d“, ci); printf(“ n“); ( A) 4 3 3 2 ( B) 2 3 4 4 ( C) 1 2 3 4 ( D) 1 1 2 3 26 有下列程序: #include stdio h *fun函数的功能是将 a所指数组元素从大到小排序 * void fun(int*a, int n) main() int t, i, j; int c10=1, 2, 3, 4, 5, 6, 7, 8, 9, 0),i; for(i=0; i n 1; j+) fun(c+4, 6); for(j=i+1; j n; j+) for(i=0; i 10; i+)printf(“ d

17、, “,ci); if(ai aj)t=ai; ai=aj; aj=t; p printf(“ n“); 程序的运行结果是 ( A) 1, 2, 3, 4, 9, 8, 7, 6, 5, 0, ( B) 0, 9, 8, 7, 6, 5, 1, 2, 3, 4, ( C) 0, 9, 8, 7, 6, 5, 4, 3, 2, 1, ( D) 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 27 有以下程序 #include stdio h main() int c6=10, 20, 30, 40, 50, 60, *p, *s; p=c; s=&c5; printf(“ d n“,

18、 s-P); 程序运行后的输出结果是 ( A) 50 ( B) 6 ( C) 5 ( D) 60 28 以下叙述中正确的是 ( A)一条语句只能定义一个数组 ( B)数组说明符的一对方括号中只能使用整型常量,而不能使用表达式 ( C)每个数组包含一组具有同一类型的变量,这些变量在内存中占有连续的存储单元 ( D)在引用数组元素时,下标表达式可以使用浮点数 29 以下叙述中正确的是 ( A)语句 int a=0;是不合法的,遗漏了数组的大小 ( B)语句 char a2=“A“, “B“;是合法的,定义了一个包含两个字符的数组 ( C)语句 int a8=0;是合法的 ( D)语句 char a

19、3; a=“AB“;是合法的,因为数组有三个字符空间的容量,可以保存两个字符 30 如果定义 float a10, x;则以下叙述中正确的是 ( A)表达式 a+1是非法的 ( B)语句 a=&x;是非法的 ( C)三个表达式 a1、 *(a+1)、 *&a1表示的意思完全不同 ( D)表达式 *&a1是非法的,应该写成 *(&(a1) 国家二级 C语言机试(函数和数组)模拟试卷 9答案与解析 一、选择题 1 【正确答案】 C 【试题解析】 在函数 func(int n)中定义了局部静态变量 num,其初始值等 于 1,所以在主函数中执行 func(3),输出 4,此时静态变量 num的值等于

20、 4,当退出函数 func(3)时,其值不会丢失,所以当在执行 func(4)时,输出 8。 【知识模块】 函数和数组 2 【正确答案】 B 【试题解析】 子函数 fun(int x, int y),将变量 m和 i声明为局部静态变量,因此第 1次调用主函数后,局部静态变量 m和 i的值为 5和 3,第 1次函数调用结束时,它们的值不释放保持不变,所以第 2次调用时,局部静态变量 m和 i的初始值分别为 5和 3,即在执行 “i+=m+1”时, i的值为 9,因 此最终 m的值为 11。 【知识模块】 函数和数组 3 【正确答案】 D 【试题解析】 在 C语言中,动态变量 (auto)存储在内

21、存中的动态存储区,在程序运行中,只有当调用变量所在的函数时,系统才临时给变量分配内存单元;全局变量 (extern)一经定义,系统为其分配固定的内存单元:静态变量 (static),编译系统为其分配固定的存储空间;寄存器变量 (register)不保存在内存上,而是直接存储在 CPU的寄存器中。 【知识模块】 函数和数组 4 【正确答案】 D 【试题解析】 本题 考查了静态局部变量,该局部变量的值在函数调用结束后如果不消失而保留原值。函数凡 n的功能返回 2的乘方,主函数 fun函数调用 3次,因此第一次 s累乘 2,第二次累乘 4,第三次累乘 8,即为 2*4*8,值为 64。 【知识模块】

22、 函数和数组 5 【正确答案】 A 【试题解析】 在主函数中第一次调用 f(a)时,得到变量 s的值等于 4,在第二次调用 f(a)时,在子函数 f中由于变量 a是一个局部静态变量,所以这次其值等于2,因而在主函数中第二次调用 f(a)后,其返回值等于 5,最后变量 s的值等于 9。 【知识模块 】 函数和数组 6 【正确答案】 B 【试题解析】 这道试题主要考查了局部静态变量的应用。在函数 fun()中定义了局部静态变量整型 x,其初值等于 1,在主函数中循环执行 5次,第一次变量 s的值等于 3,变量 x的值等于 2,第二次变量 s的值等于 6,变量 x的值等于 3,第三次变量 s的值等于

23、 10,变量 x的值等于 4,第四次变量 s的值等于 15,变量 x的值等于 5,第五次变量 s的值等于 21,变量 x的值等于 6。 【知识模块】 函数和数组 7 【正确答案】 C 【试题解析】 在函数 int fun(int x, int n)的定义中,变量 sum使用了 static修饰符,这说明了变量 sum为一个静态局部变量。由于在整个程序运行期间,静态局部变量在内存中的静态存储区中占据着永久的存储单元。即使退出函数之后,下次再进入该函数时,静态局部变量继续使用原来存储单元中原来的值。函数intfun(int x, int n)的功能是求出数组 x各个元素的和。所以在主函数中,调用函

24、数 Fun(a, 5)后,变量 sum=1+2+3+4+5=15,当再次调用 Fun(b, 4)后,变量sum=15+6+7+8+9=45,所以 s=15+45=60。 【知识模块】 函数和数组 8 【正确答案】 B 【试题解析】 由于在函数 f中,变量 n为静态局部变量,所以在主函数中第一次调用函数 f后,变量 n的值等于 1,当第二调用函数 f时,在函数 f的内部静态局部变量 n的值仍然保留等于 1,所以返回函数值等于 2。 【知识模块】 函数和数组 9 【正确答案】 A 【试题解析】 在子函数 fun()中定义局部静态变量 x,其初值等于 1,然后再把其值扩大 1倍后返回。在主函数中执行

25、 for循环语句 2次,调用函数 fun()两次,所以变量 s的值等于 4。 这里要强调的一点是当函数 fun()执行完毕后,局部静态变量 x的值不会丢失,仍然有效。 【知识模块】 函数和数组 10 【正确答案】 A 【试题解析】 程序中定义了全局整型变量 a=4。在 intf(int n)函数中定义了局部静态整型变量并进行了初始化即 static inta=5。在 int f(int n)函数中对 n是否是偶数进行判断,如果 n是奇数,则函数的返回值为 11,局部静态整型变量 a=6;如果 n是偶数,则函数的返回值为 12,局部静态整型变量 a=6。所以在 main()函数中循环首先执行 s

26、+=f(0)语句,而 f(0)返回值 12,所以第一次循环结束 s的值等于4+12=16;第二次开始执行 f(1)时,在 f(1)中执行 “if(n 2)int a=6; t+=a+; ”和“retum t+a+; ”这两条语句,这时 t=6, a=6(静态局部变量第一次循环后其值加 1值不释放,执行第二次循环量,其值仍有效 ),所以 f(1)的返回值等于 12。再在主函数中执行 s+=f(1)语句,即 16+12=28。 【知识模块】 函数和数组 11 【正确答案】 C 【试题解析】 本题考查字符数组的定义。 char“a=“xyz“, b=x, y, z; ”定义了两个字符数组 a和 b,

27、 a数组存放的是一个字符串,字符串以 “ 0”作为结束标志,数组 a的长度必须加上结束符长度 1,因此数组 a的长度为 4。数组 b中有三个元素,长度为 3。 【知识模块】 函数和数组 12 【正确答案】 A 【试题解析】 本题考查指针数组的定义。本题中 line是一个指针数组,有 5个元素,每个元素都是一个指针变量。 【知识模块】 函数和数组 13 【正确答案】 C 【试题解析】 本题考查数组的使用。 m是一个一 维数组,长度为 5,因此下标范围是 0-4。选项 A)中 i是先自减,然后使用 i,因此访问的是元素 m3;选项 B)访问的是元素 m4;选项 C)中内部的 m0值是 5,因此实际

28、访问是的 m5,下标超出范围;选项 D)中 mi的值是 1,访问元素 m1。 【知识模块】 函数和数组 14 【正确答案】 B 【试题解析】 本题考查数组和指向数组的指针。 x是一个一维 double类型的数组,长度为 5,下标范围是 0-4,指针 p指向数组 x。选项 A)中 *p是取数组首元素x0的值;选项 B)下标超出范围:选项 C), p+1表示 x1的地址,因此 *(p+1)是取x1元素值;选项 D)中,数组名 x本身代表数组的首地址,因此 *x表示取元素 x0的值。 【知识模块】 函数和数组 15 【正确答案】 D 【试题解析】 本题考查一维数组的定义, C语言中一维数组的定义方式

29、为:类型说明符 数组名 常量表达式 ;。 选项 A)正确;选项 B)初始化了 5个元素,因此数组长度为 5;选项 C)常量表达式2+3的值为 5,正确;选项 D)数组长度不是常量表达式,错误。 【知识模块】 函数和数组 16 【正确答案】 B 【试题解析】 本题考查一维数组的定义, C语言中一维数组的定义方式为:类型说明符 数组名 常量表达式 。 选项 A)定义的数组长度为 5,大括号里面的元素个数为 6,超过数组长度,错误;选项 B)正确,编译器会根据初始化元素的个数自动计算数组的长度。选项 C)中没有使用 “”,不能定义一维数组:选项 D)中数组元素的初始化必须使用大括号。 【知识模块】

30、函数和数组 17 【正确答案】 B 【试题解析】 函数 fun(int a, int n)的功能是实现整型数组 a元素的逆置操作。在主函数 中当执行 fun(k, 5)时,对 k(10中的子数组 k5=1, 2, 3, 4, 5的首尾元素进行逆置,此时 k10=5, 4, 3, 2, 1, 6, 7, 8, 9, 10。所在循环语句中输出从第 2 7个数组元素时,其值分别为 321678。 【知识模块】 函数和数组 18 【正确答案】 B 【试题解析】 数组说明的一般形式为:类型说明符数组名 常量表达式 ;其中类型说明符可以是任一种基本数据类型或构造数据类型,数组名是定义的数组标识符。常量表达

31、式表示数据元素的个数,也就是数组的长度,必须是整型常量。 【知识模块】 函数和数组 19 【正确答案】 C 【试题解析】 在主函数的 for循环语句中,当循环变量 i的值等于 0, 2时,执行switch中的 case 0语句,分别对数组元素 a0和 a2加 1和减 1,所以 a0的值等于 3, a2等于 4。当循环变量 i的值等于 1, 3时,执行 switch中的 case 1语句,把数组元素 a1和 a3的值赋为 0。所以输出数组 a的元素,其结果为 3040。 【知识模块】 函数和数组 20 【正确答案】 C 【试题解析】 C语言规定,实参变量对 形参变量的数据传递是 “值传递 ”,即

32、单向传递,只由实参传给形参,而不能由形参传回来给实参。在调用函数时,给形参分配仔储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元仍保留并维持原值。由此可知,在本题中,函数 fun(int a, int b)的功能是实现形参整形变量 a和 b值的互换。当在丰函数中调用 fun(ci, ci+l)时,把实参变量 ci和 ci+1的值赋给形参变量 a和 b, 执行完函数 fun(ci, ci+1)时,形参变量 a和 b的值发生了互换,实参变量 ci和ci+l的值并没有发生互换,所以输出的值为 1, 2, 3, 4, 5, 6, 7, 8, 9, 0。 【知识模块】 函数和数组

33、 21 【正确答案】 D 【试题解析】 本题在主函数中定义了一维整型数组 t=1, 2, 3, 4, 5, 6, 7,8, 9:然后在 for循环语句中自变量 i从 0开始,每次自加 2,执行 s+=*(t+i)语句,因为 C语言规定数组名代表数组的首地址,也就是第一个元素的地址。因此*(t+i)代表数组的第 i+1个元素。所以程序运行的结果是 1+3+5+7+9=25,即变量 s的值等于 25。 【知识模块】 函数和数组 22 【正确答案】 D 【试题解析】 在定义一维数组时,数组的下标应该是一个确定的整数值。要注意的是在定义二维数组时,其第一维下标可以省略,但第二维下标不能省略。 【知识模

34、块】 函数和数组 23 【正确答案】 D 【试题解析】 在 C语言中,定义一维数组的语句形式为:类型名 数组名 整型常量表达式 。在选项 D)中, n是一个整型的变量。 【知识模块】 函数和数组 24 【正确答案】 B 【试题解析】 主函数中进行了两次 f函数的调用。第一次传递给形参数组 b的地址为元素 a2的地址, n接收数据位 5,因此数组 b中元素为 3, 2, 1, 6, 7,此时 flag的值为 0,进行由大到小排序,而数组 b和实参数组 a共用一段存储空间,第一次调用结束以后,数组 a的值为 5, 4, 7, 6, 3, 2, 1, 8, 9, 10。第二次调用 f函数,形参数组接

35、收实参数组 a的首地址,取 5个元素,由小到大排序,调用结束以后,数组 a的值为 3, 4, 5, 6, 7, 2, 1, 8, 9, 10。 【知识模块】 函数和数组 25 【正确答案】 A 【试题解析】 本题考查 for语句的循环拄制,首先定义了两个数组并赋 予了初始值,第一个 for循环语句循环 12次遍历 s数组的各个元素,将 s中的原素值作为c数组中的下标,使相应的值自加。例如当 i=0, cs0+为 c1+,其值变为1,当执行 i=1, 2, , 11后, c1、 c2、 c3、 c4分别为 4、 3、 3、 2,故选项A)为正确的运行结果。 【知识模块】 函数和数组 26 【正确

36、答案】 A 【试题解析】 fun()函数的功能是对数组 a的元素从大到小进行排序。所以在主函数执行 fun(c+4, 6)语句时,将从数组 c的第 5个元素开始的 后 6个元素进行从大到小排序。排序之后,数组 c的内容变为 1, 2, 3, 4, 9, 8, 7, 6, 5, 0。 【知识模块】 函数和数组 27 【正确答案】 C 【试题解析】 主函数中指针变量 p指向数组 c, s保存 r数组最后一个元素的地址,那么 s-p为两个地址之间的元素差 5。 【知识模块】 函数和数组 28 【正确答案】 C 【试题解析】 数组的定义格式: 类型说明符数组名 整型常量表达式 , ; 可以同时定义多个

37、类型相同的数组,之间以逗号分隔开,数组的类型表明了数组中元 素的数据类型,数组中所有元素的类型相同,数组经过定义以后就可使用,编译程序将对其分配一片连续的存储空间进行连续存储。 C语言中只能单个引用数组元素而不能一次引用整个数组。引用格式为:数组名 下标 ,引用元素时,需要注意下标只能为整型常量或整型表达式。 【知识模块】 函数和数组 29 【正确答案】 C 【试题解析】 当系统为所定义的数组在内存中开辟一串连续的存储单元时,这些存储单元中并没有确定的值,可以在定义语句中为所定义数组的各个元素赋初值。 数组初始化赋值是指在数组定义时给数组元素赋 予初值。初始化赋值的一般形式为:类型说明符 数组

38、名 常量表达式 =值,值, .,值 ,。 需要注意的是当所赋仞值多丁所定义数组的元素个数时,在编译时将给出出错信息,在指定初值时,第一个初值必定赋给下标为 0的元素,然后按这些数值的排列顺序赋初值,只能给元素逐个赋值,不能给数组整体赋值。如果给全部元素赋值,则在数组说明中, 可以不给出数组元素的个数。 【知识模块】 函数和数组 30 【正确答案】 B 【试题解析】 定义语句 “float a10, x; ”以后,数组名 a表示了数组元素 的首地址,是常量在程序中不能更改,因此选项 A)是的描述是正确的。而指向运算符和取址运算符,是互反运算符优先级相同, *&a1和 *(&a1)含义相同。 【知识模块】 函数和数组

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1