C语言2基本语法规则练习题2.doc_第1页
C语言2基本语法规则练习题2.doc_第2页
C语言2基本语法规则练习题2.doc_第3页
C语言2基本语法规则练习题2.doc_第4页
C语言2基本语法规则练习题2.doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

第二章 基本语法规则2.1数据类型、运算符、表达式一、选择题1C语言中确定数据存储的格式、范围与有效位数的依据是A数据正负B数据范围C数据类型D数据大小2一般说在C语言中字符型数据、整型数据、单精度浮点型及双精度浮点型数据的存储长度分别为A2、4、8、1B4、2、1、8C1、2、4、8D1、4、2、83转义字符“t”表示A横向跳格,即跳到下一个输出区B竖向跳格C退格D换行4以下叙述不正确的是AC语言中的常量分别为整型常量、浮点常量、字符常量、符号常量B整型常量在C语言中有十进制、八进制和十六进制等3种不同形式CC语言中,变量必须先定义后使用D变量被定义后,变量名是固定的,变量的值在程序运行过程中是不可以随时被改变的5以下叙述不正确的是AC语言中的字符常量是用一对单引号( )括起来的单个字符B字符串常量是用一对双引号(“ “)括起来的字符序列C字符型数据与整型数据之间不可以通用。D为了便于判断字符串是否结束,系统会自动在最后一个字符后面加上一个转义字符(0)6在赋值语句中用来将运算表达式的值赋给变量的“=”称为A等号B赋值运算符C关系运算符D逻辑运算符7设a=12,n=3,则执行表达式a%=n+3后a的值为A3B0C6D128设,A=0,B=1表达式!A&B的值是A1B0C2D39在16位PC机环境下,字符串“A”应占的字节数为A2B1C0D410采用十进制数为表示方法,则077是A77B112C63D11911设x为float型变量,y为double型变量,a为int型变量,b为long型变量,c为char型变量,则表达式x+y*a/x+b/y+c计算结果的类型为AintBlongCdoubleDchar12设a,c为int型变量,进行a=(c=5,c+5,c/2)运算后的结果为A2B5C2.5D013在C语言中,表示逻辑“真”和“假”的值分别是A0、1B1、2C1、0D2、114C语言中表示a小于b或小于c的表达式为AabcBab|bcCab|acDab&ac&bcBac|bcCab|bcDab&bc16a和b中有一个小于c的表达式为Aac|bcBac&bcCab|bcDab&bc17若有a=2,b=3,c=4,则表达式a= =3和a=3的值分别为A0和0B1和3C3和3D0和318表达式!(15)和!(4=3)的值分别为A1和0B0和0C0和1D1和1*19设a=4,计算表达式a=1,a+5,a+的值为A1B5C10D220设x=4,y=8,计算表达式y=(x+)*(-y)的值为A28B32C40D3521设有语句char a=72;则变量包含的字符数为A3B 2个C1D422设有说明语句:char a= 123abc;则变量a包含的字符数为A4B6C5D7 23下列叙述正确的是A赋值语句中的“=”是表示左边变量等于右边表达式B赋值语句中左边的变量值不一定等于右边表达式的值C赋值语句是由赋值表达式加上分号构成的Dx+=y;不是赋值语句24下列选项中,可以作为语言标识符的是A3stuB#stuCstu3Dstu325下列选项中,不可以作为语言标识符的是Anum Bturbo_cCprintDstudent326下列选项中,不可以作为C语言常量的是A”abc”B1/2CMD13.8e27下列选项中,正确的一组语句是Achar a;Bchar b;Cchar c;Dchar d; a=M; b=55; c=”M”; d=”55”;28已知字母b的ASCII码值为98,如ch为字符型变量,则表达式ch=b+5-2的值为AeBdC102D10029下列不是字符串常量的是A“1818B“aads”C_abdcD“a”30在C语言中,int、char和short三种类型数据所占用的内存是A均为2个字节B由用户定义C是任意的D由所用机器的机器字长决定31设int类型的数据长度为2个字节,则unsigned int类型数据的取值范围是A0至255B0至65535C-32768至32767D-256至25532以下是不正确的转义字符是ABC081D033在C语言中,char型数据在内存中的存储形式是A原码B补码CASCII码D反码*34若x为unsigned int变量,则执行以下语句后的x值为。x=65535;printf(“%dn”,x);A65535B1C-1D无定值35ex+SIN(x2)/(2a)的算法语言表达式是Aex+sin(x*x)/(2*a)Bexp(x)+sin(x*x)/(2*a)Cex+sin(x*x)/2*a DEXP(X)+SIN(X*X)/(2*A)36设x和y均为int型变量,则执行以下语句后的输出为x=15;y=5;printf(“%dn”,x%=(y%2);A0B1C6D1237设i=5;执行i*=i+;后,i的值为。A25B26C5D638设a的值为12,则执行表达式a+=a-=a后a的值为A0B12C10D2439若x为int型变量,则执行x=6;x+=x-=x*x; 语句后,x的值为A36B-60C60D-2440若有说明语句int i,j;且i的值为6,则执行语句j=(+i)+(i+);后j的值是A4B14C13D1541关系运算中用来表示等于、不等于、小于的符号分别为A=,=B=,=C=,D= =,!=,c|xy2) b-ac&xy2) a-7c|xy2)abD1) ac&xy2)ac43逻辑运算中的非、与、或的运算次序是A&,|,!B&,!,|C!,|,&D!,&,|44若w=1,x=2,y=3,z=4,则条件表达式wx?w:y2的值为A2B8C1D4*46定义:int x=5,y=1;表达式x&y=y?x|y:xy的值为。A1B0C4D547若有定义:int a=10,b=9,c=8;执行下面两条语句c=(a-=(b-5);c=(a%11)+(b=3);后,变量b的值为A9B4C3D248设x,y,z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为A52B32C16D449使条件表达式(year%4=0&year%100!=0)|(year%400=0)结果为假的值是A1950B2000C1996D200450已知int i=1,j;执行语句j=-i+;后,i 和j的值分别为A1,1B1,1C2,1D2,2二、阅读程序,写出程序的运行结果。1main( )char c1=6,c2=0;printf(“%c,%c,%dn”,c1,c2,c1-c2);A因程序格式不合法,提示出错信息。B6,0,6C6,0,7D6,0,52main( )int x=010,y=10,z=0x10;printf(“%d,%d,%dn”,x,y,z);A8,10,16B8,10,10C10,10,10D10,10,163main()int a,b,c;a=b=c=1; b=b+c; a=a+b; printf(“%dn”,(cb)?b:a); A3B1C2D44#include main()int x=1,y=1,z=1;y=y+z;x=x+y;z=x=y&y=x);A0B1C3D25#include #include main()int a=1, b=4, c=2;float x=5.5, y=9.0, z;z=(a+b)/c+sqrt(double)y)*1.2/c+x;printf(“%fn”,z);A9.300000B9.800000C12.900000D8.5000006main()int x=3; y=z=4; printf( “%dn”, z=y=x);A3B4C1D07main() intp=30; printf(%dn,(p/30?p/10:p%3); A10B1C3D08#includestdio.h main( ) int a,b,d=241;a=d/100%9;b=(-1)&(-1);printf(%d,%d,a,b);A0,0B2,0C0,1D2,19#includestdio.h main( ) int a,b,c;a=(b=(c=3)*5)*2-3;printf(a=%d,b=%d,c=%dn,a,b,c);Aa=27,b=30,c=3Ba=27,b=15,c=3Ca=27,b=15,c=15Da=30,b=30,c=310已知字符A的ACSII码值为65,以下程序的输出结果是main()char ch=B +32;printf(“%c %dn”, ch,ch);AB98Bb98C9898Dbb2.2基本输入输出函数一、选择题1scanf函数中的“格式控制字符串”后面必须是A变量地址B变量名C常量D表达式2printf函数中格式控制部分A是加上双引号(“”)的一个字符串B包括需要原样输出的普通字符,但不包括转义字符C包括格式说明符,且其必须与输出表列中的输出项的类型相符、个数相同DA和C是正确的。3下列语句正确的是Aprintf(%d%dm10,15);Bprintf(“%s”,a);Cprintf(“%c”,hello);D为变量real输入一个double类型的数据:scanf(“%f”,&real);4分析下列程序的运行结果。main()int x=12; printf(“%d,%o,%x,%u,”,x,x,x,x);A12,14,c,12B12,12,12,12C12,41,c,12D12,012,0x12,125main() int x=235;double y=3.1415926;printf(“x=%-6d,y=%14.5fn”,x,y);Ax=235 ,y= 3.14159Bx= 235,y= 3.14159Cx=235 ,y=3.141593Dx=235,y=3.141596已定义x为float型变量,x = 213.82631;printf(“%-4.2fn”,x);则输出为A输出格式描述符的域宽不够,不能输出 B213.82C213.83 D-213.827若有int a=123; float b=345.678; 函数printf(“a=%5dtb=%7.4fn”,a,b); 的输出结果是Aa= 123 b=345.6780Ba=123 b=345.6780Ca= 123 b=345.678D123 345.6788若有char ch=#; float b=345.678; 函数printf(“%ct%-8.2fn”,ch,a); 的输出结果是A# 345.678B#345.68C# 345.68D#345.6789若有float a,b,c;a=b=c=1.389; 则执行以下语句后的输出结果是printf(“a=%ftb=%ftc=%fn”,a*2,b+2.3,c); Aa=2.788 b=3.589 c=1.389Ba=2.788 b=3.589 c=1.389Ca=1.389 b=1.389 c=1.389Da=1.389 b=1.389 c=1.38910 对语句scanf(“%d,%c*%d”,&x,&y,&z) ;正确的输入是。A1 A 4B1,A,4C1,A*4D1,A*411#includemain()float r1=10.0, r2=20.0, r3=30.0;float i,r,u;u=120.0;r=r1*r2*r3/(r2*r3+r1*r3+r1*r2);i=u/r;printf(u=%7.2en,u);printf(i=%5.2f,i);可选运行结果:Au=120.00Bu=1.2e+02C1.2e+02Du=120.00 i=2.2e+01 i=22.00 i=2.2e+01 i=22.0012定义变量如下:int x;float y; 则以下正确的输入语句是。Ascanf(“%f%f”,&x,&y); Bscanf(“%f%d”,&x,&y);Cscanf(“%f%d”,&y,&x); Dscanf(“%5.2f%2d”,&x,&y);13putchar函数可以向终端输出一个A字符或字符变量的值 B字符串C实型变量 D整型变量的值14若有定义:int a,b;使用语句scanf(%d,%d,&a,&b);给变量a,b分别赋值10和20,则正确的输入格式为A10,20B1020C10回车20Da=10,b=102.3分支语句一、选择题1对C语言的if语句,当条件表达式为真时执行的语句是Aelse后的语句Bif后的语句C不执行语句D以上都不对2若分支结构的某个分支需要多个语句时,可以使用复合语句,所谓复合语句是指A一个语句 B用“”括起来的多个语句C两个语句D多个语句3判断char型变量cl是否为小写字母的最简单且正确的表达式为Aa=cl=a)&(cl=z) C(acl)D(cl=a)&(cl=z)4判断int型变量x是否为数字09的最简单且正确的表达式为A0=x=0)&(x=9) C(0x)D(x=0)&(xy);Bif(x!=y) scanf(“%d”,&x) else scanf(“%d”,&y);Cif(x=y) x+=y;Dif(xy) x+;y+;6若m、x、y、z均为int型变量,则执行下面语句后的m值是。m=1;x=2;y=3;z=4;m=(mx)?m:x;m=(my)?m:y;m=(m0|b0)&(a0|b0&b0C a+b0Da*b09设 int x=1, y=1;表达式(!x|y-)的值是A0 B1 C2 D-110以下关于if语句的错误描述是()A条件表达式可以是任意的表达式B条件表达式只能是关系表达式或逻辑表达式C条件表达式的括号不可以省略D与else配对的if语句是其之前最近的未配对的if语句二、阅读程序,写出程序的运行结果。1main() int x=1,a=0,b=0; switch(x) case 0: b+; case 1: a+; case 2: a+;b+; printf(“a=%d,b=%dn”,a,b); Aa=2,b=1 Ba=1,b=1 Ca=1,b=0 Da=2,b=22设有说明语句:int a=1,b=0;则执行以下语句后的输出为。switch(a)case 1:switch(b)case 0:printf(“*0*n);break;case 1:printf(“*1*n);break;case 2:printf(“*2*n);break;A*0*B*0*C*0*D有语法错误*2* *1*2*3#includemain()float g;int i;printf(“score?”);scanf(“%f”,&g);i=g/10;switch(i)case 0:case 1:case 2:case 3:case 4:case 5:printf(“fail”);break;case 6:case 7:printf(“passn”);break;case 8:printf(“goodn”);break;case 9:case 10:printf(“very good”);break;default:printf(“input error”);break;运行两次,输入数据分别89.5和79.5,可选运行结果:Avery goodBgoodCvery good Dgoodpass pass good pass4main()inta=1,b=3,c=5;if( c=a+b )printf(yesn);elseprintf(non);AyesBnoCyes回车noD无输出5#include main()int a,b,m,n;scanf (“%d%d”,&a,&b);m=1;n=1;if (a0) m=m+n;if (ab) n=2*m;else if (a= =b) n=5;else m=m+n;printf (“m=%d n=%dn”,m,n);输入为:-1 -2回车,输出结果为Am=2, n=1Bm=2 n=1C2 1 Dm=2 n=46main()float x=2.0,y; if(x0.0) y=0.0;elseif(x10.0) y=1.0/x; else y=1.0; printf(“%fn”,y); A0.000000 B0.250000 C0.500000 D1.000000 7main()int a=2,b=-1,c=2; if(b0) printf(“%dn”,a100); else printf(“%dn”,a5) printf(%dn,m); else printf(%dn,m- -); A7B6C5D4三、完善程序,在下列程序的 处填入适当的内容后,使其完整正确。110000元和10000元以上的货物,征税5%;5000元到10000元以下的货物,征税4%;1000元到5000元以下的货物,征税3%;1000元以下的货物免税,输入货款,求税金。#includemain()int x,i;float percent, tax;printf(“money?);scanf(“%d,&x); ( 1 ) switch(i)case 0: percent=0; break;case 1:case 2:case 3:case 4: percent=0.03; break;case 5:case 6:case 7: case 8:case 9: percent=0.04; break; ( 2 ) : percent=0.05; break;tax=x*percent;printf(money=%d tax=%f,x,tax);(1) Ai=xBi=x/1000Ci=x1000Di=x/10000(2) AelseBcaseCcase 10 Ddefault 2判断整数N能否同时被3和7整除,如是则打印“YES!”,否则打印“NO!”。#includemain()int n;scanf( 1 );if( 2 )printf(“YES!);elseprintf(“NO!);(1) A“%d”,&nB“%f”,&nC“%f”,nD“%d”, n (2) An%3=0&n%7=0B!(n%3)&!(n%7)Cn%3=0&n%7=0DB、C答案均正确2.4循环语句一、选择题1以下描述正确的是:A循环语句有4种类型,即for、while、do while和goto结构类型。Bbreak语句的功能是退出循环体,程序转至循环体下面的语句,一般用于switch、for、do while和while语句的中止。Ccontinue语句的功能是结束本次循环,跳过循环体中尚未执行的部分,进行下一次是否执行循环的判断,只能用于循环体中。其作用是把程序控制转到当前循环体结尾处,接着开始下一次循环。D上述三项均正确。2在C语言中与语句while(1);等价的for语句是Afor( 1 )Bfor(; ; )Cfor(; 0 ; ) Dfor( )3设a和b均为int型变量,则循环for(a=0,b=0;b!=123&a3;a+)scanf(“%d,”&b);中的scanf语句将最多执行的次数为A3B0C无限次 D44设i, j, k,均为int型变量,则执行完成以下for语句后,k的值是for(i=0,j=10;i=j;i+,j-)k=i+j;A20B5C10 D155设有说明int y=10; 则执行完以下语句后,y的值为doy-;while(-y);printf(“%dn”,y-);A0B-1C-2 D-36设n为整型变量,则循环语句for(n=0;n99) break;i+;Cfor(i=0;i9;i-)Dwhile(1) printf(“*”); printf(“”);8以下不正确的描述是A使用while和dowhile循环时,循环变量初始化应在循环语句之前。Bwhile循环是先判断表达式,后执行循环语句。Cdowhile和for循环均是先执行循环体语句,后判断表达式。Dfor,while和dowhile循环中的循环体均可以由空语句构成。9与while(!x)中的(!x)等价的条件是Ax=0Bx=1Cx!=1Dx!=010若x、y是int型变量,则执行以下语句后x的值是。for(y=1,x=1;y=10)break;if(x%2=1)x+=5;continue;x-=3;A1B6C7D1011若a、b为int型变量,则执行以下语句后b的值为。a=1;b=10;dob-=a;a+;while(b-0);A9B-2C-1D812若x、y均是int型变量,则执行以下语句后的结果是。for(x=1;x5;x+=2)for(y=1;y5;y+)printf(“%2d”,x*y);if(y=5)printf(“n”);A2 3 4B2 3 4 5C2 3 4 5 6 9 12D1 2 3 46 9 12 6 9 12 15 3 6 9 1213设已定义k为int型变量,则下面while循环体执行次数是 k = 10; while( k=0 ) k=k-1;A10次B无限次C0次D1次14C语言中循环语句有while,do-while,还有一个是AifBfor CswitchDbreak二、阅读程序,写出程序的运行结果。1#includestdio.h main( ) int n1,n2;scanf(%d,&n2);while(n2!=0)n1=n2%10;n2=n2/10;printf(%d,n1);若输入1259,则输出结果为:A1259B9521C1D122main( ) int j=0,k=0,a=0;while(j2) j+;a+;k=0; while(k=3) k+;if(k%2!=0)continue;a+; a+;printf(%dn,a); A4B5C6D73main( )int i;for(i=0;+i;i5) if(i=3)printf(%dn,+i);break;printf(%d,+i); A24B45C4D54main( ) int a,b;for(a=1,b=1;a=20)break;if(b%3=1) b+=3;continue; b-=5; printf(a=%dn,a); A19B22C16D175main( ) int i,a=0;for(i=1;i=5;i+) doi+;a+;while(i3); i+;printf(a=%d,i=%d,a,i);Aa=3,i=6Ba=3,i=7Ca=3,i=4Da=4,i=76main()int i,n;scanf(“%d”,&n);for (i=2;i=n/2;i+)if(n%i=0)printf (“%3d”,i);输入数据10,运行结果为:A1 2 5 10B1 2C2 5D25 1057main( ) int x=3;doprintf(%3d,x-=2);while(!(-x);A1B-2C1 -2D38main()int i=1, sum=0;while (i=10) sum+=i;i+;printf (“%dn”,sum);A45B10C55D119main()int i,n,sl,s;printf(“input n:n”);scanf(“%d”,&n);s1=0;s=0;for(i=1;i=n;i+)s1=s1+i;s=s+s1;printf(“s=%dn”,s);输入数据:5A35Bs=20Cs=10Ds=3510main()int even,odd ,i,n;printf(“input n: n);scanf(“%d,&n);even=odd=0;for(i=1;i=n;i+)if(!(i%2)even=even+i;elseodd=odd+i;printf(“even=%dtodd=%dn”,even,odd);输入数据:10Aeven=25 odd=30Beven=30 odd=25Ceven=30 odd=25Deven=20 odd=2511#includemain()int a,b,m,k,i,n=0;printf(“input a and b:n”);scanf(%d%d,&a,&b);for(m=a;m=b;m+)if(!(n%5)printf(“n);k=sqrt(m);for(i=2;i=k+1)printf(“%-5d,m);n+; 输入数据:100 110,结果为A100 102 104 106 108 110B100102104106108110C101 103 107 109D101103107109*12#include main()int s;while (s=getchar()!=n)switch (s-2)case 0:case 1: putchar (s+4);case 2: putchar (s+4);break;case 3: putchar (s+3);default: putchar (s+2); break;printf (“t”);输入数据是2473回车。A4 6 7B48 6 8 10C6 8 9 7D66 8 9 7713main()int i=1;while (i=15)if (+i%3!=2) continue;else printf (“%d”,i);printf (“n”);A2 5 8 11 14B2,5,8,11,14C2581114D以上均不对14main( ) int j;for(j=0;j10;j+) if (j%2=0) continue; printf(%d,j); A02468B13579C0123456789D无输出15main()int i,j,k;char space= ;for (i=1;i=4;i+)for (j=1;j=i;j+)printf (%c, space);for(k=0;k1e-6)B(item1e-6)C(fabs(item)1e-6)D(item1e-6)(2) An+=2;Bn-=2Cn+;Dn-;2打印乘法九九表。main()int i, j;for(i=1;i=9;i+)printf(“%4d”,i);printf(“n”);for(i=1;i=36;i+)printf(“%c,-);printf(“n);for ( (1) )for(j=1;j=9;j+) (2) ;printf(“n);(1) Ai=1; i9; i+Bi=1; i=9; i+Ci=0; i=9; i+Di=1; i=9; i+=2(2) Aprintf(“4d”,i*j)Bprintf(“%4d”,i*j)Cprintf(“%4d”i*j)Dprintf(“%4d”,j)3从0到360度,打印SIN(X)的值,间隔为0.1度。#includemain()int i;float x;for(i=0;i=3600;i+)x= (1) ;printf(sin(%6.1f)=%10.4fn,x, (2) );(1) Ai/10Bfloat(i)10CiD(float)i/10(2) ASIN(X)BSIN(x)Csin(x)D以上答案都不对4显示由1、2、3、4组成的全部四位数,并统计这种数的个数。main()int i,j,k,l,num,count;count=0;for(i=1; (1) ;i+)for(j=1;j=4;j+)for(k=1;k=4;k+)for(l=1;l=4;l+)num=1000*i+100*j+10*k+l; (2) ;printf(“%6d,num);if(!(count%5)printf(“n);printf(“the total number is :%dn,count);(1) Ai4Bi=4Ci=4Di=4(2) Acount=0Bcount+Ccount+=1DB、C均正确5判断闰年的方法是:年数不能被4整除的不是闰年;年数能被4整除的而不能被100整除的是闰年;能被100整除的而不能被400整除的不是闰年;能被400整除的是闰年,给出年号,判断是否是闰

温馨提示

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

评论

0/150

提交评论