C语言程序设计教程第三章练习题题目.docx

上传人:b****2 文档编号:2155834 上传时间:2022-10-27 格式:DOCX 页数:29 大小:22.60KB
下载 相关 举报
C语言程序设计教程第三章练习题题目.docx_第1页
第1页 / 共29页
C语言程序设计教程第三章练习题题目.docx_第2页
第2页 / 共29页
C语言程序设计教程第三章练习题题目.docx_第3页
第3页 / 共29页
C语言程序设计教程第三章练习题题目.docx_第4页
第4页 / 共29页
C语言程序设计教程第三章练习题题目.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

C语言程序设计教程第三章练习题题目.docx

《C语言程序设计教程第三章练习题题目.docx》由会员分享,可在线阅读,更多相关《C语言程序设计教程第三章练习题题目.docx(29页珍藏版)》请在冰豆网上搜索。

C语言程序设计教程第三章练习题题目.docx

C语言程序设计教程第三章练习题题目

单项选择题

1、假设定义a=3,b=4,执行printf("%d,%d〞,(a,b),(b,a));的输出结果为〔〕。

A.3,4

B.4,3

C.3,3

D.4,4

2、如果要求在if后的判断条件是a不等于0,则以下选项中能正确表达这一关系的是〔〕。

A.a<>0

B.!

a

C.a=0

D.a

3、为了防止嵌套的if-else语句的二义性,C语言规定else总是与〔〕组成配对关系。

A.缩排位置一样的if

B.在其之前未配对的if

C.在其之前尚未配对的最近的if

D.同一行上的if

4、有定义intt=0;则有循环while(t=1){…},则以下关于while循环语句的描述中正确的选项是〔〕。

A.循环控制表达式的值为0

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

C.循环控制表达式的值不合法

D.以上说法都不对

5​、假设有定义:

int*,i;则以下for循环语句:

for(i=0,*=0;i<=9&&*!

=876;i++)

scanf("%d〞,&*);

以下选项中,描述正确的选项是〔〕

A.最多执行10次

B.最多执行9次

C.是无限循环

D.循环体一次也不执行

6、​关于下面的for循环语句

inti,k;

for(i=0,k=-1;k=1;i++,k++)printf("*****〞);

以下选项中,描述正确的选项是〔〕

A.判断循环完毕的条件非法

B.是无限循环

C.只循环一次

D.一次也不循环

7、C语言程序的三种根本构造是〔〕。

A.顺序构造,选择构造,循环构造

B.递归构造,循环构造,转移构造

C.嵌套构造,递归构造,顺序构造

D.循环构造,转移构造,顺序构造

8、假设要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为〔〕。

A.a<>0

B.!

a

C.a=0

D.a

9、​两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是〔〕。

voidmain()

{

int*;

scanf("%d",&*);

if(*++>5)

printf("%d",*);

else

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

}

A.7和5

B.6和3

C.7和4

D.6和4

10、运行以下程序后,如果从键盘上输入china*,则输出结果为〔〕。

*include

voidmain()

{

intv1=0,v2=0;

charch;

while((ch=getchar())!

='*')

switch(ch)

{

case'a':

case'h':

default:

v1++;

case'0':

v2++;

}

printf("%d,%d\n",v1,v2);

}

A.2,0

B.5,0

C.5,5

D.2,5

11​、有如下程序:

voidmain()

{

int*=1,a=0,b=0;

switch(*)

{

case0:

b++;

case1:

a++;

case2:

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

12​、下面程序的输出是〔〕。

voidmain()

{

char*a="12134211";

intv1=0,v2=0,v3=0,v4=0,k;

for(k=0;s[k];k++)

switch(s[k])

{

default:

v4++;

case'1':

v1++;

case'3':

v3++;

case'2':

v2++;

}

printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4);

}

A.v1=4,v2=2,v3=1,v4=1

B.v1=4,v2=9,v3=3,v4=1

C.v1=5,v2=8,v3=6,v4=1

D.v1=8,v2=8,v3=8,v4=8

13​、以下程序段的输出结果为〔〕。

inty=1;

while(y--);

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

A.y=-1

B.y=0

C.死循环

D.y=9

14、​当输入数据:

2763时,下面程序的运行结果是〔〕。

*include

intgbs(inta,intb)

{

intc;

a=a>0"a:

-a;

b=b>0"b:

-b;

c=a*b;

if(c==0)

return0;

while(a!

=b)

if(a>b)

a-=b;

else

b-=a;

returnc/a;

}

intgys(inta,intb)

{

if(a*b==0)

return0;

a=a>0"a:

-a;

b=b>0"b:

-b;

while(a!

=b)

if(a>b)

a-=b;

else

b-=a;

returna;

}

voidmain()

{

inta,b,c,d;

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

c=gbs(a,b);

d=gys(a,b);

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

}

A.a=30b=63gbs=189gys=9

B.a=27b=63gbs=190gys=10

C.a=27b=63gbs=189gys=9

D.a=27b=63gbs=188gys=10

15、假设有程序段:

intk=0;while(k=1)k++;while语句的循环次数是〔〕。

A.无限次

B.有语法错,不能执行

C.一次也不执行

D.执行1次

16、​执行下面程序片段的结果是〔〕。

int*=23;

do

{

printf("%2d",*--);

}while(!

*);

A.打印出321

B.打印出23

C.不打印任何内容

D.陷入死循环

17、在C语言程序中,假设希望完毕循环,则do-while语句构成的循环中的条件为〔〕。

A.0

B.1

C.true

D.非

18、以下描述中正确的选项是〔〕。

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

B.do-while语句构成的循环只能用break语句退出

C.用do-while语句构成的循环,在while后的表达式为非零时完毕循环

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

19、​以下循环体的执行次数是〔〕。

voidmain()

{

inti,j;

for(i=0,j=1;i<=j+1;i+=2,j--)

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

}

A.3

B.2

C.1

D.0

20、​有如下程序:

voidmain()

{

inti,sum;

for(i=1;i<=3;sum++)

sum+=i;

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

}

该程序的执行结果是〔〕。

A.6

B.3

C.死循环

D.0

21、​以下程序的输出结果是〔〕。

voidmain()

{

int*=10,y=10,i;

for(i=0;*>8;y=++i)

printf("%d%d",*--,y);

}

A.10192

B.9876

C.10990

D.101091

22、以下说法中正确的选项是〔〕。

A.在switch语句中一定要使用break语句

B.在switch语句中不一定要使用break语句

C.break语句是switch语句的一局部

D.break只能用于switch语句中

23​、执行下面的程序后,a的值为〔〕。

voidmain()

{

inta,b;

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

{

if(b>=20)

break;

if(b%3==1)

{

b+=3;

continue;

}

b-=5;

}

}

A.7

B.8

C.9

D.10

24、​假设有以下程序段,w和k都是整型变量:

w=k;

LB:

if(w==0)

gotoLE;

w--;

printf("*");

gotoLB;

LE:

则不能与上面程序段等价的循环语句是〔〕。

A.for(w=k;w!

=0;w--)printf("*");

B.for(w=k;w;--w)printf("*");

C.w=k;while(w--!

=0)printf("*");w++;

D.w=k;do{w--;printf("*");}while(w!

=0);

多项选择题

1、C语言的程序构造语句包括〔〕。

A.顺序构造语句

B.循环构造语句

C.选择构造语句

D.逻辑构造语句

2以下语句哪些属于循环语句〔〕。

A.for语句

B.do-while语句

C.while语句

D.switch语句

判断题

1、break是跳出当前循环,接着执行循环后面的代码。

2、continue只能用于循环语句。

3、break语句只能在循环语句中使用。

4、在C语言中,跳转语句有break语句、goto语句和continue语句。

简答题

1、​请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。

voidmain()

{

inta,b,d=241;

a=d/100%9;

b=(-1)&&(-1);

printf("%d,%d〞,a,b);

}

2​、请阅读下面的程序,在空白处填写正确的代码,要求输出m和n的值,且每行从头开场。

voidmain()

{

intm=10,n=20;

printf(,m);

printf(,n);

}

3、​请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。

voidmain

{

int*=1,y=1,z=10;

if(z<0)

if(y>0)*=3;

else*=5;

printf("%d\t〞,*);

if(z=y<0)*=3;

elseif(y==0)*=5;

else*=7;

printf("%d\t〞,*);

printf("%d\t〞,z);

}

4​、请阅读下面的程序,在空白处填写正确的代码,实现分段函数:

*<0y=2*+3;

*=0y=0;

*>0y=(*+7)/3;

输入*,计算y值,输出y。

voidmain()

{

int*,y;

scanf("%d〞,&*);

if(*<0)y=2**+3;

y=0;

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

当前位置:首页 > 表格模板 > 调查报告

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

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