电大C语言程序设计形成性考核册答案_第1页
电大C语言程序设计形成性考核册答案_第2页
电大C语言程序设计形成性考核册答案_第3页
电大C语言程序设计形成性考核册答案_第4页
电大C语言程序设计形成性考核册答案_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

电大C语言程序设计形成性考核册答案一、选择题

1.以下关于C语言的叙述中正确的是()A.C语言中的注释不可以夹在变量名或关键字的中间B.C语言中的变量可以在使用之前的任何位置进行定义C.在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致D.C语言的数值常量中夹带空格不影响常量值的正确表示

答案:B解析:C语言中的注释可以夹在变量名或关键字中间,A错误;C语言算术表达式中运算符两侧运算数类型不一定要一致,会进行自动类型转换,C错误;C语言数值常量中夹带空格会影响常量值的正确表示,D错误。变量定义可以在使用之前的任何位置,B正确。

2.若有定义:inta=8,b=5,c;执行语句c=a/b+0.4;后,c的值为()A.1.4B.1C.2.0D.2

答案:B解析:a/b是整数除法,8/5结果为1,再加上0.4,由于是整数运算,小数部分舍去,所以c的值为1。

3.以下选项中合法的常量是()A.999B.2.7eC.0XabD.123E0.2

答案:C解析:999是整型常量;2.7e不完整,e后面缺少指数;123E0.2中E后面必须是整数;0Xab是十六进制常量,合法。

4.若有定义:intx=3,y=2;floata=2.5,b=3.5;则表达式(x+y)%2+(int)a/(int)b的值是()A.0B.2C.1D.1.5

答案:C解析:(x+y)%2=(3+2)%2=1,(int)a/(int)b=(int)2.5/(int)3.5=2/3=0,所以表达式的值为1+0=1。

5.若有定义:inta=1,b=2,c=3;则执行以下语句后,a、b、c的值分别为()if(a>b)c=a;a=b;b=c;A.1,2,3B.2,3,1C.2,1,3D.2,3,2

答案:B解析:if条件a>b不成立,所以不执行c=a,直接执行a=b;b=c;执行后a=2,b=3,c=1。

6.以下叙述中正确的是()A.break语句只能用于switch语句体中B.continue语句的作用是使程序的执行流程跳出包含它的所有循环C.break语句只能用在循环体内和switch语句体内D.在循环体内使用break语句和continue语句的作用相同

答案:C解析:break语句不仅能用于switch语句体中,还能用于循环体内,A错误;continue语句的作用是结束本次循环,进入下一次循环,B错误;break语句和continue语句作用不同,D错误;break语句只能用在循环体内和switch语句体内,C正确。

7.若有定义:intx=1,y=2,z=3;则执行以下语句后,x、y、z的值分别为()if(x>y)z=x;x=y;y=z;A.1,2,3B.2,3,1C.2,1,3D.2,3,2

答案:B解析:if条件x>y不成立,不执行z=x,直接执行x=y;y=z;执行后x=2,y=3,z=1。

8.以下程序段的输出结果是()intx=10,y=10;printf("%d%d\n",x,y);A.1010B.99C.910D.109

答案:D解析:printf函数中参数是从右向左计算,先计算y,y变为9,再计算x,x先使用值10,然后变为9,所以输出109。

9.若有定义:inta=1,b=2,c=3;则执行以下语句后,a、b、c的值分别为()if(a>b)c=a;a=b;b=c;A.1,2,3B.2,3,1C.2,1,3D.2,3,2

答案:B解析:同第5题,if条件不成立,执行a=b;b=c;后a=2,b=3,c=1。

10.以下程序段的输出结果是()inta=1,b=2,c=3;if(a>b)c=a;a=b;b=c;printf("%d%d%d\n",a,b,c);A.1,2,3B.2,3,1C.2,1,3D.2,3,2

答案:B解析:同第5题,输出2,3,1。

二、填空题

1.C语言中的标识符只能由字母、数字和____组成。答案:下划线解析:C语言标识符命名规则规定只能由字母、数字和下划线组成。

2.若有定义:inta=5,b=3;则表达式a%=(b%=2)的值为____。答案:0解析:先计算b%=2,b变为1,再计算a%=1,a变为0,所以表达式值为0。

3.若有定义:floatx=3.5,y=2.5;则表达式(int)x+(int)y的值为____。答案:5解析:(int)x=3,(int)y=2,3+2=5。

4.若有定义:inta=1,b=2,c=3;则执行语句if(a>b)c=a;a=b;b=c;后,变量c的值为____。答案:3解析:if条件不成立,不执行c=a,c的值不变仍为3。

5.若有定义:intx=10,y=20;则执行语句if(x>y)x=y;y=x;后,变量x的值为____,变量y的值为____。答案:10,10解析:if条件不成立,执行x=y;y=x;先把y的值20赋给x,此时x=20,再把x的值20赋给y,最终x=10,y=10。

6.若有定义:inta=1,b=2,c=3;则执行语句if(a>b)c=a;a=b;b=c;后,变量a的值为____,变量b的值为____。答案:2,3解析:同第5题,执行x=y;y=x;先把y的值20赋给x,此时x=20,再把x的值20赋给y,最终a=2,b=3。

7.若有定义:inta=1,b=2,c=3;则执行语句if(a>b)c=a;a=b;b=c;后,变量a、b、c的值分别为____、____、____。答案:2,3,3解析:同第5题,执行x=y;y=x;先把y的值20赋给x,此时x=20,再把x的值20赋给y,最终a=2,b=3,c=3。

8.若有定义:intx=10,y=20;则执行语句if(x>y)x=y;y=x;后,变量x、y的值分别为____、____。答案:10,10解析:同第5题,执行x=y;y=x;先把y的值20赋给x,此时x=20,再把x的值20赋给y,最终x=10,y=10。

9.若有定义:inta=1,b=2,c=3;则执行语句if(a>b)c=a;a=b;b=c;后,变量a、b、c的值分别为____、____、____。答案:2,3,3解析:同第5题,执行x=y;y=x;先把y的值20赋给x,此时x=20,再把x的值20赋给y,最终a=2,b=3,c=3。

10.若有定义:intx=10,y=20;则执行语句if(x>y)x=y;y=x;后,变量x、y的值分别为____、____。答案:10,10解析:同第5题,执行x=y;y=x;先把y的值20赋给x,此时x=20,再把x的值20赋给y,最终x=10,y=10。

三、程序分析题

1.以下程序的功能是:输入一个整数,判断它能否被3和5整除,若能被3和5整除,输出"能同时被3和5整除";若能被3整除但不能被5整除,输出"能被3整除但不能被5整除";若能被5整除但不能被3整除,输出"能被5整除但不能被3整除";若不能被3和5整除,输出"不能被3和5整除"。请分析程序并填空。

```cinclude<stdio.h>intmain(){intnum;printf("请输入一个整数:");scanf("%d",&num);if(____)printf("能同时被3和5整除\n");elseif(____)printf("能被3整除但不能被5整除\n");elseif(____)printf("能被5整除但不能被3整除\n");elseprintf("不能被3和5整除\n");return0;}```

答案:```cinclude<stdio.h>intmain(){intnum;printf("请输入一个整数:");scanf("%d",&num);if(num%3==0&&num%5==0)printf("能同时被3和5整除\n");elseif(num%3==0&&num%5!=0)printf("能被3整除但不能被5整除\n");elseif(num%5==0&&num%3!=0)printf("能被5整除但不能被3整除\n");elseprintf("不能被3和5整除\n");return0;}```解析:第一个if判断是否同时能被3和5整除,即num%3==0&&num%5==0;第二个if判断能被3整除但不能被5整除,即num%3==0&&num%5!=0;第三个if判断能被5整除但不能被3整除,即num%5==0&&num%3!=0。

2.以下程序的功能是:计算1到100之间所有奇数的和。请分析程序并填空。

```cinclude<stdio.h>intmain(){intsum=0,i;for(i=1;i<=100;i=i+2){sum=sum+____;}printf("1到100之间所有奇数的和为:%d\n",sum);return0;}```

答案:i解析:循环中i每次增加2,i就是奇数,所以sum每次加上i,即sum=sum+i。

3.以下程序的功能是:输出九九乘法表。请分析程序并填空。

```cinclude<stdio.h>intmain(){inti,j;for(i=1;i<=9;i++){for(j=1;j<=____;j++){printf("%d*%d=%d\t",i,j,i*j);}printf("\n");}return0;}```

答案:i解析:内层循环j要从1到i,这样才能构成九九乘法表的每一行。

4.以下程序的功能是:输入一个字符串,统计其中数字字符的个数。请分析程序并填空。

```cinclude<stdio.h>include<string.h>intmain(){charstr[100];intcount=0,i;printf("请输入一个字符串:");gets(str);for(i=0;i<strlen(str);i++){if(____)count++;}printf("数字字符的个数为:%d\n",count);return0;}```

答案:str[i]>='0'&&str[i]<='9'解析:判断字符是否为数字字符,数字字符的ASCII码值在'0'到'9'之间,所以条件为str[i]>='0'&&str[i]<='9'。

5.以下程序的功能是:输入三个整数,输出其中最大的数。请分析程序并填空。

```cinclude<stdio.h>intmain(){inta,b,c,max;printf("请输入三个整数:");scanf("%d%d%d",&a,&b,&c);max=a;if(____)max=b;if(____)max=c;printf("最大的数是:%d\n",max);return0;}```

答案:b>max、c>max解析:先假设max为a,然后依次判断b和c是否大于max,如果b大于max,则将max更新为b;如果c大于max,则将max更新为c。

四、程序设计题

1.编写一个程序,输入两个整数,输出它们的和、差、积、商和余数。

```cinclude<stdio.h>intmain(){inta,b;printf("请输入两个整数:");scanf("%d%d",&a,&b);printf("和:%d\n",a+b);printf("差:%d\n",ab);printf("积:%d\n",a*b);if(b!=0){printf("商:%d\n",a/b);printf("余数:%d\n",a%b);}else{printf("除数不能为0\n");}return0;}```

解析:首先输入两个整数a和b,然后分别计算并输出它们的和、差、积。接着判断b是否为0,如果不为0,则计算并输出商和余数;如果为0,则输出提示信息"除数不能为0"。

2.编写一个程序,输入一个年份,判断它是否为闰年。闰年的判断条件是:能被4整除但不能被100整除,或者能被400整除。

```cinclude<stdio.h>intmain(){intyear;printf("请输入一个年份:");scanf("%d",&year);if((year%4==0&&year%100!=0)||year%400==0){printf("%d年是闰年\n",year);}else{printf("%d年不是闰年\n",year);}return0;}```

解析:根据闰年的判断条件,使用逻辑或运算符连接两个条件表达式。如果满足其中一个条件,则该年份是闰年,否则不是闰年。

3.

温馨提示

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

评论

0/150

提交评论