c语言选择题解题思路.docx

上传人:b****7 文档编号:26639537 上传时间:2023-06-21 格式:DOCX 页数:59 大小:47.28KB
下载 相关 举报
c语言选择题解题思路.docx_第1页
第1页 / 共59页
c语言选择题解题思路.docx_第2页
第2页 / 共59页
c语言选择题解题思路.docx_第3页
第3页 / 共59页
c语言选择题解题思路.docx_第4页
第4页 / 共59页
c语言选择题解题思路.docx_第5页
第5页 / 共59页
点击查看更多>>
下载资源
资源描述

c语言选择题解题思路.docx

《c语言选择题解题思路.docx》由会员分享,可在线阅读,更多相关《c语言选择题解题思路.docx(59页珍藏版)》请在冰豆网上搜索。

c语言选择题解题思路.docx

c语言选择题解题思路

语法基础

12.正确的用户标识符是(B)

A.3f标识符不能以数字开头

B._for

C.struct不能使用关键字

D._f.5标识符只能包括字母,数字和下划线,不能包括.

14.正确的常量(D)

A.E-5指数记数法e前必须有数字

B.1E5.1指数记数法e后的数字必须是整数

C.’a12’字符常量是单引号括起来的单个字符

D.32766L

15.正确的变量名(D)

A.a.bee标识符只能包括字母,数字和下划线,不能包括.

B.-p11标识符只能包括字母,数字和下划线,不能包括-

C.int不能使用关键字

D.p_11

16.正确的字符常量(C)

A.“c”字符常量应由单引号括起来

B.’\\’’非法字符常量

C.’W’

D.“\32a’”字符常量应由单引号括起来

17.不正确的字符串常量(A)

A.’abc’字符串常量应由双引号括起来

B.“12’12”

C.“0”

D.“”

19.正确的浮点数(B)

A.e3指数记数法e前必须有数字

B..62C语言中,小数点前如果是0可以省略

C.2e4.5指数记数法e后的数字必须是整数

D.123是整型,不是浮点数

20.不属于C语言关键字的是(B)

A.continue结束本次循环

B.integer

C.static静态变量声明,内部函数声明

D.signed有符号

23.正确的赋值表达式是(A)

A.a-=(a*3)

B.double(-a)强制类型转换时,类型名应加括号,(double)(-a)为正确表达式

C.a*3该表达式正确,但是是算术表达式,不是赋值表达式

D.a*4=3赋值号左边只能是变量,不能是表达式

24.x=(a=3,b=++a)运行后,x,a,b的值依次为(C)

A.3,3,4B.4,4,3C.4,4,4D.3,4,3

x=(a=3,b=++a(执行后a=4,b=4))=4

25.a=(3/4)+3%2运行后a的值为(B)

A.0B.1C.2D.3

(3/4)+3%2=0+1=1

26.符合C语言语法的语句是(C)

A.inta+b=c;赋值号左边只能是变量,不能是表达式

B.inta=12:

b=12:

c=12;同类型变量应使用逗号隔开

C.inta=12,b=12,c=12;

D.inta,b=12,floatc=21;不同类型变量的定义必须分为两条语句,用分号隔开

27.若有定义:

intx,a;则语句x=(a=3,a+1)运行后,x,a的值依次为(C)

A.3,3B.4,4C.4,3D.3,4

x=(a=3,a+1(执行后a=3))=4

28.符合C语言语法的表达式是()

A.a=8+b+c,a++

B.a=a^3

C.int(12.3%4)强制类型转换时,类型名应加括号,(int)(12%4)为正确表达式

D.a=a+1=c+b赋值号左边只能是变量,不能是表达式

29.若为定义:

inta,b;doublex;则不符合C语言语法的表达式是(A)

A.x%(-3)%运算符两个运算对象必须是整型,x为double型不符合语法规则

B.a+=-2

C.a=b=2

D.x=a+b

30.若有定义:

intx=2,y=3;floatI;符合C语言语法的表达式是(B

A.x=x*3=2赋值号左边只能是变量,不能是表达式

B.x=(y==1)

C.i=float(x)强制类型转换时,类型名应加括号,(float)(x)为正确表达式

D.i%(-3)%运算符两个运算对象必须是整型,i为float型不符合语法规则

31.若有定义:

intx;则语句x=(2*3)+6%5;运行后,x的值是(B)

A.8B.7C.6D.6.5

(2*3)+6%5=6+1=7

32.错误的是(A)

A.可以用const关键字定义变量const用于定义常量

B.在C程序中,SUM和sum是不同的变量

C.变量名必须由字母或下划线开头

D.变量的类型确定了变量的取值范围

33.若有定义:

intx=5,y=6;则表达式x=(y==6)的值为(B)

A.5B.1C.6D.0

x=(y==6)=x=(6==6)=x=1=1

34.下面叙述正确的是(B)

A.2/3与2.0/3.0等价2/3是整数除,值为0,2.0/3.0是实数除,值为0.666…

B.(int)2.0/3与2/3等价

C.++5与6等价++5是错误的C表达式

D.’A’与“A”等价‘A’是字符常量,“A”是字符串,不等价

36.叙述正确的是(A)

A.强制类型转换运算的优先级高于算术

B.若a和b是整型变量,(a+b)++是合法的(a+b)++是错误的C表达式

C.‘A’*‘B’是不合法的合法,等价于65*66

D.“A”+“B”是合法的不合法,字符串表示地址,地址不能进行+运算

37.若有定义:

inti=1,j=5;则表达式(++j)*(i--)的值为(C)

A.1B.0C.6D.7

(++j)*(i--)=6*1=6

38.设整型变量a为5,使b不为2的表达式是(C)

A.b=(++a)/3(++a)的值为6,(++a)/3的值2

B.b=6-(--a)(--a)的值为4,6-(--a)的值为2

C.b=a%2a%2的值为1

D.b=a/2a/2的值为2

39.若有定义:

inta=1,b=2,c=3;则语句++a||++b&&++c;运行后b的值为(C)

A.1B.0C.2D.3

++a||++b&&++c=2||++b&&++c=1,因此b,c不变

40.若有定义:

inti,j;则表达式(i=2,j=5,i++,i+j++)的值是(B)

A.7B.8C.9D.10

(i=2,j=5,i++(执行后i=3),i+j++)=8

41.若有定义:

inta,b;则表达式(a=2,b=5,a*2,b++,a+b)的值是(B)

A.7B.8C.9D.10

(a=2,b=5,a*2(执行后a=2),b++(执行后b=6),a+b)=8

42.若有定义:

inti=2,j=5;则表达式(i+1,j+1,(++i)+(j--))的值为(A)

A.8B.6C.7D.5

(i+1(执行后i=2),j+1(执行后j=5),(++i)+(j--))=8

43.若有定义:

inti=3,k;则语句k=(i--)+(i--);运行后k的值为(C)

A.4B.5C.6D.7

先使用再-,因此k=(i--)+(i--)=3+3=6

45.若己定义:

floatm;拟从键盘输入135.78这一数据变量给变量m,则应选用的语句是(D)

A.scanf(“%5.2f”,&m);scanf中不能使用精度

B.scanf(“%3.2f”,&m);

C.scanf(“%6.2f”,&m);

D.scanf(“%6f”,&m);

46.己知doublea;使用scanf函数输入一个数值给变量a,正确的函数调用是(D)

A.scanf(“%ld”,&a);%ld,应输入longint型

B.scanf(“%d”,&a);%d,应输入int型

C.scanf(“%7.2f”,&a);%f,应输入float型,该选项中.2错误,不能使用精度

D.scanf(“%lf”,&a);

47.己知chara;使用scanf()函数输入一个字符给变量a,不正确的函数调用是(B)

A.scanf(“%d”,&a);

B.scanf(“%lf”,&a);

C.scanf(“%c”,&a);

D.scanf(“%u”,&a);

字符变量以ASCII码存储于内存,ASCII码为数值,可使用整型输入,因此%d,%u也适用于字符型变量

49.以下程序段运行后的输出结果是(D)

intk=11;

printf(“k=%d,k=%o,k=%x\n”,k,k,k);

A.k=11,k=13,k=c

B.k=11,k=12,k=13

C.k=11,k=11,k=b

D.k=11,k=13,k=b

%d为十进制,因此输出10,%o为八进制,因此输出13,%x为十六进制,因此输出b

50.若有定义:

intx=1234,y=123,z=12;则主事句printf(“%4d+%3d+%2d”,x,y,z);运行后的输出结果为(D)

A.123412312

B.12341234123412341231231231212

C.1234+1234+1234

D.1234+123+12

%4d,以4的宽度输出x,即输出1234,+号原样输出,%3d,以3的宽度输出y,即输出123,+号原样输出,%2d以2的宽度输出z,即输出12。

因此输出结果为1234+123+12

51.inta;charc1,c2;

scanf(“%d%c%c”,&a,&c1,&c2);

若要求a,c1,c2的值分别为10,A,B,正确的数据输入是(A)。

A.10AB

B.10AB

C.10AB

D.10AB

%c会接收空白字符(如空格,TAB和回车),因此输入10后应输入AB,不需要加任何空格

52.inta=0,b=0,c=0;

if(a&&++b)c++;

printf(“%d,%d\n”,b,c);

以上程序运行结果是(A)

A.0,0B.1,2C.2,2D.1,2

逻辑表达式a&&++b中,先执行a为0即为假,由于不完全计算,&&左边为假即得整个表达式为假,因此++b没有执行。

if的表达式为假,因此c++不执行。

b,c无变化,运行结果为0,0

53.以下程序的运行结果是(D)

inta=65;

charc=’A’;

printf(“%x,%d”,a,c);

A.65,aB.41,aC.65,65D.41,65

%x以十六进制输出变量a中的值,即十进制65转为十六进制41后输出

%d以十进制输出变量c中的值,即‘A’转为十进制65(65即‘A’的ASCII码值)后输出。

54.若己定义:

inta=5;floatb=63.72;以下语句中能输出正确值的是(B)

A.printf(“%d%d”,a,b);

B.printf(“%d%.2f”,a,b);

C.printf(“%.2f%.2f”,a,b);

D.printf(“%.2f%d”,a,b);

a为整型,应使用格式说明符%d,b为float型,应使用格式说明符%.2f

55.运行以下程序段时编译出错,其原因是(B)

charc1=‘8’,c2=‘2008’;

printf(“%c,%d\n”,c1,c2);

A.c2是字符变量,只能赋以字符常量,不能赋以字符串常量(‘2008’不是字符串常量)

B.字符串要用“2008”表示,而‘2008’不是字符串表示

C.‘2008’只能赋值给字符数组(‘2008’是错误表达式)

D.字符变量不能用%d格式输出(可以使用%d输出)

56.若己定义:

inta=3,b=15,c;则语句c=a>b;运行后c的值为(B)

A.1B.0C..t.D..f.

a>b(3>15)的值为假,假即为0,因此c=a>b,c=0

58.若己定义:

inta=-36,b=-30,c;则语句c=a

A.1B.t.C.0D.f.

a

59.能正确表示数学关系式800>=y>=500的C语言表达式是(A)

A.(y<=800)&&(y>=500)

B.(y<=800)AND(y>=500)没有AND这个关键字

C.800>=y>=500此表达式等价于(800>=y)>=500

D.(y<=800)&(y>=500)&为按位与,应为逻辑与&&

60.若有定义:

intx=3,y=4;则表达式!

x||y的值为(A)

A.1B.0C.3D.4

!

x||y=!

3||4=0||1=1

61.若有定义:

inti=7.j=8;则表达式i>=j||i

A.1B.变量i的值C.0D.变量j的值

i>=j||i=8||7<8=0||1=1

62.若希望当a的值为奇数时,表达式的值为真,a的值为偶数时,表达式的值为假。

则不能满足要求的表达式是(C)

A.a%2==1B.!

(a%2==0)C.!

(a%2)D.a%2

可对每个表达式代入某个特定的数进行验证,假若代入奇数3

A中3%2==1为真,符合题目要求

B中!

(3%2==0)为真,符合题目要求

C中!

(3%2)为假,不符合题目要求

D中3%2为真,符合题目要求

63.若有定义:

intx=3,y=4,z=5;则值为0的表达式是(D)

A.‘x’&&‘y’120&&121=1

B.x<=y3<=4=1

C.x||y+z&&y-z3||y+z&&y-z=1

D.!

((x

z||1)!

((x

z||1)=!

1=0

64.若有定义:

inta=5,b=2,c=1;则表达式a-b

A.0B.1C.2D.-1

5-2<1||2==1=0||0=0

65.C语言中,能正确表示条件10

A.1010||x<20C.x>10&&<20D.(x>10)&&(x<20)

66.以下运算符优先级最低的是(D)P408

A.<>D.|

67.己知doublea=5.2;则正确的赋值表达式是(A)

A.a+=a-=(a=4)*(a=3)

B.a=a*3=2赋值号左边只能是变量,不能是表达式

C.a%3%运算符两个运算对象必须是整型,a为double型不符合语法规则

D.a=double(-3)强制类型转换时,类型名应加括号,(double)(-3)为正确表达式

68.己知chara=‘R’;则正确的赋值表达式是(A)

A.a=(a++)%4

B.a+2=3赋值号左边只能是变量,不能是表达式

C.a+=256—256—为错误的C表达式

D.a=‘\078’错误C字符常量

69.己知inta=‘R’;则正确的表达式是(A)

A.a%10

B.a=int(3e2)强制类型转换时,类型名应加括号,(double)(-3)为正确表达式

C.2*a=a++赋值号左边只能是变量,不能是表达式

D.a=a+a=a+3赋值号左边只能是变量,不能是表达式

70.设有语句floatx=3.0,y=3.0;使x值为6.0的表达式是(D)

A.x*=y-4x=x*(y-4)=3*(-1)=-3

B.x*=yx=x*y=9

C.x-=y+4x=x-(y+4)=3-7=-4

D.x+=yx=x+y=6

71.若有定义:

floatx=3.5;intz=8;则表达式x+z%3/4的值为(B)

A.3.75B.3.5C.3D.4

x+z%3/4=3.5+8%3/4=3.5+2/4=3.5+0=3.5

72.设有语句intx=3,y=3,a=1,b=2;表达式(x=a>b)&&(y=b>a)的值是(D)

A.8B.1C.5D.0

(x=a>b)&&(y=b>a)=(x=1>2)&&(y=2>1)=(x=0)&&(y=1)=0&&1=0

73.若有定义:

inta=2,b=3;floatx=3.5,y=2.5;则表达式(float)(a+b)/2+(int)x%(int)y的值是(A)。

A.3.5B.3.0C.2.5D.2.0

(float)(a+b)/2=(float)5/2=5.0/2=2.5

(int)x%(int)y=(int)3.5%(int)2.5=3%2=1

74.若有定义:

intb=7;floata=2.5,c=4.7;表达式a+(b/2*(int)(a+c)/2)%4的值是(C)

A.2.5B.3.5C.4.5D5.5

a+(b/2*(int)(a+c)/2)%4=a+(7/2*(int)(a+c)/2)%4=a+(3*(int)(a+c)/2)%4=

a+(3*7/2)%4=a+(21/2)%4=a+(10)%4=2.5+2=4.5

75.若有定义:

inta=6,b=2;charc1=‘a’,c2=‘b’;则表达式a+b%5+c2-c1的值是(C)

A.7B.8C.9D.表达式错误

a+b%5+c2-c1=a+2%5+c2-c1=6+2+98-97=9

控制结构

78.输入10,输出结果是(D)

inta;

scanf(“%d”,&a);//输入后a的值为10

if(a++>10)//比较10>10为假,比较完后执行a++,执行后a的值为11

printf(“%d\n”,a);

else

printf(“%d\n”,++a);//先执行++a,得出a的值为12后输出

A.2B.11C.3D.12

79.以下程序的运行结果是(B)

intx,y=1,z;

z=-1;

if(z==0)//z==0值为假

z=-z;

else

x=y>0?

3:

5;//y>0?

3:

5,y>0值为真,取3

printf(“%d\n”,x);

A.-1B.3C.1D.5

80.对于整型变量x,下述if语句与赋值语句:

x=x%2==0?

1:

0;不等价(B)

A.if(x%2!

=0)x=0;elsex=1;//代入奇数3,x取0,等价

B.if(x%2)x=1;elsex=0;//代入奇数3,x取1,不等价

C.if(x%2==0)x=1;elsex=0;

D.if(x%2==1)x=0;elsex=1;

x=x%2==0?

1:

0x是偶数时取1,x是奇数时取0

81.以下程序段运行的结果是(C)

inta,b,c,x;

a=b=c=0;x=15;

if(!

a)x--;//!

a=!

0=1为真,执行x--,执行后x=14

elseif(b);

if(c)x=3;//c值为0即为假

else

x+=4;//执行后x=18

printf(“%d\n”,x);

A.15B,17C.18D.19

82.若有定义:

inta=1,b=2,c=3;则执行以下程序段后a,b,c的值分别为(D)

if(a

{c=a;//执行后c的值为1

a=b;//执行后a的值为2

b=c;}//执行后b的值为1

A.a=1,b=2,c=3;

B.a=2,b=3,c=1

C.a=2,b=3,c=3

D.a=2,b=1,c=1

83.以下程序段运行后变量a的值为(D)

intx=6,y=5;

inta;

a=(--x==y++)?

x:

y+1;

A.0B.1C.6D.5

(--x==y++)?

x:

y+1=(5==5++)?

x:

y+1=1?

5:

y+1=5

84.以下程序的运行结果是(C)

intn=‘e’;

switch(n--)//使用再-,根据‘e’寻找入口为default

{

default:

printf(“error”);//输出error

case‘a’:

case‘b’:

printf(“good”);break;//输出good后执行break,跳出switch

case‘c’:

printf(“pass”);

case‘d’:

printf(“warn”);

}

A.errorB.goodC.errorgoodD.warn

85.以下程序的运行结果是(C)

intn=‘c’;

switch(n++)//

{

default:

printf(“error”);

case‘a’:

case‘b’:

printf(“good”);break;

case‘c’:

printf(“pass”);//输出pass

case‘d’:

printf(“warn”);//输出warn

}

A.passB.warnC.passwarnD.error

86.以下程序的运行结果是(D)

intn=5;

if(n++>=6)//先使用再加,5>=6为假,接着执行n++,执行完n的值为6

printf(“%d\n”,n);

else

printf(“%d\n”,++n);//执行++n后n的值为7后输出

A.4B.5C.6D.7

88.若有定义:

inta=1,b=2,c=3;运行后c的值为(D)

if(a>b)//1>2为假

c=a*b;

else

c=a-b;//c=1-2=-1

A.2B.0C.1D.-1

89.若有定义:

intx;以下不会产生死循环的是()死循环:

循环条件永远为真

A.for(;(x=getchar())!

=’\n’;);

B.while

(1){x++;}

C.for(i=10;;i++);

D.for(;;x+=1);

91.count+=2运行次数为(B)

intI,j,count=0;

for(i=1;i<=4;i++)

for(j=1;j<=i;j++)

{count+=2;printf(“%d”,count);}

A.8B.10C.16D.20

93.循环体运行次数(B)

inti=10,x;

for(;i<10;i++)x=x+i;

A.10B.0C.1D.无限

i<10=10<10循环条件为假,不进入循环体,因此循环体运行次数为0

94.变量n的值(D)

inti=1,n=1;

for(;i<3;i++){continue;n=n+i;}

continue语句作用为结束本次循环,继续下次循环,n=n+i未执行,n值不变

95.输出结果(A)

inti;

for(i=0;i<3;i++)

switch(i)

{case1:

printf(“%d”,i);

case2:

printf(“%d”,i);

default:

printf(“%d”,i);}

A.011122B.01222C.012020D.120

运行步骤:

i

0switch(0)入口为default,执行printf(“%d”,i);即输出0

1switch

(1)入口为case1,执行printf(“%d”,i);printf(“%d”,i);printf(“%d”,i);即输出111

2switch

(2)入口为case2,执行printf(“%d”,i);printf(“%d”,i);即输出22

96.运行结果(C)

intsum=0,item=0;

while(item<5)

{item++

sum+=item;

if(sum>=6)break;}

printf(“%d\n”,sum);

A.10B.15C.6D.7

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

当前位置:首页 > 初中教育 > 语文

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

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