选择题(1-10题每小题2分,11-50题每小题1分,共60分) 在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置 上,答在试卷上不得分 (1)下列数据结构中,按先进后出原则组织数据的是 A)线性链表 B)栈 C)循环链表 D)顺序表 (2)具有3个结点的二又树有 A)2种形态 B)4种形态 C)7种形态 D)5种形态 (3)设有下列二又树 对此二叉树前序遍历的结果为 )ZBTYCPXA B)ATBZXCYP C)ZBTACYXP D)ATBZXCPY (4)结构化程序设计主要强调的是 A)程序的规模 B)程序的效率 C)程序设计语言的先进性D)程序易读性 (5)程序的3种基本控制结构是 A)过程、子过程和分程序 B)顺序、选择和重复 C)递归堆栈和队列 D)调用、返回和转移 (6)下列叙述中,不属于测试的特征的是 )测试的挑剔性 B)完全测试的不可能性C)测试的可靠性 D)测试的经济性 (7)需求分析中开发人员要从用户那里了解 A)软件做什么 B)用户使用界面 C)输入的信息 D)软件的规模 (8)下列关系模型中能使经运算后得到的新关系中属性个数多于原来关系中属性个数的是 A)选择 B)连接 C)投影 D)井 (9)下列叙述中,正确的是 A)用E-R图能够表示实体集间一对一的联系、一对多的联系和多对多的联系 B)用E-R图只能表示实体集之间一对一的联系 C)用E-R图只能表示实体集之间一对多的联系 D)用E-R图表示的概念数据模型只能转换为关系数据模型 (10)“年龄在18-25之间”这种约束是属于数据库当中的 A)原子性措施 B)一致性措施 C)完整性措施 )安全性措施 A)在C语言程序中,min函数必须位于程序的最前面 B)C语言程序的每 C)C语言本身没有输入输出语句 D)在对一个C语言程序进行编译的过程,可发现注释中的拼写错误 (12)下列字符串是合法的标识符的是()。 A)H B)9_student C)lon D)LINE I (13)以下合法的十六进制数是( B)Oxide C)Oxlh D)ox7 14)若有以下定义,则能使值为3的表达式是 mnk=7.x=12 A)x%=(k%=5)B)x%=(kk%5) C)x%=k-k9. D)(x%=k)-(k%=5) (15)Xy,被定义为int型变量,若从键盘给x,y,z输入数据,正确的输入语句是 A) INPUT x, y、Z; B)scanf("%d% d%d". &. &y, & ) C)scanf("% d%d%d". x,y, z): D)read("% d% d%d",&a, &, &): (16)以下叙述正确的是()
A) continue语句的作用是结束整个循环的执行 B)只能在循环体内和 switch语句体内使用 break语句 C)在循环体内使用beak语句或 continue语句的作用相同 D)从多层循环嵌套中退出时,只能使用goo语句 (17)执行下面的程序后,a的值为()。 main() for(a=1,b=1;a<=10;a+ if(b%3==1) +∞b 5; A)7 D)10 (18)以下程序段的输出结果是 pint(%2dn·,a) A)12 B)34 C)1234 D)提示出错、无结果 (19)能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是 A)a>=10ora<=0B)a>=0la<=10 C)a>=10&a<=0 (20)设变量ab、cd和y都已正确定义并赋值。若有以下if语句 D)a>=10a<=0 if(a <b) if(c asd)y=0: else y=I: 该语句所表示的含义是 A)y= 0a<b且c=d B)yE 且c=d b且c≠d ∫oa<b且c=d C)y={a<b且c≠d a<b且c=d (21)请阅读以下程序: #include stdio. h> main() intx=1,y=0,a=0,b=0 switch(x) I case I switch(y) 1 case 0: a ++ b case 2 a++,b++: break: 1 printf("a=%d, b=%d\n", ab): 上面程序的输出结果是() A)a=2,b=1 C)a=1.b=0 D)a=2,b=2 (22)C语言中 while和do- while循环的主要区别是 hie的循环体至少无条件执行一次 B) while的循环控制条件比do- while的循环控制条件更严格 C)do- while允许从外部转到循环体内 D) do- while的循环体不能是复合语句 (23)已知ch是字符型变量,则下面正确的赋值语句是 A)ch='123’; B)ch =Ixfr C)CH="8; D)ch="1"; (24)以下叙述中不正确的是 A)在不同的函数中可以使用相同的名字的变量 B)函数中的形式参数是局部变量 C)在一个函数内定义的变量只在本函数范围内有效 D)在一个函数内的复合语句中定义的变量在本函数范围内有效 (25)阅读下面程序段,则执行后的结果为 #inelude "stdio. h main() k= fun(m, n):
printf("%d\n",k): fun( int m, int n) return(mm+m-nnn): B)8 (26)有以下程序: D)0 Did fun( int a, int b a=456b=567,c=678; I int x=10,y=20,z=30 fun(x,y, z) d,%d,%dn”,x,y,z) 输出结果是 )30,20,10 OcB )10,20,30 C)456,567,678 D)678,567456 (27)设有定义:mn=0,P=如n,**q=即,则下列选项中正确的赋值语句是 A)p=l B)*q=2 (28)主程序调用 findmax函数求出数组中最大元素在数组中的下标,()中需填写的内容是 #include stdio h> findmax( int*s, int t, int k) I int p: for(p=0,*k=p;p<t;p++)i(s[p]>s[*k])(; int a[ 10], i, k for(i =0: i<10; i++ )scanf("%d", &a[i) findmax(a,10,欲k) printf("%d%d\n", k, a[ k]): I (29)下面程序中有错误的行是()。(每行程序前面的数字表示符号) main() int a[3]=lll scanf("%d” 6or(i-1;i<3;i++)a0]=a[01+a[i]; tf(a0=%d B)6 C)7 (30)下列二维数组初始化语句中,不正确的是()。 C)intb[4]=113,91,|7,6,81,|21 B)intb[3][5]=10,0,91 (31)定义如下变量和数组 D)intb3][2]=(8,4),(2,1),(5,9)}; intx[3[3]=1,2,3,4,5,6,7,8,91 则下面语句的输出结果是()。 for(i=0;i<3;i++) prin(%d”,x[i[2-订]); A)159 B)147 C)357 D)369 (32)下述程序的输出结果是()。 #include stdio h> oid main() nta5]=12,4,6,8,10; P=a,q=如; pin("%d,”,*(p++)); pint("%d”,**q); A)4,4 B)2,2 C)4,5 D)2,4 (33)设有变量说明int(·pim]);其中的标识符p是() A)m个指向整型变量的指针 B)指向m个整型变量的函数指针 C)一个指向具有m个整型元素的一维数组的指针
D)具有m个指针元素的一维指数组,每个元素都只能指向整型变量 (34)若有以下说明和语句: char* language[]=I"FORTRAN", "BASIC", "PASCAL", "JAVA", "C"I: char..q: q=language +2 则语句pin(%on”,*q);() A)输出的是 language2]元素的地址 B)输出的是字符中 PASCAL C)输出的是 language[2元素的值,它是字符串 PASCAL的首地址 D)格式说明不正确,无法得到确定的输出 (35)下面程序的运行结果是()。 include stdio. h> main( static char al=” Language",b]=” programe"; char.pl,·p2;intk for(k=0;k<=7;k++ if(+(pl +k)==.(p2+k)) printf("%c".(pl +k)):I A)g B)ga nguage D)有语法错 (36)以下正确的程序段是 A)car str[ 20]: B)char·p; scanf("%s”,.str); scan("%s”,p); C)char str[ 20]: D)char str[ 203,+p=str scanf("%s",&str[2]) scanf("%s”,p[2]); (37)设已执行预编译命令 inelude<sing.h>,以下程序段的输出结果是()。 rinf("%d\n", strlen(s)); B)8 C)9 D)10 (38)下面程序段的运行结果是()。 char *p="%d, a =%d, b=%d\n int a=lll, b=10. c: c=a%b;p+=3; printf(p, c, a, b); A)1,a=11,b=10B)a=1,b=11l C)a=11l,b=10 D)以上结果都不对 (39)下面程序的运行结果是()。 #include stdio. h> oid welch( char *s) d=s: sal ij if(ali>=0&&a[i]<=9 s门=a[i];j++;l s[j=0°;1 dench( item): 4pint("Ⅶn%s",iem); B)34 C)a34 (40)以下程序的输出结果为() #include stdio. h> maino) i char alpha 6]=I"ABCDEFGH". "UKL", "MNOP". "QRST", " UVWX"I char 1: for(i=0 i <4 i++)printf("%s", p[i]); printf("in"): I A)ABCDEFGHUKL C)ABCDEFGHUKLMNOPQRST D)AEIM (41)若有说明 char sI[30]= The city”,s2[=" is beautiful”;,则在使用函数stat(sl,2)后结果是()
则以下不正确的引用是()。 A)(p++)->num B C)(·p).mum D)P=&stu. age. (48)设有一共用体变量定义如下: y char z: I 执行下列语句后,正确的共用体变量b的值是()。 beta.w=123456; =888 beta.x=3.1416; beta. z=: C)3.1416 D)X (49)如果需要打开一个已经存在的非空文件“Dcmo”进行修改下面正确的选项是 A)fp=fopen( Demo", " r"); B) fp a fopen("Demo°,"ab+”); D)fp fopen("Demo","r+"); (50)以下与函数fsek(印p,0L, SEEK SET)有相同作用的是 A)fcf( fp) B)ftell(fp) C)fete( fp) D 二、填空题(每空2分,共40分) 将每个空的正确答案写在答题卡-20】序号的横线上答在试卷上不得分。 排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、【和选择排序等 (2)当循环队列非空且队尾指针等于队头指针时说明循环队列已满,不能进行人队运算。这种情况称为【2】。 (3)【3】是一种信息隐蔽技术,目的在于将对象的使用者和对象的设计者分开。 (4)为了便于对照检查,测试用例应由输入数据和预期的【4】两部分组成 (5) 是从二维表列的方向进行的运算。 (6)以下条件表达式可计算:1+la的值,请填空。 a>=0?【61:【7 (7)定义inta=5,b;,则执行表达式b=++a*--a之后,变量b的值为【8 (8)函数 count(head)统计链表的结点个数head为表头指针,阅读程序,要求将整个i语句改成 while循环控 制结构,其形式为【9】 include stdio. h> tnt count(NODE·hcad) f( head!= NULL) do n head head-> next I while( head!= NULL) retum (9)语句pint(%fn,3.0*(1/5));的输出结果为o (10)下列程序的运行结果是 stdio. h for(k=7;k>4;k--) I switch(k) i case I casc 7:s ++ break case 2 case 6: break case 5: 5+=2: break:! F printf("s=%d", s):!