MOOC C编程方法学-武汉理工大学 中国大学慕课答案_第1页
MOOC C编程方法学-武汉理工大学 中国大学慕课答案_第2页
MOOC C编程方法学-武汉理工大学 中国大学慕课答案_第3页
MOOC C编程方法学-武汉理工大学 中国大学慕课答案_第4页
MOOC C编程方法学-武汉理工大学 中国大学慕课答案_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

MOOCC编程方法学-武汉理工大学中国大学慕课答案【练习】算法与结构化程序设计结构1、问题:下列叙述中正确的是()。选项:A、算法必须要有输入和输出操作。B、算法可以没有输入,但必须要有输出操作。C、算法可以没有输出,但必须要有输入操作。D、算法可以既没有输入,也没有输出操作。正确答案:【算法可以没有输入,但必须要有输出操作。】2、问题:以下关于程序、数据结构和算法的关系,描述正确的是()。选项:A、算法=数据结构=程序B、算法=数据结构+程序C、程序=数据结构+算法D、数据结构=算法+程序正确答案:【程序=数据结构+算法】3、问题:算法的有穷性是指()。选项:A、算法程序的运行时间是有限的。B、算法程序所处理的数据量是有限的。C、算法程序的长度是有限的D、算法只能被有限的用户使用正确答案:【算法程序的运行时间是有限的。】4、问题:结构化程序由三种基本结构组成,三种基本结构组成的算法()。选项:A、只能完成一些简单的任务B、只能完成部分复杂的任务C、只能完成符合结构化的任务D、可以完成任何复杂的任务正确答案:【可以完成任何复杂的任务】【练习】常量与变量1、问题:下列()是C语言中的合法常量。选项:A、'\045'B、08C、e1D、1.0e0.5正确答案:【'\045'】2、问题:下面正确的字符常量是()。选项:A、cB、'\\'’C、'W'正确答案:【'W'】3、问题:C语言规定:定义符号常量时必须用大写字母。选项:A、正确B、错误正确答案:【错误】【练习】算术运算1、问题:有如下语句floatx=2.5,y=4.7;inta=7;printf(“%.1f”,x+a%3*(int)(x+y)%2/4);输出结果是()。选项:A、3.5B、2.8C、2.5D、3.8正确答案:【2.5】2、问题:C语言中,运算对象必须是整型数的运算符是()。选项:A、%B、\C、%和\D、/正确答案:【%】3、问题:已知字母A的ASCII码为十进制数65,且ch为字符型变量,则执行语句ch='A'+'6'-'3';后,ch中的值为()。选项:A、DB、68C、CD、不确定正确答案:【68】【练习】赋值运算1、问题:设x、y均为f1oat型变量,则以下不合法的赋值语句是()选项:A、y=1+x;B、y=(x%2)/10;C、x*=y+8;D、x=y=0;正确答案:【y=(x%2)/10;】2、问题:若x、i、j和k都是int型变量,则执行下面表达式x=(i=4,j=16,k=32)后x的值为()。选项:A、4B、16C、32D、52正确答案:【32】3、问题:设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是()。选项:A、把x和y按从大到小排列B、把x和y按从小到大排列C、无确定结果D、交换x和y中的值正确答案:【交换x和y中的值】4、问题:以下能正确地定义整型变量a、b和c,并为它们赋初值5的语句是()。选项:A、inta=b=c=5;B、inta=5,b=5,c=5;C、inta,b,c=5;D、a=5,b=5,c=5;正确答案:【inta=5,b=5,c=5;】5、问题:下列两条语句:inta=1,b=2,c;c=1.0/b*a;执行后变量c中的值是()。选项:A、0.5B、1C、0D、2正确答案:【0】6、问题:下面哪一句是正确的赋值语句?选项:A、x=y=87;B、x++C、x=6*y=13;D、x=intn;正确答案:【x=y=87;】7、问题:设有floata=4,则a+=a/=a*a的值是()。选项:A、0.5B、1.5C、2.5D、3.5正确答案:【0.5】8、填空题:设a和n都已定义为整型变量,a=12,n=5,写出表达式a/=a+a运算后a的值()正确答案:【0】【练习】逗号运算符1、问题:已知inti,a;执行语句i=(a=2*3,a*5),a+6;后,变量i的值是()。选项:A、6B、12C、30D、36正确答案:【30】【练习】自增自减运算1、问题:若有定义#defineT8和inta,b;,下面正确的表达式是()。选项:A、++b--B、21+'a'C、a+2++D、T++正确答案:【21+'a'】2、填空题:设有intx,a;,则执行a=(x=1,x++,x+2)后,a的值为()。正确答案:【4】【练习】输入输出函数的使用1、问题:给定:inta,b;以下哪个scanf()的使用是错误的?选项:A、scanf(%d,a);scanf(%d,b);B、scanf(%d%d,a,b);C、scanf(%d,%d,a,b);D、scanf(%d%d,a,b);正确答案:【scanf(%d%d,a,b);】2、问题:给定:inta,b,c;scanf(%d,%d,%d,a,b,c);则以下哪个输入方式是正确的?选项:A、2030,40B、20,30,40C、203040D、20,3040正确答案:【20,30,40】3、问题:执行下面的语句:charc1=97,c2=98;printf(%d%c,c1,c2;其输出结果是()。(字符'a'的ASCII码为97)选项:A、9798B、97bC、a98D、ab正确答案:【97b】【练习】条件运算符1、问题:对条件表达式(M)?(a++):(a--)来说,其中表达式M等价于______。选项:A、M==0B、M==1C、M!=0D、M!=1正确答案:【M!=0】【练习】逻辑运算1、问题:能正确地用逻辑关系表示:”10a15”的C语言表达式是______。选项:A、10a15B、10aa15C、10a||a15D、10=aa=15正确答案:【10aa15】2、问题:对于intx=10,y=100;以下逻辑表达式的值为0的是()。选项:A、(x100||y10)y==100B、(x0y0)||x100C、(x10||y10)x==10D、x100||y10||y10正确答案:【(x100||y10)y==100】3、问题:能正确表示a和b同时为正或同时为负的逻辑表达式是()。选项:A、a*b0B、(a0||b0)(a0||b0)C、(a0b0)(a0b0)D、(a+b0)(a+b0)正确答案:【a*b0】【练习】短路定理1、填空题:表达式:a=1||ab+5||a1的值是______。正确答案:【1】【练习】综合运算1、问题:以下运算符中优先级最高的运算符是______。B、||C、!=D、!正确答案:【!】2、问题:设i、j、k是int型变量,且i=3,j=4,k=5,则以下值为0的表达式是()选项:A、i||j+kj-kB、!((ij)!k||1)C、'i''j'D、i=j正确答案:【!((ij)!k||1)】3、填空题:有定义:inta=3,b=4,c=5;则表达式a||b+cb-c的值为________。正确答案:【1】4、填空题:执行以下程序段后的b的值是()。inta=5,b=6,c=1,x=2,y=3,z=4;c=(a=cx)(b=yz);正确答案:【6】【测验1】数据类型、运算符表达式及顺序结构1、问题:C语言表达式中,对于实数选项:,下面正确的实型常量指数形式是()。A、1.0e-6B、1e-6.0C、10e-6D、1.0e-6.0正确答案:【1.0e-6】2、问题:设有floata=1;,则a/=a+a的值是()。选项:A、0.5B、0C、2.0D、1.0正确答案:【0.5】3、问题:若有定义inta=10;,下面正确的表达式是()。选项:A、-a++B、++a--C、a+2++D、(a+2)++正确答案:【-a++】4、问题:以下能正确地定义整型变量a、b和c,并为它们赋初值5的语句是()。选项:A、inta=5,b=5,c=5;B、inta=b=c=5;C、inta,b,c=5;D、a=5,b=5,c=5;正确答案:【inta=5,b=5,c=5;】5、问题:如果变量x、y、t已经正确定义,下列哪个选项的语句不能正确将x、y的值进行交换?选项:A、x=t,t=y,y=x;B、x=x+y,y=x-y,x=x-y;C、t=x,x=y;y=t;D、t=y,y=x,x=t;正确答案:【x=t,t=y,y=x;】6、问题:若变量已正确定义并赋值,符合C语言语法的表达式是()。选项:A、a=3,5B、a=2++C、a=a+1=3D、12.3%4正确答案:【a=3,5】7、问题:若变量已正确定义,表达式(j=3,j-3,j++)执行后,j的值是____。选项:A、4B、3C、0D、1正确答案:【4】8、问题:下列叙述中错误的是()。选项:A、计算机可以直接运行扩展名为c的文件。B、扩展名为obj的文件不能直接运行。C、连接是指将扩展名为obj的文件,经连接程序生成扩展名为exe可执行文件的操作。D、编译是指C源程序经编译程序编译,生成扩展名为obj的目标文件的操作。正确答案:【计算机可以直接运行扩展名为c的文件。】9、问题:一个字长为8位的无符号二进制数能表示的十进制数值范围是()。选项:A、0~255B、1~255C、-127~127D、-128~127正确答案:【0~255】10、问题:若有intx=50;,则下列语句()会输出“50%”。选项:A、printf(%d%%,x);B、printf(%d,x%);C、printf(%d%,x);D、printf(%d%%);正确答案:【printf(%d%%,x);】11、问题:若有:inta;doublec;现要按下面格式输入这2个数,以下哪个输入语句是正确的。10012.34选项:A、scanf(%d%lf,a,c);B、scanf(%d%lf,a,c);C、scanf(%d,%f,a,c);D、scanf(%d%d,a,c);正确答案:【scanf(%d%lf,a,c);】12、问题:表达式:(int)((double)(34/4)-2.5)%5的值是()。选项:A、4B、1C、0D、5正确答案:【0】13、问题:以下程序段执行后,输出结果是()。doublex,y;x=2;y=x+3/2;printf(%lf,y);选项:A、3.500000B、3C、3.0D、3.000000正确答案:【3.000000】14、问题:有表达式:(double)(1/2)+(int)(1/2.0),运算后结果是()。选项:A、0B、0.0C、0.5D、1.0正确答案:【0.0】15、问题:有定义:inta=10;floatx=2.8,y=3.9;则,下面算术表达式的值为()。x+a/3*(int)(x+y+0.9)%5/4选项:A、2.8B、表达式有错误,不能对实数作%求余运算C、3.0D、3.8正确答案:【2.8】16、问题:语句printf(%.2f,1/3);输出结果为0.33。选项:A、正确B、错误正确答案:【错误】17、问题:a=b=4+c=6是一个合法的赋值表达式。选项:A、正确B、错误正确答案:【错误】18、问题:C语言规定:定义符号常量时宏名的命名可以用任何符号。选项:A、正确B、错误正确答案:【错误】19、填空题:设有intx,a;,则执行a=(x=5,x+2,x++)后,a的值为()。正确答案:【5】20、填空题:设inta=2;,写出表达式a/=a+a运算后a的值()。正确答案:【0】21、填空题:inta=10,b=4,c;c=1.0/b*a;执行上面语句后变量c的值是()。正确答案:【2】【练习】if语句1、问题:inta=1,b=2,c=3;if(ac)b=a;a=c;c=b;则c的值为_______。选项:A、2B、1C、3D、不一定正确答案:【2】2、问题:inta=3,b=2,c=1;if(abc)a=b;elsea=c;则a的值为_______。选项:A、1B、3C、2D、0正确答案:【1】3、问题:假定所有变量均已正确定义,下列程序段运行后x的值是_______。k1=1;k2=2;k3=3;x=15;if(!k1)x--;elseif(k2)x=4;elsex=3;选项:A、4B、14C、15D、3正确答案:【4】4、问题:以下程序段运行后的输出结果是()。inta=0,b=0,c=0,d=0;if(a=1)b=1;c=2;elsed=3;printf(%d,%d,%d,%d,a,b,c,d);选项:A、有编译错误B、1,1,2,0C、0,0,0,3D、0,1,2,0正确答案:【有编译错误】5、问题:执行以下代码段后,输出结果是()。floatx=2,y;if(x0)y=0;elseif(x10)y=1.0/10;elsey=1;printf(%.1f\n,y);选项:A、0.1B、0.100000C、0.0D、1.0正确答案:【0.1】6、问题:if(a=5)是合法的。选项:A、正确B、错误正确答案:【正确】7、问题:在C语言中,if语句后的一对圆括号中,用以决定分支流程的表达式只能用逻辑表达式或关系表达式。选项:A、正确B、错误正确答案:【错误】【练习】嵌套的if语句1、问题:以下程序段运行后的输出结果是()。intx=1,y=0;if(!x)y++;elseif(x==0)if(x)y+=2;elsey+=3;printf(%d\n,y);选项:A、0B、3C、2D、1正确答案:【0】2、问题:floata,b;scanf(%f,a);if(a0.0)b=0.0;elseif((a0.5)(a!=2.0))b=1.0/(a+2.0);elseif(a10.0)b=1.0/a;elseb=10.0;printf(%f\n,b);若以上程序段运行时输入为2.0(回车),则上面程序的输出结果是()。选项:A、0.500000B、0.5C、0D、0.0正确答案:【0.500000】3、问题:当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是()。if(ab)if(cd)x=1;elseif(ac)if(bd)x=2;elsex=3;elsex=6;elsex=7;选项:A、2B、1C、3D、6正确答案:【2】【练习】switch1、问题:下列叙述中正确的是()。选项:A、在switch语句中,不一定使用break语句。B、在switch语句中必须使用default。C、break语句必须与switch语句中的case配对使用。D、break语句只能用于switch语句。正确答案:【在switch语句中,不一定使用break语句。】2、问题:若有定义:floatx=1.5;inta=1,b=3,c=2;则正确的switch语句是()。选项:A、switch(a+b){case1:printf(*\n);case2+1:printf(**\n);}B、switch((int)x);{case1:printf(*\n);case2:printf(**\n);}C、switch(x){case1.0:printf(*\n);case2.0:printf(**\n);}D、switch(a+b){case1:printf(*\n);casec:printf(**\n);}正确答案:【switch(a+b){case1:printf(*\n);case2+1:printf(**\n);}】3、问题:case语句后如果没有break,则顺序向下执行。选项:A、正确B、错误正确答案:【正确】【测验2】选择结构1、问题:执行下面程序片段后,变量a,b,c的值分别是()。inta,b,c;intx=8,y=10;a=(x++==y--)?x:y;b=++x;c=--y;选项:A、a=9,b=10,c=8B、a=8,b=8,c=10C、a=9,b=8,c=10D、a=9,b=9,c=8正确答案:【a=9,b=10,c=8】2、问题:分析下面程序片段,下面输出结果正确的是()。inta=0,b=0,c=1;c=a++(b=1);printf(a=%d,b=%d,c=%d\n,a,b,c);选项:A、a=1,b=0,c=0B、a=1,b=1,c=0C、a=1,b=0,c=1D、a=1,b=1,c=1正确答案:【a=1,b=0,c=0】3、问题:对于intx=10,y=100;以下逻辑表达式的值为0的是()。选项:A、(x100||y10)y==100B、(x0y0)||x100C、(x10||y10)x==10D、x100||y10||y10正确答案:【(x100||y10)y==100】4、问题:设i、j、k是int型变量,且i=3,j=4,k=5,则以下值为0的表达式是()。选项:A、!((ij)!k||1)B、'i''j'C、i=jD、i||j+kj-k正确答案:【!((ij)!k||1)】5、问题:执行以下程序段后的b的值是()。inta=5,b=6,c=1,x=2,y=3,z=4;c=(a=cx)(b=yz);选项:A、6B、0C、1D、5正确答案:【6】6、问题:对条件表达式(M)?(a++):(a--)来说,其中表达式M等价于()。选项:A、M!=0B、M==0C、M==1D、M!=1正确答案:【M!=0】7、问题:能正确表示关系x≤y≤z的C语言表达式为()。选项:A、(x=y)(y=z)B、(x=y)AND(y=z)C、(x=y=z)D、(x=y)(y=z)正确答案:【(x=y)(y=z)】8、问题:若变量x、y都为float型,以下表达式中不能正确表示数学关系|x-y|10的是()。选项:A、(x-y)-10||(x-y)10B、fabs(x-y)10C、x-y-10x-y10D、(x-y)*(x-y)100正确答案:【(x-y)-10||(x-y)10】9、问题:以下程序段运行后的输出结果是()。intx=1,y=0;if(!x)y++;elseif(x==0)if(x)y+=2;elsey+=3;printf(%d\n,y);选项:A、0B、1C、2D、3正确答案:【0】10、问题:以下程序段运行后的输出结果是()。inta=0,b=0,c=0,d=0;if(a=1)b=1;c=2;elsed=3;printf(%d,%d,%d,%d,a,b,c,d);选项:A、编译有错B、1,1,2,0C、0,0,0,3D、0,1,2,0正确答案:【编译有错】11、问题:有如下嵌套的if语句if(ab)if(ac)k=a;elsek=c;elseif(bc)k=b;elsek=c;以下选项中与上述语句等价的语句是()。选项:A、k=(ab)?((ac)?a:c):((bc)?b:c);B、k=(ab)?((bc)?a:b):((bc)?b:c);C、k=(ab)?a:b;k=(bc)?b:c;D、k=(ab)?a:b;k=(ac)?a:c;正确答案:【k=(ab)?((ac)?a:c):((bc)?b:c);】12、问题:有以下程序段运行时从键盘输入9回车,则输出结果是()。inta;scanf(%d,a);if(a++9)printf(%d\n,a);elseprintf(%d\n,a+1);选项:A、11B、8C、9D、10正确答案:【11】13、问题:若有定义:floatx=1.5;inta=1,b=3,c=2;则正确的switch语句是()。选项:A、switch(a+b){case1:printf(*\n);case2+1:printf(**\n);}B、switch((int)x);{case1:printf(*\n);case2:printf(**\n);}C、switch(x){case1.0:printf(*\n);case2.0:printf(**\n);}D、switch(a+b){case1:printf(*\n);casec:printf(**\n);}正确答案:【switch(a+b){case1:printf(*\n);case2+1:printf(**\n);}】14、问题:下列叙述中正确的是()。选项:A、在switch语句中,不一定使用break语句。B、在switch语句中必须使用default。C、break语句必须与switch语句中的case配对使用。D、break语句只能用于switch语句。正确答案:【在switch语句中,不一定使用break语句。】15、问题:设有说明:inta=11,b=10;,执行语句a%=b+(ab);后,a的值为()。选项:A、0B、11C、1D、22正确答案:【0】16、问题:能正确表示a和b同时为正或同时为负的逻辑表达式是()。选项:A、a*b0B、(a0||b0)(a0||b0)C、(a0b0)(a0b0)D、(a+b0)(a+b0)正确答案:【a*b0】17、问题:在下面条件语句中(其中S1和S2表示C语言语句),只有()在功能上与其他三个语句不等价。选项:A、if(a==0)S1;elseS2;B、if(a)S1;elseS2;C、if(a==0)S2;elseS1;D、if(a!=0)S1;elseS2;正确答案:【if(a==0)S1;elseS2;】18、问题:如果要求:if后一对括号中的表达式表示a不等于0时值为“真”,则不能正确表示这一关系的表达式为()。选项:A、!aB、aC、a!=0D、!!a正确答案:【!a】19、问题:以下程序段运行时,输入的x值在()范围时才会有输出结果。intx;scanf(%d,x);if(x=3);elseif(x!=10)printf(%d,x);选项:A、大于3且不等于10的整数B、不等于10的整数C、大于3且等于10的整数D、小于3的整数正确答案:【大于3且不等于10的整数】20、问题:表达式()不能用于判断“x和y不同时为零”。选项:A、!(x==0||y==0)B、x!=0||y!=0C、x||yD、!(x==0y==0)正确答案:【!(x==0||y==0)】21、问题:下列选项中用于判断ch是否是英文字母的表达式是()。选项:A、(ch='a'ch='z')||(ch='A'ch='Z')B、('a'=ch='z')||('A'=ch='Z')C、('a'=ch='z')('A'=ch='Z')D、(ch='a'ch='z')(ch='A'ch='Z')正确答案:【(ch='a'ch='z')||(ch='A'ch='Z')】22、问题:case语句后如没有break,顺序向下执行。选项:A、正确B、错误正确答案:【正确】23、问题:if(a=5)是允许的。选项:A、正确B、错误正确答案:【正确】24、问题:在if语句的三种形式中,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句选项:A、正确B、错误正确答案:【正确】25、填空题:有定义:inta=3,b=4,c=5;则表达式a||b+cb-c的值为________。正确答案:【1】26、填空题:表达式:a=1||ab+5||a1的值是______。正确答案:【1】27、填空题:floata,b;scanf(%f,a);if(a0.0)b=0.0;elseif((a0.5)(a!=2.0))b=1.0/(a+2.0);elseif(a10.0)b=1.0/a;elseb=10.0;printf(%f\n,b);若以上程序段运行时输入为2.0(回车),则上面程序的输出结果是。正确答案:【0.500000】28、填空题:执行以下代码段后,输出结果是。floatx=2,y;if(x0)y=0;elseif(x10)y=1.0/10;elsey=1;printf(%.1f\n,y);正确答案:【0.1】29、填空题:当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是。if(ab)if(cd)x=1;elseif(ac)if(bd)x=2;elsex=3;elsex=6;elsex=7;正确答案:【2】30、填空题:表达式863值是()。正确答案:【0】【练习】while1、问题:intx=1;while(x5);x++;执行上面程序段,下面说法正确的是()。选项:A、程序执行出现死循环。B、程序段执行结束后,x值为6。C、程序段执行结束后,x值为5。D、程序段执行结束后,x值为2。正确答案:【程序执行出现死循环。】2、填空题:下面循环结束后x值为。intx=1;while(x++5);正确答案:【6】【练习】do-while语句1、问题:执行以下程序段时,()。x=-1;do{x=x*x;}while(!x);选项:A、循环体将执行无限次B、循环体将执行2次C、循环体将执行1次D、系统将提示有语法错误正确答案:【循环体将执行1次】【练习】for语句1、问题:语句for(表达式1;;表达式3)等价于()。选项:A、for(表达式1;0;表达式3)B、for(表达式1;1;表达式3)C、for(表达式1;表达式1;表达式3)D、for(表达式1;表达式3;表达式3)正确答案:【for(表达式1;1;表达式3)】2、问题:下面的这个循环的循环次数是()。for(inti=0,j=5;i=j=10;i++,j--)选项:A、1B、10C、无限次D、语法错误,不能执行正确答案:【无限次】3、问题:在for(exp1;exp2;exp3)中,exp3可以是逗号表达式。选项:A、正确B、错误正确答案:【正确】4、填空题:下面的循环语句,循环体执行的次数是次。for(a=0;a10;a++)a++;正确答案:【5】【练习】break+continue1、问题:在循环体中如果执行到break语句,则立即结束该循环,而不再判断执行当前循环的条件是否成立。选项:A、正确B、错误正确答案:【正确】2、问题:在循环体中如果执行到continue语句,则立即结束该循环,而不再判断执行当前循环的条件是否成立。选项:A、正确B、错误正确答案:【错误】【练习】多重循环1、问题:以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出。程序运行后结果不正确,调试中发现有1条语句在程序的位置不正确。这条语句是()。#includestdio.hintmain(){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,n,ave);}return0;}选项:A、第13行,printf(NO%d:%f\n,n,ave);B、第12行,ave=sum/4.0;C、第11行,sum+=score;D、第6行,sum=0.0;正确答案:【第6行,sum=0.0;】2、问题:对于并列的循环结构中,控制循环执行的变量名字可以相同。选项:A、正确B、错误正确答案:【正确】3、问题:双重循环中,内循环中的continue语句的作用是结束内循环,并继续执行外循环。选项:A、正确B、错误正确答案:【错误】4、问题:在多层循环中,一个break语句只能结束其当前所在层次的循环结构。选项:A、正确B、错误正确答案:【正确】【测验3】循环结构1、问题:下面程序的功能是从键盘输入一组字符,从中统计大写字母和小写字母的个数,请在下划线处填空()?#includestdio.hintmain(){intm=0,n=0;charc;while((_______)!='\n'){if(c='A'c='Z')m++;if(c='a'c='z')n++;}printf(%d%d,m,n);return0;}选项:A、c=getchar()B、getchar()C、c==getchar()D、scanf(%c,c)正确答案:【c=getchar()】2、问题:以下程序段运行时,若输入123450回车,输出结果是()?ints;scanf(%d,s);while(s0){switch(s){case1:printf(%d,s+5);case2:printf(%d,s+4);break;case3:printf(%d,s+3);default:printf(%d,s+1);break;}scanf(%d,s);}选项:A、6566456B、66656C、66666D、6666656正确答案:【6566456】3、问题:执行while(表达式)循环的条件是()。选项:A、当表达式的值为非0时B、当表达式的值为0时C、仅当表达式的值为1时D、当表达式的值不为1时正确答案:【当表达式的值为非0时】4、问题:下面程序段的输出结果是()?intn=9;while(n6){n--;printf(%d,n);}选项:A、876B、987C、8765D、9876正确答案:【876】5、问题:语句for(表达式1;;表达式3)等价于?()选项:A、for(表达式1;1;表达式3)B、for(表达式1;0;表达式3)C、for(表达式1;表达式1;表达式3)D、for(表达式1;表达式3;表达式3)正确答案:【for(表达式1;1;表达式3)】6、问题:以下不会构成死循环的语句或语句组是?()选项:A、n=0;do{++n;}while(n=0);B、n=0;while(1){n++;}C、n=10;while(n);{n--;}D、for(n=0,i=1;;i++)n+=i;正确答案:【n=0;do{++n;}while(n=0);】7、问题:以下程序段的循环次数是?()for(i=2;i==0;)printf(%d,i--);选项:A、0次B、无限次C、1次D、2次正确答案:【0次】8、问题:若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是哪一个?()选项:A、for(i=1;i=5;i++){p=1;p*=i;}B、for(i=1,p=1;i=5;i++)p*=i;C、i=1;p=1;while(i=5){p*=i;i++;}D、i=1;p=1;do{p*=i;i++;}while(i=5);正确答案:【for(i=1;i=5;i++){p=1;p*=i;}】9、问题:若有以下程序段,正确的描述是什么?()ꢀfor(m=1;m=100;m++){ꢀscanf(%d,y);ꢀꢀif(y0)ꢀꢀcontinue;printf(%d,m);}选项:A、最多允许输出100个非负整数B、当y0时整个循环结束C、y=0时什么也不输出D、printf函数永远也不执行正确答案:【最多允许输出100个非负整数】10、问题:下面程序段执行后,n的值是()。inti,n=0;for(i=2;i5;i++){do{if(i%3)continue;n++;}while(!i);n++;}选项:A、4B、5C、2D、3正确答案:【4】11、问题:下面程序的功能是输出以下形式的金字塔图案,划线处应该填入的是?()#includestdio.hintmain(){inti,j;for(i=1;i=4;i++){for(j=1;j=4-i;j++)printf();for(j=1;j=_______;j++)printf(*);printf(\n);}return0;}选项:A、2*i-1B、iC、2*i+1D、i+2正确答案:【2*i-1】12、问题:变量m的初值是55,执行完以下程序段后,m的值为()。for(i=1;i=3;i++)for(j=3;j=i;j++)m=m%j;选项:A、1B、0C、2D、3正确答案:【1】13、问题:有整型变量a和b,若运行以下程序段时从键盘输入:18,11回车,循环结束时变量a、b的值分别为()。scanf(%d,%d,a,b);while(a!=b){while(ab)a-=b;while(ba)b-=a;}选项:A、11B、12C、13D、14正确答案:【11】14、问题:#includestdio.hintmain(){intk=2;while(k=0){printf(%d,k);k--;}return0;}则下面描述中正确的是?()选项:A、循环体语句一次也不执行B、while循环执行10次C、是无限循环D、循环体语句执行一次正确答案:【循环体语句一次也不执行】15、问题:运行下面程序段后,输出结果是?()inti=6;while(i--)printf(%d,--i);选项:A、420B、531C、654321D、死循环正确答案:【420】16、问题:设intm;,与while(!m)等价的是下面哪个?()选项:A、while(m==0)B、while(m!=0)C、while(m==1)D、while(m!=1)正确答案:【while(m==0)】17、问题:下面循环的循环次数是()。for(inti=0,j=10;i=j=10;i++,j--)选项:A、无限次B、语法错误,不能执行C、10D、1正确答案:【无限次】【练习】一维数组的定义1、问题:在C语言中,引用数组元素时,其数组下标的数据类型不允许是()。选项:A、整型常量B、整型表达式C、整型常量或整型表达式D、实型表达式正确答案:【实型表达式】2、问题:对于已定义的数组,以下描述正确的是()。选项:A、数组的大小是可变的,但所有数组元素的类型必须相同。B、数组的大小是固定的,但可以有不同类型的数组元素。C、数组的大小是固定的,所有数组元素的类型必须相同。D、数组的大小是可变的,可以有不同类型的数组元素。正确答案:【数组的大小是固定的,所有数组元素的类型必须相同。】3、问题:有定义:”intx[10]={0,2,4};”,则数组x在内存中所占字节数是_____。选项:A、12B、40C、3D、10正确答案:【40】4、问题:执行下面的语句段后,变量k的值为()。intk=3,s[2];s[0]=k;k=s[1]*10;选项:A、10B、30C、33D、不定值正确答案:【不定值】5、问题:若有下面的数组定义,关于数组a元素个数的选项哪个是错误的()。inta[]={0,1,2,3,4,5,6,7,8,9};选项:A、9B、10C、sizeof(a)/sizeof(int)D、sizeof(a)/sizeof(a[0])正确答案:【9】【练习】一维数组引用1、问题:下面输出结果正确的是()。inta[5]={1,2,3,4,5};inti;for(i=0;i5;i++)printf(%d,a[i]);选项:A、12345B、12345C、12345D、1,2,3,4,5正确答案:【12345】2、问题:下面程序中有错误的行是()。#includestdio.hintmain(){inta[3]={1};inti;scanf(%d,a);for(i=1;i3;i++){a[0]=a[0]+a[i];printf(a[0]=%d\n,a[0]);}return0;}选项:A、3B、6C、7D、8正确答案:【6】【练习】二维数组定义1、问题:二维数组中的数组元素可以是不同的数据类型。选项:A、正确B、错误正确答案:【错误】2、填空题:若有以下定义:doublea[3][5];,则数组a占用字节数为()字节。正确答案:【120】随堂练习-二维数组初始化1、问题:以下能对二维数组y进行初始化的语句是()。选项:A、inty[2][]={{1,0,1},{5,2,3}};B、inty[][3]={{1,2,3},{4,5,6}};C、inty[2][4]={{1,2,3},{4,5},{6}};D、inty[][3]={{1,0,1,0},{},{1,1}};正确答案:【inty[][3]={{1,2,3},{4,5,6}};】2、问题:若有说明inta[3][4]={0};,则下面正确的叙述是(ꢀꢀ)。选项:A、只有元素a[0][0]可得到初值0。B、数组a中每个元素均可得到初值0。C、数组a中各元素都可得到初值,但其值不一定为0。D、此说明语句不正确。正确答案:【数组a中每个元素均可得到初值0。】3、填空题:若有定义:inta[][5]={{3,15,6},{11,12}};,则a[0][7]的值为()。正确答案:【0】【练习】二维数组引用1、问题:若有说明inta[3][4];,则对a数组元素的正确引用是(ꢀꢀ)。选项:A、a[2][4]B、a[1,3]C、a[1+1][0]D、a(2)(1)正确答案:【a[1+1][0]】2、问题:若有定义:inta[2][2];,则以下赋值语句正确的是()。选项:A、a[1][1]=5;B、a[2][2]=3;C、a[1,1]=4;D、a={1,2,3,4};正确答案:【a[1][1]=5;】3、问题:c语言中,二维数组在内存中的存放也是二维的。选项:A、正确B、错误正确答案:【错误】【测验4】一维与二维数组1、问题:若有定义:inta[5]={1,2,3,4,5};charb='c',c;则下面表达式值为2的是_____。选项:A、a[b-'b']B、a[2]C、a[c-b]D、a[b]正确答案:【a[b-'b']】2、问题:下面程序的功能是求数组中所有元素之和,根据现有代码,请问修改哪一行代码可以解决所求问题()。#includestdio.hintmain(){floatarray[5]={0};floatsum=0;inti;for(i=0;i5;i++)scanf(%f,array[i]);for(i=1;i=5;i++)sum+=array[i];printf(sum=%f\n,sum);return0;}选项:A、第10行sum+=array[i];B、第4行floatarray[5]={0};C、第5行floatsum=0;D、第7行for(i=0;i5;i++)正确答案:【第10行sum+=array[i];】3、问题:若有以下数组说明,则数值最小的元素和值最大的元素下标分别是()。inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};选项:A、0,11B、1,12C、1,11D、0,12正确答案:【0,11】4、问题:若有说明inta[3][4]={0};,则下面正确的叙述是(ꢀꢀ)。选项:A、数组a中每个元素均可得到初值0B、只有元素a[0][0]可得到初值0,其它元素值不确定C、该语句不正确D、数组a中各元素都可得到初值,但其值不一定为0正确答案:【数组a中每个元素均可得到初值0】5、问题:分析下列程序段的输出结果是()。inta[4][4]={{1,-2,3},{0,5,-7,8},{-3,7,0,4},{9,0,-8,2}};inti,j,s=0;for(i=0;i4;i++)for(j=0;j4;j++){if(a[i][j]0)continue;if(a[i][j]==0)break;s+=a[i][j];}printf(%d,s);选项:A、20B、2C、4D、15正确答案:【20】6、问题:有下面的数组定义,a[2][2]的值是()。inta[][3]={1,2,3,4,5,6,7,8,9,10};选项:A、9B、0C、1D、5正确答案:【9】7、问题:以下定义语句错误的是()。选项:A、inty[5]={0,1,3,5,7,9};B、doublex[5]={2.0,4.0,6.0,8.0,10.0};C、charc2[]={'\x10','\xa','\x8'};D、charc1[]={'1','2','3','4','5'};正确答案:【inty[5]={0,1,3,5,7,9};】8、问题:int型占4个字节,若有下面的数组定义,则数组a在内存中占用的字节数是()。inta[][3]={0,1,2,3,4,5,6,7,8,9};选项:A、48B、10C、36D、40正确答案:【48】9、问题:若有下面的数组定义,则数组a的元素个数是()。inta[][3]={0,1,2,3,4,5,6,7,8,9};选项:A、sizeof(a)/sizeof(int)B、9C、10D、sizeof(a)/sizeof(a[0])正确答案:【sizeof(a)/sizeof(int)】10、问题:下面程序中有错误的行是()。intmain(){intx[3]={1};intk;scanf(%d,x);for(k=1;k3;k++)x[0]=x[0]+x[k];printf(x[0]=%d\n,x[0]);return0;}选项:A、第5行scanf(%d,x);B、第3行intx[3]={1};C、第6行for(k=1;k3;k++)D、第7行x[0]=x[0]+x[k];正确答案:【第5行scanf(%d,x);】11、问题:在inta[][3]={{1,4},{3,2},{4,5,6},{0}};中,a[2][1]的值是()。选项:A、5B、4C、2D、3正确答案:【5】12、问题:有说明语句inta[4][5];,则a[2]+3表示__。选项:A、a数组行下标为2、列下标为3的元素的地址B、a数组行下标为2、列下标为3的元素的值C、a数组第2行的首地址D、a数组第3行的首地址正确答案:【a数组行下标为2、列下标为3的元素的地址】13、问题:以下数组定义中错误的是()。选项:A、intx[2][3]={{1,2},{3,4},{5,6}};B、intx[][3]={0};C、intx[][3]={{1,2,3},{4,5,6}};D、intx[2][3]={1,2,3,4,5,6};正确答案:【intx[2][3]={{1,2},{3,4},{5,6}};】14、问题:若二维数组a有m列,则计算任一元素a[i][j]在数组中映射关系为()选项:A、a[0][i*m+j]B、a[0][j*m+i]C、a[0][i*m+j-1]D、a[0][i*m+j+1]正确答案:【a[0][i*m+j]】15、问题:设数组a中的元素均为正整数,以下程序是求数组a中偶数的个数和偶数的平均值,以下哪个选项能填在划线处?intmain(){inta[10]={1,2,3,4,5,6,7,8,9,10};intk,s,i;floatave;for(k=s=i=0;i10;i++){if(a[i]%2!=0)______________;s+=a[i];k++;}if(k!=0){ave=s/k;printf(%d,%f\n,k,ave);}return0;}选项:A、continueB、breakC、k++D、k=0正确答案:【continue】16、问题:若有下面的数组定义,关于数组a元素个数的选项哪个是错误的()。inta[]={0,1,2,3,4,5,6,7,8,9};选项:A、9B、10C、sizeof(a)/sizeof(int)D、sizeof(a)/sizeof(a[0])正确答案:【9】【练习】字符数组定义及初始化1、问题:字符'\0'与字符'0'是指同一个字符。选项:A、正确B、错误正确答案:【错误】2、问题:可以通过对数组名赋值的方式为字符数组赋值。例如:chara[10];a=abcde;选项:A、正确B、错误正确答案:【错误】3、问题:字符数组定义后,系统自动为数组各元素赋值为0。选项:A、正确B、错误正确答案:【错误】4、填空题:在C语言中,字符串不能存放在一个变量中,而是存放在一个中。正确答案:【数组】5、填空题:字符'\0'是字符串的结束标记,其ASCII码值为正确答案:【0】6、填空题:字符'0'的ASCII码值为。正确答案:【48】【练习】字符数组输入输出1、问题:下面程序段的运行结果是()charc[5]={'a','b','\0','c','\0'};printf(%s,c);选项:A、abcB、abC、ab,cD、abc正确答案:【ab】2、填空题:设有chara[]=ABCD;,则printf(%c,*a)的输出是。正确答案:【A】【练习】字符串函数1、问题:执行以下程序段后,输出结果为()。charp[]=def,str[20]=abc;strcpy(str+1,p);printf(%s\n,str);选项:A、abcdefB、abcC、adefD、def正确答案:【adef】2、填空题:如果要比较两个字符串是否相同,可使用的库函数是。正确答案:【strcmp】【练习】指向数组的指针1、问题:若有定义inta[5],*p=a;,则错误引用数组a[0]元素的表达式是()。选项:A、p+0B、*pC、a[p-a]D、*a正确答案:【p+0】2、问题:执行下面程序段后,*p等于()。inta[5]={1,3,5,7,9},*p=a;p++;选项:A、1B、3C、5D、7正确答案:【3】【练习】指针与字符数组1、问题:设chars[10],*p=s;,以下不正确的表达式是()。选项:A、p=s+5B、s=p+sC、s[2]=p[4]D、*(p+1)=s[0]正确答案:【s=p+s】【测验5】字符数组与指针1、问题:字符串2019-05-11在存储单元中占()个字节。选项:A、11B、10C、12D、9正确答案:【11】2、问题:以下程序段中,会出现编译错误的选项是(ꢀꢀ)。选项:A、chars[10];s=abcdefg;B、chars[10]=abcdefg;C、chart[]=abcdefg;D、chars[10];strcpy(s,abcdefg);正确答案:【chars[10];s=abcdefg;】3、问题:有如下的语句:charp[]=hello!;charq[10]={'h','e','l','l','o','!'};printf(%d%d,strlen(p),strlen(q));则下面输出正确的是()。选项:A、66B、610C、77D、710正确答案:【66】4、问题:s1和s2分别表示两个字符串,若要求当s1所指字符串大于s2所指字符串时,输出ok,则以下选项正确的是()。选项:A、if(strcmp(s1,s2)0)printf(ok);B、if(strcmp(s2,s1)0)printf(ok);C、if(s1s2)printf(ok);D、if(strcmp(s1,s2))printf(ok);正确答案:【if(strcmp(s1,s2)0)printf(ok);】5、问题:以下程序段的输出结果是()charstr[12]={'s','t','d','i','o'};printf(%d\n,strlen(str));选项:A、5B、6C、11D、12正确答案:【5】6、问题:若有定义:intx,*p;则以下正确的赋值表达式是()选项:A、p=xB、p=xC、*p=xD、*p=*x正确答案:【p=x】7、问题:执行下列程序段后,*(p+5)的值为()charstr[]=World;char*p;p=str;选项:A、'\0'B、'd'C、不确定的值D、'd'的地址正确答案:【'\0'】8、问题:有定义:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是()。选项:A、*(p+8)B、*p+9C、*p+=9D、p+8正确答案:【*(p+8)】9、问题:执行下面程序段后,a的值为()。int*p,a=10,b=1;p=a;a=*p+b;选项:A、11B、10C、12D、编译出错正确答案:【11】10、问题:以下程序段执行后,a的值是()。inta,k=4,m=6,*p1=k,*p2=m;a=p1==p2;printf(%d\n,a);选项:A、0B、1C、4D、6正确答案:【0】11、问题:若有定义charcc[]=12345,sizeof(cc)的值为()。选项:A、6B、2C、5D、1正确答案:【6】12、问题:下述语句中,()可以在字符串s1和s2相等时显示Equal.。选项:A、if(!strcmp(s1,s2))puts(“Equal.”);B、if(s1==s2)puts(“Equal.”)C、if(*s1==*s2)puts(“Equal.”)D、if(strcmp(s1,s2))puts(“Equal.”);正确答案:【if(!strcmp(s1,s2))puts(“Equal.”);】13、问题:下列程序片段中不正确的字符串赋值或初始化方式是()。选项:A、charstr[10];str=”string”;B、char*str;str=”string”;C、charstr[7]={’s’,’t’,’r’,’i’,’n’,’g’,’\0’};D、charstr[]=”string”;正确答案:【charstr[10];str=”string”;】14、问题:有关下面程序段的输出结果,正确的判断是()。chars[]=ABCD,*p=s;printf(%d\n,p[4]);选项:A、输出0B、p[4]引用下标越界,不能输出C、输出值不定D、输出68正确答案:【输出0】【练习】函数定义1、问题:C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是()。选项:A、voidB、intC、floatD、double正确答案:【int】【练习】函数的参数与返回值1、问题:在一个被调用函数中,关于return语句使用的描述,错误的是()。选项:A、被调用函数中可以不用return语句。B、被调用函数中可以使用多个return语句。C、被调用函数中,一个return语句可以返回多个值给调用函数。D、被调用函数中,如果有返回值,就一定要有return语句。正确答案:【被调用函数中,一个return语句可以返回多个值给调用函数。】【练习】函数参数传递与调用1、问题:有以下函数定义中:voidfunc(intx,floaty){......}若以下选项中的变量都已正确定义并赋值,则对函数func()的调用语句正确的是()。选项:A、func(intn,flaotx);B、func(n,x);C、k=func(10,12.3);D、voidfunc(n,x);正确答案:【func(n,x);】2、问题:下列程序的输出结果是()。#includestdio.hvoidfunc(inta,intb,intc){a=123;b=456;c=789;}intmain(){intx=10,y=20,z=30;func(x,y,z);printf(%d,%d,%d\n,x,y,z);return0;}选项:A、30,20,10B、123,456,789C、789,456,123D、10,20,30正确答案:【10,20,30】3、问题:下列程序的输出结果是()。#includestdio.hvoidf(intx,inty){intt;t=x;x=y;y=t;}intmain(){intx=10,y=20,z=30;if(xy)f(x,y);elseif(yz)f(y,z);elsef(x,z);printf(%d,%d,%d,x,y,z);return0;}选项:A、10,20,30B、30,10,20C、10,30,20D、20,30,10正确答案:【10,20,30】【练习】变量的作用域与存储类别1、问题:以下叙述中不正确的是()。选项:A、在不同的函数中可以使用相同名字的变量。B、函数中的形式参数是局部变量。C、在一个函数中定义的变量只在本函数范围内有效。D、在一个函数内的复合语句中定义的变量在本函数范围内有效。正确答案:【在一个函数内的复合语句中定义的变量在本函数范围内有效。】2、问题:下列程序中的输出结果是()。intf(intn){staticintm=3;m+=n;returnm;}intmain(){intx=2,y=1,z;z=f(x);z=f(y);printf(%d,z);return0;}选项:A、3B、4C、6D、9正确答案:【6】3、问题:下列程序的输出结果是()。#includestdio.hinta=30,b=40;fun(intx,inty){a=x;x=y;y=a;}intmain(){intm=10,n=20;fun(m,n);fun(a,b);printf(%d,%d,%d,%d,m,n,a,b);return0;}选项:A、10,20,30,40B、10,20,10,40C、20,10,30,40D、30,40,10,20正确答案:【10,20,10,40】【测验6】函数与变量存储属性1、问题:以下程序的输出结果是____。#includestdio.hinta,b;voidfun(){a=100;b=200;}intmain(){inta=5,b=7;fun();printf(%d,%d,a,b);return0;}选项:A、5,7B、100,200C、200,100D、7,5正确答案:【5,7】2、问题:下面关于形参和实参的说法中,正确的是____。选项:A、实参与它所对应的形参占用不同的存储单元B、形参是虚设的,所以它始终不占存储单元。C、实参与它所对应的形参占用同一个存储单元。D、实参与它所对应的形参同名时可占用同一个存储单元。正确答案:【实参与它所对应的形参占用不同的存储单元】3、问题:有如下函数调用语句,函数调用语句中,含有的实参个数是____。func(rec1,rec2+rec3,(rec4,rec5));选项:A、3B、4C、5D、有语法错误正确答案:【3】4、问题:定义的函数有返回值,则以下关于该函数调用的叙述中错误的是____。选项:A、调用可以作为一个函数的形参。B、调用可以作为独立的语句存在。C、调用可以作为一个函数的实参。D、调用可以出现在表达式中。正确答案:【调用可以作为一个函数的形参。】5、问题:以下程序运行后,输出结果是____。intfunc(inta,intb){staticintm=0,i=2;i+=m+1;m=i+a+b;return(m);}intmain(){intk=4,m=1,p;p=func(k,m);printf(%d,,p);p=func(k,m);printf(%d\n,p);return0;}选项:A、8,17B、8,16C、8,8D、8,15正确答案:【8,17】6、问题:有如下函数定义:longfib(intn){if(n2)return(fib(n-1)+fib(n-2));elsereturn2;}在主函数中执行下面语句,输出结果是()。printf(%d,fib(3));选项:A、4B、2C、6D、8正确答案:【4】7、问题:intf(inta){autointb=0;staticintc=3;b=b+1;c=c+1;return(a+b+c);}如果有inti,j;则执行下面两次调用后,i,j值为____。i=f(2);j=f(2);选项:A、i=7,j=8B、i=7,j=7C、i=8,j=7D、i=8,j=8正确答案:【i=7,j=8】8、问题:在一个被调用函数中,关于return语句使用的描述,错误的是()。选项:A、被调用函数中,一个return语句可以返回多个值给调用函数B、被调用函数中可以不用return语句C、被调用函数中可以使用多个return语句D、被调用函数中,如果有返回值,就一定要有return语句正确答案:【被调用函数中,一个return语句可以返回多个值给调用函数】9、问题:C语言中函数返回值的类型是由()决定的。选项:A、定义函数时所指定的函数类型B、return语句中的表达式类型C、调用该函数的主调函数的类型D、调用函数时临时决定正确答案:【定义函数时所指定的函数类型】10、问题:如果要一个变量在整个程序运行期间都存在,但是仅在说明它的函数内是可见的,则这个变量的存储类型应该被说明为()。选项:A、static静态变量B、auto自动变量C、extern外部变量D、register寄存器变量正确答案:【static静态变量】11、问题:以下叙述中正确的是()。选项:A、C语言规定必须用main作为主函数名,程序将从主函数开始执行。B、可以在程序中由用户指定任意一个函数作为主函数,程序将从此函数开始执行。C、C语言程序将从源程序中第一个函数开始执行。D、main的各种大小写拼写形式都可以作为主函数名,如MAIN,Main等。正确答案:【C语言规定必须用main作为主函数名,程序将从主函数开始执行。】12、问题:在不同的函数中可以定义名字相同的变量。选项:A、正确B、错误正确答案:【正确】13、问题:函数的形参都属于全局变量。选项:A、正确B、错误正确答案:【错误】14、问题:定义语句中未赋初值的auto变量和static变量的初值都是随机值。选项:A、正确B、错误正确答案:【错误】【练习】结构体使用1、问题:C语言中,定义结构体的保留字是()。选项:A、structB、unionC、enumD、typedef正确答案:【struct】2、问题:C语言结构体类型变量在程序执行期间()。选项:A、只有一个成员驻留在内存中B、部分成员驻留在内存中C、没有成员驻留在内存中D、所有成员一直驻留在内存中正确答案:【所有成员一直驻留在内存中】3、问题:结构体类型的定义允许嵌套是指()。选项:A、成员可以重名B、成员是已经或正在定义的结构体型C、结构体型可以派生D、定义多个结构体型正确答案:【成员是已经或正在定义的结构体型】4、问题:相同结构体类型的变量之间,可以()。选项:A、相加B、比较大小C、赋值D、地址相同正确答案:【赋值】5、问题:以下对结构体类型变量的定义中不正确的是()。选项:A、struct{intnum;floatage;}student;structstudentstd1;C、defineSTUDENTstructstudentSTUDENT{intnum;floatage;}std1;D、intnum;floatage;}std1;E、struct{intnum;floatage;}std1;正确答案:【struct{intnum;floatage;}student;structstudentstd1;】【练习】共用体1、问题:以下对C语言中共用体类型数据的叙述正确的是()。选项:A、可以对共用体变量名直接赋值B、一个共用体变量中不可能同时存放其所有成员C、一个共用体变量中可以同时存放其所有成员D、共用体类型定义中不能出现结构体类型的成员正确答案:【一个共用体变量中不可能同时存放其所有成员】2、问题:定义共用体的关键字是()。选项:A、unionB、enumC、structD、typedef正确答案:【union】3、问题:使用共用体变量,不可以()。选项:A、节省存储空间B、同时访问所有成员C、进行动态管理D、简化程序设计正确答案:【同时访问所有成员】【测验7】结构体与共用体1、问题:C语言结构体类型变量在程序执行期间()。选项:A、所有成员一直驻留在内存中B、只有一个成员驻留在内存中C、部分成员驻留在内存中D、没有成员驻留在内存中正确答案:【所有成员一直驻留在内存中】2、问题:当定义一个结构体变量时,系统分配给它的内存是()。选项:A、各成员所需内存量的总和B、结构中第一个成员所需内存量C、成员中占内存量最大者所需的容量D、结构中最后一个成员所需内存量正确答案:【各成员所需内存量的总和】3、问题:相同结构体类型的变量之间,可以()。选项:A、相加B、赋值C、比较大小D、地址相同正确答案:【赋值】4、问题:若有以下说明,则对结构体变量stud1中成员age的不正确引用方式为()。structStudent{intage;intnum;}stud1,*p;p=stud1;选项:A、stud1.ageB、*p.ageC、p-ageD、(*p).age正确答案:【*p.age】5、问题:已知学生记录描述如下,设变量s中的“生日”应是“1984年11月11日”,下列对生日的正确赋值方式是()。structstudent{intno;charname[20];charset;struct{intyear;intmonth;intday;}birth;};structstudents;选项:A、year=1984;month=11;day=11;B、birth.year=1984;birth.month=11;birth.day=11C、s.year=1984;s.month=11;s.day=11D、s.birth.year=1984

温馨提示

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

评论

0/150

提交评论