[计算机类试卷]国家二级C语言机试(函数和数组)模拟试卷2及答案与解析.doc
《[计算机类试卷]国家二级C语言机试(函数和数组)模拟试卷2及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级C语言机试(函数和数组)模拟试卷2及答案与解析.doc(27页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C语言机试(函数和数组)模拟试卷 2及答案与解析 一、选择题 1 若各选项中所用变量已正确定义,函数 fun中通过 return语句返回一个函数值,以下选项中错误的程序是 ( A) main()x=fun(2 , 10); float fun(int a , intb) ( B) float fun(int a, int b)main()=fun(i,j) ; ( C) float fun(int, int); main()x=fun(2 , 10); )float fun(in t a, int b) ( D) main()float fun(int i,intj); x=fun(
2、ij) ; float fun(int a , int b) 2 有以下程序 include main() char p20=a, b, c, d, q=“abc“, r=“abcde“; strcat(p, r); strcpy(p+strlen(q), q); printf(“ d n“ strlen(p); 程序运行后的输出结果是 ( A) 9 ( B) 11 ( C) 6 ( D) 7 3 若有以下定义和语句 char sl10=“abed!“, *s2=“ n123 “; printf(“ d d n“, strlen(s1), strlen(s2); 则输出结果是 ( A) 10
3、5 ( B) 10 7 ( C) 5 5 ( D) 5 8 4 以下叙述中正确的是 ( A)函数名代表该函数的入口地址 ( B)所有函数均不能接受函数名作为实参传入 ( C)函数 体中的语句不能出现对自己的调用 ( D)如果函数带有参数,就不能调用自己 5 已定义以下函数 int fun(int*p)return*p; )fun函数返回值是 ( A)不确定的值 ( B)一个整数 ( C)形参 p中存放的值 ( D)形参 p的地址值 6 有以下程序 int add(int a, int b) return(a+b); main() int k, (*f)(), a=5, b=10; f=add;
4、 则以下函数调用语句错误的是 ( A) k=add(a, b); ( B) k=(*f)(a, b); ( C) k=*f(a, b); ( D) k=f(a, b); 7 以下选项中叙述错误的是 ( A)在 C程序的同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内 ( B) C程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值 ( C) C程序函数中定义的自动变量,系统不自动赋确定的初值 ( D) C程序函数的形参不可以说明为 static型变量 8 有以下程序 #include int f(int x, int Y) return(y-x)*x); main()
5、int a=3, b=4, c=5, d; d=f(f(a, b), f(a, c); printf(“ d n“, d); 程序运行后的输出结果是 ( A) 10 ( B) 8 ( C) 9 ( D) 7 9 有以下程序 void fun(int a, int b, intC) a=b; b=c; c=a; main() int a=10, b=20, c=30; fun(a, b, C); printf(“ d, d, d n“, c, b, a); ) 程序运行后的输出结果是 ( A) 10, 20, 30 ( B) 20, 30, 10 ( C) 30, 20, 10 ( D) 0,0
6、, 0 10 有以下程序 #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 11 以下选项中函数形参不是指针的是 ( A) fun(int&p) ( B) fun(int a10) ( C) fun(int*a) ( D) fun(int P) 12 有以下程序 (strcat函数用以连 接两个字符串 ) #include #include main(
7、) char a20=“ABCD 0EFG 0“, b=“IJK“; strcat(a, b); printf(“ s n“, a); 程序运行后的输出结果是 ( A) ABCDE 0FG 0IJK ( B) ABCDIJK ( C) UK ( D) EFGIJK 13 若有以下程序 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(“ d n“, f(a, 9); ) 则程序
8、的输出结果是 ( A) 9 ( B) 1 ( C) 8 ( D) 5 14 有以下程序 int 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 15 有以下程序 void fun2(char a, char b) printf(“ c c“, a, b); ) char a=A, b=B; void funl() a=C; b=D; ) mai
9、n() funl(); printf(“ c c“, a, b); fun2(E, F); 程序的运行结果是 ( A) A B E F ( B) C D E F ( C) A B C D ( D) C D A B 16 有以下程序 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); printf(“ d n“, k); 执行后的输出结果是 ( A) 5, 5 ( B) 5, 11
10、 ( C) 11, 11 ( D) 11, 5 17 有以下程序 #include int f(int n): main() int a=3, s; s=f(a); s=s+f(a); printf(“ d n“, s); ) int flint n) static int a=1; n+=a+: return n; 程序运行后的输出结果是 ( A) 9 ( B) 8 ( C) 7 ( D) 10 18 有以下程序 int f(int m) static int n=0; n+=m; return n; main() int n=0; printf(“ d“, f(+n); printf(“
11、d n“, f(n+); ) 程序运行后的输出结果是 ( A) 1, 1 ( B) 1,2 ( C) 2, 3 ( D) 3, 3 19 有以下程序 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 (
12、C) 1098765 ( D) 345678 20 有以下程序 #include void fun(int a, int b) mt t; t=a; a=b; b=t; main() int c10=1, 2, 3, 4, 5, 6, 7, 8, 9, 0), i; for(i=0; i 10; i+=2) 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
13、, ( C) 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, ( D) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 21 若要求定义具有 10个 int型元素的一维数组 a,则以下定义语句中错误的是 ( A) #define n 5 int a2*n; ( B) int a5+5; ( C) #define N 10 int aa; ( D) int n=10, an; 22 有下列程序: #include void fun(int*a, int n) *fun函数的功能是将 a所指数组元素从大到小排序 * int t, i, j; for(i=0; i n-1;
14、j+) for(j=i+j n; j+) ifai #include void main() char str20=“One*World“, “One*Dreamt“), *p=str1; print!(“ d, “, strlen(p); print!(“ s n“, p); ) 程序运 行后的输出结果是 ( A) 9, One*Dream! ( B) 10, One*Dream! ( C) 9, One*World ( D) 10, One*World 36 下列语句组中,正确的是 ( A) char*s: s=“Olympic“; ( B) char s7; s=“Olympic“; (
15、 C) char*s; s=“Olympic“; ( D) char s7; s=“Olympic“; 37 以下能正确定义字符串的语句是 ( A) char str=“ x43“; ( B) char str=“ 0“: ( C) char str=“: ( D) char str= 064); 38 有以下程序 #include main() char s=“abcde“; s+=2; printf(“ d n“, s0); 执行后的结果是 ( A)输出字符 c的 ASCII码 ( B)输出字符 c ( C)输出字符 a的 ASCII码 ( D)程序出错 国家二级 C语言机试(函数和数组)
16、模拟试卷 2答案与解析 一 、选择题 1 【正确答案】 A 【试题解析】 C语言规定,函数必须先定义,后调用 (函数的返回值类型为 int或char时除外 )。在选项 A)中,调用的子函数在调用后面定义,所以不正确。在选项B)、 C)中,被调用函数在主函数之前定义,再在主函数中调用,所以是正确的;在选项 D)中,在主函数中先对子函数 float fun(int i,int j)进行了声明,然后进行调用。 【知识模块】 函数和数组 2 【正确答案】 C 【试题解析】 字符串连接函数 strcat(p, r)的功能是把字符数组 p和 r连接起来,此时字符数组 p的有效字符长度为 9,再执行 str
17、cpy(p+strlen(q), q)字符串复制函数,把字符数组 q复制到字符数组 p从 p3开始到 p5数组位置中,由于字符数组 q中的内容为字符串 “abc”复制时把字符串结束标志 null也复制到字符数组 p中,这时字符函数 strlen(p)返回字符数组 p的有效字符长度为 6。 【知识模块】 函数和数组 3 【正确答案】 C 【试题解析】 本题要注意的是转义字符的问题,在字符串 s2中,有两个转义字符,分 别是回车换行符和反斜线。所以其字符串长度等于 5。 【知识模块】 函数和数组 4 【正确答案】 A 【试题解析】 函数形、实参传递的时候,要求对应位置类型一致即可,如果实参为函数名
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 函数 数组 模拟 答案 解析 DOC
