[计算机类试卷]国家二级(C语言)笔试模拟试卷107及答案与解析.doc
《[计算机类试卷]国家二级(C语言)笔试模拟试卷107及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C语言)笔试模拟试卷107及答案与解析.doc(30页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C语言)笔试模拟试卷 107及答案与解析 1 算法一般都可以用 _控制结构组合而成。 ( A)循环、分支、递归 ( B)顺序、循环、嵌套 ( C)循环、递归、选择 ( D)顺序、选择、循环 2 数据的存储结构是指 _。 ( A)数据所占的存储空间量 ( B)数据的逻辑结构在计算机中的表示 ( C)数据在计算机中的顺序存储方式 ( D)存储在外存中的数据 3 设有下列二叉树: 对此二叉树中序遍历的结果为_。 ( A) ABCDEF ( B) DBEAFC ( C) ABDECF ( D) DEBFCA 4 在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送 _。 ( A)
2、调用语句 ( B)命令 ( C)口令 ( D)消息 5 检查软件产品是否符合需求定义的过程称为 _。 ( A)确认测试 ( B)集成测试 ( C)验证测试 ( D)验收测试 6 下列工具中为需求分析常用工具的是 _。 ( A) PAD ( B) PFD ( C) N-S ( D) DFD 7 下面不属于软件设计原则的是 _。 ( A)抽象 ( B)模块化 ( C)自底向上 ( D)信息隐蔽 8 索引属于 _。 ( A)模式 ( B)内模式 ( C)外模式 ( D)概念模式 9 在关系数据库中,用来表示实体之间联系的是 _。 ( A)树结构 ( B)网结构 ( C)线性表 ( D)二维表 10
3、将 E-R图转换到关系模式时,实体与联系都可以表示成 _。 ( A)属性 ( B)关系 ( C)键 ( D)域 11 下列叙述中正确的是 _ 。 ( A) C语言编译时不检查语法 ( B) C语言的子程序有过程和函数两种 ( C) C语言的函数可以嵌套定义 ( D) C语言中,根据函数能否被其他源文件调用,被区分为内部函数和外部函数 12 有以下程序: main() int a; char c=10; float f=100.0; double x; a=f/=c*=(x=6.5); printf(“%d%d%3.1f%3.1fn“, a, c, f, x); 程序运行后的输出结果是 _ 。
4、( A) 1 65 1 6.5 ( B) 1 65 1.5 6.5 ( C) 1 65 1.0 6.5 ( D) 2 65 1.5 6.5 13 以下变量 x、 y、 z均为 double类型且已正确赋值,不能正确表示数学式子x/(y*z)的 C语言表达式是 _ 。 ( A) x/y*z ( B) x*(1/(y*z) ( C) x/y*1/z ( D) x/y/z 14 若 a为 int类型,且其值为 3,则执行完表达式 a+=a-=a*a后, a的值是 _ 。 ( A) -3 ( B) 9 ( C) -12 ( D) 6 15 以下程序段中与语句 k=a b?(b c?1: 0): 0;功
5、能等 价的是 _。 ( A) if(a B) i 0; i-)sum( printf(“%d, %dn“, a,B) ; ( A) 6,1 ( B) 2,1 ( C) 6,0 ( D) 2,0 23 下列选项中非法的表达式是 _。 ( A) 0 =x 100 ( B) i=j=0 ( C) (char)(65+3) ( D) x+1=x+1 24 以下程序的输出结果是 _。 #include stdio.h main() printf(“%dn“, NULL); ( A)不确定的 (因变量无定义 ) ( B) 0 ( C) -1 ( D) 1 25 在下面的语句中,赋值语句错误的是 _。 (
6、A) a=(b=(c=2, d=3); ( B) i+; ( C) a=a/b=2; ( D) a=a a+1; 26 以下程序的输出结果是 _。 main() int k=4,m=1, p; p=func(k,m); printf(“%d, “, p); p=func(k, m); printf(“%dn“,p); func(int a,int B) static int m=0, i=2; i+=m+1; m=i+a+b; return(m); ( A) 8, 17 ( B) 8, 16 ( C) 8, 20 ( D) 8, 8 27 以下程序调用 findmax函数求数组中值最大的元素在
7、数组中的下标,请选择填空: #include stdio.h findmax(int*s,int t,int*k) int p; for(p=0, *k=p;p t; p+) if(sp s*k)_; main() int a10, i, k; for(i=0; i 10; i+)scanf(“%d“,while(-y); printf(“%dn“,y-); ( A) -1 ( B) 1 ( C) 8 ( D) 0 31 在 C语言中,要求运算数必须是整型的运算符是 _。 ( A) % ( B) / ( C) ( D) ! 32 C语言提供的合法的数据类型关键字是 _。 ( A) Double
8、 ( B) float ( C) integer ( D) Char 33 设有以下定义: int a33=1,2,3,4,5,6,7,8,9; int(*Ptr)3=a, *p=a0; 则下列能够正确表示数组元素 a12的表达式是 _。 ( A) *(*ptr+1)2) ( B) *(*(p+5) ( C) (*ptr+1)+2 ( D) *(*(a+1)+2) 34 若有以下说明: int a10=1,2,3,4,5,6,7,8,9,10, *p=a; 则值为 6的表达式是 _。 ( A) *p+6 ( B) *(p+6) ( C) *p+=5 ( D) p+5 35 下列程序的输出结果是
9、 _。 fun() static int x=5; if(x+5)printf(“%d“, x); else printf(“%d“, x+); main() fun(); fun(); ( A) 67 ( B) 69 ( C) 68 ( D) 78 36 下面程序的输出是 _。 main() int m=0xa,n=2; m+=n; printf(“%Xn“,m); ( A) C ( B) c ( C) 99 ( D) 2 37 以下程序的输出结果是 _。 #include string.h main() char*a=“abcdefghi“; int k; fun(a) ; puts(a)
10、 ; fun(char *s) int x, y; char c; for(x=0,y=strlen(s)-1; x y; x+, y-) c=sy; sy=sx;sx=c; ( A) ihgfedcba ( B) abcdefghi ( C) abcdedcba ( D) ihgfefghi 38 设有如下函数定义,则输出结果为 _。 char*fun(char*str) char*p=str; while(*p) if(*p d)continue; p+; return p; main() printf(“%sn“,fun(“welcome!“); ( A) welcome ( B) co
11、me! ( C) w ( D)程序进入死循环 39 以下程序的输出结果是 _。 main() union char i2; int k; r; r.i0=2; r.i1=0; printf(“%dn“,r.k); ( A) 2 ( B) 1 ( C) 0 ( D)不确 定 40 设 p1和 p2是指向同一个 int型一维数组的指针变量, k为 int型变量,则下列不能正确执行的语句是 _。 ( A) k=*p1+*p2; ( B) p2=k; ( C) p1=p2; ( D) k=*p1*(*p2); 41 以下程序的输出结果是 _。 #define f(x) x*x main() int a
12、=6,b=2,c; c=f(A) /f(B) ; printf(“%dn“,C) ; ( A) 9 ( B) 6 ( C) 36 ( D) 18 42 若有以下定义: char s20=“programming“,*ps=s; 则不能代表字符 o的表达式是 _。 ( A) ps+2 ( B) s2 ( C) ps2 ( D) ps+=2, *ps 43 以下程序的输出结果是 _。 main() int i; for(i=1; i 6; i+) if(i%2)(printf(“#“); continue; printf(“*“); printf(“n“); ( A) #*#*# ( B) # (
13、 C) * ( D) *#*#* 44 有如下程序 main() int n=9; while(n 6) n-; printf(“%d“, n); 该程序的输出结果是 _。 ( A) 987 ( B) 876 ( C) 8765 ( D) 9876 45 下列程 序是将一个十进制正整数转化为一个八进制数,在程序的空白处应填入的语句是 _。 #include stdio.h main() int i=9, a, b10=0; scanf(“%d“, 61 若要使指针 p指向一个 double类型的动态存储单元,请填空。 p=【 】 malloc(sizeof(double); 62 函数 myc
14、mp(char*s,char*t)的功能提比较字符串 s和 t的大小,当 s等于 t时返回0,当 s t返回正值,当 s t时返回负值。请填空。 mycmp(char*s,char*t) while(*s=*t) if(*s=0)return0; +s;+t; return( 【 】 ) 63 以下程序运行后的输出结果是 【 】 。 void fun() static int a=0; a+=2; printf(“%d“, A) ; main() int cc; for(cc=1; cc 4, cc+)fun(); printf(“n“); 64 下列程序的运行结果是【 】。 main() u
15、nion EXAMPLE struct int x; int y; in; int a; int b; e: e.a=1; e.b=2; e.in.x=e.a*e.b; e.in.y=e.a+e.b; printf(“%d,%dn“,e.in.x,e.in.y); 65 在对文件进行操作的过程中,若要求文件的位置回到文件的开头,应当调用的函数是【 】函数。 66 下面程序的功能:输出 100以内能被 3整除且个位数为 6的所有整数,请补充完整。 main() int i,j; for(i=0; 【 】 ; i+) j=i*10+6; if( 【 】 )continue; printf(“%d“
16、, j); 67 以下函数用于求出一个 24矩阵中的最大元素值。 max_value(arr) int arr4; int i,j,max; max=arrO0; for(i=0;i 2;i+) for(j=0; 【 】 ;j+) if( 【 】 max)max= 【 】; return(max); 国家二级( C语言)笔试模拟试卷 107答案与解析 1 【正确答案】 D 【试题解析】 算法的控制结构给出了算法的基本框架,不仅决定了算法中各操作的执行顺序,也直接反映了算法的设计是否符合结构化原则。一个算法一般都可以用顺序、选择、循环三种基本控制结构组合而成。 2 【正确答案】 B 【试题解析】
17、 数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构。 3 【正确答案】 B 【试题解析】 中序遍历是指首先遍历左子树 ,然后访问根结点,最后遍历右子树:并且在遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树的一种二叉树遍历算法。 4 【正确答案】 D 【试题解析】 面向对象的世界是通过对象与对象间彼此的相互合作来推动的,对象间的这种互合作需要一个机制协助进行,这样的机制称为消息。消息是一个实例与另一个实例之间传递的信息,它请求对象执行某一处理或回答某一要求的信息,它统一了数据流和控制流。 5 【正确答案】 A 【试题解析】 确认测试的任务是验证软件的功能和性能及其
18、他特性是否满足了需求规 格说明中的确定的各种需求,以及软件配置是否完全、正确。 6 【正确答案】 D 【试题解析】 常见的需求分析方法有:结构化分析方法和面向对象的分析方法。结构化分析的常用工具有:数据流图 (DFD)、数据字典 (DD)、判定树和判定表等。 7 【正确答案】 C 【试题解析】 在软件设计过程中,必须遵循软件工程的基本原则:这些原则包括抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可靠性。 8 【正确答案】 B 【试题解析】 内模式 (Internal Schema)又称物理模式 (Physical Schema),它给出了数据库物理存储结构与物理存取方法,如数据存储
19、的文件结构、索引、集簇及hash等存取方式与存取路径。 9 【正确答案】 D 【试题解析】 在关系数据库中,用二维表来表示实体之间联系。 10 【正确答案】 B 【试题解析】 关系是由若干个不同的元组所组成,因此关系可视为元组的集合,将 E-R图转换到关系模式时,实体与联系都可以表示成关系。 11 【正确答案】 D 【试题解析】 选项 A的错误在于编译过程中是检查语法的,若发现源程序有语法错误,则 系统会提示出错信息;选项 B的错误在于 C语言中,子程序的作用是由函数来完成的,无过程的概念;选项 C的错误在于函数不可以嵌套定义,但可以嵌套调用。 12 【正确答案】 B 【试题解析】 本题求解步
20、骤如下:先进行, “c*=(x=6.5)” 的运算,由于 x=6.5,表达式相当于 c=c*6.5=10*6.5=65。再进行 “f/=65“的运算,相当于f=f/65=100.0/65,由于 f为单精度实型变量,因此 f的值约为 1.538462。然后进行a=f的运算,由于 a为整型变量,因此 a=1。最后将各个变量的值 按照 printf中的格式要求输出到屏幕,注意变量 f,x按照 ”%3.1f格式输出,即只输出一位小数。 13 【正确答案】 A 【试题解析】 按照自左向右的运算逻辑,选项 A是先做 x/y,然后再乘以 x,显然与题意不符。 14 【正确答案】 C 【试题解析】 C语言中对
21、赋值运算的运算的运算顺序是自右向左。本题中,计算a*a之后, a的值依然为 3,表达式 a*a的值为 9; a-=9, a=3-9=-6: a+=-6, a=-6+-6=-12。 15 【正确答案】 A 【试题解析】 “a b?(b c?1: 0): 0”的求解顺序是:先判断 a b是否为真,如果为真,则执行 b c?1: 0,如果 b c为真,则 (b c?1: 0)的值为 1,从而整个表达式返回 1,否则整个表达式返回 0;如果 a仁 b,则表达式返回 0。因此功能等价的语句应为 if(a b)&(b c)k=1; else k=0;。 16 【正确答案】 C 【试题解析】 C语言中在做逻
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 笔试 模拟 107 答案 解析 DOC
