当前位置:文档之家› 专升本考试试题及参考答案

专升本考试试题及参考答案

20XX年专升本考试计算机科学与技术专业综合第一部分(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(){ int a; char c=10;float f=100.0; double x;a=f/=c*=(x=6.5);printf("%d %d %3.1f %3.1f",a,c,f,x);}程序运行后的输出结果是______。

A、1 65 1 6.5B、1 65 1.5 6.5C、1 65 1.0 6.5D、2 65 1.5 6.55. 以下选项中非法的表达式是______。

A、0<=x<100B、i=j==0C、(char)(65+3)D、x+1=x+16. 有以下程序main(){ int a=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a<b);printf("%d,%d",k,m);}程序运行后的输出结果是______。

A、0,0B、0,1C、1,0D、1,17. 有定义语句:int x,y;。

若要通过scanf("%d,%d",&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是______。

A、11 12↙B、11,12↙C、11, 12↙D、11,↙12↙8. 设有如下程序段int x=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. 有定义语句:int a=1,b=2,c=3,x;,则以下选项中各程序段执行后,x的值不为3的是__。

A、if (c<a) x=1;B、if (a<3) x=3;else if (b<a) x=2;else if (a<2) x=2;else x=3;else x=1;C、if (a<3) x=3;D、if (a<b) x=b;if (a<2) x=2;if (b<c) x=c;if (a<1) x=1;if (c<a) x=a;11.设有以下定义:int a=0; double b=1.25;char c=’A’; #define d 2则下面语句中错误的是A、a++;B、 b++C、 c++;D、 d++;12.在下列选项中,没有构成死循环的是。

A、int i=100;B、for(;;);while(1){i=i%100+1;if(i>100) break;}C、int K=10000;D、int s=36;do{k++;}while(k>10000); while(s) --s;13.设int x=1,y=1;表达式(!x||y--)的值是。

A、0B、1C、2D、-114.以下能正确定义一维数组的是。

A、int a[5]={0,1,2,3,4,5}B、char a[]={0,1,2,3,4,5}C、char a={‘A’,‘B’,‘C’}D、int a[5]=“0123”;15.若有说明语句:c=’\72’;则变量cA、包含1个字符B、包含2个字符C、包含3个字符D、说明不合法,c的值不确定16.下面叙述中不正确的是。

A、char a[10]=“china”;B、char a[10],*p=a;p=“china”;C、char *a;a=“china”;D、char a[10],*p;p=a=“china”;17.有以下程序main(){ int a=0,b=0,c=0,d=0;if(a=1) b=1;c=2;else d=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 */{int r; float s;scanf("%d",&r);s=∏*r*r; printf("s=%f\n",s);}出错的原因是______。

A、注释语句书写位置错误B、存放圆半径的变量r不应该定义为整型C、输出语句中格式描述符非法D、计算圆面积的赋值语句中使用了非法变量21.有以下程序段:int n,t=1,s=0;scanf("%d",&n);do{ s=s+t; t=t-2; }while (t!=n);为使此程序段不陷入死循环,从键盘输入的数据应该是______。

A、任意正奇数B、任意负偶数C、任意正偶数D、任意负奇数22.以下四个程序中,完全正确的是。

A、#include<stdio.h>B、#include<stdio.h>main(); main(){/*programming*/ {/*/programming/*/printf(“programming!\n”); printf(“programming!\n”);} }C、#include<stdio.h>D、include<stdio.h>main() main(){/*/*programming*/*/ {/*programming*/printf(“programming!\n”); printf(“programming!\n”);} }23.在以下给出的表达式中,与while (E)中的(E)不等价的表达式是。

A、(!E==0)B、(E>0||E<0)C、(E==0)D、 (E!=0)24.设fp为指向某二进制文件的指针,且已读到词文件末尾,则函数feof(fp)的返回值为A、EOFB、非0值C、0D、NULL25.现有如下程序段,此程序段编译有错误,则程序段的错误出在。

#include<stdio.h>main(){ int a=30,b=40,c=50,d;d=a>30?b:c;switch(d){ case a: printf(“%d”,a);case b: printf(“%d”,b);case c: printf(“%d”,c)default:printf(“#”);}A、default:printf(“#”);这个语句B、d=a>30?b:c;这个语句C、case a: printf(“%d”,a);case b: printf(“%d”,b);case c: printf(“%d”,c);这三个语句D、switch(d)这个语句二、读程题(5’*6=30分)1.有以下程序main(){int i=1,j=1,k=2;if((j++||k++)&&i++)printf(“%d,%d,%d”,i,j,k);}执行后的输出结果是:。

2.有以下程序main(){ int i,j,x=0;for(i=0;i<2;i++){x++;for(j=0;j<=3;j++){if (j%2) continue;x++;}x++;}printf(“x=%d\n”,x);}程序执行后的输出结果是。

3.有以下程序:#includestruct STU{char name[10];int num;};void f(char *name, int num){ struct STU s[2]={{"SunDan",20043},{"Penghua",20044}};num=s[0].num;strcpy(name,s[0].name);}main(){ struct STU s[2]={{"YangSan",20041},{"LiSiGao",20042}},*p;p=&s[1]; f(p->name,p->num);printf("%s %dn",p->name,p->num);}程序运行后的输出结果是______。

4.int fac(int n){static int f=1;f=f*n;return (f);}main(){ int i;for(i=1;i<=5;i++)printf(“%d!=%d\n”,i,fac(i));}该程序运行结果为。

5.有以下程序main(){ int i,s=0,t[]={1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2) s+=*(t+i);printf(“%d\n”,s);}程序执行后的输出结果是。

6.以下程序的输出结果是。

#define MAX(x,y) (x)<(y)? (x) : (y)main(){ int a=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个数中,求出最大的和最小的数据,请填空。

相关主题