C语言历年考题(真题解析)_第1页
C语言历年考题(真题解析)_第2页
C语言历年考题(真题解析)_第3页
C语言历年考题(真题解析)_第4页
C语言历年考题(真题解析)_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

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

文档简介

..1.C语言规定,在一个源程序中main函数的位置______。<20XX春选择题第21题>A.必须在最开始

B.必须在最后C.必须在预处理命令的后面

D.可以在其他函数之前或之后[解析]main函数也叫主函数,是C语言编译系统提供的特殊函数,可以放在程序中的任何位置,但不能定义在其他函数体内。C程序总是从main函数的第一条语句开始执行。[答案]D2.以下叙述中正确的是________。<20XX秋选择题第21题>A.C语言系统以函数为单位编译源程序B.main函数必须放在程序开始C.用户定义的函数可以被一个或多个函数调用任意多次D.在一个函数体内可以定义另外一个函数[解析]C语言系统以程序为单位编译源程序,程序由函数组成。main函数可以放在其他函数之前或之后。除了main函数外,函数可以被其他函数多次调用。函数不能定义在其他函数体内,即不能嵌套定义。[答案]C3.以下叙述中正确的是_________。<20XX秋选择题第21题>A.在编译时可以发现注释中的拼写错误B.C语言程序的每一行只能写一条语句C.main<>{}必须位于程序的开始D.C语言程序可以由一个或多个函数组成[解析]C程序的注释不产生编译代码,编译时跳过去,发现不了其中错误。C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。main函数可以放在程序中的任何位置。C程序可以由一个或多个函数组成,函数可以为空函数,包括main函数。[答案]D4.以下关于C语言源程序的叙述中错误的是________。<20XX春选择题第21题>A.一个C源程序由若干个函数定义组成,其中必须有且仅有一个名为main的函数定义B.函数定义由函数头部和函数体两部分组成C.在一个函数定义的函数体中允许定义另一个函数D.在一个函数定义的函数体中允许调用另一个函数或调用函数自身[解析]一个C语言源程序由若干个函数定义组成,其中必须有且仅有一个名为main的函数定义,函数定义由函数头部和函数体两部分组成。函数可以嵌套调用也可以递归调用,但不能嵌套定义。C的意思是嵌套定义,错误,D的意思是嵌套调用和递归调用,正确。[答案]C3.1.2基本数据类型1.以下选项中,___________是C语言关键字。<20XX春选择题第22题>

A.printf

B.include

C.fun

D.default[解析]default是关键字,用在switch语句中。printf和include属于预定义标识符,其中printf是输出函数名,include用在预编译处理命令中。fun是用户自定义标识符。[答案]D2.在以下各组标识符中,均可以用作变量名的一组是_____。<20XX秋选择题第22题>A.a01,IntB.table_1,a*.1C.0_a,W12D.for,point[解析]选项A中两个都符合标识符的命令规则,Int与关键字int是不同的标识符,选项B的第2个标识符中有*号,不符合标识符命名规则,选项C数字开头,不允许,选项D中的for是关键字,不能做变量名。[答案]A3.以下定义和声明中,语法均有错误的是___________。<20XX春选择题第21题>①int_f<intx>{}②intf<intf>{}③int2x=1;④structfor{intx;};A.②③B.③④C.①④D.①②③④[解析]本题考的是标识符的命名规则。③定义的整型变量名数字开头,不符合命名规则。④中定义的结构体类型名for属于关键字,不能作为结构体类型名。②中使用的函数名和形式参数名相同,在语法上可以,但在实际编程时不提倡使用。[答案]B4.在C语言系统中,如果一个变量能正确存储的数据范围为整数-32768~32767,则该变量在内存中占________个字节。

<20XX春填空题第3题>[解析]表示范围为整数-32768~32767的属于int型或short型的变量,它们在内存占2个字节。[答案]25.若有声明"intx;"且sizeof<x>的值为2,则当x值为___________时"x+1>x"为假。<20XX春填空题第2题>[解析]x为int型,其表示范围为-32768~+32767,当x为32767时,再加1就变成了-32768了,此时,就是x+1>x"为假的情况。这是由int型数据在内存中的存储情况决定的。int型数据在内存中占2个字节,以补码的形式存放,32767的补码为0111111111111111,加1以后就变成了1000000000000000,为-32768的补码,这种情况为溢出,数处于边界时会溢出。sizeof<x>是求字节数运算符。[答案]327676.已知sizeof<int>的值为2,为将10!的值存储到变量f中<10!=3628800>,变量f的类型应声明为___________。<20XX秋选择题第23题>A.longintB.intC.shortintD.unsignedint[解析]10!=3628800,超过了int的范围-32768~+32767,而长整型在内存占4个字节,表示范围大到-214748348~2147483647,应该要用长整型才可以存放3628800。[答案]A7.以下常量表示中正确的是__________。<20XX春选择题第22题>[解析]选项A若想表示成十六进制常量,正确的表示应该是0xff,如果表示成转义字符,应该放在单引号内:'\0xff'。选项B表示的是长整型常量,选项C是一个标识符,不能表示常量,选项D表示的是无符号整数,但无符号整数不应该有小数。[答案]B8.以下表示中不能用作C语言常量表示的是____。<20XX春选择题第22题>A.0ULB.<long>123C.1e0D.'\x2a'[解析]0UL意为将0以无符号长整型存放,B为强制类型转换,是表达式,表示长整型常量应该在123后加字母l或L。C是实常量,指数表示法,意为1乘以10的0次方,e前面必须有数字,后面的数字必须是整数。D是转义字符,表示十六进制数2a。[答案]B9.在C语言源程序中,不带任何修饰的浮点数直接量〔例如:3.14都是按_________类型数据存储的。<20XX春填空题第1题>[解析]实型常量的类型默认为double类型,在内存中占8个字节。带f修饰即3.14f或3.14F,则认为它是float型,在内存中占4个字节。[答案]double10.已知有声明"charch='g';",则表达式ch=ch-'a'+'A'的值为字符__________的编码。<20XX春填空题第2题>[解析]本题的功能是将小写字母转换成大写字母。-'a'+'A'实际上就是减去32,对于一个小写字母来说,减去32就变成对应的大写字母。[答案]G11.若有程序段"charc=256;inta=c;",则执行该程序段后a的值是______。<20XX秋选择题第24题>A.256B.65536C.0D.-1[解析]将256转换成二进制,为100000000,占9位,而char在内存只占一个字节,即8位,截取低8位赋给字符变量c,得c=0,将c的值赋给a,结果为0。[答案]C3.1.3运算符和表达式1.已知有声明"inta=3,b=4,c;",则执行语句"c=1/2*<a+b>;"后,c的值为_______。<20XX春选择题第23题A.0

B.3

C.3.5

D.4[解析]本题考查的是两整数相除,结果为整数,截取的是整数部分,不是四舍五入。1/2等于0,0乘于任何一个整数结果还是0,最后结果为0。[答案]A2.已知有声明"longx,y;"且x中整数的十进制表示有n位数字<4<n<10>,若要求去掉整数x十进制表示中的最高位,用剩下的数字组成一个新的整数并保存到y中,则以下表达式中能正确实现这一功能的是________。〔20XX秋选择题第25题A.y=x/<10*<n-1>>B.y=x%<10*<n-1>>C.y=x%<long>pow<10,n-1>D.y=x%<10Ù<n-1>>[解析]本类型的题目,拿一个具体的数,放到四个选项中去计算,就能得到正确答案。假设x为1234,代入A中,为1234/<10*3>,肯定不是234,代入B中,为1234%<10*3>也不对,代入C中为1234%<long>103,结果为234,正确,选C。而D中的"Ù"在C语言中是指位运算中的"异或"运算,不是求指数。[答案]C3.若有声明"floaty=3.14619;intx;",则计算表达式"x=y*100+0.5,y=x/100.0"后y的值是___________。〔20XX春填空题第3题[解析]x=y*100+0.5=3.14619*100+0.5=315,因为x为int,截取整数部分赋给x。然后计算y=x/100.0=315/100=3.15,y是浮点数。[答案]3.154.若有声明"inta=32767,b;",则在TurboC2.0系统中执行语句"printf<"%d",b=++a>;"后输出结果是_________。<20XX秋填空题第3题>[解析]本题有4个知识点:一是printf语句,输出%d格式,二是赋值运算及赋值表达式的值,三是++运算,四是int型数据的表示范围及整数在内存的存储情况。b=++a是将a的值加1后赋给b,a、b是int型,处于-32768~32767范围内,32767+1=-32768,整数在计算机中以补码形式存储,32767的补码为0111111111111111,加1后为1000000000000000,是-32768的补码。对于int数据,32767+1等于-32768。若是long型,满足32767+1等于32768。[答案]-327685.已知有声明"inta=3,b=4;",下列表达式中合法的是______。<20XX春选择题第25题>

A.a+b=7

B.a=|b|

C.a=b=0

D.<a++>++[解析]本题考查的是赋值运算符和"++"运算符的左值要求。左值必须是变量,不能是常量和表达式。选项A左边是表达式,不允许,选项D括号中的a++也是表达式,不能进行++运算。选项B是一个代数式,必须转换成C语言合法的表达式,表示成a=abs<b>。选项C正确,将0赋给b,再赋给a,a和b的值不再是初始化的值,而变成0了。[答案]C6.已知有声明"intn;floatx,y;",则执行语句"y=n=x=3.89;"后,y的值为

________。<20XX春选择题第28题>

A.3

B.3.0

C.3.89D.4.0[解析]本题考查的是不同类型间的赋值。赋值运算符右结合。先将3.89赋给x,表达式的值也为3.89,再将3.89赋给n,n是int,自动截取整数部分,将3赋给n。最后将3赋给y,y是float,将整数3转换成实数3.0后赋给y,y值为3.0。[答案]B7.以下程序运行时输出到屏幕的结果是

___________

。<20XX春阅读程序第7题>#include<stdio.h>voidmain<>

{inta=1,b=2;

a+=b;

b=a-b;

a-=b;printf<"%d,%d\n",a,b>;}[解析]本题的考点是复合赋值运算符,程序功能是不用临时变量,实现两个变量的值的交换。计算过程如下:a=a+b=1+2=3,b=a-b=3-2=1,a=a-b=3-1=2。最后结果是a为2,b为1。变量的值在程序运行过程中可能在不断的变化,每次计算都要用最新得到的值。[答案]2,18.若有声明"intx=2,y=1,z=0;",则下列关系表达式中有语法错误的是_______。<20XX春选择题第25题>A.x>y=2B.z>y>xC.x>y==1D.x==<x=0,y=1,z=2>[解析]赋值表达式的运算数有左值要求,赋值号左边必须是变量,不能是表达式,A错。B没有语法错误,z>y成立结果为1,不成立为0,再将1或0与x比较,判断其是否成立。C先判断x>y是否成立,得到0或1再与1比较是否相等,最后的结果要么是0要么是1。D先做括号中的逗号表达式,依次进行赋值,最后一个表达式的值2是整个逗号表达式的值,将其与x的值进行是否相等的比较。[答案]A9.已知有声明"inta=12,b=15,c;",则执行表达式"c=<a||<b-=a>>"后,变量b和c的值分别为____________。<20XX春选择题第29题>

A.3,1

B.15,12

C.15,1D.3,12[解析]本题的考点是逻辑表达式的短路特性。a值为12,非零即为真,逻辑表达式的结果只能用1或者0表示,若为真则结果为1。只要有一个为真,逻辑或"||"的结果就为1,b-=a不用计算了,b的值不变,仍为15。而括号中逻辑表达式的值为1,1赋给c,故c的值为1。[答案]C10.已知有声明"inta=3,b=4,c=5;",以下表达式中值为0的是________。<20XX秋选择题第24题>A.a&&bB.a<=bC.a||b&&cD.!<!c||1>[解析]a&&b中a和b都是非0,A的结果为1。B中a<=b成立,结果为1。C中&&优先级高于||,先做&&,b和c的值非0,b&&c的结果为1,因为是||运算,最后的结果肯定是1。D中c非0,!c为0,与1逻辑或为1,将括号中的1再逻辑非,结果为0。[答案]D11.C语言中有!、&&、||三个逻辑运算符,其中优先级高于算术运算符的是________。<20XX秋填空题第1题>[解析]逻辑非"!"是单目运算符,优先级为2级,高于3级的"*/%"和4级的"+"和"-"。"&&"的优先级为11级,"||"的优先级为12,低于算术运算符。[答案]!12.以下表示数学式"a<b<c"的逻辑表达式中,错误的是_______。<20XX春选择题24题>A.a<b<cB.a<b&&b<cC.!<a>=b>&&!<b>=c>D.!<a>=b||b>=c>[解析]最好的答案是B,但C、D与B的功能相同。C中!<a>=b>就是a<b,而D中将!放到外面,"&&"就变成了"||"。选项A先判断a<b,成立结果为1,不成立结果为0,再将结果与c比较。[答案]A1x>013.以下选项中,不能表示函数sign<x>=0x=0功能的表达式是________。-1x<0<20XX春选择题第23题>A.s=<x>0>?1:<x<0>?-1:0B.s=x<0?-1:<x>0?1:0>C.s=x<=0?-1:<x==0?0:1>D.s=x>0?1:x==0?0:-1[解析]本题考点是嵌套的条件表达式。仔细分析它们的逻辑关系,选项C的功能是当x<=0时值为-1,否则即x>0再判断x=0是否成立决定值为0还是1,不合题意。[答案]C14.若有声明"inta=5,b=2;",则表达式"b+=<float><a+b>/2"运算后b的值为________。<20XX秋填空题第1题>[解析]b+=<float><a+b>/2相当于b=b+<<float><a+b>/2>。先执行a+b得7,转换成实数7.0除以2,得3.5,然后将原来的b=2加3.5得5.5,b是int,截取整数部分5赋给b。[答案]515.设指针变量占2个字节的内存空间,若有声明"char*p="123";intc;",则执行语句"c=sizeof<p>;"后,c的值为_____。<20XX春选择题第24题>

A.1

B.2

C.3D.4[解析]题目告诉我们指针变量占2个字节,而sizeof的功能就是计算变量在内存中所占的字节数,c的值为指针变量p在内存中占用的字节数,为2。[答案]B16.若有声明"intr=2;",则执行语句"printf<"%d",sizeof<2*3.14*r>>;"时输出________。<20XX秋填空题第2题>[解析]本题输出表达式2*3.14*r的结果在内存中占用的字节数。2*3.14*r的结果为实常量,其中有一个实常量3.14,C中实常量默认为double型。根据类型转换规则,其他类型的数据也要转换成double型,最后结果为double型,在内存占8个字节。一般情况,只要表达式中有一个数据为double型,最后的结果就是double型。[答案]817.数学式所对应的c语言表达式为pow<x,________>。<20XX春填空题第1题>[解析]pow<x,y>是求x的y次方的函数。就是x的三分之一次方。此处注意的是1/3=0,要将其中一个转换为浮点数。[答案]1.0/3或者1/3.0或者<double>1/318.数学表达式所对应的C语言表达式为________。<20XX秋填空题第3题>[解析]求平方根的函数为sqrt,求绝对值的函数为abs或fabs,abs求整数的绝对值,fabs求实数的绝对值。"≠"用"!="表示。4a要用4*a表示,*表示乘号,不能缺省。分母一定要加括号,若不加括号得用除"/"不是用乘"*"。加括号的表示方式看起来更直观。[答案]sqrt<fabs<x>!=4*a/<b*c>或sqrt<fabs<x>!=4*a/b/c3.2.1实现顺序结构的语句1.以下关于C语言语句的叙述中正确的是_________。〔20XX秋选择题第27题A.所有语句都包含关键字B.所有语句都包含表达式C.所有语句都可以出现在源程序中的任何位置D.除复合语句外的其他所有语句都以分号结束[解析]关键字只有32个,大多数用来进行变量类型说明以及实现条件选择和循环结构的控制语句。很多语句中没有关键字的,如赋值语句。表达式也不一定在所有的语句中出现的,如函数调用语句。语句是程序的执行部分,放在函数内部,而且在说明部分之后。C语言中复合语句中的各条语句都必须有分号";",但在"}"外没有分号。[答案]D2.已知int类型数据在内存中存储长度为2个字节,以下语句中能正确输出整数32768的是________。〔20XX秋选择题第23题A.printf<"%d",32768>;B.printf<"%ld",32768>;C.printf<"%f",32768>;D.printf<"%c",32768>;[解析]本题考点是输出格式。%d格式输出int型整数,范围为-32768~32767,%f格式输出浮点数,%c格式输出字符。%ld格式输出长整型整数,范围为-21亿~21亿。[答案]B3.以下语句中有语法错误的是____________。〔20XX春选择题第24题A.printf<"%d",0e>;B.printf<"%f",0e2>;C.printf<"%d",0x2>;D.printf<"%s","0x2">;[解析]本题考点为输出格式及常量表示。A中的%d表示输出int型整数,0开头为八进制数,只能为0~7共8个数字,不能为e。B是%f格式,输出实数,0e2是指数形式,即为0*102。C输出int型整数,0x是十六进制形式,D用%s格式输出字符串常量"0x2"。[答案]A4.已知有声明和语句"inta;scanf<"a=%d",&a>;",欲从键盘上输入数据使a中的值为3,则正确的输入应是_______

。〔20XX春填空题第5题[解析]"a="是原样字符,要照输。"%d"的位置输入对应的变量a的值3。就是将键盘输入的值3存入变量a的地址单元,这样a的值就为3。[答案]a=35.若有声明"longa,b;"且变量a和b都需要通过键盘输入获得初值,则下列语句中正确的是________。〔20XX秋选择题第23题A.scanf<"%ld%ld,&a,&b">;B.scanf<"%d%d",a,b>;C.scanf<"%d%d",&a,&b>;D.scanf<"%ld%ld",&a,&b>;[解析]a和b是long型,输入时要用"%ld"格式。对于变量,scanf函数的地址表中必须有取地址运算符"&",而且只在格式控制串上有双引号,地址表列上不应有双引号。满足这些要求的只有选项D。[答案]D6.若有声明"inti;floatx;chara[50];",为使i得到值1,x得到值3.1416,a得到值yz,当执行语句"scanf<"%3d%f%2s",&i,&x,a>;"时,正确的输入形式是_________。<20XX秋选择题第23题A.1,3.1416,yzB.13.1416yzC.0013.1416yzD.i=001,x=3.1416,a=yz[解析]第一个输入格式"%3d"对应变量i,要输入3位,而i值为1,只占1位,补足3位,输入时在前面加00,输完"001"后用空格或回车或TAB键分隔。第二个输入格式"%f",对应的数为实数3.1416,输完加分隔符。第三个输入格式"%2s",是2个字符的字符串,a为数组名,本身就已表示地址了,前面无"&"。选项C满足要求。A用逗号分隔,逗号不是有效的分隔符,只有当格式控制串中有原样字符逗号时才需输入逗号,而且i不足3位。B在输入数据时没有分隔符,D在输入时有"i="等字符,不需要。[答案]C7.已知有声明"chars[80];",若需要将键盘输入的一个不含空格的字符串保存到s数组中,则下列语句中正确的是________。〔20XX秋选择题第28题A.scanf<"%s",s>;B.scanf<"%s",s[0]>;C.s=gets<>;D.s=getchar<>;[解析]A中的scanf函数中的s是数组名,本身就表示地址了,不用再加"&"。B中的s[0]表示一个元素,不是地址,C中应该将s放入括号中作为gets函数的参数,D中的getchar函数一次只能输入一个字符。scanf函数不能输入空格。[答案]A8.若有声明"chars[l0]="remind";",执行"puts<s+2>;"后的输出结果是___________。〔20XX秋填空题第2题[解析]puts函数的功能是输出一个字符串。s表示数组的起始地址,s+2表示数组元素的第2个元素的地址,所以从s[2]元素开始输出,结果为mind。[答案]mind3.2.2实现选择结构的语句1.已知有声明"intx,y;",若要求编写一段程序实现"当x大于等于0时y取值1,否则y取值-1",则以下程序段中错误的是________。<20XX秋选择题第26题>A.if<x>=0>y=1;elsey=-1;B.y=x>=0?1:-1;C.switch<>D.switch<x-abs<x>>{casex>=0:y=1;break;{case0:y=1;break;default:y=-1;default:y=-1;}}[解析]本题考点为if语句和switch语句。选项A用if语句表示,正确。选项B用条件表达式表示,x大于等于0成立将1赋值给y,否则将-1赋值给y。选项C用switch语句,但不符合switch的语法规则,switch的括号中必须有一常量或表达式,不能为空。case后是一个常量表达式,其中只能有常量和运算符,不能有变量。选项D中,当x大于等于0时,x-abs<x>为0,执行y=1,否则就不是为0,执行y=-1。[答案]C2.以下程序运行时输出到屏幕的结果是________。<20XX秋阅读程序第7题>#include<stdio.h>voidmain<>{inti=1,m=0;switch<i>{case1:case2:m++;case3:m++;}printf<"%d",m>;}[解析]因为case后无break语句,switch中的m++都要执行,m的初值为0,执行2次m++后m的值为2。[答案]23.2.3实现循环结构的语句1.程序段"intx=3;do{printf<"%d",x-->;}while<!x>;"的执行结果是_________。<20XX秋选择题第24题>A.321B.2C.3D.死循环[解析]本题的考点是do-while循环和自减运算符。先执行输出语句,输出x的值,x--,先用x的值3,再减1,为2。输出一个3,然后判断!x看是否继续循环,x为2,非0,!x就为0,循环结束。[答案]C2.若有声明"inti,k=1;unsignedj;",则下列语句执行时会出现无限循环的语句是____。<20XX春选择题第27题>A.for<j=15;j>0;j-=2>k++;B.for<j=0;j<15;j+=2>k++;C.for<i=0;i<15;i+=2>k++;D.for<i=15;i>0;i-=2>k++;[解析]本题的考点是for循环的结束条件与无符号整数。j是无符号整数,永远不会小于0,选项A中,j的初值为单数,每次减2,还是单数,j也不会等于0,即j>0永远满足,A是无限循环。[答案]A3.设有变量声明"charc;",执行"for<;c=<getchar<>!='\n'>;>printf<"%c",c>;"时,从键盘上输入"ABCDEFG回车"之后,输出的结果是_________。<20XX秋选择题第28题>A.ABCDEFGB.AABBCCDDEEFFGGC.非字母数字字符D.语句不能执行[解析]for语句中,先执行条件判断<getchar<>!='\n'>,若不是回车条件成立,结果为1,将之赋给变量c,输出ASCII码值为1的对应的字符,肯定不是字母或者数字。[答案]C4.下面关于循环语句for、while、do_while的叙述中正确的是____。<20XX春选择题26题>A.三种循环语句的循环体都必须放入一对花括号中B.三种循环语句中都可以缺省循环终止条件表达式C.三种循环语句的循环体都至少被无条件地执行一次D.三种循环语句都可能出现无穷循环[解析]对于for和while循环,当循环体只有一个语句时可以不用花括号。只有for循环可以缺省循环终止条件表达式,其余两种while<表达式>中的表达式不能缺省。do-while至少被无条件地执行一次,其余两种当型循环条件为0时一次也不执行。三种循环语句的无穷循环形式如下:while<1>{……}do{……}while<1>;for<;;>{……}[答案]D5.若在一个C语言源程序中"el"和"e3"是表达式,"s;"是语句,则下列选项中与语句"for<el;;e3>s;"功能等同的语句是_________。<20XX秋选择题第25题>A.el;while<10>s;e3;B.el;while<10>{s;e3;}C.el;while<10>{e3;s;}D.while<10>{el;s;e3}[解析]本题主要考for循环的执行过程,与while的比较。对于for,应先执行e1,只执行一次,可以放在循环前面,不能放循环体内。e3和s的执行顺序是先执行循环体s,再执行e3,C错。若将e3放在循环体内,循环体就有2个语句,必须用花括号括起来,A错。[答案]B6.以下程序运行时输出结果是___________。<20XX秋阅读程序第6题>#include<stdio.h>main<>{ints=1,n=235;do{s*=n%10;n/=10;}while<n>;printf<"%d\n",s>;}[解析]本程序求整数n的各位数字之乘积。s初值为1,s*=n%10即s=s*n%10,n%10得到n的最低位,与原来的s相乘。n/=10即n=n/10,取整,去掉用过的最低位。这是典型的数字分离方法。若求n的各位数字之和,将s的初值置为0,并将乘号改成加号。[答案]307.以下程序运行时输出结果是___________。<20XX春阅读程序第6题>#include<stdio.h>voidmain<>{intk=5,n=0;while<k>0>{switch<k>{case1:case3:n+=1;k--;break;default:n=0;k--;case2:case4:n+=2;k--;break;}printf<"%3d",n>;}}[解析]本题的考点是while语句与switch语句。当k>0时,执行循环体中的语句。k初值为5,满足>0的条件,执行循环体。无匹配的case语句,执行default后面的语句,n=0,k=4,因为无break,继续执行下面的case语句,n=0+2=2,k=3,输出n的值2。第2次循环,k=3,执行n+=1;k--;n为3,k为2,有break,跳出switch,输出n的值,为3。第3次循环,k=2,执行n+=2;k--;break;后n为5,k为1,输出5。第4次循环,k=1,执行n+=1;k--;break;后n为6,k为0,输出6。此时,k=0,不再满足k>0的条件,循环结束。[答案]23568.以下程序运行后的输出结果的第一行是______________,第二行是_______________。<20XX春阅读程序第8题>#include<stdio.h>main<>{inti,a=0,c=2;for<i=0;i<2;i++>switch<++a,a*c>{case1:printf<"1">;case2:printf<"2">;case3:printf<"3\n">;break;default:printf<"other\n">;}}[解析]本题执行2次循环。switch后的括号中是逗号表达式,依次执行,并将后面的表达式的值与case后的常数进行匹配。第一次循环:++a,值为1,a的值也为1,a*c为2,与case2匹配,输出2,无break,接着输出3并换行,遇break,跳出switch,进行下一次循环条件的判断。第二次循环:++a,值为2,a的值也为2,a*c为4,无匹配的case,执行default后面的语句,输出other。[答案]第一行是23,第二行是other3.2.4其他语句1.若程序中已有相应的声明,下列语句中错误的是_______。<20XX春选择题第23题>A.printf<i==4?"%6d\n":"%6d",i>;B.i==4?printf<"%6d\n",i>:printf<"%6d",i>;C.for<i=10;;i-->if<i==1>break;D.for<i=10;;>if<i-->;break;[解析]本题的考点是条件表达式及break语句。选项A中输出函数的参数是一个条件运算符,当i为4时换行输出i值。选项B的功能与A相同。选项C是for循环,没有循环结束条件,跳出循环由if语句和break语句实现。选项D中的if语句只执行条件判断与循环变量减1的操作,后面是空语句,break语句不在for循环中,是一个独立的语句,这在C语言中是不允许的。break语句只能用在switch语句和循环语句中。[答案]D2.以下程序运行后输出结果中第一行为____________,第二行为______________。<20XX春阅读程序第9题>#include"stdio.h"voidmain<>{inti=5;do{switch<i%2>{case0:i--;break;case1:i--;continue;}i--;printf<"%d\n",i>;}while<i>0>;}[解析]本题的考点是do-while循环、switch语句、continue语句。直到型循环,先执行循环体内的语句,循环体内有三个语句:switch、i--、输出。首先计算switch后括号中的i%2,为1,执行case1后的i--,i变成4,接着continue结束本次循环,继续下次循环。再次计算switch后括号中的i%2,为0,执行case0后的i--,i为3,break语句在switch中,跳出switch,不是跳出循环,接着执行循环内switch下面的i--,i变成2,输出i值,输出的第一行为2。判断i>0是否成立,成立,继续下次循环。计算switch后括号中的i%2,为0,执行case0后的i--,i=1,break后跳出switch,执行i--,i为0,输出i值,第二行的输出为0。此时,不满足i>0的条件,循环结束。[答案]第一行为2,第二行为0。3.3.1数组1.以下声明中错误的是_________。<20XX秋选择题第27题>A.inta[2]B.inta[]={0,1}C.inta[3]=0D.inta[3][4]={0}[解析]A定义了一个长度为2的数组a,B在定义数组a的同时进行了初始化,缺省长度系统默认为2。C在对数组初始化时没有花括号。D只对二维数组中的第一个元素a[0][0]进行了初始化,其余元素的值都为0。若数组没有初始化,数组元素的值是随机数。[答案]C2.已知有声明"intm[]={5,4,3,2,1},i=0;",下列对m数组元素的引用中,错误的是____。<20XX秋选择题第27题>A.m[++i]B.m[5]C.m[2*2]D.m[m[4]][解析]定义数组m时进行初始化,大括号中有5个数据,数组长度为5,其元素分别为m[0]~m[4],不存在m[5],B越界。选项A的m[++i]先将i加1,i为1,即m[1],选项C指m[4]。选项D中,m[4]的值为1,m[m[4]]就是m[1],数组的下标可以为整型表达式,也可以为整型变量,但声明的时候方括号中的表达式不能为变量。[答案]B3.下列C语言源程序的错误中,通常不能在编译时发现的是_____。<20XX秋选择题第21题>A.括号不匹配B.非法标识符C.数组元素下标值越界D.程序结构不完整[解析]数组元素的下标越界,系统是不能发现的,编译时不提示错误,但运行结果会出错。其余三种情况在编译时系统会提示错误,等修改正确以后程序才能运行。[答案]C4.若有声明"charss[8]="Red";",则sizeof<ss>的值是_______。<20XX秋选择题第30题>A.8B.4C.3D.1[解析]sizeof是求字节数运算符,计算数组ss在内存中的字节数,数组在定义时长度为8,所占内存为8个字节,本题计算的不是字符串长度,而是数组的长度。若将声明改为"charss[]="Red";",缺省数组长度,那么sizeof<ss>的值为字符个数3加1,字符串都有一个结束标志'\0'。若初始化方式为"charss[]={'R','e','d'};",则sizeof<ss>的值为3。[答案]A5.以下程序运行时输出结果中第一行是___________,第二行是___________,第三行是___________。<20XX秋阅读程序第10题>#include<stdio.h>main<>{inti,j,a[3][3]={0};for<i=0;i<3;i++>for<j=0;j<3;j++>switch<i-j+2>{case0:case1:a[i][j]=1;break;case2:a[i][j]=2;break;case3:a[i][j]=3;break;case4:a[i][j]=5;break;}for<i=0;i<3;i++>{for<j=0;j<3;j++>printf<"%4d",a[i][j]>;printf<"\n">;}}[解析]本题通过switch语句对二维数组赋值。对于二维数组要注意行号与列号的变化,一般外循环表示行号的变化,内循环表示列号的变化。每次循环要计算switch括号中表达式值,根据该值决定执行哪个case,得出数组元素的值。最后输出二维数组各元素值。i=0:j=0,i-j+2=2,a[0][0]=2;j=1,i-j+2=1,a[0][1]=1;j=2,i-j+2=0,a[0][2]=1i=1:j=0,i-j+2=3,a[1][0]=3;j=1,i-j+2=2,a[1][1]=2;j=2,i-j+2=1,a[1][3]=1i=2:j=0,i-j+2=4,a[2][0]=5;j=1,i-j+2=3,a[2][1]=3;j=2,i-j+2=2,a[2][2]=2[答案]第一行是211,第二行是321,第三行是5326.以下程序运行时输出到屏幕的结果第二行是___________,第四行是

___________。<20XX春阅读程序第11题>#include<stdio.h>#defineN6voidmain<>{inti,j,a[N+1][N+1];for<i=1;i<=N;i++>

{a[i][i]=1;a[i][1]=1;}

for<i=3;i<=N;i++>

for<j=2;j<i;j++>

a[i][j]=a[i-1][j-1]+a[i-1][j];for<i=1;i<=N;i++>{

for<j=1;j<=i;j++>

printf<"%4d",a[i][j]>;

printf<"\n">;}}[解析]本题就是典型的杨辉三角形。注意本题只考虑从1开始的下标,下标为0的不考虑,而且只求矩阵的一半,即斜三角形。第一个for循环给数组每行的最后一个元素即对角线元素赋值1,给数组的每行的第一个元素赋值1。第二个for循环从第三行起,除了第一个和最后一个元素,其余元素的值为上一行前一个元素和上一行同列元素之和。这是根据a[i][j]=a[i-1][j-1]+a[i-1][j]得出的。最后一个for循环输出杨辉三角形。根据上述规律,很快写出杨辉三角形:11211331写四行就够了,因为题目只问到第四行的输出。[答案]第二行是11,第四行是

13317.以下程序运行后输出结果中第一行为_____________,第二行为______________,第三行为________________。<20XX春阅读程序第11题>#include"stdio.h"#defineN3main<>{inta[N][N],b[N*N]={1,1},i,j;for<i=2;i<N*N;i++>b[i]=b[i-1]+b[i-2];for<i=0;i<N;i++>for<j=0;j<N;j++>a[j][i]=b[i*N+j];for<i=0;i<N;I++>{for<j=0;j<N;j++>printf<"%5d",a[i][j]>;printf<"\n">;}}[解析]先生成数组b,b[i]的值为前2个元素之和,得到b各元素的值为1,1,2,3,5,8,13,21,34。再将b数组元素的值赋给数组a,注意,a是按列的顺序进行赋值的。将b的前3个元素值1、1、2赋给a的第0列,接着的3个3、5、8赋给a的第1列,最后3个13、21、35赋给a的第2列,a的各元素值为1、3、13、1、5、21、2、8、34。[答案]第一行为1313,第二行为1521,第三行为28348.以下程序运行后,输出结果的第一行为____________,第二行为_________。<20XX秋阅读程序第10题>#include<stdio.h>voidmain<>{chars[]="efgefgef",t[]="efg";inti,j,k;for<i=strlen<s>-strlen<t>;i>=0;i-->{for<j=i,k=0;s[j]==t[k]&&t[k]!='\0';j++,k++>;if<t[k]=='\0'>printf<"%d\n",i>;}}[解析]本程序的功能是从后往前找子串。函数strlen求字符串实际长度,s的长度为8,t的长度为3,i的初值为8-3=5。从s的第5个字符开始,即倒数第3个开始,与t比较,若连续3个字符都相等,则输出i的值。执行下次循环,i减1,即s往前移一个字符,继续比较,找到相等的输出s下标i。本题当i=3时和i=0时s的连续3个字符与t的字符相等。[答案]第一行为3,第二行为09.以下程序运行时输出结果中第一行是___________,第三行是___________。<20XX春阅读程序第9题>#include<stdio.h>defineN5voidmain<>{staticchara[N][N];inti,j,t,start=0,end=N-1;charstr[]="123",ch;for<t=0;t<=N/2;t++>{ch=str[t];for<i=j=start;i<end;i++>a[i][j]=ch;for<j=start;j<end;j++>a[i][j]=ch;for<i=end;i>start;i-->a[i][j]=ch;for<j=end;j>start;j-->a[i][j]=ch;if<start==end>a[start][end]=ch;start++,end--;}for<i=0;i<N;i++>{for<j=0;j<N;j++>printf<"%c",a[i][j]>;printf<"\n">;}}[解析]本程序将一维数组str的三个元素值'1'、'2'、'3'中的一个赋给一个5*5的二维数组。最后输出的二维数组是%c格式,字符'1'的输出就是1。第1个外循环是将外围元素置为'1':第1个内循环置a[0][0],a[1][0],a[2][0],a[3][0]为'1'第2个内循环置a[4][0],a[4][1],a[4][2],a[4][3]为'1'第3个内循环置a[4][4],a[3][4],a[2][4],a[1][4]为'1'第4个内循环置a[0][4],a[0][3],a[0][2],a[0][1]为'1'可见,是从a[0][0]开始按逆时针方向进行赋值。第2个外循环是将第二层元素置为'2':从a[1][1]开始也是按逆时针方向进行赋值。第3个外循环只执行if语句,将最后一个中间的元素a[2][2]置为'3'。最后得到的数组为:"11111","12221","12321","12221","11111"。[答案]第一行是11111,第三行是123213.3.2结构体变量和结构体数组1.以下结构变量stu1的声明中,错误的是________。<20XX春选择题第30题>A.typedefstructstu{charname[10];floatscore;}STU;STUstu1;B.#defineSTUstructstuSTU{charname[10];;floatscore;}stu1;C.structstu{charname[10];floatscore;}stu1;D.structstu{charname[10];floatscore;}STU;STUstu1;[解析]A用typedef给结构体类型名起了一个别名STU,然后用类型名STU定义变量stu1,等价于structstustu1;。B用宏定义的方式将宏名STU替代字符串structstu,以后只要是STU全都用structstu替代。C在定义结构体类型名的同时定义了结构体变量名,是最常用的定义方式,其中的类型名stu也可缺省。D中定义结构体类型stu的同时定义了一个结构体变量STU,此处STU是变量名,不是类型名,后面的STUstu1;是错误的。[答案]D2.以下程序运行时输出到屏幕的结果第一行是________,第二行是________。<20XX秋阅读程序第14题>#include<stdio.h>typedefstructfact{intm,z;}FACT;FACTfun1<FACTt1,FACTt2>{FACTt3;t3.m=t1.m*t2.m;t3.z=t1.z*t2.m+t2.z*t1.m;returnt3;}FACTfun2<FACTt>{intm,n,k;m=t.m;n=t.z;while<k=m%n>{m=n;n=k;}t.m=t.m/n;t.z=t.z/n;returnt;}voidmain<>{FACTs,s1={8,4},s2={6,5};s=fun1<s1,s2>;printf<"%d,%d\n",s.z,s.m>;s=fun2<s>;printf<"%d,%d",s.z,s.m>;}[解析]函数fun1根据t1和t2的值计算结构体变量t3的值并返回。函数fun2的功能是求最大公约数。注意输出顺序,将先计算得到的后输出。t3.m=t1.m*t2.m=8*6=48t3.z=t1.z*t2.m+t2.z*t1.m;=4*6+5*8=64s={48,64},作为fun2的实际参数传给t,求48与64的最大公约数,为16,最后得到t.m=48/16=3,t.z=64/16=4。[答案]第一行是64,48,第二行是4,33.以下程序运行时输出至到屏幕的结果第一行是_________,第二行是_________。<20XX春阅读程序第13题>#include<stdio.h>typedefstruct{intx,y;}direction;intvisible<directions,directionA,directionB,directionC>{directionp1,p2;

intd;

p1.x=B.x-A.x;

p1.y=B.y-A.y;

p2.x=C.x-A.x;

p2.y=C.y-A.y;

d=s.x*p1.x*p2.x+s.y*p1.y*p2.y;

printf<"%4d\n",d>;

returnd>0;}voidmain<>{char*ss[]={"invisible","visible"};

directions={1,1},T={1,1},A={0,0},B={2,1};

puts<ss[visible<s,T,A,B>]>;

}[解析]direction是结构体类型名,属于该结构体类型的变量都有2个成员,主函数中初始化了4个结构体变量,通过函数调用进行输出。子函数中的return语句返回一个逻辑值,其值为0或1,返回的0或者1是数组ss的下标,决定最后输出的是ss[0]还是ss[1]。现在主要的任务是求visible<s,T,A,B>的值,将四个参数分别传给子函数visible,得:s.x=1,s.y=1;A.x=1,A.y=1;B.x=0,B.y=0;C.x=2,C.y=1计算:p1.x=B.x-A.x=0-1=-1p1.y=B.y-A.y=0-1=-1p2.x=C.x-A.x=2-1=1

p2.y=C.y-A.y=1-1=0d=s.x*p1.x*p2.x+s.y*p1.y*p2.y=1*<-1>*1+1*<-1>*0=-1所以,输出d的值为-1。返回d>0,因为d为-1故d>0不成立,返回的值为0。ss的下标为子函数的返回值0。最后执行puts<ss[0]>,输出的是前面的那个字符串"invisible"。[答案]第一行是-1,第二行是invisible4.程序功能:选票统计。二维数组s中保存了投票后10张有效选票上所填写的候选人姓名,结构数组stat中保存统计结果。程序运行后的输出结果是"liu:2wang:5zhao:3"。<20XX秋完善程序第15题>#include<stdio.h>#include<string.h>typedefstruct{charname[20];/*候选人姓名*/intcount;/*候选人得票数*/}COUNT;intcount<charx[][20],intn,_________________>{inti,j,k=0;/*k表示被选中的人数*/for<i=0;______________;i++>/*n张选票,循环n次*/{for<j=0;j<k;j++>if<strcmp<st[j].name,x[i]>==0>{__________________;break;}if<j>=k>{___________________;st[k].count++;k++;}}returnk;}main<>{chars[10][20]={"liu","wang","zhao","zhao","wang","liu","wang","zhao","wang","wang"};COUNTstat[5]={0};inti,n;n=count<s,10,stat>;for<i=0;i<n;i++>printf<"%s:%d\t",stat[i].name,stat[i].count>;}[解析]第一空填的是形式参数,根据实际参数填,实际参数对应位置为stat,是数组名,该数组属于COUNT类型,第一空填数组类型及数组名,同时中括号不能漏掉。数组类型为COUNT,数组名是函数中用到的st。第二空填的是循环结束条件,i从0开始,i为多少结束,是循环次数,本题是10次,这在main函数的实际参数的中间这个数体现出来,对应的形式参数为n,填i<n。第三空是计数,若为某个姓名,则相应变量的值增1。第四空若票的姓名第一次出现,用strcpy将该姓名复制到结构体数组的一个成员中。[答案]第一空COUNTst[],第二空i<n,第三空st[j].count++,第四空strcpy<st[k].name,x[i]>3.4.1非递归函数的定义、声明、调用及执行过程1.以下选项均为fun函数定义的头部,其中错误的是____。<20XX春选择题第29题>A.intfun<intx,inty[]>B.intfun<intx,inty[x]>C.intfun<intx,inty[3]>D.intfun<intx,int*y>[解析]数组作为函数的参数时,可以只写数组名及中括号,中括号中的下标可以有也可以没有,也可以将数组表示成指针的形式,所以A、C、D都是正确的形式。B的问题是y数组的下标用了动态的变量。[答案]B2.若已定义一个有返回值的函数,则以下关于调用该函数的叙述中错误的是_____。<20XX春选择题第28题>A.函数调用可以作为独立的语句存在B.函数调用可以出现在表达式中C.函数调用可以作为一个函数实参D.函数调用可以作为一个函数形参[解析]函数调用语句由函数名、实参加分号";"组成,A正确。函数有返回值,函数调用可以作为表达式的一部分,可以作为函数的实参但不能作为形参。[答案]D3.以下程序运行后输出结果中第一行为_________,第二行为____________。<20XX春阅读程序第10题>#include<stdio.h>intfun<inta[],intn,intb[]>{inti=0,j,m=0,c,x;for<i=0;i<n;i++>{x=a[i];c=1;for<j=i+1;j<n;j++>if<a[j]==x>c++;else{i=j-1;break;}if<j>=n>i=j;if<c==1>b[m++]=x;else{b[m++]=-c;b[m++]=x;}}returnm;}voidmain<>{intx[]={4,4,4,4,4,4,4,4,1,2},y[10],i,j,n=10;n=fun<x,n,y>;for<i=0;i<n;i++>{if<i%2==0>printf<"\n">;printf<"%5d",y[i]>;}}[解析]本题是求数组y,y根据数组x的情况得到,返回y的元素个数。本题要注意的是i的变化,i除了作为循环变量改变外还有在内循环中对i的赋值语句。第1次外循环:i=0,x=a[0]=4,c=1。内循环是计算与a[0]元素相等的元素的个数,共8个,c=8,j=8,接着的内循环因为执行else语句,i变为7,跳出内循环,执行外循环下面的语句,将-c的值-8赋给b[0],x的值4赋给b[1],再执行i++改变循环变量,i为8。第2次外循环:i=8,x=a[8]=1,c=1,内循环因为a[8]后面的a[9]不为1,所以执行else语句,i=j-1=8,跳出内循环。c为1,将x赋给b[3],b[3]为1。此时执行i++,i=9,进行第3次循环是否执行的判断。第3次外循环与第2次类似,将a[9]的值2赋给b[4],循环结束。主函数输出y数组各元素的值,输2个换行。[答案]第一行为-84,第二行为124.以下程序运行时,若在键盘上输入2<Enter>,则输出是______________若在键盘输入i<Enter>,则输出是______________。<20XX春阅读程序第13题>#include<stdio.h>#include<string.h>intstrch<char*s,charch>{inti;for<i=strlen<s>;i>=0;i-->if<s[i-1]==ch>returni;if<i<0>return0;}main<>{charch,s1[]="as123d2nfghjkm";intk;printf<"inputch:">;ch=getchar<>;k=strch<s1,ch>;if<k!=0>printf<"k=%d\n",k>;elseprintf<"notfound\n">;}[解析]本程序的功能是在字符串中查找字符,从字符串的末尾往前找某字符。如果键盘输入2,将2与s1中的最后一个字符比较,不同,再往前一个,直到找到相同的为止,返回的i是从后往前数的字符数,从0开始算,找到最后找不到返回0。子函数中的形参*s可以看做s[],strlen函数的功能是求字符串的实际长度。[答案]输入2<Enter>则输出k=7;输入i<Enter>则输出notfound。3.4.2函数调用时参数的传递1.若函数调用时的实参为变量,则以下关于函数形参和实参的叙述中正确的是____。<20XX秋选择题第29题>A.实参和其对应的形参占用同一存储单元B.形参不占用存储单元C.同名的实参和形参占用同一存储单元D.形参和实参占用不同的存储单元[解析]实参若为变量,传递的是值,与形参占用各自的内存空间。就是同名的实参与形参也是占用不同的空间。形参在函数调用的时候给其分配内存,调用结束系统收回内存。实参若是数组,传递的是地址,实参和其对应的形参共享内存空间。[答案]D2.以下程序运行后的输出结果是______________。<20XX春阅读程序第7题>#include<stdio.h>intfun<intw1,intw2>{returnw2-w1;}main<>{intw=1,k;k=fun<fun<w+1,w>,w>;printf<"%d\n",k>;}[解析]本题是函数的嵌套调用,尽管嵌套调用了自己,但是不能算递归。因为递归调用有一个递归结束终止条件的,本调用不存在,只能算嵌套调用。先计算里面fun函数的参数,fun<w+1,w>即fun<2,1>,将2传给w1,1传给w2,返回1-2=-1,所以外面的那个fun函数的参数fun<w+1,w>为-1,再次调用,即fun<-1,1>,返回1-<-1>=2。[答案]23.以下程序运行时输出结果是___________。<20XX春阅读程序第8题>#include<stdio.h>intf<intx,inty>{returnx+y;}voidmain<>{doublea=5.5,b=2.5;printf<"%d",f<a,b>>;}[解析]本题的考点是不同类型的参数传递。将实数5.5传给形参x,截取整数部分,为5,同样y为2,返回整数x、y的和,为5+2=7,主函数"%d"格式输出返回值,为整数7。如果要求按"%f"格式输出,则结果应为7.0。[答案]74.以下程序运行时输出到屏幕的结果是___________

。<20XX春阅读程序第8题>#include<stdio.h>voidswap<inta,intb>{intt;

if<a>b>t=a,a=b,b=t;}voidmain<>{intx=13,y=11,z=12;

if<x>y>swap<x,y>;

if<x>z>swap<x,z>;

if<y>z>swap<y,z>;printf<"%d\t%d\t%d\n",x,y,z>;}[解析]函数swap的功能是当a>b时,实现两个变量的值的交换,if后面是逗号表达式,尽管没有花括号,但认为是一个语句,依次执行每个赋值语句。因为没有返回语句,而且函数的值是单向传递的,主函数中的x,y,z的值没有交换。[答案]1311125.以下程序运行后的输出结果是______________。<20XX秋题阅读程序第7题>#include<stdio.h>voidfun<intx,inty,int*z>{y=x*x;*z=x*x*x;}voidmain<>{inta=2,b=0,c=0;fun<a,b,&c>;printf<"%d%d%d",a,b,c>;}[解析]本题的考点是参数的传递。a和b的值不变,实参a和b传给子函数的形参x和y,是值传递,单向的,x和y的值改变了,不影响主函数中a和b的值,它们分别占用自己的内存空间。而c传给z的是地址,是地址传递,双向的,z指向的地址单元的值改变,c也改变,z为x*x*x=2*2*2=8,c是8。[答案]2086.以下程序运行时输出到屏幕的结果中第一行是________,第二行是________。<20XX秋阅读程序第8题>#

温馨提示

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

评论

0/150

提交评论