大学计算机应用基础C语言同步训练练习题分章节_第1页
大学计算机应用基础C语言同步训练练习题分章节_第2页
大学计算机应用基础C语言同步训练练习题分章节_第3页
大学计算机应用基础C语言同步训练练习题分章节_第4页
大学计算机应用基础C语言同步训练练习题分章节_第5页
已阅读5页,还剩99页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大学计算机应用课程

C语言学习-同步练习训练题

第1章概论

一、单选题:

1.以下叙述中正确的是

(C)o

A)C语言程序中可以有重名的函数

B)C语言程序中要求每行只能写

一条语句C)注释可以出现在C语

言程序中的任何位置

D)最小的C语言程序中可以没有

main()函数2.以下叙述正确的是

(C)。

A)在C程序中,main函数必须位于程序的最前面

B)C程序的每行中只能写一条语句

C)C语言本身没有输入输出语句

D)在对一个C程序进行编译的过程中,可发现注

释中的拼写错误3.以下叙述中不正确的是(D)。

A)一个C源程序可由一个或多

个函数组成B)一个C源程序必

须包含一个main函数

C)C程序的基本组成单位是函数

D)在C程序中,注释说明只能位于一条语句的后面

4.C语言程序的基本单位是

(C)0A)程序行B)

语句C)函数D)字符

5.以下叙述中正确的是(A)。

A)C程序中注释部分可以出现在程序中任

何合适的地方B)花括号〃{"和"}"只能作为

函数体的定界符

。构成C程序的基本单位是函数,所有函数名都可以由用户命名

D分号是c语句之间的分隔符,不是

语句的一部分6.以下叙述中正确的是

(C)。

A)C语言比其他语言高级

B)C语言可以不用编译就能被计算机识别执行

C)C语言以接近英国国家的自然语言和数学语言为语言的表达形式

D)C语言出现最晚,具有其他语言的一切优点

7.C语言程序的上机步骤中不包括(D)。

A)编辑B)编译C)连接D)编程

8.算法具有五个特性,以下不属于算法特

性的是(B)0A)有穷性B)简洁性

C)可行性D)确定性9.以下说法

错误的是(C)。A)一

个算法应包含有限个步骤

B)在计算机上实现的算法是用来处理数据

对象的

C)算法中指定的操作不能通过己经实现的基本运算

执行有限次后实现D)算法的目的是为了求解

二、填空题

1一个C语言程序必须有一个—函数。

2一个C语言程序必定从函数开始执行。

3函数体由符号—开始,用符号_结束。

4.C语言源程序文件的后缀是,经过编译后,生成文件的后缀

是经过连接生成文件的后缀是o5.算法的特征是、

、有穷性、个输出和一个输入。

参考答案:

2

选择题:1-5:CCDCA6-9:CDBC

填空题:1.主(或main())2.主(或main())

3.{,}4.c,obj,exe5.确定性,可行性,有穷性,有零个或多个输入0~n,有一

个或多个输出

第3章数据类型与表达式

一、单选题:

1.C语言中的标识符只能由字母、数字和下划线三种字符组成,

且第一个字符(OoA)必须为字母B)必须为下划线

C)必须为字母或下划线D)可以是字母、数字和下划线中的任一字符

2.以下选项中合法的用户标识符是

(B)oA)longB)_2Test

C)3DmaxD)A.dat3.下列

可作为C语言用户标识符的一组是

(B)o

A)void,var,wordB)aa,_123,B5C)if,-abc,

defineD)5x,BOT,sizeof4.以下(C)组中的标识符都

是合法的用户标识符。

A)3ab,A_10,stB)class,X1,gradeC)printf,INT,chartD)b3,a,

unsigned

5.C语言中的基本数据类型包括(B)o

A)整型、实型、逻辑型B)整型、实型、字符型C)

3

整型、字符型、逻辑型D)字符型、实型、逻辑型

6.下列各数据类型不属于构造类型的是

(A)oA)字符型B)共用型

C)结构型D)数组型7.以下选

项中不属于C语言的类型说明符的是

(D)o

A)signedshortintB)unsignedlongint

C)unsignedintD)longshort8.以下选项中

可以作为C语言中合法整数的是(C)。

A)10110BB)0386C)OxffaD)x2a2

9.以下选项中,都是正确的八进制数或十六进制数的是(Oo

A)022,018,0x2aB)02a,017,0x2aC)022,0x18,0x2aD)02a,0x2a,

123

io.以下选项中,均是合法整型常量的选项是(A)。

A)123,Oxffff,0123B)0xabc,018,

0x123C)01a,123,012,OxefD)0x22b,3e5,

01611.在16位C编译系统上,若定义longa;则能给变量a赋值40000

的正确语句是(D)oA)a=20000+20000;B)a=4000*10;

C)a=30000+10000;D)a=4000L*10L;

2已知大写字母A的ASCH码值为65,小写字母a的ASCH码值为97,则用八进制表

示的字符常量是(A)oA)字符AB)字符aC)字符eD)非法

的常量

以下选项中,非法的字符常量

4

是(C)oA)''t'B)'\117'

C)“\n"D)'\xaa'14.在C语言

中,退格符是(D)o

A)\nB)\tC)\fD)\b

$以下选项中合法的字符常量

是(B)。A)"B"B)'\010'

068D)D

6字符型数据在机器中是用ASCH码表示的,字符''5〃和''3〃在机器中表示为(C)o

A)1010001101110011B)01000101和01100111C)00110101和00H00110)01100101

和01100011

I下列数据中,(C)是不合法的C语

言实型数据。A)0.123B)123e3

C)1.23e4.5D)123.0

s合法的常量是(C)o

A)2e3.5B)-e-3C)-.5e-3D)'\xfg'

19.C语言中运算对象必须是整型运算

符的是(A)oA)%=B)+C)>

D)*

5

。若变量己正确定义并赋值,以下符合c语言语法的表

达式是(D)oA)a:=b+1B)a=b+2=c+3C)int

20.3%5D)a=b=c+1

2以下非法的赋值语句是(C)o

A)n=(i=2,++i);B)j++;C)++(i+l);

D)x=j>0;

2设x、y均为整型变量,且x=10,y=3,则以下语句的

输出结果是(D)oprintf(z/%d,%d\n,/,x—,—y);

A)10,3B)9,3C)9,2D)10,2

3若已定义x和y为double类型,则表达式x=l,

y=x+3/2的值是(C)。A)1B)2C)2.0D)2.5

2若变量a是int类型,并执行了语句:a='A,+1.6;则正确的叙述是(D)。

A)a的值是字符CB)a的值是浮点型C)不允许字符型和浮点型相加

D)a的值是字符'A'的ASCII值加上1

3以下不正确的叙述是(D)o

A)在C程序中,逗号运算符的优先级最低。B)在C程序中,APH和

aph是两个不同的变量。C)若a和b类型相同,在执行赋值表达式a=b

后b中的值将放入a中,而b中的值不变。D)当从键盘输入数据时,

对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。

26.若有定义:inta=7;floatx=2.5,y=4.7;则表达式

x+a%3*(int)(x+y)%2/4的值是(A)。A)2.5B)2.75C)3.5D)0.0

2设变量a是int型,b是float型,c是double型,则表达式a+b*c-4值的数据类型为

(C)o

A)intB)floatC)doubleD)不确定

8设变量x为float类型,y为int类型,则以下能实现将x中的数值保留小数点后两

位、第三位进行四舍五入运算的表达式是(D)o

A)x=x*100+0.5/100.0B)x=(x/100+0.5)*100.0C)x=(x*

100+0.5)/100.0D)y=x*100+0.5,x=y/100.0

9以下选项中,与1<="+完全等价的表

6

达式是(A)oA)k=n,n=n+l

B)n=n+l,k=nC)k=++nD)k+=n+l

0在C语言中,int,char和short三种类型数据在内存中所

占用的字节数(D)。A)由用户自己定义B)均为两个字节C)

是任意的

D)由所用机器的机器字长决定

J变量x,y,z均为double型且已正确赋值,不能正确表示数学式子x+y+z的C语言表达

式是(A).

A)x/y*zB)x*(1/(y*z))C)x/y*1/zD)x/y/z

a

3算术式为C表达式,不正确的是(C)。

描述—

b-c

A)a/b/cB)a/(b*c)C)a/b*c

D)(a/b)/c33.不能进行

++和一运算的数据类型为(D)oA)

指针B)整型C)长整型D)常量

34.设以下变量均为int类型,表达式的值不为5的是(C)o

A)x=y=4,x+y,x+1B)x=y=4,x+y,y+1C)x=y=4,x+1,x+yD)y=4,

y+1,x=y,x+135.若a,b,c和d都是int型变量,则计算表达式

a=(b=l,c=2,d=3)后,a的值为(C)。A)1B)2C)3D)6

36.以下叙述正确的是(D)o

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

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

0在C粉中,无论是整雌是实数都能被准确无谢

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

7

二、填空题

1.定义inta=5,b=4;则执行表达式b=++a*b—后,变量b的值为24。

2.C语言标识符由字母、数字和下划线组成,且必须以字母和下划线开头。不能

把关键字作为用户标识符。

3.假定x和y为double型,则表达式x=2,y=x+3/2的值是3.0。

4.数据'5'是一个字符类型的常量。

5.数据40在内存中占_______________________匕个字节,数据40L在内存中占.

个字节。

6.表达式2+6/(int)3.5的值是4。

7.如果有inta=5,则表达式a+=a-=4的值是2。

8.整数T在内存的二进制码存储形式为81111111111的二。

9.数据'A'在内存的存储形式为01000001。

10.数学表达〃-枭式的C语言表达式是2*x-

(x+y)/(3*y+l)。参考答案:

选择题:01-05:CBBCB06-10:ADCCAU-15:DACDB16-20:CCCAD21-

25:CDCDD26-30:ACDAD31-35:ACDCC36-40:D

填空题:1.242.字母,下划线,字母,下划线,关键

字3.3.04.字符5.246.47.2

8.11111111111111119.0100000110.2*x-(x+y)/(3*y+l)

第4章顺序

一、单选题:

1己知intk,m=l;执行语句k=-m++;后k的值是(A)。(提示:负号与自加运算符

同级,结合方向从右向左)A)-lB)0C)1D)2

2若变量a,b已正确定义,且a,b均已正确赋值,下列选项中合法的语句是(B)

A)a=bB)++a;C)a+=b++=l;D)a=int(b);(提示:a=b只是表达式非语句;

b++是个表达式)3.若有定义intx=4;则执行语句x+=x*=x+1;后,

x的值为(C)。

8

A)5B)20040D)无答案

4.若有定义和

语句:ints,

P;

s=p=5;p=s++,++p,p+2,p++;则执行语句后

p的值是(C)A)9B)8C)7D)6

5.若有定义:inta,b;则表达式a=4,b=3,a+b+2,a++,

a+b+2的值为(C)。A)12B)llC)10D)无答案

6.若有定义:floata=3.0,b=4.0,c=5.0;则表达式

l/2*(a+b+c)的值为(C)。A)6.0B)6C)0.0D)无答案

7以下程序段的输出结果是(C)。(提示:a当约束过严时,约束失效。

按自由格式输出。)inta=1234;

printf(,/%2d\n//,a);

A)12B)3401234D)提示出错,无结果

8下列程序段的输出结果

是(C)ointa=1234;

floatb=123.456;

double

c=12345.54321;

printf(级2d,%3.2f,%4.1T,a,b,c);

A)无输出B)12,123.46,12345.5C)1234,123.46,12345.5D)1234,123.45,1234.5

9设x,y均为整型变量,且x=8,y=5,则以下语句的

输出结果是(D)oprintf("%d,%d\n”,x一,

++y);

A)8,5B)7,5C)7,6D)8,6

9

0以下程序的输出结果是

(A)ovoidmain()

{inta=20,b=10;printf

(〃%d,%%d\n〃,a+b,a-

b);}

A)30,%dB)30,10C)30,%10D)以上答案均不正确

i下列程序的运行结果

是(A)ovoidmain()

{float

x=2.5;

inty;y=

(int)x;

printf(,,x=%f,y=%d〃,x,y);}

A)x=2.500000,y=2B)x=2.5,y=2C)x=2,y=2D)x=2.500000,y=2.000000

2己知intk=10,m=3,n;则下列语句的输

出结果是(B)oprintf(〃%d\n〃,n=

(k%m,k/m));

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

2以下程序的输出结果

是(A)。voidmain()

{charc='z';

printf(〃%c〃,c-

25);}

A)aB)zC)z-25D)y

4下面程序的输出结果

是(C)ovoidmain()

{double

d=3.2;int

x=l.2,y;

y=(x+3.8)/5

io

.0;

printf(//%d\n,/,d*y);}

A)3B)3.2C)0D)3.07

15.printfC%d,%d,%d\n”,010,0x10,10);输

出结果是(C)。A)10,10,10B)16,8,10

08,16,10D)无答案

16.下面程序的输出结果是(C)。(提示:输

出时无定界符)voidmain()

{intk=17:

printf(z/%d,%o,%x\n”,k,

k,k);)

A)17,17,17B)17,021,0x11C)17,21,11D)17,0x11,021

17.若有以下程序

段:intm=32767,

n=032767;

printf("%d,%o\n”,m,n);执行后的输出结果是

(A)oA)32767,32767

B)32767,032767C)32767,77777

D)32767,077777

18.若有以下程序

段:int

m=0xabc,

n=0xabc;

m-=n;printf("%x\n",m);执行后的结果是(C)。

A)0X0B)0x0C)0D)Oxabc

o下列程序执行后的输出结果

是(C)。voidmain()

{charx=0xFFFF;

printf(级d\n”,x

—);}

ii

A)-32767B)FFFEC)-lD)=-32768

2printf("a\bre\'hi\'y\\\bou\n");的输

出结果是(C)。A)a\bre\'hi\'y\\\bou

B)a\bre\'hi\'y\bouC)re'hi'you

D)abre'hi'y\bou

2有定义语句:intx,y;若要通过scanf("%d,%d",&x,&y);语句使变量x得到数值11,

变量y得到数值12,下面四组输入形式中错误的是(A)o

人)11<空格〉12〈回车>B)ll,(空格>12〈回车》C)ll,12〈回车〉

D)11,〈回车》

12〈回车〉

23.有以下程

序段:int

m=0,n=0;

charc='a';

scanf&m,

&c,&n);

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

若从键盘上输入:10A10〈回车》,则输出

结果是(A)。A)10,A,10B)16,a,10

C)10,a,0D)10,A,0

a若变量已正确说明为int类型,要通过语句scanf("%d%d%d”,&a,&b,&c);给a赋值

l,b赋值2,c赋值3,不正确的输入形式是(B)o

A)1〈空格>2〈空格>3〈回车>B)1,2,3(回车》C)1〈回车》D)1〈空格》2〈回

车》

2〈空格>3〈回车》3〈回车》

sa,b.c被定义为int型变量,若从键盘给a,b,c输入数据,正确的输入语句是(D)

A)inputa,b,c;B)read(,,%d%d%d,z,&a,&b,&c);C)scanf("%d%d%d”,a,b,c);

D)scanf("%d%d%d",&a,&b,&c);26.已知a,b,c为int型变量,若从键盘输入:1,2,3<回

车》,使a的值为1,b的值为2,c的值为3,以下选项中正确的

输入语句是(B)o

12

A)scanf(〃%2d,%2d,%2d〃,a,b,c);B)scanf(〃%d,%d,%d〃,&a,&b,&c);

C)scanf(〃%d%d%d〃,&a,&b,&c);

D)scanfC,i=%dj=%d,k=%d,/,&

a,&b,&c);27.执行下程序时输入:123<空格>456〈空

格>789〈回车〉,输出结果是(D)ovoidmain()

{chars;

intc,

i;

scanf(〃%c〃,&c);scanf&i);

scanf("%c〃,&s);printf("%c,%d,%c\n〃,

c,i,s);}A)123,456,789

B)1,456,789

01,23,456,789D)

1,23,4

二、填空题

1.有以下程

序:void

main()

{intm,n,p;scanf(,/m=%dn=%dp=%d/,,&m,&n,

&p);printf(,z%d%d%d\n/z,m,n,p);}

若想从键盘上输入数据,使变量口中的值为123,n中的值为456,p中的值为789,则正

确的输入是,

13

m=123n=456p=789_o

2.以下程序段的输出结果是

28ovoid

main()

{inta=2,b=3,

c=4;a*=16

+(b++)-(++c);

printf(〃%d〃,a);}

3.以下程序段的输出结果是5

14

intx=17,y=26;

printf(〃%d〃,y/=

(x%=6));

4以下程序的输出结果是—

8,10ovoidmain()

{inti=010,j=10;printf

C%d,%d\n,z,i,j);)

s下列程序的输出结果为一

12ovoidmain()

{intx=3,y=5;

printf(〃%d〃,x=(x--)*(--y));}

6.以下程序段的输出结果是1234。

inta=1234;

printf(〃%2d\n〃,

a);

7.若有以下程序:

voidmain()

{chara;

a='H'-'A'+O;

printf(〃%c,%d\n〃,a,a);}

执行后的输出结果是7,55o

8.以下程序段的输出结果是

261ovoid

main()

{inta=177;printf

(〃%o\n〃,a);)

9.以下程序的输出结果是

voidmain()

{unsignedshorta=65536;int

15

b;printf(z/%d\n,z,b=a);}

解释:无符号短整型占2个字节,最大值65535,二进制全lo65536多1,进位成1

0000000000000000,存到2字

节整型为0000000000000000

参考答案:

选择题:01-05:ABCCC06-10:CCCDA

U-15:ABACC16-20:CACDC21-

25:CAABD26-30:BD

填空题:1.m=123n=456p=7892.283.54.8,10

5.126.12347.7,558.2619.0

第5章选择

一、选择题

1已知a=10,b=20,则表达式!a<b的值是(C)。

A)真B)假C)1D)0

2数学关系式xWyWz可用C语言表达式(C)表示。

A)x<=y<=zB)x<=yANDy<=zC)x<=y&&y<=zD)(x<=y)&(y<=z)

3若有定义和语句:inta=10,b=5,x;charc='A';x=a&&b&.&c<'a';则x值是

(D)o

A)真B)假C)OD)1

4设intx=l,y=2,则表达式(一x||y++)

的值是(B)oA)0B)1C)2

D)-l

16

5设x,y,t均为int型变量,则执行语句

x=y=3;t=++x||++y;后y的值为(C)。A)不一定B)4

03D)1

6设x,y,t均为int型变量,则执行语句x=y=l;t=-x&&

++y;后y的值为(D)。A)不一定B)0C)2D)1

7设a、b、c均为int型变量,则执行下面程序段后,a值为(C),b值

为(C),c值为(C)。a=b=c=l;++b&&++c||++a;

A)0B)2C)1D)错误

A)0B)1C)2D)错误

A)0B)1C)2D)错误

8有定义语句:inta=l,b=2,c=3,x;,则以下选项中各程序段执行后,x

的值不等于3的是(C)。A)if(c<a)x=l;B)if(a<3)x=3;

elseif(b<a)x=2;elseif(a<2)

x=2;elsex=3;elsex=l;

C)if(a<3)x=3;D)if(a<b)x=b;

if(a<2)x=2;if(b<c)x=c;

if(a<l)x=l;if(c<a)x=a;

9以下程序运行后的输出结果

是(C)ovoidmain()

{inta=l,

b=2,m=0,n=0,k;

k=(n=b>a)||

(m=a<b);

printf(z/%d,%d\n”,k

,m):)

A)0,0B)0,1C)l,0D)1,1

10.有以下程

序:void

main()

{inti=l,j=l,k=2;

17

if((j++1Ik++)&&i++)

printf(z/%d,%d,%d\n〃,i,

j,k);}执行后输出结果是(C)0

A)l,1,2B)2,2,1C)2,2,2D)2,2,3

i以下程序的输出结果

是(C)ovoidmain()

{inta=-l,b=l,k;

if((++a<0)&&!(b--<=0))printf

(〃%d%d\n〃,a,b);elseprintf

(〃%d%d\n〃,b,a);}

A)-11B)01C)10D)00

2如果从键盘上输入3,则以下程序的输出

结果是(B)ovoidmain()

{intx;scanf

&x);

if(x--<3)printf

-x);elseprintf

(〃%d〃,x++);}

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

3以下程序的输出结果

是(C)。voidmain()

{inta=2,b=-l,

c=2;if(a<b)

if(b<0)c=0;

18

elsec++;

printf(〃%d\n〃,

c);}

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

i在执行下程序时,为了使输出的结果为:t=4,则给a和b输入的值

应满足的条件是(OoA)a>bB)a<b<0C)0<a<bD)0>a>b

voidmain()

{ints>t,a,b;

scanf("%d,断T,&a,

&b);s=l;t=l;

if(a>0)s

=s+l;if

(a>b)

t=s+l;

elseif(a==b)

t=5;else

t=2*s;

printf("t=%d\n”,t);}

$以下程序的输出结果

是(C)ovoidmain()

{floatx=2.0,

y;if(x<0.0)

y=0.0;

elseif(x<10.0)

y=l.0/x;else

y=l.0;

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

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

6当a=l,b=3,c=5,d=4时,执行下面一段程序后,x的值为(B)o(提示:重点

搞清if-else配对的情况)if(a<b)

19

if(c<d)

x=l;else

if(a<c)

if(b<d)

x=2;else

x=3;

elsex=4;

elsex=5;

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

T若有定义:floatw;inta,b;则合法的

switch语句是(D)oA)switch(w)

B)switch(a)

{caseLO:printf(〃*\n〃);{case1printf(〃*\n〃);

case2.0:printf(〃**\n〃);}case2

printf(〃*\n〃);}C)switch(b);

D)switch(a+b)

{case1:printf(〃*\n〃);{case

Lprintf(〃\n〃);

default:printf(〃\n〃);case

2:printf(〃**\n〃);case

1+2:printf(〃**\n〃);}default:

printf(〃\n〃);}

困若有定义:floatw;inta,b;则合法的switch

20

语句是(B)oA)switch(w)B)switch(a+b)

{case1.0:printf(〃*\n〃);{case1:printf(〃*\n〃);

case2.0:printf(〃狂\n〃);}case2:

printf(〃**\n〃);}C)switch(w+1.76)

D)switch(a);

{case1:printf(〃*\n〃);{case

l:printf(W);

default:printf(〃\n〃);case

2:printf(〃**\n〃);

21

casel+2:printf(〃***\rT);}default:printf(〃\n〃);}

9以下程序运行后的输出结果

是(D)。voidmain()

{inta=15,

m=0;

switch

(a%3)

{case0:

m++;case

1:m++;

default:m++;

}

printf("d\n〃,

m);)

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

20.以下程序运行后的输出结

果是(B)ovoidmain()

{int

a=10,m=0;

switch(a

/3)

{default:m++;

case0:m++;

break;case1:

m++;}

printf(〃%d\n〃,

m);}A)1B)2

C)3D)0

2以下程序运行后的输出结果

是(D)。voidmain()

22

{inta=10,b=21,

m=0;switch

(a%3)

{case0:

m++;break;

case1:m++;

switch(b%2)

{default:m++;

case0:

m++;break;

case2:m++;}

printf(〃%d\n〃,m);}

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

2设口、n、x均为int型变量,则执行下面程序段后,x值为(C),m

值为(C),n值为(C)。m=6;n=5;x=--m==n++?--m:++n;

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

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

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

2假定w,x,y,z,m均为int型变量,如有

以下程序段:w=4;x=3;y=2;z

=1;

m=(w<x)?w:x;m=(m<y)?m:y;m=

(m<z)?m:z;则该程序段运行后,m的

值是(D)o

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

二、填空题

1.设inta=5,b=6,表达式(++a==b—)?++a:―b的值是7

23

2.设y是int型,请写出y为奇数的关系表达式(y%2)==l或(y%2)!=0。

3.以下程序的输出结果是L0

24

voidmain()

{inta=4,b=5,c=0,d;

d=!a&&!b||c;printf(〃%d,%d\n〃,

b,d);}

4.以下程序运行后的输出结果是—

20

voidmain()

{intx=10,y=20,

t=0;if(x==y)

t=x;x=y;y=t;

printf(〃%d,%d\n〃,x,

y);}5.下列程序段的

输出结果是passwarn

intn='c';

switch(n++)

{default:printf

("error");break;case

‘a"

case'A':

case'b':

case'B':printf

("good");break;case'c':

case'C':printf

(pass);cased:

case<D,:printf("warn");

)

6以下程序运行后的输出结果是—

_3ovoid

main()

{intp=30;

25

printf(〃%d\n〃,(p/3>0?p/10:p

%3));}

7.以下程序输出的结果是一0.

_ovoidmain()

{inta=5,b=4c=3,d;

d=(a>b>c);

printf("%d〃,d);)

a以下程序运行后的结果是一

_yesovoid

main()

{inta=l,b=3,c=5;

if(c=a+b)

printf(〃yes\n〃);

elseprintf(〃no\n〃);

)

9.若有以下

程序:void

main()

{inta=4,b=3,c=5,t=0;

if(a<b)t=a;a=b;b=t;

if(a<c)t=a;a=c;c=t;

printf(〃%d%d%d”,a,b,c

);)

执行后的输出结果为_503o

10.以下程序的功能是将学生的百分制成绩转换成等级制

(100^90-'A'),请填空。voidmain()

{floatscore;/*score用来存放学生的百分制成绩*/

26

chargrade;/*grade用来存放学生的等

级制成绩*/inttemp;

scanf(〃%f〃,

&s);t=s/10;

if(t<6)t=5;

switch(t)

{case10:

case9:g='A';

break;case8:

g=;break;

case7:g=;

break;case6:

g='D';break;

case5:g=、E';

)

printf(zz%.Ifto%c\n〃,score,grade);}

11.下面程序的功能:模拟简单计算器计算表达式alopa2的值,其中al,a2为数

值,。P为运算符号+、-、*、/,请补充完整。

voidmain()

{floatal,a2;

charop;

scanf(〃%f%c%f〃,&al,

&op,&a2);switch(op)

{ca,+':printf(,,al+a2=%f\n/,,al+a2);break;

se

case':printf(,zal-a2=%f\nz,,

al-a2);break;case,*':printf

(〃al*a2=%f\n〃,al*a2);break;case

':if(a2==0)printf(〃除数为零!

/n〃);

27

elseprintf("al/a2=%f\n",

al/a2);break;default:printf("不认识的

运算符号\n〃);

})

参考答案:

选择题:01-05:CCDBC06-10:D(CCC)CCC11-15:CBCCC

16-20:BDCDB21-25:D(CCC)CD填空题:1.72.(y%2)==l或

(y%2)!=03,5,0

4.20,05.passwarn6.37.08.yes

9.50310.s/10,t=5

11.char,枇J

第6章循环

一、选择题:

1.C语言中用于结构化程序设计的三种基

本结构是(A)。A)顺序结构、选择结构、

循环结构

B)ifswitch>break

C)for>while,do-whileD)if>for>

continue2.有以下程序段:

intk=0;

while(k=l)

k++;

while循环执行的次数是(A)o

A)无限次B)有语法错误,不能执行

28

C)一次也不执行D)执行1次

3.x为int类型,进入下面的循环之前,x的值为0.

while(x=2){…}则以下叙述中正确

的是(B)。A)循环控制表达式的值为

0B)循环控制表达式的值为1

C)循环控制表达式的值为2D)循环控制表达式不合法

4以下程序段的输出结果

是(B)ointn=10;

while(n>7){n-;printf(线d\n”,n);)

A)B)901D)9

100

9898

8787

76

5执行语句:for(i=l;i++<4;);后,变量i

的值是(C)oA)3B)4C)5D)不定

6有如下程序段,其中s,a,b,c均已经定义为整型变量,且a,c

均己经赋值(c大于0):for(b=l;b<=c;b++)s=s+l;

则与上述程序段功能等价的赋值语

句是(C)。A)s=a+b;B)s=a+c;

C)s=s+c;D)s=b+c;7.以下程序

执行后sum的值是(D)o

voidmain()

{inti,sum;

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

sum+=i;

printf(级d\n”,

sum);}

29

A)15B)10C)5D)不确定

8以下程序段的输出结果

是(D)ointi,j,m=0;

for(i=l;i<=15;

i+=4)m++;

printf("%d\n”,m);

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

9以下程序的输出结果是(D).(提示:从最内层if开始进

行分析,逐层排除)voidmain()

{intx,i;

for(i=l;i<=100;i++)

{x=i;

if(++x%2==

0)

if(++x%3=

=0)

if(++x%7==0)

printf(z,%d”,x);

)

printf("\n");}

A)3981B)4284C)2668D)2870

0当执行以下程序段时,

(A)ox=~l;

do{x=x*x;}while(!x);

A循环体执行一次B)循环体执行两次C)循环体执行无限次

D)系统将提示有语法错误11.有如下程序:(提示:先判断出循环几次时,

结果才能得2。然后再以此为依据,求出n的值)

30

voidmain()

{int

s=0,a=l,n;

scanf("/d",

&n);

do{s+=l;a=a-2;}while(a!=n);

printf("%d\n',s);}

若要使程序输出为2,则该程序从键盘输入

的值是(B)。A)-lB)-3C)-5D)0

12.以下程序段的输出结

果是(C)intx=3;

do{printf("%3d”,x-=2);}while

(!(—x));A)1B)30C)1

-2D)死循环

13.以下叙述正确的是(D)。

A)do-while语句构成的循环不能用其他语句构成的循环来代替

Bdo…while语句构成的循环只能用break语句退出

。用do…while语句构成的循环,在while后的表达式为非零时结束循环

D用do-while语句构成的循环,在while后的表达式为零时结束循环

14.有如下程

序:void

main()

{intk=4,

n=0;for

(;n<k;)

{n++;

if(n%3!=0)

continue;k—;

)

31

printf("%d,%d\n",k,

n);)程序运行后的输出

结果是(C)o

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

15.在下列选项中没有构成死循环的程

序段是(A)oA)inti=100;

B)for(;;)

while(1)

{i=i%100+l;

if(i>=100)break;

)

C)intk=1000;D)ints=36;

do{++k;while(s);

}while(k>=1000);s--;

16.以下程序中,while循环的循环次数是(D)o(提示:遇continue时,立即结束

本次循环,执行下次循环。)voidmain()

{int

i=0;

do

(if

(i<l)contin

ue;if(i==

5)break;i++;

}while(i<10);

}

A)1B)10C)6D)死循环

32

17.以下程序的输出结

果是(D)ovoidmain

()

{inta,b;

for(a=l,b=l;a<=100;a++)

{if(b>=10)

break;

if(b%3==l)

{b+=3;continue;}

}

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

A)101B)603D)4

18.以下程序段的输出结果

是(B)。intk,j,s;

for(k=2;k<6;k++,k++)

{s=l;

for(j=k;j<6;j++)s+=j;}

A)15B)10C)24D)6

19.以下程序段的输出结果

是(D)ointk,j,s;

s=l;

for(k=l;k<5;k++,k

++)

for(j=k;j<5;j++)

s+=j;

A)17B)7C)10D)18

20.以下程序的输出结果是(B)o

#

include<stdio

33

.h>voidmain

()

{inti=0,

a=0;

while

(i<20)

{for(;;)

{if(i%10==0)

break;elsei-

}

i+=ll;a+

=i;

}printf

("为d'n",a);}

A)21B)32C)33D)11

二、填空题:

1.如果从键盘上输入2006,则以下程序运行后的输出结

果为6002o

voidmain()

{intnl,n2;

scanf&

n2);

while(n2!=0)

{nl=n2%10;

printf('%d",

nl);

n2=n2/10;

}}

2.有如卜程序:

34

voidmain()

{intn=8;

while(n>5){n--;printf(n);}}

该程序段的输出结果是.765。

3,若输入字符串abcde〈回车》,则以下while循环

体执行_生次。while((ch=getchar())!='e')

printf(〃*〃);4.以下程序运行后

的输出结果是8。

voidmain()

{inti=10,

j=0;do{

j=j+l;i—;

}while(i>2);

printf("%d\n",

j);}

s以下程序的输出结果是10

_ovoidmain()

{ints,i;for(s=0,

i=l;i<5;i++,s+=i);

printf(〃%d\n〃,s);}

6下面程序的功能是:计算1到10之间奇数之和及偶数之和,请填空。

#include<stdio.h>

voidmain()(提示:由输出可知,a存放偶数和,c存放偶奇之和。因用i控制循环,

当i取10时,并未超界,而其后的奇数(11)已超界,故需从c中减去11)

{inta,b,

c,i;a=c=0;

for(i=0;i<=10;i+=2)

{a+=i;b=i+l

_______________;c+=b;}

35

printf(〃偶数之和

=%d\n〃,a);printf(〃奇数

之和=%d\n〃,c-11);}

7,下面程序的功能是:输出100以内能被3整除且个位数为6的所有整数,请填空。

#

include<stdio

.h>voidmain

()

{

inti,j;

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

{j=i*10+6;

if(j%3!=0)

continue;printf(〃%d〃,

j);}}

&要使以下程序段输出10个整数,请填

空。for(i=0;i<20;)

printfC%d\n,z,i+=2);9.以下程序运行

后的输出结果是.17。

voidmain()

{intx=15;

while(x>10&&

x<50)

{x++;

if(x/3){x++;bre

ak;}else

continue;}

36

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

10.以下程序执行后的输出结果是—

16ovoid

main()

{inti=0,s=0;

do{if(i%2){i++;

continue;}i++;

s+=i;

}while(i<7);

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

11.执行以下程序后,输出#号的个数是一

—6o

#include<stdio.h>

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论