c语言考前冲刺.docx

上传人:b****6 文档编号:9055488 上传时间:2023-02-03 格式:DOCX 页数:22 大小:33.99KB
下载 相关 举报
c语言考前冲刺.docx_第1页
第1页 / 共22页
c语言考前冲刺.docx_第2页
第2页 / 共22页
c语言考前冲刺.docx_第3页
第3页 / 共22页
c语言考前冲刺.docx_第4页
第4页 / 共22页
c语言考前冲刺.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

c语言考前冲刺.docx

《c语言考前冲刺.docx》由会员分享,可在线阅读,更多相关《c语言考前冲刺.docx(22页珍藏版)》请在冰豆网上搜索。

c语言考前冲刺.docx

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=b)||(b

即(-5>=-8)||(-8<-12)的值为1

73.下列表达式

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1