高级语言程序设计练习题4及答案_第1页
高级语言程序设计练习题4及答案_第2页
高级语言程序设计练习题4及答案_第3页
高级语言程序设计练习题4及答案_第4页
高级语言程序设计练习题4及答案_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、单选题1、设有如下一段程序:int*p,a,b;a=10;p=&b;p=&a;a=*p+10;执行上面的程序后,a的值为​A.不确定B.10C.20D.110正确答案:C2、‏设有如下一段程序:‏int*p,a,b;‏a=10;‏p=&a;‏p=&b;‏a=*p+10;‏执行上面的程序后,a的值为‏A.不确定B.20C.10D.110正确答案:A3、设有如下一段程序:int*pa,*pb,a=10,b=20;pa=&a,pb=&b;*pa=*pb;a=*pa+10;执行上面的程序后,a的值为‎A.不确定B.40C.20D.30正确答案:D4、设有如下一段程序:int*pa,*pb,a=10,b=20;pb=&b;*pa=a;a=b;b=*pa;执行上面的程序后,a的值为‎A.10B.30C.程序出错D.20正确答案:C5、‍设有如下一段程序:‍int*pa,*pb,a=10,b=20;‍pa=&a;‍*pa=a;‍a=b;‍b=*pa;‍执行上面的程序后,a的值为A.20B.程序出错C.30D.10正确答案:A6、‎如下指针变量声明语句正确的是?A.inta=10,b=20;int*pa,*pb=b;B.int*pa=&a,*pb=&b,a=10,b=20;C.inta=10,b=20;int*pa,pb=&b;D.inta=10,b=20,*pa=&a,*pb=&b;正确答案:D7、​执行以下程序后,y的值是​voidmain()​{​inta[]={2,4,6,8,10};​inty=1,x,*p;​p=&a[1];​for(x=0;x<3;x++)​y+=*(p+x);​printf("%d\n",y);​}​A.17B.18C.20D.19正确答案:B8、‏设有以下定义:‏inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};‏int*p=a[2];‏则下列能够正确表示数组元素a[1][2]的表达式是‎A.*(p-1)B.*(p+1)C.*(*(p-1))D.*(*(p+1)+2)正确答案:A9、‍设有定义语句‍intx[6]={2,4,6,8,5,7},*p=x,i;‍要求依次输出x数组6个元素中的值,不能完成此操作的语句是A.for(i=0;i<6;i++)printf("%2d",(*p)++);B.for(i=0;i<6;i++)printf("%2d",*(p+i));C.for(i=0;i<6;i++)printf("%2d",*p++);D.for(i=0;i<6;i++)printf("%2d",*(p++));正确答案:A10、‌下面程序输出数组中的最大值,由s指针指向该元素.‌voidmain()‌{‌ inta[10]={6,7,2,9,1,10,5,8,4,3,},*p,*s;‌ for(p=a,s=a;p-a<10;p++)‌ if(_______)s=p;‌ printf("Max=%d",*s):‌}‌则在if语句中的判断表达式应该是A.a[p]>a[s]B.*p>*sC.p-a>p-sD.p>s正确答案:B11、‎设有定义:doublex[100],*p=x;,以下能给数组x下标为6的元素读入数据的正确语句是‏A.scanf("%lf",p[6]);B.scanf("%lf",&x[5]);C.scanf("%lf",*(x+6));D.scanf("%lf",p+6);正确答案:D12、​设有如下程序:​#include<stdio.h>​voidmain()​{​int**k,*j,i=100;​j=&i;​k=&j;​printf("%d\n",**k);​}​上面程序的输出结果是‏A.运行错误B.i的地址C.100D.j的地址正确答案:C13、​请选出以下程序的输出结果​#include<stdio.h>​sub(intx,inty,int*z)​{*z=y-x;}​main()​{​inta,b,c;​sub(10,5,&a);​sub(7,a,&b);​sub(a,b,&c);​printf("%d,%d,%d\n",a,b,c);‎​}‎A.-5,-12,-7B.5,2,3C.5,-2,-7D.-5,-12,-17正确答案:A14、‏设有如下函数定义:‏intf(char*s)‏{‎‏char*p=s;‏while(*p!='\0')p++;‏return(p-s);‏}‏如果在主程序中用下面的语句调用上述函数,则输出结果为‏printf("%d\n",f("\ngoodbey!"));‎A.10B.8C.11D.9正确答案:D15、​设有如下定义:char*aa[2]={"abcd","ABCD"};则以下就法中正确的是A.aa数组的两个元素中各自存放了字符'a'和'A'的地址B.aa是指针变量,它指向含有两个数组元素的字符型一维数组C.aa数组成元素的值分别是"abcd"和ABCD"D.aa数组的两个元素分别存放字符串常量的首地址正确答案:D16、‍下列程序的输出结果是‍main()‍{‍char*p2,str[50]="NEU";‍charp1[10]="abcd";‍p2="ABCD";‍strcpy(str+2,strcat(p1+2,p2+1));‍printf("%s",str);‍}‎A.NEUabcdB.NEUbcdC.NEcdBCDD.NEabcd正确答案:C17、‏以下程序段char*alp[]={"ABC","DEF","GHI"};intj;puts(alp[1]);‏的输出结果是()。A.ABCDEFB.DEFC.ABCD.GHI正确答案:B18、‍若已定义:‍inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12},(*prt)[3]=a,*p=a[0];‍则能够正确表示数组元素a[1][2]的表达式是​A.(*prt+1)+2B.*(*(p+5))C.*(*(a+1)+2)D.*((*prt+1)[2])正确答案:C19、‎以下程序的输出结果是‎voidfun(float*a,float*b)‎{floatw;‎*a=*a+*a;‎w=*a;‎*a=*b;‎*b=w;‎}​‎main()‎{floatx=2.0,y=3.0;‎float*px=&x,*py=&y;‎fun(px,py);‎printf("%2.0f,%2.0f\n",x,y);‎}​A.4,3B.3,2C.2,3D.3,4正确答案:D20、‌下面程序‌char*fun1(char*t,char*s)‌{‌ while(*t++=*s++);‌ return*t;‌}‌intmain()‌{‌ chara[100]="Hello";‌ charb[20]="NEU";‌fun1(a,b);‌ printf("%s",b);‌}‌执行结果为A.HelloB.输出为空C.HelloNEUD.NEU正确答案:D21、​对于如下结构体定义​structstudent{​intid;​charname[32];​}s1;​如下说法不正确的是​A.sizeof(s1)与sizeof(structstudent)的值相等B.scanf("%s",&)实现给name成员赋值 C.s1.id=100实现给id成员变量赋值D.scanf("%s",)实现给name成员赋值正确答案:B22、​对于如下结构体定义​structstudent{​intid;​charname[32];​}s1,*p;​若令p=&s1,则如下说法不正确的是​A.scanf("%s",p->name)实现给name成员赋值 B.s1.id=100与p->id=100的功能相同,都是为s1的id成员赋值100C.scanf("%s",)实现给name成员赋值 D.*p和s1的值相同,p指向s1正确答案:C23、‌对于如下结构体定义‌structstudent{‌intid;‌charname[32];‌}s1={100,"zhao"};‌如下说法正确的是A.表达式sizeof()的值为4 B.表达式sizeof(s1)的值为36C.存在语法错误D.表达式strlen()的值为32正确答案:B24、​对于如下结构体定义​structstudent{​intid;​charname[32];​union{​charc;​intg;​floatf;​}grade;​}s1={100,"zhao",{'A'}}​如下说法正确的是​A.表达式sizeof(s1.grade)的值为4B.表达式sizeof(s1.grade)的值为9C.s1.grade.g的值未知D.存在语法错误正确答案:A25、‌对于如下结构体定义‌structstudent{‌intid;‌charname[32];‌union{‌charc;‌intg;‌floatf;‌}grade;‌}s1={100,"zhao",{'A'}}‌如下说法不正确的是‎A.strlen()的值为4B.s1.id的值为100C.s1.grade.g的值为0D.s1.grade.c的值为'A'正确答案:C26、‍对于如下语句‍structpoint‍{‍floatx,y,z;‍}p1={1,2,3},p2,p3;‍ p2=p1;‍如下说法正确的是‏A.p2=p1+1是合法的表达式B.存在语法错误C.p3=p1+p2是合法的表达式D.printf("%f",p2.x)的输出结果为1.000000正确答案:D27、‎下面程序‎structpoint‎{‎floatx,y,z;‎};‎structpointmid(structpointp1,structpointp2){‎structpointm;‎m.x=(p1.x+p2.x)/2;‎m.y=(p1.y+p2.y)/2;‎m.z=(p1.z+p2.z)/2;‎returnm;‎}‎intmain()‎{‎structpointp1={1,2,3},p2,p3={0,0,0};;‎p2=p1;‎p3=mid(p1,p2);‎printf("%f",p3.x);‎}‎执行结果为‎A.1.000000B.存在语法错误,无结果C.0.500000D.0.000000正确答案:A28、​下面程序​structpoint​{​floatx,y,z;​};​voidswap(structpointp1,structpointp2){​structpointm;​m=p1,p1=p2,p2=m;​}​intmain()​{​structpointp1={1,2,3},p2={0,0,0};​swap(p1,p2);​printf("%f",p2.x);​}​A.无结果B.0.500000C.1.000000D.0.000000正确答案:D29、‎下面程序‎structpoint‎{‎floatx,y,z;‎};‎voidswap(structpoint*p1,structpoint*p2){‎structpoint*m;‎m=p1,p1=p2,p2=m;‎}‎intmain()‎{‎structpointp1={1,2,3},p2={0,0,0};‎swap(&p1,&p2);‎printf("%f",p2.x);‎}‎执行结果为‎A.0.500000B.无结果C.0.000000D.1.000000正确答案:C30、‏下面程序‏structstudent{‏intid;‏charname[32];‏union{‏charc;‏intg;‏floatf;‏}grade;‏}s1={100,"zhao",{'A'}};‏intmain()‏{‏structstudents1={20200001,"Joe",'A'},s2={20200001,"Li",65};‏structstudentp;‏p=s1;‏printf("%s",);‏}‏执行结果为​A.JoeB.无结果C.20200001D.Li正确答案:A31、‎下面程序‎structpoint‎{‎floatx,y,z;‎};‎intmain()‎{‎structpointpoints[5]={{1,0,0}};‎‎printf("%f",points[1].x);‎}‎执行结果为‎A.0.000000B.无结果C.值不确定D

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论