专升本C语言程序设计模拟试卷

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

计算机科学与技术专业《基础知识》模拟试卷(考试时间150分钟,满分300分,共三部分)第一部分C语言程序设计(共100分)一、单项选择题(本大题共30小题,每小题2分,共60分)1.下列各选项中,均是合法有效的标识符的是【】A.3dayB.lowerC.day_3D.abSum_daysabcdestudent_name_oflotus_1_2_3defaultM.D.john2.若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是A.A%2==1B.!(A%2==0)C.!(A%2)D.A%23.下列程序的输出结果是【】#includestdio.hvoidmain(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;case3:a++;b++;break;}printf(“%d,%d\n”,a,b);}A.1,1B.2,1C.1,0D.2,24.以下关于switch语句和break语句的描述中,只有正确的是【】A.在switch语句中必须使用break语句B.在switch语句中,可以根据需要使用或不使用break语句C.break语句只能用于switch语句中D.break语句是switch语句的一部分5.下面程序的输出是【】。main(){intx=0x23;printf(“%d\n”,--x);}A.18B.19C.34D.356.下列函数的输出结果是【】#includestdio.hintf1(intxb){externintxa;return(xa*xb);}voidmain(void){externintxb;intxa=5;printf(“xa=%d,xb=%d,result=%d”,xa,xb,f1(xa));return0;}intxa=3,xb=4;A.3,4,12B.5,4,20C.5,4,15D.3,4,157.c语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是A.地址传递B.由实参传给形参,再由形参传回给实参C.单向值传递D.由用户指定传递方式8.以下程序中调用scanf函数给变量a输入数值的方法是错误的,其原因是【】voidmain(){int*p,a;p=&a;scanf(“%d”,*p);……}A.*p表示的是指针变量p的地址B.*p表示的是变量a的值,而不是变量a的地址C.*p表示的是指针变量p的值D.*p只能用来说明p是一个指针变量9.下列程序段的输出结果是【】。intx=3;do{printf(“%2d\n”,x-=2);}while(!(――x))A.1B.1-2C.30D.是死循环10.若有语句:inta=4,*p=&a;下面均代表地址的一组选项是【】。A.a,p,&*aB.*&a,&a,*pC.&a,p,&*pD.*&p,*p,&a11.下面程序输出的结果是main(){inti;inta[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i3;i++)printf(%d,a[2-i][i]);}A)159B)753C)357D)59112.下面函数的功能是char*fun(char*str1,char*str2){while((*str1)&&(*str2++=*str1++));returnstr2;}A)求字符串的长度B)比较两个字符串的大小C)将字符串str1复制到字符串str2中D)将字符串str1接续到字符串str2中13.下面函数调用语句含有实参的个数为func((exp1,exp2),(exp3,exp4,exp5));A)1B)2C)4D)513.下面程序段的运行结果是char*s=abcde;s+=2;printf(%d,s);A)cdeB)字符′c′C)字符′c′的地址D)无确定的输出结果14.已有变量定义和函数调用语句:inta=25;print_value(&a);下面函数的正确输出结果是voidprint_value(int*x){printf(%d\n,++*x);}A)23B)24C)25D)2615.当顺利执行了文件关闭操作时,fclose函数的返回值是A)-1B)TRUEC)0D)116.设有如下定义char*s[2]={abcd,ABCD};则下列说法错误的是A)s数组元素的值分别是abcd和ABCD两个字符串的首地址B)s是指针数组名,它含有两个元素分别指向字符型一维数组C)s数组的两个元素分别存放的是含有4个字符的一维字符数组中的元素D)s数组的两个元素中分别存放了字符′a′和′A′的地址17.以下不能对二维数组a进行正确初始化的语句是A)inta[2][3]={0};B)inta[][3]={{1,2},{0}};C)inta[2][3]={{1,2},{3,4},{5,6}};D)inta[][3]={1,2,3,4,5,6};18.有以下程序structSTU{charnum[10];floatscore[3];};main(){structSTUs[3]={{20021,90,95,85},{20022,95,80,75},{20023,100,95,90},},*p=s;inti;floatsum=0;for(i=0;i3;i++)sum=sum+p-score[i];printf(%6.2f\n,sum);}程序运行后的输出结果是A)260.00B)270.00C)280.00D)285.0019.若有说明:inta[10];则对a数组元素的正确引用是A)a[10]B)a[3,5]C)a(5)D)a[10-10]20.下面程序段中,输出*的个数是char*s=\ta\018bc;for(;*s!=′\0′;s++)printf(*);A)9B)5C)6D)721.设有如下函数fun(floatx){printf(\n%d,x*x);}则函数的类型是A)与参数x的类型相同B)是voidC)是int型D)无法确定22.有如下定义#defineD2intx=5;floaty=3.83;charc=′D′;则下面选项中错误的是A)x++;B)y++;C)c++;D)D++;23.以下程序段的执行结果为#definePLUS(X,Y)X+Ymain(){intx=1,y=2,z=3,sum;sum=PLUS(x+y,z)*PLUS(y,z);printf(SUM=%d,sum);}A)SUM=9B)SUM=12C)SUM=18D)SUM=2824.C语言规定,函数返回值的类型是由A)return语句中的表达式类型所决定B)调用该函数时的主调函数类型所决定C)调用该函数时系统临时决定D)在定义该函数时所指定的函数类型所决定25.下列程序的运行结果是voidfun(int*a,int*b){int*k;k=a;a=b;b=k;}main(){inta=2004,b=9,*x=&a,*y=&b;fun(x,y);printf(%d%d,a,b);}A)20049B)92004C)00D)编译时出错26.下列程序是用来判断数组中特定元素的位置所在。如果输入如下整数:876675896101301401980431451777#include#includeintfun(int*s,intt,int*k){inti;*k=0;for(i=0;iif(s[*k]returns[*k];}main(){inta[10]={876,675,896,101,301,401,980,431,451,777},k;clrscr();fun(a,10,&k);printf(%d,%d\n,k,a[k]);}则输出结果为A)7,431B)6C)980D)6,98027.下面程序应能对两个整型变量的值进行交换。以下正确的说法是main(){inta=10,b=20;printf((1)a=%d,b=%d\n,a,b);swap(&a,&b);printf((2)a=%d,b=%d\n,a,b);}swap(intp,intq){intt;t=p;p=q;q=t;}A)该程序完全正确B)该程序有错,只要将语句swap(&a,&b);中的参数改为a,b即可C)该程序有错,只要将swap()函数中的形参p和q以及t均定义为指针(执行语句不变)即可D)以上说法都不对28.有以下程序#includemain(){char*p,*q;p=(char*)malloc(sizeof(char)*20);q=p;scanf(%s%s,p,q);printf(%s%s\n,p,q);}若从键盘输入:abcdef回车,则输出结果是A)defdefB)abcdefC)abcdD)dd29.以下程序的输出结果是intf(){staticinti=0;ints=1;s+=i;i++;returns;}main(){inti,a=0;for(i=0;i5;i++)a+=f();printf(%d\n,a);}A)20B)24C)25D)1530.有以下程序#includestructNODE{intnum;structNODE*next;};main(){structNODE*p,*q,*r;p=(structNODE*)malloc(sizeof(structNODE));q=(structNODE*)malloc(sizeof(structNODE));r=(structNODE*)malloc(sizeof(structNODE));p-num=10;q-num=20;r-num=30;p-next=q;q-next=r;printf(%d\n,p-num+q-next-num);}程序运行后的输出结果是A)10B)20C)30D)40二、程序阅读题(本大题共4小题,每小题5分,共20分)阅读下列程序,将输出结果写到答题纸的相应位置。31.下列程序的输出结果为。main(){intx=3,y=5;printf(%d,x=(x--)*(--y));}32.以下程序的输出结果是。fun(intx,inty,intz){z=x*x+y*y;}main(){inta=31;fun(6,3,a)printf(%d,a)}33.执行下面程序段后,k值是。k=1;n=1234;do{k+=n%10;n/=10;}while(n);34.下列程序的输出的结果是,,。main(){inti,jrow,colum,m;staticintarray[3][3]={{100,200,300},{28,72,-30}{-850,2,6}};m=array[0][0];for(i=0;i<3;i++)for(j=0;j<3;j++)if(array[i][j]<m){m=array[i][j];colum=j;row=i;}printf(%d,%d,%d\n,m,row,colum);三、完善下列程序(本大题共3小题,每空2分,共20分)请在答题纸相应的位置填上正确答案。35.打印所有的“水仙花数”。所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。比如153=1*1*1+5*5*5+3*3*3。(注:变量i,j,k分别代表三位数的各个位数。)main(){inti,j,k,n;printf(“水仙花数是:”);for(n=100;n1000;n++){i=n/100;【1】;k=n%10;if(【2】)/*如果是水仙花数,则输出*/printf(“%4d”,n);}printf(“\n”);}36.以下程序段的功能:从键盘输入的字符,用变量n来统计数字字符的个数,用换行符(‘\n’)作为循环结束的条件。#includestdio.hmain(){intn=0,c;c=getchar();while(【1】){if

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功