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