[计算机类试卷]国家二级C语言机试(函数和数组)模拟试卷20及答案与解析.doc
《[计算机类试卷]国家二级C语言机试(函数和数组)模拟试卷20及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级C语言机试(函数和数组)模拟试卷20及答案与解析.doc(20页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C语言机试(函数和数组)模拟试卷 20及答案与解析 一、选择题 1 以下选项中叙述错误的是 ( A)在 C程序的同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内 ( B) C程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值 ( C) C程序函数中定义的自动变量,系统不自动赋确定的初值 ( D) C程序函数的形参不可以说明为 static型变量 2 有以下程序 int flint x); main()int n=1, m; m=f(f(f(n); printf(“ n“, m); int f(int x) return x*2; 程序运行后的输出结果是 (
2、A) 1 ( B) 2 ( C) 4 ( D) 8 3 有以下程序 #include int fun(int x, int y) main() if(x=y)return(x); int a=4, b=5, c=6; else return(x+y) 2); printf(“ d n“, fun(2*a, fun(b, c); 程序运行后的输出结果是 ( A) 3 ( B) 6 ( C) 8 ( D) 12 4 有以下程序 #include main() int flint x, int y) int a=3, b=4, c=5, d; return(y-x)*x); ) d=f(f(a, b
3、), f(a, c); printf(“ d n“, d); 程序运行后的输出结果是 ( A) 10 ( B) 8 ( C) 9 ( D) 7 5 有以下程序 #include double f(double x); main()double f(double x) double a=0; int i; return x*x+1; for(i=0; i int flint x); main() int f(int x) int a, b=0; return x*x+1; for(a=0; a=10) f(z); printf(“ d-“, x 10); f(x 10); else printf
4、(“ d“, x); 则程序的输出结果是 ( A) 6-5-4-3-2-1 ( B) 6-5-4-3-2-1- ( C) 1-2-3-4-5-6 ( D) 1-2-3-4-5-6- 10 以下与函数 fseek(fp, OL, SEEK SET)有相同作用的是 ( A) feof(fp) ( B) ftell(fp) ( C) fgetc(fp) ( D) rewind(fp) 11 以下程序的功能是:给 r输入数据后计算半径为 r的圆面积 s。程序在编译时出错 main() *Beginning* int r; float s; scanf(“ d“, r); s=*r*r; printf(
5、“s= f n“, s); 出错的原因是 ( A)注释语句书写位置错误 ( B)存放圆半径的变量 r不应该定义为整型 ( C)输出语句中格式描述非法 ( D)计算圆面积的赋值语句使用了非法变量 12 以下程序函数 f的功能是:当 flag为 1时,进行由小到大排序:当 flag为 0时,进行由大到小排序 void flint 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; iblj: bi main() int k=011; printf(“ d n“, k+)
6、; 程序运行后的输出结果是 ( A) 12 ( B) 11 ( C) 10 ( D) 9 14 有以下程序 #include int fun(int x)int p; if(x=0 x=1)return(3); p=x-fun(x-2); return(p); main()printf(“ d n“, fun(9); 程序运行后的输出结果是 ( A) 5 ( B) 9 ( C) 4 ( D) 7 15 有以下程序 #include int fun(int n)int a; main() if(n=1)return 1; a=n+fun(n-1); printf(“ d n“, fun(5);
7、return(a); j 程序的输出结果是 ( A) 14 ( B) 10 ( C) 15 ( D) 9 16 有以下程序 #include int fun(int a, int b)return a+b; main()int x=6, y=7, z=8, r; r=fun(fun(x, y), z-); printf(“ d n“, r); 程序运行后的输出结果是 ( A) 15 ( B) 21 ( C) 20 ( D) 31 17 以下选项中函数形参不是指针的是 ( A) fun(int&p) ( B) fun(int a10) ( C) fun(int*a) ( D) fun(int P
8、) 18 设有如下函数定义 int fun(int k) if(k int f(int x) main() int y; int z; if(x=0x=1)return(3); z=f(3); printf(“ d n“, z); y=x*x-f(x-2); return y; 程序的运行结果是 ( A) 9 ( B) 0 ( C) 6 ( D) 8 20 有以下程序 (strcat函数用以连接两个字符串 ) #include #include main() char a20=“ABCD 0EFG 0“, b=“IJK“; strcat(a, b); printf(“ s n“, a); 程序
9、运行后的输出结果是 ( A) ABCDE 0FG 0IJK ( B) ABCDIJK ( C) IJK ( D) EFGIJK 21 有以下程序 int fun(int n) main() if(n=1)return 1; int x; Else scanf(“ d”, &x); x=fun(x); return(n+fun(n 1); printf(“ d n“, x); 执行程序时,给变量 x输入 10,程序的输出结果是 ( A) 54 ( B) 65 ( C) 45 ( D) 55 22 有以下程序 fun(int x) main() int p; if(x=0 x=1)return(3
10、); printf(“ d n“, fun(7); p=x-fun(x-2); return p; 执行后的输出结果是 ( A) 3 ( B) 7 ( C) 0 ( D) 2 23 若有以下程序 int f(int a, int n) main() if(n1) int a=8, 2, 9, 1, 3, 6, 4, 7, 5; int t; t=f(a, n 1); printf(“ d n“, f(a, 9); return tan-1?t: an-1; else return a01; 则程序的输出结果是 ( A) 9 ( B) 1 ( C) 8 ( D) 5 24 在一个 C源程序中所定
11、义的伞局变量。其作用域为 ( A)所在文件的全部范围 ( B)所存程序的全部范围 ( C)所在函数的全部范围 ( D)由具体定义位置和 extern说明来决定范围 25 以下叙述中正确的是 ( A)只有全局变量才有自己的作用域,函数中的局部变量没有作用域 ( B)只要是用户定义的标识符,都有一个有效的作用域 ( C)只有在函数内部定义的变量才是局部变量 ( D)局部变量不能被说明为 static 26 以下叙述中正确的是 ( A)对于变量而言, “定义 ”和 “说明 ”这两个词实际上是同一个意思 ( B)在复合语句中不能定义变量 ( C)全局变量的存储类别可以是静态类 ( D)函数的形式参数不
12、属于局部变量 27 有以下程序 int d=1; void fun(int p) main()int a=3; int d=5; fun(a); d+=p+; d+=a+; printf(“ d“, d); ) printf(“ d n“, d); 程序的输出结果是 ( A) 9 6 ( B) 9 4 ( C) 8 4 ( D) 8 5 28 有以下程序 #include int a=1, b=2; void fun1(int a, int b) main() printf(“ d d“, a, b); )。 fun1(5, 6); fun2(); void fun2() printf(“ d
13、 d n“, a, b); a=3; b=4; 程序运行后的输出结果是 ( A) 1 2 5 6 ( B) 5 6 l 2 ( C) 5 6 3 4 29 在一个 C源程序文件中所定义的全局变量,其作用 域为 ( A)由具体定义位置和 extern说明来决定范围 ( B)所在程序的全部范围 ( C)所在函数的全部范围 ( D)所在文件的全部范围 国家二级 C语言机试(函数和数组)模拟试卷 20答案与解析 一、选择题 1 【正确答案】 B 【试题解析】 在函数定义的静态变量,只需要赋值 1次,即可保存初始值,不需要每次调用时都赋初始值。 【知识模块】 函数和数组 2 【正确答案】 D 【试题解析
14、】 程序考查了函数的调用。对于 m=f(f(f(n);首先计算最内层的函数调用 f(n),执 行 f函数,得到返回值 2,然后计算 f(2),得到返回值为 4,最后计算 f(4),得到计算结果为 8。 【知识模块】 函数和数组 3 【正确答案】 B 【试题解析】 fun(b, c)即 fun(5, 6), 5!=6,所以返回 (5+6) 2=5; fun(2*a, 5)即 fun(8, 5), 8!=5,所以返回 (8+5) 2=6。 【知识模块】 函数和数组 4 【正确答案】 C 【试题解析】 本题考查函数的嵌套调用。首先计算 f(a, b)与 f(a, c), f(a,b)=(b-a)*a
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 函数 数组 模拟 20 答案 解析 DOC
