[计算机类试卷]国家二级(C语言)笔试模拟试卷212及答案与解析.doc
《[计算机类试卷]国家二级(C语言)笔试模拟试卷212及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C语言)笔试模拟试卷212及答案与解析.doc(28页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C语言)笔试模拟试卷 212 及答案与解析 1 常采用的两种存储结构是 ( )。 ( A)顺序存储结构和链式存储结构 ( B)散列方法和索引方式 ( C)链表存储结构和数组 ( D)线性存储结构和非线性存储结构 2 结构化程序设计主要强调的是 ( )。 ( A)程序的规模 ( B)程序的效率 ( C)程序设计语言的先进性 ( D)程序的易读性 3 在面向对象方法中, ( )描述的是具有相似属性与操作的一组对象。 ( A)属性 ( B)事件 ( C)方法 ( D)类 4 有下列 二叉树,对此二又树前序遍历的结果为 ( )。 ( A) ACFXDBEYZ ( B) ABEFXYZCD
2、( C) ABCDEFXYZ ( D) ABDYECFXZ 5 C语言的基本单位是 ( )。 ( A)函数 ( B)过程 ( C)子程序 ( D)子函数 6 算法分析的目的是 ( )。 ( A)找出数据结构的合理性 ( B)找出算法中输入和输出之间的关系 ( C)分析算法的易懂性和可靠性 ( D)分析算法的效率以求改进 7 用链表表示线性表的优点是 ( )。 ( A)便于随机存取 ( B)花 费的存储空间较顺序存储少 ( C)便于插入和删除操作 ( D)数据元素的物理顺序与逻辑顺序相同 8 能正确表示 “当 x的取值在 1, 10和 100, 110范围内为真,否则为假 ”的表达式是 ( )。
3、 ( A) (x =1)&(x =10)&(x =100)&(X =110) ( B) (x =1)(x =10)(x =100)(x =110) ( C) (x =1)&(x =10)(x =100)&(x =110) ( D) (x =1)(x =10)&(x =100)(x =110) 9 以下有 4组用户标识符,其中合法的一组是 ( )。 ( A) For -sub Case ( B) 4d DO Size ( C) f2_G3 IF abc ( D) WORD void define 10 语句: “printf(“ d“, (a=2)&(b=-2); ”的输出结果是 ( )。 (
4、A)无输出 ( B)结果是不确定 ( C) -1 ( D) 1 11 以下叙述中不正确的是 ( )。 ( A)在不同的函数中可以使用相同名字的变量 ( B)函数中的形式参数是局部 变量 ( C)在一个函数内定义的变量只在本函数范围内有效 ( D)在一个函数内的复合语句中定义的变量在本函数范围内有效 12 以下能正确定义二维数组的是 ( )。 ( A) int a3; ( B) int a3=2*3); ( C) int a3=); ( D) int a23=(1), 2), 3, 4); 13 下列程序的输出结果是 ( )。 #include main() int a=3, b=2, c=1;
5、 if(a b) if(b 0)c=0; else c+; print(“ d n“, c); ( A) 2 ( B) 0 ( C) 1 ( D)不确定的值 14 要求通过 while循环不断读人字符,当读入字母 N时结束循环,若变量已正确定义,下列正确的程序段是 ( )。 ( A) while(ch=getchar()!=N)printf(“ c“, ch); ( B) while(ch=getchar()!=N)printf(“ c“, ch); ( C) while(ch=getchar()=N)printf(“ c“, ch); ( D) while(ch=getchar()=N)pr
6、intf(“ c“, ch); 15 下列说法不正确的是 ( )。 ( A)调用函数时,实参可以是表达式 ( B)调用函数时,实参与形参可以共用内存单元 ( C)调用函数时,将实参的值复制给形参,使实参变量和形参变量在数值上相等 ( D)调用函数时,实参与形参的类型必须一致 16 下列选项中不是字符常量的是 ( )。 ( A) v ( B) x2a ( C) a ( D) 0 17 若已包括头文件 且已有定义 char s118, s2=“ABCDE“)和 int i,现要将字符串 “ABCDE“赋给 s1,下列语句错误的是 ( )。 ( A) strcpy(s1, s2) ( B) strc
7、py(s1, “ABCDE“); ( C) s1=“ABCDE“; ( D) for(i=0; i 6; i+)s1i=s2i 18 在位运算中,操作数每左移两位,其结果相当于 ( )。 ( A)操作数乘以 2 ( B)操作数除以 2 ( C)操作数除以 4 ( D)操作数乘以 4 19 以下程序的输出结果是 ( )。 main() int a=7, b=8, *p, *q, *r; p=&a; q=&b; r=p; p=q; q=r; printf(“ d, d, d, d n“, *p, *q, a, b); ( A) 8, 7, 8, 7 ( B) 7, 8, 7, 8 ( C) 8,
8、7, 7, 8 ( D) 7, 8, 8, 7 20 有下列程序: fun(int x, int y) static int m=0, i=2; i+=+m; 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 ( C) 11, 11 ( D) 11, 5 21 以下程序的输出结果是 ( )。 main() int a33=1, 2, 3, 4), 5, 6, i
9、, j, s=0; for(i=1; i 3; i+) for(j=0; j =i; j+)s+=aij; printf(“ d n“, s); ( A) 18 ( B) 19 ( C) 20 ( D) 21 22 有下列程序: main() int k=5; while(-k) printf(“ d“, k=1); printf(” n”); 执行后的输出结果是 ( )。 ( A) 1 ( B) 2 ( C) 4 ( D)死循环 23 若有定义: “int a23; ”,则对 a数组的第 i行第 j列元素的正确引用为 ( )。 ( A) *(*(a+i)+j) ( B) (a+i)j ( C
10、) *(a+i+j) ( D) *(a+i)+j 24 下列能正确进行字符串赋值的是 ( )。 ( A) char s5=“ABCDE“; ( B) char s5=A, B, C, D, E); ( C) char*s; s=“ABCDE“; ( D) char*s; printf(“ s“, s); 25 现有以下结构体说明和变量定义,如图所示,指针 p、 q、 r分别指定一个链表中连续的 3个结点。 struct node har data; struct node*next; *p, *q, *r; 现要将 q和 r所指结点交换前后位置,同时要保持链表的结构,下列不能完成此操作的语句是
11、 ( )。 ( A) q- next=r- next; p- next=r; r- next=q; ( B) q- next=r; q- next=r- next; r- next=q; ( C) q- next=r- next; r- next=q; p- next=r; ( D) q- next=q; p- next=-r; q- next=r- next; 26 有下列程序: main() int i, j, x=0; for(i=0, i 2; i+) x+; for(j=0; j =3; j+) if(j 2)continue; x+; x+; printf(“x= d n“, x)
12、; 程序执行后的输出结果是 ( )。 ( A) x=4 ( B) x=8 ( C) x=6 ( D) x=12 27 有下列程序: int funl(double a)(return a*=a; int fun2(double x, double y) double a=0, b=0; a=fun 1(x); b=fun1(y); return(int)(a+b); main() double w; w=fun2(1 1, 2 0), ) 程序执行后变量 w中的值是 ( )。 ( A) 5 21 ( B) 5 ( C) 5 0 ( D) 0 0 28 有下列程序: main() int i,
13、s=0, t=1, 2, 3, 4, 5, 6, 7, 8, 9; for(i=0; i 9; i+=2)s+=*(t+i); printf(“ d n“, s); 程序执行后的输出结果是 ( )。 ( A) 45 ( B) 20 ( C) 25 ( D) 36 29 有下列程序: int fun(int n) if(n=1)return 1; else return(n+fun(n-1); main() int x; scanf(“ d“, &x); x=fun(x); printf(“ d n“, x); 执行程序时给变量 x输入 10,程序的输出结果是 ( )。 ( A) 55 ( B)
14、 54 ( C) 65 ( D) 45 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) 45 ( B) 50 ( C) 60 ( D) 55 31 有下列程序: main() char*p=“3697“, “2584“; int i, j;
15、long num=0; for(i=0; i 2; i+) j=0; while(pij!= 0) if(pij- 0) 2)num=10*num+pjj-0; j+=2: printf(“ d n“, num); 程序执行后的输出结果是 ( )。 ( A) 35 ( B) 37 ( C) 39 ( D) 3975 32 以下程序的输出结果是 ( )。 main() char st20=“hello 0 t “; printf(“ d d n“, strlen(st), sizeof(st); ( A) 9 9 ( B) 5 20 ( C) 13 20 ( D) 20 20 33 若有以下的定
16、义: “int t32; ”,能正确表示 t数组元素地址的表达式是 ( )。 ( A) &t32 ( B) t3 ( C) t1 ( D) t22 34 函数 fseek(pf, OL, SEEK_END)中的 SEEK_END代表的起始点是 ( )。 ( A)文件开始 ( B)文件末尾 ( C)文件当前位置 ( D)以上都不对 35 下述程序的输出结果是 ( )。 #include main() int i; for(i=1; i =10; i+) if(i*i =20)&(i*i =100) break; printf(“ d n“, i*i); ( A) 49 ( B) 36 ( C)
17、25 ( D) 64 36 若有定义 “int b8, *p=b; ”,则 p+6表示 ( )。 ( A)数组元素 b6的值 ( B)数组元素 b6的地址 ( C)数组元素 b7的地址 ( D)数组元素 b0的 0值加上 6 37 设 变量已正确定义,则以下能正确计算 f=n!的程序是 ( )。 ( A) f=0; for(i=1; i =n; i+)f*=i; ( B) f=1; for(i=1; i n; i+)f*=i; ( C) f=1; for(i=n; i 1; i+)f*=i; ( D) f=1; for(i-n; i =2; i-)f*=i; 38 下述程序执行的输出结果是 (
18、 )。 #include stdio h main() char a24; strcpy(a, “are“); strcpy(a1, “you“); a03=&; printf(“ s n“, a); ( A) are&you ( B) you ( C) are ( D) & 39 设 x=011050,则 x=x&01252的值是 ( )。 ( A) 0000001000101000 ( B) 1111110100011001 ( C) 0000001011100010 ( D) 1100000000101000 40 在 “文件包含 ”预处理语句的使用形式中,当 #include后面的文件
19、名用 (双引号 )括起时,寻找被包含文件的方式是 ( )。 ( A)直接按系统设定的标准方式搜索目录 ( B)先在源程序所在的目录搜索,如没找到,再按系统设定的标准方式搜索 ( C)仅仅搜索源程序所在目录 ( D)仅仅搜索当前目录 41 有以下程序,其中函数 f的功能是将多个字符串按字典顺序排序 ( )。 #include void f(char*p, int n) char*t; int i, j; for(i=0; i n-1; i+) for(j=i+1; j n; j+) if(strcmp(pi, pj 0)t=pi; pi=pj; pj=t; ) main() char *p5=“
20、abe“, “aabdfg“, “abbd“, “dcdbe“, “cd“; f(p, 5); printf(“ d n“, strlen(p1); 程序运行后的输出结果是 ( )。 ( A) 2 ( B) 3 ( C) 6 ( D) 4 42 下述程序用来输出两个字符串前 7个字符中对应相等的字符及其位置号,则程序空白上应该填写的是 ( )。 #include main() char s1=“chinese“, s2=“japanese“; int i; for(i=0; sli= 0&s2i!= 0; i+) if(s1i=s2i&i 7) _; ( A) putchar(s2i); pu
21、tchar(i) ( B) puts(sii, i) ( C) printf(“ c d n“, s2i, i) ( D) printf(“ c“, s1i); printf(“ d n“, i) 43 数据库系统的主要特点为数据集成性、数据 _和低冗余性、数据独立性和数据统一管理和控制。 44 最简单的交换排序方法是 _。 45 单元测试又称模块测试,一般采用 _测试。 46 已知 “int a=2, b=2, c=3; ”,则 执行完语句 “a*=18+(b+)-(+c); ”后, a的值是_。 47 设有以下宏定义: #define A 2 #define B A+3 则执行赋值语句 “
22、t=B*2; ”后, int型变量 t的值为 _。 48 在面向对象方法中,类的实例称为 _。 49 若想通过以下输入语句使 a中存放字符串 1234, b中存放字符 5,则输人数据的形式应该是 _。 char a10, b; scanf(“a= s b= c“, a, &b); 50 下面程序的输出结果是 _。 #define MAX 3 int aMAX; main() funl(); fun2(a); printf(“ n“); funl() int k, t=0; for(k=0: k MAX; k+, t+)ak=t+t; fun2(int b) int k; for(k=0; k
23、MAX; k+) printf(“ d“, *(b+k); 51 下列程序运行的结果是 _。 int k=0; void fun(int m) m+=k, k+=m; printf(“m= dk= d“, m, k+); main() int i=4; fun(i+); printf(“i= dk= d n“, i, k); 52 下列程序的运行结果是 _。 main() int a=2, b=7, c=5; switch(a 0) case 1: switch(b 0) case 1: printf(“); break; case 2: printf(“!“); break; case 0:
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 笔试 模拟 212 答案 解析 DOC
