计算机二级考试复习资料答案

上传人:j****9 文档编号:46047735 上传时间:2018-06-21 格式:DOCX 页数:7 大小:21.61KB
返回 下载 相关 举报
计算机二级考试复习资料答案_第1页
第1页 / 共7页
计算机二级考试复习资料答案_第2页
第2页 / 共7页
计算机二级考试复习资料答案_第3页
第3页 / 共7页
计算机二级考试复习资料答案_第4页
第4页 / 共7页
计算机二级考试复习资料答案_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《计算机二级考试复习资料答案》由会员分享,可在线阅读,更多相关《计算机二级考试复习资料答案(7页珍藏版)》请在金锄头文库上搜索。

1、 参考答案及解析一、选择题1. 答案:B 【解析】一个自定义函数中可以没有返回值。如果函数不返回值,则应定义为 void 型,程序执行结束后自动返回到调用处。故选项 A)、C)、D)错误。一个自 定义函数可以根据不同的情况设置多条 return 语句,但函数的返回值必须只有 一个,故选项 B)正确。2. 答案:C 【解析】return 语句中的表达式的值就是所求的函数值,此表达式值的类型必 须与函数首部所说明的类型一致。如果类型不一致,则以函数值的类型为准, 由系统自动进行转换。一个 return 语句只能返回一个值。3. 答案:B 【解析】函数调用的一般形式为:函数名(形参表)若函数无形参,

2、调用形式为: 函数名(),当所调用的函数用于求出某个值时,函数的调用可作为表达式出现 在允许表达式出现的任何地方,本题中调用语句的参数个数为 2 个。4. 答案:C 【解析】题中变量 w 的定义为 double 型,函数 fun2()的定义为 int 型,按照 各类数值型数据间的混合运算,整型数据被转换为实型数据。5. 答案:B 【解析】这也是一道涉及到函数递归调用的题目,在主函数中当执行 fun(2*a,fun(b,c)时,根据变量 a,b,c 的初值,上式转化为 fun(8,fun(5,6),而 fun(5,6)根据函数 fun()的定义可知,其值等于 5, 所以就执行 fun(8,5),

3、其函数值等于 6。6. 答案:D 【解析】第一次调用的是最内层的 f(n),即 f(1)返回值 2。第二次调用中间的 f(f(n),即 f(2)返回值 4。最后调用最外层的 f(f(f(n),即 f(4)返回值 8, 最后打印输出。7. 答案:B 【解析】 将 a、b、c 的值分别带入 f(a,b)和 f(a,c)中计算得:f(a,b) 3,f(a,c)6,再计算 f(3,6),算出 d9。8. 答案:C 【解析】函数调用的一般形式为:9. 答案:D 【解析】本程序是一个递归函数,第一次实参为 7,第二次为 3,此时不满足条 件,因为 3/2 结果为 1,等于 1 而不大于 1,所以跳过 fu

4、n(x/2)语句,执行 printf 语句,即打印出 3。然后向上返回到第一次调用打印出 7。10. 答案:B 【解析】函数的功能是求数组所有元素的和。递归表示为 a3+a2 +a1+a0+f(t,0)=10。11. 答案:B 【解析】该题目考查函数参数传递以及 if 条件语句。当变量 b 为 0 时,将 a 的 值返回给主调函数,因此 a 进行两次自减 1 后,将其值返回并输出。12. 答案:C 【解析】函数 int f(int x)是一个递归函数调用,当 x 的值等于 0 或 1 时,函 数值等于 3,其他情况下 yx2f(x2)。所以在主函数中执行语句“zf(3)“ 时,y3*3-f(3

5、-2)=9-f(1)=6。13. 答案:A 【解析】本程序考查的是函数的递归调用,在调用一个函数的过程中又出现直 接或间接地调用该函数本身,称为函数的递归调用,执行结果为 1+2+3+4+5+6+7+8+9+10=55。14. 答案:B 【解析】在 main 函数中,对 f(1)和 f(2)的值进行累加。15. 答案:A 【解析】该题考查的是递归函数的调用,题中读 fun 函数进行了递归调用,第 1 次调用:fun(3)n=3 s=3-fun(2);第二次调用:fun(2)n=2 s=2 返回第一次 调用后,s=3-2=1。16. 答案:C 【解析】 程序运行后,首先输出的是 p 的值,然后输

6、出 a 的值。pd,得 到 p 的值为 d 的初始值 2;a 的值不变,仍为 1。17. 答案:D 【解析】在内存中,实参单元与形参单元是不同的单元。在 C 语言中,仅在调 用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后, 形参单元被释放,实参单元仍保留并维持原值。故本题答案为 D)。18. 答案:C 【解析】函数形参和实参分别占用不同的内存单元,改变形参的值不会影响对 应实参的值,选项 A)正确。指针类型的函数可以返回地址值,选项 B)正确。在 头文件 stdio.h 中,NULL 被定义为 void 型的指针,选项 D)也正确。指针变量 的值只能是存储单元地址,而不能

7、是一个整数,选项 C)错误。故本题答案为 C)。19. 答案:C 【解析】如果没有指明函数值类型,则默认函数返回值的类型为 int 型。20. 答案:D 【解析】这道题目主要考查局部静态变量,在这个题目的 fun()函数中定义了 局部静态整型变量 x,其初值等于 1。而函数 fun()执行一次的功能使变量 x 的 值乘以 2。在主函数中第一次执行 for 循环语句,变量 s 的值等于 2,变量 x 的 值等于 2,第二次执行 for 循环语句,变量 s 的值等于 8,变量 x 的值等于 4, 第三次执行 for 循环语句,变量 s 的值等于 64,变量 x 的值等于 8。21. 答案:B 【解

8、析】本题目 fun()函数中定义的变量 x 为静态局部变量,第一循环后 x 的 值为 2,s 的值为 3;第二次循环后 x 的值为 3,s 的值为 6;第三次循环后 x 的 值为 4,s 的值为 10;第四次循环后 x 的值为 5,s 的值为 15;第五次循环后 x 的值为 6,s 的值为 21。22. 答案:C 【解析】x 被声明为静态变量,第一次调用 fun()后,x 值为 2,第二次调用时 直接执行 x*=2,值为 4。23. 答案:C【解析】 sf(a)表达式第一次调用 f(n)函数时,f(n)函数运行结果为 n4,a2,即 s 等于 4;ssf(a)表达式第二次调用 f(n)函数时,

9、f(n)函 数运行结果为 n5,所以得到 s 值为 9。24. 答案:A 【解析】在 C 语言中只有自动变量和寄存器变量在使用时才占用内存单元。所 以正确答案为 A)。25. 答案:A 【解析】本题考查的是全局变量、局部变量,以及局部静态变量的作用域问题。 程序中定义了多个变量 a,它们的类型以及作用域都不同。k 的初值为 0,首先 调用函数 f(3),返回值为,k 的值变为,for 循环第二次调用函数 f(3), 由于第一次调用 f 函数时静态变量的值由加变为了,这次返回值为 ,k 的值变为 13。跳出循环,k 再加上全局变量 a,其最终的值为 14。故本 题答案为 A)。26. 答案:C

10、【解析】本题主要考查的是用二维数组首地址和下标来引用二维数组元素的方 法。通过分析可知,程序中的双重循环定义了一个如下的二维数组:由于数组的下标是从 0 开始的, 所以二维数组元素 a i j 表示的是二维数 组 a 的第 i+1 行、第 j+1 列对应位置的元素。27. 答案:B 【解析】由于在 main()函数中,变量 i=4,所以就调用 fun(4),则输出“m=4 k=4“。然后变量 k 增 1 等于 5,变量 i 增 1 等于 5,所以 main()函数的 “printf(“i=%d k=%dn“,i,k);“语句输出“i=5 k=5“。28. 答案:D 【解析】在整个程序运行期间,

11、静态局部变量在内存的静态存储区中占据着永 久的存储单元,即使退出函数以后,下次再进入该函数时,静态局部变量仍使 用原来的存储单元,静态局部变量的初值是在编译的时候赋予的,在程序执行 期间不再赋予初值。本题由于连续三次调用函数 fun(),三次对静态变量 x 进 行操作,x 的值应依次为 6,7,8。29. 答案:D 【解析】函数的静态局部变量在编译时就赋初值,即只赋初值一次,在程序运 行时它已有初值,以后每次调用函数时不再重新赋值,而只是保留上次函数调 用结束时的值。30. 答案:A 【解析】auto 变量:无 static 声明的局部变量。用 auto 作存储类别的声明时, 可以不写 aut

12、o,存储类别隐含确定为 auto(自动存储类别),是动态存储方式。 大多数变量是自动变量。用 static 声明的局部变量是静态局部变量。函数调用 结束后静态局部变量占据的内存存储单元空间不释放,局部变量保留原值,下 次调用时可以继续使用该值。用 extern 声明外部变量,外部变量即全局变量, 可以用 extern 声明来改变全局变量的作用域,实际上,关键字“auto “可以省 略,auto 不写则隐含确定为“自动存储类别“,属于动态存储方式。31. 答案:C 【解析】内部静态变量是始终存在的,当函数被调用退出后,内部静态变量会 保存数据,再次调用该函数时,以前调用时的数值仍然保留着。Fun

13、(a,5)的值 是 15,再次调用后 sum=15,所以 Fun(b,4)=45,s=45+15=60。32. 答案:C 【解析】 static(静态局部变量):有时我们希望函数中局部变量的值在函数调 用结束后不消失而保留原值,这时就将局部变量指定为静态局部变量,如果定 义静态局部变量时不赋值,则编译时自动赋初值 0(对数据型变量)或空字符(对 字符变量)。33. 答案:A 【解析】主函数中给数组 C 元素赋值 1,2,9,0。第一个 for 循环语句中调 用 fun 函数,该函数功能是交换变量的数值,注意循环变量 i 的增量。第二个 for 循环语句将数组 C 中元素的值进行输出。34. 答

14、案:D 【解析】fun 函数的功能是将数组 a 中第一个元素和第五个元素数值对调,第 二个和第四个元素数值对调。主函数的功能是将数组 a 中符合条件的元素输出, 条件由循环语句中循环变量 i 决定。35. 答案:A 【解析】本题考查的是函数调用时的参数传递问题。程序在调用函数 f 时,传给函数 f 的参数只是结构变量 c 在栈中的一个复制,函数 f 所做的所有操作只 是针对这个数据复制进行的修改,这些都不会影响变量 c 的值。36. 答案:B 【解析】该题目中 fun 函数的功能是将二维数组 a 中符合条件的值赋给一维数 组的符合条件的元素。主函数的功能是将符合条件的一维数组的元素进行输出。二

15、、填空题1. 答案:func()| m+| 【解析】 第一空为函数说明语句,其格式为:函数标志符#函数名。第二空中 的 m 作为计数器,每读一个字符时加 1。2. 答案:1 3 6| 【解析】 依次执行 fun(6),fun(3),fun(1),当执行 fun(6)时要调用 fun(3), 执行 fun(3)时要调用 fun(1),所以输出的结果为 1 3 6。3. 答案:k=5| 【解析】本题主要考查了函数的递归调用方法。g=0, g=1 或 g=2 是递归的终 止条件,然后用回代的方法从一个已知值推出下一个值,直到计算出最终结果。4. 答案:11| 【解析】此题涉及函数的调用和 if 语句。程序先执行第二个 if 语句,然后再 执行第一个 if 语句,最后用 return 返回数值。5. 答案:i| 【解析】通过函数中语句 return xk; 可知 xk表示的是该一维数组 中最小的值,所以当 xi小于 xk所代表的数值后应将 i 变量赋给 k 变量, 使得 xk表示当前值较小的那个数据。6. 答案:!=|return j| 【解析】本题程序的流程是:让 i,j 都从 1 开始,其中 j 用于控制删除后剩下 的数中的下标,i 用于搜索原数组中

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号