您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 程序设计与数据结构练习题附答案
一、单项选择题1.有下列程序段落:inti,a[5];for(i=0;i5;i++)scanf(“%d”,&a[i]);若要使数组元素的值分别为1,2,3,4,5,应从键盘输入(B)。A.1,2,3,4,5↙B.12345↙C.12345↙D.1;2;3;4;5↙2.数组名作为函数参数进行传递时,形参获得的是(D)。A.该数组第一个元素的值B.该数组所有元素的值C.该数组所有元素的地址D.该数组的首地址3.设有如下宏定义:#defineA3+2#defineBA*A则表达式“B*B”的值为(A)。A.23B.5C.25D.6254.在下列说明中,结构类型变量x所占用内存字节数为(D)。structexp{inti;floatj;doublek;}x;A.8个B.7个C.14个D.随计算机而定5.设有定义:intk=3,*p=&k;则表达式*p的值是(D)。A.1B.0C.2D.36.下列程序的输出结果为(A)。main(){inti=3,b;b=(i--)+(i--);printf(“%d”,b);}A.6B.2C.3D.47.当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是(D)。A.c=b=aB.(a=c)||(b=c)C.a=c=bD.(a=c)&&(b=c)8.下列叙述不正确的是(A)。A.函数定义可以嵌套B.宏定义可以嵌套C.函数调用可以嵌套D.循环结构可以嵌套9.设char*p=“abcde”,则printf(“%s”,p)的输出结果为(D)。A.cB.cdeC.bD.abcde10.p1,p2为指向浮点的指针变量,下列运算没有意义的是(D)。A.*p1-*p2B.p1++C.*p1+*p2D.p1+p211.设有inti=010,j=10;则printf(“%d,%d\n”,++i,j--);的输出是(B)。A.11,10B.9,10C.010,9D.10,912.已知w=1,x=2,y=3,z=3,a=4,b=2;则执行语句(a=wx)&&(b=yz);后,a,b的值为(D)。A.1和1B.0和0C.4和2D.0和2&&前一条件为假,无论后面什么情况结果都为假13.定义如下变量关系,则下面语句的输出结果是(D)。inti;intx[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i3;i++)printf(%d,x[0][2-i]);A.159B.123C.357D.32114.已知数组floatb[3][2];该数组行下标的范围是(D)。A.1—3B.0—3C.1—2D.0—215.下列语句中,正确的是(D)。A.#definePI=3.14159B.include“stdio.h”C.defineM3D.#definePI3.1415916.有如下程序,该程序段的输出结果是(B)。voidmain(void){intn=5;while(n2){n--;printf(“%d”,n);}}A.543B.432C.4321D.543217.下列四种数组定义,合法的数组定义是(A)。A.chara[]=hello;B.inta[4]={4,3,2,1,0};C.chara=hello;D.chara[4]=hello;18.设p1和p2均为指向int型的指针变量,k为int型变量,下列不正确的赋值语句是(C)。A.k=*p1+*p2;B.k=*p1*(*p2)C.p2=kD.p1=p219.有如下程序,该程序的输出结果是(C)。voidmain(void){chars[]=“ABCD”,*p;for(p=s+1;p=s+3;p++)printf(“%c\n”,*p);}A.ABCB.AC.BD.BCDBCBCCDCCDD20.对于C程序的函数,下列叙述中正确的是(A)。A.函数的定义不能嵌套,但函数调用可以嵌套B.函数的定义可以嵌套,但函数调用不能嵌套C.函数的定义和调用均可以嵌套D.函数的定义和调用均不能嵌套21.设x为整型变量,p是指向整型的指针变量,则下列赋值表达式正确的是(A)。A.p=&xB.p=xC.*p=&xD.*p=*x22.函数定义时,形参是整型变量,则函数调用时,实参不可以是(C)。A.整型常量B.字符型常量C.数组名D.整型表达式23.以下程序的输出结果是(B)。voidmain(void){inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;printf(“%d\n”,*p+*q);}A.16B.10C.8D.624.设有如下定义,若有p=&ab;,则对ab中成员项的正确引用是(B)。structss{inta;floatb;}ab,*p;A.(*p).ab.aB.p-aC.p-ab.aD.p.ab.a25.若要对E盘上的一个非空文件“w1.dat”进行修改,正确的打开语句是(D)。A.fp=fopen(“w1.dat”,“r+”);B.fp=fopen(“w1.dat”,“w+”);C.fp=fopen(“E:\\w1.dat”,“r+”);D.fp=fopen(“E:\\w1.dat”,“w+”);26.C语言程序的三种基本结构是(A)。A.顺序结构,分支结构,循环结构B.递归结构,循环结构,转移结构C.嵌套结构,循环结构,顺序结构D.递归结构,分支结构,顺序结构27.能正确表达逻辑关系“0a1或0b1”的c语言表达式是(A)。A.(0a)&&(a1)||(0b)&&(b1)B.((0a)||(a1))&&((0b)||(b1))C.(0a1)&&(0b1)D.(0a1)||(0b1)28.设x和y为浮点型变量,则以下(C)语句是正确的赋值语句。A.x=&yB.x*x=yC.x=x+10*yD.*x=y+229.设inta=3;下列哪一个表达式的值等于0(D)。A.aB.!a||aC.a=aD.a%=a30.定义如下变量和数组,则下面程序段落的输出结果是(A)。inti;intx[3][3]={0,1,2,3,4,5,6,7,8};for(i=0;i3;i++)printf(“%d”,x[i][2-i]);A.246B.036C.048D.25831.以下叙述错误的是(D)。A.一个C源程序可由一个或多个函数组成B.一个C源程序必须包含一个main函数C.C程序的基本组成单位是函数D.在C程序中,注释说明只能位于一条语句的后面32.C语言中运算对象必须是整型的运算符是(A)。A.%=B./C.=D.〈=33.有如下程序,程序运行后的输出结果是(B)。main(){unsignedintx=0xffff;printf(“%u\n”,x);}A.-1B.65535C.32767D.0xFFFF34.若有代数式xxen(其中e仅代表自然对数的底数,不是变量),则以下能够正确代表该代数式的C语言表达式是(C)。A.sqrt(abs(n^x+e^x)B.sqrt(fabs(pow(n,x)+pow(x,e)))C.sqrt(fabs(pow(n,x)+exp(x)))D.sqrt(fabs(pow(x,n)+exp(x)))35.字符串“\t12\x42\\abcd”的长度是(B)。A.14B.9C.15D.2036.以下叙述中错误的是(D)。A.计算机不能直接执行用C语言编写的源程序B.C语言经C编译程序编译后,生成后缀为.obj的文件是二进制文件C.后缀为.obj的文件,经连接后生成后缀为.exe的文件是二进制文件D.后缀为.obj和.exe的二进制文件都可以直接运行37.以下选项中,与k=x++;完全等价的表达式是(B)。A.x=x+1;k=x;B.k=x;x=x+1;C.k=x+1;D.k+=x+1;38.以下叙述中正确的是(C)。A.break语句只能用于switch语句中B.continue语句的作用是:使程序的执行流程跳出包含它的所有循环C.break语句只能用在循环体内和switch语句体内D.在循环体内使用break语句和continue语句的作用相同39.判断字符型变量ch是否为大写英文字母的表达式为(B)。A.‘A’=ch=‘Z’B.ch=‘A’&&ch=‘Z’C.ch‘a’&&ch=‘z’D.ch=‘A’||ch=‘Z’40.若表达式(m)?a++:a--,则表达式m和(B)等价。A.m==0B.m!=0C.m=0D.m=141.在c语言中,运算对象的逻辑值“真”用(B)表示。A.falseB.非0C.0D.负数42.已知函数原型声明为:char*(chara,charb);该函数的类型为(A)。A.指向字符型的指针B.字符型C.整型D.指向整型的指针43.设int类型的数据长度为2字节,则该类型数据的取值范围是(D)。A.0至65536B.0至65535C.-32767至32768D.-32768至3276744.inta,*p,**w;p=&a,w=&p;取a的值的表达式为(D)。A.&aB.&*pC.**pD.**w45.C语言程序的基本单位是(A)。A.函数B.标识符C.表达式D.语句46.判断字符型变量ch的值是否为大写英文字母的表达式为(B)。A.‘A’=ch=’Z’B.ch=’A’&&ch=’Z’C.ch’a’&&ch=’z’D.ch=’A’||ch=’Z’47.已知w=3,x=2,y=3,z=3,a=4,b=2;则执行语句(a=wx)||(b=yz);后,a,b的值为(C)。A.1和1B.0和0C.1和2D.4和248.若有定义语句inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;值为8的数组元素的正确表示为(D):A.a[8]B.a+7C.p+7D.*(p+7)49.下列程序运行结果是(A)。#defineA2#defineAAA+A/2voidmain(void){printf(“%d,”,AA);printf(“%d\n”,5*AA);}A.3,11B.3,15C.2,10D.8,4050.若有如下定义,则对ex中的a成员的正确引用是(B)。structsk{inta;floatb;}ex,*p=&ex;A.(*p).ex.aB.p-aC.p-ex..aD.p.ex.a二、填空题1.在内存中存储一个字符‘a’占用___1___个字节,而存储字符串”abcdef”则占用___7___个字节。2.表达式4/5的值为__0__。3.设x=4.5,a=7,y=3.4,表达式x+a%3*(int)(x+y)%2/4的值为_4.500000_。4.设a=14,执行a+=a-=a*=a后,a=__0_。5.设x=y=z=6,执行x=(yz)?x+2:x-2;后,x=__4__。。6.getchar()函数用于输入_字符_,而gets()函数则用于输入_字符串__。7.设有定义语句:charww[20]=”\t\\wab\n”;则表达式:strlen(ww)的值是_6。8.设有定义语句:charstr[7]=”abcdef”,则数组元素str[2]中的字符是__c__,数组元素str[6]中的字符是_\0___。9.函数中的形参和调用时的实参都是变量时,传递方式为_值传递__;都是数组名时,传递方式为__地址传递__。10.设有char*p=”12345”,则printf(“%s”,p)的输出是_12345__;而printf(“%c”,*p)的输出则是__1__。11.若s是int型变量,且s=7,则表达式:s/2+(s+1)%2的值为__3_。12.C语言中,以0x_打头的int常数是十六进制。13.有说明语句chars=‘\102’;S包含了__1___个字符。14.有数学表达式sinx+x-6x,写出其对应的C语言的表达式___sin(x)+sqrt(x)-6*x__。15.有定义语句:inta[][3]={{0},{1},{2}};则数
本文标题:程序设计与数据结构练习题附答案
链接地址:https://www.777doc.com/doc-2238064 .html