中国大学mooc《C语言程序设计(东北大学) 》章节测试答案_第1页
中国大学mooc《C语言程序设计(东北大学) 》章节测试答案_第2页
中国大学mooc《C语言程序设计(东北大学) 》章节测试答案_第3页
中国大学mooc《C语言程序设计(东北大学) 》章节测试答案_第4页
中国大学mooc《C语言程序设计(东北大学) 》章节测试答案_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

titleC语言程序设计(东北大学)中国大学mooc答案100分最新版content主题1:计算机及程序设计概述测验测试1、测试题目答案:3作业第1周程序设计入门本周作业1、已知矩形的长为100,宽为200,请编写C语言程序,计算其面积,并输出。

评分规则:如下情况给出main函数类型给2分intmain(){}或main(){}

如下情况写出return语句给2分intmain(){return0;}或main(){return0;}或者voidmain(){}

如下情况给6分intmain(){printf(“%d”,100200);return0;}或main(){printf(“%d”,100200);return0;}或者voidmain(){printf(“%d”,100200);}或者intmain(){inta=100,b=200;printf(“%d”,ab);return0;}或者intmain(){floata=100,b=200;floats=ab;printf(“%f”,s);return0;}或者intmain(){inta=100,b=200;ints=ab;printf(“%d”,s);return0;}2、从键盘读入圆形半径r,计算其面积,并输出

评分规则:给出主函数定义,给2分intmain(){}或voidmain(){}或main(){}

声明变量正确,给2分intmain(){floatr,s;}或voidmain(){floatr,s;}或main(){floatr,s;}或者intmain(){doubler,s;}

调用printf函数正确,给2分intmain(){floatr,s;printf(“%f”,s);}或voidmain(){floatr,s;printf(“%f”,s);}或main(){floatr,s;printf(“%f”,s);}

调用scanf函数输入数据正确,给2分intmain(){floatr,s;scanf(“%f”,&r);}或voidmain(){floatr,s;scanf(“%f”,&r);}或main(){floatr,s;scanf(“%f”,&r);}

面积计算正确,给2分。其中3.14可以为3.1415926、3.1416等其它近似值intmain(){floatr,s;scanf(“%f”,&r);s=3.14rr;printf(“%f”,s);}或voidmain(){floatr,s;scanf(“%f”,&r);s=3.14rr;printf(“%f”,s);}或main(){floatr,s;scanf(“%f”,&r);s=3.14rr;printf(“%f”,s);}第1周程序设计入门本周测试1、面向过程的高级语言包括()答案:C,BASIC2、程序设计语言包括()答案:机器语言、汇编语言、高级语言3、用C语言编写的代码程序()答案:是一个源程序4、以下叙述中正确的是()答案:用C程序实现的算法可以没有输入但必须要有输出5、程序设计的基本步骤主要包括()。答案:确定数据结构,算法描述、编写程序以及程序测试6、一个C语言程序总是从()。答案:主函数开始执行7、C语言规定:在一个源程序中,main函数的位置()答案:可以任意位置8、(2012.03全国二级C题)以下叙述中错误的是()答案:C程序在书写时,有严格的缩进要求,否则不能编译通过9、(2007.04全国二级C题)下列叙述中错误的是()答案:后缀为.obj和.exe的二进制文件都可以直接运行10、C语言中如何实现注释答案:通过//界定的内容为注释内容。例如/测试/11、C语言中主函数的名称是答案:main12、如下属于C基本语句的是?答案:1+2;13、C语言中界定函数开始与结束的符号是答案:{}14、关于C语言基本语句说法正确的是?答案:基本语句必须以分号;作为结束标志15、实现向显示器输出信息的函数是答案:printf第2周信息编码与基本运算本周测试1、(2007.04全国二级C题)按照C语言规定的用户标识符命名规则,不能出现在标识符中的是()答案:减号2、不合法的c语言标识符是()答案:x.c3、()是c语言提供的合法的数据类型关键字答案:long4、以下选项中不属于C语言的类型的是()答案:longshort5、(2011.09全国二级C题)以下选项中关于C语言常量的叙述错误的是()。答案:经常被使用的变量可以定义成常量

6、不正确的变量说明是()答案:doubleinta7、(2012.03全国二级C题)关于C语言中数的表示,以下叙述中正确的是()答案:只有整型数在允许范围内能精确无误的表示,实型数会有误差8、已知chara=’\17’,变量a中()答案:包含1个字符9、以下能正确声明整型变量x,y和z并为其赋初值5的语句是()答案:intx=5,y=5,z=5;10、(2010.09全国二级C题)有定义:inta;longb;doublex,y;则以下选项中正确的表达式是()答案:a%(int)(x-y)11、设有定义:intx=2;,以下表达式中,值不为6的是答案:2*x,x+=212、若有intn=6;表达式n%=n+=n-=n*n的值为()答案:013、(2009.09全国二级C题)表达式(int)((double)9/2)-(9)%2的计算结果是()答案:314、sizeof(float)是()答案:一个整型表达式15、以下表达式不等价的一组是()答案:a!=b与a=a!b16、若有charch=’A;则表达式ch=(ch>=’A’&&ch<=’Z’)(ch+32):ch的值是()答案:a17、判断char型变量c1是否为大写字母的正确表达式是()答案:(c1>=’A’)&&(c1<=’Z’)18、正确表达式数学不等式10<x<100的C语言表达式是?(假设x已经声明)()答案:10<x&&x<10019、正确表达式数学不等式|x|<100其x不等于0的C语言表达式是?(假设x已经声明)()答案:-100<x&&x<100&&x!=020、表达式(x=100,y=200)+!(0<x<20)的值为?(假设x,y已经声明为int类型)答案:20021、可以实现绝对值运算的|x|的表达式是?(假设x已经声明float类型)答案:(x<0-x:x)作业第2周信息编码与基本运算本周作业1、从键盘读入三角形三边长度a,b,c,利用海伦公式计算其面积,并输出

评分规则:给出主函数定义,给1分intmain(){}或voidmain(){}或main(){}

声明变量正确,给1分intmain(){floata,b,c;floats;}或voidmain(){floata,b,c;floats;}或main(){floata,b,c;floats;}或者intmain(){floata,b,c;floats;}或者intmain(){floata,b,c;floats=0;}

调用scanf和printf函数输入数据正确,给2分例如intmain(){floata,b,c;floats;scanf(“%f%f%f”,&a,&b,&c);printf(“%f”,s);}或voidmain(){floata,b,c;floats;scanf(“%f%f%f”,&a,&b,&c);printf(“%f”,s);}或main(){floata,b,c;floats;scanf(“%f%f%f”,&a,&b,&c);printf(“%f”,s);}或者main(){floata,b,c;floats;scanf(“%f,%f,%f”,&a,&b,&c);printf(“%f”,s);}如下形式的printf函数调用也正确printf(“s=%f”,s);printf(“s=%.2f”,s);printf(“s=%7.2f”,s);

周长计算正确,给2分。重点考查p=(a+b+c)/2.0;参考代码如下:intmain(){floata,b,c;floatp;scanf(“%f%f%f”,&a,&b,&c);p=(a+b+c)/2.0;}或voidmain(){floata,b,c;floatp;scanf(“%f%f%f”,&a,&b,&c);p=(a+b+c)/2.0;}或main(){floata,b,c;floatp;scanf(“%f%f%f”,&a,&b,&c);p=(a+b+c)/2.0;}

面积计算正确,给2分。重点考查s=sqrt(p(p-a)(p-b)(p-c));参考代码如下:intmain(){floata,b,c;floats;floatp;scanf(“%f%f%f”,&a,&b,&c);p=(a+b+c)/2.0;s=sqrt(p(p-a)(p-b)(p-c));printf(“%f”,s);}或voidmain(){floata,b,c;floats;floatp;scanf(“%f%f%f”,&a,&b,&c);p=(a+b+c)/2.0;s=sqrt(p(p-a)(p-b)(p-c));printf(“%f”,s);}或main(){floata,b,c;floats;floatp;scanf(“%f%f%f”,&a,&b,&c);p=(a+b+c)/2.0;s=sqrt(p(p-a)(p-b)(p-c));printf(“%f”,s);}2、从键盘读入二次方程系数a,b,c,假设其有实数根,请输出其根。

评分规则:给出主函数定义,给1分intmain(){return0;}或voidmain(){}或main(){return0;}

声明变量正确,给1分intmain(){floata,b,c;floatx1,x2;}或voidmain(){floata,b,c;floatx1,x2;}或main(){floata,b,c;floatx1,x2;}或者intmain(){floata,b,c;floatx1,x2;}或者intmain(){doublea,b,c;doublex1,x2;}

调用scanf和printf函数输入数据正确,给2分例如intmain(){floata,b,c;floatx1,x2;scanf(“%f%f%f”,&a,&b,&c);printf(“x1=%f,x2=%f”,x1,x2);}或voidmain(){floata,b,c;floatx1,x2;scanf(“%f%f%f”,&a,&b,&c);printf(“x1=%f,x2=%f”,x1,x2);}或main(){floata,b,c;floatx1,x2;scanf(“%f%f%f”,&a,&b,&c);printf(“x1=%f,x2=%f”,x1,x2);}如下形式的printf函数调用也正确printf(“%f,%f”,x1,x2);printf(“%f%f”,x1,x2);printf(“%.2f,%.2f”,x1,x2);printf(“%7.2f,%7.2f”,x1,x2);

det=bb-4ac计算正确,给2分例如intmain(){floata,b,c;floatx1,x2;floatdet;scanf(“%f%f%f”,&a,&b,&c);det=bb-4ac;printf(“x1=%f,x2=%f”,x1,x2);}或voidmain(){floata,b,c;floatx1,x2;floatdet;scanf(“%f%f%f”,&a,&b,&c);det=bb-4ac;printf(“x1=%f,x2=%f”,x1,x2);}或main(){floata,b,c;floatx1,x2;floatdet;scanf(“%f%f%f”,&a,&b,&c);det=bb-4ac;printf(“x1=%f,x2=%f”,x1,x2);}

根计算正确例如intmain(){floata,b,c;floatx1,x2;floatdet;scanf(“%f%f%f”,&a,&b,&c);det=bb-4ac;x1=(-b+sqrt(det))/(2a);x2=(-b-sqrt(det))/(2*a);printf(“x1=%f,x2=%f”,x1,x2);return0;}第3周常用函数库与顺序结构本周测试1、系统的标准输出文件stdout是指()答案:显示器2、c语言中标准输入文件stdin是指()答案:键盘3、下列描述中,正确的是()答案:所有的输入/输出都是通过调用库函数处理的4、(2001.09全国二级C题)x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是()答案:scanf(“%d%d%d”,&x,&y,&z);5、(2005.09全国二级C题)以下叙述中正确的是()。答案:使用putchar函数时,必须在之前包含头文件stdio.h6、有以下程序voidmain(){inta=6,b=7;printf(“a=%%d,b=%%d”,a,b);}输出结果是()。答案:a=%d,b=%d7、(2010.03全国二级C题)有以下程序:voidmain(){chara,b,c,d;scanf(“%c%c”,&a,&b);c=getchar();d=getchar();printf(“%c%c%c%c”,a,b,c,d);}当执行程序时,按下列方式输入数据(从第1列开始,代表回车,注意:回车也是一个字符)1234则输出结果是()。答案:1238、(2012.09全国二级C题)若有定义和语句:inta,b;scanf(“%d,%d”,&a,&b);以下选项中,不能将值3赋给变量a,值5赋给变量b的是()。答案:359、阅读程序,指出输出结果是()。voidmain(){charc1,c2,c3;c1=’a’;c2=’z’;c3=c2-c1;printf(“%c,%c,%d“,c1,c2,c3);}答案:a,z,2510、若运行以下程序时,从键盘输入25,15,10<回车>,则输出结果为()。voidmain(){inta1,a2,a3;scanf(“%d%d%d”,&a1,&a2,&a3);printf(“a1+a2+a3=%d”,a1+a2+a3);}答案:不确定值11、以下程序段:inta=1234;printf(“%2d”,a);输出结果是()答案:123412、(2011.09全国二级C题)以下不能输出字符A的语句是()。(注:字符A的ASCII码值为65,字符a的ASCII码值为97)答案:printf(“%d”,’A’);13、下面语句中,正确的是()。答案:printf(“%s”,”hello”);14、有如下语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确格式是()。答案:a=1,b=3,c=215、数字字符0的ASCII值为48,若有以下程序main(){chara=’a’,b=’b’;printf(“%c,”,b++);printf(“%d”,b-a);}程序运行后的输出结果是答案:b,216、有以下程序main(){inta,b,d=25;a=d/10%9;b=a&&(-1);printf(“%d,%d”,a,b);}程序运行后的输出结果是答案:2,117、若整型变量inta=1,b=2,c=3,d=4;则条件表达式a<ba:c<dc:d的值答案:118、有以下程序main(){inta,b,p;scanf(“m=%dn=%dp=%d”,&a,&b,&p);printf(“%d%d%d”,a,b,p);}若想从键盘上输入数据,使变量a中的值为12,b中的值为56,p中的值为89,则正确的输入是答案:m=12n=56p=8919、假设floatd=12.3456,则表达式printf(“%10.2f”,(int)d)的输出结果为答案:1.2020、假设unsignedu=0,从键盘正确读入一个整数给u的语句是答案:scanf(“%u”,&u);21、如下程序段执行的结果为inta=100,b=0,c;c=(b=100)+(b>0)a++;printf(“c=%d”,c);答案:20122、如下程序段执行的结果为inta=100,b=200,c;c=a>b&&b+=100;c=b++;printf(“c=%d”,c);答案:20023、如下程序段执行的结果为inta=100,b=200,c;c=!a+(b>>2)%10;printf(“c=%d”,c);答案:0第4周逻辑判断与选择结构本周测试1、对下面的程序说法正确的是______。voidmain(){intx=3,y=0,z=0;if(x=y+z)printf(“*”);elseprintf(“####”);}答案:输出为####2、执行下面程序的结果为______。voidmain(){inta=3,b=4,t=1;if(a>b){t=a;a=b;b=t;}printf(“%d”,a);}答案:33、执行下面语句段后的输出结果为______。inti=-1;if(i<=0)printf(“*”);i=2;elseprintf(“%%%%”);答案:有语法错误4、下述语句中,______中的if语法有错误答案:if(x!=y)scanf(“%d”,x)elsescanf(“%d”,y);5、假设变量i为整型量,比较下面两条if语句,选出正确答案______。if(i!=0);if(i);答案:两者作用等价6、下面程序执行后输出结果是______。voidmain(){intn=0,m=1,x=2;if(!n)x-=1;if(m)x-=2;if(x)x-=3;printf(“%d”,x);}答案:-47、阅读程序,分析输出结果是()。#include<stdio.h>voidmain(){intx=10,y=5;switch(x){case1:x++;default:x+=y;case2:y–;case3:x–;}printf(“x=%d,y=%d”,x,y);}答案:x=14,y=48、阅读程序,分析输出结果是()。#include<stdio.h>voidmain(){inta=6,b=10,t;if((a=b)>0)t=a+b;printf(“%d”,t);}答案:209、阅读程序,分析输出结果是()。#include<stdio.h>voidmain(){inta=2,b=-1,c=2;if(a)if(b<0)c=0;elsec++;printf(“%d”,c);}答案:010、若执行下面的程序时从键盘输入10,则输出是()。voidmain(){inta;scanf(“%d”,&a);if(++a<10)printf(“%d”,a++);elseprintf(“%d”,++a);}答案:1211、阅读程序,分析输出结果是()。voidmain(){intx=0,a=1,b=1;switch(x){case0:a++;case1:b++;break;case2:a++;b++;}printf(“a=%d,b=%d”,a,b);}答案:a=2,b=212、下列条件语句中,功能与其他语句不同的是()答案:if(a==0)printf(“%d”,x);elseprintf(“%d”,y);13、(201203二级c)若下面程序运行时从键盘输入9<回车>,则输出结果是()。#include<stdio.h>voidmain(){inta;scanf(“%d”,&a);if(a++<9)printf(“%d”,a);elseprintf(“%d”,a–);}答案:1014、有以下程序#include<stdio.h>main(){inty=9;if(y>0,y–)if(y%3==0)printf(“%d”,–y);printf(“%d”,y);}程序的运行结果是答案:815、有以下程序#include<stdio.h>main(){inty=9;switch(y++){case9:y/=2;case8:–y;}printf(“%d”,y);}程序的运行结果是答案:416、以下程序#include<stdio.h>main(){inta=2,b=3,c=0;if(a=b)c=a;elsec=b;printf(“%d”,c);}程序的运行结果是答案:317、有以下程序#include<stdio.h>main(){inta=2,b=1,c=0;if(a&b)c=a;elsec=b;printf(“%d”,c);}程序的运行结果是答案:118、以下程序#include<stdio.h>main(){inta=2,b=1,c=0;if(a||b)c=a;elsec=b;printf(“%d”,c);}程序的运行结果是答案:219、如下程序的运行结果是()intmain(){inta=2,b=1,c=0;if(a>=b){switch(a++,b++){case1:c=a;case0:c=b;break;default:c=0;}}printf(“%d”,c);return0;}答案:220、如下程序的运行结果是()intmain(){inta=0,b=0,c=0;if(a=1,a>=b){switch(b++){case1:c=a;case0:c=b;break;default:c=0;}}printf(“%d”,c);return0;}答案:121、如下程序的运行结果是()intmain(){inta=3,b=1,c=0;if(a>ba:b){switch(b%10){case1:c=a;case0:c=b;break;default:c=0;}}printf(“%d”,c);return0;}答案:1主题4:逻辑判断与选择结构主题4测验1、结构化程序的实现由()组成程序逻辑。答案:顺序结构、分支结构和循环结构2、以下4个选项中,不能看作一条语句的是()。答案:if(b==0)m=1;n=2;3、下列语句中,合法的的赋值语句()。答案:A=2+B,C=A+2;4、假设变量a为整型量,语句if(a!=0);和语句if(a);相比较,正确答案()答案:两者作用等价5、下面说法错误的是()。答案:语句if(a==0);逻辑结构出现错误6、假设有int型变量a=0,b=1,c=10,计算表达式a&&(b=c)后a,b,c的值是()。答案:a=0,b=1,c=10,7、假设有int型变量a=0,b=1,c=10,计算表达式(b=c)||(a=b)后a,b,c的值是()。答案:a=0,b=10,c=10,8、为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:else子句总是与()答案:其之前最近且不带else的if配对9、阅读下面程序:该程序()#include“stdio.h”main(){intx=-10,y=5,z=0;if(x=y+z)printf(“”);elseprintf(“$$$”);}答案:输出***10、若执行下面的程序时从键盘输入10,则输出是()voidmain(){inta;scanf(“%d”,&a);if(++a<10)printf(“%d”,a++);elseprintf(“%d”,++a);}答案:1211、假定所有变量均已正确说明,下列程序段运行后x的值是()。a=b=c=1;x=30;if(!a)x–;elseif(!c)x=3;elsex=4;答案:412、阅读程序,该程序的输出结果是()。voidmain(){intx=0,a=1,b=1;switch(x){case0:a++;case1:b++;break;case2:a++;b++;}printf(“a=%d,b=%d”,a,b);}答案:a=2,b=213、下列条件语句中,功能与其他语句不同的是()。答案:if(a==0)printf(“%d”,x);elseprintf(“%d”,y);14、下列关于swith语句和break语句结论中,正确的是()答案:在swith语句中可以根据需要使用或不需要使用break语句15、阅读程序,分析程序执行结果是()#include<stdio.h>intmain(){intn=0,m=1,x=2;if(!n)x-=1;if(m)x-=2;if(x)x=x-3;printf(“%d”,x);return0;}答案:-416、以下正确的if语句是()答案:if(n>0){n=n+m;printf(“%f”,n);}elseprintf(“%f”,-n);17、若执行下述程序时从键盘输入34,则输出结果是()。#include<stdio.h>main(){inta,b,s;scanf(“%d%d”,&a,&b);s=a;if(a<b)s=b;s=s;printf(“%d”,ss);}答案:25618、设x=10,y=5;z=15,执行下面一段程序后z的结果是()。if(x>y)if(y>z)x=y;elsez=y;答案:5主题2:信息编码与数据类型主题2测验1、(2007.04全国二级C题)按照C语言规定的用户标识符命名规则,不能出现在标识符中的是()。答案:连接符2、()是c语言提供的合法的数据类型关键字。答案:long3、(2011.09全国二级C题)以下选项中关于C语言常量的叙述错误的是()。答案:经常被使用的变量可以定义成常量4、数据类型描述中错误的是()。答案:可以改变程序中声明的数据类型5、用C语言编写的代码程序()。答案:是一个源程序主题3:基本运算与顺序结构主题3测验1、下面哪组是正确的运算符()。答案:=:%2、下面错误的表达式是()。答案:y=x+a=b+23、下面说法错误的是()。答案:双目运算符的结合性都是自左向右4、下面说法正确的是()。答案:负数参与“/”和“%”运算时,其结果与C89或C99的标准有关5、表达式的正确写法是()。答案:3xxx+2xx-7*x+106、假设有下面程序段:inta;floatb;b=a=4.5;下面错误的描述是()。答案:变量b的值是4.57、下面说法错误的是()。答案:(int)(x+y)与(int)x+y都是表示显示转换,其含义相同8、假设a,b,c,x,y均为int型,下面说法正确的是()。答案:表达式“y=x++”等价于表达式“y=x,x++”9、下面能正确定义整型变量x、y和z并为其赋初值5的语句是()。答案:intx=5,y=5,z=5;10、假设a=6,表达式a+=a-=a*a的结果正确的是()。答案:-6011、假设有int型变量i=1,j=2,k=3,下面正确的是()。答案:(i==j)+(j==k)的值为012、假设有int型变量a=1,b=0,下面正确的是()。答案:(a==1)&&(b==0)的值为113、若希望当num的值为奇数时,表达式的值为“真”,num的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是()。答案:!(num%2)14、逻辑运算符两侧运算对象的数据()。答案:可以是任何类型的数据15、期末成绩由平时成绩times和期末上机考试grade两部分组成,要求times和grade只要有一项超过90分即为优秀。正确的写法是()。答案:(times>=90&×<=100)||(grade>=90&&grade<=100)16、正确描述数学式10≤x≤10的表达式是()。答案:-10<=x&&x<=1017、有下面程序段:inta,b,c;a=1,b=2;c=a>ba:b;c=(a>=0a:0)+c;执行上述程序段后a,b,c的结果是()。答案:a=1,b=2,c=318、假设x为int型,下面说法正确的是()答案:逗号表达式x=25,x5的值和x的值分别是50,1019、sizeof(float)是()。答案:一个整型表达式作业第5周迭代计算与循环结构本周作业1、从键盘读入一个自然,判定其是否为回文数,如果是,输出该数;否则,输出0

评分规则:#include<stdio.h>include<stdlib.h>intmain()

{

//1分

unsignedintn,xn;

unsignedinta,b;

//1分

scanf(“%u”,&n);

//1分

xn=0;

a=n;

//5分

while(a){

b=a%10;

a=a/10;

xn=xn*10+b;

}

//1分

if(xn!=n){

xn=0;

}

//1分

printf(“%u”,xn);

return0;

}2、计算sin(x)在区间[0,3.14]上的定积分,并输出结果。

评分规则:#include<stdio.h>include<stdlib.h>include<math.h>intmain()

{

//1分,变量声明

doubles,ya,yb,xa=0,xb=3.14,det;

intn=0,i=0;

//1分,划分区间,随意给大于1的数,越大越好

n=10000;

//将[xa,xb]划分n份

//1分,计算区间宽度

det=(xb-xa)/n;

//1分

s=0;

//有n-1个区间

for(i=0;i<n-1;i++){

//每个区间可以看做一个梯形,计算每个梯形面积,并累加求和

//3分

xa=idet;

xb=(i+1)det;

ya=sin(xa);

yb=sin(xb);

//2分

s=s+det*(ya+yb)/2;

}

//输出1分

printf(“%lf”,s);

return0;

}第5周迭代计算与循环结构本周测试1、对于循环语句while(1);描述正确的是()。答案:死循环2、下面程序的运行结果是()#include<stdio.h>intmain(){intc1=2,c2=0;while(!c2–)printf(“%d,%d”,c1–,c2);return0;}答案:输出2,-13、若有语句while((ch=getchar())==’e’)printf(“*”);当输入字符串abcde<回车>时,while循环体执行()次。答案:0次4、已知intt=0;while(t=1){…}则以下叙述正确的是()答案:循环控制表达式的值为15、以下程序段执行后的输出结果()。inti;for(i=1;;i++)printf(“%d”,i++);答案:死循环6、设已声明int型变量i和k,则下面for循环语句()。for(i=0;k=-1,k=1;i++,k++)printf(“****”);答案:是无限循环7、以下程序中,for循环体执行的次数是()。#defineN2#defineM1+N#defineKM+1*M/2voidmain(){inti;for(i=1;i<K;i++){……..}…….}答案:48、与语句while(!x)等价的语句是()。答案:while(x==0)9、以下关于循环的描述中,错误的是()。答案:do…while语句与while语句的区别仅仅是关键字while的位置不同10、在下列选项中,没有构成死循环的程序段是____答案:ints=26;while(s)–s;11、下面程序执行后的输出结果是()。#include<stdio.h>voidmain(){inti,n=0;for(i=2;i<5;i++){do{if(i%3)continue;n++;}while(!i);n++;}printf(“n=%d”,n);}答案:n=412、以下正确的描述是()答案:只能在循环体内和switch语句体内使用break语句13、(201203二级C)下面程序运行后的输出结果是()。#include<stdio.h>voidmain(){ints=0,n;for(n=0;n<3;n++){switch(s){case0:case1:s+=1;case2:s+=2;break;case3:s+=3;default:s+=4;}printf(“%d”,s);}}答案:3101414、如下程序计算10名同学,每位同学4门课程的总分,并输出voidmain(){intn,k;floatscore,sum,ave;sum=0.0;for(n=1;n<=10;n++){for(k=1;k<=4;k++){scanf(“%f”,&score);sum+=score;}ave=sum/4.0;printf(“NO%d:%f”,n,ave);}}上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是()。答案:sum=0.0;15、分析程序执行过程,x的值为()。voidmain(){intx,y;for(x=1,y=1;x<=50;x++){if(y>=15)break;if(y%5==1){y+=5;continue;}y-=2;}printf(“%d”,x);}答案:416、设x和y均为int型变量,则执行下的循环后,y值为for(y=1,x=1;y<=50;y++){if(x>=8)break;if(x%2==1){x+=5;continue;}x-=3;}答案:417、设j为int型变量,则下面for循环语句的执行结果是for(j=9;j>3;j–){if(j%3)break;–j;–j;}printf(“%d”,j);答案:318、请读程序片段:inta,b;for(a=1,b=1;a<=80;a++){if(b>=20)break;if(b%2==1){b+=2;continue;}b-=6;}printf(“%d”,a);上面程序的输出结果是答案:1119、请读程序片段:inta,b;for(a=1,b=1;a<=80;a++,b++){if(b<20)continue;if(b%2==1){b+=2;break;}}printf(“%d”,a);上面程序的输出结果是答案:2120、设j为int型变量,则下面for循环语句的执行结果是for(j=9;j>3;j–);{j-=2;}printf(“%d”,j);答案:121、如下程序中实现sum=1+2+3+…+n的程序是答案:intsum=0,i;for(i=1;i<=n;i++)sum+=i;22、假设整型变量n,m,i已经声明和赋值,且大于n>2.有如下运算规则:如果n是素数,m=0;否则,m=n。如下程序中正确实现此运算的是?答案:m=n;for(i=2;i<n;i++)if(n%i==0){m=0;break;}23、使用穷举法求解如下(1)(2)构成的方程组(1)x+y=100;(2)2x+y/3=100;如下程序中正确的是?答案:intx,y;for(x=1;x<100;x++){for(y=1;y<100;y++){if(x+y==100&&6x+y==300){printf(“x=%d,y=%d”,x,y);}}}主题5:迭代运算与循环结构主题5测验1、下面说法错误的是()答案:do…while语句可以实现前判断结构2、下面说法错误的是()答案:while语句可以实现直到型循环结构3、下面说法错误的是()答案:do…while语句与while语句的区别仅仅是关键字while的位置不同4、下面描述错误的是()答案:循环体中的continue语句的功能是终止程序的执行5、下面说法错误的是()答案:do…while语句不能嵌套while语句,容易引起二义性6、下面说法错误的是()答案:goto语句即可以从函数体跳出,也可以跳入函数体中7、2.设有:intx=100,y;for(y=100;x!=y;++x,y++)printf(“****”);则关于以下for循环的正确判断是()答案:循环体一次都不执行8、与语句while(x)等价的语句是()答案:while(x!=0)9、以下不是无限循环的是()答案:for(y=6,x=1;x<y;x+=2,y-=2);10、设i和k都是int类型,则for循环语句()for(i=0,k=-1;k=1;i++,k++)printf(“****”);答案:是死循环11、设有程序段,正确的是()intx=10;while(x=0)x=x-1;答案:循环体语句一次也不执行12、以下程序段中的do-while循环()。m=-1;do{m=m*m;}while(!m);答案:执行一次13、语句for(表达式1;;表达式3)等价于()答案:for(表达式1;1;表达式3)14、若k为整型变量,则以下for循环的执行次数是()for(k=2;k==0;)printf(“%d”,k–);答案:0次15、若有以下程序段:for(m=1;m<=100;m++){scanf(“%d”,&y);if(y<0)continue;printf(“%3d”,m);}正确的描述是()答案:最多允许输出100个非负整数16、下列关于swith语句和break语句结论中,正确的是()答案:在swith语句中可以根据需要使用或不需要使用break语句第6周集合数据及其处理本周测试1、以下不正确的语句是__。答案:inty[]={0,1,3,5,7,9};2、若有说明:inta[][3]={1,2,3,4,5,6,7};则数组a第一维的大小是__。答案:33、引用数组元素时,数组下标可以是____答案:值在[0,n-1]之间的整型表达式,其中n为数组长度4、定义了一维int型数组a[10]后,下面错误的引用是_____答案:a[10]=2;5、若有说明:inta[3][4];则对a数组元素的非法引用是__答案:a[0][4]6、以下能对二维数组a进行正确初始化的语句是__。答案:inta[][4]={{1,2,3},{4,5},{6}};7、若二维数组a有m列,则在a[i][j]前的元素个数为__。答案:i*m+j8、若有说明语句:inta[][3]={1,2,3,4,5,6,7,8};则a数组的行数是答案:39、定义如下变量和数组:intk;inta[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是__。for(k=0;k<3;k++)printf(“%d“,a[k][2-k]);答案:35710、下面程序的运行结果是__intmain(){inta[6],i;for(i=1;i<6;i++){a[i]=9(i-2+4(i>3))%5;printf(“%2d”,a[i]);}return0;}答案:-4044311、定义如下的变量和数组inti;inty[2][3]={2,4,6,8,10,12}则下面语句输出结果for(i=0;i<2;i++)printf(“%d“,y[1-i][i+1]);答案:10612、以下程序段给数组所有的元素的输入数据,请选择正确的答案#include<stdio.h>main(){floatx[5],m=0;while(m<5)scanf(“%.2f”,______);}答案:&x[m++]13、要求下面的程序运行后,显示如下结果:21046152324785132则程序中的划线处应填入_.#include<stdio.h>voidmain(){inta[4][4]={_};inti,j;for(i=0;i<4;i++){for(j=0;j<4;j++)printf(“%4d”,a[i][j]);printf(“”);}答案:{2,10,4,6},{1,5,2,3},{2,4,7,8},{5,1,3,2}14、执行下面的程序段后,变量a中的值为inta=3,s[5]={1};s[0]=a;a=s[2]*10;答案:015、执行下面的程序段后,变量a中的值为inta=3,s[5]={1,2};s[0]=a;a=s[2]*10;答案:016、下列程序执行后的输出结果是inta[3][3]={1,2,3,4,5,6,7,8,9};printf(“%d“,a[1][2]);答案:617、下列程序执行后的输出结果是inta[10]={1,2,3,4,5,6,7,8,9,10};putchar(a[1]+’a’);答案:c18、以下定义一维数组语句中错误的是答案:inta[5]=”012345″;19、如下程序的输出结果是intmain(){inta[10]={1,2,2,3,3,4,5,6,7},i;intk=3;for(i=0;i<10;i++){if(a[i]==k){printf(“%3d”,i);}}return0;}答案:3420、如下程序的输出结果是intmain(){inta[10]={1,2,2,3,3,4,5,6,7,8},i;intk=3;for(i=0;i<10;i++){if(a[i]==k){a[i]=a[i+1];}}for(i=0;i<10;i++)printf(“%2d”,a[i]);return0;}答案:122344567821、如下程序的输出结果是intmain(){inta[10]={1,2,2,3,3,4,5,6,7,8},i;intk=3;for(i=0;i<10;i++){if(a[i]==k){a[i]=a[i+1];i–;}}for(i=0;i<10;i++)printf(“%2d”,a[i]);return0;}答案:死循环22、如下程序的输出结果是intmain(){inta[10]={1,2,2,3,3,4,5,6,7,8},i;intk=3;for(i=0;i<10;i++){if(a[i]==k){intj;for(j=i;j<10-1;j++)a[j]=a[j+1];i–;}}for(i=0;i<10;i++)printf(“%2d”,a[i]);return0;}答案:122456788823、如下程序的输出结果是intmain(){inta[10]={1,2,2,3,3,4,5,6,7,8},i;intk=3;for(i=0;i<10;i++){if(a[i]==k){intj=10-1;while(j>i){a[j+1]=a[j];j–;}}}for(i=0;i<10;i++)printf(“%2d”,a[i]);return0;}答案:12233344567824、如下程序的输出结果是intmain(){inta[3][4]={1,2,3,4,5,6,7,8,9};inti;for(i=0;i<3;i++){intj=0;for(j=0;j<3;j++){if(a[i][3]>a[i][j])a[i][3]=a[i][j];}}for(i=0;i<3;i++)printf(“%2d”,a[i][3]);return0;}答案:15025、如下程序的输出结果是intmain(){inta[3][4]={{1,2,3},{4,5,6},{7,8,9}};inti;for(i=0;i<3;i++){intj=0;for(j=0;j<3;j++){a[i][3]+=a[i][j];}}for(i=0;i<3;i++)printf(“%5d”,a[i][3]);return0;}答案:61524第7周字符数据处理单元测试1、以下不正确的语句是__。答案:inty[5]={0,1,3,5,7,9};2、下面错误的初始化语句是_____答案:charstr[]={‘hello’};3、若有说明:inta[][3]={1,2,3,4,5,6,7};则数组a第一维的大小是__。答案:34、引用数组元素时,数组下标可以是_____答案:可以为整型常量、整型变量、整型表达式,且要求大于等于0,小于等于数组长度减一5、若有以下说明:intx[9]={1,2,3,4,5,6,7,8,9};charc=’a’,d,f;则数值为3的表达式是()答案:x[‘c’-c]6、已有定义:chara[]=”xyz”,b[]={‘x’,’y’,’z’};,以下叙述中正确的是答案:a数组长度大于b数组长度7、定义了一维int型数组a[10]后,下面错误的引用是_____。答案:a[10]=2;8、若有说明:inta[3][4];则对a数组元素的非法引用是__答案:a[0][4]9、以下能对二维数组a进行正确初始化的语句是__。答案:inta[][4]={{1,2,3},{4,5},{6}};10、若二维数组a有m列,则在a[i][j]前的元素个数为__。答案:i*m+j11、若有语句:inta[][3]={{1,2},{3,4,5},{6},{7,8}};则a数组的行数是答案:412、定义如下变量和数组:intk;inta[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是__。for(k=0;k<3;k++)printf(“%d“,a[k][2-k]);答案:35713、下面程序的运行结果是__。main(){inta[6],i;for(i=1;i<6;i++){a[i]=9(i-2+4(i>3))%5;printf(“%2d”,a[i]);}}答案:-4044314、下面程序的运行结果是__。main(){inta[6][6],i,j;for(i=1;i<6;i++)for(j=1;j<6;j++)a[i][j]=(i/j)*(j/i);for(i=1;i<6;i++){for(j=1;j<6;j++)printf(“%2d”,a[i][j]);printf(“”);}}答案:100000100000100000100000115、定义如下的变量和数组intI;inty[2][3]={2,4,6,8,10,12}则下面语句输出结果for(I=0;I<2;I++)printf(“%d,”,y[1-I][I+1]);答案:10,616、以下程序段给数组所有的元素的输入数据,请选择正确的答案#include<stdio.h>main(){floatx[5];intm=0;while(m<5)scanf(“%f”,______);}答案:&x[m++]17、定义如下变量和数组intm;inta[2][2]={1,2,3,4};则下面语句的输出结果是for(m=0;m<2;m++;)printf(“%d,”,a[m][1-m]);答案:2,318、下面程序的运行结果是__。#include“stdio.h”#include“string.h”main(){chara[80]=”AB”,b[80]=”LMNP”;inti=0;strcat(a,b);while(a[i++]!=’\0′)b[i]=a[i];puts(b);}答案:LBLMNP19、下面程序段的运行结果是charx[5]={‘a’,’b’,’\0’,’c’,’\0′};printf(“%s”,x);答案:ab20、#include<stdio.h>main(){intA[2][3]={1,3,5};printf(“%d”,A[1][1]);}上述程序的输出结果为____。答案:021、要求下面的程序运行后,显示如下结果:21046152324785132则程序中的划线处应填入_.#include<stdio.h>voidmain(){inta[4][4]={_};inti,j;for(i=0;i<4;i++){for(j=0;j<4;j++)printf(“%4d”,a[i][j]);printf(“”);}答案:{2,10,4,6},{1,5,2,3},{2,4,7,8},{5,1,3,2}22、有以下程序intmain(){chara[]={‘1’,‘2’,‘3’},b[10]={‘1’,‘2’,‘3’};printf(“%d%d”,strlen(a),strlen(b));return0;}以下叙述中正确的是答案:在给a和b数组置初值时,对于没给初值的元素,自动赋值为0,故输出的长度都为323、执行下面的程序段后,输出结果为多少chara[]={‘1’,‘2’,‘3’},b[10]={‘1’,‘2’,‘3’};printf(“%d,%d”,sizeof(a),sizeof(b));答案:3,1024、有以下程序intmain(){chara[]={1,2,3},b[]={“123”};printf(“%s%s”,a,b);return0;}答案:数组a长度小于数组b的长度25、有以下程序intmain(){chara[100]=”Hi”,charb[]=”NEU”;strcat(a,b);

温馨提示

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

评论

0/150

提交评论