知识点一 数据类型、运算符及表达式模拟练习(答案版)

更新时间:2023-03-17 04:39:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

模拟练习一(数据类型、运算符及表达式)※基础知识及数据类型

1.一个C语言程序是由( )组成。(☆基础知识☆) A.主程序 B.子程序 C. 函数 D.过程 2.一个C程序总是从( )开始执行。(☆基础知识☆)

A.程序的第一条执行语句 B.主函数 C.子程序 D.主程序 3.一个C语言程序( )(☆基础知识☆)

A.应当只包含一到多个主函数 B.应当由两个主函数 C.只能有一个主函数 D.可以没有主函数 4.C语言规定:在一个源程序中,main函数的位置 ( )(☆基础知识☆)

A.必须在最开始 B.必须在系统调用的库函数的后面 C.可以任意 D.必须在最后 5.C语言程序中,main()函数的特征是( )(☆基础知识☆)

A.可独立运行的程序 B.必不可少的函数 C.最先执行的函数 D.具有前述三特征的函数 6.以下叙述中正确的是( )(☆基础知识☆) A.C语言的源程序不必通过编译就可以直接运行

B.C语言中的每条可执行语句最终都将被转换成二进制的机器指令 C.C源程序经编译形成的二进制代码可以直接运行 D.C语言中的函数不可以单独进行编辑

7.下面4组常量,合法的一组C语言常量是( )(◆常量◆)

A. O 0x10 2E+9 ‘a’ ‘ ’ ’ B. 10 10L E1 ‘a’ ‘\\0’

C. 0.01 “\\”” “\\”” ‘t’ ‘\\t’ D. 0.1 3E+0 “\\”” ‘tt’ 012 8.下面不正确的字符串常量是( )(◆常量◆) A. ‘abc’ B. “12’ 12” C. “w” D. “ “ 9.以下选项中不正确的实型常量是( )(◆常量◆)

A. 2.6E-1 B.0.8324e C.-78.8745 D.456e-2 10.以下正确的实型常量是( )(◆常量◆)

A.2 B.3.12e0.8 C.e8 D.5.6E-2

11.以下所列的C语言常量中,错误的是( )(◆常量◆) A.0xFF B.1.2e0.5 C.2L D.’\\72’

12.下列字符序列中,可用作C语言用户标识符的是( )(◆标识符◆) A.enum B._123 C.%as D.#age 13.对下列标识符或表达形式,正确的是( )(◆标识符◆) A.M.john B.char C.3.2e0.8 D.e8

14.下面标识符中,不合法的用户标识符是( )(◆标识符◆) A . _char B . char C. ab D. a_b 15.下面标识符中,合法的用户标识符是( )(◆标识符◆) A. P_sa B. U-3 C.2a D. static 16.下面标识符中,合法的用户标识符为( )(◆标识符◆) A.p#Ad B.12a C.char D._int 17.下列语句中正确的是( )(◆数据类型◆)

A.int s_1[]=”012345”; B.char s[3]={‘1’,’2’,’3’,’4’}; C.char *string=”hello!”; D.ch=”how are you?”; 18.设int类型的数据长度为2个字节,unsigned int类型数据的取值范围是( )(◆数据类型◆) A.-32768~32767 B. 0~255 C.0~65535 D.130

19.在C语言中,int, char和short int三种类型变量所占用的内存大小是( ) (◆数据类型◆) A.均为2个字节 B.由用户自己定义 C.由所用机器的字长决定 D.是任意的 20.若有以下类型说明语句: (◆数据类型◆) char a; int b; float c; short int d;

则表达式(c*b+a)*d的结果类型是( ) A.char B.int C.double D.float 21.若已定义 x和y为float 类型,则表达式:x=2,y=x+3/2的值是( )(◆数据类型◆) A.4 B. 3 C.3.0 D.3.5

22.若变量a是int类型,并执行了语句:a=’A’+1.6;,则正确的叙述是( )(◆数据类型◆) A.a的值是字符C B.a的值是浮点型

C.不允许字符型和浮点型相加 D.a的值是字符’A’的ASCII值加上1 23.以下选择中不属于C语言的类型的是( )(◆数据类型◆)

A.signedshortint B.unsignedlong int C.unsignedint D.longshort 24.下列程序(◆转义字符◆) void main()

{printf(“_ab_c\\t_de\\rf\\tg\\n”);printf(“h\\ti\\b\\bj_k\\n”);} 执行后的结果是( ) A. fab_c___gde B. fab_c___gde C. fa__c___gde D. fa__c___gde h_______jik h_______ji_ h_______jik h_______ji_ 25.下列字符中,不正确的转义字符是( )(◆转义字符◆) A.’\\2’ B.’\\r’ C.’\\\\’ D.’\\108’

26.在C语言中,下列选项说法错误的是( )(☆基础知识☆)

A.main函数是程序的入口 B.严格区分大小写 C.可以进行位运算 D.一个字符占两个字节 27.以下不是C语言规定的保留字的是( )(◆关键字(保留字)◆) A.typedef B.enum C.Float D.static

28.以下是C语言规定的保留字的是( )(◆关键字(保留字)◆) A.typeef B.out C.close D.static

29.下列选项中,不合法的C语言关键字是( )(◆关键字(保留字)◆) A.void B.char C.default D.Do 30.对于C语言程序中的变量,( )是正确的。(◆变量◆)

A.变量使用前可以不定义 B.变量可以随时定义随时使用 C.变量要先定义,后使用 D.以上说法都不对

※运算符及表达式

1.若有定义:int a=8,b=5,c;,执行语句c=a/b+0.4;后,c的值为( )(★算术运算符★) A.1.4 B.1 C.2.0 D.2

2.已知x,y均为float型变量,下面不正确的赋值语句是( )(★算术运算符<求余运算符>★) A.++x; B.y=(x%2)/10; C.x*=y+8; D.x=y=0; 3.将int型变量n转成float型变量的方法是( )(★强制类型转换运算符★) A.float n B.(float)n C.float(n) D.(n)float

4.已知int a=7;float x=2.5,y=4.7;,则表达式x+a%3*(int)(x+y)%2/4的值是( ) (★算术运算符<求余运算符>+强制类型转换运算符★)

A.2.500000 B.2.750000 C.3.500000 D.0.000000 5.以下程序(★自增自减运算符★) main()

{int x=15,y=4;printf(“%d,%d\\n”,x--,++y);}

执行后输出的结果是( ) A.14,5 B.15,5 C.15,4 D.14,4 6.设有以下定义(★自增自减运算符★)

int a=0;double b=1.25;char c=’A’; #define d 2;则下面语句中错误的是( ) A.a++; B.b++ C.c++; D.d++;

7.下列语句中正确的是( )(★赋值运算符+算术运算符<求余运算符>★) A. int a=b=c=3; B. a+b=3; C. (int)x%3; D.3=b; 8.以下程序的输出结果是( )(★赋值运算符<复合的赋值运算符>★) main()

{int x=6,y=10;x+=y; y+=x;

printf(“%d %d\\n”,x,y);} 供选择的答案是 A.16 26 B.6 10 C.16 16 D.10 6 9.若Y为int 型变量,则执行以下语句后,Y的值是( )(★赋值运算符<复合的赋值运算符>★) Y=8; Y+=Y-=Y*Y; A.64 B.-56 C.-112 D.-48 10.以下程序(★赋值运算符<复合的赋值运算符>+自增自减运算符★) main()

{int x=10,y=8;x%=y; y*=x;

printf(“%d %d\\n”,x,y--);}输出结果是( ) A.1 16 B.2 15 C.2 16 D.1 8 11.设以下变量均为int类型,则值不等于7的表达式是( )(★逗号运算符★)

A.(x=y=6,x+y,x+1) B.(x=y=6,x+y,y+1) C.(x=6,x+1,y=6,x+y) D.(y=6,y+1,x=y,x+1)

12.设x、y、z和k都是int型变量,则执行下列表达式后,变量x的值为( )(★逗号运算符★) x=(y=4,z=16,k=32);供选择的答案是 A. 4 B. 16 C. 32 D.52 13.以下程序(★关系运算符★) main()

{int x1=3,x2=0;

if(x1= =x2) printf(“****”);

else printf(“####”);}

执行后输出的结果是( ) A.**** B.存在语法错误 C.#### D.无输出结果 14.以下程序的输出结果是( )(★逻辑运算符★) main()

{int a=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a);

printf(“%d,%d\\n”,k,m);} A.0,0 B.0,1 C.1,0 D.1,1

15.设x为int 型变量,能正确表达1010&&x<20 C. x>10&x<20 D. !(x <=10)!(x>20)

16.设x、y、z都是int型变量,且x=8,y=10,z=15;则以下的表达方式中,值为1的表达式是( ) (★关系运算符+逻辑运算符★) A.x&y B.x==y C.x||y+z&&y-(x<=y) D.x*=y 17.以下程序(★逻辑运算符+自增自减运算符★) main()

{int i=0,j=1,k=2;if (j++||k++||i++)

printf(“%d,%d,%d\\n”,i,j,k);}执行后输出的结果是( ) A.1,1,2 B.2,2,2 C.0,2,2 D.2,3,0 18.设x,y,t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为( )

(★逻辑运算符+自增自减运算符★) A.不确定 B.4 C. 3 D. 1 19.若a=1,b=2,c=3,d=4,则表达式a>b?a:c

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

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

{int a=2,b=4,c=7,x;x=a|b&c;

printf(“%d”,x);} 执行后输出结果是( ) A.0 B.1 C.5 D.6

22.设x为int型变量,y为float型变量,则下面语句中错误的是( )(★算术运算符<求余运算符>★) A.x++; B.x=y=0; C.x=(y%2)/10; D.y=(float)x;

23.设x,y 为int型变量,则执行下列语句后,x,y的值分别是( )(★算术运算符+自增自减运算符★) x=5; y=x++*x++; y=--y*--y; A.7 529 B.5 529 C.6 576 D.6 625 24.下列程序(★自增自减运算符★)

main()

{int x,y,z;x=2;y=2;z=3;

y=z++-1;printf(“%d\\t%d\\t”,x,y);y=++x-1;printf(“%d\\t%d\\t”,x,y);

y=z---1;printf(“%d\\t%d\\t”,z,y);y=--z-1;printf(“%d\\t%d\\n”,z,y);} 运行后输出的数据为( ) A.3 1 4 2 2 4 1 3 B.3 1 3 3 2 4 2 2 C. 2 2 3 2 3 3 2 1 D.2 1 3 2 1 3 1 2

25.若W、X、Y、Z均为int型变量,则执行以下语句后,Z的值是( )(★自增自减运算符★)

W=5;X=4; Y=W++*W++*W++; Z=--X*--X*--X+Y--; A. 131 B. 126 C.125 D.130 26.若以下选项中的变量x1,x2,x3,x4已确定定义,则正确的赋值语句是( )(★赋值运算符★) A. x1=26.8%3 B.1+2=x2 C. x3=0x12 D. x4=1+2=3; 27.若a为int类型,且其值为3,则执行完成表达式a+=a-=a*a后,a的值是( )

(★赋值运算符<复合的赋值运算符>★) A.-3 B. 9 C. -12 D. 6 28.设a和b均为int 型变量,则执行以下语句后的输出为( )(★赋值运算符+算术运算符★) int a=20; int b=3; printf(“%d\\n”,a+=(b%2)); A. 20 B. 21 C. 0 D. 23 29.以下程序(★赋值运算符<复合的赋值运算符>+逻辑运算符★) main()

{int x,y,z;x=10,y=-15,z=3;z+=x*2+y/3;printf(“%d\\n”,z);}

执行后输出结果是( ) A. 18 B. 15 C.13 D.10

30.以下程序(★赋值运算符<复合的赋值运算符>+算术运算符<求余运算符>+强制类型转换运算符★) main()

{int x,y;x=2.5,y=7,z=4.7;x+=x+y%3*(int)(x+y)%2/4;

printf(“%d\\n”,x);} 执行后输出结果是( ) A.4 B.5 C.6 D.7

31.若x为int类型,表达式x=5,x+5,x++的值是( )(★逗号运算符+自增自减运算符★) A.5 B. 6 C. 10 D.11

32.while(!x)中的条件表达式(!x)与下面条件( )等价。(★关系运算符+逻辑运算符★) A. x==0 B. x==1 C. x==0|| x==1 D. x!=0 33.以下程序(★逻辑运算符+自增自减运算符★) main()

{int i=1,j=1,k=2;if ((j++||k++)&& i++)

printf(“%d,%d,%d\\n”,i,j,k);}执行后输出的结果是( ) A.1,1,2 B.2,2,1 C.2,2,3 D.2,2,2 34.以下程序的输出结果是( )(★逻辑运算符★) main()

{int a=4,b=5,c=0,d;d=!a&&!b||!c; printf(“%d\\n”,d);} A. 1 B. 0 C. 非0的数 D. -1 35.若有定义int a=25 ,b=14,c=19;则执行下述表达式计算后,a,b,c的值是( )

a++<=(25&&b--)<=25&&c++; (★逻辑运算符+关系运算符+自增自减运算符★)

A.25,14,19 B.26,13,19 C.26,13,20 D.25,14,20

36.设有a=-2,b=3,c=-4,d=5,则表达式a>b?a:c

若x,y .z均为int型变量,则执行下列语句后z值为( )(★条件运算符★)

x=1;y=2;z=3;z=(x>y)? (z>x):(z

{int a=5,b=4,c=6,d;printf(“%d\\n”,d=a>b?(a>c? a:c):(b));} A.5 B.4 C.6 D.不确定 38.以下程序(★位运算符★) main()

{int a=3,b=5,c=12,x;x=a|b&c;

printf(“%d”,x++);} 执行后输出结果是( ) A.6 B.7 C.8 D.9 39.有以下程序(★位运算符★)

main()

{unsigned char a,b;a=4|3;b=4&3;

printf(“%d%d\\n”,a,b);}执行后输出结果是( ) A. 7 0 B. 0 7 C. 1 1 D. 43 0 40.若下列表达式中变量已经正确定义和赋值,下列符合C语言语法的是( )(★赋值运算符★) A.int 10/5; B.x*y=4; C.a=b=c; d.x=5 mod 3;

41.int n=5;表达式n-=n*n被执行后,变量n的值为( )(★复合赋值运算符★) A.0 B.24 C.-20 D.-15 42.以下程序 int a=0,b=1,c=0;

if(a=b+c) printf(“==”);else printf(“!=”); 下列判断正确的是( ) (★赋值运算符★) A.输出:== B.输出:!= C.没有输出 D.输出:语法错误,编译不过 43.对于位运算,若x=1,y=1则x&y的结果是( )(★位运算符★) A.0 B.1 C.11 D.10 44.以下程序(★自增自减运算符★) main()

{int x,y,z; x=3;y=2;z=1;x=y;y=z;z=x++;printf(“%d\\n”,z);}

执行后输出的结果是( ) A.1 B.2 C.3 D.4 45.以下程序(★复合赋值运算符+关系运算符★) main()

{int a=4,b=1,c=0; a/=b+(b||c); printf(“%d\\n”,a);}

执行后输出的结果是( ) A.2 B.4 C.0 D.1 46.int x=3;表达式x=++x+1;被执行后,变量x的值为( )(★自增自减运算符★) A.4 B.5 C.6 D.7

47.int x,y;double m=12.2,n=34.4;下列符合C语言语法的语句是( ) (★赋值运算符+自增自减运算符★)

A.x=x*3=3; B.x=(x=3)=(n*4); C.n+++; D.x=2;x++; 48.表达式y<3?-1.0:1.0的值的类型应是( )

A.不确定 B.实型 C.整型 D.无符号整型 49.以下程序(★关系运算符★) main()

{int a=1,b=0,c=2; a-=b+(b&&c); printf(“%d\\n”,a);}

执行后输出的结果是( ) A.0 B.1 C.2 D.3 50.以下程序(★关系运算符★) main()

{int a=0,b=1,c=2,d; d= (a+a||b)+c; printf(“%d\\n”,d);}

执行后输出的结果是( ) A.1 B.2 C.3 D.4

51.设x和y均为int型变量,则语句x+=y;y=x-y;x-=y;的功能为( )(★复合赋值运算符★) A.把x和y按从大到小排列 B.把x和y按从小到大排列 C.交换x和y的值 D.无确定结果 52.以下选项中,与k=n++完全等价的表达式是( )(★自增自减运算符★) A.k=n,n=n+1; B.n=n+1,k=n; C.k=++n; D.k+=n+1; 53.若有代表式

(3x?y),则( )是其正确的C语言表达式。(★算术运算符★) 2aA.3*(x+y)/2*a; B. 3*(x+y)/(2*a); C. 3*x+3*y/2*a D.3(x+y)/a/2;

54.若x和y为整型数,以下表达式中不能正确表示数学关系|x-y|<10的是( ) (★关系运算符★) A.abs(x-y)<10 B. x-y>-10&&x-y<10 C.(x-y)*(x-y)<100 D.!(x-y)<-10||!(y-x)>10 55.执行以下语句后b的值为( )(★关系运算符+逻辑运算符★) int a=5,b=6,w=1,x=2,y=3,z=4;

本文来源:https://www.bwwdw.com/article/3dyt.html

Top