c语言第3章练习题答案

更新时间:2023-10-31 06:00:01 阅读量: 综合文库 文档下载

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

第3章练习题

(一)标识符

1.下列可用于C语言用户标识符的一组是( )。C

A) void, define, WORD B) a33,123,Car C) For, -abc, IFCase D) 2a, DO, sizeof

2.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是( )。B

A) 大写字母 B) 连接符 C) 数字字符 D) 下划线 3.下面各选项中,均是C语言合法标识符的选项组是( )。B

A) 33 we auto B) _23 me _3ew C) _43 3e else D) ER -DF 32 4.以下叙述中错误的是( )。A

A) 用户所定义的标识符允许使用关键字

B) 用户所定义的标识符应尽量做到\见名识意\

C) 用户所定义的标识符中,大、小写字母代表不同标识 D) 用户所定义的标识符必须以字母或下划线开头

5.下面四个选项中,均是不合法的用户标识符的选项是( )。C

A) c_b goto int B) A P0 do C) float la0A D) 123 temp goto 6.下列是用户自定义标识符的是( )。A

A) w1 B) 3xy C) int D) LINE-3 7.以下选项中合法的标识符是( )。B

A) 1_2 B) _12 C) 2-1 D) 12_ 8.以下可用作C语言用户标识符的是( )。C

A) void,define,WORD B) a3b3,123,IF C) FOR,_abc,Case D) 2a,Do,Sizeof 9.正确的标识符是( )。A

A) y2 B) x=8 C) z.2 D) !at 10.以下能作为C语言变量名的是( )。D

A) float B) char C) do D) Double 11.请选出可用做C语言用户标识符的一组标识符( )。B

A) int B) a3b3 C) For D) 2a

define _123 3a DO WORD IF switch sizeof

12.下列定义变量的语句中错误的是( )。B

A) int i; B) double int; C) char a; D) float cup;

(二)数据类型

1.以下符合C语言语法的实型常量是( )。A

A) 8E-2 B) 3.14.159E C) E14 D) 2.2E0.5 2.以下选项中不属于字符常量的是( )。A

A) \ B) 'E' C) '\\xCC' D) '\\072' 3.以下不合法的字符常量是( )。B

A) '\\\ B) '\\018' C) '\\xcc' D) '\\\\' 4.以下合法的十六进制数是 ( )。B

A) 0x B) 0x4de C) 0x1h D) oX77 5.若有说明语句:char c='\\72';则变量c( )。A

A) 包含1个字符 B) 包含2个字符 C) 包含3个字符 D) 说明不合法,c的值不确定 6.以下选项中值为1的表达式是( )。B

A) 1-'0' B) 1-'\\0' C) '1'-0 D) '\\0'-'0' 7.以下选项中,不能作为合法常量的是( )。C

A) 1.234e05 B) 1.234e+5 C) 1.234e0.5 D) 1.234e0 8.以下选项中不属于C语言的类型的是( )。B

A) unsigned long int B) long short C) unsigned int D) signed short int

9.有以下定义语句,编译时会出现编译错误的是( )。C

A) char a='a'; B) char a='\\n'; C) char a='aa'; D) char a='\\x2d'; 10.C语言中,合法的字符串常量是( )。A

A) \ B) '\\t' C) 100 D) MUST 11.在C语言中,合法的长整型常数是( )。C

A) 0.123456 B) 4962 C) 9L D) 5.321e2 12.以下选项中可以作为C语言中合法整数的是( )。D

A) 01988 B) 110110B C) afbc D) 0Xbbc 13.设有语句char A='\\65';,则变量a( )。B

A) 包含4个字符 B) 包含1个字符 C) 包含3个字符 D) a为不合法的定义形式 14.以下变量说明中,正确的是( )。B

A) char: x y z; B) int a,b; C) int a;b; D) char x;y;z; 15.以下数据中属于字符串常量的是( )。C

A) ASK B) 'ask' C) \ D) 'm' 16.以下符号中,不属于转义字符的是( )。A

A) '\\' B) '\\x12' C) '\\011' D) '\\07' 17.以下正确的字符串常量是( )。D

A) \ B) 'opqrst ' C) thank you D) \

18.设有语句char a= '\\010';,则变量a( )。A A) 包含1个字符 B) 包含2个字符 C) 包含3个字符 D) 该语句不正确 19.以下选项中不能作为合法常量的是( )。B

A) 3.14e05 B) 3.14e0.5 C) 3.14e+5 D) 3.14e0

20.设变量a是int型,f是float型,i是double型,则表达式10+'a'+i*f值的数据类型为( A) int B) float C) double D) 不确定 21.现有定义int a;double b;float c;char k;,则表达式a/b+c-k值的类型为( )。B

A) int B) double C) float D) char

(三)运算符、表达式和变量赋初值

1.若函数中有定义语句:int a;,则( )。C

A) 系统将自动给a赋初值为0 B) 系统将自动给a赋初值-1 C) 这时a中的值无意义 D) 这时a中无任何值 2.以下不能正确表示代数式4cd/ab的C语言表达式是( )。D

A) 4*c*d/a/b B) c*d/a/b*4 C) c/a/b*d*4 D) 4*c*d/a*b 3.下列关于单目运算符++,--的叙述中正确的是( )。D

)。C

A) 它们的运算对象可以是任何变量和常量

B) 它们的运算对象可以是char型变量和int型变量,但不能是float型变量 C) 它们的运算对象可以是int型变量,但不能是double型变量和float型变量 D) 它们的运算对象可以是char型变量、int型变量和float型变量 *4.以下定义语句中正确的是( )。B

A) int a=b=0; B) char A=65+1,b=?b?; C) float a=1,*b=&a,*c=&b; D) double a=0.0;b=1.1;

5.设有定义:float x=123.4567;则执行以下语句后的输出结果是( )。A

Printf(“%f\\n”,(int)(x*100+0.5)/100.0);

A) 123.460000 B) 123.456700 C) 123.450000 D) 123 6.设有定义:int m=0;。以下选项的四个表达式中与其他三个表达式的值不相同的是( )。C

A) ++m B) m+=1 C) m++ D) m+1 7.以下选项中正确的定义语句是( )。C

A) double a;b; B) double a=b=7; C) double a=7,b=7; D) double,a,b;

8.已知大写字母A的ASCII码的值是65,小写字母a的ASCII码的值是97,以下不能将变量c中的大写字母转换为对应小写字母的语句是( )。D

A) c=(c-?A?)&+?a? B) c=c+32 C) c=c-?A?+?a? D) c=(?A?+c)&-?a? 9.若变量已正确定义并赋值,以下符合C语言语法的表达式是( )。B

A) a:=b+1 B) a=b=c+2 C) int 18.5%3 D) a=a+7=c+b 10.已知各变量的类型说明如下: int k,a,b; unsigned long w=5; double x=1.42;

则以下不符合C语言语法的表达式是( )。A

A) x%(-3) B) w+=-2 C) k=(a=2,b=3,a+b) D) a+=a-=(b=4)*(a=3)

11.设变量x为float型且已赋值,则以下语句能将x中的数值保留到小数点后两位,并将第3位四舍五入的是( )。B

A) x=(x*100+0.5)/100.0 B) x=(int)(x*100+0.5)/100.0 C) x=x*100+0.5/100.0 D) x=(x/100+0.5)*100.0 12.设有定义:int k=1,m=2;float f=7;,则以下选项中错误的表达式是( )。C

A) k=k>=k B) -k++ C) k%int(f) D) k>=f>=m

13.以下不能正确计算代数式1/3×sin1/2×sin1/2值的C语言表达式是( )。A

A) 1/3*sin(1/2)*sin(1/2) B) sin(0.5)*sin(0.5)/3 C) pow(sin(0.5),2)/3 D) 1/3.0*pow(sin(1.0/2), 2) 14.下面程序的运行结果是( )。C

main()

{ int y=5, x=14; y=((x=3*y,x+6),x-1); printf(“x=%d,y=%d”,x,y); }

A) x=27,y=27 B) x=12,y=13 C) x=15,y=14 D) x=y=27 15.设有定义:int x=3;,以下表达式中,值不为12的是( )。D

A) x*=x+1 B) x++,3*x C) x*=(1+x) D) 2*x,x+=6 16.请选出合法的C语言赋值语句( )。B

A) a=10 B) a++; C) a=5,b=10; D) k=float(a+b);

17.下列程序的输出结果是( )。C

main()

{ double d=3.2; int x,y; x=1.2; y=(x+3.8)/5.0; printf(“%d\\n”,d*y); }

A) 3 B) 3.2 C) 0 D) 3.07 18.执行语句x=(a=10,b=a--)后,x、a、b的值依次为( )。D

A) 10,10,9 B) 10,9,9 C) 9,10,9 D) 10,9,10 19.在以下选项中,不正确的赋值语句是( )。C

A) i++; B) n1=(n2=(n3=0)); C) m+n=1; D) i=k==j; 20.以下程序的输出结果是( )。A

main()

{ int a=052;

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

A) 41 B) 42 C) 51 D) 52 21.以下非法的赋值语句是( )。D

A) n=(i=9,++i); B) ++ j; C) x=a+b; D) ++(j+1); 22.设a为5,执行下列语句后,b的值不为2的是( )。C

A) b=a/2 B) b=6-(--a) C) b=a%2 D) b=a>3?2:2 23.以下语句中符合C语言语法的赋值语句是( )。A

A) m=n ; B) a=10+b,b+=a+10; C) m+n=10; D) a=7+b,c=a+7; 24.以下选项中与a=i++完全等价的表达式是( )。C

A) a=++i B) i=i+1,a=i C) a=i,i=i+1 D) a+=i+1 25.设int a=10,则执行完语句a+=a-=a*a后,a的值是( )。B

A) -90 B) -180 C) 100 D) -100 26.执行下面程序中的输出语句后,

main() { int a;

printf(“%d\\n”,(a=4*6,a*2),a+5); }

a的值是( )。B

A) 48 B) 24 C) 29 D) 53

27.设有条件表达式:(a)?i++:j--,则以下表达式中与(a)完全等价的是( )。A

A) (a!=0) B) (a==0) C) (a==1) D) (a!=1) 28.以下选项中非法的表达式是( )。A

A) a+1=a+1 B) a=b==0 C) (char)(100+100) D) 7<=x<60 29.已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1&&y+z/2的值是( )。A

A) 1 B) 12 C) 0 D) 5 30.以下程序运行后的输出结果是( )。D

main()

{ int i=1,j=2,k=3; if(i++==1&&(++j==3||k++==3)) printf(“%d %d %d\\n”,i,j,k); }

A) 1 2 3 B) 2 3 4 C) 2 2 3 D) 2 3 3 31.当变量c的值不为2、4、6时,值也为”真”的表达式是( )。B

A) (c==2)||(c==4)||(c==6)

B) (c>=2&& c<=6)||(c!=3)||(c!=5) C) (c>=2&&c<=6)&&!(c%2) D) (c>=2&& c<=6)&&(c%2!=1) 32.有以下程序:

main()

{ int a=1, b=2,j=0, n=0,i; i=(n=b>a)||(j=a

程序运行后的输出结果是( )。A

A) 1,0 B) 0,1 C) 0,0 D) 1,1 33.表示关系M<=N<=P的C语言表达式为( )。B

A) (M<=N)AND(N<=P) B) (M<=N)&&(N<=P) C) (M<=N<=P) D) (M<=N)&(N<=P)

34.设ch是char型变量,其值为C,且有下面的表达式ch=(ch>='A'&&ch<='Z')?(ch+32):ch 上面表达式的值是( )。A

A) c B) Z C) C D) z

35.已有定义:char c;,程序前面已在命令中包含ctype.h文件。不能用于判断c中的字符是否为大写字母的表达式是( )。B

A) isupper(c) B) 'A'<=c<='Z' C) 'A'<=c&&c<='Z' D) c<=('z'-32)&&('a'-32)<=c

36.设a、b和c都是int型变量,且i=3、j=4、k=5,则下面的表达式中,值为0的表达式是( )。D

A) 'i'&&'j'&&'k' B) i<=j C) i||+k&&j-k D) !((i

A) i=1+j+k=i+2; B) 1=1+i++=i+5; C) i=7+1,i++,1+4 D) i=1+2,k=j+2; 38.以下程序的输出是( )。C

main()

{ char x=040;

printf(“%d\\n”,x=x<<1); }

A) 32 B) 20 C) 64 D) 40 39.设有以下语句:

char a=3,b=6,c; c=a^b<<2;

则c的二进制值是( )。A

A) 00011011 B) 00010100 C) 00011100 D) 00011000 40.有以下程序:

main()

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

printf(“%d\\n”,x|y&~z); }

程序运行后的输出结果是( )。B

A) 6 B) 3 C) 1 D) 0

(四)输入与输出函数 1.阅读以下程序:

#include main()

{ int case;float printF;

printf(\请输入2个数:\

scanf(\ %f\ printf(\ %f\n\}

该程序在编译时产生错误,原因是( )。A

A) 定义语句出错,case是关键字,不能用作用户自定义标识符 B) 定义语句出错,printF不能用作用户自定义标识符 C) 定义语句无错,scanf不能作为输入函数使用 D) 定义语句无错,printf不能输出case的值

2.现有格式化输入语句,scanf(\],sum]y=%d,line]z=%dL\,已知在输入数据后,x,y,z的值分别是23,56,78,则下列选项中正确的输入格式是( )。D

A) 23,56,78 B) x=23,y=56,z=78 C) x=23C,sumy=56,z=78 D) x=23],sum]y=56,line]z=78 [注]:\]\表示空格,表示回车

3.x,y,z被定义为int型变量,若从键盘给x,y,z输入数据,正确的输入语句是( )。B

A) INPUT x、y、z; B) scanf(\C) scanf(\ D) read(\4.有以下程序

#include main()

{ char c1='1',c2='2';

c1=getchar(); c2=getchar(); putchar(c1); putchar(c2); }

当运行时输入:a<回车>后,以下叙述正确的是( )。A

A) 变量c1被赋予字符a,c2被赋予回车符 B) 程序将等待用户输入第2个字符

C) 变量c1被赋予字符a,c2中仍是原有字符2 D) 变量c1被赋予字符a,c2中将无确定值

*5.若在定义语句int a,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是( )。D

A) scanf(\ B) scanf(\C) scanf(\ D) scanf(\

6.设变量均已正确定义,若要通过scanf(\语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。以下所示的输入形式中正确的是(注:□代表空格字符)( )。D

A) 10□X□20□Y<回车> B) 10□X20□Y<回车> C) 10□X<回车> D) 10X<回车>

20□Y<回车> 20Y<回车>

7.执行以下程序时输入1234567,则输出结果是( )。D

#include main()

{ int a=1,b;

scanf(\ printf(\}

A) 12367 B) 12346 C) 12312 D) 12345 8.有以下程序,其中%u表示按无符号整数输出:

main()

{ unsigned int x=0xFFFF; /* x的初值为十六进制数 */ printf(\}

程序运行后的输出结果是( )。B

A) -1 B) 65535 C) 32767 D) 0xFFFF *9.当用户要求输入的字符串中含有空格时,应使用的输入函数是( )。C

A) scanf() B) getchar() C) gets() D) getc() *10.以下4个选项中,不能看作一条语句的是( )。C

A) ; B) a=5,b=2.5,c=3.6; C) if(b!=5)x=2;y=6; D) return j; 11.以下程序的输出结果是( )。B

main()

{ int a=20;

printf(\}

A) 20, 024,0x14 B) 20, 24,14 C) 20, 0x14,024 D) 20, 20,20 12.有以下程序:

#include main()

{ char a,b,c,d;

a=getchar(); b=getchar(); scanf(\

printf(\}

当执行程序时,按下列方式输入数据(从第1列开始,代表回车,注意,回车也是一个字符)

1 234

则输出结果是( )。C

A) 1234 B) 12 C) 1 D) 1

34 23 234

13.使用scanf(\要使a,b均为50,正确的输入是( )。C

A) a=50 b=50(空格分开) B) 50 50(空格分开) C) a=50,b=50 D) 50,50

14.已知a、b、c、d为int型变量,若从键盘输入:1,3,5,7<回车>,使a的值为1、b的值为3、c的值为5、d的值为7,,以下选项中正确的输入语句是( )。D

A) scanf(\B) scanf(\

C) scanf(\D) scanf(\

15.设有定义:long a=-123456L;,则以下能够正确输出变量a值的语句是( )。A

A) printf(\ B) printf(\

C) printf(\ D) printf(\16.以下程序的输出结果是( )。A

main( )

{ int k=21;

printf(\}

A) 21,25,15 B) 21, 21,21 C) 21, 0x25,015 D) 21,21,15 17.下面程序的输出是: ( )。C

main( )

{ int k=12;

printf(\}

A) k=12,k=12,k=12 B) C) k=12,k=14,k=c D) k=11,k=12,k=13 k=12,k=013,k=0b

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

Top