中国大学mooc《C程序设计基础(厦门大学) 》章节测试答案_第1页
中国大学mooc《C程序设计基础(厦门大学) 》章节测试答案_第2页
中国大学mooc《C程序设计基础(厦门大学) 》章节测试答案_第3页
中国大学mooc《C程序设计基础(厦门大学) 》章节测试答案_第4页
中国大学mooc《C程序设计基础(厦门大学) 》章节测试答案_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

titleC程序设计基础(厦门大学)中国大学mooc答案100分最新版content第一周C语言简介选择题1、下面的叙述正确的是()。答案:一个C的源程序可以由一个或多个函数组成2、C程序是从()开始执行的。答案:主函数3、关于C程序的叙述,正确的是(

)。答案:一条语句可以写在多行,也可以多条语句写在一行4、以下正确的printf语句是()。答案:‍printf(“ThisisaCprogram.”);5、

/*程序功能:打印输出helloworld

#include<stdio.h>

intmain()

{

printf(“Hello,world”);

return0;}上面程序的运行结果是(

)答案:程序出错,不能运行6、设有程序“1.cpp”,编译后运行该程序,执行的是(

)文件。答案:1.exe7、下面程序的错误是()#include

<stdio.h>

int

mian()

{

printf(“hello

world”)

return

0;}答案:printf(“hello

world”)

后面少分号;

主函数名写错8、输出结果为500+200=700的语句是()。答案:printf(“500+200=%d”,500+200);;

printf(“500+200=700”);9、输出结果为2564=1600的语句是()。答案:printf(“2564=%d”,2564);;

printf(“2564=1600″);10、下面是关于C程序注释的叙述,其中正确的是(

)。答案:/……/可以注释多行,也可以注释一行;

//是行注释,从//开始至行尾为注释内容11、下面程序的错误是()#include

<stdio.h>

int

mian()

{

printf(“hello

world”)

return

0;}答案:printf(“hello

world”)

后面少分号;

主函数名写错第一周C语言简介判断题(本周语法汇总)1、编写C程序时,main函数必不可少。答案:正确2、printf(“”);

可实现换行答案:正确3、C的每条语句结束处必须用分号。答案:正确4、注释语句不影响程序的运行。答案:正确5、若使用printf输出结果,则必须在程序前添加#include<stdio.h>答案:正确6、C程序中的标点符号(如分号;)必须用英文的标点符号。答案:正确7、printf(“”);

可实现换行答案:正确8、printf(“”);

可实现换行答案:正确

第二周C语言基础语法语法知识选择题1、下列浮点数的表示中不正确的是(

)。答案:e232、合法的C语言标识符是(

)答案:sum3、不合法的C语言标识符是(

)。答案:4d4、下列定义变量的语句中错误的是(

)。答案:Doublea1;5、在C语言中,要求运算数必须是整型的运算符是(

)。答案:%6、下面(

)语句正确地描述了计算公式

答案:y=(axx*x)/(x–b);7、下面(

)是合法的赋值语句.答案:

i=1;8、下面程序的输出是(

)。#include<stdio.h>intmain(){

intx=10,y=3;

printf(“%d”,y=x/y);

return0;}答案:39、下面程序的输出是(

)。#include<stdio.h>int

main(){

int

a=5;

printf(“a=%d”,++a+2);

return0;}答案:a=810、78%10的结果是(

)。答案:811、下面程序的输出是(

)。

#include

<stdio.h>int

main(){

int

a=8;

printf(“%d”,(a++)*2);

return0;}答案:1612、下面程序的输出是(

)。#include

<stdio.h>int

main(){

int

a=3;

printf(“%d”,(a–)*7);

return0;}

答案:2113、下面程序的输出是(

)。#include<stdio.h>int

main(){

int

b=3,a=3;

printf(“%d,%d”,b,a–);

return0;}

答案:3,314、i=1;执行(

)语句后,变量i的值不会发生变化。答案:i+5;15、intx;scanf(“%d”,&x);下面(

)可以获得x的个位数。答案:x%10;16、语句floatx=3.0

,y=4.0;下列表达式中y的值为9.0的是(

)。答案:y+=x+2.017、有关运算符的正确描述是(

)答案:单目运算符优先级高于双目运算符18、下面(

)语句正确地描述了方程

答案:‍y=a*x*x*x+c;;

y=(a*x*x*x)+c;19、下面(

)能完成变量a,b的值的交换。答案:t=a;a=b;b=t;;

a=a+b;b=a-b;a=a-b;20、(

)可以使整型变量i的值加1。答案:i++;;

++i;;

i=i+1;;

i+=1;21、int

y,a;scanf(“%d”,&y);输入任意整数,下面(

)中,a是y的百位数。答案:a=y/100%10;;

a=y%1000/100;第二周C语言基础语法第二周易错知识点练习1(选做)1、当x是41.0时,算术表达式5/9*(x-32)的运算结果是(

)。答案:02、答案:3.14159r*r/(a+b)

3、当x是41.0时,printf(“%f”,5.0/9*(x-32));输出结果是(

)。答案:5.0000004、x为int型,表达式

(x=1)+2的值是(

),x的值是(

)。答案:3,15、int

a=10,b=100;printf(“%d,%d,”,

a++,++b);printf(“%d”,

a);程序的输出结果是(

)。答案:10,101116、在C语言中,下面(

)是正确的赋值表达式。答案:x=2;

b=a=2

第三周格式化输入输出及选择结构1选择题—计分1、‍能正确表示逻辑关系x<=y<=z的C语言表达式为(

)

答案:(x<=y)&&(y<=z)

2、能正确表示逻辑关系“a大于等于10或a小于等于0”的C语言表达式是(

)

答案:a>=10‖a<=0

3、能正确表示逻辑关系“79<X<90”的C语言表达式是(

)答案:‍

(X>79)&&(

X<90)

4、设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是()答案:‍10<a<15

5、设x,t均为int型变量,则执行语句“x=10;t=x&&x>10;”后,t的值为()答案:‍06、下面程序,运行后的输出结果是(

)#include<stdio.h>intmain(){

int

a=1,b=3,c=4;if(a<b)

a=b;if(a<c)

a=c;printf(“%d,%d,%d”,a,b,c);}答案:4,3,4

7、语法不正确的语句是(

)答案:‍if(x==y)&&(x!=0)

x++;8、如果整型变量a,b,c的值分别为5,4,3,则语句if(a>b>c)c++;执行后c的值是(

)答案:39、如果整型变量a,b,c的值分别为3,4,5,则语句if(a<b<c)c++;执行后c的值是()答案:610、运行以下程序,如果从键盘上输入5,则输出结果是(

)#include<stdio.h>int

main(){

intx;scanf(“%d”,&x);if(x–<5)printf(“%d”,x);}

答案:无输出‍11、C语言语句中,可以用来决定分支流程的表达式是(

)答案:‍任意表达式12、intx=102,y=12;printf(“%2d,%3d”,x,y);执行后输出结果是(

)答案:102,1213、设i是int型变量,j是float型变量,用下面的语句给这两个变量输入值:

scanf(“i=%d,j=%f”,&i,&j);

为了把10和2.5分别赋给i和

j,则正确的输入为(

)

答案:i=10,j=2.5<回车>

14、执行下面语句,inta=1,b=2,c=3;if(a>c)

b=c;a=c;c=b;a,b,c的值分别为(

)(用逗号分隔)答案:3,2,215、请选出正确的输入语句(

)。答案:doublef;scanf(“%lf”,&f);16、在printf函数中,浮点型数据输出的格式控制符有(

)。答案:%e;

%f;

%g17、下面程序中,(

)可以输出变量a,b,c的最大值。答案:if(a>=b&&a>=c)

printf(“最大值为%d”,a);

if(b>=a&&b>=c)

printf(“最大值为%d”,b);

if(c>=a&&c>=b)

printf(“最大值为%d”,c);

;

max=a;

if(b>max)max=b;

if(c>max)max=c;printf(“最大值为%d”,max);18、设a=1,b=2,c=3,关系表达式a+b>=c的值是(

)。

答案:119、设a=1,b=2,c=3,逻辑表达式a&&b&&c的值是(

)。

答案:120、设a=1,b=2,c=3,逻辑表达式a||!b||!c的值是(

)。

答案:121、输入一个考试分数(0至100范围内),如果分数小于60分,则输出“不及格”;大于90分输出“优秀”;大于等于60并且小于等于90,则输出“合格”。(有1个空,答案一行写一个,不要添加多余的空格)#include<stdio.h>

intmain(){

intx;

printf(“请输入分数(0-100):“);

scanf(“%d”,&x);

if(x<60)

printf(“不及格”);

if(x>90)

printf(“优秀”);

printf(“合格”);

//注意分数在一个区间内,C语言中该如何描述

return0;}

答案:(以下答案任选其一都对)if(x>=60&&x<=90);

if(60<=x&&x<=90);

if(60<=x&&90>=x);

if(x>=60&&90>=x);

if(x>=60&&x<=90);

if(60<=x&&x<=90);

if(60<=x&&90>=x);

if(x>=60&&90>=x);

if((x>=60)&&(x<=90))22、我国的邮政编码由六位阿拉伯数字组成,前第三位代表邮区,厦门市的邮政编码前三位为361

。下面的程序功能:如果输入的邮政编码前3位是361,则输出“厦门市的邮件”;如果不是361,则输出“不是厦门市的邮件”。请完善程序(有2个空,答案一行写一个,不要添加多余的空格).#include

<stdio.h>

int

main(){

int

code;

printf(“请输入邮政编码:

“);

scanf(”

%*3d”,&code);

//用scanf函数截取输入邮政编码的前3位

if(361

code

)

printf(

“厦门市的邮件”);

if

(361!=code)

printf(

“不是厦门市的邮件”);

return

0;}需要更多样例参考的同学可查阅课件“

选择结构初步

”里的最后一个文档

“习题解析”中第2题

答案:%3d

==23、设x,t均为int型变量,则执行语句“x=10;

t=

x&&x>10;”后,t的值为()提示:赋值运算优先级较低,低于算术、关系、逻辑运算。答案:‍024、intx=102,y=12;printf(“%2d,%3d”,x,y);执行后输出结果是(

)提示:当%md中m小于数据的实际宽度时,按实际宽度输出。答案:102,1225、执行下面语句,inta=1,b=2,c=3;if(a>c)

b=c;a=c;c=b;a,b,c的值分别为(

)(用逗号分隔)提示:由if控制的分支语句只有一条答案:3,2,226、输入一个考试分数(0至100范围内),如果分数小于60分,则输出“不及格”;大于90分输出“优秀”;大于等于60并且小于等于90,则输出“合格”。(有1个空,答案一行写一个,不要添加多余的空格)include<stdio.h>

intmain()

{

intx;

printf(“请输入分数(0-100):“);

scanf(“%d”,&x);

if(x<60)

printf(“不及格”);

if(x>90)

printf(“优秀”);

printf(“合格”);

//注意分数在一个区间内,C语言中该如何描述

return0;

}答案:(以下答案任选其一都对)if(x>=60&&x<=90);

if(60<=x&&x<=90);

if(60<=x&&90>=x);

if(x>=60&&90>=x);

if(x>=60&&x<=90);

if(60<=x&&x<=90);

if(60<=x&&90>=x);

if(x>=60&&90>=x);

if((x>=60)&&(x<=90))27、我国的邮政编码由六位阿拉伯数字组成,前第三位代表邮区,厦门市的邮政编码前三位为361

下面的程序功能:如果输入的邮政编码前3位是361,则输出“厦门市的邮件”;如果不是361,则输出“不是厦门市的邮件”。

请完善程序(有2个空,答案一行写一个,不要添加多余的空格).include

<stdio.h>

int

main(){

int

code;

printf(“请输入邮政编码:

“);

scanf(”

%*3d”,&code);

//用scanf函数截取输入邮政编码的前3位

if(361

code

)

printf(

“厦门市的邮件”);

if

(361!=code)

printf(

“不是厦门市的邮件”);

return

0;}需要更多样例参考的同学可查阅课件“

选择结构初步

”里的最后一个文档

“习题解析”中第2题

答案:%3d

==第三周格式化输入输出及选择结构1第三周易错知识点练习(选做)1、int

x=8;在C程序中,表达式0<=x<=3的运算结果是(

)。答案:12、int

x=2,y=2;printf(“%d”,(x=0)&&(y=3));printf(“x=%d

y=%d“,

x,y);输出结果是(

)。答案:0x=0

y=23、int

x=2,y=2;printf(“%d

“,(x=4)||(y=4));printf(“x=%d

y=%d“,

x,y);第二个printf的输出结果是(

)。答案:x=4

y=24、scanf(“%d”,&a);

if(a<60)

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

printf(“OVER”);如果输入50,则输出结果是(

)。答案:a=50OVER5、scanf(“%d”,&a);

if(a<60)

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

printf(“OVER”);如果输入70,则输出结果是(

)。答案:OVER

第四周选择结构2第四周易错知识点练习(选做)1、int

x=0;

if(!x)

printf(“x为非零”);else

printf(“x为零”);答案:x为非零2、a=10;if(a%2==0)

;

printf(“偶数”);

else

printf(“奇数”);程序的运行是(

)。答案:出错3、int

x=2,y=-1,z=2;if

(x<y)if

(y<0)z=0;elsez+=1;printf(“%d”,z);答案:24、有如下程序段:if(q%p==0)

a=q/p;

printf(“%d=%d%d”,q,p,a);

//输出因式分解q=pa

else

printf(“不能整除”);如果q=8,p=2,则输出(

)。

答案:该段程序有语法错误,不能执行。第四周选择结构2多分支选择题1、分析以下程序,下列说法正确的是(

)#include<stdio.h>main(){

intx=5,a=0,b=0;

if(x=a+b)printf(“

*

“);

else

printf(“####”);}‍答案:输出####2、分析以下程序,下列说法正确的是(

)#include<stdio.h>main(){

intx=6,a=8,b=3;

if(x=a+b)printf(“

*

“);

else

printf(“####”);}答案:输出

*

*

3、分析以下程序,下列说法正确的是(

)#include<stdio.h>main(){

intx=0,a=0,b=0;

if(x==a+b)printf(“

*

“);

else

printf(“####”);}答案:输出

*

*4、运行以下程序,如果从键盘上输入5,则输出结果是()#include<stdio.h>int

main(){

intx;

scanf(“%d”,&x);

if(x–<5)

printf(“%d”,x);

else

printf(“%d”,x++);}提示:答案:45、运行以下程序,如果从键盘上输入5,则输出结果是()#include<stdio.h>int

main(){

intx;

scanf(“%d”,&x);

if(x–<5)

printf(“%d”,x);

else

printf(“%d”,++x);}可以参考本周课件“附加例题解析与作业指导”—-“选择结构附加例题解析”文档的第一个例题答案:‍56、运行以下程序,如果从键盘上输入9,则输出结果是()#include<stdio.h>int

main(){

intx;

scanf(“%d”,&x);

if(++x<10)

printf(“%d”,x);

else

printf(“%d”,–x);}可以参考本周课件“附加例题解析与作业指导”—-“选择结构附加例题解析”文档的第一个例题答案:‍97、以下程序的输出是()#include<stdio.h>intmain(){

floatx=2.0,y;

if(x<0.0)

y=0.0;

else

if(x<10.0)

y=1.0/x;

else

y=1.0;

printf(“%f”,y);}答案:‍0.5000008、‍下面程序的运行结果是()。#include<stdio.h>main(){

inta=12,b=-34,c=56,min=0;

min=a;

if(min>b)

min=b;

if(min>c)

min=c;

printf(“%d”,min);}可以参考本周课件“附加例题解析与作业指导”—-“选择结构附加例题解析”文档的最后一个例题答案:-349、分析以下程序,输出结果是(

)#include<stdio.h>intmain(){

intx=5;

if(x)printf(“

*

“);

printf(“####”);}答案:

*

####10、分析以下程序,输出结果是(

)#include<stdio.h>intmain(){

intx=5;

if(x)x=6;

x=7;

printf(“%d”,x);}答案:711、按功能键F5进入调试状态后,可以(

)。答案:设置断点;

控制程序一步一步地执行,每执行一步,都可以暂停;

观察变量或表达式值的变化12、下面(

)是正确的符号函数程序。当x>0时,y=1当x=0时,y=0当x<0时,y=-1(提示:按if-else配对规则分析程序,y值的运算结果与符号函数一致,才是正确的程序)答案:if(x>0)

y=1;else

if(x==0)

y=0;

elsey=-1;;

y=0;if(x!=0)

if(x>0)

y=1;

elsey=-1;13、程序功能:输入一个整数,当它是偶数时,输出“该数是偶数”,否则,输出“该数是奇数”。请完善程序,空格处应填(

)。#include<stdio.h>

intmain(){

intx;

printf(“请输入x:“);

scanf(“%d”,&x);

if(x%2==0)

printf(“该数是偶数”);

//偶数除以2的余数为0

printf(“该数是奇数”);

return0;}答案:else;

if(x%2!=0);

elseif(x%2!=0)14、输入一个考试分数(0至100范围内),如果分数小于60分,则输出“不及格”;否则输出“及格”。(程序有1个空,请选择正确的答案)#include<stdio.h>

intmain(){

intx;

printf(“请输入分数(0-100):“);

scanf(“%d”,&x);

if(x<60)

printf(“不及格”);

printf(“及格”);

return0;}答案:else;

if(x>=60);

elseif(x>=60)15、读程序,写出运行结果。#include<stdio.h>main(){

inta=1,b=3,c=5;if(c==a+b)

printf(“yes”);else

printf(“no”);}

答案:no16、读程序,写出运行结果。#include<stdio.h>intmain(){

intx=2,y=-1,z=5;

if(x<y)

if(y<0)

z=0;

else

z=z+1;

printf(“%d”,z);

}

答案:517、读程序,写出运行结果。#include<stdio.h>main(){floata,b,c,t;a=3;b=7;c=1;if(a>b)

{t=a;a=b;b=t;}if(a>c)

{t=a;a=c;c=t;}if(b>c)

{t=b;b=c;c=t;}printf(“%5.2f,%5.2f,%5.2f”,a,b,c);

//注意%5.2f的输出格式与逗号}

答案:1.00,3.00,7.0018、下面是一个旅游自助程序。程序先输出选择菜单,

如果用户输入1,则提示输入租车数量,用变量i保存,然后计算需支付的金额,并输出。如果用户输入2,则提示输入购票数量,用变量j保存,然后计算需支付的金额,并输出。如果用户输入其它数,则提示选择错误。费用计算方法:

租一辆车需支付150元。

门票一张60元,如果购票数>=10,则每张50元。请完善程序。(程序有2个空,答案一行写一个,不要添加多余的空格)#include<stdio.h>intmain(){intchoose,i,j,money;

printf(“\t\t旅游自助服务”);

printf(“\t1—租车\t2—购买门票”);

printf(“请选择您需要的服务:”);

scanf(“%d”,&choose);

if(

)

{

printf(“请输入租车数量”);

scanf(“%d”,&i);

money=150i;

printf(“您需支付:%d元”,money);

}

(choose==2)

{

printf(“请输入购票数量”);

scanf(“%d”,&j);

if(j>=10)money=50j;

elsemoney=60*j;

printf(“您需支付:%d元”,money);

}

else

{

printf(“选择错误”);

}

return0;}

答案:(以下答案任选其一都对)choose==1

elseif;

1==choose

elseif19、运行以下程序,如果从键盘上输入5,则输出结果是()#include<stdio.h>int

main(){

intx;

scanf(“%d”,&x);

if(x–<5)

printf(“%d”,x);

else

printf(“%d”,x++);}答案:420、运行以下程序,如果从键盘上输入5,则输出结果是()#include<stdio.h>int

main(){

intx;

scanf(“%d”,&x);

if(x–<5)

printf(“%d”,x);

else

printf(“%d”,++x);}答案:‍521、运行以下程序,如果从键盘上输入9,则输出结果是()#include<stdio.h>int

main(){

intx;

scanf(“%d”,&x);

if(++x<10)

printf(“%d”,x);

else

printf(“%d”,–x);}答案:‍922、‍下面程序的运行结果是()。#include<stdio.h>main(){

inta=12,b=-34,c=56,min=0;

min=a;

if(min>b)

min=b;

if(min>c)

min=c;

printf(“%d”,min);}答案:-3423、读程序,写出运行结果。#include<stdio.h>intmain(){

intx=2,y=-1,z=5;

if(x<y)

if(y<0)

z=0;

else

z=z+1;

printf(“%d”,z);

}

答案:5

分析:else与其上面最近的未配对的if配对,因此,

if(y<0)

z=0;

else

z=z+1;

是一条双分支语句

该语句是第1个if———if(x<y)的内嵌语句,当x<y时,才执行2<-1不成立,所以,内嵌语句不执行,z无任何变化<=””span=””></y)的内嵌语句,当x<y时,才执行>

第五周循环基础第五周易错知识点练习(选做)1、下面图中用箭头表示for循环语句的执行顺序,其中(

)是正确的。答案:2、sum=0;for(i

=1;

i<=10;

i++)

;

sum=sum+

i;printf(“%d”,sum);输出结果是(

)。答案:113、sum=0;for(i

=1;

i<=10;

i++)

{

sum=sum+

i;

i++;

}printf(“%d”,sum);输出结果是(

)。答案:254、inti,count=0;

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

{

if(i%3==0

||

i%7==0)

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

count++;

if(count%5==0)

printf(“”);

}

程序运行结果是(

)。答案:5、inti,count=0;

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

{

if(i%3==0

||

i%7==0)

{

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

count++;

if(count%5==0)

printf(“”);

}

}

程序运行结果是(

)。答案:6、scanf(“%d”,&m);for

(i=2;i<=m-1;i++)

if

(m%i

!=

0)

printf(“%d是素数”,

m);该程序是错误的判定素数程序,下面(

)是该程序的输出。答案:当m为7时,重复输出5行:

7是素数;

当m为8时,重复输出4行:

8是素数

第五周循环基础单循环选择、填空题1、设有如下程序段,则输出结果为()intk=0,a;for(a=1;a<=1000;a++)

k=k+1;printf(“k=%d”,k);提示:可参考课件“附加例题解析”文档中的例题答案:k=10002、设有如下程序段,则最后一次输出的是()inta;for(a=1;a<=1000;a++)

printf(“a=%d”,a);提示:可参考课件“附加例题解析”文档中的例题答案:‍a=10003、设有如下程序段,则输出结果是()inta;for(a=1;a<=1000;a++)

;printf(“a=%d”,a);提示:可参考课件“附加例题解析”文档中的例题答案:a=10014、设有如下程序段,则输出结果为()intk=0,a;for(a=1;a<=1000;a++)

{a=a+1;k=k+1;}printf(“k=%d”,k);

答案:k=5005、inti,j=10;for(i=1;i==j;i++);

的循环次数是()提示:可参考课件“附加例题解析”文档中的例题答案:‍06、inti,j;j=10;for(i=1;i<=j;i++)

j–;

程序的循环次数是()答案:‍57、语句for(x=0,y=0;y!=1&&x<4;x++);是()答案:循环4次‍8、设有程序段:intk=10;while(k=0)k=k-1;则下面叙述正确的是()

答案:‍循环体语句一次也不执行9、‍设有程序段:intk=10;while(k==0)k=k-1;则下面叙述正确的是()答案:循环体语句一次也不执行10、‍设有程序段:intk=10;while(k!=0)

k=k-1;则下面叙述正确的是()答案:while循环重复执行10次11、与语句while(!x);等价的语句是()

答案:‍while(x==0);

12、inti=0,j;for(j=10;i<j;j–)

i++;

程序的循环次数是()答案:5‍语法错误513、设有程序段,以下说法正确的是()x=-1;do{x=x*x;}while(!x);

答案:‍循环体将执行一次

14、

C语言中while和do-while循环的主要区别是()答案:‍do-while的循环体至少无条件执行一次15、下列语句不是死循环的是()‍答案:‍inti=10;while(i)i–;16、下面程序的功能是:计算1~10之间的奇数之和及偶数之和,空白处应填()#include<stdio.h>intmain(){

inta,b,c,i;

a=c=0;

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

{

a+=i;

}

printf(“偶数之和=%d!”,a);

printf(“奇数之和=%d!”,c-11);

}答案:c+=i+1;‍17、下面程序的功能是()#include<stdio.h>intmain(){

intx,s=0,i;

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

{

scanf(“%d”,&x);

s=s+x;

}

printf(“s=%d”,s);

return0;}答案:输入任意5个整数,输出这5个数的和18、下面程序的功能是()#include<stdio.h>intmain(){

intx,s=0,i;

scanf(“%d”,&x);

while(x!=0)

{

s=s+x;

scanf(“%d”,&x);

}

printf(“s=%d”,s);

return0;}答案:输入一组整数,以输入0作为结束,求所有数的和并输出19、for(i

=1;

i<=10;

i++)

printf(“*”);循环结束后,i的值是(

)。答案:1120、下面(

)循环体执行10次。答案:for(i=1;i<=10;i=i+1){循环体;};

for(i=2;i<=20;i=i+2){循环体;};

for(i=0;i<=9;i=i+1){循环体;};

for(i=10;i>=1;i=i-1){循环体;}21、下面(

)是正确的判断素数程序(m>1)。答案:j=0;for

(i=2;i<=m-1;i++)

if(m%i!=0)

j++;if(j==m-2)

printf(“%d是素数”,m);;

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

if(m%i

==

0)

j++;if(j==0)

printf(“%d是素数”,m);;

flag=0;for(i=2;i<=m-1;i++)

if(m%i

==

0)

flag=1;if(flag==0)

printf(“%d是素数”,m);22、编程:输入一个整数,计算该整数的位数,并输出位数。输入样例:12345输出样例:输入的是5位数请完善程序。(程序有1个空,答案一行写一个,不要添加多余的空格)

#include<stdio.h>intmain(){

inti=0,k,j;

scanf(“%d”,&k);

do

{

k=k/10;

i++;

}while(

);

printf(“输入的是%d位数”,i);

}提示:第二周讨论题—–讨论一类赋值语句的特点,在置顶贴的回复中,有本题的相关内容。这一类赋值语句常用于循环中。

答案:(以下答案任选其一都对)k!=0;

0!=k;

!k==0

分析:每次循环,k=k/10;k的最后一位被舍弃,

i保存位数,每次循环,k舍弃1位,i加1。

直至k为0时,所有位都被舍弃,此时,i的值就是k的位数。

具体可以看第二周讨论题—–讨论一类赋值语句的特点,在置顶贴的回复中,有举例23、编程:输入一个整数,计算该整数的位数,并输出位数。输入样例:12345输出样例:输入的是5位数请完善程序。(程序有1个空,答案一行写一个,不要添加多余的空格)

#include<stdio.h>intmain(){

inti=0,k,j;

scanf(“%d”,&k);

do

{

i++;

}while(k!=0);

printf(“输入的是%d位数”,i);

}提示:第二周讨论题—–讨论一类赋值语句的特点,在置顶贴的回复中,有本题的相关内容。这一类赋值语句常用于循环中。

答案:(以下答案任选其一都对)k=k/10;;

k/=10;

分析:每次循环,k=k/10;k的最后一位被舍弃,

i保存位数,每次循环,k舍弃1位,i加1。

直至k为0时,所有位都被舍弃,此时,i的值就是k的位数。

具体可以看第二周讨论题—–讨论一类赋值语句的特点,在置顶贴的回复中,有举例24、编程:输入一个整数,计算该整数的位数,并输出位数。输入样例:12345输出样例:输入的是5位数请完善程序。(程序有1个空,答案一行写一个,不要添加多余的空格)

#include<stdio.h>intmain(){

inti=0,k,j;

scanf(“%d”,&k);

if(k==0)i=1;

while(

)

//注意,不要漏考虑k为负数的情况

{

i++;

k=k/10;

}

printf(“输入的是%d位数”,i);

}提示:第二周讨论题—–讨论一类赋值语句的特点,在置顶贴的回复中,有本题的相关内容。这一类赋值语句常用于循环中。

答案:(以下答案任选其一都对)k!=0;

0!=k;

!k==0

分析:每次循环,k=k/10;k的最后一位被舍弃,

i保存位数,每次循环,k舍弃1位,i加1。

直至k为0时,所有位都被舍弃,此时,i的值就是k的位数。

具体可以看第二周讨论题—–讨论一类赋值语句的特点,在置顶贴的回复中,有举例25、

编程:输入一个整数,计算该整数的位数,并输出位数。

输入样例:12345

输出样例:输入的是5位数

请完善程序。(程序有1个空,答案一行写一个,不要添加多余的空格)

include<stdio.h>intmain()

{

inti=0,k,j;

scanf(“%d”,&k);

//k也可能是负整数

do

{

k=k/10;

i++;

}while(

);

printf(“输入的是%d位数”,i);

}提示:参考本周视频“求输入数的位数”。答案:(以下答案任选其一都对)k!=0;

0!=k;

!k==026、编程:输入一个整数,计算该整数的位数,并输出位数。输入样例:12345输出样例:输入的是5位数请完善程序。(程序有1个空,答案一行写一个,不要添加多余的空格)

#include<stdio.h>intmain(){

inti=0,k,j;

scanf(“%d”,&k);

//k也可能是负整数

do

{

i++;

}while(k!=0);

printf(“输入的是%d位数”,i);

}提示:参考本周视频“求输入数的位数”

答案:(以下答案任选其一都对)k=k/10;;

k/=10;

第六周循环进阶循环进阶选择、填空题1、运行下面的程序,得到的输出是()#include<stdio.h>intmain(){

inti,j;

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

for(j=1;j<=2;j++)

printf(“i=%d,j=%d”,i,j);}答案:i=1,

j=1i=1

,j=2i=2

,j=1i=2

,j=22、‍运行下面的程序,输出的星号个数一共是()#include<stdio.h>intmain(){

inti,j;

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

{

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

putchar(‘‘);

putchar(‘*’);

putchar(”);

}}答案:43、运行下面的程序,输出的星号个数一共是()#include<stdio.h>intmain(){

inti,j;

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

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

putchar(‘‘);

putchar(‘*’);

putchar(”);}答案:14、执行下面的程序片段,k的值是()

intk=0,i,j;

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

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

k=k+1;答案:155、若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是答案:for(i=1;i<=5;i++){

p=1;

p*=i;}‍6、下面程序的功能是输出以下形式的图案,则在下划线处应填入的是

*#include<stdio.h>intmain(){

inti,j;

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

{

for(j=1;j<=

;j++)

putchar(‘‘);

putchar(”);

}

return0;}答案:2*i-1‍7、下面程序的功能是输出以下形式的图案,则在下划线处应填入的是()

*

*

#include<stdio.h>intmain(){

inti,j;

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

{

for(j=1;j<=

;j++)

putchar(‘‘);

putchar(”);

}

return0;}答案:2(5-i)-18、鸡兔同笼,共有98个头,386只脚,编程求鸡、兔各多少只。代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include<stdio.h>intmain(){

intx,y;

for(x=1;x<98;x++)

{

_(1)

if(

(2)

___)

{

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

}

}

return0;}答案:(1)

y=98–x;(2)

2x+4y==386;‍9、打印所有的“水仙花数”。所谓“水仙花数”,是指一个三位数,其各位数字的立方和等于该数本身。例如,153是“水仙花数”,因为。代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include<stdio.h>intmain(){

inti,j,k,n;

printf(“resultis:”);

for(n=100;

(1)_;n++)

{

i=n/100;

//得到百位

j=

_(2)

;

k=n%10;

//得到个位

if(

(3)___‍)

{

printf(“%d\t“,n);

//输出结果

}

}

printf(“”);

return0;}答案:‍(1)n<1000(2)(n–i*100)/10(3)i100+j10+k==iii+jjj+kkk10、下面程序的功能是()#include<stdio.h>intmain(){

intx,s,i;

scanf(“%d”,&x);

s=x;

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

{

scanf(“%d”,&x);

if(s<x)

s=x;

}

printf(“s=%d”,s);

return0;}提示:可参考课件“附加例题解析”中文档“求最值及其位置”,帮助理解。答案:输入7个整数,输出其中的最大数11、阅读下面的程序,该程序完成的功能有(

#include<stdio.h>intmain(){

intnumber,min;

inti,n=1;

printf(“请输入第1个数”);

scanf(“%d”,&number);

min=number;

//只有1个数时,最小数就是这个数,设min初值为第1个数

for(i=2;i<=8;i++)

{

printf(“请输入第%d个数”,i);

scanf(“%d”,&number);

if(min>number)

//min与新输入的数比,如果更大,则

{

min=number;

//min更新为较小的数

n=i;

//n更新为较小数的位置

}

}

printf(“第%d个数最小,为%d”,n,min);

//输出最小数的位置与最小数

return0;}

提示:可参考课件“附加例题解析”中文档“求最值及其位置”,帮助理解。答案:输出8个数中的最小数;

输出最小数的位置12、下面(

)仅输出m的大于1的最小因子。答案:for(i=2;i<=m-1;i++)

if(m%i==0)

{

printf(“%dis最小因子”,i);

break;

}

;

i=2;while(m%i!=0)

i++;printf(“%dis最小因子”,i);13、程序功能:输入n的值(n<11),计算1!+2!+3!+……+n!,并输出计算结果。请完善程序。(程序有1个空,答案一行写一个,不要添加多余的空格)#include<stdio.h>intmain(){

inti,n;

longsum=0,fac=1;

//fac存储每个加项(阶乘)的值

printf(“请输入n的值:”);

scanf(“%d”,&n);

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

{

//后一加项与前一加项的关系

sum=sum+fac;

}

printf(“和为%ld”,sum);

return0;}提示:可以参考“累加和”中讲解的最后一个例题

答案:(以下答案任选其一都对)fac=faci;;

fac=ifac;;

fac*=i;14、编写作图程序:输入一个整数n,输出由n行上三角形与n+1行下三角形组成的如下菱形。

输入样例:

5

输出样例:(程序有3个空,答案一行写一个,不要添加多余的空格)#include<stdio.h>intmain(){intn,i,j;

scanf(“%d”,&n);

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

//输出n行上三角形

{

for(j=1;j<=n-i+1;j++)

//输出每行号前的空格

(1)

for(j=1;j<=

(2)

;j++)

//输出第i行的号

putchar(‘‘);

putchar(”);

}

for(i=1;i<=

(3)

;i++)

//输出n+1行下三角形

{

for(j=1;j<=i-1;j++)

putchar(‘‘);

for(j=1;j<=2n+3-2i;j++)

putchar(‘‘);

putchar(”);

}

return0;}提示:n行上三角形的编程,可以参考本周教学内容:循环的嵌套中讲解的最后一个例题n+1行下三角形的编程与上三角类似,如何用公式表示第i行的个数,可参考循环的嵌套小节中的“问与答”文档

答案:(以下答案任选其一都对)putchar(‘‘);

2i-1

n+1;

printf(”“);

2i-1

n+1;

putchar(‘‘);

2i-1

1+n;

printf(”“);

2i-1

1+n;

putchar(‘‘);

i2-1

n+1;

printf(”“);

i2-1

n+1;

putchar(‘‘);

i2-1

1+n;

printf(”“);

i*2-1

1+n15、编程输出如下图的九九乘法口诀表:

(程序有2个空,答案一行写一个,不要添加多余的空格)

#include<stdio.h>intmain(){inti,j;

printf(“\t\t\t\t乘法口诀表”);

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

//外循环输出9行

{

for(j=1;j<=

(1)

;

j++)

//内循环每行输出i列

printf(“%d%d=%d\t”,i,j,

(2)

);

//输出乘法表

printf(“”);

//输出一行后换行}

return0;}提示:1、注意规律,第i行第j列输出的是:ij=ij的积;2、可以

温馨提示

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

评论

0/150

提交评论