C语言基本语法规则练习题.docx

上传人:b****4 文档编号:3738507 上传时间:2022-11-25 格式:DOCX 页数:34 大小:35.67KB
下载 相关 举报
C语言基本语法规则练习题.docx_第1页
第1页 / 共34页
C语言基本语法规则练习题.docx_第2页
第2页 / 共34页
C语言基本语法规则练习题.docx_第3页
第3页 / 共34页
C语言基本语法规则练习题.docx_第4页
第4页 / 共34页
C语言基本语法规则练习题.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

C语言基本语法规则练习题.docx

《C语言基本语法规则练习题.docx》由会员分享,可在线阅读,更多相关《C语言基本语法规则练习题.docx(34页珍藏版)》请在冰豆网上搜索。

C语言基本语法规则练习题.docx

C语言基本语法规则练习题

第二章基本语法规则

2.1数据类型、运算符、表达式

一、选择题

1.C语言中确定数据存储的格式、范围与有效位数的依据是

A.数据正负B.数据范围C.数据类型D.数据大小

2.一般说在C语言中字符型数据、整型数据、单精度浮点型及双精度浮点型数据的存储长度分别为

A.2、4、8、1B.4、2、1、8

C.1、2、4、8D.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.3B.0C.6D.12

8.设,A=0,B=1表达式!

A&&B的值是

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

9.在16位PC机环境下,字符串“A”应占的字节数为

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

10.采用十进制数为表示方法,则077是

A.77B.112C.63D.119

11.设x为float型变量,y为double型变量,a为int型变量,b为long型变量,c为char型变量,则表达式x+y*a/x+b/y+c计算结果的类型为

A.intB.longC.doubleD.char

12.设a,c为int型变量,进行a=(c=5,c+5,c/2)运算后的结果为

A.2B.5C.2.5D.0

13.在C语言中,表示逻辑“真”和“假”的值分别是

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

14.C语言中表示a小于b或小于c的表达式为

A.a

C.a

15.C语言中表示a和b都大于c的表达式为

A.a>c&&b>cB.a>c||b>c

C.a>b||b>cD.a>b&&b>c

16.a和b中有一个小于c的表达式为

A.a

C.a

17.若有a=2,b=3,c=4,则表达式a==3和a=3的值分别为

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

18.表达式!

(1<3)||(2>5)和!

(4<=8)&&(7>=3)的值分别为

A.1和0B.0和0C.0和1D.1和1

*19.设a=4,计算表达式a=1,a+5,a++的值为

A.1B.5C.10D.2

20.设x=4,y=8,计算表达式y=(x++)*(--y)的值为

A.28B.32C.40D.35

23.下列叙述正确的是

A.赋值语句中的“=”是表示左边变量等于右边表达式

B.赋值语句中左边的变量值不一定等于右边表达式的值

C.赋值语句是由赋值表达式加上分号构成的

D.x+=y;不是赋值语句

24.下列选项中,可以作为C语言标识符的是

A.3stuB.#stuC.stu3D.stu.3

25.下列选项中,不可以作为C语言标识符的是

A.numB.turbo_cC.printD.student3

26.下列选项中,不可以作为C语言常量的是

A.”abc”B.1/2C.‘M’D.13.8e

27.下列选项中,正确的一组语句是

A.chara;B.charb;C.charc;D.chard;

a=’M’;b=’55’;c=”M”;d=”55”;

28.已知字母’b’的ASCII码值为98,如ch为字符型变量,则表达式ch=’b’+’5’-‘2’的值为

A.eB.dC.102D.100

29.下列不是字符串常量的是

A.“1818"B.“aads”C._abdcD.“a”

30.在C语言中,int、char和short三种类型数据所占用的内存是

A.均为2个字节B.由用户定义

C.是任意的D.由所用机器的机器字长决定

31.设int类型的数据长度为2个字节,则unsignedint类型数据的取值范围是

A.0至255B.0至65535

C.-32768至32767D.-256至255

36.设x和y均为int型变量,则执行以下语句后的输出为

x=15;y=5;printf(“%d\n”,x%=(y%2));

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

37.设i=5;执行i*=i++;后,i的值为。

A.25B.26C.5D.6

38.设a的值为12,则执行表达式a+=a-=a后a的值为

A.0B.12C.10D.24

39.若x为int型变量,则执行x=6;x+=x-=x*x;语句后,x的值为

A.36B.-60C.60D.-24

40.若有说明语句inti,j;且i的值为6,则执行语句j=(++i)+(i++);后j的值是

A.4B.14C.13D.15

41.关系运算中用来表示等于、不等于、小于的符号分别为

A.=,=,

=,<

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.4B.3C.2D.1

*45.表达式0x08>>2的值为

A.2B.8C.1D.4

*46.定义:

intx=5,y=1;表达式x&y==y?

x|y:

x∧y的值为。

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

47.若有定义:

inta=10,b=9,c=8;执行下面两条语句c=(a-=(b-5));c=(a%11)+(b=3);后,变量b的值为

A.9B.4C.3D.2

48.设x,y,z和k都是int型变量,则执行表达式:

x=(y=4,z=16,k=32)后,x的值为

A.52B.32C.16D.4

49.使条件表达式(year%4==0&&year%100!

=0)||(year%400==0)结果为假的值是

A.1950B.2000C.1996D.2004

50.已知inti=1,j;执行语句j=-i++;后,i和j的值分别为

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

二、阅读程序,写出程序的运行结果。

1.main()

{charc1=’6’,c2=’0’;

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

}

A.因程序格式不合法,提示出错信息。

B.6,0,6

C.6,0,7D.6,0,5

2.main()

{intx=010,y=10,z=0x10;

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

}

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

3.main()

{inta,b,c;

a=b=c=1;

b=b+c;

a=a+b;

printf(“%d\n”,(c

b:

a);

}

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

4.#include

main()

{intx=1,y=1,z=1;

y=y+z;

x=x+y;

z=x

y:

x;

printf(“%d\n”,z>=y&&y>=x);

}

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

5.#include

#include

main()

{inta=1,b=4,c=2;

floatx=5.5,y=9.0,z;

z=(a+b)/c+sqrt((double)y)*1.2/c+x;

printf(“%f\n”,z);

}

A.9.300000B.9.800000C.12.900000D.8.500000

6.main()

{intx=3;y=z=4;

printf(“%d\n”,z>=y>=x);

}

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

7.main()

{int p=30;

printf("%d\n",(p/3>0 ?

 p/10:

p%3));

}

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

8.#include"stdio.h"

main()

{inta,b,d=241;

a=d/100%9;

b=(-1)&&(-1);

printf("%d,%d",a,b);

}

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

9.#include"stdio.h"

main()

{inta,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=3B.a=27,b=15,c=3C.a=27,b=15,c=15D.a=30,b=30,c=3

10.已知字符A的ACSII码值为65,以下程序的输出结果是

main()

{charch=’B’+32;;

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

}

A.B98B.b98C.9898D.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()

{intx=12;

printf(“%d,%o,%x,%u,”,x,x,x,x);

}

A.12,14,c,12B.12,12,12,12

C.12,41,c,12D.12,012,0x12,12

5.main()

{intx=235;

doubley=3.1415926;

printf(“x=%-6d,y=%14.5f\n”,x,y);

}

A.x=235,y=3.14159B.x=235,y=3.14159

C.x=235,y=3.141593D.x=235,y=3.14159

6.已定义x为float型变量,x=213.82631;printf(“%-4.2f\n”,x);则输出为

A.输出格式描述符的域宽不够,不能输出B.213.82

C.213.83D.-213.82

7.若有inta=123;floatb=345.678;函数printf(“a=%5d\tb=%7.4f\n”,a,b);的输出结果是

A.a=123b=345.6780B.a=123b=345.6780

C.a=123b=345.678D.123345.678

8.若有charch=’#’;floatb=345.678;函数printf(“%c\t%-8.2f\n”,ch,a);的输出结果是

A.#345.678B.#345.68

C.#345.68D.#345.678

9.若有floata,b,c;a=b=c=1.389;则执行以下语句后的输出结果是

printf(“a=%f\tb=%f\tc=%f\n”,a*2,b+2.3,c);

A.a=2.788b=3.589c=1.389B.a=2.788b=3.589c=1.389

C.a=1.389b=1.389c=1.389D.a=1.389b=1.389c=1.389

10.对语句scanf(“%d,%c*%d”,&x,&y,&z);正确的输入是。

A.1A4B.1,A,4C.1,A*4D.1,‘A’*4

11.#include

main()

{floatr1=10.0,r2=20.0,r3=30.0;

floati,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.00B.u=1.2e+02C.1.2e+02D.u=120.00

i=2.2e+01i=22.00i=2.2e+01i=22.00

12.定义变量如下:

intx;floaty;则以下正确的输入语句是。

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.若有定义:

inta,b;使用语句scanf("%d,%d",&a,&b);给变量a,b分别赋值10和20,则正确的输入格式为

A.10,20B.10 20

C.10<回车>20D.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’cl)D.(cl>=‘a’)&&(cl<=‘z’)

4.判断int型变量x是否为数字0~9的最简单且正确的表达式为

A.‘0’<=x<=‘9’B.(x>=0)&&(x<=9)

C.(‘0’x)D.(x>=‘0’)&&(x<=‘9’)

5.以下不正确的if语句为

A.if(x>y);B.if(x!

=y)scanf(“%d”,&x)elsescanf(“%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.1B.4C.2D.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>0D.a*b>0

9.设intx=1,y=1;表达式(!

x||y--)的值是

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

10.以下关于if语句的错误描述是()

A.条件表达式可以是任意的表达式

B.条件表达式只能是关系表达式或逻辑表达式

C.条件表达式的括号不可以省略

D.与else配对的if语句是其之前最近的未配对的if语句

二、阅读程序,写出程序的运行结果。

1.main()

{intx=1,a=0,b=0;

switch(x)

{case0:

b++;

case1:

a++;

case2:

a++;b++;

}

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

}

A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2

2.设有说明语句:

inta=1,b=0;则执行以下语句后的输出为。

switch(a)

{case1:

switch(b)

{case0:

printf(“**0**\n");break;

case1:

printf(“**1**\n");break;

}

case2:

printf(“**2**\n");break;

}

A.**0**B.**0**C.**0**D.有语法错误

**2****1**

**2**

3.#include

main()

{floatg;

inti;

printf(“score?

”);

scanf(“%f”,&g);

i=g/10;

switch(i)

{case0:

case1:

case2:

case3:

case4:

case5:

printf(“fail”);break;

case6:

case7:

printf(“pass\n”);break;

case8:

printf(“good\n”);break;

case9:

case10:

printf(“verygood”);break;

default:

printf(“inputerror”);break;

}

}

运行两次,输入数据分别89.5和79.5,可选运行结果:

A.verygoodB.goodC.verygoodD.good

passpassgoodpass

4.main()

{int a=1,b=3,c=5;

if(c=a+b) printf("yes\n");

else printf("no\n");

}

A.yesB.noC.yes<回车〉noD.无输出

5.#include

main()

{inta,b,m,n;

scanf(“%d%d”,&a,&b);

m=1;n=1;

if(a>0)m=m+n;

if(a

elseif(a==b)n=5;

elsem=m+n;

printf(“m=%dn=%d\n”,m,n);

}

输入为:

-1-2《回车》,输出结果为

A.m=2,n=1B.m=2n=1C.21D.m=2n=4

6.main()

{floatx=2.0,y;

if(x<0.0)y=0.0;

elseif(x<10.0)y=1.0/x;

elsey=1.0;

printf(“%f\n”,y);

}

A.0.000000B.0.250000C.0.500000D.1.000000

7.main()

{inta=2,b=-1,c=2;

if(b<0);c=0;

elsec++;

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

}

A.0B.1C.2D.有语法错误

8.main()

{inta=100;

if(a>0)printf(“%d\n”,a>100);

elseprintf(“%d\n”,a<=100);;

}

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

9.main()

{intn=0,m=1,x=2;

if(!

n)x-=1;

if(m)x-=2;

if(x)x-=3;

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

}

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

10.main()

{intm=5;

if(m++>5)printf("%d\n",m);

elseprintf("%d\n",m--);

}

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

三、完善程序,在下列程序的处填入适当的内容后,使其完整正确。

1.10000元和10000元以上的货物,征税5%;5000元到10000元以下的货物,征税4%;1000元到5000元以下的货物,征税3%;1000元以下的货物免税,输入货款,求税金。

#include

main()

{intx,i;

floatpercent,tax;

printf(“money?

");

scanf(“%d",&x);

(1)

switch(i)

{case0:

percent=0;break;

case1:

case2:

case3:

case4:

percent=0.03;break

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

当前位置:首页 > 求职职场 > 简历

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

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