12009年福建省高职专升本科入学考试软件工程专业知识试卷计算机科学与技术(考试时间150分钟,满分300份,共三部分)第一部分C语言程序设计(共100分)一、单项选择题(本大题共30小题,每小题2份,共60份)在每小题列出的四个备选项中只有一个是符合题目要求的,请将正确答案代码填写在答题纸相应位置上。1.下列选项中,合法的C语言标识符是________。A.my_nameB.$234C.mynameD.23b2.已知:intx=5;执行完printf(%d,++x);后,输出的结果是:________。A.4B.5C.6D.不确定3.已知:intx=5,y=3;则逻辑表达式(x-y)&&(y-3)的值为________。A.7B.2C.1D.04.已知:inta=3,b=6,c=8;则执行完语句:a=ab?a:(bc?b:c);后,a的值是________。A.3B.6C.8D.175.有如下程序段执行后的结果是________。main(){inta=11,b=3;printf(%d,%d,a/b,a%b);}A.3,2B.11,2C.3,3D.3.3,26.有如下程序段:main(){charc;scanf(%c,&c);switch(c){case'A':printf(5);case'B':printf(4);case'C':printf(3);case'D':printf(2);default:printf(1);}}当运行时输入“B回车”,则输出结果是________。A.4B.43C.432D.43217.已知字符'a'的ASCII码值为97,'A'的ASCII码值为65,则如下程序段的运行结果是________。main(){charc='d';inti=c-32;2printf(%c,%d,i,i);}A.d,68B.D,68C.d,100D.D,1008.如下程序段的执行结果是________。main(){intx=1,y=100;while(y0){x*=2;y/=3;}printf(%d,%d,x,y);}A.8,0B.16,0C.32,0D.64,09.如下选项中正确的数组定义是________。A.#definem10;staticinta[m]={3,4,5,6};B.staticinta[2]={3,4,5,6}C.staticinta[10]={3,4,5,6};D.intm=4;staticinta[m]={3,4,5,6}10.执行程序段:charstr[12];scanf($s,str);如果输入如下字符串(其中□表示空格):what’s□your□name?则str的值是________。A.what’sB.what’s□C.what’s□yourD.what’s□your□name?11.如下程序段的运行结果是________。main(){inti=5,sum=100;do{sum=sum+(--i);}while(i=0);printf(%d,sum);}A.100B.109C.105D.11012.如下程序段的运行结果是________。main(){inti;for(i=1;i=10;i++){if(i%3==0)continue;printf(%d,,i);}}A.1,2,4,5,7,9,10,B.1,2,3,4,5,6,7,8,9,10C.3,6,9,D.,1,2,4,5,6,7,8,9,10,13.若有说明:inta[5][6];则数组a的正确引用是________。A.a[5][4]B.a[3,4]C.a(3)(4)D.a[3][4]14.在C语言中,凡不加类型说明的函数,自动________。A.按无类型void处理B.按整型int处理C.按字符类型char处理D.按浮点型float处理15.如下程序段的输出结果是________。3voidkk(inta,intb){a=a*b;printf(%d,%d,,a,b);}main(){inta=5,b=6;kk(a,++b);printf(%d,%d,a,b);}A.30,6,30,6B.35,6,35,6C.30,7,5,7D.35,7,5,716.如下程序段的输出结果是________。main(){staticinta[6]={3,6,9,12,15,18};int*c=&a[2];printf(%d,%d,*(c+3),*c+3);}A.18,12B.15,18C.18,15D.15,1217.如下程序段中语法正确的是________。A.int*p;p=1000;B.inta,*p;p=&a;C.inta,*p;*p=&a;D.inta=1000,*p;p=a;18.如下程序段的输出结果是:________。intmm(int*a,intb){*a=*a+5;b*=3;return*a+b;}main(){inta=3,b=6;intc=mm(&a,b);printf(%d,%d,%d,a,b,c);}A.3,6,9B.8,6,26C.8,18,26D.3,18,1119.如下程序段的输出结果是________。main(){staticinta[2][3]={3,6,9,12,15,18};int*c=a[1];printf(%d,%d,*(c+1),*c+1);}A.15,13B.6,7C.9,10D.12,1320.已有函数定义如下________。voidaa(inta,charb,floatc){c=(float)(a+b);}则下列程序段能够进行函数正确调用的是A.main(){aa(5.0,'a',5);}B.main(){int*a;scanf(%d,&a);aa(a,'a',9);}C.main(){int*a=1;charb='b';floatc=1.0;aa(a,b,c);}D.main(){int*a;scanf(%d,a);aa(a,'a',3.0);}21.有如下定义:structstudent{charname[10];4floatscore;intage;}stu1,*p;则在C语言程序中给变量stu1赋值正确的是________。A.str1={ddd,60.0,55};B.strcpy(stu1,name,ddd);stu1.score=66.0;stu1.age=15;C.p=&stu1;p-name=ddd;p-score=66.0;p-age=15;D.p=&stu1;p.name=ddd;p.score=66.0;p.age=15;22.下面程序段中语法正确的是________。A.intmm(intx,inty){intx,y;returnx+y;}B.charstr[10];scanf(%s,&str);C.inti,a[10];for(i=0;i=10;i++)scanf(%d,&a[i]);D.inti,a[10],*p;for(i=0,p=a;pa+10;p++)scanf(%d,p);23.已知inta;并且a已经被正确赋值,则下列逻辑表达式中与(!a)等价的是________。A.(a==0)B.(a0)C.!(a==1)D.(a==1)24.若变量已经正确定义,要求程序段完成1到100的累加,下列选项中不能完成此功能的程序段是________。A.for(i=1,sum=0;i=100;i++)sum=sum+i;B.i=1;sum=0;while(i++=100)sum=sum+i;C.for(i=1;i=100;i++){sum=0;sum=sum+i;}D.i=1;sum=0;do{sum=sum+i;}while(++i=100);25.已知intk;且k已经正确赋值,则下列表达式中存在语法错误的是________。A.2k6B.(k6)++C.k6&&k2D.k==126.如下程序段的输出结果是________。main(){inti,j,a=0;for(i=1;i=5;i++)for(j=i;j=5;j++)a=a+j;printf(%d,a);}A.10B.25C.55D.7527.语句:printf(%-8.4d,-36);执行时的输出结果是(□表示空格)________。A.-036口口口口B.-036口口口口口C.口口口口-036D.口口口口口-03628.如下程序段的输出结果是________。main(){inta[10]={34,22,12,66,8,33,22,338,56,99};inti,x=0;for(i=1;i10;i++)if(a[i]a[x])x=i;printf(%d,a[x]);}5A.8B.34C.99D.33829.如下程序段的输出结果是________。main(){charstr[]={'s','t','u','d','e','n','t','\0'};char*q=str;while(*q!='\0')q++;printf(%d,q-str);}A.5B.6C.7D.830.如下程序段的输出结果是________。#definen5structstudent{intno;floatscore;}main(){structstudentstr[n]={{1,12.5},{2,55.5},{3,90.5},{4,78.0},{5,34.0}};inti;floata=0,b;for(int=0in;i++)a+=stu[i].score;b=a/n;printf(%08.4f,b);}A.0054.1000B.054.1000C.0054.1D.54.10000二、程序阅读题(本大题共4小题,每小题5份,共20分)31./*程序段中□表示空格*/#includestdio.hvoidmain(){charstr1[]=good□morning!,str2[20];char*p,*q;for(p=str1;*p!='\0';p++);for(q=str2;--p=str1;q++)*q=*p;*q='\0';printf(%s,str2);}32.#includestdio.h#definen10voidde(inta[],intx,int*m){inti=x+1;for(;i=*m;i++)a[i-1]=a[i];*m=*m-1;}6voidmain(){staticinta[n]={32,12,12,56,78,12,78,5,32,12};inti,j,x,m=n-1;for(i=0;i=m;i++){x=a[i];for(j=i+1;j=m;j++)if(a[j]==x)de(a,j,&m);}for(i=0;i=m;i++)printf(%d,,a[i]);}33.#includestdio.hvoidch(int*a,int*b){intc;c=*a;*a=*b;*b=c;}voidmain(){staticinta[10]={32,5,18,56,98,52,78,15,132,112};intx=0,y=1,i;if(a[x]a[y])ch(&x,&y);for(i=2;i10;i++)if(a[i]a[x])x=i;elseif(a[i]a[y])y=i;ch(&a[x],&a[y]);for(i=0;i10;i++)printf(%d,,a[i]);}34.#includestdio.hvoidmain(){charstr[]=0342201411;staticinta[10];inti;char*p;for(i=0;i10;i++)a[i]=0;for(p=str;*p!='\0';p++){i=*p-'0';a[i]++;}for(i=0;i10;i++)printf(%d,a[i]);}三、完善下列程序(本大题共2小题,每空4分,共20分)35.下面程序求一个二维矩阵