您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 2007年专升本考试试题及参考答案
2007年专升本考试计算机科学与技术专业综合第一部分(C程序设计)一、选择题(2’*25=50分)1.以下叙述中正确的是______。A、C程序中注释部分可以出现在程序中任意合适的地方B、花括号{和}只能作为函数体的定界符C、构成C程序的基本单位是函数,所有函数名都可以由用户命名D、分号是C语句之间的分隔符,不是语句的一部分2.以下选项中可作为C语言合法整数的是______。A、10110BB、0386C、0XffaD、x2a23.以下不能定义为用户标识符的是______。A、ScanfB、VoidC、_3com_D、int4.有以下程序main(){inta;charc=10;floatf=100.0;doublex;a=f/=c*=(x=6.5);printf(%d%d%3.1f%3.1f,a,c,f,x);}程序运行后的输出结果是______。A、16516.5B、1651.56.5C、1651.06.5D、2651.56.55.以下选项中非法的表达式是______。A、0=x100B、i=j==0C、(char)(65+3)D、x+1=x+16.有以下程序main(){inta=1,b=2,m=0,n=0,k;k=(n=ba)||(m=ab);printf(%d,%d,k,m);}程序运行后的输出结果是______。A、0,0B、0,1C、1,0D、1,17.有定义语句:intx,y;。若要通过scanf(%d,%d,&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是______。A、1112↙B、11,12↙C、11,12↙D、11,↙12↙8.设有如下程序段intx=2007,y=2008;printf(%d,(x,y));则以下叙述中正确的是______。A、输出语句中格式说明符的个数少于输出项的个数,不能正确输出B、运行时产生出错信息C、输出值为2007D、输出值为20089.设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是______。A、x=x*100+0.5/100.0;B、x=(x*100+0.5)/100.0C、x=(int)(x*100+0.5)/100.0;D、x=(x/100+0.5)/100.0;10.有定义语句:inta=1,b=2,c=3,x;,则以下选项中各程序段执行后,x的值不为3的是__。A、if(ca)x=1;B、if(a3)x=3;elseif(ba)x=2;elseif(a2)x=2;elsex=3;elsex=1;C、if(a3)x=3;D、if(ab)x=b;if(a2)x=2;if(bc)x=c;if(a1)x=1;if(ca)x=a;11.设有以下定义:inta=0;doubleb=1.2#defined2则下面语句中错误的是、a++;B、b++C、c++;D、d++;12.在下列选项中,没有构成死循环的是。A、inti=100;B、for(;;);while(1){i=i%100+1;if(i100)break;}C、intK=10000;D、ints=36;do{k++;}while(k10000);while(s)--s;13.设intx=1,y=1;表达式(!x||y--)的值是。A、0B、1C、2D、-114.以下能正确定义一维数组的是。A、inta[5]={0,1,2,3,4,5}B、chara[]={0,1,2,3,4,5}C、chara={‘A’,‘B’,‘C’}D、inta[5]=“0123”;15.若有说明语句:c=’\72’;则变量cA、包含1个字符B、包含2个字符C、包含3个字符D、说明不合法,c的值不确定16.下面叙述中不正确的是。A、chara[10]=“china”;B、chara[10],*p=a;p=“china”;C、char*a;a=“china”;D、chara[10],*p;p=a=“china”;17.有以下程序main(){inta=0,b=0,c=0,d=0;if(a=1)b=1;c=2;elsed=3;printf(“%d,%d,%d,%d\n”,a,b,c,d);}程序的输出是。A、0,1,2,0B、0,0,0,3C、1,1,2,0D、编译有错18.若要求从键盘读入含有空格字符的字符串,应使用函数。A、getc()B、gets()C、getchar()D、scanf()19.以下不能正确计算代数式⅓sin2(½)值的C语言表达式是______。A、1/3*sin(1/2)*sin(1/2)B、sin(0.5)*sin(0.5)/3C、pow(sin(0.5),2)/3D、1/3.0*pow(sin(1.0/2),2)20.以下程序的功能是:给r输入数据后计算半径为r的圆面积s,程序在编译时出错。main()/*Beginning*/{intr;floats;scanf(%d,&r);s=∏*r*r;printf(s=%f\n,s);}出错的原因是______。A、注释语句书写位置错误B、存放圆半径的变量r不应该定义为整型C、输出语句中格式描述符非法D、计算圆面积的赋值语句中使用了非法变量21.有以下程序段:intn,t=1,s=0;scanf(%d,&n);do{s=s+t;t=t-2;}while(t!=n);为使此程序段不陷入死循环,从键盘输入的数据应该是______。A、任意正奇数B、任意负偶数C、任意正偶数D、任意负奇数22.以下四个程序中,完全正确的是。A、#includestdio.hB、#includestdio.hmain();main(){/*programming*/{/*/programming/*/printf(“programming!\n”);printf(“programming!\n”);}}C、#includestdio.hD、includestdio.hmain()main(){/*/*programming*/*/{/*programming*/printf(“programming!\n”);printf(“programming!\n”);}}23.在以下给出的表达式中,与while(E)中的(E)不等价的表达式是。A、(!E==0)B、(E0||E0)C、(E==0)D、(E!=0)24.设fp为指向某二进制文件的指针,且已读到词文件末尾,则函数feof(fp)的返回值为A、EOFB、非0值C、0D、NULL25.现有如下程序段,此程序段编译有错误,则程序段的错误出在。#includestdio.hmain(){inta=30,b=40,c=50,d;d=a30?b:c;switch(d){casea:printf(“%d”,a);caseb:printf(“%d”,b);casec:printf(“%d”,c)default:printf(“#”);}A、default:printf(“#”);这个语句B、d=a30?b:c;这个语句C、casea:printf(“%d”,a);caseb:printf(“%d”,b);casec:printf(“%d”,c);这三个语句D、switch(d)这个语句二、读程题(5’*6=30分)1.有以下程序main(){inti=1,j=1,k=2;if((j++||k++)&&i++)printf(“%d,%d,%d”,i,j,k);}执行后的输出结果是:。2.有以下程序main(){inti,j,x=0;for(i=0;i2;i++){x++;for(j=0;j=3;j++){if(j%2)continue;x++;}x++;}printf(“x=%d\n”,x);}程序执行后的输出结果是。3.有以下程序:#includestructSTU{charname[10];intnum;};voidf(char*name,intnum){structSTUs[2]={{SunDan,20043},{Penghua,20044}};num=s[0].num;strcpy(name,s[0].name);}main(){structSTUs[2]={{YangSan,20041},{LiSiGao,20042}},*p;p=&s[1];f(p-name,p-num);printf(%s%dn,p-name,p-num);}程序运行后的输出结果是______。4.intfac(intn){staticintf=1;f=f*n;return(f);}main(){inti;for(i=1;i=5;i++)printf(“%d!=%d\n”,i,fac(i));}该程序运行结果为。5.有以下程序main(){inti,s=0,t[]={1,2,3,4,5,6,7,8,9};for(i=0;i9;i+=2)s+=*(t+i);printf(“%d\n”,s);}程序执行后的输出结果是。6.以下程序的输出结果是。#defineMAX(x,y)(x)(y)?(x):(y)main(){inta=5,b=2,c=3,d=3,t;t=MAX(a+b,c+d)*10;printf(“%d\n”,t);}三、程序填空(2’*10=20分)1.下面的程序实现的是指针p所指向的地址的n个数中,求出最大的和最小的数据,请填空。fun(int*p,intn){int*q;intmax,min;max=min=*p;for(q=p;(1);q++)if((2))max=*q;elseif((3))min=*q;}2.以下程序的功能是:输出100以内(不含100)能被4整除且个位数为8的所有整数,请填空。main(){intI,j;for(i=0;(1);i++){j=i*10+8;if((2))continue;/*如果j是4的倍数则打印否则就进行下一次循环*/printf(“%3d”,j);}}3.以下程序的功能是输入任意整数给n后,输出n行由大写字母A开始构成的三角形字符阵列图形。例如,输入整数5(注意:n不得大于10),程序运行结果如下:ABCDEFGHIJKLMNO请填空完成该程序。#includestdio.hmain(){inti,j,n;charch=’A’;(1);/*读入n的值*/if(n11){for(i=1;i=n;i++){for(j=1;j=n-i+1;j++){printf(“%2c”,ch);(2);/*每个ch的值都不一样*/}(3);}}elseprintf(“nistoolarge!\n”);}4.以下函数sstrcat()的功能是实现字符串的连接,即将t所指的字符串复制到s所指字符串的尾部。例如:s所指字符串为abcd,t所指字符串为efgh,函数调用后s所指字符串为abcdefg。请填空完成该程序。#includestring.hvoidsstrcat(char*s,char*t){intn;n=(1);/*先确定s的长度*/while(*(s+n)=(2)){s++;t++;}/*将t的内容逐一赋给s中*/}第二部分(数据结构)一、填空题(1’*15=15分)1.两个字符串相等的充分必要条件。2.线形表中元素的数目称为线形表的。3.一棵树有n(n0)个结点的满二叉树共有叶子结点。4.一棵深度为4的二叉树最多有个结点。5.若一棵二叉树中有10个度为2的结点,则它有个叶子。6.具有8个顶点的无向图,边的总数最多为。7.折半查找有序表(2,4,8,12,20,25,35),若查找元素35,它将依次与表中元素比较大小。8.在双链表中,每个结点有两个指针域,一个指向前驱结点,另一个指向。9.广义表(((a,b)))的表头是,表尾是空。10.假定含有30个元素的线形表顺序存储,欲在它的第15个和第16个元素之间插入一个新元素,共需移动个元素。1
本文标题:2007年专升本考试试题及参考答案
链接地址:https://www.777doc.com/doc-3079336 .html