c语言程序基础练习题500道(附答案)

13以下叙述中正确的是( b )。

A.a是实型变量,C语言允许进行以下赋值a=10,因此可以这样说:实型变量中允许存放整型值

B.在赋值表达式中,赋值号右边即可以是变量也可以是任意表达式 C.执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b的值由原值变为0

D.已有a=3,b=5当执行了表达式a=b,b=a之后,已使a中的值为5,b中的值为3 14表达式18/4*sqrt (4.0)/8值的数据类型为( c )。 A)int B)float C)double D)不确定 15下列运算符中,不属于关系运算符的是( c )。 A) < B) > = C) ! D) ! =

16若希望当A的值为奇数时,表达式的值为真,A的值为偶数时,表达式的值为假,则以下不能满足要求的表达式是 ( d)。

A) A%2= =1 B) !(A%2= =0) C) !(A%2) D) A%2

17已知各变量的类型说明如下: int i=8,k,a,b;

unsigned long w=5; double x=1.42,y=5.2;

则以下符合C语言语法的表达式是( a )。 A)a+=a-=(b=4)*(a=3) B)a=a*3=2 C)x%(-3) D)y=float(i)

18 若变量已正确定义并赋值,下面符合C语言语法的表达式是( B )。 A)a=a+7; B)a=7+b+c,a++ C)int 12.3%4 D)a=a+7=a+b

19逗号表达式(a=3*5,a*4),a+15的值为( c )。 A)15 B)60 C)30 D)不确定 20设Int n=3;则n++的结果是( b )。 A)2 B)3 C)4 D)5

1用小数或指数形式输入实数时,在scanf函数语句里格式字符为( bcd )。 A)i B)f C)e D)g 2可以使用( bcd )输入字符型数据。

A)putchar(c); B)getchar(c); C)getchar(); D)scanf(\1C语言中数据有常量与变量之分。 对 2一般一个字符变量在内存中占一个字节。 对 3C语言规定,可以在定义变量时,同时使变量初始化。 对

4把k1、k2定义成基本整型变量,并赋初值0的定义语句是int k1=k2=0; 。错 5如果i的原值为3,则:j = ++ i,j的值为3。 错 6凡是表达式都有一个值。 对 7输入语句的格式为:scanf(\是正确的。 对

8在scanf(\,%*d,%d\函数中,当输入为1,2,3时,将1赋给a,将2赋给b。 错

9getchar函数的功能是接收从键盘输入的一个整数。 错 10假定变量a,b,c在说明时已赋初值,则 if ((a=b;)>0) c=a;是正确的。 错

25

11

12printf函数是一个标准库函数,它的函数原型在头文件\中。 错 13在printf函数中,格式字符d的意义是:以十进制形式输出带符号整数。 对 14 在printf函数中,输出表列的各输出项之间可用冒号分隔。 错 15若int x=3; printf(\则系统不会报错,会输出x的地址。 对 16int a=0,b=1,c=2;则表达式a||b+c&&b==c的值为0 对 1若有以下定义:char c='\\010';则变量C中包含的字符个数为( 1 )。 2若有以下定义:int x=3,y=2;float a=2.5,b=3.5;则下面表达式的值为【 】。(x+y)%2+(int)a/(int)b 3若a是int型变量、且a的初值为6,则执行下面表达式后,a的值为【 60 】。a+=a-=a*a 4若x是int型变量,则执行下面表达式后,x的值为【 】。x=a=4,6*2 5若a是int型变量,且a的初值为6,则计算表达式后a的值为【 60 】。a+=a-=a*a

6scanf函数的地址表列中给出各变量的地址,地址是由【 运算符\ 】后跟变量名组成的。

7使用getchar函数接收字符,若输入多于一个字符时,只接收第【 】个字符。 8 C语言的格式输出函数是【 () 】。

9当a=5,b=4,c=2时,表达式a>b!=c 的值是【1 】

10已知A=7.5,B=2,C=3.6,表达式A>B&&C>A || AB的值是【0 】 11若a=3,b=2,c=1,则表达式a-b

基础三

1下面四个选项中,均是不合法的用户标识符的选项是( C )。 A) A B) float C) b-a D) _123 p_0 lao goto temp do _A int INT 2下面四个选项中,均是不合法浮点数的选项是( B )。 A) 160. B) 123 C) -018 D) -e3

0.12 2e4.2 123e4 .234 e3 .e5 0.0 1e3

3下面四个选项中,均是不正确的八进制或十六进制数的选项是( D )。 A)016 B)0abc C)010 D)0a12 0x8f 017 -0x11 7ff 018 0xa 0x16 -123

4以下每个选项都代表一个常量,其中不正确的实型常量是( B )。 A)2.607E-1 B)0.8103e 2 C)-77.77 D)45.6e-2 5可用作用户标识符的一组标识符是( B )。

A)void B)a3_b3 C)For D)2a

define _xyz -abc DO WORD IF Case sigeof 6下列标识符组中,合法的用户标识符为( B )。

26

A) PAd与p#d B) Scanf 与a10 C) void与max D) A*与temp

7( B )是C语言提供的合法的数据类型关键字。 A)Float B)signed C)integer D)Char 8以下选项中正确的常量是( A )。 A) 012 B) -20

C) 1,000 D) 4 5 6

9现已定义整型变量int i=1;

执行循环语句while(i+ +<5);后,i的值为( c )。

A)1 B)5 C)6 D)以上三个答案均不正确

10设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为( C )。 A)int B)float C)double D)不确定 11若有说明语句:char c='\\72';则变量c ( A )。 A)包含1个字符 B)包含2个字符

C)包含3个字符 D)说明不合法,c的值不确定

12设X、Y、Z都是int整型变量,且x=2, y=3, z=4,则下面的表达式中,值为0的表 达式是( B )。

A) 'x'&&'z' B) (!y= =1)&&(!z= = 0) C) (x

A) 在C程序中无论是整数还是实数,只要在允许的范围内都能准确无误的表示

B) 若在定义语句double a,b;之后,因为变量a,b已正确定义,因此立刻执行这样的表达式:a=b+9.381是正确的

C) 在C程序中,常量、变量、函数调用,都是表达式的一种 D) 在main函数中,变量一经定义,系统将自动赋予初始值

14设有说明:char w;int x;float y;double z;则表达式w*x+z-y值的数据类型为( D )。 A) float B) char C) int D) double

15设a=2,b=3,c=4,则表达式 a+b>c&&b= =c&&a||b+c&&b+c的值为( D )。 A) 5 B) 8 C) 0 D) 1

16在C语言中,逻辑值\真\的表示是用( C )。 A) true B) 整型值0 C) 非另整型值 D) T 17以下不正确的叙述是( D )。 A)在C程序中,逗号运算的优先级最低

B)在C程序中,APH和aph是两个不同的变量

C)若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变 D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值 18以下结果为整型的表达式(设有int i; char c; float f;)是( B )。 A)i+f B)i*c C)c+f D)i+c+f

19设有逗号表达式(a=3*5,a*4),a+15,a的值为( C )。 A)60 B)30 C)15 D)90

27

20设Int n=3;则有表达式n++,n的结果是( C )。 A)2 B)3 C)4 D)5

1若在scanf函数语句中没有非格式字符作输入数据的间隔,则可用( ACD )。 作为输入数据的间隔。

A)空格 B)逗号 C)TAB D)回车 2使用scanf函数时,在源程序开头( ABC )。 A)书写#include \ B)书写#include C)不必写#include D)书写#include \

1C语言规定标识符只能由字母、数字和小数点三种字符组成。

2 C语言使字符型数据和整型数据之间可以通用。一个字符数据既可以以字符形式输出,也可以以整数形式输出。 对

3 C语言中定义了一个变量,代表内存中的一个地址。 对 4表达式3.5 + 1/2 + 56的计算结果是7.5 。错

5 由赋值运算符将一个变量和一个表达式连接起来的式子称为\赋值表达式\。 对 6设C语言中,一个int型数据在内存中占2个字节,则int数据的取值范围为-32768-32769。错

7在使用scanf函数之前应包含头文件\。错

8在scanf(\函数中,当输入为字符a,b时,将a赋给c1,将b赋给c2。错 9 scanf函数中,如果格式控制串中有普通字符则输入时也要输入该普通字符。对 10 假定变量x,y,z在说明时已赋初值,则 if ((x=y+5)>0) z=x; 是正确的 对 11printf函数中的格式字符,既可以是大写形式,也可以是小写形式。 错 12在printf函数中,格式字符\可用来输出5个字符。错 13在printf函数中,格式字符s的意义是:输出单个字符。 错 14 在printf函数中,输出项可以是任意合法的表达式。对 15 算术运算符的优先级别高于关系运算符 对 16 int a=0,b=1,c=2,x,y;,则!(x=a)&&(y=b)&&c的值为1

1若x和n均是int型变量,且x的初值为12,n的初值为5,则执行下面表达式后,x的值为( 0 )。x%=(n%=2)

2假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为【 9 】。 3若a是int型变量,则执行下面表达式后,a的值为【2 】。a=25/3%3 4表达式1/3*3的计算结果是【 0 】。

5若a是int型变量,则计算表达式后a的值为【 2 】。a=25/3%3

6在输入字符数据时,若\格式控制字符串\中没有非格式字符,则认为所有输入的字符均为【 有效 】字符。 7在scanf函数中,【 &a 】表示变量a的地址。 8以下程序的运行结果是【 computer, com 】。 main()

{ printf(\ } 9在C语言中,表示逻辑\真\值用【 非零数 】

10若a=6,b=4,c=2,则表达式!(a-b)+c-1&&b/3+c/2的值是【 1 】 11设a=-1,b=0,c=1,则表达式a||b+c&&b==c的值是【 1 】 12有int a=3,b=4,c=5,x,y;,则以下表达式的值为【 0 】 !(x=a)&&(y=b)&&c

28

联系客服:779662525#qq.com(#替换为@)