数据结构模拟试卷filetype_期末模拟试卷一

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

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

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

资源描述

1期末模拟试卷一一.单项选择题:(1~24每题1分,25~27每题3分,28题6分共39分)1.二进制数10111100和11010000进行与位运算的结果是__________。(A)00010000(B)10010000(C)11101101(D)111000012.以下程序的执行结果是_______。#includestdio.hmain(){inti=011,j=11;printf(%d,%d\n,++i,j--);}(A)10,11(B)12,10(C)11,11(D)10,103.已知在ASCII代码中,字母A的序号为65,以下程序的输出结果是_________。#includestdio.hmain(){charch1='A',ch2='b';printf(%d,%d\n,ch1,ch2);}(A)因输出格式不合法,输出错误信息(B)65,98(C)A,b(D)65,894.设有以下语句:chara=5,b=7,c;c=a|b3;printf(%d\n,c);则c的二进制值是__________。(A)00000101(B)00010100(C)00011100(D)000110005.下面的程序中第_________行有错误(每行程序前面的数字是附加的行号)。1#includestdio.h2main()3{4inta[3]={0,0};5inti;6for(i=0;i3;i++)scanf(%d,&a[i]);7for(i=1;i3;i++)a[0]=a[0]+a[i];8printf(%f\n,a[0]);9}(A)没有(B)第4行(C)第6行(D)第8行6.设有语句inta=5;则执行语句a+=a-=a/a;后,变量a的值是______。(A)5(B)0(C)1(D)87.以下程序的输出结果是__________。#includestdio.h#includestring.hmain(){charstr[10]={'s','t','r','i','n','g',NULL};printf(%d\n,strlen(str));}(A)6(B)7(C)11(D)128.在下列选项中,不正确的赋值语句是__________。(A)++t;(B)n1=(n2=(n3=0));(C)k=i==j;(D)a=b+c=1;29.分析下面函数:swap(int*p1,int*p2){int*p;*p=*p1;*p1=*p2;*p2=*p;}则该程序功能为:__________。(A)交换*p1和*p2的值(B)正确,但无法改变*p1和*p2的值(C)交换*p1和*p2的地址(D)可能造成系统故障10.分析下面程序#includestdio.hmain(){int*p1,*p2,*p,a=5,b=8;p1=&a;p2=&b;if(ab){p=p1;p1=p2;p2=p;}printf(%d,%d,*p1,*p2);printf(%d,%d,a,b);}程序的输出结果为:__________。(A)8,55,8(B)5,88,5(C)5,85,8(D)8,58,511.下面程序的输出结果是__________。main(){intn=0;while(n++=1)printf(%d\t,n);printf(%d\n,n);}(A)123(B)012(C)112(D)12212.以下函数定义正确的形式是__________。(A)doublefun(intx,inty){z=x+y;returnz;}(B)fun(intx,y){intz;returnz;}(C)fun(x,y){intx,y;doublez;z=x+y;returnz;}(D)doublefun(intx,inty){doublez;z=x+y;returnz;}13.C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是__。(A)地址传递(B)单向值传递(C)由实参传给形参,再由形参传回给实参(D)由用户指定传递方式14.当输入为quert?时,下面程序的执行结果是__________。#includestdio.hmain(){charc;c=getchar();while((c=getchar())!='?')putchar(++c);}(A)Quert(B)vfsu(C)quert?(D)vfsu?315.若有以下定义和语句:int**pp,*p,a=10,b=20;pp=&p;p=&a;p=&b;printf(%d,%d\n,*p,**pp);则输出结果是_________。(A)10,20(B)10,10(C)20,10(D)20,2016.以下对枚举类型的定义正确的是_________。(A)enuma={one,two,three};(B)enuma{one=9,two=-1,three};(C)enuma={one,two,three};(D)enuma{one,two,three};17.下面程序的输出结果是_________。main(){intk=11;printf(k=%d,k=%o,k=%x\n,k,k,k);}(A)k=11,k=12,k=11(B)k=11,k=13,k=13(C)k=11,k=013,k=0xb(D)k=11,k=13,k=b18.设有以下语句:charstr1[]=string,str2[8],*str3,*str4=string;则对库函数strcpy的调用不正确的是__________,此库函数用来复制字符串。(A)strcpy(str1,HELLO1);(B)strcpy(str2,HELLO2);(C)strcpy(str3,HELLO3)(D)strcpy(str4,HELLO4);19.设有以下语句:structst{intn;structst*next;};staticstructsta[3]={5,&a[1],7,&a[2],9,'\0'},*p;p=&a[0];则表达式_________的值是6。(A)p++->n(B)p->n++(C)(*p).n++(D)++p->n20.以下函数的功能是。fun(char*p2,char*p1){while((*p2=*p1)!=’\0’){p1++;p2++;}}(A)将p1所指字符串复制到p2所指内存空间(B)将pl所指字符串的地址赋给指针p2(C)对pl和p2两个指针所指字符串进行比较(D)检查p1和p2两个指针所指字符串中是否有’\0’21.设有以下程序main(){inta=5,*b,**c;c=&b;b=&a;……}4程序在执行了c=&b;b=&a;语句后,表达式:**c的值是。(A)变量a的地址(B)变量b中的值(C)变量a中的值(D)变量b的地址22.设fp是某个已打开文件的指针,在处理文件时当未遇到该文件的结束标志时,表达式feof(fp)的值为_______(A)0(B)1(C)-1(D)一个非0值23.函数调用fseek(fp,20L,1)的含义是_________。(A)将文件位置指针定位到离文件开始20个字节处(B)将文件位置指针定位到从文件当前位置向文件尾方向移动20个字节处(C)将文件位置指针定位到从文件当前位置向文件头方向移动20个字节处(D)将文件位置指针定位到离文件结尾20个字节处24.下列程序运行后的输出结果是。main(){inta[3][3],*p,i;p=&a[0][0];for(i=0;i9;i++)p[i]=i+1;printf(“%d\n”,a[1][2]);}(A)3(B)6(C)9(D)225.下面程序的输出结果是__________。main(){char*s=121;intk=0,a=0,b=0;do{k++;if(k%2==0){a=a+s[k]-'0';continue;}b=b+s[k]-'0';a=a+s[k]-'0';}while(s[k+1]);printf(k=%da=%db=%d\n,k,a,b);}(A)k=3a=2b=3(B)k=3a=3b=2(C)k=2a=3b=2(D)k=2a=2b=326.以下程序运行后的输出结果是__________。intd=1;fun(intp){intd=5;d+=p++;printf(%d,d);}main(){inta=3;fun(a);d+=a++;printf(%d\n,d);}(A)84(B)99(C)95(D)4427.以下程序运行后的的输出结果是________。#includestdio.hmain(){intk=4,m=1;printf(%d,,func(k,m));printf(%d\n,func(k,m));}func(inta,intb){staticintm=0,i=2;i+=m+1;m=i+a+b;return(m);}(A)8,17(B)8,16(C)8,20(D)8,828.设有结构体说明和变量定义structnode{intdata;structnode*next;}*p,*q,*r;5指针p、q、r依次指向某个链表中的三个连续结点。现要将q和r所指结点的先后位置交换,同时要保持链表的连续性,则以下错误的程序段是____。(A)p-next=r;q-next=r-next;r-next=q;(B)q-next=r-next;p-next=r;r-next=q;(C)r-next=q;q-next=r-next;p-next=r;(D)q-next=r-next;r-next=q;p-next=r;二.填空题:(每个空格2分,共22分)29.请填空完成下面输出结果是fedcba的程序。#includestdio.hmain(){charstr[]=abcdef,*p=str+6;while(--p=str)putchar(______);}30.设二进制数a是00101101,若想通过异或运算a^b使a的高4位取反,而低四位保持不变,则二进制数b的值应是__________。31.若union{floatx,y;charc[6];}w;则变量w在内存中所占的字节数是________。32.findmax函数返回数组s中最大元素的下标,数组中元素的个数由t传入,补足所缺语句。findmax(ints[],intt){intk,p;for(p=k=0;pt;p++)if(s[p]s[k])__________;returnk;}33.请在以下程序的下划线处填写适当内容,使程序能正确运行。main(){_____________(double,double);doublex,y;scanf(“%lf%lf”&x,&y);printf(“%lf\n”,max(x,y));}doublemax(doublea,doubleb){return(ab?a:b);}34.以下程序段调用malloc函数,使指针p指向一个具有structnode类型的动态存储空间。请填空:structnode{intdata;structnode*next;}*p;p=(structnode*)malloc();35.为了建立一个具有两个成员的单向链表结点的结构体变量node(即结点含两个域,data是数据域,next是指向结点的指针域),补足所缺语句。structlink{chardata;___*next;}node;36.设有定义structss{intinfo;structss*link;}x,y,z;且已建立了如图所示链表结构,请写出从链表上删除结点y的赋值语句。6x结点y结点z结点37.填空完成下列程序功能,将磁盘字符文件的信息复制到另一个磁盘文件中。#includestdio.hmain(){FILE*in,*out;charch,infile[10],outfile[10];scanf(“%s”,infile);i

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

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

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

×
保存成功