您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > C51单片机复习题及答案
1C51程序设计基础单项选择练习题一、基本概念1.C语言程序是由C构成的。A)一些可执行语言B)main函数C)函数D)包含文件中的第一个函数2.(A)是构成C语言程序的基本单位。A、函数B、过程C、子程序D、子例程3.C语言程序从C开始执行。A)程序中第一条可执行语句B)程序中第一个函数C)程序中的main函数D)包含文件中的第一个函数4.C语言程序从main()函数开始执行,所以这个函数要写在_D___。A)程序文件的开始B)程序文件的最后C)它所调用的函数的前面D)程序文件的任何位置5、以下说法中正确的是(C)。A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main()函数中定义C、C语言程序总是从main()函数开始执行D、C语言程序中的main()函数必须放在程序的开始部分6.下列方法中错误的是(D)。A.主函数可以分为两个部分:主函数说明部分和主函数体。B.主函数可以调用任何非主函数的其它函数。C.任何非主函数可以调用其它任何非主函数。D.程序可以从任何非主函数开始执行。7.下列说法错误的是:(B)A.C程序运行步骤是编辑、编译、连接、执行。B.C语言的变量名必须用小写,常量用大写。C.C语言的三种基本结构是顺序、选择、循环。D.C程序一定由函数构成的。8.下列关于C语言的说法错误的是(B)。A)C程序的工作过程是编辑、编译、连接、运行B)C语言不区分大小写。C)C程序的三种基本结构是顺序、选择、循环D)C程序从main函数开始执行9.系统默认的C语言源程序扩展名为.C,需经过C之后,生成.exe文件,才能运行。A)编辑、编译B)编辑、连接C)编译、连接D)编辑、改错二、数据类型、运算符与表达式1.不是C语言提供的合法关键字是(B)。A.switchB.cherC.caseD.default2.C语言中的简单数据类型包括(D)。A、整型、实型、逻辑型B、整型、实型、逻辑型、字符型C、整型、字符型、逻辑型D、整型、实型、字符型3、下列可以正确表示字符型常量的是(A)。A、’\t’B、”a”C、”\n”D、2974.下列表达式中,D是正确的C语言字符常量。A)”x”B)e3C)”COMPUTER”D)’#’5.已定义c为字符型变量,则下列语句中正确的是(C)A)c='97'B)c=97C)c=‘a’D)c=a6.已知ch是字符型变量,不正确的赋值语句是(A)A)ch='a+b';B)ch='\0';C)ch='7';D)ch=’;’;27.C语言中字符型(char)数据在内存中的存储的是(D)A)原码B)补码C)反码D)ASCII码8.在C语言中,字符型数据所占的内存空间是(C)A)2个字节B)4字节C)1字节D)由用户自定义9.C语言中运算对象必须是整型的运算符是(A)A)%=B)/C)=D)〈=10.在C语言程序中,表达式8/5的结果是(B)A)1.6B)1C)3D)011.设x为int型变量,则执行以下语句后,x的值为Bx=10;x+=x;A)10B)20C)40D)3012.在C语言程序中,表达式5%2的结果是C。A)2.5B)2C)1D)313.如果inta=3,b=4;则条件表达式ab?a:b的值是__A__。(如果ab为true结果为a;如果ab为false结果为b)A)3B)4C)0D)114.若intx=2,y=3,z=4则表达式xz?y:z的结果是(B).A)4B)3C)2D)0E)115.C语言中,关系表达式和逻辑表达式的值是(B)。A)0B)0或1C)1D)‘T’或’F’16.下面(D)表达式的值为4.A)11/3B)11.0/3C)(float)11/3D)(int)(11.0/3+0.5)17.设intx=0,y=1;表达式(x&&y)的值是(A)A)0B)1C)2D)-118.以下运算符中优先级最高的运算符是(B)A)&&B)++C)+=D)!=19.设x为int型变量,则执行以下语句后,x的值为(C)x=10;x*=x;A)10B)20C)100D)020.设intx=0,y=1;表达式(x||y)的值是(B)A)0B)1C)2D)-121.设intx=7;表达式(x1)的值是(B)A)7B)14C)28D)322.设intx=7;y=5表达式(x∧y)的值是(C)A)0B)1C)2D)7三、选择结构1.表示关系x=y=z的c语言表达式为AA)(x=y)&&(y=z)B)(x=y)AND(y=z)C)(x=y=z)D)(x=y)&(y=z)2.能正确表示逻辑关系:“a≥=10或a≤0”的C语言表达式是(D)A)a=10ora=0B)a=0|a=10C)a=10&&a=0D)a=10‖a=03.为表示逻辑表达式79X90,应使用的C语言表达式是A。A)(X79)&&(X90)B)(X79)!=(X90)C)79X90D)(X79)||(X90)4.设有语句“inta=2,b=3,c=-2,d=2;”,则逻辑表达式“a0&&b&&c0&&d0”的值是(A)A.1B.0C.-1D.出错5.设x,t均为int型变量,则执行语句“x=10;t=x&&x10;”后,t的值为(D)3A.不定值B.10C.1D.06.若inti=10;执行下列程序后,变量i的正确结果是(A)。switch(i){case9:i+=1;case10:i+=1;case11:i+=1;default:i+=1;}A、13B、12C、11D、107.假定所有变量均已正确定义,则下列程序段运行后y的值是(A)inta=0,y=10;if(a=0)y--;elseif(a0)y++;elsey+=y;A.20B.11C.9D.08.假定所有变量均已正确定义,则下列程序段运行后x的值是(B)。a=b=c=0;x=35;if(!a)x--;elseif(b);if(c)x=3;elsex=4;A.34B.4C.35D.39.C语言对嵌套if语句的规定是:else语句总是与(D)配对。A)其之前最近的ifB)第一个ifC)缩进位置相同的ifD)其之前最近的且尚未配对的if10.在C语言语句中,用来决定分支流程的表达式是(A)。A.可用任意表达式B.只能用逻辑表达式或关系表达式C.只能用逻辑表达式D.只能用关系表达式11.C语言中用(B)表示逻辑“真”。A.trueB.整数值1C.非零整数值D.false12、若k是int型变量,且有下面的程序段:intk;k=-3;if(k=0)printf(“####”);elseprintf(“&&&&”);上面程序段的输出结果是(A)A、####B、&&&&C、####&&&&D、有语法错误,无输出结果13.main(){intx=0,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++;b++;}printf(“a=%d,b=%d\n”,a,b);}该程序的输出结果是DA)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=214.#includestdio.hvoidmain(){intx=1,y=0,a=0,b=0;4switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;case3:a++;b++;}printf(“\na=%d,b=%d”,a,b);}该程序的输出结果是AA)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=215.以下程序的输出结果是:(C)main(){intx=-10,y=1,z=1;if(xy)x=0if(y0)z=0;elsez=z+1;printf(“%d\n”,z);}A.0B.1C.2D.316.以下程序段的输出结果是(B)(%2d是以宽度2输出整型数,不足2时,左补空格)inta=10,b=50,c=30;if(ab)a=b;b=c;c=a;printf(a=%2db=%2dc=%2d\n,a,b,c);A)a=10b=50c=10B)a=10b=30c=10C)a=50b=30c=10D)a=50b=30c=50四、循环结构1.在C语言中,下列说法中正确的是(D)。A)do-while语句构成的循环不能用其它语句构成的循环来代替。B)do-while语句构成的循环只能用break语句退出。C)do-while语句构成的循环在while后的表达式非零时结束循环。D)do-while语句构成的循环,在while后的表达式为零时结束循环。2.break语句不能出现在(D)语句中A.switchB.forC.whileD.if…else3.语句while(!y);中的表达式!y等价于AA)y==0B)y!=1C)y=!0D)y==14.以下程序的循环执行是:(A)main(){inta=1,x=1;while(a10){x++;a++;5}A.无限次B.不确定次C.10次D.9次5.有以下程序段intk=0while(k)k++;则while循环体执行的次数是CA)无限次B)有语法错,不能执行C)一次也不执行D)执行1次6.下列循环语句中有语法错误的是(D)Awhile(x=y)5;Bwhile(0);Cdo2;while(x==b);Ddox++while(x==10);7.以下程序段(A)x=-1;do{x=x*x;}while(x0);A.是死循环B.循环执行一次C.循环执行二次D.有语法错误8.下面程序段执行后的结果为:(B)intsum=0,n=10;do{sum=sum+n;n++;}while(n10)printf(“%d,%d”,sum,n)A.0,10B.10,11C.0,11D.以上结果都不对9.对以下程序段的叙述正确的是___A____.intx=1;do{x=-1*x;}while(!x)A)是死循环B)循环执行一次C)循环执行二次D)有语法错误10.执行语句{for(j=0;j=3;j++)a=1;}后变量j的值是C.A)0B)3C)4D)111.有如下程序main(){inti,sum=2;for(i=1;i=3;i+=2)sum+=i;printf(“%d\n”,sum);}该程序的执行结果是AA)6B)3C)死循环D)4五数组1.以下对一维数组a的正确说明是:DA)chara(10);B)inta[];C)intk=5,a[k];D)chara[3]={‘a’,’b’,’c’};2.以下能对一维数组a进行初始化的语句是:(C)A.inta[5]=(0,1,2,3,4,)B.inta(5)={}C.inta[3]={0,1,2}D.inta{5}={10*1}3.在C语言中对一维整型数组的正确定义为D。A)inta(10);B)intn=10,a[n];C)intn;a[n];D)#defineN10inta[N];4、已知:inta[10];则对a数组元素的正确引用是(D)。6A、a[10]B、a[3.5]C、a(5)D、a[0]5.执行下面的程序段后,变量k中的值为CA)不定值B)33C)30D)10intk=3,s[2];s[0]=k;k=s[0]*10;六、函数1.C语言中函数返回值的类型是由A决定的.A)函数定义时指定的类型B)return语句中的表达式类型C)调用该函数时的实参的数据类型D)形参的数据类型2.在C语言中,函数的数据类型是指(A)A函数返回值的数据类型B.函数形参的数据类型C调用该函数时的实参的数据类型D.任意指定的数据类型3.在函数调用时,以下说法正确的是(B)A.函数调用后必须带回返回值B.实际参数和形式参数可以同名C.函数间的数据传递不可以使用全局变量D.主调函数和被调函数总是在同一个文件里4.以下叙述中正确的是AA)构成C程序的基本单位是函数B)可以在一个函数中定义另一个函
本文标题:C51单片机复习题及答案
链接地址:https://www.777doc.com/doc-6403176 .html