c语言考前冲刺教学文案.docx
- 文档编号:23622719
- 上传时间:2023-05-19
- 格式:DOCX
- 页数:22
- 大小:32.68KB
c语言考前冲刺教学文案.docx
《c语言考前冲刺教学文案.docx》由会员分享,可在线阅读,更多相关《c语言考前冲刺教学文案.docx(22页珍藏版)》请在冰豆网上搜索。
c语言考前冲刺教学文案
二、语法基础
14.C语言的下列运算符中,优先级最高的运算符是(A)。
A.++B.+=C.||D.!
=
课本P42
优先级别从低到高为:
+=、||、!
=、++
15.(D)为正确的用户标识符。
A.StructB.5fC._f0.6D._for
合法用户标识符是有字母、数字、下划线构成,且不能以数字开头。
另外C语言关键字(课本P301)不能作为用户标识符。
AStruct为关键字B5f数字开头C_f0.6含有非法字符.
所以答案选D
16.C语言基本数据类型包括(B)。
A.整型、实型、逻辑型B.整型、实型、字符型
C.整型、字符型、逻辑型D.整型、实型、字符串型
课本P21
实型即浮点型
17.(A)为合法的常量。
A.52686LB.E-7C.1.2E-2.1D.'E12'
课本P223.2常量
A正确,52686L为长整型常量
以指数形式aEn表示实数时,a和n都不能省略,且n必须是整数。
所以B和C都错
D一个字符加单引号是字符常量,1个字或多个字符加双引号是字符串常量,所以D错
18.(C)为正确的变量名。
A.-k15B.IntC.k_5D.k.jeep
见15题解释
19.(D)为正确的字符常量。
A.''\\''B."\24m"C."c"D.'M'
见17题解释
A,C表示错误,应该加单引号表示字符常量。
B是字符串常量。
20.(C)为非法的字符串常量。
A.""B."s"C.'efg'D."26'62"
1个字或多个字符加双引号是字符串常量,空格字符也是一个字符
21.C语言整型数据在内存中的代码是用(C)表示的。
A.原码B.反码C.补码D.BCD码
22.以下选项中,合法的实型常数是(B)。
A.E-3B..2E1C.1E.5D.1.5E
以指数形式aEn表示实数时,a和n都不能省略,且n必须是整数
23.下列C语言合法的数据类型关键字是(B)。
A.DoubleB.UnsignedC.IntegerD.Char
这题答案错误,C语言大小写是有区别的,A,B,C,D都错,
double、unsigned、char才是合法的数据类型关键字
24.TurboC中,int型数据占用的字节数(B)。
A.由用户自己定义
B.为2个字节
C.是任意的
D.等于所用计算机的字长
见课本P28表3-2
25.TurboC中,基本数据类型存储空间长度的排列顺序是(A)。
A.char B.char=int C.char D.char=int=longint 见课本P28表3-2 不同的编译系统规定基本数据类型存储空间长度是不同的,TurboC规定: char=1个字节 int=2个字节 long=4个字节 float=4个字节 double=8个字节 A.char 26.以下叙述中正确的是(A)。 A.字符常量用一对单撇号''作为单个字符的定界符 B.字符常量和字符串常量一样,都是用双引号括起来 C.字符常量存储时,自动在字符后加一个字符结束符号'\0' D.字符常量和字符串常量所分配的内存空间大小是一样的 B错,一个字符加单引号是字符常量,1个字或多个字符加双引号是字符串常量。 C错,应该是字符串常量存储时,自动在字符后加一个字符结束符号'\0' D错,字符常量和字符串常量所分配的内存空间大小不是一样的 27.已知'A'的ASCII码的十进制值为65,'0'的ASCII码的十进制值为48,则以下程序运行结果是(A)。 main() {charch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d,%c\n",ch1,ch2); } A.67,DB.C,DC.C,68D.67,68 ch1='A'+'5'-'3'='A'+2所以ch1以%d格式输出是67,以%c输出是C ch2='A'+'6'-'3'='A'+3所以ch2以%d格式输出是68,以%c输出是D 所以答案选A 28.若有定义intm=6;则正确的赋值表达式是(C)。 A.m*7B.m*5=8C.m-=m*6D.double(-m) A、D不是赋值表达式,且D语法错误,应该改为(double)(-m) 赋值运算符左边不能是常量或表达式,B=左边是表达式,所以B错误 29.语句k=(m=5,n=++m);运行之后,变量k、m、n的值依次为(D)。 A.5,5,6B.5,6,5C.6,6,5D.6,6,6 n=++m即m先自增1,再赋值给n,所以m=6,n=6 逗号表达式的值等于其中最后一个表达式的值,所以 k=(m=5,n=++m)=(5,6)=6 30.语句x=5%4+(4/5);运行之后,整型变量x的值为(A)。 A.1B.2C.3D.0 x=5%4+(4/5)=1+0=1 31.(B)语句符合C语言语法。 A.floatz=28,intx,y=18; B.intx=25,y=25,z=25; C.intx=25: y=25: z=25; D.intx+y=z; 32.若有定义inta,x;则语句a=(x=8,x+8);运行后,变量a、x的值依次为(A)。 A.16,8B.8,8C.16,16D.8,16 x=8 a=(x=8,x+8)=(8,16)=16 33.若变量m,n,t已定义且赋予初值,则正确的表达式是(B)。 A.m=m+1=t-nB.m=6+n+t,m++C.m=m\2D.m=int(5.6%4) 赋值运算符左边不能是表达式,所以A错 \不是运算符,/才是除法运算符,所以C错 D有2处错误: 1.模运算%,左右操作数只能是整型数据, 2..强制类型转换的一般形式: (类型名)表达式;详细见课本P47 34.若有定义: inta,b;floatx,则以下不符合C语言语法的表达式是(A)。 A.x%7B.x/=a-bC.a=b=2D.x=(float)a/b 模运算%,左右操作数只能是整型数据,所以A错 35.若有定义: intm=4,n=5;floatk;,则以下符合C语言语法的表达式是(B)。 A.(m+n)*=kB.m=(n==5)C.k=float(n)/mD.n%2.5 赋值运算符左边不能是表达式,所以A错 强制类型转换的一般形式: (类型名)表达式;详细见课本P47,所以C错 模运算%,左右操作数只能是整型数据,所以D错 36.若有定义: inta=6;则语句a*=a-=a/=3;运行后,a的值是(B)。 A.10B.0C.34D.24 1.a/=3→a=a/3=6/3=2 2.a-=2→a=a-2=2-2=0 3.a*=0;→a=a*0=0*0=0 37.下面关于C语言变量的叙述中,错误的是(A)。 A.可以用define关键字定义变量 B.变量名用大小写字母是有区别的 C.C语言允许不同基本类型的变量之间进行混合运算 D.C语言中要求对变量作强制定义的主要理由是: 便于确定类型和分配空间 可以用define关键字定义常量,不可以用define关键字定义变量 38.若有定义: inta=5,b=2;则表达式b=(a! =5)的值为(B)。 A.5B.0C.3D.2 b=(a! =5)=0 39.逗号表达式(a=15,a*4),a+15的值为(B)。 A.15B.30C.75D.60 (a=15,a*4),a+15→(15,60),30 逗号表达式(15,60),30的值为30 40.下列语句中,符合C语言语法的赋值语句是(C)。 A.a=7+b+c=a+7;B.a=7+b++=a+7; C.a=7+b,b++,a+7;D.a=7=b,c=a+7; 赋值运算符左边不能是表达式或常量,所以A,C,D都错 41.(A)是正确的叙述。 A.(int)5.0/6与5/6等价B.'G'与"G"等价 C.5/6与5.0/6.0等价D.++3与4等价 B'G'是字符常量,占1个字节;"G"是字符串常量,占2个字节,所以B错 C5/6=05.0/6.0≈0.83所以C错 D++3语法错误,常量不能进行++运算 42.下面叙述中,错误的是(D)。 A.C语言中的表达式求值,是按其运算符的优先级先高后低的次序进行 B.自增与自减运算符的结合方向为“自右至左” C.关系运算符的优先级低于算术运算符 D.C语言算术运算符不包含模运算符“%” C语言算术运算符有5个: +-*/% 43.(C)是正确的叙述。 A.表达式"m"+"M"是合法的 B.若变量x,y为整型,则(a+b)++是合法的 C.强制类型转换运算的优先级高于算术运算 D.表达式'm'*'n'是不合法的 字符串常量不能进行算术运算,所以A错 ++运算操作对象不能是表达式或常量,所以B错 字符常量可以进行算术运算,’m’*’n’合法,所以D错 44.若有定义inti=1,j=9;则表达式(++j)*(i--)的值为(B)。 A.0B.10C.9D.8 ++jj先自增1,再参与其他运算 i--i先参与其他运算,再自减1 所以(++j)*(i--)=10*1=10 45.设整型变量x为7,使整型变量y不为2的表达式是(A)。 A.y=x%3B.y=x/3 C.y=(++x)/3D.y=8-(--x) y=x%3=7%3=1 46.若已定义inta=3,b=2,c=1;则语句++a||++b&&++c;运行后b的值为(D)。 A.0B.3C.1D.2 这题主要考逻辑运算中的“不完全计算”规则,详细见课本P51 &&优先级别高于||所以++a||++b&&++c等价于++a||(++b&&++c) a=3→4||(++b&&++c) 不管(++b&&++c)是真是假,我们都可以断定4||(++b&&++c)为真。 根据“不完全计算”规则,不再执行++b&&++c。 所以运行后b值不变 47.若有定义: inti=5,j=4;则语句i/=++j;运行后i的值为(B)。 A.10B.1C.1.25D.0 ++jj先自增1,变为5,再参与其他运算,所以i/=5即i=i/5=5/5=1 48.若已定义: inta=2,b=2;则表达式(a+(b++),b)的值是(B)。 A.2B.3C.4D.6 b++先参与其他运算,再自增1 所以(a+(b++),b)=(2+2,3)=3 49.若有定义: intr,x=245;则语句r=x/100%9;运行后r的值为(A)。 A.2B.5C.0D.27 除法/和取模%优先级别相同,结合方向从左到右(详细见课本P42) 所以r=x/100%9=(x/100)%9=(245/100)%9=2%9=2 50.若已定义: inti=6,t;则语句t=3+(--i);运行后t的值为(C)。 A.9B.7C.8D.5 --i先自减1,再参与其他运算 所以t=3+(--i)=3+5=8 51.C语言的%运算符按运算对象的个数属(C)。 A.单目运算符B.四目运算符C.双目运算符D.三目运算符 52.若已定义: inta=5,b=9,c=6;则语句b++;++c;a=b-c;运行后a的值为(B)。 A.5B.3C.2D.4 执行b++;后b值变为10,执行++c;后c值变为7 所以a=b-c=10-7=3 53.以下程序运行时,若从键盘输入5,则输出结果是(D)。 main() {inta; scanf("%d",&a); if(a++>5)printf("%d\n",a); elseprintf("%d\n",a--); } A.7B.4C.5D.6 a++>5a参与其他运算再自增1,即a先与5比较大小,然后a自增1,变为6 所以5>5为假,执行elseprintf("%d\n",a--);先输出a,即6,然后a再自减1,a值变为5。 54.若已定义floatx;要从键盘输入数据36.582给变量x,则应选用(B)语句。 A.scanf("%2.3f",&x);B.scanf("%6f",&x); C.scanf("%6.3f",&x);D.scanf("%5.3f",&x); scanf函数不能指定输入小数位数 见课本P307-308 Scanf函数格式字符串的一半形式为: %[*][输入数据宽度][长度]类型 例如 longb; scanf(“%3ld”,&b);/*宽度为3,长度为l,类型为d*/ printf(“%ld”,b); 输入: 1234567输出: 123 55.若已定义doubley;拟从键盘输入一个值赋给变量y,则正确的函数调用是(C)。 A.scanf("%d",&y);B.scanf("%7.2f",&y); C.scanf("%lf",&y);D.scanf("%ld",&y); scanf函数不能指定输入小数位数 double------%lf float--------%d unsigned------------%u无符号十进制整数格式输出 long---------%ld int----------%d 八进制-----%o 十六进制-------%x char(字符变量)-------%c 字符串-----------%s 56.已有定义chars;使用scanf()函数输入一个字符给变量s,不正确的函数调用是(D)。 A.scanf("%c",&s);B.scanf("%d",&s); C.scanf("%u",&s);D.scanf("%lf",&s); 字符在内存中以ascii码的形式存储的,所以字符可以以%d,%u,%c的格式输入输出 57.函数putchar()的功能是向终端输出(A)。 A.一个字符B.多个字符 C.一个关系表达式D.一个实型变量值 详细见课本P34 58.若已定义inta=11;执行以下语句后的输出结果是(B)。 printf("a=%d,a=%o,a=%x\n",a,a,a); A.a=11,a=11,a=bB.a=11,a=13,a=b C.a=11,a=13,a=cD.a=11,a=12,a=13 见55题解释 59.若有定义intm=4321,n=123,k=21;语句printf("%4d+%3d+%2d",m,n,k);执行后的输出结果是(C)。 A.4321432143211231231232121B.432112321 C.4321+123+21D.432+123+021 Printf中的格式控制字符串中字符分三种: 格式字符、转义字符、普通字符 其中普通字符+原样输出。 60.已有如下定义和输入语句, charc1,c2;intx; scanf("%c%d%c",&c1,&x,&c2); 若要求x、c1、c2的值分别为9、'K'和'H',正确的数据输入是(A)。 A.K9HB.K9HC.K9HD.9KH 字符在内存中以ascii码的形式存储的,所以字符可以以%d,%u,%c的格式输入输出 字符ascii码值见课本300 61.以下程序段的运行结果是(A)。 inta=1; printf("%d,%d,%d\n",a,++a,a++); A.3,3,1B.1,2,2C.1,2,3D.3,2,1 Printf函数中变量列表中如果有多个变量,计算顺序是从右到左,输出顺序是从左到右 62.以下程序的运行结果是(D)。 voidmain() {inta=65; charc='A'; printf("%d+%c=%d\n",a,c,a+c); } A.A+A=AAB.65+A=65AC.65+65=130D.65+A=130 字符以ascii码值参与算术运算。 字符ascii码值见课本300 63.若已定义: intx=7;floaty=7.0;以下语句中能输出正确值的是(B)。 A.printf("%d%d",x,y);B.printf("%d%.3f",x,y); C.printf("%.3f%.3f",x,y);D.printf("%.3f%d",x,y); 见55题解释 64.putchar函数可以向终端输出一个(A)。 A.字符或字符型变量值B.整型变量表达式值 C.实型变量值D.字符串 详细见课本P34 65.若已定义: inta=6;floatb=1.5;要求输出形式为: 6*1.50=9.00,应选用的正确输出语句是(B)。 A.printf("%d*%f=%f",a,b,a*b);B.printf("%d*%.2f=%.2f",a,b,a*b); C.printf("%d*%d=%.2f",a,b,a*b);D.printf("%.2f*%.2f=%.2f",a,b,a*b); int--------------%d float----------%f %.02f以两位小数格式输出float变量值 *是普通字符原样输出 66.有以下程序: main() {intc; while((c=getchar())! ='\n') {switch(c-'2') {case0: case1: putchar(c+4); case2: putchar(c+4);break; case3: putchar(c+3); default: putchar(c+2);break; } } printf("\n"); } 当输入: 247<回车>,程序的输出结果是(B)。 A.689B.6689C.66778D.66887 c=getchar()作用是从键盘输入流中获取一个字符,然后赋值给c. switch语句见课本P76. 第一次循环: c=’2’→c-‘2’=0 所以从case0: 入口开始往下执行,一直语句break;才结束switch语句。 即执行以下语句: case0: case1: putchar(c+4); case2: putchar(c+4);break; 输出: 66 第二次循环: c=’4’→c-‘2’=2 所以从case2: 入口开始往下执行,一直语句break;才结束switch语句。 即执行以下语句: case2: putchar(c+4);break; 输出: 8 第二次循环: c=’7’→c-‘2’=5 因为没有case值与5匹配,所以执行default分支。 即执行以下语句: default: putchar(c+2);break; 输出: 9 c=’\0’,结束循环。 最后输出结果: 6689 67.若已定义intx=5,y=9,z;语句z=x>=y;运行后z的值为(C)。 A.1B..t.C.0D..f. 见课本P42,关系运算符优先级别高于赋值运算符,所以>=优先级别高于= z=x>=y;等价于z=(x>=y);所以z=(x>=y)=(5>=9)=0 68.判定逻辑值为“真”的最准确叙述是(C)。 A.1B.大于0的数C.非0的整数D.非0的数 这个标准答案有错,正确应该选D 69.若已定义intx=-16,y=-12,z;语句z=x<=y;运行后z的值为(B)。 A..t.B.1C..f.D.0 见67题解释: z=(x<=y)=(-16<=-12)=1 70.能正确表示数学关系式100≤s<300的表达式为(C)。 A.(s>=100)&(s<300)B.100<=s<300 C.(s>=100)&&(s<300)D.(s>=100)and(s<300) 见课本P51 71.若定义inta=2,b=3;则表达式! a||b的值为(B)。 A.0B.1C.2D.3 ! 优先级别高于|| 所以! a||b等价于(! a)||b,即0||3,所以值为1 72.若定义inta=-5,b=-8,c=-12;则表达式a>=b||b A.变量i的值B.变量j的值C.0D.1 关系运算符优先级别高于逻辑运算符,所以a>=b||b 即(-5>=-8)||(-8<-12)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 考前 冲刺 教学 文案