首页 笔试历年真题及参考答案word版本二级C(0809)含解析

笔试历年真题及参考答案word版本二级C(0809)含解析

举报
开通vip

笔试历年真题及参考答案word版本二级C(0809)含解析2008年9月全国计算机等级考试二级笔试试卷 C语言程序设计 (考试时间90分钟,满分100分)   注意:解答中所提到的教材是新视野教育培训使用的教材《全国计算机等级考试--二级教程》,此教材是由新视野教学组编写,中国地质大学出版社出版。详情可联系长沙新视野0731--4458250    1)栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次放入栈,然后再依次出栈,则元素的顺序是: A) 12345ABCDE   B) EDCBA54321  C) ABCDE12345   D) ...

笔试历年真题及参考答案word版本二级C(0809)含解析
2008年9月全国计算机等级考试二级笔试试卷 C语言程序设计 (考试时间90分钟,满分100分)   注意:解答中所提到的教材是新视野教育培训使用的教材《全国计算机等级考试--二级教程》,此教材是由新视野教学组编写,中国地质大学出版社出版。详情可联系长沙新视野0731--4458250    1)栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次放入栈,然后再依次出栈,则元素的顺序是: A) 12345ABCDE   B) EDCBA54321  C) ABCDE12345   D) 54321EDCBA 答案:B 详细解答:该知识点是考查了栈的先进后出,是我们公共基础的重点考点,在公共基础的10页纸上多次强调。栈和队列是每年必考的题目。 此题与对应教材第三分册81页14题。   2)下列叙述中正确的是 A)循环队列有对头和对尾两个指针,因此,循环队列是非线性结构 B)在循环队列中,只需要队列头指针就能够反映队列中元素的动态变化情况 C)在循环队列中,只需要队列头指针就能够反映队列中元素的动态变化情况 D)循环队列中的元素的个数是有队头和队尾指针共同决定的。 答案:D 详细解答:该知识点是考查了循环队列的知识点,队列是线性结构。处理队列的话我们是有两个指针的,一个是头指针,一个是尾指针。 此题与对应教材第三分册81页10题。(类似)   3) 在长度为n的有序线性表中进行二分查找,最坏的情况下需要比较的次数是 A)O(n)  B)O(n2)    C)O(log2n)      D)O(nlog2n) 答案:C 详细解答:该知识点是考查了二分查找。二分查找:对于长度为n的线性表,在最坏情况进行 log2n次。 此题与对应教材第三分册83页32题。   4)下列叙述中正确的是 A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的。 B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构。 C)顺序存储结构能存储有序表,链式存储结构不能存储有序表。 D)链式存储结构比顺序存储结构节省空间。 答案:A 详细解答:该知识点是考查了栈数据结构特点。 此题与对应教材第三分册81页18题。   5)数据流图中带有箭头的线段表示的是 A)控制流  B)事件驱动 C)模块调用  D)数据流 答案:D 详细解答:该知识点是考查了数据流图中的各个知识点。 此题与对应教材第三分册86页11题。   6)在软件开发中,需求分析阶段可以使用的工具是 A)N-S图  B)DFD图   C)PAD图 D)程序流程图 答案:B 此题与对应教材第三分册87页12题。   7)在面向对象 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 中,不属于“对象”基本特点的是 A) 一致性  B)分类性  C)多态性  D)标识一致性 答案:A 详细解答:该知识点是考查了对象的基本属性。是我们公共基础的重点考点, 此题与对应长沙新视野考前冲刺07年4月题目4题。  8)一间宿舍可以住多个学生,则实体宿舍和学生之间的联系是 A ) 一对一   B) 一对多  C)多对一 D)多对多 答案:B 此题与对应教材第三分册90页10题。(类似)   9)在数据管理技术发展的三个阶段中,数据共享最好的是 A)人工管理阶段   B)文件系统阶段  C)数据库系统阶段  D)三个阶段相同 答案:C 此题与对应教材第三分册90页7题。   10)有三个关系S、R和T如下:   由关系R和S通过运算得到关系T,则所使用的运算为 A)笛卡尔积   B)交 C)并 D)自然连接 答案:D 详细解答:该知识点是考查了关系的运算,是我们公共基础的常考的题目。考试中一般比较多的是考到了笛卡尔积、交。这个地方考了自然连接的运算。 此题与对应教材第三分册91页21题。   11)以下叙述中正确的是( ) A) C语言的基本组成单位是语句 B) C程序中的每一行只能写一条语句 C) 简单C语句必须以分号结束 D)C语句必须在一行内完成 答案:C 详细解答:本题考查了C语言的基本概念,基本语法,本题所有选项均可在第一分册找到原句 A)选项错误:函数是C语言的基本组成单位(第一分册P55) B)、D)选项错误: C语言书写格式自由,一行内可以写多个语句,一个语句可以多行书写(第一分册P3) C)选项正确:分号是语句结束的标志,任何一条语句都必须以分号结束. 把以一个分号结尾的一句话叫做一个C语言的语句(第一分册P2,P3)   12)计算机能直接执行的程序是( ) A)源程序   B)目标程序   C)汇编程序   D)可执行程序 答案:D 详细解答:根据我们上机运行的操作步骤,此题就可以选出答案 用C语言编写的程序,称之为源程序,后缀为.c,通过C语言编译,变为后缀为.obj的文件,然后链接成后缀为.exe的可执行文件,才能交给计算机执行,可见计算机能直接执行的是可执行程序。 汇编语言编写的程序,机器不能直接识别,要翻译成机器语言(可执行语言),才能执行(考生即使不知道该知识点,此题也应该选出答案) 此题与第三分册68页第20题,第23题考查知识点相近。   13)以下选项中不能作为C语言合法常量的是 (  ) A)  ‘cd’   B) 0.1e+6   C) “a”  D)‘\011’ 答案:A 详细解答:本题考查了字符常量,实型常量、字符串常量。字符常量是一对单引号括起来的一个字符,A选项单引号内有两个字符,注意D选项为八进制转移字符(第一分册P48)此题在第三分册第2页,第18题、第20题;第22页第3题,第5题均有体现   14)  以下选项中正确的定义语句是 ( ) A)double a;b;   B) double a=b=7;  C) double a=7,b=7;  D)double ,a,b; 答案:C 详细解答:本题考查变量的定义,以及初始化(定义变量的同时赋值,比如C选项) A)选项错误:在同一条语句中定义多个变量,变量之间用逗号, eg:double a,b; 如果作为两条语句定义,变量类型不能省略,eg:double a;double b; B)选项错误:变量b未定义,正确格式为 double a,b;a=b=7; D)选项错误:变量类型与变量之间不能有逗号,只能是空格 eg: double a,b; 此题对应第三分册第3页,第28题   15)  以下不能正确表示代数式 的C语言表达式是( ) A)  2*a*b/c/d   B)  a*b/c/d*2  C)  a/c/d*b*2   D) 2*a*b/c*d 答案:D 详细解答:本题考查了代数式在C语言中的书写格式 D)选项相当于代数式 此题并不难理解,但如果题目给出变量a,b,c,d的变量类型,就需要大家细心,可以参考第三分册第3页第34题   16)  C源程序中不能表示的数制是   ( ) A)  二进制 B)  八进制 C)  十进制 D)  十六进制 答案:A 详细解答:本题考查了整型常量的三种表示形式 整型常量分为十进制整型常量、八进制整型常量、十六进制整型常量,唯独没有二进制整形常量,所以源程序中不能表示二进制 此题对应第三分册第2页,第14题(注意D选项)   17)  若有表达式(w)?(--x):(++y),则其中与w等价的表达式是 (  ) A)w==1   B) w==0  C) w! =1  D) w! =0 答案:D 详细解答:本题考查了逻辑表达式的真假 题目中w为1,表达式w表示真,w为0,表达式w表示假,这类题目的做法,把1,0代入选项,找出与w真假条件相符的即可 比如:D选项, w为1时,1!=0成立,表达式值为真w为0时,0!=0部成立,表达式值为假 此题对应第三分册第10页,第2题,第8题,第12页,第22题   18) 执行以下程序段后,w的值为 ( )     int w=’A’,x=14,y=15;     w=((x||y)&&(w<’a’)); A)-1   B)NULL  C) 1  D)0 答案:C 详细解答:本题考查了逻辑表达式的判断 &&两边都为真,表达式才为真;||两边有一个为真就为真.(x||y)值为真,(w<’a’)成立,也为真,整个表达式((x||y)&&(w<’a’))值为1,把1赋值给w, w的值为1 此题没有考察学员容易犯错的--逻辑运算符的短路现象,可以参考第三分册11页,第14题 19) 若变量已正确定义为int型,要通过语句scanf(“%d,%d,%d”,&a,&b,&c);给a赋值1,给b赋值2,给c赋值3,以下输入形式中错误的是(ㄩ代表一个空格符)() A)ㄩㄩㄩ1,2,3<回车>          B)1ㄩ2ㄩ3<回车> C) 1,ㄩㄩㄩ2,ㄩㄩㄩ3<回车>     D)1,2,3<回车> 答案:B 详细解答:本题考查了scanf输入函数的格式说明知识 输入函数的输入控制(双引号之间的内容),除 %* 外,如果含有其它字符,则在输入数据时一定要一一对应输入这些字符,此题双引号之间含有逗号,那么输入数据之间必须输入逗号,B选项错误.此类型的题目还要注意逗号不是分隔符,如果双引号之间没有逗号,输入数据时不能用逗号 此题对应第三分册第8页22题   20) 有以下程序段 int  a,b,c; a=10;b=50;c=30; if(a>b) a=b,b=c; c=a; printf(“a=%d b=%d c=%d”,a,b,c); 程序的输出结果是  (  ) A)a=10 b=50 c=10   B)a=10 b=50 c=30  C) a=10 b=30 c=10 D) a=50 b=30 c=50 答案:A 详细解答:本题目学员应该注意逗号表达式语句,及if语句的结构 属于if(a>b)的只有一条语句a=b,b=c;(逗号表达式语句) 咱们强调如果含有多条语句,必须用大括号{ }括起,eg:if(a>b) { a=b,b=c; c=a;} 如果没有用 { }括起,那么只有一条语句,10>50不成立,所以a=b,b=c;不执行;执行后面的语句c=a;此时c的值变为10,所以输出为A选项   此题对应第三分册13页填空题第3题   21)   若有定义语句:int m[ ]={5,4,3,2,1},i=4;则下面对m数组元素的引用中错误的是( ) A)m[--i]   B)m[2*2]  C) m[m[0]]  D)m[m[i]] 答案:C 详细解答:本题考查了数组的下标不能越界,数组长度由{ }中的数据个数默认为5,那含有5个数组元素分别为m[0]、m[1]、m[2]、m[3]、m[4],C)选项为m[5],下标越界 A) 选项对应m[3]    B) 选项对应m[4]   D)选项对应m[1] 此题知识点在 第一分册72页第一行 明确表明   22)   下面的函数调用语句中func函数的是实参个数是  ( ) func( f2(v1,v2)), (v3,v4,v5),(v6,max(v7,v8))); A)3   B)4  C) 5  D)8 答案:A 详细解答:函数的参数列表,不同参数之间用逗号隔开, func函数的参数个数为3,分别为f2(v1,v2)),(v3,v4,v5),(v6,max(v7,v8))。大家可以简单的理解为以外层逗号间隔为准,其中每个参数又含有函数和多个参数,超出本题查考的内容   23)   若有定义语句:double x[5]={1.0, 2..0, 3.0, 4.0, 5.0},*p=x; 则错误引用x数组元素的是 ( ) A)*p   B)x[5]  C)*(p+1)  D)*x 答案:B 详细解答:本题考查数组的下标是否越界,以及指针对变量的引用 B)选项x[5],下标越界。一维数组名是地址常量(数组首地址),始终指向第一个数组元素,进行赋值p=x,指针变量p也指向第一个数组元素如下图:                               A)选项 *p表示p所指向单元的数据即x[0] 值为1.0 C)选项 *(p+1)表示p+1所指向单元的数据即x[1] 值为2.0 D)选项 *x表示x所指向单元的数据即x[0] 值为1.0 此题目在第三分册40页第九章的的题目中均有体现,比如第3题  24)若有定义语句: char  s[10]=”1234567\0\0”; ,则strlen(s)的值是 ( ) A)7   B)8  C) 9  D)10 答案:A 详细解答:本题目考查字符串结束标志’\0’。字符串从第一个字符开始,遇到第一个结束符’\0’为止,注意’\0’不占字符串长度,所以此题选A 此题对应第三分册60页填空题第29题   25)  以下叙述中错误的是 ( ) A)用户定义的函数中可以没有return 语句 B) 用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值 C) 用户定义的函数中若没有return语句,则应当定义函数为void类型 D)函数的return语句中可以没有表达式 答案:B 详细解答: 1、如果函数返回值类型为void,则可以不用return语句,所以A正确; 2、如果函数没有return语句,函数返回值类型必须是void 3、如果函数没有返回值,可以用return语句,此时表达式应该为空,D正确 4、函数可以根据需要返回一个确定的值,程序中可以出现多个return语句,但当程序执行到第一个return语句时,就会结束当前函数的运行,不会执行后面的语句,所以用return语句只能返回一个函数值,B错误 此题对应第一分册56页:return说明部分   26) 以下关于宏的叙述中正确的是 ( ) A)宏名必须用大写字母表示 B) 宏定义必须位于源程序中所有语句之前 C) 宏替换没有数据类型限制 D)宏调用比函数调用耗费时间 答案:C 详细解答:本题考查宏的基本定义 A) 选项错误:宏名一般习惯用大写,但可以用小写 B)选项错误:预处理命令可以出现在任何位置,但习惯上应尽可能地写在源程序的开头. C) 选项正确:宏定义时形参不能指定类型,即没有数据类型限制 D) 选项错误:宏替换在编译时由预处理程序完成,所以宏替换不占用运行时间;而函数调用是在程序运行中处理的,要临时分配存储单元,占用一系列时间 此题对应第三分册66页第8题,及第一分册99页和100页相关知识   27)   有以下程序 #iinclude main() {  int i,j; for(i=3; i>=1; i--) { for (j=1;j<=2;j++)  printf(“%d”,i+j);       printf(“\n”); } } 程序的运行结果是 (  ) A) 2 3 4    B) 4 3 2   C) 2 3    D) 4 5 3 4 5       5 4 3         3 4       3 4                           4 5       2 3 答案:D 详细解答:本题考查双层for循环嵌套 i值为3时,  j为1,输出4             j为2,输出5             j为3时,不满足条件 退出内层循环,执行后面的语句 换行 i值为 2时, j为1,输出3             j为2,输出4             j为3时,不满足条件 退出内层循环,执行后面的语句 换行 i值为 1时, j为1,输出2             j为2,输出3             j为3时,不满足条件 退出内层循环,执行后面的语句 换行 i值为 0时,不满足判断条件退出整个for循环 此题对应第一分册44页 例4.6   28)   有以下程序 #include main() {  int  x=1,y=2, z=3;      if(x>y)      if (yy不成立,那么属于if(x>y)的语句不执行,直接执行后面的语句printf(“%d\n”,x++);输出1(本题还有一个考查点就是++在前在后的问题,如果题目改为++x,输出2) 此题对应第一分册31页 例3.10   29)   有以下程序 #include main() {  int  i=5;     do      {   if (i%3= =1)              if (i%5= =2)             {printf(“*%d”,i); break; }          i++; }while(i!=0); printf(“\n”); } 程序的运行结果是 A)*7   B)*3*5  C) *5 D)*2*6 答案:A 详细解答:此题头考查了break的用法,遇到break退出整个循环 明确循环体中的语句,当i的值满足(i%3= =1) 并且满足(i%5= =2)时,输出*i. 并且break;退出整个循环,如果不满足就i++ 本题目题意就是:输出第一个满足(i%3= =1) 并且满足(i%5= =2)的i值 当i自加到7时,满足题目要求,输出*7,然后退出整个循环,执行后面的语句 联想此题还要注意continue的用法 可以参考第三分册18页15题,19页 19题   30)   有以下程序 #include int  fun(int a, int b) { if(b= =0) return  a;   else  return(fun(--a,--b)) ; } main() {  printf(“%d\n”,fun(4,2);  } 程序的运行结果是 A)1  B)2  C) 3  D)4 答案:B 详细解答:此题考查了函数的简单递归调用 主函数中调用fun(4,2),fun(4,2)中调用fun(3,1),fun(3,1)中调用fun(2,0) 可以 总结 初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf 为以下结构  main(  )          àfun(4,2)                    ->fun(3,1)                             ->fun(2,0)  输出2     返回2    返回2    返回2 此题对应参考第三分册66页第7题,第6题   (31) 有如下程序:    #include    #include int fun(int n) { int *p;   p=(int *)malloc(sizeof(int));   *p=n; return *p; } main() { int a; a=fun(10); printf("%d\n",a+fun(10)); } 程序的运行结果是    A)0    B)10   C)20   D)出错 答案:C 详细解答:该知识点考察的是函数的调用以及引用指针存储单元,也是我们平时上课强调了的知识点。在主函数调用fun函数,实参10单向值传递给形参n,在fun定义了指针变量p并用malloc函数给p分配了存储空间,然后下一条语句把n的值赋给p所指向的存储单元,最后是返回存储单元的值到主函数。所以调用fun(10)的返回值为10,a的值也为10, 选C 此题与对应教材类似第三分册25页6题。   (32)有如下程序:    #include    void fun(int a,int b)    {       int t;        t=a;a=b;b=t;    }    main()    {int c[10]={1,2,3,4,5,6,7,8,9,0},i;     for(i=0;k<10;i+=2) fun(c[i],c[i+1]);for(i=0;k<10;i++)printf("%d",c[i]);printf("\n");    }    程序的运行结果是    A)1,2,3,4,5,6,7,8,9,0,   B)2,1,4,3,6,5,8,7,0,9,     C)0,9,8,7,6,5,4,3,2,1,   D)0,1,2,3,4,5,6,7,8,9, 答案:A 详细解答:该知识点考察的是函数实际参数与形式参数的传递过程,是我们上课强调的重点内容。该题没有涉及到指针,实参单向的值传递给形参,形参反过来不能传递给实参。在主函数中把数组元素作为实参进行传递给形参a和b,在fun中交换了形参a和b的值,但形参a和b值的改变并不影响实参。所以数组C中的元素没有改变。选A 此题与对应教材类似第三分册47页9题.   (33)有如下程序: #include struct st {int x,y;} data[2]={1,10,2,20}; main() {struct st *p=data; printf("%d",p->y); printf("%d\n",(++p)->x); } 程序的运行结果是    A)10,1  B)20,1    C)10,2       D)20,2 答案:C 详细解答:该知识点考察的是结构体成员的引用,是我们上课强调的重点内容。在主函数中把一维数组名data赋给了指针变量p,则p指向数组元素data[0],且每一个数组元素含有两个成员x和y,所以表达式p->y 是引用data[0]的成员y,即等于10;(++p)->x是先让指针值自增,往下移动指向了data[1],然后引用data[1]的成员x, 即等于2。选C 此题与对应教材类似第三分册71页5题.   (34)有如下程序: #include void fun(int a[],int n) { int i,t; for(i=0;i  #define N  4 void fun(int a[][N],int b[]) { int i;   for(i=0;i int  fun(int (*s)[4],int n,int k) { int m,i; m=s[0][k];  for(i=0;im) m=s[i][k]; return m; } main() {int a[4][4]={{1,2,3,4},{11,12,13,14},{21,22,23,24},{31,32,33,34}}; printf("%d\n",fun[a,4,0]); }程序的运行结果是    A)4   B)34    C)31   D)32 答案:C 详细解答:该知识点考察的是二维数组名作为实参进行参数传递,是我们上课强调的重点内容。在主函数中调用了fun函数,实参为二维数组名a和两个整数4、0,这样对应定义fun函数首部也有三种形式(教材P86),这里采用了第一种形式,也就是行指针。这样在fun函数对s[i][j]进行操作实际上就是对主函数中的a[i][j]进行操作,再分析fun函数的作用便可知,是求二维数组第0列中的最大那个元素,所以选C 此题与对应教材类似第三分册50页3题.   (37)有如下程序: #include  main () {struct STU {char name[9]; char sex; double score[2];}; struct STU a={“Zhao”,’m’,85.0,90.0}, b={“Qian”,’f’,95.0,92.0}; b=a; printf(“%s,%c,%2.0f,%2.0f\n”,b.name,b.sex,b.score[0],b.score[1]); } 程序的运行结果是 A)Qian,f,95,92    B)Qian,m,85,90     C)Zhao,f,95,92           D)Zhao,m,85,90 答案:D 详细解答:该知识点考察的是结构体初始化赋值以及成员的引用问题,是我们上课强调的重点内容。在main中分别定义了两个结构体变量a 和b,虽然有语句b=a;但是并不影响结构体b中个成员的值,要改变成员的值必须要正确的引用成员,结构体成员的引用有三种方法(教材P115),因此选D 此题与对应教材类似第三分册72页1题.   (38)假定已建立以下链表结构,且指针p和q已指向如图所示的结点: 则以下选项中可将q所指的结点从链表中删除并释放该结点的语句组是 A)(*p).next=(*q).next;free(p);           B)p=q.>next; free(q); C)p=q;free(q);                          D)p->next =q->next; free(q); 答案:D 详细解答:该知识点考察的是用结构体初构成链表的相关问题,是我们上课强调的重点内容。要删除q所指向的结点,只需要把q所指向结点的next成员中的地址赋给p所指向的结点中的next成员,让p跳过q所指向的结点,直接指向下一个结点即可,因此选D 此题与对应教材类似第三分册71页7题.   (39)有如下程序: #include main() { char a=4; printf("%d\n",a=a<<1); } 程序的运行结果是    A)40   B)16   C)8   D)4 答案:C 详细解答:该知识点考察的是位运算,是我们上课强调的重点必考内容。左移n位相当与乘以2n,所以4*21=8 因此选C 此题与对应教材类似第三分册23页13题.   (40)有如下程序:    #include main() {   FILE *pf; char *s1="China",*s2="Beijing"; pf=fopen("abc.dat","wb+"); fwrite(s2,7,1,pf); rewind(pf); fwrite(s1,5,1,pf); fclose(pf); } 程序的运行结果是    A)China  B)Chinang   C)ChinaBeijing  D)BeijingChina 答案:B 详细解答:该知识点考察的是几个文件指针函数,是我们上课强调的重点内容。此题和我们的教材P133上的一道例题几乎是一样的,首先定义了2个指针字符串,fwrite(s2,7,1,pf)表示把从地址s2开始的7个字符写到pf所指的文件中,即把Beijing 写到了文件中;rewind(pf)表示把文件的位置移动到文件的开头;fwrite(s1,5,1,pf)表示把从地址s1开始的5个字符写到pf所指的文件中,即又把China写到文件中,于是覆盖了s2 所指字符串的前5个字符,所以最后文件中的内容是Chinang 选B 此题与对应教材类似第三分册78页14题. 二、填空题目:   1) 对下列二叉树进行中序遍历的结果是: 答案:DBXEAYFZC 详细解答:该知识点考察的是二叉树的遍历,是我们上课强调的重点必考内容。二叉树的中序遍历是先访问左子树,再访问根结点,最后访问右子树。(请回顾前序和后序遍历的原则)把握了这点原则的话很容易得出答案DBXEAYFZC 此题与对应教材类似第三分册82页28题.  2) 按照软件测试的一般步骤,集成测试应在       之后进行。 答案:单元 详细解答:该知识点考察的是软件测试的4个步骤,是我们的总结上强调内容。是软件测试的4个步骤包括单元测试、集成测试、确认测试和系统测试。所以答案为单元测试。 此题与对应教材类似第三分册87页23题.   3)软件工程三要素方法包括工具、方法和过程,其中       支持软件开发的各个环节的控制和管理 答案:过程 详细解答:该知识点考察的是软件工程三要素的具体内容,是我们总结上强调的考试内容。在我们的教材上P26有确切的解释。工具:完成软件工程项目的技术手段;工具:支持软件的开发、管理、文档生成;过程:支持软件开发的各个环节的控制和管理 此题与对应教材类似第三分册86页3题.   4)数据库设计包括概念设计、       和物理设计。 答案:逻辑设计 详细解答:该知识点考察的是数据库设计阶段的内容,是我们总结上强调的重点考试内容。数据库设计包括需求分析阶段、概念设计阶段、逻辑设计阶段和物理设计阶段。但题目强调的是设计包括的内容,所以答案为逻辑设计。 此题与对应教材类似第三分册92页25题.   5) 在二维表中,元组的       不能再分成更小的数据项。 答案:分量 详细解答:该知识点考察的是元组的有关内容,是我们总结上强调的重点内容。一个实体的所有属性值叫元组,而一个元组是由n个元组分量组成的,由此可知元组的分量是不能再分成更小的数据项。 此题与对应教材类似第三分册91页14题.   6) 设变量a和b已正确定义并赋初值。请写出与a-=a+b等价的赋值表达式_______。 答案:a=-b 详细解答:该知识点是考查了复合赋值表达式的运算,原表达式等价于:a=a-(a+b),即a=-b. 此题与对应教材第三分册9页8题。   7) 若整型变量a和b中的值分别为7和9, 要求按以下格式输出a和b的值: a=7 b=9 请完成输入语句:printf(“【7】”,a,b); 答案:a=%d\nb=%d\n 详细解答:该知识点是考查数据的输入输出格式,属于识记内容,在课堂上多次强调。 此题与对应教材第三分册9页5题。   8)以下程序的输出结果【8】。. #include main() {   int   i,j,sum;     for(i=3;i>=1;i--)     {   sum=0; for(j=1;j<=i;j++)   sum+=i*j; } printf(“%d\n”,sum); } 答案:1 详细解答:该知识点是考查了循环的嵌套,由于对于i的每一轮循环,sum都重新初始化为0,所以sum的值是i为1这一轮的值,即i为1,j为时,sum的值是0. 此题与对应教材第三分册20页6题。   9)以下程序的输出结果是【9】。 #include main() {    int j,a[]={1,3,5,7,9,11,13,15},*p=a+5;      for(j=3;j;j--)      {   switch(j)         { case 1:             case 2: printf("%d",*p++); break;          case 3: printf("%d",*(--p));         }      } } 答案: 9911 详细解答:指针p开始指向a[5],①第一轮循环,j值为3,匹配case 3,打印*(--p),即a[4]的值9,指针p指向a[4];②第二轮循环,j值为2,匹配case 2,打印*p++(先用后加),即值为9,p指向a[5],遇break跳出switch语句; ③第三轮循环,j值为1,匹配case 1,无执行语句,由于没有break,继续往下执行case 2,打印*p++,即值为11。当j值为0时,表达式j为假,结束for循环。最后输出9911. 此题与对应教材第三分册21页9题   10) 以下程序的输出结果是【10】。     #include #define N 5 int fun(int *s,int a,int n) {  int j;        *s=a;j=n;        while(a!=s[j]) j--;        return j; } main() {     int s[N+1]; int k;         for(k=1;k<=N;k++)  s[k]=k+1;            printf("%d\n",fun(s,4,N)); } 答案:3 详细解答:主函数里的for语句给数组s赋初值{0,2,3,4,5,6},调用函数fun(s,4,N)的功能是把s[0]重新赋值为4,然后从数组元素s[5]由后往前,与s[0]比较,直到s[0]与s[j]相等,即(a!=s[j]值为假,结束while循环,返回此时j的值。显然,当j为3时,s[3]的值为4,与s[0]相等,故答案为3. 此题与对应教材第三分册37页13题(返回数组下标)   11)以下程序的输出结果是【11】。 #include #define N 5 int fun(int x) {  static int t=0;        return(t+=x); } main() {       int s,i;         for(i=1;i<=5;i++)   s=fun(i);            printf("%d\n",s); } 答案:15 详细解答:此题考查了静态局部变量。当每一次调用函数fun时,静态变量t的值不会消失。主函数5次调用了函数fun,s的值为1+2+3+4+5=15. 此题与对应教材第三分册45页3题   12)以下程序按下面指定的数据给x数组的下三角置数,并按如下形式输出,请填空。                  4 3   7                  2   6   9               1   5   8   10 #include main() {     int x[4][4],n=0,i,j;         for(j=0;j<4;j++)  for(i=3;i>=j; 【12】) {n++;x[i][j]= 【13】;} for(i=0;i<4;i++)      {  for(j=0;j<=i;j++)  printf("%3d",x[i][j]);                printf("\n");            } } 答案:i--;n详细解答: 第二个for语句的作用是按指定的数据给x数组的下三角置数,置数的顺序为从左至右,从下往上。 此题与对应教材第三分册52页6题。   13)以下程序的功能是:通过函数func输入 字符并统计输入字符的个数。输入时用字符@作为输入标志。请填空。 #include long【14】;    main() {     long n;         n=func();   printf("n=%ld\n",n); } long func() {   long m;         for(m=0; getchar()!='@'; 【15】);            return m; } 答案:func();m++ 详细解答:函数的定义在调用之后,需先申明申明格式就是函数首部加上一个“;”。 for的循环体语句为空语句,因此字符个数的统计在for之后的圆括号的表达式3中完成,每输入一个不为@的字符,执行空语句之后,m加上1,直到输入字符@为止。
本文档为【笔试历年真题及参考答案word版本二级C(0809)含解析】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_872177
暂无简介~
格式:doc
大小:142KB
软件:Word
页数:0
分类:互联网
上传时间:2018-09-08
浏览量:0