文档库 最新最全的文档下载
当前位置:文档库 › c语言程序基础练习题500道

c语言程序基础练习题500道

c语言程序基础练习题500道
c语言程序基础练习题500道

1.下列四组选项中,均不是C语言关健字的选项是( A )。

A) define B) gect C) include D) while

IF char scanf go

type printf case pow

2.下面四个选项中,均是合法整型常量的选项是( A )。

A)160 B)-0xcdf C) -01 D)-0x48a

-0xffff 01a 986,012 2e5

011 0xe 0668 0x

3.下面四个选项中,均是不合法的转义符的选项是( B )。

A) '\"' B) '\1011' C) '\011' D) '\abc'

'\\' '\' '\f' '\101'

'xf' '\A' '\}' 'x1f'

4.下面不正确的字符串常量是( A )。

A)'abc' B)"12'12" C)"0" D)" "

5.以下选项中不合法的用户标识符是( A )。

A) B)file C)Main D)PRINT

语言提供的合法关键字是( D )。

A) swith

B) cher

C) Case

D)default

7.下列标识符组中,合法的用户标识符为 A

A)_0123与ssiped

B)del-word与signed

C)list与*jer

D) keep%与wind

8.在C语言中,逻辑值"真"的表示是用( C )。

A) true B) 整型值0 C)非另整型值D) T

9若有以下定义

char s='\092';

则该语句( b )

A)使s的值包含一个字符B)定义不合法,s的值不确定

C)使s的值包含4个字符D)使s的值包含3个字符

10设C语言中,int类型数据占2个字节,则float类型数据占(D )个字节。

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

11已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'3'后,c2中的值为( A )。

A)D B)68 C)不确定的值D)C

12逻辑运算符两侧运算对象的数据类型是( D )。

A) 只是0或1 B) 只能是0或非0正数

C) 只能是整型或字符型数据D) 可以是任何合法的类型数据

13TURBO C中int类型变量所占字节数是( B )。

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

14在C语言中,char型数据在内存中的存储形式是( D )。

A) 补码B) 反码C) 原码D) ASCII码

15若有以下定义,则能使值为3的表达式是( D )。

int k=7, x=12;

A)x%=(k%=5) B)x%=(k-k%5) C)x%=k-k%5 D)(x%=k)-(k%=5)

16判断char型变量c1是否为小写字母的正确表达式为( D )。

A) 'a'<=c1<='z' B) (c1>=A. &&(c1<='z')

C) ('a'>=c1)||('z'<=c1) D) (c1>='a')&&(c1<='z')

17 已知各变量的类型说明如下:

int k,a,b;

unsigned long w=5;

double x=

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

A)x%(-3)

B)w+=-2

C)k=(a=2,b=3,a+b)

D)a+=a-=(b=4)*(a=3)

若t为double类型,表达式t=1,t+5,t++的值是( D )。

A)1 B) C) D)

设n=10,i=4,则赋值运算n%=i+1执行后,n的值是( A ).

A) 0

B) 3

C) 2

D) 1

设Int n=3;则有表达式++n,n的结果是( C )。

A)2 B)3 C)4 D)5

用十进制形式输入有符号整数时,在scanf函数语句里格式字符为( A B)。

A)d B)i C)n D)u

在scanf函数语句中可用的修饰符有( ABCD )。

A)* B)h C)l D)宽度

1数据是操作的对象,操作的结果会改变数据的状况。对

2字符型变量用来存放字符常量,注意只能放2个字符。错

3C语言中可以把一个字符串赋给一个字符变量。错

4在C语言中的实型变量分为两种类型,它们是float(实型)和double(双精度实型)。错5在C语言中,要求参加运算的数必须是整数的运算符是% . 对

6若有以下定义,则执行下面表达式y+=y-=m*=y后,y的值为-16。int m=5,y=2; 对

7输入语句的格式为:scanf("%d%d%d",&a,&b,&c);是正确的。对

8在scanf("%d,%d",&a,&b)函数中,可以使用一个或多个空格作为两个输入数之间的间隔。错9getchar函数的功能是接收从键盘输入的一串字符。错

10在变量说明中给变量赋初值的方法是:int a=b=c=10; 错

12printf函数是一个标准库函数,它的函数原型在头文件""中。对

13printf函数称为格式输入函数,它的函数原型在头文件""中。错

14在printf函数中,不同系统对输出表列的求值顺序不一定相同,TC是按从右到左进行的。对

15若int x=3; printf("%d",&x);则系统会报错,没有任何结果。错

16逻辑运算符的优先级别高于算术运算符错

1在C语言中,表示逻辑"真"值用【1 】.

2表达式pow,sqrt(double(x)))值的数据类型为(double )。

3假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是【8 】。

4若x是int型变量,则执行下面表达式后,x的值为【12 】。x=(a=4,6*2)

5若k为int整型变量且赋值7,请写出赋值表达式k *= k + 3的运算结果【70 】。

6scanf函数是一个标准库函数,它的函数原型在头文件【】中。

7getchar函数可以接收【单】个字符,输入数字也按字符处理。

8在语句中,给变量赋值时,赋值语句必须以【分号】结尾。

9当a=3,b=2,c=1时,表达式f=a>b>c 的值是【0 】

10设x,y,z均为int型变量,请写出描述"x,y中有一个为负数"的表达式【x<0&&y>=0||y<0&&x>=0 】

11若a=6,b=4,c=3,则表达式a&&b||b-c的值是【1 】

12设x=3,y=-4,z=5,则表达式!(x>y)+(y!=z)||(x+y)&&(y=z)的值是【1 】

基础二

1下面四个选项中,均是非法常量的选项是( A )。

A)'as' B)'\\' C)-0x18 D)0xabc

-0fff '\01' 01177 '\0'

'\0a' 12,456 0xf "a"

2下面四个选项中,均是不合法整型常量的选项是( D )。

A)-0f1 B)-0xcdf C) -018 D)-0x48eg

-0xffff 017 999 -068

0011 12,456 5e2 03f

3下面正确的字符常量是( C )。

A) "c" B) '\\'' C) 'W' D) '

4以下每个选项都代表一个常量,其中正确的整型常量是( B )。

A) B)-20 C)1,000 D)4 5 6

5以下选项中不合法的用户标识符是( C )。

A)_123 B)Printf C)A$ D)Dim

6在下列C语言程序中,可以用做变量名的是( B )。

A) 1

B) a1

C) int

D) *p

7C语言提供的合法数据关键字是( A )。

A) float

B) Sagned

C) Integer

D) Char

8以下符号中不能用作用户标识符的符号是( B )。

A)_256 B)void

C)scanf D)Struct

9若k为int型变量,则以下语句( C )。

k=8567;

printf("|%-06d|\n",k);

A)输出格式描述不合法B)输出为|008567|

C)输出为|8567| D)输出为|-08567|

10sizeof(float)是( B )。

A)一个双精度表达式B)一个整型表达式

C)一种函数调用D)一个不合法的表达式

11在C语言中, int、char和short三种类型数据在内存中所占用的字节数( D )。

A)由用户自己定义B)均为2个字节

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

12判断char型变量c1是否为小写字母的正确表达式为( D )。

A) 'a'<=c1<='z' B) (c1>=A. &&(c1<='z')

C) ('a'>=c1)||('z'<=c1) D) (c1>='a')&&(c1<='z')

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 /8值的数据类型为( C )。

A)int B)float C)double D)不确定

15下列运算符中,不属于关系运算符的是( C )。

A) < B) > = C) ! D) ! =

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

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=,y=;

则以下符合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 C)int %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可以使用( CD )输入字符型数据。

A)putchar(c); B)getchar(c); C)getchar(); D)scanf("%c",&c);

1C语言中数据有常量与变量之分。错

2一般一个字符变量在内存中占一个字节。对

3C语言规定,可以在定义变量时,同时使变量初始化。对

4把k1、k2定义成基本整型变量,并赋初值0的定义语句是int k1=k2=0; 。错

5如果i的原值为3,则:j = ++ i,j的值为3。错

6凡是表达式都有一个值。

7输入语句的格式为:scanf("%d,%d,%d",a,b,c);是正确的。错

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

9getchar函数的功能是接收从键盘输入的一个整数。错

10假定变量a,b,c在说明时已赋初值,则if ((a=b;)>0) c=a;是正确的。错

11

12printf函数是一个标准库函数,它的函数原型在头文件""中。错

13在printf函数中,格式字符d的意义是:以十进制形式输出带符号整数。对

14 在printf函数中,输出表列的各输出项之间可用冒号分隔。错

15若int x=3; printf("%d",&x);则系统不会报错,会输出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=,b=;则下面表达式的值为【1 】。(x+y)%2+(int)a/(int)b

3若a是int型变量、且a的初值为6,则执行下面表达式后,a的值为【-60 】。a+=a-=a*a 4若x是int型变量,则执行下面表达式后,x的值为【4 】。x=a=4,6*2

5若a是int型变量,且a的初值为6,则计算表达式后a的值为【-60 】。a+=a-=a*a

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

7使用getchar函数接收字符,若输入多于一个字符时,只接收第【一】个字符。

8 C语言的格式输出函数是【printf() 】。

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

10已知A=,B=2,C=,表达式A>B&&C>A || AB的值是【0 】

11若a=3,b=2,c=1,则表达式a-b

12有int a=0,b=4,c=5;则表达式a||b+c&&b!=c的值为【1 】

基础三

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

123e4 .234

e3 .e5 1e3

3下面四个选项中,均是不正确的八进制或十六进制数的选项是( D )。

A)016 B)0abc C)010 D)0a12

0x8f 017 -0x11 7ff

018 0xa 0x16 -123

4以下每个选项都代表一个常量,其中不正确的实型常量是( B )。

A) B) 2 C) D)

5可用作用户标识符的一组标识符是( B )。

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

define _xyz -abc DO

WORD IF Case sigeof

6下列标识符组中,合法的用户标识符为( B )。

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

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

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

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

C) 在C程序中,常量、变量、函数调用,都是表达式的一种e-4

03e2 -8e5 +2e-1

3下面四个选项中,均是正确的八进制或十六进制数的选项是( c )。

A) -1a B)0abc C)0010 D)0a12

0x8f -017 0x11 -0x123

-011 0xc 0xf1 -0xa

4以下选项中,为C语言合法的关键字是( d )。

A)swicth B)cher C)Case D)default

5C语言提供的合法的数据类型关键字是( b )。

A)Double B)short C)integer D)Char

6下列标识符组中,合法的用户标识符为( d )。

A)b-b与abc

B)CCP与float

C)hiy与

D) isw与INT

7 属于合法的C 语言长整型常量的是( b )。

A)5876273 B)0L C)2E10 D)(Long)5876273

8若int类型数据占两个字节,下列程序的输出结果是( d )。

main()

{

int k=-1;

printf("%d,%u\n",k,k);

}

A)-1,-1 B)-1,32767 C)-1,32768 D)-1,65535

9设已定义x为double类型变量

x=;

printf("%\n",x);

则以上语句( c )。

A)输出格式描述符的域宽不够,不能输出B)输出为+01

C)输出为+002 D)输出为

10执行x=5>1+2&&2||2*4<4 - !0后,X的值为( c )。

A) -1 B) 0 C) +1 D) 5

11设ch是字符变量,其值为A,且有下面的表达式ch=!(ch>='A'&&ch<='z')ch:(ch+32)则表达式的值是( b )

A) A B) a C) 2 D) z

12设ch是char型变量,其值为Z,且有下面的表达式,其值为( d )。

ch=(ch>='A'&&ch<='Z')(ch+32):ch

A) A B) a C) Z D) z

13以下的变量定义中,合法的是( b )。

A)float 3_four = ; B)int _abc_= 2 ;

C)double a = 1 + D)short do =15;

14若有int k = 11;则表达式(k++ * 1/3)的值是( b )。

A)0 B)3 C)11 D)12

15逻辑运算符两侧运算对象的数据类型是( d )。

A) 只是0或1 B)只能是0或非0正数

C) 只能是整型或字符型数据D) 可以是任何类型数据

16下列表达式的值,那一个等于0 ( b )。

A) 5%6 B) 5/6 C) 5/ D) 5 - 6

17以下正确的叙述是( d )。

A)在C程序中,每行只能写一条语句

B)若a 是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数

C)在C程序中,无论是整数还是实数,都能被准确无误地表示

D)在C程序中,%是只能用于整数运算的运算符

18以下不正确的语句(设有int p,q)是( d )。

A)p*=3; B)p/=q; C)p+=3; D)p&&=q;

19如果a=1,b=2,c=3,d=4,则条件表达式a

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

20设Int n=2;则++n+1= =4的结果是( c )。

A)true B)false C)1 D)0

1若输入4位整数到整型变量a中,可用( b )。

A)scanf("%4d"); B)scanf("%4d",&a);

C)scanf("%4d",a); D)scanf("%d",&a);

2对于scanf("a=%d",&a),设a为整型变量,输入5,其输出可为( a )。

A)a=5 B)5 C)a= 5 D)a=a=5

1在C语言中,要求对所有用到的变量先定义,然后才能使用。√

2C语言中,字符数据与整型数据可以互相赋值。x

3C实型变量分为单精度和双精度两种。x

4a1、a2定义成单精度实型变量,并赋初值1的定义语句是float a1=1; a2=1; 。x 5C语言中逗号运算符又称为"顺序求值运算符"。√

6C提供的三种逻辑运算符是!, &&, >= . x

7在使用scanf函数之前可以不包含头文件""。√

8在scanf("%4d",&i)函数中,输入9,只把123456赋予变量i 。x

9a=b=c=d=10;是一个合法的赋值语句。√

10C语言的格式输出函数是scanf(). x

12使用printf函数时,格式控制字符串和各输出项应一一对应。√

13在printf函数中,格式字符f的意义是:以小数形式输出单精度实数。x

14在printf函数中,转义字符\b的作用是退格。√

15算术运算符的优先级别高于逻辑运算符√

16int a=1,b=0,c=1;,则!(a+b)+c-0&&b+c/2的值为1 x

1经过下述赋值后,变量x的数据类型是(int )。

int x=2;

double y;

y=(int)(float)x;

2已知字母a的ASCII码的十进制代码为97,且设ch为字符型变量,则表达式ch='a'+'8'-'3'的值为【 f 】。

3若s是int型变量,且s=6,则下面表达式的值为【1 】。

s%2+(s+1)%2

4表达式2*3的计算结果是【】。

5当a=3,b=2,c=1时,表达式f=a>b>c的值是【0 】.

6getchar函数是【字符输入】函数。

7赋值语句是由赋值表达式加上【分号】构成的。

8在TC中,printf()函数输出表列的求值顺序是【】。

9设y为int型变量,请写出描述"y是奇数"的表达式【y%2==1 】

10若a=2,b=4,则表达式!(x=a)|| (y=b)&&0的值是【0 】

11条件"0x||-3>x 】

12有int a=3,b=4,c=5;,则以下表达式的值为【 1 】

!(a+b)+c-1&&b+c/2

基础五

1C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( c )。

A)必须为大写

B)必须为下划线

C)必须为字母或下划线

D)可以是字母、数字和下划线中的任一种字符

2下面四个选项,均是合法转义字符的选项是( a )。

A) '\'' B) '\' C)'\018' D) '\\0''

'\\' '\017' '\f' '\101'

'\n' '\"' 'xab' 'x1f'

3下面四个选项中,均是正确的数值常量或字符常量的选项是( d )。

A) B)"a" C)'3' D)+001

0f 011 0xabcd

1e1 0xFF00 2e2

'&' '\"' 0a 50

4以下符号中不能用作用户标识符的是( d )。

A)IF B)Switch C)gets D)case

5在C语言中,下列哪个字符为合法的字符常量( b d )。

A)'\084′

B)'\x43′

C)'ab′

D)'\0′

6下列四个选项中,均是C语言关健字的选项是( b )。

A) auto B) switch C) signed D) if

enum typedef union struct

include continue scanf type

7不合法的常量是( d )。

A)'\2' B)'"' C)" D)"\483"

8若a为整型变量,则以下语句( b )。

a=-2L;

printf("%d\n",a);

A)赋值不合法B)输出值为-2 C)输出为不确定值D)输出值为2 9已定义x为float型变量

x=;

printf("%\n",x);

则以上语句( B )

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

C)输出为D)输出为

10用getchar函数可以从键盘读入一个( d )

A) 整型变量表达式值B) 实型变量值

C)字符串D) 字符或字符型变量值

11已知int x,y,z;执行语句x=(y=(z=10)+5)-5;后x、y、z的值是( a )。A) x=10 B) x=10 C) x=10 D) x=10

y=15 y=10 y=10 y=5

z=10 z=10 z=15 z=10

12 设a为整型变量,初值为12,执行完语句a+=a-=a*a后,a的值是( d )。

A) 552 B) 144 C) 264 D) -264

13设x为int型变量,则执行以下语句段后,x的值为( b )。

A)10 B)20 C)40 D)30

x = 10 ;

x += x -= x - x;

14若有定义,int a=7;float x=,y=;则表达式x+a%3*(int)(x+y)%2/4的值是( a )。

A) B) C) D)

15下列运算符中优先级最高的是( b )。

A) < B) + C) && D) !=

16设以下变量均为int 类型,则值不等于7的表达式是( c )。

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)

17以下符合C语言语法的,赋值表达式是( b )。

A) d=9+e+f=d+9

B) d=9+e,f=d+9

C) d=9+e,e++,d+9

D) d=9+e++=d+7

18以下使i的运算结果为4的表达式是( d )。

A) int i=0,j=0;

(i=3,(j++)+i);

B) int i=1,j=0;

j=i=((i=3)*2);

C) int i=0,j=1;

(j= =1)(i=1):(i=3);

D) int i=1,j=1;

i+=j+=2;

19设Int n=3;则++n的结果是( c )。

A)2 B)3 C)4 D)5

20设Int n=2;则有表达式++n+1= =4,n的结果是( c )。

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

1下列能正确输入字符数组a 的语句是( d )

A)scanf("%s",a); B)scanf("%s",&a);

C)scanf("%c",a); D)循环执行scanf("%c",&a[i]);

2在输入时,字符变量的值不用空格间隔,其输入函数可为( b )。

A)scanf("%c %c %c",&a,&b,&c); B)scanf("%c%c%c",&a,&b,&c);

C)scanf("%3c",&a,&b,&c); D)循环执行getchar()

1C的字符常量是用双引号括起来的一个字符。x

2字符串常量是一对单引号括起来的字符序列。x

3设C语言中,一个int型数据在内存中占2个字节,则int型数据的取值范围为-32768-+32767。√

4在C语言中的实型变量分为两种类型,它们是float和double。x

5 若有以下定义:int a=2,b=3;float x=,y=;则下面表达式的值为。√

(float)(a+b)/2+(int)x%(int)y

6输入语句的格式为:scanf("%d,%d,%d",&a;&b;&c); 是正确的。x

7getchar()函数得到的字符可以不赋给任何变量,而作为表达式的一部分。√

8scanf函数中无精度控制。x

9a+==a=2; 是一个合法的赋值语句,赋值后a的值为:2。x

10在TC中,printf()函数输出表列的求值顺序是从右到左。

11在printf函数中,"%ld"表示按十进制正整数输出。x

12printf是C语言的输出语句。x

13在printf函数中,格式字符c的意义是:输出单个字符。√

14在printf函数中,不能使用转义字符。x

15关系运算符的优先级别高于逻辑运算符√

16C语言中没有逻辑型数据x

1表达式8/4*(int)(int*+)值的数据类型为(int )。

2若x、i、j和k都是int型变量,则计算下面表达式后,x的值为【32 】。

x=(i=4,j=16,k=32)

3若a是int型变量,则下面表达式的值为【26 】。

(a=4*5,a*2),a+6

4若k为int 整型变量且赋值7,x为double型变量且赋值,赋值表达式x = k的运算结果是【】。

5若a=1, b=4, c=3, 则表达式!(a

6使用getchar函数前必须包含头文件【】。

7在变量说明中给同类变量赋初值时,各变量之间用【, 】隔开。

8以下程序的运行结果是【6 5 】。

main()

{int i=5; printf("%d,%d\n",++i,i++); }

9设x,y,z均为int型变量,请写出描述"x或y中有一个小于z"的表达式【(x

11有int x,y,z;且x=3,y=-4,z=5,则表达式(x&&y)==(x||z)的值为【1 】

12若a=1,b=2,则表达式a

C语言(分支和循环结构)一

1.以下程序输出结果是( b )

main()

{ int m=5;

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

else printf("%d\n",m--);

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

2以下程序的输出结果为( b )

# include <>

main ( )

{ int i=0, j=0, a=6;

if ((++i>0)&&(++j>0)) a++;

printf ("i=%d, j=%d, a=%d\n", i,j,a);}

A) i=0, j=0, a=6 B) i=1, j=1, a=7

C) i=1, j=0, a=7 D) i=0, j=1, a=7

3有如下程序

main()

{ int a=2,b=-1,c=2;

if(a

if(b<0) c=0;

else c++;

printf("%d\n",c);

}

该程序的输出结果是( c )

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

4若i为int型,且有程序如下,则输出结果是(c )

i=111;

if(i%3==0)

printf("####");

printf("****");

A) #### B) **** C) ####**** D) 无输出结果

5若运行时x=12,则运行结果为( a )

{int x, y;

scanf("%d", &x);

y=x>12 x+10:x-12;

printf("%d\n", y);}

A) 0 B) 22 C) 12 D) 10

6以下程序的输出结果是( c )

main()

{ int i=0, j=0, k=6;

if ((++i>0)||(++j>0)) k++;

printf("%d, %d, %d\n", i, j, k);

}

A) 0, 0, 6 B) 1, 0, 7 C) 1, 1, 7 D) 0, 1, 7

7若变量都已正确说明,则以下程序段输出为( c )

int a=1,b=2,c=3;

if(a>b)

a=b;

b=c;

c=a;

printf("a=%d b=%d c=%d\n",a,b,c);

A)a=1 b=2 c=1 B)a=1 b=2 c=3

C)a=1 b=3 c=1 D)a=2 b=3 c=2

8当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是( b ) if(a

if(c

else

if(a

if(b

else x=3;

else x=6;

else x=7;

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

9以下不正确的语句为( b )

A)if(x>y);

B)if(x==y)&&(x!=0)x+=y;

C)if(x!=y)scanf("%d",&x);else scanf("%d",&y);

D)if(x

10有以下程序:

#include""

main( )

{char i;

for (; (i=getchar ())!='\n';)

{switch (i-'a')

{case 0: putchar (i);

case 1: putchar (i+1);break;

case 2: putchar (i+2);

case 3: break;

default: putchar (i);break;

}

}

printf ("\n");

}

输入下列数据后,程序的输出结果是( b )

abcde

A) abcde B) abcee

C) abbde D) abccdd

11若a、b、c1、c2、x、y、均是整型变量,正确的switch语句是( a ) A) switch(a+b); B) switch(a*a+b*b)

{ case 1:y=a+b; break; {case 3:

case 0:y=a-b; break; case 1:y=a+b;break;

} case 3:y=b-a,break;

}

C) switch a D) switch(a-b)

{ case 1 :y=a-b; break {

case 2: x=a*d; break case c1:case 4:x=a+b;break; default:x=a+b; case c2:case 11:y=a-b;break;

} default:y=a*b;break;

}

12写出下面程序输出结果( d )

{int x=1, y=0, a=0, b=0;

switch(x)

{case 1:

switch(y)

{case 0: a++;

case 1: b++; }

case 2: a++; b++;

}

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

}

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

13C语言的for语句中的表达式可以部分或全部省略,但两个( c )不可省略。但当三个表达式

均省略后,因缺少判断条件,循环会无限制地进行下去,形成死循环。

A) < B) ++ C) ; D) ,

14下面有关for循环的正确描述是( d )。

A) for循环只能用于循环次数已经确定的情况

B) for循环是先执行循环体语句,后判定表达式

C) 在for循环中,不能用break语句跳出循环体

D) for循环体语句中,可以包含多条语句,但要用花括号括起来

15以下程序段( d )。

x=-1;

do

{ x=x*x;}

while(!x)

A) 是死循环B) 循环执行2次C) 循环执行一次D) 有语法错误

16如下的数组中,数组array占用的内存空间是( b )个字节。

char array[]={'c','h','i','n','a'};

A. 1

B. 5

C. 6

D. 不确定

17设有程序段

int k=10;

while(k=0) k=k-1;

则下面描述正确的是( c )。

A) while 循环执行10次B) 循环是无限循环

C) 循环体语句一次也不执行D) 循环体语句执行一次

18下列程序段的运行结果是( c )

int n=0;

while(n++<3);

printf("%d",n);

A. 2

B. 3

C. 4

D. 以上都不对

19设有程序段

t=0;

while(printf("*"));

{ t++;

if (t<3) break;

}

下面描述正确的是( d )。

A) 其中循环控制表达式与0等价B) 其中循环控制表达式与'0'等价

C) 其中循环控制表达式是不合法的D) 以上说法都不对

20下面程序的运行结果是( d )。

#include <>

main()

{ int y=10;

do { y--;} while(--y);

printf("%d\n",y--);

}

A) -1 B) 1 C) 8 D) 0

21以下程序段的输出结果是( a ).

main()

{ int i=5;

for ( ;i<=15; )

{ i++;

if (i%4==0) printf("%d ",i);

else continue;}

}

A. 8 12 16

B. 8 12

C. 12 16

D. 8 22以下不是无限循环的语句为( a )。

A) for(y=0,x=1;x>++y;x=i++) i=x;

B) for( ; ;x++=i);

C) while(1){x++;}

D) for(i=10; ; i--) sum+=i;

23有如下语句

int x=3;

do

{ printf("%d\n",x-=2);} while(!(--x));

则上面程序段( b )

A. 输出的是1

B. 输出的是1和-2

C. 输出的是3和0

D. 是死循环

24以下不是无限循环的是( a )

A. for(y=0,x=1;x>++y;x=i++) i=x;

B. for( ; ;x++=i);

C. while(1) x++;

D. for(i=10; ;i--) s+=i;

25以下正确的描述是( b )。

A) continue语句的作用是结束整个循环的执行

B) 只能在循环体内和switch语句内使用break语句

C) 在循环体内使用break语句或continue语句的作用相同

D) 从多层循环嵌套中退出时,只能使用goto语句

26以下程序输出结果为( d )

#include ""

main()

{int i,b,k=0;

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

{ b=i%2;

while (b-->=0) k++;}

printf("%d,%d\n",k,b);

}

A. 3,-1

B. 8,-1

C. 3,0

D. 8,-2

27以下程序段中循环体总的执行次数是( a )

int i,j;

for(i=7;i;i--)

for(j=0;j<6;j++)

{......}

A) 42 B) 21 C) 13 D) 36

28以下不正确的描述是( b )

A. break 语句不能用于循环语句和switch语句外的任何其他语句

B. 在switch语句中使用break语句或continue语句的作用相同

C. 在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环的执行

D. 在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环

1else语句总是和靠它最近的if匹配。√

2switch语句中一定有default分支x

3case后只能跟常量,不能跟变量√

4break语句的作用就是结束本层循环。√

5do-while语句构成的循环不能用其它语句构成的循环来代替。√

6用do-while语句构成循环时,只要while后的表达式为0时就结束循环。x

7for(表达式1;表达式2;表达式3)中,表达式1和表达式3不能同时都是逗号表达式。x 8for循环中,如果表达式2为空,则该循环一定是死循环。x

9while循环的while()后没有分号,而do-while循环的while()后一定要有一个分号。x 10for(i=0,j=10;i<=j;i++,j--) k=i+j;执行完后,k的值为50。x

1若a、b均为int型变量,且a=100,则以下的for循环是死循环. x for (b=100 ; a!=b ; ++a,b++) printf("----\n");

执行语句:for(i=1;i++<4;++i);后;变量i的值是5。x

2以下程序的运行结果是【1 1 】

main()

{int x,y,z;

x=1;y=2;z=3;

x=y--<=x||x+y!=z;

printf("%d,%d",x,y);

}

3以下程序的运行结果是【1 0 】

main()

{int x,y,z;

x=1;y=1;z=0;

x=x||y&&z;

printf("%d,%d",x,x&&!y||z);

}

4以下程序的运行结果是【2 0 随机值】

main()

{int a,b,c;

int s,w=0,t;

a=-1;b=3;c=3;

if(c>0)s=a+b;

if(a<=0)

{if(b>0)

if(c<=0)w=a-b;

}

else if(c>0)w=a-b;

else t=c;

printf("%d,%d,%d\n",s,w,t);

}

5阅读下面程序:

main()

{ int s, t, a, b;

scanf("%d%d",&a, &b);

s=1;

t=1;

if(a>0) s=s+1;

if(a>b) t=s+t;

else if (a==b) t=5;

else t=2*s;

printf("s=%d, t=%d", s, t);

}

6为了使输出结果t=4, 输入量a和b应满足的条件是【a>0&&a

7下面程序的功能是在输入的一批整数中求出最大者,输入0结束循环。

#include <>main()

{ int a,max=0;

scanf("%d",&a)

while(【a】){ if (max

scanf("%d",&a);}

}

printf("%d",max);

}

8执行下面的程序段后,k值是【36】。

k=1; n=263;

do { k*=n%10; n/=10; } while(n);

9等差数列的第一项a=2,公差d=3,下面程序的功能是在前n项和中,输出能被4整除的所有的和。请填空。

#include <>

main()

{ int a,d,sum;

a=2;d=3;sum=0;

do

{ sum+=a;

a+=d;

if (【sum%4==0】) printf("%d\n",sum);

} while(sum<200);

}

10鸡兔共有30只,脚共有90个,下面程序段是计算鸡兔各有多少只,请填空。for(x=1;x<=29;x++)

{ y=30-x;

if (【x*4+y*2==90】) printf("%d,%d\n",x,y);

}

11写出下面程序的运算结果【7 】。

# include <>

main ( )

{ int a=14, b=63;

while (a!=b)

{while (a>b) a-=b;

while (a

}

printf ("%d\n",a);

}

12下列程序的输出为【x=6】。

#include <>

main()

{

int i,j,x=0;

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

{

if(i%3==2) break;

x++;

for(j=0;j<4;j++)

{

if(j%2) break;

x++;

}

x++;

}

printf("x=%d\n",x);

}

C语言基础一:

1.下列四组选项中,均不是C语言关健字的选项是( A )。

A) define B) gect C) include D) while

IF char scanf go

type printf case pow

2.下面四个选项中,均是合法整型常量的选项是( A )。

A)160 B)-0xcdf C) -01 D)-0x48a

-0xffff 01a 986,012 2e5

011 0xe 0668 0x

<<02>>B>>2

3.下面四个选项中,均是不合法的转义符的选项是( B )。

A) '\"' B) '\1011' C) '\011' D) '\abc'

'\\' '\' '\f' '\101'

'xf' '\A' '\}' 'x1f'

4.下面不正确的字符串常量是( A )。

A)'abc' B)"12'12" C)"0" D)" "

5.以下选项中不合法的用户标识符是( A )。

A) B)file C)Main D)PRINT

语言提供的合法关键字是( D )。

A) swith

B) cher

C) Case

D).default

7.下列标识符组中,合法的用户标识符为 A

A)_0123与ssiped

B)del-word与signed

C)list与*jer

D) keep%与wind

8.在C语言中,逻辑值"真"的表示是用( C )。

A) true B) 整型值0 C)非另整型值D) T

9若有以下定义

char s='\092';

则该语句( B )

A)使s的值包含一个字符B)定义不合法,s的值不确定

C)使s的值包含4个字符D)使s的值包含3个字符

10设C语言中,int类型数据占2个字节,则float类型数据占(D )个字节。

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

11已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'3'后,c2中的值为( A )。

A)D B)68 C)不确定的值D)C

12逻辑运算符两侧运算对象的数据类型是( D )。

A) 只是0或1 B) 只能是0或非0正数

C) 只能是整型或字符型数据D) 可以是任何合法的类型数据

13TURBO C中int类型变量所占字节数是( B )。

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

14在C语言中,char型数据在内存中的存储形式是( D )。

A) 补码B) 反码C) 原码D) ASCII码

15若有以下定义,则能使值为3的表达式是( D )。

int k=7, x=12;

相关文档