[计算机类试卷]国家二级C语言(函数和数组)机试模拟试卷15及答案与解析.doc
《[计算机类试卷]国家二级C语言(函数和数组)机试模拟试卷15及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级C语言(函数和数组)机试模拟试卷15及答案与解析.doc(22页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C语言(函数和数组)机试模拟试卷 15及答案与解析 一、选择题 1 有以下程序 #include stdio.h int fun(int n) int a; if( n=1 ) return 1; a = n + fun( n-1); return ( a ); main() printf( “%dn“, fun( 5 ) ); 程序的输出结果是 ( A) 14 ( B) 10 ( C) 15 ( D) 9 2 有以下程序 #include stdio.h int fun( int a, int b) return a+b; main() int x=6, y=7, z=8, r ;
2、 r = fun ( fun(x,y), z- ); printf (“ %dn“ , r ); 程序运行后的输出结果是 ( A) 15 ( B) 21 ( C) 20 ( D) 31 3 以下选项中函数形参不是指针的是 ( A) fun( int else if(k=1) return 1; else return fun(k-1)+1; 若执行调用语句: n=fun(3);,则函数 fun总共被调用的次数是 ( A) 2 ( B) 4 ( C) 3 ( D) 5 5 有以下程序( strcat函数用以连接两个字符串 ) #include stdio.h #include string.h
3、main() char a20=“ABCD0EFG0“, b=“IJK“; strcat (a,b); printf(“%sn“,a); 程序运行后的输出结果是 ( A) ABCDE0FG0IJK ( B) ABCDIJK ( C) IJK ( D) EFGIJK 6 有以下程序 int fun(int n) if(n= =1)return 1; else return(n+fun(n-1); main( ) int x; scanf(“%d“, x=fun(x); printf(“%dn“,x); 执行程序时,给变量 x输入 10,程序的输出结果是 ( A) 54 ( B) 65 ( C)
4、45 ( D) 55 7 有以下程序 fun(int x) int p; if(x= =0x= =1) return(3); p=x-fun(x-2); return p; main( ) printf(“%dn“,fun(7); 执行后的输出结果是 ( A) 3 ( B) 7 ( C) 0 ( D) 2 8 若有以下程序 int f(int a, int n) if (n 1) int t; t=f(a, n-1); return t an-1 ? t : an-1; else return a0; main() int a = 8,2,9,1,3,6,4,7,5; printf(“%dn“
5、, f(a, 9); 则程序的输出结果是 ( A) 9 ( B) 1 ( C) 8 ( D) 5 9 以下叙述中正确的是 ( A)只有全局变量才有自己的作用域,函数中的局部变量没有作用域 ( B)只要是用户定义的标识符,都有一个 有效的作用域 ( C)只有在函数内部定义的变量才是局部变量 ( D)局部变量不能被说明为 static 10 以下叙述中正确的是 ( A)对于变量而言, “定义 ”和 “说明 ”这两个词实际上是同一个意思 ( B)在复合语句中不能定义变量 ( C)全局变量的存储类别可以是静态类 ( D)函数的形式参数不属于局部变量 11 有以下程序 int d=1; void fun
6、( int p ) int d=5; d += p+; printf(“%d “, d ); main() int a=3; fun( a ); d += a+; printf(“%dn“,d); 程序的输出结果是 ( A) 9 6 ( B) 9 4 ( C) 8 4 ( D) 8 5 12 有以下程序 #include stdio.h int a=1,b=2; void fun1(int a, int b) printf(“%d%d”,a,b); void fun2( ) a=3; b=4; main() fun1(5,6); fun2(); printf(“%d%dn“,a,b); 程序运
7、行后的输出结果是 ( A) 3 4 5 6 ( B) 1 2 5 6 ( C) 5 6 1 2 ( D) 5 6 3 4 13 在一个 C源程序文件中所定义的全局变量,其作用域为 ( A)由具体定义位置和 extern说明来决定范围 ( B)所在程序的全部范围 ( C)所在函数的全部范围 ( D)所在文件的全部范围 14 有以下程序 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);
8、程序的运行结果是 ( A) A B E F ( B) C D E F ( C) A B C D ( D) C D A B 15 有以下程序 #include stdio.h 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); printf(“%dn“,p); 程序运行后的输出结果是 ( A) 8,17 ( B) 7,16 ( C) 8,8 ( D) 7,17 16 有以下程
9、序 #include stdio.h 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 17 有以下程序 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=fu
10、n(j,m); printf(“%dn“,k); 执行后的输出结果是 ( A) 5, 5 ( B) 5, 11 ( C) 11, 11 ( D) 11, 5 18 在 C语言中,只有在使用时才占用内存单元的变量,其存储类型是 ( A) extern和 register ( B) auto和 static ( C) static和 register ( D) auto和 register 19 有以下程序 #include stdio.h int fun() static int x=1; x*=2; return x; main() int i, s=1; for( i=1; i =3; i+
11、 ) s*=fun( ); printf(“%dn“, s); 程序运行后的输出结果是 ( A) 0 ( B) 10 ( C) 30 ( D) 64 20 有以下程序 #include stdio.h int f(int n); main() int a=3,s; s=f(a); s=s+f(a); printf(“%dn“,s); int f(int n) static int a=1; n+=a+; return n; 程序运行后的输出结果是 ( A) 9 ( B) 8 ( C) 7 ( D) 10 21 有以下程序 #include stdio.h int fun() static in
12、t x=1; x+=1; return x; main() int i,s=1; for(i=1;i =5;i+) s+=fun(); printf(“%dn“,s); 程序运行后的输出结果是 ( A) 11 ( B) 21 ( C) 6 ( D) 120 22 有以下程序 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(“%dn“,s); (
13、 A) 50 ( B) 45 ( C) 60 ( D) 55 23 有以下程序 int f ( int m ) static int n=0; n+=m; return n; main() int n=0; printf ( “%d,“, f(+n) ); printf ( “%dn“, f(n+) ); 程序运行后的输出结果是 ( A) 1,1 ( B) 1,2 ( C) 2,3 ( D) 3,3 24 有以下程序 #include stdio.h int fun() static int x=1; x*=2; return x; main() int i,s=1; for(i=1;i =2
14、;i+) s=fun(); printf(“%dn“,s); 程序运行后的输出结果是 ( A) 4 ( B) 1 ( C) 0 ( D) 8 25 有下列程序: int a=4; int f(int n) int t=0; static int a=5; if(n%2) int a=6; t+ =a+ +; else int a=7; t+ =a+ +; return t+a+ +; main( ) int s=a,i=0; for(;i 2;i+ +)s+ =f(i); printf(“%dn“,s); 程序运行后的输出结果是 ( A) 28 ( B) 24 ( C) 32 ( D) 36
15、26 有以下程序 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; i+) printf(“%d“, ki); printf(“n“); 程序的运行结果是 ( A) 876543 ( B) 321678 ( C) 1098765 ( D) 345678 27 下列定义数组的语句中,正确的是 ( A) int N=10; int xN; ( B) #defin
16、e N 10 int xN; ( C) int x010; ( D) int x; 28 有以下程序 #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) 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
17、 0 4 国家二级 C语言(函数和数组)机试模拟试卷 15答案与解析 一、选 择题 1 【正确答案】 C 【试题解析】 函数 fun为递归定义的函数,当调用 fun(5)5+fun(4)5+4+fun(3)5+4+3+fun(2)5+4+3+2+fun(1),因此最后的结果为 15。 【知识模块】 函数和数组 2 【正确答案】 B 【试题解析】 本题考查了函数的调用,函数 fun功能为求两个数据的和。主函数中表达式 r = fun ( fun(x,y), z- ),首先计算内层调用 fun(x,y),计算结果为 13,然后外层调用 fun(13,8),结果为 21。 【知识模块】 函数和数组
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 函数 数组 模拟 15 答案 解析 DOC
