C语言程序设计习题集Word文档下载推荐.docx

上传人:b****5 文档编号:18343704 上传时间:2022-12-15 格式:DOCX 页数:46 大小:45.28KB
下载 相关 举报
C语言程序设计习题集Word文档下载推荐.docx_第1页
第1页 / 共46页
C语言程序设计习题集Word文档下载推荐.docx_第2页
第2页 / 共46页
C语言程序设计习题集Word文档下载推荐.docx_第3页
第3页 / 共46页
C语言程序设计习题集Word文档下载推荐.docx_第4页
第4页 / 共46页
C语言程序设计习题集Word文档下载推荐.docx_第5页
第5页 / 共46页
点击查看更多>>
下载资源
资源描述

C语言程序设计习题集Word文档下载推荐.docx

《C语言程序设计习题集Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言程序设计习题集Word文档下载推荐.docx(46页珍藏版)》请在冰豆网上搜索。

C语言程序设计习题集Word文档下载推荐.docx

5.下列关于C语言的叙述错误的是()

A.英文字母大小写不加以区分

B.不同类型的变量可以出现在同一个表达式中

C.在赋值表达式中赋值号两边的类型可以不同

D.某些运算符在不同的场合可以有不同的含义

6.下列转义字符中错误的是()

A.′\000′B.′\14′

C.′\x111′D.′\2′

7.下列标识符中,不是C语言保留字的是()

A.charB.while

C.minD.default

8.下列保留字中用于构成循环结构的是()

A.ifB.whileC.switchD.default

9.数据-324在二进制文件和文本文件中所占的字节数分别是()

A.2,2B.2,4

C.4,2D.4,4

10.请选出可以作为C语言用户标识符的一组标识符( )

A.void,define,WORDB.A3_B3,_123,abc

C.FOR,-abc,CaseD.2a,Do,Sizeof

11.下列运算符优先级最高的是( )

A.关系运算符B.赋值运算符

C.算术运算符D.逻辑运算符

12.sizeof(float)是( )

A.一种函数调用B.一个不合法的表示形式

C.一个整型表达式D.一个浮点表达式

13.下列叙述不正确的是( )

B.一个C语言程序必须包含一个main函数

14.编译C语言程序时,程序中的注释部分将( )

A.不参加编译,也不会出现在目标程序中

B.参加编译,但不会出现在目标程序中

C.不参加编译,但会出现在目标程序中

D.参加编译,并会出现在目标程序中

15.下列字符串常量不正确的是( )

A.'

abc'

B."

12'

12"

C."

0"

D."

"

16.下列4个选项中,均是合法整型常量的是( )

A.160-0xffff011

B.-0xcdf01ª

0xe

C.-01986,0120668

D.-0x48a2e50x

17.以下选项中不属于C语言类型的是( )

A.signedshortintB.unsignedlongint

C.unsignedintD.longshort

18.数值029是一个( )

A.八进制数B.十六进制数

C.十进制数D.非法数

19.在C语言中,要求运算数必须是整型的运算符是( )

A./B.++C.!

=D.%

20.当c的值不为0时,以下能将c的值赋给变量a,b的是( )

A.c=b=aB.(a=c)||(b=c)

C.(a=c)&

&

(b=c)D.a=c=b

1.表示空类型的保留字是_____________。

2.已知“intx=6;

”,则执行语句“x+=x-=x*x”后x的值是。

3.若“w=1,x=2,y=3,z=4”,则条件表达式“w>

x?

w:

y<

z?

y:

z”的结果是。

4.若“intm=5,y=2;

”,则计算表达式“y+=y-=m*=y”后y的值是。

5.在C语言中,一个int型数据在内存中如果占2个字节,则int型数据的取值范围为。

6.已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式“ch='

a'

+'

8'

-'

3'

”的值为。

7.若有定义“inta=2,b=3;

floatx=3.5,y=2.5;

”,则表达式“(float)(a+b)/2+(int)x%(int)y”的值为。

三、程序分析

1.下列程序的输出结果是。

#include<

stdio.h>

intmain()

{

intk=2,i=2,m;

m=(k+=i*=k);

printf(“%d,%d\n”,m,i);

return0;

}

2.以下程序的执行结果是。

inta,b,c;

a=b=1;

c=a++-1;

printf(“%d,%d,”,a,c);

c+=-a+++(++b||++c);

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

3.以下程序的执行结果是。

voidmain()

inti=10;

printf(“%d,%d,%d”,i--,i--,i--);

4.以下程序的执行结果是。

intx=042,y=067,z;

z=(x>

>

2)&

(y<

<

3);

printf(“%d\n”,z);

5.以下程序的执行结果是。

intx=10,y=9;

a=(--x==y++)?

--x:

++y;

b=x++;

c=y;

printf(“%d,%d,%d\n”,a,b,c);

6.以下程序输入123456789,其输出结果是。

inta,b;

floatf;

scanf(“%2d%*2d%2d%f”,&

a,&

b,&

f);

printf(“%d,%d,%f\n”,a,b,f);

四、编程题

1.输入某学生的数学(math)、英语(english)和C语言(C)的成绩,输出该学生这三门课的成绩、总成绩(sum)和平均成绩(aver)。

1.执行语句“for(i=0;

i<

10;

++i,++a)scanf(″%d″,a);

”试图为int类型数组a[10]输入数据,是错误的。

错误的原因是()

A.指针变量不能做自增运算B.数组首地址不可改变

C.++i应写作i++D.++a应写作a++

2.对于while语句,错误的说法是()

A.用条件控制循环体的执行次数

B.循环体至少要执行一次

C.循环体有可能一次也不执行

D.循环体中可以包含若干条语句

3.执行下列语句

inta=8,b=7,c=6;

if(a<

b)if(b>

c){a=c;

c=b;

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

后输出的结果是()

A.6,7,7B.6,7,8

C.8,7,6D.8,7,8

4.下列程序段运行后,x的值是()

a=1;

b=2;

x=0;

if(!

(--a))x--;

if(!

b)x=7;

else++x;

A.0B.3

C.6D.7

5.对do-whie语言错误的说法是()

A.可构成多重循环结构B.循环次数不可能为0

C.循环次数可能为0D.先执行后判断

6.设intx=1,a=9,b=6,c=7,d=8;

则执行语句:

if(a>

b)if(c>

d)x=2;

elsex=3;

后,x的值是()

A.1B.2

C.3D.不确定

7.与语句if(a>

b)if(c>

d)x=1;

elsex=2;

等价的是()

A.if(a>

b){if(c>

B.if(a>

}elsex=2;

C.if((a>

b)&

(c>

d))x=1;

D.if(a<

=b)x=2;

elseif(c>

d)x=1;

8.C语言的if语句中,用做判断的条件表达式为()

A.任意表达式B.逻辑表达式

C.关系表达式D.算术表达式

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

A.x%2==1B.x%2

C.!

(x%2)D.!

(x%2==0)

10.已知x=12,y=10,执行语句“y=x>

12?

x+1:

x-1”后y的值为( )

A.13B.11C.0D.10

11.已知a=1、b=2、c=3、d=4、m=2、n=2,执行语句“(m=a>

(n=c>

d);

”后n的值为( )

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

12.下列程序运行后输出( )

intx=10,y=20,z=30;

if(x>

y)z=x;

x=y;

y=z;

printf(“%d,%d,%d”,x,y,z);

A.x=10,y=20,z=30B.x=20,y=30,z=30

C.x=20,y=30,z=10D.x=20,y=30,z=20

13.下列程序( )

inta=5,b=0,c=0;

if(a=b+c)

printf(“111\n”);

else

printf(“222\n”);

A.有语法错误B.输出111

C.不能输出D.输出222

14.若x=4、y=-2、z=5,则表达式“++x-y+z++”的值为( )

A.10B.11C.12D.13

15.C语言允许if…else语句嵌套使用,规定else总是和( )配对

A.之前最近的ifB.第1个if

C.缩进位置相同的ifD.之前最近的且尚未配对的if

二、填空题

1.在执行循环结构或switch结构时,能够立即退出该结构的语句是__________。

2.执行语句“s=0;

n=5;

while(--n)s+=n;

”后,变量s、n值依次为______________。

3.执行语句“for(s=0,i=1;

11;

i++){if(i==6)continue;

s+=i;

}"

后,s值为_____________________。

4.结构化程序设计的三种基本结构是:

选择结构、循环结构和__________________。

5.设for(k=0;

k<

0;

k++)++k;

则该循环共执行_______________次。

6.执行语句“n=1;

if(n=5)n++;

"

后,变量n值为_____________________________。

7.在C语言中,break语句只能用于语句和语句中。

8.当a=3,b=2,c=1时,表达式f=a>

b>

c的值是。

三、程序填充题

1.一个三位整数(100~999),若各位数的立方和等于该数自身,则称其为“水仙花数”(如:

153=13+53+33),找出所有的这种数。

main()

{

intn,a,b,c;

/*n、a、b和c分别为三位数自身及其个位、十位和百位*/

for(c=________;

c<

=9;

c++)

for(b=________;

b<

b++)

for(______;

a++)

n=_________;

if(a*a*a+b*b*b+c*c*c==_________)

printf(″%d\n″,n);

}

2.将一个十进制整数n转变为二进制数。

main()

{inti=0,j,n,num[20];

scanf(″%d″,__________);

while(n!

=__________)

{num[i++]=_____________;

n=_______________;

for(j=i-1;

j>

=_________;

j--)printf(″%d″,num[j]);

3.下列函数sum的返回值为一个整数m的所有因子之和。

___________________/*第一空*/

{ints=1,i;

for(_______________;

=______________;

i++)/*第二空*//*第三空*/

if(_______________)s=s+i;

/*第四空*/

_________________________;

/*第五空*/

4.下列程序段的功能是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。

intn=0,c;

c=getchar();

while()

if()n++;

5.下列程序的功能是计算2~100的偶数的累加和。

inti,sum=0;

for()

sum+=i;

printf(“sum=%d\n”,sum);

6.下列程序的功能是找出整数的所有因子。

intn,i;

scanf(“%d”,&

n);

for(i=1;

;

i++)

if()

printf(“%3d”,i);

printf(“\n”);

四、程序分析

1.main()

{inti;

for(i=0;

5;

i++)

switch(i%2)

{case0:

printf(″1″);

break;

case1:

printf(″0″);

2.#include"

stdio.h"

main()

{charc;

c=getchar();

if(c>

='

w'

||c>

A'

W'

)c=c+3;

elseif(c>

x'

z'

)||c>

X'

Z'

)c=c-23;

printf("

%\n"

c);

设从键盘上输入Next↙

3.main()

{

ints=0,i;

for(i=1;

;

if(s>

50)break;

if(i%2==0)s+=i;

printf(″i=%d,s=%d\n″,i,s);

}

4.

#include<

main()

{inti=0;

charc,s[]=″SABC″;

while(c=s[i])

switch(c)

case′A′:

i++;

break;

case′B′:

++i;

default:

putchar(c);

putchar(′*′);

5.下列程序的输出结果是。

inta=100,x=10,y=20,ok1=5,ok2=0;

if(x<

y)

if(y!

=10)

ok1)

if(ok2)

a=10;

a=-1;

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

6.下列程序运行后输出。

intx=1,y=2;

switch(x)

case1:

switch(y)

printf(“%d”,x);

break;

case2:

printf(“%d”,y);

printf(“3”);

7.下列程序执行后的输出结果是。

inta=3;

do

printf(”*”);

a--;

}while(!

a==0);

8.下列程序的执行结果是。

inti=1,n=0,s=1;

n=n+s*i;

s=-s;

}while(i<

=9);

printf(”%d”,n);

9.下列程序运行后输出。

inta,b=19;

while(a=b-1)

b-=3;

if(b%5==0)

a++;

continue;

elseif(b<

5)

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

10.下列程序的运行结果是。

inti=1;

while(i<

=15)

if(++i%3!

=2)

printf(“%d\t”,i);

11.下列程序的运行结果是。

inti=5;

switch(i%2)

case4:

i--;

case6:

continue;

i--;

}while(i>

0);

五、编程题

1.输出100之内所有个位数字为6且能被3整除的自然数。

(如:

36,66,96……)

2.求出10至1000之内能同时被2、3、7整除的数,并输出。

1.下列运算符中,优先级最高的是()

A.[]B.++

C.%D.&

2.下列表达式的值为0的是()

A.3%5B.3/5.0C.3/5D.3<

5

3.设inta=3;

则表达式a<

1&

--a>

1的运算结果和a的值分别是()

A.0和2B.0和3C.1和2D.1和3

4.执行语句“k=5|3;

”后,变量k的当前值是()

A.1B.8

C.7D.2

5.执行语句“k=5∧3;

A.15B.125

C.8D.6

6.C语言中计算a3正确的表达是()

A.a^3B.pow(a,3)

C.a**3D.power(a,3)

7.设floata=2,b=4,c=3;

,以下C语言表达式与代数式(a+b)c计算结果不一致的是()

A.(a+b)*c/2B.(1/2)*(a+b)*c

C.(a+b)*c*1/2D.c/2*(a+b)

8.设inta=10,b=20,c=30;

条件表达式a<

b?

a=5:

c的值是()

A.5B.10

C.20D.30

9.设inta=9,b=6,c;

,执行语句c=a/b+0.8;

后c的值是()

A.1B.1.8

C.2D.2.3

10.设inta=1,b=2,c=4;

经过表达式(c=a!

=b)&

(a==b)&

(c=b)运算后,a、b和c的值分别是()

A.1,2,0B.1,2,1

C.1,2,2D.1,2,3

1.设intx=2,y=1;

则表达式x+++y的值是__________。

2.设inta=-3,b=7,c=-1;

则执行(a==0)&

(a=a%b<

b/c);

后变量a的值是__________。

3.设inta,b,c;

则执行a=(b=3,c=5,b=10);

4.设inta=1,b=2,m=2,n=2;

,执行表达式(m=a<

b)||++n后,n的值是_______。

5.执行语句“a=5+(c=6);

”后,变量a、c的值依次为_________________。

6.设inty;

执行表达式(y=4)||(y=5)||(y=6)后,y的值是___________________。

7.设chara,b;

则表达式a/b-′c′的值的类型为____________________。

8.设inta=1,b=2;

经表达式a=a∧b,b=a∧b,a=a∧b运算后a,b的值分别是__________。

9.位运算是对运算量的_____________位进行运算。

10.位运算符只对_______和___________数据类型有效。

11.设有一个整数a,若要

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 兵器核科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1