C语言概述练习题_第1页
C语言概述练习题_第2页
C语言概述练习题_第3页
C语言概述练习题_第4页
C语言概述练习题_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

C语言概述练习题1.一个C程序的执行是从()A.本程序的main函数开始,到main函数结束B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序文件的第一个函数开始,到本程序main函数结束2.以下叙述正确的是:()A.在C程序中,main函数必须位于程序的最前面B.程序的每行中只能写一条语句C.C语言本身没有输入输出语句D.在对一个C程序进行编译的过程中,可发现注释中的拼写错误3.以下叙述不正确的是:()A.一个C源程序可由一个或多个函数组成B.一个C源程序必须包含一个main函数C.C程序的基本组成单位是函数D.在C程序中,注释说明只能位于一条语句的后面4.C语言规定:在一个源程序中,main的位置()A.必须在最开始B.必须在系统调用的库函数后面C.可以任意D.必须在最后5.一个C语言程序是由()A.一个主程序和若干子程序组成B.函数组成C.若干过程组成D.若干子程序组成6.C源程序的基本单位是____________7.一个C源程序中至少包括一个____________8.在一个C源程序中,注释部分两侧的分界符分别为____________和____________9.在C语言中,输入操作是由库函数____________完成的,输出操作是由库函数____________完成的运算符与表达式练习题1.若x,i,j和k都是int型变量,则计算下面表达式后,x的值为()x=(i=4,j=16,k=32)A.4B.16C.32D.522.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是()A.7B.8C.6D.23.下面四个选项中,均是不合法的用户标识符的选项的是:()A.Ap_odoB.floatlao_AC.b-agotointD._123tempINT4.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符()A.必须为字母B.必须为下划线C.必须为字母或下划线D.可以是字母、数字和下划线中的任意一种5.下面四个选项中均是不合法整型常量的选项是()A.160-0xffff011B.-0xcdf01a0xeC.-01986,0120668D.-0x48a2e50x6.下面四个选项中均是不合法整型常量的选项是()A.-0f1-0xffff0011B.-0xcdf01712,456C.-0189995e2D.-0x48eg-06803f7.下面四个选项中,均是不合法的浮点数的选项是()A.1600.12e3B.1232e4.2e5C.-18123e40.0D.-e32341e38.下面四个选项中,均是合法的浮点数的选项是()A.+1e+15e-9.403e2B.-6012e-4-8e5C.123e1.2e-4-8e5D.-e38e-45.e-09.下面四个选项中,均是合法转义字符的选项是()A.'\"‘\\'‘\n'B.‘\'‘\017'‘\"'C.'\018'‘\f'‘xab'D.'\\0'‘\101'‘x1f'10.下面四个选项中,均是不合法的转义字符的选项是()A.'\"'‘\\'‘\xf'B.'\1011'‘\'‘\a'C.'\011'‘f'‘\}'D.'\abc'‘\101'‘x1f'11.下面正确的字符常量是()A.‘c"B.'\\"C.'w'D."12.下面四个选项中,均是正确的数值常量或字符常量的选项的是()A.0.00f8.9e‘&'B."a"3.9E-2.51e1‘\"'C.'3'0110xFF000aD.+0010xabcd2e25013.下面不正确的字符串常量是()A.'abc'B."12'12"C."0"D."“14.若有代数式3ae/bc,则不正确的C语言表达式是()A.a/b/c*e*3B.3*a*e/b/cC.3*a*e/b*cD.a*e/c/b*315.已知各变量的类型说明如下:intk,a,b;unsignedlongw=5;doublex=1.42;则以下不符合C语言语法的表达式是()A.x%(-3)B.w+=-2C.k=(a=2,b=3,a+b)D.a+=a-=(b=4)*(a=3)16.已知各变量的类型说明如下:inti=8,k,a,b;unsignedlongw=5;doublex=1.42,y=5.2;则以下符合C语言语法的表达式是()A.a+=a-=(b=4)*(a=3)B.a=a*3=2C.x%(-3)D.y=float(i)17.以下不正确的叙述是()A.在C程序中,逗号运算符的优先级最低B.在C程序中,APH和aph是两个不同的变量C.若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值18.以下正确的叙述是()A.在C程序中,每行中只能写一条语句B.若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C.在C语程序中,无论是整数还是实数,都能被准确无误地表示D.在C程序中,%是只能用于整数运算的运算符19.以下符合C语言语法的赋值表达式是()A.d=9+e+f=d+9B.d=9+e,f=d+9C.d=9+e,e++,d+9D.d=9+e++=d+720.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'3';后,c2中的值为()A.DB.68C.不确定的值D.C21.在C语言中,要求运算数必须是整型的运算符是()A./B.++C.!=D.%22.若以下变量均是整型,且num=sum=7;则计算表达式SUM=num++,SUM++,++num后sum值为()A.7B.8C.9D.1023.若有说明语句:charc='\72';则变量c()A.包含1个字符B.包含2个字符C.包含3个字符D.说明不合法,c的值不确定24.若有定义:inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是()A.2.500000B.2.750000C.3.500000D.0.00000025.设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为()A.intB.floatC.doubleD.不确定26.在C语言中,char型数据在内存中存储形式是()A.补码B.反码C.原码D.ASCII码27.表达式18/4*sqrt(4.0)/8值的数据类型为()A.floatBcharC.doubleD.不确定28.设有说明:charw;intx;floaty;doublez;则表达式w*x+z-y值的数据类型为()A.floatBcharC.intD.double29.若有以下定义,则能使值为3的表达式为3的表达式是()intk=7,x=12;A.x%=(k%=5)B.x%=(k-k%5)C.x%=k-k%5D.(x%=k)-(k%=5)30.设以下变量均为int类型,则值不等于7的表达式是()A.(x=y=6,x+y,x+1)B.(x=y=6,x+y,y+1)C.(x=6,x+1,y=6,x+y)D.(y=6,y+1,x=y,x+1)31.在c语言中(以16位pc机为例),一个char型数据在内存中所占的字节数为(),一个int型数据在内存中所占的字节数为(),一个float型数据在内存中所占的字节数为(),一个double型数据在内存中所占的字节数为().32.有以下定义,则计算表达式y+=y-=m*=y后的y值是()。intm=5,y=2;33.若s是int型变量,s=6;则下面表达式的值为()s%2+(s+1)%234.若a是int型变量,则下面表达式的值为()(a=4*5,a*2),a+635。若x和a均是int型变量,则计算式(1)后的x的值为(),计算表达式(2)后的x的值为()。(1)x=(a=4,6*2)(2)x=a=4,6*236.若a.b和c均是int型变量,则计算表达式后,a值为(),b值为(),c值为().a=(b=4)+(c=2)37.若a是int型变量,且a的初值为6,则计算表达式后a的值为()。a+=a-=a*a38.若a是int型变量,则计算表达式后a的值为()。a=25/3%339.若x和n均是int型变量,且x和n的初值均为5,则精神表达式后x的值为(),难得值为()。x+=n++40.若有定义:intb=7;floata=2.5,c=4.7;则下面表达式的值为()。a+(int)(b/3*(int)(a+c)/2)%441.若定义:inta=2,b=3;floatx=3.5,y=2.5;则下面表达式的值()。(float)(a+b)/2+(int)x%(int)y42.若有定义:charc='\010';则变量c中包含的字符个数为().43.若有定义:intx=3,y=2;floata=2.5,b=3.5;则下面表达式的值()(x+y)%2+(int)a/(int)b44.若x和n均为int型变量,且x的初值为12,n的初值为5,则计算表达式后x的值为()x%=(n%=2)45.假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为()46.C语言中的标识符只能由三种字符组成,它们是(),()和().47.已知字母a的ASII码为十进制数97,且设ch为字符型变量,则表达式ch='a'+'8'+-'3'的值为().48.把以下多项式写成只含七次乘法运算,其余皆为加.减运算的表达式为()5x^7+3x^6-4x^5+2x^x^3-6x^2+x+1049.若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为()50.若有定义:inte=1,f=4,g=2;floatm=10.5,n=4.0,k;则计算赋值表达式k=(e+f)/g+sqrt((double)n)*1.2/g+m后k的值是()51.表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的数据类型为()52.表达式pow(2.8,sqrt(double)(x)))值的数据类型为()53.假设m是一个三位数,从左到右用a、b、c表示各位的数字,则从左到右各个数字是bac的三位数的表达式是()顺序结构程序设计练习题1.putchar函数可以向终端输出一个()A.整型变量表达式值B.实型变量值C.字符串D.字符或字符变量值2.以下程序的输出结果是()(注:□代表空格)main(){printf(“\n*s1=%15s*',“chinabeijing");printf(“\n*s2=%-5s*",“chi");}A.*s1=chinabeijing□□□**s2=**chi*B.*s1=chinabeijing□□□**s2=chi□□*C.*s1=*□□chinabeijing**s2=□□chi*D.*s1=□□□chinabeijing**s2=chi□□*3.printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列.如果字符串长度以大于5,则输出按方式();如果字符串长度小于5,则输出按方式()A.从左起输出该字串,右补空格B.按原字符长从左向右全部输出C.右对齐输出该字串,左补空格D.输出错误信息4.x和y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是()A.scanf(“%d%s,%1e",&x,&y,&z);B.scanf(“%2d*%d%f",&x,&y,&z);C.scanf(“%x%d*%o",&x,&y);D.scanf(“%x%o%6.2f",&x,&y,&z);5.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是()(注:□表示空格,<CR>表示回车)inta1,a2;charc1;c2;scanf(“%d%c%d%c",&a,&c1,&a2,&c2);A.10A□20B<CR>B.10□A□20□B<CR>C.10A20B<CR>D.10A20□B<CR>6.已有定义intx;floaty;且执行scanf(“%3d%f",&x,&y);语句时,从第一列开始输入数据12345□678<回车>,则x的值为(1)y的值为(2)(1)A.12345B.123C.45D.345(2)A.无定值B.45.000000C.678.000000D.123.0000007.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是()(注:□表示空格,<CR>表示回车)inta1,a2;charc1,c2;scanf(“%d%d",&a1,&a2);scanf(“%c%c",&c1,&c2);A.1020AB<CR>B.10□20<CR>AB<CR>C.10□□20□□AB<CR>D.10□20AB<CR>8.已有程序段和输入数据的形式,程序中输入语句的正确形式应当为()main(){inta;floatf;printf(“\nInputnumber:");输入语句printf(“\nf=%f,a=%d\n",f,a);}输入的数据为4.5<CR>2<CR>A.scanf(“%d,%f",&a,&f);B.scanf(“%f,%d",&f,&a);C.scanf(“%d%f,&a,&f);D.scanf(“%f%d",&f,&a);9.阅读以下程序,当输入数据形式为:25,13,10<CR>,正确的输入结果为()main(){intx,y,z;scanf(“%d%d%d",&x,&y,&z);printf(“x+y+z=%d\n",x+y+z);}A.x+y+z=48B.x+y+z=35C.x+z=35D.不确定值10.根据题目中已给出的数据的输入和输出形式,程序中输入输出的语句的正确内容是()main(){intx;floaty;printf(“enterx,y:");输入语句输出语句}输入为:2□3.4输出为:x+y=5.40A.scanf(“%d,%f",&x,&y);printf(“\nx+y=4.21",x+y);B.scanf(“%d%f",&x,&y);printf(“\nx+y=4.2f",x+y);C.scanf(“%d%f",&x,&y);printf(“\nx+y=6.1f",x+y);Dscanf(“%d%3.1f",&x,&y);printf(“\nx+y=%4.2f",x+y);11.以下说法正确的是()A.输入项可以为一个实型常量,如scanf(“%f,3.5);B.只有格式控制,没有输入项,也能进行正确输入,如scanf(“a=%d,b=%d);C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(“%4.2f",&f);D.当输入数据时,必须指明变量的地址,如scanf(“%f",&f);12.有输入语句:scanf(“a=%d,b=%d,c=%d",&a,&b,&c);为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应是()A.132<CR>B.1,3,2<CR>C.a=1□b=3□c=2<CR>D.a=1,b=2,c=3<CR>13.已知ch是字符变量,下面正确的赋值语句是()A.ch='123';B.ch='\xff';C.ch='\08';D.ch='\'14.已知ch是字符变量,下面不正确的赋值语句是()A.ch='a+b';B.ch='\0';C.ch='7'+'9'D.ch=5+9;15.若有以下定义,且各变量均有初值,则正确的赋值语句是()inta,b;floatx;A.a=1,b=2;B.b++;C.a=b=5D.b=int(x);16.设x,y均为float型变量,则以下不合法的赋值语句是()S.++a;B.y=(x%2)/10;C.x*=y+8;D.x=y=0;17.设x,y和z均为int型变量,则执行语句x=(y=(z=10)+5)-5;后x,y,z的值是:()A.x=10y=15z=10B.x=10y=10z=10C.x=10y=15z=15D.x=10y=5z=1018.以下程序的输出结果为()main(){shorta;a=-4;printf("\na:dec=%d,oct=%x,unsigned=%u\n",a,a,a,a);}19.以下程序的输出结果为()main(){printf("*%f,%4.3f*\n",3.14,3.15);}20.以下程序的输出结果为()main(){charc='x';printf("c:dec=%d,oct=%o,hex=%x,ASCII=%c\n",c,c,c,c);}21.已有定义intd=-2;执行以下语句后的输出结果是()printf("*d(1)=%d*d(20=%3d*d(3)=%-3d*\n",d,d,d);printf("*d(4)=%o*d(5)=%6o*d(6)=%-7o*\n",d,d,d);22.以有定义intd=-2;执行以下语句后的输出结果是()printf("*d(1)=%d(20=%3d*d(3)=%-3d*\n",d,d,d);printf("*d(40=%6o*d(6)=%-7o*\n",d,d,d);23.以有定义floatd1=3.5,d2=-3.5;执行以下语句后的输出结果是()printf("*d(1)=%e*d(2)=%.4e*d(3)=%10.4e*\n,d,d,d);printf("*d(4)=%e*d(5)=%.6e*d(6)=%-12.5e*\n",d,d,d);24.以下程序输出结果为()main(){intx=1,y=2;printf("x=%dy=%d*sum*=%d\n",x,y,x+y);printf("10squaredis:%d\n",10*10);}25.以下程序的输出结果为()main(){intx=10;floatpi=3.1416;printf("(1)%d\n",x);printf("(2)%6d\n",x);printf("(3)%f\n",56.1);printf("(4)%514f\n",pi);printf("(5)%e\n",568.1);printf("(6)%14.e\n",pi);printf("(7)%g\n",pi);printf("(8)%12g\n",pi);26.假设变量a和b均为整型,以下语句可以不借助任何变量把a,b中的值进行交换,请填空.a+=()b=a-();a-=();27.设变量a,b,c均为整型,以下语句借助中间变量t把a,b,c中的值进行交换,即:把b中的值给a,把c中的值给b,把a中的值给c.例如:交换前a=10,b=20,c=30,交换后a=20,b=30,c=10,请填空.();a=b;b=c;();28.设x,y,z均为int型变量,m为long型变量,则在16位机上执行下面赋值语句后,y=(),z=(),m=().y=(x=32767,x-1);z=m=0xffff;29.如有intx;则执行下面语句后x值是()x=7;x+=x-=x+x;30.若有inta,b;则以下语句的功能是()a+=b;b=a-b;a-=b;31.在scanf函数调用语句中,可以在格式字符和%之间加一星号,它的作用是();当输入以下数据:10__20__30__40<承认>,下面语句的执行结果是()inta1,a2,a3;scanf("%d%d*%d%d",&a1,&a2,&3);32.若有以下定义和语句,为使变量c1的到字符'A',变量c2得到字符'B'正确的格式输入形式是()charc1,c2;scanf("%4c%4c",&c1,&c2);33.执行以下程序时,若从第一列开始输入数据,为使变量a=3,b=7,x=8.5,y=71.82,c1='A',c2='a',正确的数据输入形式是()mian(0{inta,b;floatx,y;charc1,c2;scanf(a=%db=%d",&a,&b);scanf("x=%fy=%f",&x,&y);scanf("c1=%cc2=%c",&c1,&c2);printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c",a,bx,y,c1,c2);}34.已有定义inti,j;floatx;为了使i=10,j=12,x=410.34,其对应的scanf函数调用语句的输入形式是()scanf("%o%x%e",&i,&j,&x);选择结构程序设计练习题1.逻辑运算符两侧运算对象的数据类型()A.只能是0和1B.只能是0或非0正数C.只能是整型或字符型数据D.可以是任何类型的数据2.下列运算符中优先级最高的是()A.<B.+C.&&D.!=3.能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假"的表达式是()A.(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)B.(x>=1)||(x<=10)||(x>=200)||(x<=210)C.(x>=1)&&(x<=10)||(x>=200)&&(x<=210)D.(x>=1)||(x<=10)&&(x>=200)||(x<=210)4.表示图中坐标轴上阴影部分的正确表达式是()A.(x<=a)&&(x>=b)&&(x<=c)B.(x<=a)||(b<=x<=c)C.(x<=a)||(x>=b)&&(x<=c)D.(x<=a)&&(b<=x<=c5.判断char型量ch是否为大写字母的正确表达式是()A.‘A’<=ch<=‘Z’B.(ch>=‘A’)&(ch<=‘Z’)C.(ch>=‘A’)&&(ch<=‘Z’)D.(‘A’<=ch)AND(‘Z’>=ch)6.设x,y,z都是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是()A.‘x’&&‘y’B.x<=yC.x||y+z&&!yD.!(x<y)&&!z||1)7.已知x=43,ch=‘A’,y=0;则表达式(x>=y&&ch<‘B’&&!y)的值是()A.0B.语法错误C.1D.“假”8.若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是()A.A%2==1B.!(A%2==0)C.!(A%2)D.A%29.设有:inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后的值为()A.1B.2C.3D.410.下列运算符中优先级最低的是()优先级最高的是()A.?B.&&C.+D.!=11.以下程序的运行结果是()#include<stdio.h>main(){inta,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(“%d,%d”,a,b);}A.6,1B.2,1C.6,0D.2,012.执行以下语句后a的值为()inta,b,c;a=b=c=1;++a||++b&&++c;A.错误B.0C.2D.1A.1B.2C.错误D.013.执行以下语句后的值为(),b的值()inta=5,b=6,w=1,x=2,y=3,z=4;(a=w>x)&&(b=y>z);A.5B.0C.2D.1A.6B.0C.1D.414.以下不正确的if语句形式是()A.if(x>y&&x!=y);B.if(x==y)x+=y;C.if(x!=y)scanf(“%d“,&x)elsescanf(“%d”,&y);D.if(x<y){x++;y++;}15.已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是()if(x>y)z=x;x=y;y=z;A.x=10,y=20,z=30B.x=20,y=30,z=30C.x=20,y=30,z=10D.x=20,y=30,z=2016.以下语句语法正确的是:()A.if(x>0)printf(“%f”,x)elseprintf(“%f”,-x);B.if(x>0){x=x+y;printf(“%f”,x);}elseprintf(“%f”,-x)C.if(x>0){x=xy;printf(“%f”,x);};elseprintf(“%f”,-x);D.if(x>0){x=x+y;printf(“%f”,x)}elseprintf(“%f”,-x);17.请阅读以下程序,该程序()main(){inta=5,b=0,c=0;if(a+b+c)printf(“***\n”);elseprintf(“$$$\n”);}A.有语法错误不能通过编译B.可以通过编译但不能通过连接C.输出***D.输出$$$18.以下程序的运行结果是()main(){intm=5;if(m++>5)printf(“%d\n”,m);elseprintf(“%d\n”,m--);}A.4B.5C.6D719.当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是()if(a<b)if(c<d)x=1;elseif(a<c)if(b<d)x=2;elsex=3;elsex=6;elsex=7;A.1B.2C.3D.620.有一函数关系如下:x-1(x<0)y={x(x=0)x+1(x>0)则下面程序段中能正确表示上面关系的是()A.y=x+1;if(x>=0)if(x==0)y=x;elsey=x-1;B.y=x-1if(x!=0)if(x>0)y=x+1;elsey=x;C.if(x<=0)if(x<0)y=x-1;elsey=x;elsey=x+1;D.y=x;if(x<=0)if(x<0)y=x-1;elsey=x+1;21.以下程序的输出结果是()main(){inta=100,x=10,y=20,ok1=5,ok2=0;if(x<y)if(y!=10)if(!ok1)a=1;elseif(ok2)a=10;a=-1;printf(“%d\n”,a);}A.1B.0C.-1D.值不确定22.以下程序的输出结果是()main(){intx=2,y=-1,z=2;if(x<y)if(y<0)z=0;elsez+=1;printf(“%d\n”,z);}A.3B.2C.1D.023.为了避免在嵌套的条件语句if--else中产生二义性,C语言规定:else子句总是与()配对。A.缩进排位置相同的ifB.其之前最近的ifC.其之后最近的ifD.同一行上的if24.以下不正确的语句为()A.if(x>y);B.if(x=y)&&(x!=0)x+=y;C.if(x!=y)scanf(“%d”,&x);elsescanf(“%d”,&y);D.if(x<y){x++;y++;}25.main(){floata,b;scanf“%f”,&a);if(a<0.0)b=0.0;elseif((a<0.5)&&(a!=2.0))b=1.0/(a+2.0);elseif(a<10.0)b=1.0/x;elseb=10.0;printf(“%f\n”,y);}若程序运行时输入为2.0<CR>,则上面程序的输出结果是()A.0.000000B.0.500000C.1.000000D.0.25000026.若运行时给变量x输入12,则以下程序的运行结果是()main(){intx,y;scanf(“%d\n”,y);}A.0B.22C.12D.1027.以下程序的运行结果是()main(){intk=4,a=3,b=2,c=1;printf(“\n%d\n”,k<a?k:c<b?c:a);}A.4B.3C.2D.128.执行以下程序段后,变量a,b,c的值分别是()intx=10,y=9;inta,b,c;a=(-x==y++)?--x:++y;x=x++;c=y;A.a=9,b=9,c=9B.a=8,b=8,c=10C.a=9,b=10,c=9D.a=1,b=11,c=1029.intw,x,y,z,m;则执行以下语句后m的值为()w=1;x=2;y=3;z=4;m=(w<x)?w:x;m=(m<y)?m:y;m=(m<z)?m:z;A.1B.2C.3D.430.若w=1,x=2,y=3,z=4,则表达式w<x?w:y<z?y:z的值是:()A.4B.3C.2D.131.执行以下程序段后的输出结果是:()intw=3,z=7,x=10;printf(“%d\n”,x>10?x+100:x-10);printf(“%d\n”,w++||z++);printf(“%d\n”,!w>z);printf(“%d\n”,w&&z);A.0B.1C.0D.011111100111032.当a=3,b=2,c=1时,表达式f=a>b>c的值是________33.当a=5,b=4,c=2时,表达式a>b!=c的值是________34.以下程序的运行结果是___________main(){intx=1,y,z;x*=3+2;printf(“%d\t”,x);x*=y=z=5;printf(“%d\t”,x);x=y==z;printf(“%d\n”,x);}35.在C语言中,表示逻辑“真”用__________36.设y为int型变量,请写出描述“y是奇数”的表达式__________37.C语言提供的三种逻辑运算符是______________38.设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式____________39.设intx,y,z;请描述“x,y和z中有两个为负数”的表达式____________40.已知A=7.5,B=2,c=3.6,表达式A>B&&C>A||A<B&&!C>B的值是________41.若a=6,b=4,c=2,则表达式!(a-b)+c-1&&b+c/2的值是____________42.若a=2,b=4,则表达式(x=a)||(y=b)&&0的值是___________43.若a=1,b=4,c=3,则表达式!(a<b)||!c&&1的值____________44.若a=6,b=4,c=3,则表达式a&&b+c||b-c的值是___________45.若a=5,b=2,c=1,则表达式a-b<c||b==c的值是____________46.设a=3,b=4,c=5,则表达式a||b+c&&b==c的值是_________47.条件“2<x<3或x<-10”48.当m=2,n=1,a=1,b=2,c=3时,执行完d=(m=a!=b)&&(n=b>c)后;n的值为______,m的值为________49.以下程序运行结果是______main(){inta1,a2,b1,b2;inti=5,j=7,k=0;a1=!k;a2=i!=j;printf(“a1=%d\ta2=%d\n”,a1,a2);b1=k&&j;b2=k||j;printf(“b1==%d\tb2=%d\n”,b1,b2);}51.以下程序的运行结果是:_________main(){intx,y,zx=1;y=1;z=0;x=x||y&&z;printf(“%d,%d”,x,x&&!y||z);}52.有intx,y,z;且x=3,y=-4,z=5,则表达式(x&&y)==(x||z)的值是______循环控制练习题1.设有程序段intk=10;while(k=0)k=k-1;则下面描述中正确的是()Awhile循环执行10次B循环是无限循环C循环体语句一次也不执行D循环体语句执行一次2.设有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);则()A运行程序段后输出0B运行程序段后输出1C程序段中的控制表达式是非法的D程序段执行无限次3、语句while(!E);中的表达式!E特等价于()A、E==0B、E!=1C、E!=0D、E==14、下面程序段的执行结果是()a=1;b=2;c=2;while(a<b<c){t=a;a=b;b=t;c-;}printf("%d,%d,%d",a,b,c);A、1,2,0B、2,1,0C、1,2,1D、2,1,15、下面程序段的运行结果是()x=y=0;while(x<15)y++,,x+=++y;printf("%d,%d",y,x);A、20,7B、6,12C、20,8D8,206、下面程序段的运行结果是()intn=0;while(n++<=2);printf("%d",n);A,2B、3C、4D有语法错误7、设有程序段t=0;while(printf("*")){t++;if(t<3)break;}下面描述正确的是()A、其中循环控制表达式与0等价B、其中循环控制表达式与’0‘等价C、其中循环表达式是不合法的D、以上说法都不对8、下面程序的功能是将从键盘输入的一对数,由小到大排序输出。当输入一对相等的数时结束循环,请选择填空。main(){inta,b,t;scanf(“%d,%d”,&a,&b);while(){if(a>b){t=a;a=b;b=t;}printf(“%d,%d\n”,a,b);scanf(“%d,%d”,&a,&b);}}A、!a=bB、a!=bC、a==bD、a=b9、下面程序的功能是从键盘输入的一组字符中统计出大写字母个数m和小写字母个数n,并输出m,n中较大者,请选择填空。#include<stdio.h>main(){intm=0,n=0;charc;while((__)!=’\n’){if(c>=’A’&&c<=’Z’)m++;if(c>’a’&&c<=’z’)n++;}printf(“%d\n”,m<n?___);}A.c==getchar()B.getchar()C.c=getchar()D.scanf(“%c”,c)A.n:mB.m:nC.m:mD.n:n10、下面程序的功能是将小写字母变成对应大写字母后的第二个字母。其中y变成A,Z变成B。填空#include<stdio.h>main(){charc;while((c=getchar())!=’\n’){if(c>=’a’&&c<=’z’){_______;if(c>=’Z’&&c<=’Z’+2)___________;}printf(“%c”,c);}A.c+=2B.c-=32C.c=c+32+2D.c-=30A.c=’B’B.c=’A’C.c-=26D.c=c+2611,下面程序的功能是在输入的一批正整数中求出最大者,输入0时结束,请选择填空main(){inta,max=0;scanf(“%d”,&a);while(____){if(max<a)max=a;scanf(“%d”,&a);}printf(“%d”,max);}A.a==0B.aC!a==1D.!a12、下面程序的运行结果是()main(){intnum=0;while(num<=2){num++;printf(“%d\n”,num);}A.1B.1<CR>2C.1<CR>2<CR>3D.1<CR>2<CR>3<CR>413.若运行以下程序时,从键盘输入2473<CR>,则下面程序的运行结果是()#include<stdio.h>main(){intc;while((c=getchar())!=’\n’)switch(c-‘2’){case0:case1:putchar(c+4);case2:putchar(c+4);break;case3:putchar(c+3);case4:putchar(c+2);break;}printf(“\n”);}A.668977B.668966C.66778777D.668876614.C语言中while和do-while循环的主要区别是()A.do-while的循环体至少无条件执行一次B.while的循环控制条件比do–while的循环控制条件严格C.do-while允许从外部转到循环体内D.do-while的循环体不能是复合语句15.以下程序段()x=-1do{x=x*x;}while(!x);A.是死循环B.循环执行二次C.循环执行一次D.有语法错误16、以下描述中正确的是()A.由于do-while循环中循环语句中只能是一条可执行语句,所以循环体内不能使用复合语句。B.do-while循环由do开始,且while结束,在while(表达式)后面不能写分号。C.在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作。D.do-while循环中,根据情况可以省略while17.若有以下后句intx=3;do{print("%d\n",x=2);}while(!(-x));则上面程序段()A.输入的是1B.输出的是1和-2C.输出的是3和0D.死循环18.下面程序是从键盘输入学号,然后输出学号中百位数字是3的学号,输入0时结束循环,填空。main(){longintnum;scanf("%ld",&num);do{if(_____)printf("%ld,num);scanf("%ld",&num);}while(______);}A.num%100/10=3.Bnum/100%10=3C.num%10/10=3D.num/10%10=3A.!numB.num>0=0C.!num=0D.!num!=019.下面程序的运行结果是()main(){inty=10;do{y--;}while(--y);printf("%d\n",y--);}A.-1B.1C.8D.-820.下面程序的运行结果是()#include<stdio.h>main(){charc;intv0=0,v1=0,v2=0;do{switch(c=getchar()){case'a':case'A':case'e':case'E':case'i':case'I':case'0':case'0':case'u':case'U':v1+=1;default:v0+=1;v2+=1;}}while(c!='\n');print(%d,%d,%d",v0,v1,v2);}A.7,4,7B.8,4,8C.11,4,11D.12,4,1221.下面程序的运行结果是()main(){inta=1,b=10,do{b-=a;a++;}while(b-,0);printf("%d,%d",a,b);}A.3.11B.2,8C.1,-1D.4,922.下面有关for循环的正确描述是()A.for循环只能有于循环次数已经确定的情况B.for循环是先执行循环体语句,后判断表达式C.在for循环中,不能用break语句跳出循环体D.for循环的循环体语句中,可以包含多条语句,但必须花括号括起来23.对for(表达式1;;表达式3)可理解为()A.for(表达式1;0;表达式3)B.for(表达式1;1;表达式3)C.for(表达式1;表达式1;表达式3)D.for(表达式1;表达式3;表达式3)24.若i为整型变量,则以下循环执行的次数是()for(i=2;i=0;)printf(“%d”,i--)A.无限次B.0次C.1次D.2次25.以下for循环的语句是()for(x=0,y=0;(y=123)&&(x<4);x++);A.是无限循环B.循环次数不定C.4次D.3次26.以下不是无限循环的语句是()A.for(y=0,x=1;x>++y;x=I++)I=x;B.for(;;x++=I);C.while(1){x++;}D.for(I=10;;I--)sum+=I;27.以下程序段的运行结果是()for(y=1;y<10;)y=((x=3*y,x+1),x-1);printf(“x=%d,y=%d”,x,y);A.x=27,y=27B.x=12,y=13C.x=15,y=14D.x=y=2728.下面程序段的运行结果是()for(x=3’x<6;x++)printf((x%2)?(“**%d”):(“##%d\n”),x);A.**3B.##3C.##3D.**3##4##4**4**4##5**5**5##529.下列程序段不是死循环的是()A.intI=100while(1){I=I%100+1;if(I>100)break;}B.for(;;)C.intk=0;do{++k;}while(k>=0);D.ints=36;while(s);--s;30.执行语句for(I=1;I++<4;);后变量I的值是()A.3;B.4C.5D.不定31.下面程序的功能是计算1到50中是7的倍数的数值之和,请选择填空。Main(){intI,sum=0;for(I=1;I<=50;I++)if(______)sun+=I;printf(“%d”,sum);}A.(int)(i/7)=i/7B.(int)i/7=i/7C.i%7+0D.i%7=032.下面程序的运行结果是()main(){inta;for(a=1;a<=5;a++switch(a%5){case0:printf(“*”);break;case1;printf(“#”);break;default:printf(“\n”);case2:printf(“&”);}}33.下面程序的运行结果是()main(){intx,I;for(I=1;I<100;I++){x=I;NO.14if(++x%2==0)if(++x%3==0)if(++x%7==0)ptintf(“%d”,x);}}A.3981B.4284C.2668D.287034.下面程序的运行结果是()main(){intI,b,k=0;for(I=1;I<=5;I++){b=I%2;while(b-->=0)k++;}printf(“%d,%d”,k,b);}A.3,-1B.8-1C.3,0D.8,-235.以下正确的描述是()A.continue语句的作用是结束整个循环的执行B.只能在循环体内和switch语句体内使用break语句C.在循环体内使用break或continue语句D.从多层循环嵌套中退出时,只能使用goto语句36.下面程序段()for(t=1;t<=100;t++){scanf(“%d”,&x);if(x<0)continue;ptintf(“%3d”,t);}A.当x<0时整个循环结束B.x>=0时什麽也不输出C.printf函数永也不执行D.最多允许输出100个非负整数37.下面程序段()x=3;do{y=x--;if(!y){printf(“x”);continue;}printf(“#”);}while(1<=x<=2);A.将输出##B.将输出##*C.是死循环D.含有不合法的控制表达式38.以下是死循环的是()A.for(I=1;;){if(++I%2==0)continueif(++I%3==0)break;}B.I=32767;{if(I<0)break;}while(++I);C.for(I=1;;)if(++I<10)continue;D.i=1;while(I--);39.以下描述正确的是()A.goto语句只能用于退出多层循环B.switch语句中不能出现continue语句C.只能用continue语句来终止本次循环D.在循环中break语句不能独立出现40.下面程序的运行结果是()#include<stdio.h>main(){intk=0;charc=’A’;do{switch(c++){case’A’:k++;break;case’B’:k--;case’C’:k+=2;break;case’D’:k=k%2;continue;case’E’:k=k*10;break;default:k=k/3;}while(c<’G’);printf(“k=%d\n”,k);}A.k=3B.k=4C.k=2D.k=041.下面程序的运行结果是()main(){inta,b;for(a=1,b=1;a<=100;a++){if(b>=20)break;if(b%3==1){b+=3;continue;}b=-5;}ptintf(“%d\n”,a);}A.7B.8C.9D.1042.下面程序的运行结果是()main(){intI,j,x=0;for(I=0;I<2;I++){x++;for(j=0;j<=3;j++){if(j%2)continue;x++;}ptintf(“x=%d\n”,x);}A.x=4B.x=8C.x=6D.x=1243.下面程序的运行结果是()main(){intI;for(I=1;I<=5;I++){if(I%2)printf(“*”);elsecontinue;printf(“#”);}printf(“$\n”);}A.*#*#*#$B.#*#*#*$C.*#*#$D.#*#*$44.下面程序的运行结果是()main(){intI,j,a=0;for(I=0;I<2;I++){for(j=0;j<4;j++)if(j%2)break;a++;}a++;}printf(“%d\n”,a);}A.4B.5C.6D.745.下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。请填空:intn=0,c;c=getchar();while(){if()n++;c=getchar();}46.当运行以下程序时,从键盘输入right?<CR.>,则下面程序的运行结果是:#include<sidio.h>main(){charc;while((c=getchar()!=’?’)putchar(++c);)47.下面程序的运行结果是:main(){inta,s,n,count;a=2;s=0;n=1;count=1;while(count<=7){n=n*a;s=s+n;++count;}printf(“s=%d”,d);}48.当运行以下程序时,从键盘输入China#<CR>,则下面程序的运行结果是:________________________#include<stdio.h>main(){intv1=0,v2=0;charch;while((ch=getchar()!=’#’)switch(ch){case‘a’:case‘h’:default:v1++case‘o’:v2++;}printf(“%d,%d\n”,v1,v2);}49.执行以下程序段以后,K值是:________________K=1;n=263;Do{k*=n%10;n/=10;}while(n);50.下面程序段中循环体的执行次数是_______________a=10;b=0;do{b+=2;a-=2+b;}while(a>0);51.下面程序段的运行结果是:______________________x=2;do{printf(“*”);x-;}while(!x==0);52.下面程序段的运行结果是:_____________________I=1;a=0;s=1;Do{a=a+s*I;s=-s;I++;}while(!x<=10);Printf(“a=a%d”,a);53.当运行以下程序时,从键盘输入12345-1<CR>,则下面程序的行结果是:____________________________main(){intk=0,n;do{scanf(“%d”,&nn);k+=n;}while(n!=-1);printf(“k=%dn=%d=n”,kn);}54.下面程序的运行结果:_____________________main(){intI,x,y;I=x=y=0do{++I;If(I%2!=0

温馨提示

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

评论

0/150

提交评论