2013年9月份全国计算机等级考试二级c语言题库及详细解答_第1页
2013年9月份全国计算机等级考试二级c语言题库及详细解答_第2页
2013年9月份全国计算机等级考试二级c语言题库及详细解答_第3页
2013年9月份全国计算机等级考试二级c语言题库及详细解答_第4页
2013年9月份全国计算机等级考试二级c语言题库及详细解答_第5页
已阅读5页,还剩146页未读 继续免费阅读

下载本文档

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

文档简介

2013年9月份全国计算机等级考试二级C语言试题题库(无纸化考试专用)(说明无纸化考试选择题40分,程序题60分。学会这些题,保证二级高空飘过)第一套给定程序的功能是求二分之一圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积注圆面积公式为SR2,在程序中定义的变量名要与公式的变量相同。例如,输入圆的半径值19527,输出为S598949991。注意部分源程序给出如下。请勿改动MAIN函数和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。试题程序INCLUDEDOUBLEFUNDOUBLERRETURN314159【1】/20VOIDMAINDOUBLEXPRINTF“ENTERX“SCANF“LF“,【2】PRINTF“SLFN“,FUN【3】【参考答案】1RR2SCANF函数的形式,其一般形式为“SCANF“格式控制字符串“,地址表列“,注意地址是由地址运算符“PRINTF函数的形式,其一般形式为“PRINTF“格式控制字符串“,输出表列“函数实参调用,函数作为另一个函数调用的实际参数出现。【解题思路】填空1计算圆的面积,公式为SRR。填空2SCANF函数一般形式为SCANF格式控制,地址表列,因此填入ELSEIFXINCLUDEINCLUDEINCLUDEFLOATFUNINTNVOIDMAINFILEWFINTNFLOATSSYSTEM“CLS“PRINTF“NPLEASEENTERN“SCANF“D“,SFUNNPRINTF“THERESULTISFN“,S/WFFOPEN“OUTDAT“,“W“FPRINTFWF,“F“,FUN11FCLOSEWF/【参考答案】FLOATFUNINTNINTI,S10/定义整型变量S1,表示分母/FLOATS00/定义单精度变量S,表示每一项/FORI1IINCLUDEINCLUDEVOIDMAININTN,MLONGSUM【1】SYSTEM“CLS“PRINTF“NINPUTN,MN“SCANF“D,D“,WHILENINCLUDEINCLUDEDOUBLEFUNINTMDOUBLET10INTIFORI2IINCLUDEINCLUDEVOIDFUNCHARTT,INTPPVOIDMAINFILEWFCHARAA1000INTBB26,KSYSTEM“CLS“PRINTF“NPLEASEENTERACHARSTRING“SCANF“S“,AAFUNAA,BBFORK0KAIFSTR【1】CHSTR0CH【2】0VOIDMAINCHARS81,CSYSTEM“CLS“PRINTF“NPLEASEENTERASTRING“GETSSPRINTF“NPLEASEENTERTHECHARACTERTOSEARCH“CGETCHARFUN【3】PRINTF“NTHERESULTISSN“,S【参考答案】12STR1或STR13S,C【考点分析】本题考查IF语句,一般掌握条件表达式的判定。函数的调用,其一般形式为“函数名实际参数表“。【解题思路】填空1根据题意“若相同什么也不做“,则应填入。填空2若不同则插在串的最后,那么0就在字符串的倒数第二了。填空3函数传递的参数为输入的两个字符串,则填入S,C。下列给定程序中,函数FUN的功能是分别统计字符串中大写字母和小写字母的个数。例如,给字符串S输入AAAABBB123CCCCCCD,则应输出结果UPPER5,LOWER9。请改正程序中的错误,使它能计算出正确的结果。注意不要改动MAIN函数,不得增行或删行,也不得更改程序的结构。试题程序INCLUDEINCLUDE/FOUND/VOIDFUNCHARS,INTA,INTBWHILES/FOUND/IFSACHARAM,CHSYSTEM“CLS“PRINTF“NPLEASEENTERASTRING“GETSAPRINTF“NPLEASEENTERACHAR“CHGETCHARPRINTF“NTHENUMBEROFTHECHARISDN“,FUNA,CH/WFFOPEN“OUTDAT“,“W“FPRINTFWF,“D“,FUN“123412132“,1FCLOSEWF/【参考答案】INTFUNCHARSS,CHARCINTI0FORSS0SSIFSSCI/求出SS所指字符串中指定字符的个数/RETURNI【考点分析】本题考查字符串结束标识0FOR循环语句,如何遍历字符串;通过IF条件语句,判断是否相同。【解题思路】从字符串SS中找出子字符串的方法是从第1个字符开始,对字符串进行遍历若SS串的当前字符等于T串的第1个字符,两字符串的指针自动加1,继续比较下一个字符若比较至字符串的结尾,则跳出循环若SS串的字符和C串的字符不对应相同,则继续对SS串的下一个字符进行处理。本程序是采用逐一比较的方式找出出现的次数。循环的作用是在串中从左到右逐一走动,IF的作用是进行判断是否相同,若与C相同,则表示又出现一次。第四套请补充函数FUN,该函数的功能是把ASCII码为偶数的字符从字符串STR中删除,结果仍然保存在字符串STR中,字符串STR从键盘输入,其长度作为参数传入函数FUN。例如,输入“ABCDEF“,输出“ACE“。注意部分源程序给出如下。请勿改动MAIN函数和其他函数中的任何内容,仅在函数FUN的横线上填入所编写的若干表达式或语句。试题程序INCLUDEINCLUDEDEFINEN80【1】INTI,J【2】FORI0IINCLUDELONGFUNLONGNUM/FOUND/LONGKDOKNUM10/FOUND/NUM10WHILENUMRETURNKMAININTNPRINTF“PLEASEENTERANUMBER“SCANF“LD“,PRINTF“NLDN“,FUNN【参考答案】1错误LONGK正确LONGK12错误NUM10;正确NUM/10【考点分析】变量初始化,保存乘积的变量初始化为1。【解题思路】1K用来存放各位数字的积,初值应为1。2这里是一个符号错误,除号使用“/“来表示的。请编写一个函数FUN,它的功能是求出1到M含M之内能被7或11整除的所有整数放在数组A中,通过N返回这些数的个数。例如,若传给M的值为50,则程序输出711142122283335424449注意部分源程序给出如下。请勿改动MAIN函数和其他函数中的任何内容,仅在函数FUN的花括号中填入所编写的若干语句。试题程序INCLUDEINCLUDEINCLUDEDEFINEM100VOIDFUNINTM,INTA,INTNVOIDMAINFILEWFINTAAM,N,KSYSTEM“CLS“FUN50,AA,FORK0KINCLUDEINCLUDEINTFUNINTNINTFLAG0IFN40IF【1】FLAG1IF【2】FLAG1RETURN【3】VOIDMAININTYEARSYSTEM“CLS“PRINTF“INPUTTHEYEAR“SCANF“D“,IFFUNYEARPRINTF“DISALEAPYEARN“,YEARELSEPRINTF“DISNOTALEAPYEARN“,YEAR【参考答案】1N1000或N1002N40003FLAG【考点分析】本题考查判断闰年的算法,年份能被4整除但不能被100整除,或者年份能被400整除。RETURN语句,负责将函数值返回给主调函数。一般情况下,FLAG在C语言中作为一种标志来使用,本书中有多个题目都使用了FLAG标志。【解题思路】填空1判断闰年的方法是,年份能被4整除但不能被100整除,或者年份能被400整除。N不能被100整除,即对100取余非零。填空2能被400整除的年份也是闰年,N能被400整除,即对400取余为零。填空3FLAG标记年份N是否为闰年,当FLAG为1时,是闰年,当FLAG为0时,不是闰年。下列给定程序中函数FUN的功能是计算N。例如,给N输入5,则输出120000000。请改正程序中的错误,使程序能输出正确的结果。注意不要改动MAIN函数,不得增行或删行,也不得更改程序的结构。试题程序INCLUDEINCLUDEDOUBLEFUNINTNDOUBLERESULT10/FOUND/IFN0RETURN10WHILEN1LONGCFILEOUTPRINTF“INPUTA,B“SCANF“DD“,FUNA,B,PRINTF“THERESULTISLDN“,C/OUTFOPEN“OUTDAT“,“W“FUNA11,B22,FPRINTFOUT,“LDN“,CFCLOSEOUT/【参考答案】VOIDFUNINTA,INTB,LONGCCA101000B10100A/1010B/10【考点分析】本题考查如何取出数值N的各个位,主要是考查和/的交换使用。两个整型数相除,/用来求得数的整数部分,用来求余数。【解题思路】本题中主要的问题是怎么取出A和B的个位数和十位数,取出后怎么表示成C中相应的位数。由于A和B都是只有两位的整数,所以分别对它们除10可得到它们的十位数,分别用10对它们求余可得到它们的个位数。得到后对应乘以1000、100、10、1就可得到C的千位数、百位数、十位数和个位数。注意使用C时要进行指针运算。第六套请补充函数FUN,函数FUN的功能是求N的阶乘。注意部分源程序给出如下。请勿改动MAIN函数和其他函数中的任何内容,仅在函数FUN的横线上填入所编写的若干表达式或语句。试题程序INCLUDELONGFUNINTNIF【1】RETURNNFUN【2】RETURN【3】VOIDMAINPRINTF“10LDN“,FUN10【参考答案】1N1或11和N1这两种情况的处理方法不同,需要分开考虑。填空2阶乘的算法是,当N1时,NNN1,即FUNNNFUNN1。填空3N1是递归的终止条件,返回值为1。下列给定的程序中,函数FUN的功能是计算并输出K以内最大的10个能被13或17整除的自然数之和。K的值由主函数传入,若K的值为500,则函数的值为4622。请改正程序中的错误,使它能得出正确的结果。注意不要改动MAIN函数,不得增行或删行,也不得更改程序的结构。试题程序INCLUDEINCLUDEINCLUDEINTFUNINTKINTM0,MC0,JWHILEK2SYSTEM“CLS“PRINTF“FN“,FUN20/WFFOPEN“OUTDAT“,“W“FPRINTFWF,“F“,FUN20FCLOSEWF/【参考答案】DOUBLEFUNINTMINTIDOUBLES00FORI1IINCLUDEINCLUDEVOIDFUNINTK,INTBBINTIINTJ0FOR【1】I0IPRINTF“D“,BBIVOIDMAININTK1INTBB100SYSTEM“CLS“PRINTF“NPLEASEINPUTX“SCANF“D“,FUNK,BB【参考答案】1I12KI0INTI/FOUND/FORI2IINCLUDEINCLUDEINCLUDEDOUBLEFUNINTNVOIDMAINFILEWFSYSTEM“CLS“PRINTF“SFN“,FUN1000/WFFOPEN“OUTDAT“,“W“FPRINTFWF,“F“,FUN1000FCLOSEWF/【参考答案】DOUBLEFUNINTNDOUBLES00INTIFORI0I中对S求平方根。第八套请补充函数FUN,它的功能是计算并输出N包括N以内所有能被3或7整除的自然数的倒数之和。例如,在主函数中从键盘给N输入30后,输出为S1226323。注意部分源程序给出如下。请勿改动MAIN函数和其他函数中的任何内容,仅在函数FUN的横线上填入所编写的若干表达式或语句。试题程序INCLUDEDOUBLEFUNINTNINTIDOUBLESUM00FORI1【1】IIFI30【2】I70SUM【3】/IRETURNSUMVOIDMAININTNDOUBLESPRINTF“NINPUTN“SCANF“D“,SFUNNPRINTF“NNSFN“,S【参考答案】1IINCLUDEDOUBLEFUNINTX/FOUND/INTSUM00INTC0,I0WHILEXI0IFXI0SUMXICI/FOUND/SUMSUMCRETURNSUMVOIDMAININTX1000INTI0SYSTEM“CLS“PRINTF“NPLEASEENTERSOMEDATAENDWITH0“DOSCANF“D“,WHILEXI0PRINTF“FN“,FUNX【参考答案】1错误INTSUM00正确DOUBLESUM002错误SUMC正确SUM/C【考点分析】本题考查变量的数据类型,区别INT整型和DOUBLE双精度型除法运算符“/“。【解题思路】1定义变量错误。2C语言中的除法运算符是“/“。请编写函数FUN,其功能是将所有大于1小于整数M的非素数存入XX所指数组中,非素数的个数通过K传回。例如,输入17,则应输出46891012141516。注意部分源程序给出如下。请勿改动MAIN函数和其他函数中的任何内容,仅在函数FUN的花括号中填入所编写的若干语句。试题程序INCLUDEINCLUDEINCLUDEVOIDFUNINTM,INTK,INTXXVOIDMAINFILEWFINTM,N,ZZ100SYSTEM“CLS“PRINTF“NPLEASEENTERANINTEGERNUMBERBETWEEN10AND100“SCANF“D“,FUNN,PRINTF“NNTHEREAREDNONPRIMENUMBERSLESSTHAND“,M,NFORN0NDEFINEN3DEFINEM5VOIDMAININTI,JSTATICFLOATSCORENM835,82,86,65,67,80,915,84,99,95,905,95,86,95,97FLOATBBNSYSTEM“CLS“FORI0IINCLUDEINCLUDEINTFUNINTMINTK2WHILEKN。PM/NMN,例如,M12,N8时,运行结果为495000000。注意部分源程序给出如下。请勿改动MAIN函数和其他函数中的任何内容,仅在函数FUN的花括号中填入所编写的若干语句。试题程序INCLUDEINCLUDEINCLUDEFLOATFUNINTM,INTNVOIDMAINFILEWFSYSTEM“CLS“PRINTF“PFN“,FUN12,8/WFFOPEN“OUTDAT“,“W“FPRINTFWF,“F“,FUN12,8FCLOSEWF/【参考答案】FLOATFUNINTM,INTNINTIDOUBLEP10FORI1IINCLUDEINCLUDEDEFINEN81VOIDFUNCHARSINTI,NSTRLENS1CHARTFORI0I/FOUND/INTFUNNINTC/FOUND/IFN1C10ELSECFUNN12RETURNCVOIDMAININTNPRINTF“ENTERN“SCANF“D“,PRINTF“THERESULTDNN“,FUNN【参考答案】1错误INTFUNN正确INTFUNINTN2错误IFN1正确IFN1【考点分析】有参函数定义,其一般形式为类型标识符函数名形式参数列表声明部分语句在形参列表中给出的参数称为形式参数,它们可以是各种类型的变量,各参数之间用逗号间隔。在进行函数调用时,主调函数将赋予这些形式参数实际的值。形参既然是变量,必须在形参表中给出形参列的类型说明。【解题思路】1主函数中已经定义了变量N的类型,在子函数中也要定义。2IF后面应该紧跟一个条件判断表达式,而N1是赋值表达式,表达式的值永远为真,也就是说这个条件永远成立,没有递归执行。请编一个函数FLOATFUNDOUBLEH,函数的功能是对变量H中的值保留两位小数,并对第三位进行四舍五入规定H中的值为正数。例如,若H值为832433,则函数返回832若H值为832533,则函数返回833。注意部分源程序给出如下。请勿改动MAIN函数和其他函数中的任何内容,仅在函数FUN的花括号中填入所编写的若干语句。试题程序INCLUDEINCLUDEINCLUDEFLOATFUNFLOATHVOIDMAINFILEWFFLOATASYSTEM“CLS“PRINTF“ENTERA“SCANF“F“,PRINTF“THEORIGINALDATAIS“PRINTF“FNN“,APRINTF“THERESULTFN“,FUNA/WFFOPEN“OUTDAT“,“W“FPRINTFWF,“F“,FUN832533FCLOSEWF/【参考答案】FLOATFUNFLOATHLONGTTH10005/10/单精度数H乘以1000后再加5,相当于对H中的第三位小数进行四舍五入,除以10后将其赋给一个长整型数时,把第三位小数后的数全部截去/RETURNFLOATT/100/除以100,保留2位小数/【考点分析】本题考查四舍五入方法的考查数据类型强制转换。【解题思路】注意本题要求H的值真正发生了四舍五入,而不是为了输出,即不能用PRINTF“72F“,H直接得到结果。由于单精度数H乘以1000后再加5,此时相当于对H中的第三位小数进行四舍五入,在将其赋给一个长整型数时,把第三位小数后的数全部截去。在RETURN中要将其中一个数转成浮点型数。第十一套请补充MAIN函数,该函数的功能是输出一个N矩阵,要求非周边元素赋值0,周边元素赋值1。注意部分源程序给出如下。请勿改动MAIN函数和其他函数中的任何内容,仅在MAIN函数的横线上填入所编写的若干表达式或语句。试题程序INCLUDEINCLUDEDEFINEN10VOIDMAININTBBNNINTI,J,NSYSTEM“CLS“PRINTF“NINPUTNN“SCANF“D“,FORI0ILONGFUNINTG/FOUND/SWITCHGCASE0RETURN0/FOUND/CASE1CASE2RETURN1RETURNFUNG1FUNG2VOIDMAINLONGFIBINTNPRINTF“INPUTN“SCANF“D“,PRINTF“NDN“,NFIBFUNNPRINTF“FIBDNN“,FIB【参考答案】1错误SWITCHG正确去掉分号2错误CASE1CASE2RETURN1正确CASE1CASE2RETURN1【考点分析】SWITCH语句,其一般形式为SWITCH表达式CASE常量表达式1语句1CASE常量表达式2语句2CASE常量表达式N语句NDEFAULT语句N1“其中,SWITCH表达式后不带有“,同时CASE语句常量后应该是“。【解题思路】C语言中,SWITCH语句之后不能有分号,并且CASE语句常量后该用是冒号。请编写函数FUN,函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。例如,若二维数组中的值为13579299946999813570则函数值为61。注意部分源程序给出如下。请勿改动MAIN函数和其他函数中的任何内容,仅在函数FUN的花括号中填入所编写的若干语句。试题程序INCLUDEINCLUDEINCLUDEDEFINEM4DEFINEN5INTFUNINTAMNVOIDMAINFILEWFINTAAMN1,3,5,7,9,2,9,9,9,4,6,9,9,9,8,1,3,5,7,0INTI,J,YSYSTEM“CLS“PRINTF“THEORIGINALDATAISN“FORI0IINCLUDEDEFINEN80VOIDMAININTI0CHARSTRNCHARCHSYSTEM“CLS“PRINTF“NINPUTASTRINGN“GETSSTRPRINTF“NINPUTACHARATORN“SCANF“C“,WHILESTRI0IFSTRICH【1】【2】STRI【3】PRINTF“NDISPLAYSTRINGN“PUTSSTR【参考答案】1BREAK2I或I或I1或II130【考点分析】本题考查BREAK语句,通常用在循环语句和开关语句中。当BREAK用于开关语句SWITCH中时,可使程序跳出SWITCH而执行以后的语句。当BREAK语句用于FOR、WHILE、DOWHILE循环语句时,可使程序终止循环而执行循环后面的语句,通常BREAK语句总是与IF语句一起使用,即满足条件时便跳出循环字符串结束标识0,上机考试时经常考查。下列给定程序中,函数FUN的功能是求出数组中最大数和次最大数,并把最大数和A0中的数对调、次最大数和A1中的数对调。请改正程序中的错误,使它能得出正确的结果。注意不要改动MAIN函数,不得增行或删行,也不得更改程序的结构。试题程序INCLUDEINCLUDEDEFINEN20/FOUND/VOIDFUNINTA,INTNINTI,M,T,KFORI0IAMMKTAIAIAMAMTMAININTBN11,5,12,0,3,6,9,7,10,8,N10,ISYSTEM“CLS“FORI0IINCLUDEINCLUDEFLOATFUNMAINFILEOUTFLOATFFUNPRINTF“ROOTFN“,F/OUTFOPEN“OUTDAT“,“W“FPRINTFOUT,“F“,FFCLOSEOUT/【参考答案】FLOATFUNFLOATX100,X0DOX0X1X1COSX0WHILEFABSX0X11E6RETURNX1【考点分析】DOWHILE循环语句,其形式为DO语句WHILE表达式这个循环与WHILE循环的不同在于它先执行循环中的语句,然后再判断表达式是否为真。如果为真则继续循环,如果为假,则终止循环。因此,DOWHILE循环至少要执行一次循环语句。第十三套请补充MAIN函数,该函数的功能是从键盘输入3个整数,然后找出最大的数并输出。例如,输入12,45,43,最大值为45。注意部分源程序给出如下。请勿改动MAIN函数和其他函数中的任何内容,仅在MAIN函数的横线上填入所编写的若干表达式或语句。试题程序INCLUDEINCLUDEINCLUDEVOIDMAININTA,B,C,MAXSYSTEM“CLS“PRINTF“NINPUTTHREENUMBERSN“SCANF“D,D,D“,PRINTF“THETHREENUMBERSARED,D,DN“,A,B,CIFAB【1】ELSE【2】IFMAXB,则A为A和B中的最大值,将A赋给MAX。填空2如果AINCLUDE/FOUND/VOIDFUNINTM,INTKINTAA20,IFORI0MI/FOUND/AAIM/KM/KFORII/FOUND/PRINTF“D“,AAIMAININTB,NPRINTF“NPLEASEENTERANUMBERANDABASEN“SCANF“DD“,FUNN,BPRINTF“N“【参考答案】1错误VOIDFUNINTM,INTK正确VOIDFUNINTM,INTK2错误AAIM/K正确AAIMK3错误PRINTF“D“,AAI正确PRINTF“D“,AAI1【考点分析】本题考查函数定义的一般形式,定义函数时不应该带有“求余运算,注意求余运算与整除运算的区别。【解题思路】1简单的语法错误。2将十进制正整数转换成任意进制的数和十进制正整数转换成二进制的数的方法是一样的。从整数N译出它的各位K进制数值,需采用除K取余的方法,即求N除K的余数,得到它的K进制的个位数,接着将N除以K。在N不等于0的状况下循环,按顺序求出N的K进制的各个位上的数。3在进行FORI0MI循环结束时,I已经多加了一个1,所以这里要减去1。假定输入的字符串中只包含字母和号。请编写函数FUN,它的功能是将字符串中的前导号全部删除,中间和后面的号不删除。例如,若字符串中的内容为ABCDEFG,删除后,字符串中的内容则应当是ABCDEFG。注意部分源程序给出如下。请勿改动MAIN函数和其他函数中的任何内容,仅在函数FUN的花括号中填入所编写的若干语句。试题程序INCLUDEINCLUDEVOIDFUNCHARAVOIDMAINFILEWFCHARS81,T81“ABCDEFG“PRINTF“ENTERASTRINGN“GETSSFUNSPRINTF“THESTRINGAFTERDELETEDN“PUTSS/WFFOPEN“OUTDAT“,“W“FUNTFPRINTFWF,“S“,TFCLOSEWF/【参考答案】VOIDFUNCHARACHARPAWHILEPP/指针P指向字符串第一个字母/FORP0P,AAP/从第一个字母开始,其后的字符都放入指针A所指的字符串中/A0/在字符串最后加上结束标记符/【考点分析】本题考查将字符串的前导号删除,即可以通过WHILE循环语句、FOR循环语句进行循环操作,将前导号后面字符重新储存。字符串结束标识0。【解题思路】根据题意需删除给定字符串中的前导号,那么需要使用指针型变量来完成该操作,当指针指向第一个非号,即可把后面的所有字符都存到一个新串中。我们在此提供另一种解答方法。INCLUDEVOIDFUNCHARACHARPAWHILEPPSTRCPYA,P第十四套函数FUN的功能是从三个形参A、B、C中找出中间的数,作为函数值返回。例如,当A3,B5,C4时,中间的数为4。注意部分源程序给出如下。请勿改动MAIN函数和其他函数中的任何内容,仅在函数FUN的横线上填入所编写的若干表达式或语句。试题程序INCLUDEINTFUNINTA,INTB,INTCINTTTABBCBACC【1】AC【2】BCC【3】RETURNTMAININTA13,A25,A34,RRFUNA1,A2,A3PRINTF“NTHEMIDDLENUMBERISDN“,R【参考答案】1A2A3B【考点分析】本题考查条件表达式,其一般形式为“表达式1表达式2表达式3“。其求值规则为如果表达式1的值为真,则以表达式2的值作为条件表达式的值,否则以表达式3的值作为整个条件表达式的值。【解题思路】该题目给定语句没有使用IF语句,而是直接使用条件表达式,如“MAXABAB“,执行该语句的语义是如AB为真,则把A赋予MAX,否则把B赋予MAX。下列给定程序中,函数FUN的功能是计算函数FX,Y,ZXY/XYZY/ZY的值。其中X和Y不相等,Z和Y不等。例如,当X的值为9,Y的值为11,Z的值为15时,函数值为350。请改正程序中的错误,使它能得出正确的结果。注意不要改动MAIN函数,不得增行或删行,也不得更改程序的结构。试题程序INCLUDEINCLUDEINCLUDE/FOUND/DEFINEFUM,NM/NFLOATFUNFLOATA,FLOATB,FLOATCFLOATVALUEVALUEFUAB,ABFUCB,CB/FOUND/RETURNVALUEVOIDMAINFLOATX,Y,Z,SUMPRINTF“INPUTXYZ“SCANF“FFF“,PRINTF“XF,YF,ZFN“,X,Y,ZIFXY|YZPRINTF“DATAERRORN“EXIT0SUMFUNX,Y,ZPRINTF“THERESULTIS52FN“,SUM【参考答案】1错误DEFINEFUM,NM/N正确DEFINEFUM,NM/N2错误RETURNVALUE正确RETURNVALUE【考点分析】本题考查C语言宏定义函数返回值。【解题思路】如果从数学思路来说,这是一道简单的数学题,当然,用C语言的办法实现的话,也用不了两三句的程序。但是,这道题的考查点在C语言的宏定义上这样的问题比较隐蔽,它的格式为“DEFINE标识符字符串“,中间要用空格分开。在该题中,标识符为FUM,N,而字符串则是M/N,由题干信息易知,应该是“DEFINEFUM,NM/N“。请编写函数FUN,该函数的功能是判断字符串是否为回文,若是则函数返回1,主函数中输出“YES“,否则返回0,主函数中输出“NO“。回文是指顺读和倒读都一样的字符串。例如,字符串LEVEL是回文,而字符串123312就不是回文。注意部分源程序给出如下。请勿改动MAIN函数和其他函数中的任何内容,仅在函数FUN的花括号中填入所编写的若干语句。试题程序INCLUDEDEFINEN80INTFUNCHARSTRMAINCHARSNFILEOUTCHARTEST“1234321“,“123421“,“123321“,“ABCDCBA“INTIPRINTF“ENTERASTRING“GETSSPRINTF“NN“PUTSSIFFUNSPRINTF“YESN“ELSEPRINTF“NON“/OUTFOPEN“OUTDAT“,“W“FORI0IINTC1,C2,C3VOIDFUNLONGNC1C2C30WHILENSWITCH【1】CASE1C1【2】CASE2C2【3】CASE3C3N/10MAINLONGN123114350LFUNNPRINTF“NTHERESULTN“PRINTF“NLDC1DC2DC3DN“,N,C1,C2,C3【参考答案】1N102BREAK3BREAK【考点分析】本题考查SWITCH语句,注意该语句的一般形式。如何提取数值N某一位上的数。BREAK语句的使用。【解题思路】填空1要统计长整数N的各位上出现数字1、2、3的次数,就需要判断各位上的数是多少。那么,通过N除以10求余,可得到个位上的数,所以填入N10。填空2和填空3SWITCH语句是多分支选择语句,在每个分支中要加入BREAK,不然会依次执行后面的分支。CONTINUE是结束当前分支的运行,而BREAK结束整个SWITCH语句的运行。下列给定程序中函数FUN的功能是先将在字符串S中的字符按逆序存放到T串中,然后把S中的字符按正序连接到T串的后面。例如,当S中的字符串为ABCDE时,则T中的字符串应为EDCBAABCDE。请改正程序中的错误,使它能得出正确的结果。注意不要改动MAIN函数,不得增行或删行,也不得更改程序的结构。试题程序INCLUDEINCLUDEINCLUDEINCLUDEVOIDFUNCHARS,CHARTINTI,S1S1STRLENSFORI0IINCLUDEINCLUDEDEFINEN81VOIDFUNCHARSMAINCHARANFILEOUTPRINTF“ENTERASTRING“GETSAPRINTF“THEORIGINALSTRINGIS“PUTSAFUNAPRINTF“N“PRINTF“THESTRINGAFTERMODIFIED“PUTSASTRCPYA,“HELLOWORLD“FUNA/OUTFOPEN“OUTDAT“,“W“FPRINTFOUT,“S“,AFCLOSEOUT/【参考答案】VOIDFUNCHARSCHARCHINTI,M,NI0MNSTRLENS1WHILEIINCLUDEVOIDMAININTI,GSYSTEM“CLS“FORI1IINTFUNINTX,INTY,INTZINTJ,T,N,M/FOUND/J1TMN1/FOUND/WHILET0TJXMJYNJZRETURNJVOIDMAININTX1,X2,X3,JPRINTF“INPUTX1X2X3“SCANF“DDD“,PRINTF“X1D,X2D,X3DN“,X1,X2,X3JFUNX1,X2,X3PRINTF“THEMINIMALCOMMONMULTIPLEISDN“,J【参考答案】1错误J1正确J02错误WHILET0WHILE循环条件及“逻辑或“运算。【解题思路】1J通过循环加1求出三个数的最小公倍数,当三个数都为1时,则最小公倍数为1。然而,如果J初始为1时,那么计算最小公倍数时就从2开始了,所以改为J0。2不需要同时都不为0,只要有一个不为0,就有最小公倍数。请编写一个函数FUN,它的功能是将一个数字字符串转换为一个整数不得调用C语言提供的将字符串转为整数的函数。例如,若输入字符串“1234“,则函数把它转换为整数值1234。注意部分源程序给出如下。请勿改动MAIN函数和其他函数中的任何内容,仅在函数FUN的花括号中填入所编写的若干语句。试题程序INCLUDEINCLUDELONGFUNCHARPVOIDMAINFILEWFCHARS6LONGNPRINTF“ENTERASTRINGN“GETSSNFUNSPRINTF“LDN“,N/WFFOPEN“OUTDAT“,“W“FPRINTFWF,“LD“,FUN“1234“FCLOSEWF/【参考答案】LONGFUNCHARPLONGN0INTFLAG1IFP/负数时置FLAG为1/PFLAG1ELSEIFP/正数时置FLAG为1/PWHILEP0NN10P0/将字符串转成相应的整数/PRETURNNFLAG【考点分析】本题考查字符串转整数算法。【解题思路】IF的作用是判断它是正数还是负数。WHILE循环的作用是将字符串转成相应的整数。注意P是一个字符如9、4,并不是一个数,要将其转成相应的数字必须令其减去0不是0,即P0就得到P这个字符的相应数字,如000、808等。在程序的前面加INCLUDE,函数ATOL的作用是将字符串P转成长整型数,它是一个库函数。第十七套请补充MAIN函数,该函数的功能是打印出满足个位的数字、十位上的数字和百位上的数字都相等的所有三位数。本题的结果为111222333444555666777888999。注意部分源程序给出如下。请勿改动MAIN函数和其他函数中的任何内容,仅在MAIN函数的横线上填入所编写的若干表达式或语句。试题程序INCLUDEINCLUDEVOIDMAININTG,S,BSYSTEM“CLS“FORG1GINCLUDEINCLUDEDEFINEN20INTFUNFLOATS,INTN,FLOATAVERFLOATAVE,T00INTCOUNT0,K,IFORK0KINCLUDEINCLUDEVOIDFUNCHARSSVOIDMAINCHARTT51FILEOUTPRINTF“PLEASEENTERANCHARACTERSTRINGWITHIN50CHARACTERSN“GETSTTPRINTF“NNAFTERCHANGING,THESTRINGNS“,TTFUNTTPRINTF“NBECOMESNS“,TT/OUTFOPEN“OUTDAT“,“W“STRCPYTT,“AFTERCHANGINGTHESTRING“FUNTTFPRINTFOUT,“S“,TTFCLOSEOUT/【参考答案】VOIDFUNCHARSSINTI,N0CHARPSSWHILEPNPFORI0IAFLOATAVER0SYSTEM“CLS“FORJ2JINCLUDEINCLUDEVOIDFUNCHARS,INTNCHARA80,PINTI/FOUND/SPFORI0IINCLUDEINCLUDEINCLUDEINTFUNCHARSTR,CHARSUBSTRVOIDMAINFILEWFCHARSTR81,SUBSTR3INTNSYSTEM“CLS“PRINTF“输入主字符串“GETSSTRPRINTF“输入子字符串“GETSSUBSTRPUTSSTRPUTSSUBSTRNFUNSTR,SUBSTRPRINTF“NDN“,N/WFFOPEN“OUTDAT“,“W“NFUN“ASDASASDFGASDASZX67ASDMKLO“,“AS“FPRINTFWF,“D“,NFCLOSEWF/【参考答案】INTFUNCHARSTR,CHARSUBSTRINTI,J0FORI0STRI10I/如果一个长度为2的子字符串在主字符串中出现一次,则J1,如此循环/IFSTRISUBSTR0RETURNJ/返回子字符串在主字符串中出现的次数/【考点分析】本题考查遍历字符串实现字符串比较运算。【解题思路】该题中SUBSTR只有两个字符,所以可以用IF语句直接进行判断。注意IF中STR数组的下标为I和I1,即比较当前字符及其后面的一个字符是否分别与SUBSTR中的字符对应相同,若都相同则表示出现了一次。第十九套请补充函数FUN,该函数的功能是求一维数组XN的平均值,并对所得结果进行四舍五入保留两位小数。例如,当X10156,199,167,152,183,121,155,110,100,160,结果为AVG15030000。注意部分源程序给出如下。请勿改动MAIN函数和其他函数中的任何内容,仅在函数FUN的横线上填入所编写的若干表达式或语句。试题程序INCLUDEINCLUDEINCLUDEDOUBLEFUNDOUBLEX10INTILONGTDOUBLEAVG00DOUBLESUM00FORI0IINCLUDEINCLUDEFUNCHARPINTI,TCHARC80FORI0,T0PIIIFISSPACEPICTPI/FOUND/CT“0“STRCPYP,CVOIDMAINCHARC,S80INTI0PRINTF“INPUTASTRING“CGETCHARWHILECSICICGETCHARSI0FUNSPUTSS【参考答案】1错误CT“0“正确CT0【考点分析】字符串结束标识0,0属于一个字符,其ASCII码为0。【解题思路】该程序的IF条件中应用了ISSPACE函数,该函数的功能是检查CH是否空格、跳格符制表符或换行符。字符串常量占的内存字节数等于字符串中字节数加1。增加的一个字节中存放字符0ASCII码为0,这是字符串结束的标志。编写一个函数,从传入的NUM个字符中找出最长的一个字符串,并通过形参指针MAX传回该串地址用作为结束输入的标志。注意部分源程序给出如下。请勿改动MAIN函数和其他函数中的任何内容,仅在函数FUN的花括号中填入所编写的若干语句。试题程序INCLUDEINCLUDEINCLUDEINCLUDECHARFUNCHARA81,INTNUM,CHARMAXVOIDMAINFILEWFCHARSS1081,PSNULLCHARS381“ABCD“,“DEG“,“DIEGNS“,PNULLINTI0,NSYSTEM“CLS“PRINTF“输入若干个字符串“GETSSSIPUTSSSIWHILESTRCMPSSI,“0/用4个星号作为结束输入的标志/IGETSSSIPUTSSSINIPSFUNSS,N,PSPRINTF“NMAXSN“,PS/WFFOPEN“OUTDAT“,“W“PFUNS,3,PFPRINTFWF,“S“,PFCLOSEWF/【参考答案】CHARFUNCHARA81,INTNUM,CHARMAXINTI0MAXA0/找出最长的一个字符串/FORI0IINCLUDEINCLUDEDEFINEN80CHARSTRNVOIDFUNLONGINTNINTI0WHILE【1】STRI【2】N/10I【3】VOIDMAINLONGINTN13572468SYSTEM“CLS“PRINTF“THEORIGIALDATAN“PRINTF“NLD“,NFUNNPRINTF“NS“,STR【参考答案】1N02N1003STRI0【考点分析】本题考查WHILE循环语句,一般需按照题意确定循环条件如何取出数值的各个位字符串结束标识0。【解题思路】填空1WHILE循环的执行条件是N0,当N0时,说明已经将整数的各位数字都转换为数字字符,并存入字符串中。填空2N对10求余,得到整数N的个位数字,再加上字符0的ASCII码,得到对应的数字字符,并存入字符串STR中。填空3将整数转换为字符串并倒序存入字符数组STR中后,还要在STR最后加上字符串结束标记符0。下列给定程序中,函数FUN的功能是先从键盘上输入一个3行、3列的矩阵的各个元素的值,然后输出主对角线元素之和。请改正函数FUN中的错误,使它能得出正确的结果。注意不要改动MAIN函数,不得增行或删行,也不得更改程序的结构。试题程序INCLUDEVOIDFUNINTA33,SUMINTI,J/FOUND/SUM1FORI0IINCLUDEINCLUDEVOIDFUNCHARP1,CHARP2VOIDMAINFILEWFCHARS180,S240CHARP180“FIRSTSTRING“,P240“SECONDSTRING“SYSTEM“CLS“PRINTF“ENTERS1ANDS2N“SCANF“SS“,S1,S2PRINTF“S1SN“,S1PRINTF“S2SN“,S2PRINTF“INVOKEFUNS1,S2N“FUNS1,S2PRINTF“AFTERINVOKINGN“PRINTF“SN“,S1/WFFOPEN“OUTDAT“,“W“FUNP1,P2FPRINTFWF,“S“,P1FCLOSEWF/【参考答案】VOIDFUNCHARP1,CHARP2INTI,JFORI0P1I0I/救出的I为P1字符串的总长度,包括结束标记位/FORJ0P2J0JP1IP2J/将P2字符串连在P1字符串后面/P1I0/在字符串最后加上结束标记符/【考点分析】本题考查不使用字符串函数实现字符串连接操作,通过FOR循环语句来完成,不要忘了最后需要加上字符串结束标识0。【解题思路】本题用两个循环,第1个循环的作用是将I连到第1个字符串的末尾。第2个循环的作用是将第2个字符串的字符连到第1个字符串的末尾。第二十一套请补充函数FUN,该函数的功能是将字符串TT中的大写字母都改为对应的小写字母,其他字符不变。例如,若输入“AREYOUCOMEFROMSICHUAN“,则输出“AREYOUCOMEFROMSICHUAN“。注意部分源程序给出如下。请勿改动MAIN函数和其他函数中的任何内容,仅在函数FUN的横线上填入所编写的若干表达式或语句。试题程序INCLUDEINCLUDEINCLUDECHARFUNCHARTTINTIFORI0TTIIIFTTIARETURN【3】VOIDMAINCHARTT81PRINTF“NPLEASEENTERASTRING“GETSTTPRINTF“NTHERESULTSTRINGISNS“,FUNTT【参考答案】1TTIINCLUDEINCLUDEINCLUDECHARFUNCHARS,CHARTCHARP,R,A/FOUND/ANULLWHILESPSRTWHILER/FOUND/IF

温馨提示

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

评论

0/150

提交评论