二级操作版第1套上机操作试题_第1页
二级操作版第1套上机操作试题_第2页
二级操作版第1套上机操作试题_第3页
二级操作版第1套上机操作试题_第4页
二级操作版第1套上机操作试题_第5页
免费预览已结束,剩余45页可下载查看

下载本文档

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

文档简介

第1件中。填空:(1)STYPE(2)FILE(3)fp改错:(1)fori=0;编程:voidfun(inta,intb,long{第2定义函数ReadTextWriteText填空(1)*fw(2)str(3)改错(1)voidfun(longs,long编程intfun(STREC*a,STREC*b{inti,j=0,min=a[0].s; returnj;第3填空(1)fp(2)fclose(fp)(3)编程voidfun(inta,intb,long{第4,给定程序的功能是:调用函数fun将指定源文件中的内容到指定的目标文件中成功时放在变量sfname变量tfname。,填空(1)r"(2)fs(3)ft编程voidfun(char*s,char{inti,j=0;if(i%2==0&&s[i]%2==0) 第5。函数fun的功能是:把形参x的值放入一个新结点并到链表中,后各结点数据域的值仍保填空(1)x(2)p改错(1)longk=1;(2)num编程floatfunfloat*aintn{intfloatav=0.0;for(i=0; 6给定程序中已建立一个带有头结点的单向链表main次调用funfun填空(1)next(2)t->data(3)t改错(1)voidfun(char*a)(2)printf("%c",*a);编程char*funchar*s,char{inti,j;for(i=0;s[i]!='\0';i++); for(j=0;t[j]!='\0';j++);returnt;returns;}7填空(1)q(2)next(3)next改错(1)p=j编程voidfunintm,int*aint*n{inti,j=0;a[j++]=i;*n=j; 8给定程序中,函数fun能是:在带有头结点的单向链表中,查找数据域中值为ch到后通过函数值返回该结点在链表中所处的顺序号;若不存在值为ch数返回0。填空(1)NULL(2)n(3)改错(2)c[t]=编程voidfun(char*ss{inti;}9给定程序中,函数fun功能是:统计出带有头结点的单向链表中结点的个数,存放在形参n的填空(1)*n(2)next(3)改错编程voidfun(inta,intb,long{}10函数fun数填空(1)data(2)next(3head改错(1)while(*r)编程voidfun(char*s,char{inti,j=0,k=strlen(s);}11且唯一。函数fun的功能是:找出指定的数据,作为函数值返回,由主函数输出,若指定填空(1)STU(2)std[i].num(3)改错(1)if(*r==*p){r++;p编程voidfun(char*s,char{int /*找出ASCII符依次存入数组t*/ }12函数fun的功能是:找出指定出生年份的,将其数据放在形参k所指的数组中,由主函数输出,同时填空(1)std[i].year(2)std[i]改错(1)IsPrime(intn)编程fun(STUa[],STU{int }13给定程序通过定义并赋初值的方式,利用结构体变量了一名学生的学号、和3门课的成绩。函数funa。 改错编程voidfun(inta[N],int{inti,j;}14列填空(1)std[](2)(1)intk,q,(2)pt[i]=程序定义了N×N写函数fun(inta[][N]),函数的功能是:使数组左下三角元素中的值全部置成0。例如:a值|197 |097a|238|则返回主程序后a应为|008|456 |000注意文件PROG1.C改动主函数main其它函数中的任何内容funvoidfun(int{inti,j;a[i][j]=0;/*将数组左下半三角元素中的值全部置}对于N×N表示下三角元素,所以j范围是0~i。15给定程序中,函数fun的功能是:将形参std所指结构体数组中最大者的数据作为函数值返回,并在main出。注意:源程序存放在考生文件夹下的BLANK1.C。(1)std[0](2)std[i].age比较,得到最大的元素,因而在给max赋初值时,应为:max=std[0]。填空2:if条件判断语句表达的是max.age应该和结构体数组中的每个进行比较,从而得到最大填空3:从printf的表达式可看出,要输出的值应为最大者的name。给定程序MODI1.Cfun例如给a和b:60和65,输出为:a=65b=60main得更voidfun(int*a,intt=*b;*b=*a;则能够改变实参的值。主函数中fun式说明fun此处错误比较明显,因为a和b都是指针变量,进行变量交换时不能直 请编一个函数voidfun(inttt[M][Nintpp[N]),ttMN二维数组每列中最小元素,并依次放入pp注意文件PROG1.C改动主函数main其它函数中的任何内容,仅在函数funvoidfun(inttt[M][N],int{inti,j,max;{ }}16程序通过定义并赋初值的方式,利用结构体变量了一名学生的信息。函数fun的功能是输出注意:源程序存放在考生文件夹下的BLANK1.C。(1)tt(2)tt.score[i]填空1:形参函数定义时,参数类型标示符指明printf("\n%d%scd-%d-%d",tt.num,,tt.sex,tt.birthday.yeartt.birthday.month,tt.birthday.day)函数中所用到的tt填写tt。填空2:show该用tt.score[i]来表明学生的成绩输出。填空3:根据show应填写std。给定程序MODI1.Cfun数和a[0]中的数对调、次最大数和a[1]中的数对调。main得更if(a[k]>a[m])这是一段简单的比较程序,m以看出m=i;mm=k;。请编写一个函数unsignedfununsignedw),w大于10wn(n≥2)位的整数,函数求出w低n-1回。例如:w为5923,则函数返回923;w923则函数返回23。注意:部分源程序存在文件PROG1.C。改动主函数main其它函数中的任何内容fununsignedfun(unsigned{intn=1,j,s=1;unsignedt;/*首先确定w用变量n存*/{/*每次循环使s位数减1,同时n1*/}/*求10n-1*//*用w10n-1*/returnw%s;}要得到几位整数w的后n-1位,首先应确定w的位数n,然后使用%运算符将w与s相除,所得的余数即为w的后n-1。本程序首先用wlile语句确定w的位数n,n的初值为1,每次循环使w除以10,即位数减1,同时n加1,至到wfor环得到10n-1用%运算符将w与s17给定程序中,函数fun形参ss组中的M行排序。ss中共有M<N。注意:源程序存放在考生文件夹下的BLANK1.C。(1)i+1(2)k=j填空1:根据for循环要确定循环的初值,再根据选择排序可知此空应填写i+1。填空2:如果k比j大,则应该把k=j。填空3:通过字符串函数strcpy,使得ss[i]和ss[k]交换位置。给定程序MODI1.Cfun的功能是:判断ch否与str同;main得更voidfun(char*str,charchif(*str!=ch(3)str[1]=1个形参应该是字符串类型,所以应改为voidfun(char*strcharch)赋值字符串结束符错误,所以应改为str[1]=0;。请编一个函数fun(char*s),函数的功能是把s则调用该函数后:gfedcba。注意:部分源程序存在文件PROG1.C。改动主函数main其它函数中的任何内容funvoid{charch;inti,m,n;/*将第i个和倒数第i个数互换,但循环的次数为数组长度的一半*/{i++;m--}}个字符交换,依此类推,直到中间的字符为止。因此,长度为n的字n/2。本程序使用while语句表示每一个字符,然后将前后对应的字符进行交换。第18套上机操作试题给定程序中,函数fun能是:求出形参ss符串数组中最长字符串的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长。字符串数组中共M串长<N。注意:源程序存放在考生文件夹下的BLANK1.C。(1)k(2)len填空1:使用变量k最长的字符串,所以应填k填空2:利用for右边存放,字符串的长为len,所以应填len。填空3:左边用字符*补齐,所以应填ss[i][j]。给定程序MODI1.C函数funn阶乘。请改正程序中的错误或在下划线处注意main数删行得更改程序的结构return该题采用循环语句计算nn1170,令resultn同时n动减1,循环至n=2(n=1乘的积result回给主函数。编写函数fun,函数的功能是:从s指的字符串中删除给定的字符。同一字母的大、小写按不若程序执行时输入字符串为turbocandborland从键盘上输入字符:n,变为turbocadborlad如果输入的字符在字符串中不存在输出。注意:部分源程序在文件PROG1.C。改动主函数mainfun句voidfun(chars[],int{inti=0;char*p;while(*p)/*判断是否为结束符{ {} }}删除字符串中指定字符只需把未删除字符保留。该程序先将字符串sp,经过判断后,将重新组合的字符存入s。19给定程序中,函数fun能是:求出形参ss符串数组中最长字符串的长度,将其余字符串右边用字符*补齐,使其与最长的字符串等长。ss中共有M串长<N。注意:源程序存放在考生文件夹下的BLANK1.C(1)ss[i](2)n+j填空2:本题要求在字符串右边用字符*补齐,因而本空应该填写n+j。填空3:在字符串最后的字符都应以'\0'结束,因而本空应填1。给定程序MODI1.Cfun是:将p符串例如,若输入"Iamastudenttotaketheexamination.",则应输出"IaMAstudenTtOtakEthEexamination."。请修改程序中的错误之处,使它能得出正确的结果。注意main数程序的结构if(*p=='p应为*(p-1)而不是*p。请编写函数fun,度为7字符串首、尾字符外,将其余5字符按ASCII例如,原来的字符串为CEAedcaCedcEAa注意在文件PROG1.C改动主函数mainfun句voidfun(char*s,int{charch;inti,jfor(i=1;i<6;i++)for(j=i+1;j<6;j++){if(*(s+i)<*(s+{ch=*(s+j)*(s+j)=*(s+i)*(s+i)=ch}}}本题要求对长度为7将其余5字ASCⅡ码降序排列,因而要重循环进行排序。注意第1的初值i=1,2j=i+1;这是因为题目要求除首、尾字符外,将其余5字符按ASCⅡ码降序排列。第20套上机操作试题函数fun求ss组中长度最长的字符串所在的行下标,作为函数值返回,并把其串长放在形参nss中共有M串长<N。注意:源程序存放在考生文件夹下的BLANK1.C。 填空1:形参ssN,所以应填[N填空2:*n符串的长度赋值给变量*n,所以应填len。填空3:每循环一次,判断当前字符串的长度是否大于*n,如果大于,则*n=len。给定程序MODI1.Cfun是:根据形参m,计算如下公式的值 t=1+-----+-----+-----+……+----- 例如,若输入5,则应输出2.283333请改正程序中的错误或在下划线处填上适当的内容并把下注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!(2)return该题目考查分母成等差数列递增的一个数学公式,先看循环条件for(i=2;i<=m;i++),ii查对程序的解读能力,当循环结束后(由输入m回当前t编写一个函数,该函数可以统计一个长度为2串在另一个字符串中出现的次数。例如,假定输入的字符串为:asdasasdfgasdaszx67asdmklo,子字符串为:as,则应输出6。注意:部分源程序在文件PROG1.C改动主函数mainfunintfun(char*str,char{int /*如果一个长度为2j+1,return }该题中substr以用if注意ifstr下标为i和i+1substr同则21函数fun求ss组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参nss中共有M串长<N。注意:源程序存放在考生文件夹下的BLANK1.C。(1)M(2)<(3)填空1:题目ss所指字符串数组中共有M个字符串,所以for循环语句循环条件是i<M填空2:要求求长度最短的字符串,*n符串中长度最短的字符串的长度,这里将当前字符串长度与*n*n,则将该长度值赋给*nif达式为len<*n。填空3:将最短字符串的行下标作为函数值返回,变量 给定程序MODI1.Cfun能是tt字符串中的小写字母都改为对应的大写字母,例如,若输入"Ab,cD",则输出"AB,CDmain得更(1)if((tt[i]>='a')&&(tt[i]<='z'))的小写字母改为大写字母的方法是:从字符串第一个字符开始,根据ASCII字母,若是,则ASCII值减32可。请编写函数fun大于1m数存入xx中个数通过kprime是否1,0。例如,若输入:17,则应输出:46891012141516。注意:部分源程序在文件PROG1.C。改动主函数main在函fun句voidfun(intm,int*k,intxx[]{int /*找出大于1m素数 if(i%j==0)break;if(j<i)} }22给定程序中,函数fun能是s的所有数字字符移到所有非数字字符之后,注意:源程序存放在考生文件夹下的BLANK1.C(1)jj+=1++jj=j+1(2)s[i]=t1[i](3)j填空1:根据函数fun中的内容可知,数组t1了s中的非数字字符,数组t2了s中的数字字符,为了下一个数字字符,下标j要进行加1操作。填空2s后,要先将非数字字符放入字符串s填入s[i]=填空3:最后将数字字符加到sij。给定程序MODI1.Cfun6main构(1)for(j=i+1;j<6;(2)*(pstr+i)=*(pstr+j)+j)表示pstr组的第j请编写函数fun,它的功能是:求出ss例如,若输入字符串:123412132,输入字符为:1,则输出:3。注意在文件PROG1.C改动主函数main其它函数中的任何内容funintfun(char*ss,char{inti=0;i++;/*求出ss*/returni;}23给定程序中函数fun的功能是在形参s所指字符串中的每个数字字符之后一个*号例如,形参s:def35adh3kjsdf7。执行结果为:def3*5*adh3*kjsdf7*。注意:源程序存放在考生文件夹下的BLANK1.C。(1)&&(2)0'\0'(3)s[j]或填空2:while0(字符串结束标识'\0')。填空3:for要使s[j+1]=s[j]。给定程序MODI1.C函数funm,计算如下公式的值 y=1+-----+-----+-----+……+----2*23*34*4 例如,若m5,则应输出:1.463611。main构(2)y+=1.0/(i*i);或(1)根据公式可以知道fori该包括m(2)变量y一个doubleiy+=1.0/(i*i)。请编写函数fun,B=A+A',把矩阵AA置,存放在矩阵B计算结果在main函数中输出。 12

36 66101014注意在文件PROG1.C改动主函数mainfunvoidfun(inta[3][3],int{inti,j;b[i][j]=a[i][j]+a[j][i];/*把矩阵aab}行列数相等的二维数组的转置就是行列互换,即转置后的第i行第j阵的第j行第i列。本题使层循环实现矩阵的转置,并将计算结果存入矩阵B中,外层循环控制矩阵的行下标,内层24给定程序中,函数fun计形参s符串中数字字符出现的次数,并存放在形参注意:源程序存放在考生文件夹下的BLANK1.C。(1)s[i](2)'9'填空1:通过for字符串结尾,变量i来填空3:将数字字符个数存入变量t里需注意变量t给定程序MODI1.C函数fun式实现两个变量值的交换,规定不允许增加语句和表达式。例如变量a中的值原为8,b的值原为3,程序运行后a中的值为3,b的值为8。main构(1)t=*x;*x=y;(2)return(t)或returnt;首先,定义变量t作为中间变量,然后进行,注意参数x是指针变量,交换时应使用*x,最后确定返回值,根据代码b=fun(8a,b)可以知道返回值将赋给变量b,而b*x所以函数应返回变量t。请编写函数fun,它的功能是出11000能被7117整除的所有整数并将它们放在an注意:部分源程序在文件PROG1.C。改动主函数main其它函数中的任何内容funvoidfun(int*a,int{int /*求11000能被711除、但不能同时被711的所有整数,并放入数组a*/}11定能被7777能被711程序中的if()语句。注意:(i%7==0||i%11==0)两边必须要有小括号。25于等于2)。例如,形参sabcdefgh,执行结果为:ahcbedgf。注意:源程序存放在考生文件夹下的BLANK1.C(1)1(2)s[k]或*(s+k)(3)填空1:函数fun变量n偶数,则k=n-1;假如长度为奇数,则k=n-2,使得下标为奇数的最后一个元素有效(不是′\0′)。填空2:了解变量k的奇数位置的数赋值给变量c。填空3:将最后一个下标为奇数的元素移到第一个奇数位置。给定程序MODI1.Cfuns=aa…aa-...-aaa-aa-(此处aa…aana,an值在19例如a=3,n=6,则以上表达式为:s=333333-33333-3333-333-33-其值是anfunmainmain构(1)longs=0,t=0;t来存放每次循环后的多位数,第一次循环时,t所以t应为0voidfun(char*ttintpp[]),统计tt'a'z'26小写字母各自出现的次数,并依次放在pp例如,当输入字符串:abcdefgabcdeabc输出结果应该是3332211000000000000000000注意在文件PROG1.C改动主函数mainfunvoidfun(char*tt,int{int /*初始化pp素为0*/}要求统计在tt'a'~'z'26次放在pp首先使用for初始化pp26母的tt符串中的字符进行逐一比较操作,同时存入相对应的pp中。26给定程序中,函数funs串中下标为奇数的字符按ASCII排序,并将排序后下标为奇数的字符取出,存入形参p指字符数组中,形成一个新串。例如,形参s为:baawrskjghzlicda,执行p为注意:源程序存放在考生文件夹下的BLANK1.C。(1)t=i(2)i(3)'\0'或填空1:取出字符串中下标为奇数的字符,所以将下标i间变量t填空2:此处for下标为奇数的元素进行排序操作,所以循环变量初值应填入j=i+2。填空3:将下标为奇数的字符取出后,存入p所指的数组中,最后记在数组最后加入字符串结于指定的数(参数num)为止: ┄┄≈1-┄┄+┄┄-┄┄+ 例如行后入0.0001,序输出3.1414。main得更最后一项的绝对值小于给定参数,因此循环条件应当是while(fabs(t)>=num)。"/"请编写一个函数voidfunchara[],charb[],intn),其功能是:删除一个字符串中指定下标的字符。其中a字符后的字符串存放在b中,n标例如,输入一个字符串World,然后输入3,则调用该函数后的结果为Word。注意:部分源程序在文件PROG1.C。改动主函数main其它函数中的任何内容,仅在函数funvoidfun(chara[],charb[],int{inti,k=0; /*将不是指定下标的字符存入数组b*/b[k]='\0';/*在字符串最后加上结束标识}是if(i!=n)。字符串最后记加上字符串结束标识'\0'。27给定程序中,函数fun在形参s与参数c例如,s:baacda,ca,执行后s为:baaaacdaa。注意:源程序存放在考生文件夹下的BLANK1.C。(1)'\0'(2)0(3)填空1:for否为'\0'。填空2:whilen值为0。填空3:题目要求如果找到与参数c相同的字符,就在后面一个相同的字符,所以找到后,应该给数组元素赋值,该题目给出参数为c。在主函数中从键盘输入若干个数放入数组中0束输入并放在最后一个元素中。给定程MODI1.Cfun包括0)。注意:不要改动main或删(1)doublesum=0.0;C是"/"。 S=1+──+───+...+ 例如:若n值为11:1.833333注意:部分源程序在文件PROG1.C。改动主函数main其它函数中的任何内容funfloatfun(int{inti,s1=0;floats=0.0; }return}句本题中表达式的规律是1+2+…+n的倒数之和,那么可以通过for循环语句来实现第1项到第n项for程。个整型,所以在s=s+1.0/s1不能把1.01。28给定程序中,函数funN×N根据给定的m(m<=N)值,将每行元素中的值均右移m边置为0。例如,N=3,m=2,有下列矩阵123456789001004007注意:源程序存放在考生文件夹下的BLANK1.C。(1)i++(2)m填空1:循环语句中,循环变量i量为1填空2:将每行元素中的值均右移m所以数组元素的下标是t[i][j+m]。填空3for素置0作,所以j围是0到m。给定程序MODI1.Cfunhigh内最大的10和。high值由主函数传给fun数。若high100,值为732注意:不要改动mainwhile((high>=2)&&yes=0;while简单的程序语法错误,没有加分号。编写函数fun,它的功能是:利用以下所示的简单迭代方法求方程:cos(x)-x=0的一个实根。(1)取x1初值为(2)x0x1,把x1(3)x1cos(x0),求出一个新的x0x10.000001,执行步骤(5),否则执所求x1方程cos(x)-x=0。程序将输出结果Root=0.739086。注意在文件PROG1.C改动主函数maindouble{doublex0,x1;{returnx1;}29123456789312645978注意:源程序存放在考生文件夹下的BLANK1.C(1)N(2)N-1(3)本题考查:forN×N填空1:因为是N×N第一个for界限N。填空2:此行语句将移出矩阵的元素暂存,移出矩阵的元素的列下标为N-1,因此填入N-10下列给定程序中函数funN项和SN,直到SN+1的值大于q为止q的值通过形参传入例如,若q的值为50.0,则函数值应为49.394948。注意:部分源程序在文件MODI1.C中,例如,若q50.049.394948。注意:不要改动main(1)s=s(2)return(2)观察whiles是大于q的值,所以应该返回变量t。编写函数fun,它的功能是:求Fibonacci中大于t其中Fibonacci列F(n)的定义为:例如:当t1000:1597。注意:部分源程序在文件PROG1.C。改动主函数main其它函数中的任何内容funintfun(int{intf0=0,f1=1,f;do{f=f0+f1;f0=f1;f1=f}while(f<t);returnf;}f看成是前两项之和,而f0始终代表第n-2项,f1代表第n-1项。退出循环时得到的数f,就是大于指30给定程序中,函数fun的功能是:有N×N矩阵,将矩阵的元素顺时针旋转。操作顺序是:首先将第一行元素的值存入临时数组r,然后使第一列成为第一行,最后一行成为第一列,最后一列成为最后一123456789 注意:源程序存放在考生文件夹下的BLANK1.C。(1)0(2)j--第一行,因此填入0。填空2:for变量jN-1减到0,因此j自减1。填空3:最后将临时数组r矩阵最后一列。给定程序MODI1.Cfun的功能是:计S=f(-n)+f(-n+1)+…+f(0)+f(1)+f(2)+…+的值。例如,当n5为:10.407143。f(x)函数定义如下 x>0且x≠2f(x)=┤0 x=0或x=2 注意:不要改动main(1)doublef(double(2)returns一处错误在于未定义函数f(doublex)的类型,因为返回值类型为double在C语言中可调用log(n)函数求ln(n)。log函数的说明是:doublelog(doublex)。例如,若m20,fun6.506583。注意:部分源程序在文件PROG1.C。改动主函数main其它函数中的任何内容fun fun(intm{inti;doubles=0.0;s=s+log(i);/*计算s=ln(1)+ln(2)+ln(3)+…+ln(m)*/returnsqrt(s); /*对s求平方根并返回*/}31给定程序中,函数fun能是:有N×N对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为0。例如,若N=3,有下列矩阵:1234567891006509注意:源程序存放在考生文件夹下的BLANK1.C(1)[N](2)t[i][j](3)填空2:根据题意可知,对称元素相加的和存放在左下三角元素中,那么应填入的是t[i][j]。填空30,应填入t[j][i]。给定程序MODI1.C函数fun函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。其中x和y,z和y例如,当x值为9、y值为11、z15函数值为3.50。注意:不要改动main(1)#defineFU(m,n)(2)return本题考查C:#define符串,中间要用空格分开。在该题中,标识规定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串中的前导*号全A*BC*DEF*G****。在编写函数时,不得使用C字符串函数。注意:部分源程序在文件PROG1.C。改动主函数mainfunvoidfun(char*a{charwhile(*p=='*')p++; /*指针p*/ }voidfun(char*a){charwhile(*p=='*')p++;}第32试给定程序中,函数fun能是:将N×N线元素中的值与反向对角线对应位置上元素中的值进行交换。例如,若N=3,有下列矩阵:123456789321456987注意:源程序存放在考生文件夹下的BLANK1.C(1)t[][N](2)i=0;i<N(3)填空1:根据main填写fun填空2:由于是N×N所以for语句中循环变量i范围是0到N。填空3:for由N个有序整数组成的数列已放在一维数组中,给定程序MODI1.C中函数fun的功能是:利用折半查找算法查找整数m下标值;反之,返回-1。与中间位置(mid)中元素的值进行比较。如果m落在中间位置之后的元素中;反之,下一次的查找范围落在中间位置之前的元素中。直到low>high,查找结注意:不要改动main(1)intfun(inta[],intm)或fun(inta[],int(2)else(1)fun(inta[],intm)函数的返回值为int能是void,而是int。这里int认为int。(2)elseIf(ma[mid])中,关键字if。容应当是:ABCDEFG*******。注意在文件PROG1.C改动主函数mainfun填voidfun(char*a,char*p{char*t=a;}本题用两个循环语句来实现。第1将指针p有非*号的字符保留下来,即删除指针p的*号。第2p有*号保留下来。最后在新串的结尾33函数值返回。注意:要求先累加主对角线元素中的值,然后累加反向对角线元素中的值。例如,若N=3,123456789注意:源程序存放在考生文件夹下的BLANK1.C(1)sum=0(2)t[i][i](3)填空1:变量sum用来"和"结果,所以将其初始化为0填空2:从题目中我们可以了解到,主对角线元素的行和列下标是相同的,所以应填入t[i][i]。填空3:对于反向对角线元素的行和列的下标,它们的关系是相加和为n-1,所以应填入1。下列给定程序中函数fun和funx的功能是:用二分法求方程的一个根,并要求绝对误差不超过0.001。例如,若给m输入-100,n输入902.000。注意:部分源程序在文件MODI1.C中,(1)doubler(2)while(fabs(n-m)(1)程序中我们会发现r=(m+n)/2,而mn是double变量r义为double。(2)绝对误差不超过0.001,所以循环条件应为fabs(n-m)>0.001。假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是母。在编写函数时,不得使用C****ABCDEFG********C注意:部分源程序在文件PROG1.C。改动主函数main其它函数中的任何内容funvoidfun(char*a,char*h,char*p{intchar*q=a;{a[i]=*q;q++;i++;}{ } a[i]=*q;i++;}343、6、5、8、7,删除偶数后a9、1、3、5、7,返回值为5。注意:源程序存放在考生文件夹下的BLANK1.C。(1)1(2)j++数,如果元素不能被2填入if(a[i]%2==1)。填空2:将为奇数的元素重新存放到数组的前面,同时下标增1。填空3:函数返回值需要返回数组中奇数的个数,因此返回变量j。num1num2输入4921,则输出的最大公约数为7;若给num1num2注意:不要改动main(2)return(b);或returnb;求最大公约数算法一般采用辗转相除法。辗转相除法的算法为:首先将m以n(m>n)得余数r,再用余数r到余数为0数就是mn程序首先判断参数a和b如果a<b这里是一个数学逻辑错误,应先将a赋给中间变量t,再将ba,最后将tbr0除数b所以函数应返回b。在编写函数时,不得使用C注意在文件PROG1.C改动主函数mainfunvoidfun(char*a{inti,j=0; }用循环操作从字符串的开始往后逐个进行比较,若不是要删除的字符(用if(a[i]!=′*′)来控制)则保留。变量ij除*号后新字符串的下标。注意下标变量j从0始,353、6、5、8、7,删除奇数后a4、2、6、8,返回值为4。注意:源程序存放在考生文件夹下的BLANK1.C。(1)a[i]%2(2)a[j](3)填空1:if语句条件表达式,判断数组元素是否为偶数2求余,结果为0,则为偶数;结果为1则填空3:最后按要求将偶数个数通过return语句返回给main函数。给定程序MODI1.C函数fun公式┌ └fun(n- 例如,当给n入5数值为18;当给n入3值为14。注意:不要改动main(1)intfun(int(2)if义为int型。(2)if条件判断表达式中,n=1是赋值表达式,表达式的值为真,不能形成判断条件,应将改为n==1假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:使字符串中尾部的*号不得多于n;若多于n*号;若少于或等于n不做面的*号函数中输入。在编写函数时,不得使用C串函数。提示:建议从字符串尾统计*的个数。注意在文件PROG1.C改动主函数main其它函数中的任何内容funvoidfun(char*a,intn{inti=0,k=0;char*p,*t;{a[i]=*p;}}字符串中尾部*号不能多于n个,多余的要删除。首先需要通过while循环统计字符串尾部*号,然后通过if条件语句完成尾部*号数和n*号数多于nn个*号和其余字符重新保留。36函数fun的功能是:把形参a所指数组中的最小值放在元素a[0]中,接着把形参a所指数组中的最大值放在a[1]元素中;再把a所指数组元素中的次小值放在a[2]中,把a所指数组元素中的次大值放在移动后,数据排列为:1、9、2、8、3、7、4、6、5。形参n存放a注意:规定fun数中的max值,px(1)a[i](2)a[j](3)填空1:for元素a[i]赋值给变量max变量min填空2:通过一次for最大值,if句的条件表达式是max<a[j]。填空3if式是min>a[j]。给定程序MODI1.C中函数fun的功能是:用递归算法计算斐契数列中第n项的值。从第1项例如,若给n输入7,该项的斐契数值为:13。注意:不要改动main(2)case1:case2:returnC言中,switch并且case某学生的记录由学号、8平均8请编写函数fun,它的功能是:求出该学生的平均分放在记录ave注意:部分源程序在文件PROG1.C。改动主函数mainfunvoidfun(STREC{inta->ave=a->ave+a->s[i];/*求各门成绩的总和*/ }本题考查自定义形参的相关知识点,程序流程是这样的:在fun()函数中求出平均分后,返回到主函数时平均分也要带回,所以只能定义一个指针类型的形参STREC*a,此时,成员的方式可以使用指向运算符,即a->ave和a->s[i],当然也可用(*a).ave(*a).s[i]。37函数funa放在a[0]中,接着求出a值放在a[1]中;再把a值放在a[2a值放在a[3]中;其余以此类推。例如:若a1、4、2、3、9、6、5、8、7,则按规则移动后,数据排列为:9、1、8、2、7、3、6、4、5。形参n中存放a数。注意:源程序存放在考生文件夹下的BLANK1.C。 a[](2)2(3)本题考查:函数定义for句填空1main填空2:for值为2。填空3:确定for给定程序MODI1.C中函数fun的功能是:按顺序给s所指数组中的元素赋予从2开始的偶数,然后再按顺序对每五个元素求一个平均值,并将这些值依次存放在ws的个数不是5计。例如,s14只对前10后的4。注意:不要改动main(1)变量sum误(2)循环条件if(i+1%5==0i+1,再对5。学生的记录由学号和成绩组成,N生的数据已在主函数中放入结构体数组s,请编写函数注意在文件PROG1.C改动主函数main其它函数中的任何内容fundoublefun(STREC*a,STREC*b,int*n{inti,j=0;doubleav=0.0; if(a[i].s<av)b[j++]=a[i];/*将低于平均值的学生记录存入结构体b returnav; }本题使用循环语句和条件判断语句来实现,第1句的作用是求出总分,然后求出平均分av。2b。38函数funa元素中的值和后半部分元素中的值对换。形注意:源程序存放在考生文件夹下的BLANK1.C。(1)1(2)i(3)a[p+i]或填空2填空3:这里是一个比较常见的数组位置调换程序,应填入ia[p+i]。给定程序MODI1.C函数fun输入3a在c间的放在b中。例如,输入的数为:5512输出结果应当是:a=55.0b=34.0c=12.0。注意:不要改动mainfloatif(*a<观察程序中的k,在赋值语句中,kk此处if小于*c放入*cif(*a*c)。学生的记录由学号和成绩组成,N生的数据已在主函数中放入结构体数组s,请编写函数fun,它的功能是:把分数最高的学生数据放在b函注意在文件PROG1.C改动主函数main其它函数中的任何内容funintfun(STREC*a,STREC*b{intif(max<a[i].s)max=a[i].s; /*找出成绩与max相等的学生的记录,存入结构体b中*/returnj; }该程序使用两个循环判断语句,第1用是找出最大值。第2用是找出与max成绩(即最高成绩)的学生记录,并存入b。396、7、8、9,则逆置后依次为:9、8、7、6、5、4、3、2、1。形参n。注意:源程序存放在考生文件夹下的BLANK1.C(1)n/2(2)i(3)a[n-i-1]或a[n-1-填空1:逆置数组元素中的值,将a[0]与a[n-1]对换位置,依此类推,那么需要对换n/2次。填空2:将a[0]与a[n-1]对换位置,a[1]与a[n-2]对换位置,依次类推,则a[i]=a[n-1-i]。填空3:普通的调换位置程序,显然填入a[n-i-1]。给定程序MODI1.C函数fun进制数字字符组成的字符串转换为与其面值相等的十进制整数。规定输入的字符串最多只能包含5八进制数字字符。注意:不要改动mainn=*p-减去字符'0ASCIIo",不是"0"。乘以8数。Ns中,请编写函数stcmp,stcmpa,)当a和b0注意在文件PROG1.C改动主函数main其它函数中的任何内容funSTRECfun(STREC*a,char*b{int }

return 本程序一开始先使结构体变量str1号,并判断是否有学号与b同(即找到),若找到则给str(str=a[i]),若没找到则str40函数fun形参ch符'0'~'9',则'0'转换成'9','1'注意:源程序存放在考生文件夹下的BLANK1.C。(1)char(2)ch<='9'填空1:函数定义时,类型标识符指明了本函数的类型,函数的类型实际上是函数返回值的类型,所以此处应该填入char。填空2:通过if'0',同时小于等于字填空3:return应填入return'9'(ch-'0')。给定程序MODI1.C中函数fun的功能是:将p所指字符串中的所有字符到b中,要求每例如,在调用funa符串:ABCDEFGHIJKb容则为:ABCDEFGHIJK。注意:不要改动mainb[k]='k++;或b[k+题目中p因此给b[k]赋值时出现错误题目要求赋值3先给b[k]赋值空格,然后变量k加1。例如,若学生的成绩是:85,76,69,85,91,72,64,87,是:78.625。注意:部分源程序在文件PROG1.C。改动主函数main其它函数中的任何内容fundoublefun(STREC*h{doubleave=0.0;STREC*p=h->next;{ave=ave+p->s;}return}对和求平均分。遍历链表时应定义一个指向结点的指针p,因为"头结点"中没有数值,所以程序中让p接指向"头结点"的下一个结点,使用语句STREC*p=h->next。41注意:源程序存放在考生文件夹下的BLANK1.C。(1)&&(2)'A'填空1:if判断ch写&&。填空2:大写转换小写,大写转小写ASCII+32,因此本空应填'A'。填空3:按题意若是其他字符则保持不变,并返回。此空要表达的就是既不是大写字母也不是小写字母,因而此空应该填写ch。给定程序MODI1.Cfun维数组a4数出。例如输入1、2、3、4,程序运行后将输出以下方阵。412341234123请改正函数fun误的结果注意要改动main数行结构voidfun(int*a)每次循环都将最后一个元素取出,使前面的元素向后移动一位,因此为a[j]=a[j-1];。fun,是:计算并输出给定整数n1n身)之和。规定n大于1000。例如,在主函数中从键盘给n的值为856为:sum=763。注意:部分源程序在文件PROG1.C。改动主函数main在函数funintfun(int{int /*将n1*/returns;}本程序的实现步骤为:首先遍历从2~n-1出能被n42函数fun的前n。若x=2.5,n=15:1.917914注意:源程序存放在考生文件夹下的BLANK1.C。(1)1.0(2)-1填空1:在这里要给f式可知此空应该填1.0。填空2:在计算的过程中正负号是交错的,因而此空填写-1。填空3:本题考查了复合赋值运算,由本题求表达式f(x)的值可知此空应该填写t。给定程序MODI1.C函数fun3,56取出8一该是15i值j数,k请改正函数fun误的结果注意要改动main数行结构红球数i总数为3,因为组合中必须有红球,所以i不能为0请编写函数fun,出下列多项式的值例如,在主函数中从键盘给n入15,:s=2.718282。注意:要求n大于1不大于100。部分源程序在文件PROG1.C改动主函数mainfundoublefun(int{doublet,sn=1.0;inti,j;{}return}在程序中输入n以前n由于t浮点型数据语句s=1.0/t;。for环将1.0/tsn存入sn。第43套上机操作试题函数fun注意:源程序存放在考生文件夹下的BLANK1.C。(1)x(2)n填空1填空2:f值为1.0+x,do...whilet,第一次循环时应为-x2/2,因此空1应为x,空2应为n。给定程序MODI1.C函数fun整数xy方的低3整数56方15625,此值的低3值为625请改正函数fun误的结果注意要改动main数行结构先用简单的思路理解一下该程序,如果当x=y=1程序的问题就很简单了,所以for的循环条件应该是for(i=1;i<=y;i++)。另外,t=t/1000;中的错误是了"/"和"%"的定义,这样的细节问题出现,请考生务必引起注意。例如,若主函数从键盘给x输入0.21后,则输出为S=1.100000。注意:部分源程序在文件PROG1.C中。改动主函数main在函fun的花括号中填入你编写的若干语句。例如,在主函数中从键盘给x入0.21s=1.100000。注意在文件PROG1.C改动主函数mainfundoublefun(double{doubles1=1.0,p=1.0,sum=0.0,s0,t=1.0;intn=1;{returnsum;}件为fabs(s1-s0)>=le-6。44函数fun的前n。若x=2.5,函数值为:12.182340注意:源程序存放在考生文件夹下的BLANK1.C。(1)1.0(2)1填空1doublet从for道,tt初1填空2:考查forf(x)的前n应从1n-11填空3:t用来存放每次循环增量,分析公式可知,后一项总是一项的基础上乘以一个,因此此空应填i。给定程序MODI1.C函数fun出100n(不大于1000)之间三位数字相等的所有整数,把这些整数放在s中,个数作为函数值返回。请改正函数fun误的结果注意要改动main数行结构(1)i因为i所以将ik(2)c。请编写函数fun,给定10差为s=11.730729。注意:部分源程序在文件PROG1.C改动主函数mainfundoublefun(double{doublex1=0.0,s=0.0;inti; /*求10*/return /*求10差}来求出平均值。第2加和的平方根返回,注意sqrt45注意:部分源程序在文件BLANK1.C中(1)x(2)n填空1:通过下面的语句可以知道n是从2开始的,而根据题目的要求是从1+x开始的,因而此空应填写x。填空2:由于本题用的是do…while,先循环后来判断,因此本空应该填写n。填空3:根据题目要求和复合赋值运算可知此空应填t。给定程序MODI1.C函数funn5方的值(规定n值大于2、小于8),通过形参指针传回主函数;并计算该值的个位、十位、百位上数字之和例如,75方是16807,其低3和值是15请改正函数fun误的结果注意要改动main数行结构d=1; 此处属于逻辑错误,假如d=0,则d=d*n就不能计算n5次方,应将d初始化为1for循环中,如果s=1,就改变了d的个位数的值sd是n5次方的值,每循环一次d除以10,用来求十位、百位请编写函数fun,出给定数组(长度9)中每相邻两个例如组中的9次为12.0、34.0、4.0、23.0、34.0、45.0、18.0、3.0、11.0,输出应为:s=35.951014。注意:部分源程序在文件PROG1.C改动主函数main在函数fundoublefun(double{doublesum=0.0;inti,j=1;{}return}46函数fun于等于n(n>2)的素数的个数,素数的个数作为函数值返回。果注意:源程序存放在考生文件夹下的BLANK1.C(1)j=2(2)i填空2:如果碰到有个数字ji那么表示这个数不是素数,要用break这个时候的ji。这样可以知道该数字i请改正函数fun误的结果注意要改动main数行结构将变量sumj赋值为0这里了"=="与"="的区别,"=="是比较运算符,"="是赋值运算符。请编写函数fun,出下列多项式的值例如,在主函数中从键盘给n入8s=0.662872。注意:要求n大于1不大于100。部分源程序在文件PROG1.C改动主函数mainfun句doublefun(int{intdoubles=0.0;s=s+(1.0/(2*i-1)-1.0/(2*i)*计算S=(1-1/2)+(1/3-1/4)+(1/(2n-1)-1/2n)*/returns;}1/(2n-1)-1/2n,循环变量的取值范围为1~n。注意,存放累加和的变量s进47函数funn数字1、2、3局)变c1,c2,c3当n=123114350为:c1=3c2=1c3=2注意:源程序存放在考生文件夹下的BLANK1.C。(1)n%10(2)break(3)填空1:要统计长整数n的各个位上出现数字1、2、3的次数,就需要判断各个位上的数是多少。通过n除以10求余,可得到个位上的数,所以填入n%10。填空2和填空3:switch语句是多分支选择语句,在每个分支中要加入break,不然会依次执行后面的分支。continue语句的作用是结束当前分支的运行,而break语句的作用是结束整个switch语句的运行。给定程序MODI1.C函数fun符号整数中各位数字值为零的个数形参传回主函数;并把该整数中各位上最大的数字值作为函数值整数30800,则数字值为零的个数

温馨提示

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

评论

0/150

提交评论