[计算机类试卷]国家二级C语言机试(C语言程序设计)模拟试卷17及答案与解析.doc
《[计算机类试卷]国家二级C语言机试(C语言程序设计)模拟试卷17及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级C语言机试(C语言程序设计)模拟试卷17及答案与解析.doc(23页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C语言机试( C语言程序设计)模拟试卷 17及答案与解析 一、选择题 1 若有定义语句: int m 5, 4, 3, 2, 1, i 4;,则下面对 m数组元素的引用中错误的是 ( A) m-i ( B) m2*2 ( C) mm0 ( D) mmi 2 若有定义语句: double x5 1 0, 2 0, 3 0, 4 0, 5 O), *p x;则错误引用 x数组元素的是 ( A) *P ( B) x5 ( C) *(p 1) ( D) *x 3 若要定义一个具有 5个元素的整型数组 ,以下错误的定义语句是 ( A) int a5 0; ( B) int b 0, 0, 0,
2、 0, 0; ( C) int c2 3 ( D) int i 5, di; 4 以下能正确定义一维数组的选项是 ( A) int a5 0, 1, 2, 3, 4, 5; ( B) char a: 0, 1, 2, 3, 4, 5; ( C) char a A, B, C; ( D) int a5 “0123“; 5 有以下程序 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
3、, 5); for(i 2; i 8; i )printf(“ d“, ki); printf(“ n“); 程序的运行结果是 ( A) 876543 ( B) 321678 ( C) 1098765 ( D) 345678 6 下列定义数组的语句中,正确的是 ( A) intN 10; int xN; ( B) #define N 10 int xN; ( C) int x0, 10; ( D) int x; 7 有以下程序 #include void main() int a 2, 3, 5, 4, i; for(i 0; i 4; i ) switch(i 2) case 0: swit
4、ch(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 0 4 8 有以下程序 #inelude void fun(int a, int b) int 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
5、; 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, ( C) 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, ( D) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 9 有下列程序: main() int i,s 0,t=l, 2, 3, 4, 5, 6, 7, 8, 9); for(i 0; i 9; i 2)s
6、*(t i); printf(“ d n“, s); 程序执行后的输出、结果是 ( A) 20 ( B) 45 ( C) 36 ( D) 25 10 下列选项中,能正确定义数组的语句是 ( A) int num; ( B) int N 2008; int numN; ( C) int num0 2008; ( D) #define N 2008 int numN; 11 若要求定义具有 10个 int型元素的一维数组 a,则以下定义语句中错误的是 ( A) #define n 5 int a2*n; ( B) int a5 5; ( C) #define N 10 int aN; ( D) i
7、nt n 10, an; 12 下列程序中函数 f的功能是:当 flag为 1时,进行由小到大排序;当 flag为 0时,进行由大到小排序。 void f(int 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(i n 1;j ) for(j i 1;j n;j ) if(ai aj)t ai; ai aj; aj
8、t; main() int c10 1, 2, 3, 4, 5, 6, 7, 8, 9, 0), i; fun(c 4, 6); for(i 0; i 10; i )printf(“ d, “, ci); printf(“ n“); 程序的运行结果是 ( A) 1, 2, 3, 4, 9, 8, 7, 6, 5, 0, ( B) 0, 9, 8, 7, 6, 5, 1, 2, 3, 4, ( C) 0, 9, 8, 7, 6, 5, 4, 3, 2, 1, ( D) 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 15 有以下程序 #include main() int c6 10
9、, 20, 30, 40, 50, 60, *p, *s; P c; S c5; printf(“ d n“, s P); 程序运行后的输出结果是 ( A) 50 ( B) 6 ( C) 5 ( D) 60 16 以下叙述中正确的是 ( A)一条语句只能定义一个数组 ( B)数组说明符的一对方括号中只能使用整型常量,而不能使用表达式 ( C)每个数组包含一组具有同一类型的变量,这些变量在内存中占有连续的存储单元 ( D)在引用数组元素时,下标表达式可以使用浮点数 17 以下叙述中正确的是 ( A)语句 int a 0;是不合法的,遗漏了数组的大小 ( B)语句 char a2 “A“, “B“
10、;是合法的,定义了一个包含两个字符的数组 ( C)语句 int a8 0;是合法的 ( D)语句 char a3; a “AB“;是合法的,因为数组有三个字符空间的容量,可以保存两个字符 18 如果定义 float a10, x;则以下叙述中正确的是 ( A)表达式 a 1是非法的 ( B)语句 a x;是非法的 ( C)三个表达式 a1、 *(a 1)、 * a1表示的意思完全不同 ( D)表达式 *&a1是非法的,应该写成 *(&(a1) 19 有以下程序 #include main() int a 10, 20, 30, 40, *p a, i; for(i 0; i 3; i )ai
11、*p; p; printf(“ d n“, a2); 程序运行后的输出结果是 ( A) 20 ( B) 30 ( C) 10 ( D) 40 20 若有以下程序 main() int i,j 0; char a “How are you!“; for(i 0; ai; i ) if(ai! “) aj ai; aj 0; printf(“ s n“, a); 则程序的输出结果是 ( A) Howareyou ( B) Hay! ( C) Howareyou! ( D) How are you! 21 若有以下程序 #include main() int i, j 0; char a “How
12、are you!“, b10; for(i 0; ai; i ) if(ai=“)bj ai 1; bj 0; printf(“ s n“, b); 则程序的输出结果是 ( A) Howareyou ( B) Hay! ( C) Howareyou! ( D) ay 22 若有以下程序 #include char*a “you“, b “welcome#you#to#China!”; main()int i,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
13、= 0)break; printf(“ s n“, p); 则程序的输出结果是 ( A) #you#to#China! ( B) me#you#to#China! ( C) #China! ( D) #to#China! 23 以下能正确定义二维数组是 ( A) int a3; ( B) int a3 2*3; ( C) int a3 ; ( D) int a23 1), 2, 3, 4); 24 若有以下说明和语句 int c45, (*p)5; p c; 能够正确引用 c数组元素的是 ( A) p 1 ( B) *(p 3) ( C) *(p 1) 3 ( D) *(p0 2) 25 若有
14、定义语句: int k23, *pk3;,则以下语句中正确的是 ( A) pk k; ( B) pk0 k12; ( C) pk k0; ( D) pk1 k; 26 若有定义语句: int a36;,按在内存中的存放顺序, a数组的第 10个元素是 ( A) a04 ( B) a13 ( C) a03 ( D) a14 27 若有定义语句: int a23, *p3;,则以下语句中正确的是 ( A) p a; ( B) p0 a; ( C) p0 a12; ( D) p1 a; 28 若有定义: int a23;,以下选项中对 a数组元素正确引用的是 ( A) a211 ( B) a23 (
15、 C) a03 ( D) a1 211 29 以下数组定义中错误的是 ( A) int x3 0; ( B) int x23 1, 2, 3, 4, 5, 6; ( C) int x3 1, 2, 3, 4, 5, 6; ( D) int x23 1, 2, 3, 4, 5, 6; 30 有以下程序 #include #define N 4 void fun(int aN, int b) int i; for(i 0; i N; i )bi aii aiN 1 i; void main() int xNN 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1
16、4,15, 16, yN, i; fun(x, y); for(i 0; i N; i )printf(“ d, “, yi); printf(“ n“); 程序运行后的输出结果是 ( A) 12, 3, 0, 0, ( B) 3,一 1, 1, 3, ( C) 0, 1, 2, 3, ( D) 3, 3, 3, 3, 31 有以下程序 #include main() int b33 0, 1, 2, 0, 1, 2, 0, 1, 2, i, j, t,1; for(i 0; i i; j ) t biji; printf(“ d n, t); 程序运行后的输出结果是 ( A) 3 ( B)
17、1 ( C) 9 ( D) 4 32 以下定义数组的语句中错误的是 ( A) int num3 1, 2, 3, 4, 5, 6; ( B) int num 1, 2, 3, 4, 5, 6; ( C) int num4 1, 2, 3, 4, 5, 6; ( D) int num24 1, 2), 3, 4), 5, 6; 33 有 下列程序: main() int x32 0, i; for(i 0; i 3; i )scanf(“ d“, xi); printf(“ 3d 3d 3d n“,x00, x01, x10); 若运行时输入: 2 4 6,则输出结果为 ( A) 2 0 0 (
18、 B) 2 4 0 ( C) 2 0 4 ( D) 2 4 6 国家二级 C语言机试( C语言程序设计)模拟试卷 17答案与解析 一、选择题 1 【正确答案】 C 【试题解析】 本题考查数组的使用。 m是一个一维数组,长度为 5,因此下标范围是 0-4。选项 A中 i是先自减,然后使用 i,因此访问的是元素 m3;选项 B访问的是元素 m4;选项 C中内部的 m0值是 5,因此实际访问是的 m5,下标超出范围;选项 D中 mi的值是 1,访问元素 m1。 【知识模块】 C语言程序设计 2 【正确答案】 B 【试题解析】 本题考查数组和指向数组的指针。 x是一个一维 double类型的数组,长度
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 语言程序设计 模拟 17 答案 解析 DOC
