第二章语法练习.docx
- 文档编号:6249670
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:30
- 大小:31.57KB
第二章语法练习.docx
《第二章语法练习.docx》由会员分享,可在线阅读,更多相关《第二章语法练习.docx(30页珍藏版)》请在冰豆网上搜索。
第二章语法练习
第二章 基本语法规则
2.1数据类型、运算符、表达式
一、选择题
1.C语言中确定数据存储的格式、范围与有效位数的依据是
A.数据正负 B.数据范围 C.数据类型 D.数据大小
2.一般说在C语言中字符型数据、整型数据、单精度浮点型及双精度浮点型数据的存储长度分别为
A.2、4、8、1 B.4、2、1、8 C.1、2、4、8 D.1、4、2、8
3.转义字符“\t”表示
A.横向跳格,即跳到下一个输出区 B.竖向跳格 C.退格 D.换行
4.以下叙述不正确的是
A.C语言中的常量分别为整型常量、浮点常量、字符常量、符号常量 B.整型常量在C语言中有十进制、八进制和十六进制等3种不同形式
C.C语言中,变量必须先定义后使用
D.变量被定义后,变量名是固定的,变量的值在程序运行过程中是不可以随时被改变的
5.以下叙述不正确的是
A.C语言中的字符常量是用一对单引号(' ')括起来的单个字符 B.字符串常量是用一对双引号(“ “)括起来的字符序列 C.字符型数据与整型数据之间不可以通用。
D.为了便于判断字符串是否结束,系统会自动在最后一个字符后面加上一个转义字符(„\0‟)
6.在赋值语句中用来将运算表达式的值赋给变量的“=”称为
A.等号 B.赋值运算符 C.关系运算符 D.逻辑运算符 7.设a=12,n=3,则执行表达式a%=n+3后a的值为
A.3 B.0 C.6 D.12
8.设,A=0,B=1表达式!
A&&B的值是
A.1 B.0 C.2 D.3
9.在16位PC机环境下,字符串“A”应占的字节数为
A.2 B.1 C.0 D.4
10.采用十进制数为表示方法,则077是 A.77 B.112 C.63 D.119
11.设x为float型变量,y为double型变量,a为int型变量,b为long型变量,c为char型变量,则表达式x+y*a/x+b/y+c计算结果的类型为
A.int B.long C.double D.char
12.设a,c为int型变量,进行a=(c=5,c+5,c/2)运算后的结果为
A.2 B.5 C.2.5 D.0
13.在C语言中,表示逻辑“真”和“假”的值分别是 A.0、1 B.1、2 C.1、0 D.2、1 14.C语言中表示a小于b或小于c的表达式为
A.a
C.ac&&b>c B.a>c||b>c
C.a>b||b>c D.a>b&&b>c 16.a和b中有一个小于c的表达式为
A.a 17.若有a=2,b=3,c=4,则表达式a= =3和a=3的值分别为 A.0和0 B.1和3 C.3和3 D.0和3 18.表达式! (1<3)||(2>5)和! (4<=8)&&(7>=3)的值分别为 A.1和0 B.0和0 C.0和1 D.1和1 19.设a=4,计算表达式a=1,a+5,a++的值为 A.1 B.5 C.10 D.2 20.设x=4,y=8,计算表达式y=(x++)*(--y)的值为 A.28 B.32 C.40 D.35 21.设有语句char a=`\72`;则变量包含的字符数为 A.3 B. 2个 C.1 D.4 22.设有说明语句: char a= '\123abc';则变量a包含的字符数为 A.4 B.6 C.5 D.7 23.下列叙述正确的是 A.赋值语句中的“=”是表示左边变量等于右边表达式 B.赋值语句中左边的变量值不一定等于右边表达式的值 C.赋值语句是由赋值表达式加上分号构成的 D.x+=y;不是赋值语句 24.下列选项中,可以作为C语言标识符的是 A.3stu B.#stu C.stu3 D.stu.3 25.下列选项中,不可以作为C语言标识符的是 A.num B.turbo_c C.print D.student3 26.下列选项中,不可以作为C语言常量的是 A.”abc” B.1/2 C.„M‟ D.13.8e 27.下列选项中,正确的一组语句是 A.char a; B.char b; C.char c; D.char d; a=‟M‟; b=‟55‟; c=”M”; d=”55”; 28.已知字母‟b‟的ASCII码值为98,如ch为字符型变量,则表达式ch=‟b‟+‟5‟-„2‟的值为 A.e B.d C.102 D.100 29.下列不是字符串常量的是 A.“1818" B.“aads” C._abdc D.“a” 30.在C语言中,int、char和short三种类型数据所占用的内存是 A.均为2个字节 B.由用户定义 C.是任意的 D.由所用机器的机器字长决定 A.均为2个字节 B.由用户定义 C.是任意的 D.由所用机器的机器字长决定 31.设int类型的数据长度为2个字节,则unsigned int类型数据的取值范围是 A.0至255 B.0至65535 C.-32768至32767 D.-256至255 32.以下是不正确的转义字符是 A.„\\‟ B.„\‟‟ C.„\081‟ D.„\0‟ 33.在C语言中,char型数据在内存中的存储形式是 A.原码 B.补码 C.ASCII码 D.反码 *34.若x为unsigned int变量,则执行以下语句后的x值为。 x=65535;printf(“%d\n”,x); A.65535 B.1 C.-1 D.无定值 35.ex+SIN(x2)/(2a)的算法语言表达式是 A.ex+sin(x*x)/(2*a) B.exp(x)+sin(x*x)/(2*a) C.ex+sin(x*x)/2*a D.EXP(X)+SIN(X*X)/(2*A) 36.设x和y均为int型变量,则执行以下语句后的输出为 x=15;y=5;printf(“%d\n”,x%=(y%2)); A.0 B.1 C.6 D.12 37.设i=5;执行i*=i++;后,i的值为。 A.25 B.26 C.5 D.6 38.设a的值为12,则执行表达式a+=a-=a后a的值为 A.0 B.12 C.10 D.24 39.若x为int型变量,则执行x=6; x+=x-=x*x; 语句后,x的值为 A.36 B.-60 C.60 D.-24 40.若有说明语句int i,j;且i的值为6,则执行语句j=(++i)+(i++);后j的值是 A.4 B.14 C.13 D.15 41.关系运算中用来表示等于、不等于、小于的符号分别为 41.关系运算中用来表示等于、不等于、小于的符号分别为 A.=,=< B.==,=< C.=,<>,< D.= =,! =,< 42.设a=2, b=7.5, c=-3.6,以下哪两个逻辑表达式的值相同 A.1) „a‟>„c‟||„x‟<„y‟ 2) b-a<=c/2&&c=-3.6 B.1) „a‟>„c‟&&„x‟<„y‟ 2) a-7 C.1) „a‟>„c‟||„x‟>„y‟ 2)„a‟<„c‟&&a>b D.1) „a‟>„c‟&&„x‟>„y‟ 2)„a‟<„c‟||a>c 43.逻辑运算中的非、与、或的运算次序是 A.&&,||,! B.&&,! ,|| C.! ||,&& D.! &&,|| 44.若w=1,x=2,y=3,z=4,则条件表达式w w: y y: z的结果为。 A.4 B.3 C.2 D.1 *45.表达式0x08>>2的值为 A.2 B.8 C.1 D.4 *45.表达式0x08>>2的值为 A.2 B.8 C.1 D.4 *46.定义: int x=5,y=1;表达式x&y==y? x|y: x∧y的值为。 A.1 B.0 C.4 D.5 47.若有定义: int a=10,b=9,c=8;执行下面两条语句c=(a-=(b-5));c=(a%11)+(b=3);后,变量b的值为 A.9 B.4 C.3 D.2 48.设x,y,z和k都是int型变量,则执行表达式: x=(y=4,z=16,k=32)后,x的值为 A.52 B.32 C.16 D.4 49.使条件表达式(year%4==0&&year%100! =0)||(year%400==0)结果为假的值是 A.1950 B.2000 C.1996 D.2004 50.已知int i=1,j;执行语句j=-i++;后,i 和j的值分别为 A.1,1 B.1,-1 C.2,-1 D.2,-2 二、阅读程序,写出程序的运行结果。 1. main( ) { char c1=‟6‟,c2=‟0‟; printf(“%c,%c,%d\n”,c1,c2,c1-c2); } A.因程序格式不合法,提示出错信息。 B.6,0,6 C.6,0,7 D.6,0,5 2. main( ) { int x=010,y=10,z=0x10; printf(“%d,%d,%d\n”,x,y,z); } A.8,10,16 B.8,10,10 C.10,10,10 D.10,10,16 3. main() { int a,b,c; a=b=c=1; b=b+c; a=a+b; printf(“%d\n”,(c b: a); } A.3 B.1 C.2 D.4 4. #include main() { int x=1,y=1,z=1; y=y+z; x=x+y; z=x y: x; printf (“%d\n”,z>=y&&y>=x); } A.0 B.1 C.3 D.2 5. #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(“%f\n”,z); } A.9.300000 B.9.800000 C.12.900000 D.8.500000 6.main() { int x=3; y=z=4; printf( “%d\n”, z>=y>=x); } A.3 B.4 C.1 D.0 7.main() { int p=30; printf("%d\n",(p/3>0 ? p/10: p%3)); } A.10 B.1 C.3 D.0 8.#include"stdio.h" main( ) { int a,b,d=241; a=d/100%9; b=(-1)&&(-1); printf("%d,%d",a,b); } A.0,0 B.2,0 C.0,1 D.2,1 9.#include"stdio.h" main( ) { int a,b,c; a=(b=(c=3)*5)*2-3; printf("a=%d,b=%d,c=%d\n",a,b,c); } A.a=27,b=30,c=3 B.a=27,b=15,c=3 C.a=27,b=15,c=15 D.a=30,b=30,c=3 10.已知字符A的ACSII码值为65,以下程序的输出结果是 main() { char ch=‟B‟ +32;; printf(“%c %d\n”, ch,ch); } A.B98 B.b98 C.9898 D.bb 2.2基本输入输出函数 一、选择题 1.scanf函数中的“格式控制字符串”后面必须是 A.变量地址 B.变量名 C.常量 D.表达式 2.printf函数中格式控制部分 A.是加上双引号(“”)的一个字符串 B.包括需要原样输出的普通字符,但不包括转义字符 C.包括格式说明符,且其必须与输出表列中的输出项的类型相符、个数相同 D.A和C是正确的。 3.下列语句正确的是 A.printf(%d%dm10,15); B.printf(“%s”,‟a‟); C.printf(“%c”,‟hello‟); D.为变量real输入一个double类型的数据: scanf(“%f”,&real); 4.分析下列程序的运行结果。 main() { int x=12; printf(“%d,%o,%x,%u,”,x,x,x,x); } A.12,14,c,12 B.12,12,12,12 C.12,41,c,12 D.12,012,0x12,12 5.main() { int x=235; double y=3.1415926; printf(“x=%-6d,y=%14.5f\n”,x,y); } A.x=235 ,y= 3.14159 B.x= 235,y= 3.14159 C.x=235 ,y=3.141593 D.x=235,y=3.14159 6.已定义x为float型变量,x = 213.82631;printf(“%-4.2f\n”,x);则输出为 A.输出格式描述符的域宽不够,不能输出 B.213.82 C.213.83 D.-213.82 7.若有int a=123; float b=345.678; 函数printf(“a=%5d\tb=%7.4f\n”,a,b); 的输出结果是 A.a= 123 b=345.6780 B.a=123 b=345.6780 C.a= 123 b=345.678 D.123 345.678 8.若有char ch=‟#‟; float b=345.678; 函数printf(“%c\t%-8.2f\n”,ch,a); 的输出结果是 A.# 345.678 B.#345.68 C.# 345.68 D.#345.678 9.若有float a,b,c;a=b=c=1.389; 则执行以下语句后的输出结果是 printf(“a=%f\tb=%f\tc=%f\n”,a*2,b+2.3,c); A.a=2.788 b=3.589 c=1.389 B.a=2.788 b=3.589 c=1.389 C.a=1.389 b=1.389 c=1.389 D.a=1.389 b=1.389 c=1.389 10.对语句scanf(“%d,%c*%d”,&x,&y,&z) 正确的输入 是。 A.1 A 4 B.1,A,4 C.1,A*4 D.1,„A‟*4 11.#include main() { 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.2e\n",u); printf("i=%5.2f",i); } 可选运行结果: A.u=120.00 B.u=1.2e+02 C.1.2e+02 D.u=120.00 i=2.2e+01 i=22.00 i=2.2e+01 i=22.00 12.定义变量如下: int x;float y; 则以下正确的输入语句是。 A.scanf(“%f%f”,&x,&y); B.scanf(“%f%d”,&x,&y); C.scanf(“%f%d”,&y,&x); D.scanf(“%5.2f%2d”,&x,&y); 13.putchar函数可以向终端输出一个 A.字符或字符变量的值 B.字符串 C.实型变量 D.整型变量的值 14.若有定义: int a,b;使用语句scanf("%d,%d",&a,&b);给变量a,b分别赋值 10和20,则正确的输入格式为 A.10,20 B.10 20 C.10<回车>20 D.a=10,b=10 2.3分支语句 一、选择题 1.对C语言的if语句,当条件表达式为真时执行的语句是 A.else后的语句 B.if后的语句 C.不执行语句 D.以上都不对 2.若分支结构的某个分支需要多个语句时,可以使用复合语句,所谓复合语句是指 A.一个语句 B.用“{}”括起来的多个语句 C.两个语句 D.多个语句 3.判断char型变量cl是否为小写字母的最简单且正确的表达式为 A.a‟<=cl<=„z‟ B.(cl>=a)&&(cl<=z) C.(„a‟ 4.判断int型变量x是否为数字0~9的最简单且正确的表达式为 A.„0‟<=x<=„9‟ B.(x>=0)&&(x<=9) C.(„0‟ 5.以下不正确的if语句为 A.if(x>y); B.if(x! =y) scanf(“%d”,&x) else scanf(“%d”,&y); C.if(x==y) x+=y; D.if(x 6.若m、x、y、z均为int型变量,则执行下面语句后的m值是。 m=1;x=2;y=3;z=4; m=(m m: x; m=(m m: y; m=(m m: z; A.1 B.4 C.2 D.3 7.以下关于switch语句和break语句的描述中,正确的是。 A.在switch语句中必须使用break语句。 B.break语句只能用于switch语句中 。 C.在switch语句中,可以根据需要使用或不使用break语句。 D.break语句是switch语句的一部分。 8.能正确表示a和b同时为正或同时为负的逻辑表达式是 A.(a>0||b>0)&&(a<0||b<0) B.a>0&&b>0 C. a+b>0 D.a*b>0 9.设 int x=1, y=1;表达式(! x||y--)的值是 A.0 B.1 C.2 D.-1 10.以下关于if语句的错误描述是( ) A.条件表达式可以是任意的表达式 B.条件表达式只能是关系表达式或逻辑表达式 C.条件表达式的括号不可以省略 D.与else配对的if语句是其之前最近的未配对的if语句 二、阅读程序,写出程序的运行结果。 1.main() { int x=1,a=0,b=0; switch(x) { case 0: b++; case 1: a++; case 2: a++;b++; } printf(“a=%d,b=%d\n”,a,b); } A.a=2,b=1 B.a=1,b=1 C.a=1,b=0 D.a=2,b=2 2.设有说明语句: 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.#include main() { 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(“pass\n”); break; case 8: printf(“good\n”); break; case 9: case 10: printf(“very good”); break; default: printf(“input error”); break; } } 运行两次,输入数据分别89.5和79.5,可选运行结果: A.very good B.good C.very good D.good pass pass good pass 4.main() { int a=1,b=3,c=5; if( c=a+b ) printf("yes\n"); else printf("no\n"); } A.yes B.no C.yes<回车〉no D.无输出 5.#include main() { int a,b,m,n; scanf (“%d%d”,&a,&b); m=1; n=1; if (a>0) m=m+n; if (a if (a= =b) n=5; else m=m+n; printf (“m=%d n=%d\n”,m,n); } 输入为: -1 -2《回车》,输出结果为 A.m=2, n=1 B.m=2 n=1 C.2 1 D.m=2 n=4 6.main() { float x=2.0,y; if(x<0.0) y=0.0; else if(x<10.0) y=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第二 语法 练习
![提示](https://static.bdocx.com/images/bang_tan.gif)