《二级C语言历年笔试真题.pdf》由会员分享,可在线阅读,更多相关《二级C语言历年笔试真题.pdf(30页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2010年 9 月全国计算机二级C 语言笔试试题:文 字 版(无答案)一、选择题(每小题2 分,共 70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。(1)下列叙述中正确的是A)线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的B)线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构C)线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构D)上述三种说法都不对(2)下列叙述中正确的是A)在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B)在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C
2、)在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D)上述三种说法都不对3)软件测试的目的是A)评估软件可靠性B)发现并改正程序中的错误C)改正程序中的错误D)发现程序中的错误(4)下面描述中,不属于软件危机表现的是A)软件过程不规范B)软件开发生产率低C)软件质量难以控制D)软件成本不断提高(5)软件生命周期是指A)软件产品从提出、实现、使用维护到停止使用退役的过程B)软件从需求分析、设计、实现到测试完成的过程C)软件的开发过程D)软件的运行维护过程(6)面向对象方法中,继承是指A)一组对象所具有的相似性质B)一个对象具有另一个对象的性质C)各对象之间的共同性质D)类之间共享属性和操
3、作的机制(7)层次型、网状型和关系型数据库划分原则是A)记录长度B)文件的大小C)联系的复杂程度D)数据之间的联系方式(8)一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员、与实体计算机之间的联系是A)一对一B)一对多C)多对多D)多对一(9)数据库设计中反映用户对数据要求的模式是A)内模式B)概念模式C)外模式D)设计模式(1 0)有三个关系R、S和T如下:则由关系R和S得到关系T的操作A)自然连接B)交C)投影D)并(1 1)以下关于结构化程序设计的叙述中正确的是A)一个结构化程序必须同时由顺序、分支、循环三种结构组成B)结构化程序使用g o t o语句会很便捷C
4、)在C语言中,程序的模块化是利用函数实现的D)由三种基本结构构成的程序只能解决小规模的问题(1 2)以下关于简单程序设计的步骤利顺序的说法中正确的是A)确定算法后,整理并写出文档,最后进行编码和上机调试B)首先确定数据结构,然后确定算法,再编码,并上机调试,最后整理文档C)先编码和上机调试,在编码过程中确定算法和数据结构,最后整理文档D)先写好文档,再根据文档进行编码和上机调试,最后确定算法和数据结构(1 3)以下叙述中错误的是A)C程序在运行过程中所有计算都以二进制方式进行B)C程序在运行过程中所有计算都以十进制方式进行C)所有C程序都需要编译链接无误后才能运行D)C程序中整型变量只能存放整
5、数,实型变量只能存放浮点数(1 4)有以下定义:i nt a;l o ng b;d o u b l e x,y;则以下选项中正确的表达式是A)a%(i nt)(x-y)B)a=x!=y;C)(a*y)%bD)y=x+y=x(1 5)以下选项中能表示合法常量的是A)整数:I,2 00B)实数:1.5 E 2.0C )字符斜杠:%D)字符串:007(1 6)表达式a+=a-=a=9的值是A)9B)_9C)18D)0(1 7)若变量已正确定义,在 if(W)printf(%dn,k);中,以下不可替代W的是A)ab+cB)ch=getchar()C)a=b+cD)a+(1 8)有以下程序#inclu
6、demain()int a=L b=0;if(!a)b+;else if(a=0)if(a)b+=2;else b+=3;printf(,%drf,b);程序运行后的输出结果是A)0B)1C)2D)3(1 9)若有定义语句int a,b;则下列选项中没有错误的是A)switch(x%2)tch(int)x/2.0case 0:a+;break;a+;break;case 1:b+;break;b+;break;default:a+;b+;a+;b+;)C)switch(int)x%2)witch(int)(x)%2)case 0:a+;break;0:a+;break;double x;B)s
7、wicase 0:case 1:default:D)scase 0.case 1:b+;break;case 1.0:b+;break;default:a+;b+;default:a+;b+;)(2 0)有以下程序#include main()int a=l b=2;while(a6)b+=a;a+=2;b%二10;)printf(%d,%d n”,a,b);)程序运行后的输出结果是A)5,11B)7,1C)7,11D)6,1(2 1)有以下程序#includemain()int y=10;while(y-);printf(Y=%dn,Y);程序执行后的输出结果是A)y=0B)y=-1C)y=
8、lD)while构成无限循环(2 2)有以下程序#includeVstdio.hmain()char s J=rstuv”;printf(%cn,*s+2);程序运行后的输出结果是A)tuvB)字符t 的 ASCII码值C)tD)出 昔(2 3)有以下程序#include Vstdio.h#incl ude main()char x E=STRING”;x oj=o;x i =、(r;x 2J=0;printf(%d%dn,sizeof(x),strlen(x);程序运行后的输出结果是A)6 1B)7 00 6 3D)7 1(2 4)有以下程序#incl ude Int f(int x);ma
9、in()int n=l,m;m=f(f(f(n);printf(%dn”,m);int f(int x)return x*2;程序运行后的输出结果是A)1B)2C)4D)8(2 5)以下程序段完全正确的是A)int*p;scanf(”d”,&p);B)int*p;scanf(d”,p);C)int k,*p=&k;scanf(%d,p);D)int k,*p:;*p=&k;scanf(d”,p);(2 6)有定义语句:int*p4;以下选项中与此语句等价的是A)int p4;B)int*p;C)int*(p 4j);D)int(*p)F4j;(2 7)下列定义数组的语句中,正确的是A)int
10、N=10;B)#defineN 10int xN;int xN;C)int x0.10;D)int x L ;(2 8)若要定义一个具有5 个元素的整型数组,以下错误的定义语句是A)inta5=0;B)intb=0,0,0,0,0);C)intc2+3;D)inti=5,di;(2 9)有以下程序#incl ude void f(int*p);main()int a 5=1,2,3,4,5),f(r);printf(%dn;*r);void f(int*p)p=p+3;printf(%d,”,*p);程序运行后的输出结果是A)1,4B)4,4C)3,1D)4,1(3 0)有以下程序(函数ftm
11、只对下标为偶数的元素进行操作)#includevoid fun(int*a;int n)int i、j k、t;for(i=0;in-1 ;l+=2)k=ifor(j=i;ja(k)k=j;t=a(i;a(i=a Ek;a(k=t;)main()int aa TlOj=1 2、3、4、5、6、7),i;fun(aa 7);for(i=0,i7;i+)printf(%”,aa L i);printf(n );)程序运行后的输出结果是A)725,4,3,6,1B)1,6,345,2,7C)7,6,5,4321D)1,7,3,562(3 1)下列选项中,能够满足“若字符串s i 等于字符串s2,则执
12、行ST”要求的是A)if(strcmp(s2,sl)=0)ST;B)if(sl=s2)ST;C)if(strcpy(s 1 ,s2)=1)ST;D)if(sl-s2=0)ST;(3 2)以下不能将s 所指字符串正确复制到t 所指存储空间的是A)while(*t=*s)t+;s+;B)for(i=O;ti=si;i+);C)do*t+=*s+;while(*s);D)for(i=O,j=O;ti+=sj+;);(3 3)有以下程序(strcat函数用以连接两个字符串)#include#incl ude main()char a20=ABCDOEFG0,b 口=IJK”;strcat(a,b);p
13、rintf(%sn,a);程序运行后的输出结果是A)ABCDEOFGO1JKB)ABCDIJKC)IJKD)EFGIJK(3 4)有以下程序,程序中库函数islower(c h)用以判断ch中的字母是否为小写字母#include#include void fun(char*p)int i=0;while(p i)if(pi=&islower(pFi-1 J)i+;)main()char si 100=ab cd EFG!”;fun(s i);printf(%sn,s i);)程序运行后的输出结果是A)ab cd EFG!B)Ab Cd EFg!C)aB cD EFG!D)ab cd EFg!(
14、3 5)有以下程序#includevoid fun(int x)if(x/2 1)fun(x/2);printf(d”,x);)main()fun(7);printf(n);程序运行后的输出结果是A)1 3 7B)7 3 10 7 3D)3 7(3 6)有以下程序#includeint fun()static int x=l;x+=l;return x;)main()int i;s=l;for(i=l;i=5;i+)s+=fun();printf(d n”,s);)程序运行后的输出结果是A)11B)21C)6D)120(3 7)有以下程序#include#includeMain()int*a.
15、*b,*c;a=b=c=(int*)malloc(sizeof(int);*a=l;*b=2,*c=3:a=b;printf(%d,%d,%d n”,*a,*b,*c);)程序运行后的输出结果是A)3,3,3 B)2,2,3 C)1,2,3 D)1,1,3(3 8)有以下程序#includemain()int s,t A=10;double B=6;s=sizeof(A);t=sizeof(B);printf(%d,%d n”,s,t);在 VC6平台上编译运行,程序运行后的输出结果是A)2,4 B)4,4 C)4,8 D)10,6(3 9)若有以下语句Typedef struct Sint
16、g;char h;T;以下叙述中正确的是A)可用S 定义结构体变量B)可用T 定义结构体变量C)S 是 struct类型的变量D)T 是 struct S 类型的变量(4 0)有以下程序#includeVstdio.hmain()short c=124;c=c;printf(d n 、C);)若要使程序的运行结果为248,解下划线处填入的是A)2 B)1248 C)&0248D)1二、填 空 题(每 空 2 分,共 30分)请将每空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。(1)一个栈的初始状态为空。首先将元素5,4,321依次入栈,然后退栈一次,再将元素A,B,C,
17、D依次入栈,之后将所有元素全部退栈,则所有元素退栈(包括中间退栈的元素)的顺序为【1】(2)在长度为n 的线性表中,寻找最大项至少需要比较【2】次。(3)一棵二叉树有10个度为1的结点,7 个度为2 的结点,则该二叉树共有【3】个结点。(4)仅由顺序、选择(分支)和重复(循环)结构构成的程序是【4】程序。(5)数据库设计的四个阶段是:需求分析,概念设计,逻辑设计【5】。(6)以下程序运行后的输出结果是 6 。#includemain()int a=200,b=010;printf(%d%dn”,a,b);(7)有以下程序#incl ude main()int x,Y;scanf(%2d%ld,
18、&x,&y);printf(d n ,x+y);)程序运行时输入:1234567程序的运行结果是【7】。(8)在 C 语言中,当表达式值为0时表示逻辑值“假”,当表达式值为8时表示逻辑值“真”。(9)有以下程序#includemain()int i,n=0,0,0,0,0;for(i=l;i=4;i+)ni=ni-l*3+l;printf(%d,n i);)程序运行后的输出结果是9】o(1 0)以下fun函数的功能是:找出具有N 个元素的一维数组中的最小值,并作为函数值返回。请填空。(设N 已定义)int fun(int x N )int i,k=0;for(i=0:iN;I+)if(x ir
19、eturn x k ;)(1 1)有以下程序#includeint*f(int*p,in t*q);main()int m=L n=2,*r=&m;r=f(r,&n);printf(%d n,*r);int*f(int*p,int*q)return(*p*q)?p:q;程序运行后的输出结果是H(1 2)以下fun函数的功能是在N行 M 列的整形二维数组中,选出一个最大值作为函数值返回,请填空。(设 M,N 已定义)int fun(int a N M)int i,j,row=0,col=0;for(i=0:i a row c o l)row=i;col=j;return(1 2):)(1 3)有
20、以下程序#incl ude main()int n2,i,j;for(i=0;i2;i+)ni=0;for(i=0;i 2;i+)for(j=0;j2;j+)n j=n FiJ+1;printf(drT,n l);程序运行后的输出结果是13(1 4)以下程序的功能是:借助指针变量找出数组元素中最大值所在的位置并输出该最大值。请在输出语句中填写代表最大值的输出项。#includemain()int a(10,*p,*s;for(p=a;p-a10;p+)scanf(%d,p);for(p=a,s=a;p-a*s)S=P;printf(,max=%dn,1 4);)(1 5)以下程序打开新文件f.
21、txt,并调用字符输出函数将a 数组中的字符写入其中,请填空。#includemain()15*fp;char a 5=I,2,3,5,i;fp=fopen(f.txt,w );for(i=0;i 0)s w i t c h(s)c a s e 1:p r i n t f(%d s+5);c a s e 2:p r i n t f(M%d1 r,s+4);b r e a k;c a s e 3:p r i n t f(d”,s+3);d e f a u l t:p r i n t f(M%dn,s+l);b r e a k;C)Li l i n u m=b=ar;c=A;scanf(”d”,&
22、s);D)当产生的随机数n 为 0 时结束程for(i=0;i=,0&si=,9,)n+;(24)设有定义:double x10,*p=x;,for(i=0;i士a&*c=z)*c=*c-(,a-,A,);C+;)main()char s81;gets(s);fun(s);puts(s):)当执行程序时从键盘上输入HelloBeijingv回车,则程序的输出结果是A)hello beijing B)Hello BeijingQHELLO BEIJING D)hELLO Beijing(30)以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。#include#define N 10v
23、vo oi id d f fu un n(i in nt t x x N NJ)while(i)在程序中下划线处应填入的是A)x+i B)&xi+1C)x+(i+)D)&x+i(31)有以下程序#includemain()chara3O,b3OJ;scanf(%sH,a);gets(b);printf(M%sn%sn,a,b);)程序运行时若输入:how are you?I am flnev回车则输出结果是A)how are you?B)howI am fine are you?I am fineC)how are you?I am fine D)row areyou?(32)设有如下函数定义
24、int fun(int k)if(kx);若执行调用语句:n=fun(3);,则函)pri ntf(%dn n,+(p-y);数 fun总共被调用的次数是)A)2B)3C)4 D)5程序运行后的输出结果是程序运行后的输出结果是(33)有以下程序A)OB)10C)30 D)64A)1,2 B)4,l C)3,4 D)2,3#include(35)有以下程序(38)有以下程序int fun(int xjnt y)#include#include if(x!=y)return(x+y);2);#define S(x)4*(x)*x+lstruct Selse return(x);main()int
25、a,b;data2=10,100,20,200);)int k=5,j=2;main()main()printf(M%dnM,S(k+j);struct S p=datal;int a=4,b=5,c=6;jprmtf(M%dn,+(p.a);printf(,%dn,fun(2*a,fun(b,c);程序运行后的输出结果是)A)197 B)143 C)33 D)28程序运行后的输出结果是程序运行后的输出结果是(36)设有定义:struct charmark12;int numkdouble num2;A)10B)ll C)20 D)21A)3B)6C)8D)12若变量均已正确赋初值,则以下语句
26、中错误的是(39)有以下程序(34)有以下程序A)tl=t2;B)t2.numl=t 1 .num 1;#include#includeC)t2.mark=t 1 .mark;main()int fun()D)t2.num2=tl,num2;unsigned char a=8,c;static int x=l;(37)有以下程序c=a3;x*=2;#includeprintf(M%dn,c);return x;struct ord)int x,y;dt2=1,2,34);程序运行后的输出结果是main()main()A)32B)16C)1 D)0 int i,s=l;(40)设 fp 已定义,
27、执行语句struct ord*p=dt;fp=fopen(file,w);Js,以卜针对文本文for(i=l;i15)printf(d”,x-5);main()if(x10)printf(u%dn,x);int x=10,y=20,t=0;if(x5)printf(dn”,x+5);if(x=y)t=x;x=y;y=t;)printf(%d%dn,x,y);若程序运行时从键盘输入12V回)车,则输出结 果 为【7】o(11)己知a 所指的数组中有N 个元(8)有以下程序(说明:字符。的素。函数fun的功能是,将下标k(k0)ASCII码值为48)开始的后续元素全部向前移动一个位置。请填空。#i
28、ncludevoid fun(int aN,int k)main()int i;charcl,c2;for(i=k;iscanf(d”,&cl);)c2=cl+9;(12)有以下程序,请 在【12】处填printf(n%c%cn H,c l,c2);写正确语句,使程序可正常编译运行。)#include若程序运行时从键盘输入48 回 1 2 ;车,则 输 出 结 果 为【8】。main()(9)有以下函数 double x,y,(*p)();void prt(char ch,int n)scanf(%lf%lf,&x,&y);int i;P=avg;for(i=l;i=n;i+)printf(%
29、fMi,(*p)(x,y);printf(i%6!=0?%c:%cn,ch);)double avg(double a,double b)执行调用语句prt(*,24);后,函数共输 出 了【9】行*号。retum(a+b)/2);(10)以下程序运行后的输出结果是(13)以下程序运行后的输出结果是 1 0 。1 3 。#includemain()int i,n5=0;for(i=l;i=0;i-)putchar(*(p+i);printf(n-);free(p);)(15)以下程序运行后的输出结果是 1 5 。#includemain()FILE*fp;int x6=1,2,345,6,i;
30、fp=fopen(,test.dat,wbH);fwrite(x,sizeof(int),3,fp);rewind(fp);fread(x,sizeof(int),3,fp);for(i=0;i6;i+)printf(d”,xi);printf(n);fclose(fp);)2010年3月二级c语言笔试真题及答案试题:一、选 择 题(1)(10)、(21)(40)每题2分,(11)(20)每题1分。共7 0分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡上,答在试卷上不得分。(1)下列叙述中正确的是A)对长度为n的有序链表进行查找,最坏情况下需要的比
31、较次数为nB)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(Iog2n)D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nIog2n)(2)算法的时间复杂度是指A)算法的执行时间B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所需要的基本运算次数(3)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于系统软件的是A)编辑软件B)操 作 系 统C)教务管理系统 D)浏览器(4)软件(程序)调试的任务是A)诊断和改正程序中的错误B)尽可能多地发现
32、程序中的错误C)发现并改正程序中的所有借误D)确定程序中错误的性质(5)数据流程图(DFD图)是A)软件概要设计的工具B)软件详细设计的工具C)结构化方法的需求分析工具D)面向对象方法的需求分析工具(6)软件生命周期可分为定义阶段,开发阶段和维护阶段。详细设计属于A)定义阶段 B)开发阶段C)维护阶段 D)上述三个阶段(7)数据库管理系统中负责数据模式定义的语言是A)数据定义语言 B)数据管理语言C)数 据 操 纵 语 言D)数据控制语言(8)在学生管理的关系数据库中,存取一个学生信息的数据单位是A)文件 B)数据库 C)字段D)记录(9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计
33、算机中的表示,它属于数据库设计的A)需求分析阶段B)逻辑设计阶段C)概念设计阶段D)物理设计阶段(10)有两个关系R和T如下:RTA B Ca 1 2b 2 2c 3 2A B CC32d 3 2则由关系R得到关系T的操作是选择 B)投影C)交 D)并(11)以下叙述正确的是A)C语言程序是由过程和函数组成的B)C语言函数可以嵌套调用,例如:fun(fun(x)C)C语言函数不可以单独编译D)C语言中除了 main函数,其他函数不可以作为单独文件形式存在(1 2)以下关于C 语言的叙述中正确的是A)C语言中的注释不可以夹在变量名或关键字的中间B)C语言卬的变量可以再使用之前的任何位置进行定义C
34、)在 C 语言算术的书写中,运算符两侧的运算数类型必须一致D)C语言的数值常量中夹带空格不影响常量值的正确表示(1 3)以下C 语言用户标示符中,不合法的是A)_1 B)AaBcC)a_b D)a-b(14)若有定义:double a=22;inti=0,k=18;则不符合C 语言规定的赋值语句是A)a=a+,i+B)i=(a+k)=(i+k)C)i=a%11D)i=!a(15)#include Void main()(char a,b,c,d;scanf(%c%c,&a,&b);c=getchar();d=getchar();printf(%c%c%c%cn,1,a,b,c,d);)当执行程
35、序时,按下列方式输入数据(从第一列开始,代表回车,注意:回车是一个字符)1234则输出结果是:A、1234 B、12 C、12 D、1233416、以下关于C 语言数据类型使用的叙述中错误的是:A、若要准确无误的表示自然数,应使用整数类型。B、若要保存带有多位小数的数据,应使用双精度类型。C、若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型。D、若只处理嗔“和“假 两种逻辑值,应使用逻辑类型。17、若 a 是数值类型,则逻辑表达式(a=1)|(a!=1)的值是:A、1 B、0 C、2D、不知道a 的值,不能确定18、以下选项中与 if(a=1)a=b;else a+;语句功能
36、不同的switch语句是:A、switch(a)B、switch(a=1)case 1 :a=b;break;case 0:a=b;break;default:a+;case 1 :a+;)C、switch(a)D、switch(a=1)default:a+;break;case 1 :a=b;break;case 1 :a=b;case 0:a+;)19、有如下嵌套的if语句if(ab)if(ac)k=a;else k=c;elseif(bc)k=b;else k=c;以下选项中与上述if 语句等价的语句是A、k=(ab)?a:b;k=(bc)?b:c;B、k=(ab)?(bc)?a:b):
37、(bc)?b:c);C、k=(ab)?(ac)?a:c):(bc)?b:c);D、k=(ab)?a:b;k=(ac)?a;c(20)有以下程序#include main()inti,j,m=1;for(i=1;i0;j-)if(i*j3)break;)printf(,m=%dn,m)程序运行后的输出结果是(A)m=6(B)m=2(C)m=4(D)m=5(21)有以下程序includes main()int a=1,b=2;for(;a8;a+)b+=a;a+=2;printf(d,%dn”ab);)程序运行后的输出结果是(A)9,18(B)8,11(07,11(D)10,14(22)有以下程序
38、,其中k 的初值为八进制数#include main()int k=011;printf(,%dnM,k+);)程序运行后的输出结果是(A)12(B)11(C)10(D)9(2 3)下列语句中,正确的是A)char*s;s=Olympic”;B)char s7;s=nOlympicn;C)char*s;s=”Olympic;D)char s7;s=OIympic;(24)以下关于return语句的叙述中正确的是A)一个自定义函数中必须有,条return语句B)一个自定义函数中可以根据不同情况设置多条return语句C)定义成viod类型的函数中可以有带返回值的return语句D)没有retur
39、n语句的自定义函数在执行结束时不能返回到调用处(2 5)下列选项中,能够正确定义数组的语句是DA)int num0.2008;B)int num;C)int N=2008;D)#define N 2008int num网 ;(2 6)有以下程序#includevoid fun(char*c,int d)*c=*c+1;d=d+1;printf(M%c,%c,M,*c,d);)main()char b=a,a=A;fun(&b,a);printf(c,%cn”,b,a);)程序运行后的输出结果是A)b,B,b,A B)b,B,B,AC)a,B,B,a D)a,B,a,B(27)若有定义int(*
40、pt)3;,则下列说法正确的是A)定义了基类型为int的三个指针变量B)定义了基类型为int的具有三个元素的指针数组ptoC)定义了一个名为*pt、具有三个元素的整型数组D)定义了一个名为p t的指针变量,它可以指向每行有三个整数元素的二维数组(28)设有定义 double a10,*s=a;,T能够代表数组元素a3的是A)(*s)3 B)*(s+3)C)*s3D)*s+3(2 9)有以下程序#includemain()int a5=1,2,3,4,5),b5=0,2,1,3,0,is=0for(i=0;i5;i+)s=s+abi;printf(,%dn,s);)程序运行后的输出结果是A)6
41、B)10 C)11 D)1530)有以下程序#includemain()int b 司3=0,120,1,2Q 1,2,ijE;for(i=0;i3;i+)For(j=i;jv=i;j+)t+=bibOi;Printf(n%dnn,t);)程序运行后的输出结果是A)1 B)3 C)4 D)9(31)若有以下定义和语句char sl10=匕bed!”,*s2=n123;printf(d%dn,strlen(s1),strlen(s2);则输出结果是A)5 5 B)10 5 C)10 7 D)5 8(32)有以下程序#include#define N 8void fun(int*x,int i)*
42、x=*(x+i)Jmain()int aN=1,2,3,4,5,6,7,8,i;fun(a,2);for(i=0;ivN/2);i+)printf(,%d,ai);printfCn);)程序运行后的输出结果是A)1 3 1 3 B)2 2 3 4 C)3 2 3 4D)1 234(33)有以下程序#includeint f(int t ,int n);main()int a4=1,2,3,4,s;s=fa,4;printf(dn”,s);)int f(int t,int n)if(n0)return tn-1+f(t,n-1);else return 0;)程序运行后的输出结果是A)4 B)1
43、0 C)14 D)6(3 4)有以下程序#includeint fun()static int x=1;x*=2;return x;)main()int l,s=1;for(i=1;iv=2;i+)s=fun();printf(M%dnM,s);)程序运行后的输出结果是A)0 B)1 C)4 D)8(35)以下程序#include#define SUB(a)(a)-(a)main()int a=2,b=3,c=5,d;d=SUB(a+b)*c;print(%dn”,d);)程序运行后的结果是A)0 B)-12 C)-20 D)10(36)没有定义struct complex int real,
44、unreal;datal=1,8,data2;则以下赋值语句中的错误的是A)data2=data1;B)data2=(2,6)C)data2.real1=data1.real;D)data2.real=data1.unreal;(37)有以下程序#include#include struct Aint a;char b10;double c;void f(struct A t);main()struct Aa=1001/ZhangDa;l 098.0;f(a);pringt(,%dJ%s,%6.1fn,a.a,a.b,a.c);)void f(struct A t)t.a=1002;strcp
45、y(t.b,nChangRongn);t.c=1202.0;程序运行后的输出结果是A)1001,ZhangDa,1098.0B)1002,ChangRong,1202.0C)1001,ChangRong,1098.0D)1002,ZhangDa,1202.0(38)有以下定义和语句struct workersint num;char name20;char c;srructint day;int month;intyear;s;);struct workers w,*pw;pw=&w能给w 中 year成员赋1980的语句是A)*pw.year=1980;B)w.year=1980;C)pw-
46、year=1980;D)w.s.year=1980;(39)有以下程序#include main()int a=2,b=2,c=2;pri ntf(M%dnM,a/b&c);)程序运行后的结果是A)0 B)1 0 2 D)3(4 0)以下程序#includemain()FILE*fp;char str10;fp=fopen(myfile.dat,w);fputs(abc,fp);fclose(fp);fp=fopen(myfile.dat,a+);rewind(fp,gd1,28);rewind(fp);fscanf(fp,gs,str);puts(str);fclose(fp);)程序运行后
47、的输出结果是A)abc B)28cC)abc28 D)因类型不一致而出错二、填空题(每空2 分,共 30分)请将每空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。(1)一个队列的初始状态为空,先将元素A,CB,C,D,E,F,5,4,3,2,1 依次入队,然后再依次退队,则元素退队的顺序为_。(2)设某循环列队的容量为5 0,如果头指针front=45(指向队头元素的前一位置),尾指针rear=10(指向队尾元素),则该循环队列中共有 个元素。(3)设二叉数如下:对该二叉树进行后序遍历的结果为EDBGHFCA(4)软件是、数据和文档的集合。(5)有一个学生选课的关系,其中
48、学生的关系模式为:学生(学号,姓名,班级,年龄),课程的关系模式为:课程(课号,课程名,学 时),其中两个关系 模 式 的 键 分 别 是 学 号 和,则关系模式选课可以定义为:选课(学号,课 号,成 绩)。(6)设 x 为 int型变量,请写出一个关系表达式:,用以判断x 同时为3 和 7 的倍数时;关系表达式的值为真。(7)有以下程序#include main()int a=1,b=2,c=3,d=0;if(a=1)if(b!=2)if(c!=3)elseelse if(c!=3)elseelseprintf(dn”,d);)程序运行后的输出结果是2 _(8)有以下程序d=1;d=2;d=
49、3;d=4;d=5;include main()int m,n;scanf(%d%d,&m,&n);while(m!=n)while(mn)m=m-n;while(mn)n=n-m;)printf(dn”,m);)程序运行后,当输入14 63l可车 时,输出结果是(9)有以下程序include main()int l,j,a3=1,2,3,4,5,6,7.8,9;for(i=1;i3;i+)for(j=l;j3;j+)printtf(,%d,aiO);printf(n);)程序运行后的输出结果是(10)有以下程序#include main()(int=1,2,3,415,6,*k3,i=0;w
50、hile(i3)ki=&a2*i;printf(%d,*ki);i+;)程序运行后的输出结果是(11)有以下程序#include main()(inta33=1,2,3,4,5,6,7,8,9);int b3=0,i;for(i=0;i3;i+)bi=ai2+a2i;for(i=0;i3;i+)printf(%d,bi);printf(n);)程序运行后的结果是(12)有以下程序#include#include void fun(char*str)(char temp;int n,i;n=strlen(str);temp=strn-1;for(i=n-1;i0;i-)stri=stri-1;s