[计算机类试卷]国家二级C语言机试(函数和数组)模拟试卷5及答案与解析.doc
《[计算机类试卷]国家二级C语言机试(函数和数组)模拟试卷5及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级C语言机试(函数和数组)模拟试卷5及答案与解析.doc(29页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C语言机试(函数和数组)模拟试卷 5及答案与解析 一、选择题 1 有以下程序 (strcpy为字符串复制函数, strcat为字符串连接函数 ) #include stdio h #include string-h main( ) chara10=abc, b10=012, c10=xyz; strcpy(a+1, b+2); puts(strcat(a, c+1); 程序运行后的输出结果是 ( A) bc2yz ( B) a2yz ( C) a12xyz ( D) 12yz 2 有定义语句: chars10=123456700;则 strlen(s)的值是 ( A) 8 ( B)
2、7 ( C) 9 ( D) 10 3 有以下程序,程序中库函数 islower(ch)用以判断 ch中的字 *是否为小写字 * #include stdio h #include ctype h yoidfun(char*p) inti=0; while(pi) iffpi= islower(pi-1)pi-1=pi-1=pi-1-a+A; i+: main( ) chars1100=abcdEFG!; fun(s1); printf( sn, s1); 程序运行后的输出结果是 ( A) abcdEFg! ( B) abcdEFG! ( C) abcdEFg! ( D) abcDEFG! 4
3、下列选项中,能够满足 只要字符串 s1等于字符串 s2,则执行 ST要求的是 ( A) if(s1=s2)ST; ( B) if(strcpy(s1, s2)=1)ST; ( C) if(strcmp(s2, s1)=0)ST; ( D) if(s1-s2=0)ST; 5 以下叙述中正确的是 ( A)函数既可以直接调用自己,也可以间接调用自己 ( B)任何情况下都不能用函数名作为实参 ( C)函数的递归调用不需要额外开销,所以效率很高 ( D)简单递归不需要明确的结束递归的条件 6 以下叙述中错误的是 ( A)用户定义的函数中可以没有 return语句 ( B)用户定义的函数中若没有 retu
4、m语句,则应当定义函数为 yoid类型 ( C)用户定义的函数中可以有多个 retum语句,以便可以调用一次返回多个函数值 ( D)函数的 retum语句中可以没有表达式 7 有以下程序 intadd(inta, intb) return(a+b); ) main( ) intk, (*f)( ), a=5, b=10; f=add; 则以下函数调用语句错误的是 ( A) k=add(a, b); ( B) k=(*f)Ca, b); ( C) k=*f(a, b); ( D) k=fla, b); 8 若有以下函数首部 intfun(doublex10, )则下面针对此函数的函数声明语句中正
5、确的是 ( A) intfun(double, int); ( B) intfun(double*x, intn); ( C) intfun(double*, int*); ( D) intfun(doublex, int*n); 9 有以下程序 intflintx); main( ) intn=1, m; m=f(f(f(n); printf( dn, m); intflintx) returnx*2; 程序运行后的输出结果是 ( A) 1 ( B) 2 ( C) 4 ( D) 8 10 有以下程序 #include stdio h doublef(doublex); main( ) dou
6、blea: 0; inti; for(i=0; i 30; i+=10)a+=f(double)i); printf( 5 ofn, a); doublef(doublex) returnx*x+1; 程序运行后的输出结果是 ( A) 401 ( B) 500 ( C) 503 ( D) 1404 11 有以下程序 #include stdio h intflintx); main( ) inta, b=0; for(a=0; a 3; a+) b=b+f(a); putchar(A+b); intflintx) returnx*x+1; ) ( A) BCD ( B) BDI ( C) AB
7、E ( D) BCF 12 有以下程序 #include stdio h intfun(intx) intp; if(x=0x=1)return(3); p=x-fun(x-2); retum(p); ) main( ) printf( dn, fun(9); 程序运行后的输出结果是 ( A) 5 ( B) 9 ( C) 4 ( D) 7 13 以下选项中函数形参不是指针的是 ( A) fun(int p) ( B) fun(inta10) ( C) fun(int*a) ( D) fun(intP) 14 有以下程序 (strcat函数用以连接两个字符串 ) #include stdio h
8、 #include string h main( ) chara20=abcDOEFGO, b= sn; strcat(a, b); printf( sn, a); 程序运行后的输出结果是 ( A) abcDE0FG0UK ( B) abcDUK ( C) UK ( D) EFGUK 15 若有以下程序 intflinta, intn) if(n 1) intt; t=f(a, n-1); returnt an-1? t: an-1; elsereturna0; main( ) inta=8, 2, 9, 1, 3, 6, 4, 7, 5; printf( dha, f(a, 9); 则程序的
9、输出结果是 ( A) 9 ( B) 1 ( C) 8 ( D) 53 7局部变量和全局变量 16 有以下程序 intd=1; yoidfun(intP) intd=5: d+=p+; printf( d, d); ) main( ) inta=3: fun(a); d+=a+: printf( dn, d); 程序的输出结果是 ( A) 96 ( B) 94 ( C) 84 ( D) 85 17 有以下程序 yoidfun2(chara, charb) printf( c c, a, b); ) chara=A, b=B; yoidfunl( ) a=C; b=D; ) main( ) fun
10、l( ); printf( c ca, b); fun2(E, F); 程序的运行结果是 ( A) ABEF ( B) CDEF ( C) abcD ( D) CDAB3 8变量的作用域和生存期 18 有以下程序 fun(intx, inty) staticintm=0, i=2; i+=m+1; m=i+x+y; returnm; main( ) intj=1, m=1, k; k=fun(j, m); printf( d, , k); k=fun(j, m); printf( dn, k); 执行后的输出结果是 ( A) 5, 5 ( B) 5, 11 ( C) 11, 11 ( D) 1
11、1, 5 19 有以下程序 #include stdio h intflintn); main( ) inta=3, s; s=f(a); s=s+f(a); printf( dn, s); ) intflintn) staticinta=1; n+=a+: retumn; 程序运行 后的输出结果是 ( A) 9 ( B) 8 ( C) 7 ( D) 10 20 有以下程序 intf(intm) staticintn=0; n+=m; returnn; main( ) intn=0: printf( d, , f(+n); printf( dn, fin+); ) 程序运行后的输出结果是 (
12、A) 1 1 ( B) 1,2 ( C) 2, 3 ( D) 3, 3 21 有以下程序 #include stdio h yoidmain( ) inta=2, 3, 5, 4), i; for(i=0; i 4; i+) switch(i 2) case0: switch(ai 2) case0: ai+; break; case1: ai-; break; case1: ai: O; for(i=0; i 4; i+) printf( d, ai); printf(n); 程序运行后的输出结果是 ( A) 2050 ( B) 3344 ( C) 3040 ( D) 304 22 下列选项
13、中,能正确定义数组的语句是 ( A) intnum; ( B) intN=2008; intnumN; ( C) intnum0 2008; ( D) #defineN2008intnumN; 23 有以下程序 #include stdio h main( ) ints12=1,2, 3, 4, 4, 3, 2, 1, 1, 1, 2, 3), c5: O, i; for(i=0; i 12; i+)csi+; for(i=1; i 5; i+)printf( d, ci); printf(n); ( A) 4332 ( B) 2344 ( C) 1234 ( D) 1123 24 以下叙述中
14、正确的是 ( A)一条语句只能定义一个数组 ( B)数组说明符的一对方括号中只能使用整型常量,而不能使用表达式 ( C)每个数组包含一组具有同一类型的变量,这些变量在内存中占有连续的存储单元 ( D)在引用数组元素时,下标表达式可以使用浮点数 25 有以下程序 #include stdio h main( ) inta=10, 20, 30, 40, *p=a, i; for(i=0; i =3; i+)ai=*p; p+; ) printf( dn, a2); 程序运行后的输出结果是 ( A) 20 ( B) 30 ( C) 10 ( D) 40 26 若有以下程序 #include cha
15、r*a=you, b=welcome#you#to#China!; main( )inti, j=0; char*p; for(i=0; bi!=0; i+) if(*a=bi) p= bi; for(j=0; aj!=0; j+) if(aj!=*P)break; p+; if(aj=0)break; printf( sn, p); 则程序的输出结果是 ( A) #you#to#China! ( B) me#you#toChina! ( C) #China! ( D) #to#China! 27 有以下程序 #include stdio h #defineN4 yoidfun(intaN,
16、intb) inti; for(i=0; i N; i+)bi=aii-aiN-1-i; yoidmain( ) intxNN=1, 2, 3, 4), 5,6, 7, 8, 9, 10, 11, 12, 13, 14, 15,16), yN, i; fun(x, y); for(i=0; i N; i+)printf( d, , yi); printffn); 程序运行后的输出结果是 ( A) -12, -3, 0, 0, ( B) -3, -1, 1, 3, ( C) 0, 1, 2, 3, ( D) -3,-3, -3, -3 28 有下列程序: main( ) intx32=0), i
17、; for(i=0; i 3; i+)scanf( d, xi); printf( 3d 3d 3dn,x00, x01, x10); ) 若运行时输入: 246 CR,则输出结果为 ( A) 200 ( B) 240 ( C) 204 ( D) 246 29 有下列程序: main( ) inti,t3=9, 8, 7, 6, 5, 4, 3, 2, 1; for(i=0; i 3; i+) printf( d2-ii); 程序执行后的输出结果是 ( A) 753 ( B) 369 ( C) 751 ( D) 357 30 以下错误的定义语句是 ( A) intx43=1, 2, 3, 1,
18、 2, 3, 1, 2, 3, 1, 2, 3; ( B) intx3=0), 1, 1, 2, 3; ( C) intx3=1, 2, 3, 4); ( D) intx4=1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3; 31 有以下程序 #include stdio h #defineN3 yoidfun(intaN, intb) inti, j; for(i=0; i N; i+) bi=ai0; for(j=j N; j+) if(bi aij)bi=aiD; main( ) intxNN=1,2, 3, 4, 5, 6, 7, 8, 9, yN, i; fun(
19、x, y); for(i=0; i N; i+)printf( d, , yi); printf(n); ( A) 1, 3, 5, ( B) 2, 4, 8, ( C) 3, 5, 7 ( D) 3,6, 9 32 下列叙述中正确的是 ( A)两个连续的单引号 ()是合法的字符常量 ( B)可以对字符串进行关系运算 ( C)两个连续的双引号 ()是合法的字符串常量 ( D)空字符串不占用内存,其内存空间大小是 0 33 若有以下程序段 charstr412=aa, bbb, ccccc, d), *strp4; inti; for(i=0; i 4; i+)strpi=stri;不能正确引用
20、字符串的选项是 ( A) strp ( B) str0 ( C) strp3 ( D) *strp 34 以下叙述中正确的是 ( A)函数调用 strlen(s);会返回字符串 s实际占用内存的大小 (以字节为单位 ) ( B)两个字符串可以用关系运算符进行大小比较 ( C)当拼接两个字符串时,结果字符串占用的内存空间是两个原串占用空间的和 ( D) C语言本身没有提供对字符串进行整体操作的运算符 35 设有定义 charstr=Hello;则语句 printf( d d, sizeof(str), strlen(str);的输出结果是 ( A) 66 ( B) 65 ( C) 55 ( D)
21、 56 36 有以下程序 main( ) chara510=one, two,three, four,fiye); inti, j; chart; for(i=0; i 4; i+) for0=i+1; j 5; j+) if(ai0 aD0) t=ai0; ai0=aj0; aj0=t; puts(a1); 程序运行后的输出结果是 ( A) fwo ( B) owo ( C) two ( D) fix 37 有以下程序 #include stdio h #include string-h yoidmain( ) charstr20= One*World, One*Dream!), *p=st
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 函数 数组 模拟 答案 解析 DOC
