版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C上机试题库一、20XX年4月/*程序修改题1给定程序MODI1.C中函数fun的功能是:先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线元素之和。请改正函数fun中的错误或在横线处填上适当的内容并把横线删除,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!*/#includeintfun(){inta[3][3],sum;inti,j;/*********found**********/sum=0;//;for(i=0;i<3;i++){for(j=0;j<3;j++)/*********found**********/scanf("%d",&a[i][j]);//scanf("%d",a[i][j]);}for(i=0;i<3;i++)sum=sum+a[i][i];printf("Sum=%d\n",sum);}main(){fun();}/*编程题编写程序,实现矩阵(3行3列)的转置(即行列互换)例0,输入下面的矩阵:100200300400500600700800900程序输出:100400700200500800300600900注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。*/#include#includeintfun(intarray[3][3]){//inti,j,t;for(i=0;i<3;i++)for(j=0;j<i;j++){t=array[i][j];array[i][j]=array[j][i];array[j][i]=t;}//}main(){inti,j;intarray[3][3]={{100,200,300},{400,500,600},{700,800,900}};clrscr();for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%7d",array[i][j]);printf("\n");}fun(array);printf("Convertedarray:\n");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%7d",array[i][j]);printf("\n");}NONO();}NONO(){/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/inti,j,array[3][3];FILE*rf,*wf;rf=fopen("b0103.in","r");wf=fopen("b0103.out","w");for(i=0;i<3;i++)for(j=0;j<3;j++)fscanf(rf,"%d",&array[i][j]);fun(array);for(i=0;i<3;i++){for(j=0;j<3;j++)fprintf(wf,"%7d",array[i][j]);fprintf(wf,"\n");}fclose(rf);fclose(wf);}/*程序修改题2给定程序MODI1.C中函数fun的功能是:将从键盘上输入的每个单词的第一个字母转换为大写字母,输入时各单词必须用空格隔开,用'.'结束输入。请改正程序中的错误,使程序能输出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!****老王注:本类有输出结果的程序修改题,在评分时先看结果,0果****结果正确,则直接给分;结果不正确或无结果,再一个错****一个错评分。此法并不适用所有类似题。*/#includeintfun(char*c,intstatus){/***********found**********/if(*c=='')return1;//if(c=='')return1;else{if(status&&*c<='z'&&*c>='a')/***********found**********/逵书破互卷___下笔力逵书破互卷___下笔力0有注电/*/*G02.OUT内容:*c+='A'-'a';//c+='A'-'a';return0;}}main(){intflag=1;charch;printf("请输入一字符串,用点号结束输入!3");do{ch=getchar();flag=fun(&ch,flag);putchar(ch);}while(ch!='.');printf("\n");NONO();}NONO(){/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/chars1[81],ch;inti,flag=1;FILE*rf,*wf;rf=fopen("g02.in","r");wf=fopen("g02.out","w");fgets(s1,80,rf);for(i=0;i<strlen(s1);i++){ch=s1[i];flag=fun(&ch,flag);s1[i]=ch;}fprintf(wf,"%s",s1);fclose(rf);fclose(wf);}/*G02.IN内容:keysinindexesallowyouquickaccesstospecificrecordsanddefine*/逵书破互卷___下笔力逵书破互卷___下笔力0有注电KeysInIndexesAllowYouQuickAccessToSpecificRecordsAndDefine*//*编程题程序的功能是:把20个随机数存入一个数组,然后输出该数组中的最小值。其中确定最小值的下标的操作在fun函数中实现,请给出该函数的定义。注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。*//*老王注:本题考生可以一字不动,只要按Ctrl+F9运行一下,即可得38分,费去m牛n虎之力正确编程,不过多得2分而已!*/#include#include#defineVSIZE20intvector[VSIZE];intfun(intlist[],intsize){//inti,min=0;for(i=1;i<size;i++)if(list[min]>list[i])min=i;returnmin;//}main(){inti;clrscr();for(i=0;i{vector[i]=rand();printf("Vector[%d]=%6d\n",i,vector[i]);}i=fun(vector,VSIZE);printf("\nMininum:Vector[%d]=%6d\n",i,vector[i]);NONO();}NONO()/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/{inti;FILE*fp;fp=fopen("b0203.out","w");for(i=0;ii=fun(vector,VSIZE);fprintf(fp,"%d\n",vector[i]);fclose(fp);}/*b0203.out内容:34613010982109011656711717595641522948311269004145583571228791849213605412267212246325047130*/程序修改题3code:/*给定程序MODI1.C中函数fun的功能是:计算整数n的阶乘。请改正程序中的错误或在横线处填上适当的内容并把横线删除,使它能计算出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!*/#include"stdio.h"doublefun(intn){doubleresult=1.0;while(n>1&&n<170)/*********found*********/result*=n--;//result*=--n;/*********found*********/returnresult;//return;}main(){intn;clrscr();printf("Enteraninteger:");scanf("%d",&n);printf("\n\n%d!=%lg\n\n",n,fun(n));NONO();}NONO(){/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/intn,i;FILE*rf,*wf;rf=fopen("g03.in","r");wf=fopen("g03.out","w");for(i=1;i<=10;i++){fscanf(rf,"%d",&n);fprintf(wf,"%lg\n",fun(n));}fclose(rf);fclose(wf);}/*g03.in文件内容0下:58116153118232937*//*g03.out文件内容0下:120403203.99168e+077201.30767e+128.22284e+336.40237e+152.5852e+228.84176e+301.37638e+43*/编程题code:/*编写函数fun,函数的功能是:从字符串中删除指定的字符。同一字母的大、小写按不同字符处理。若程序执行时输入字符串为:turbocandborlandc++从键盘上输入字符:n,则输出后变为:turbocadborladc++0果输入的字符在字符串中不存在,则字符串照原样输出。注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。*/#include#includeintfun(chars[],intc){//char*q=s;for(;*q;q++)if(*q!=c)*(s++)=*q;*s=0;//}main(){staticcharstr[]="turbocandborlandc++";charch;clrscr();printf("原始字符串:%s\n",str);printf("输入一个字符:");scanf("%c",&ch);fun(str,ch);printf("str[]=%s\n",str);NONO();}NONO(){/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/FILE*rf,*wf;chars[81],ch,w;intlen;rf=fopen("b0303.in","r");wf=fopen("b0303.out","w");fgets(s,80,rf);fscanf(rf,"%c",&ch);len=strlen(s)-1;w=s[len];if(w=='\n'||w==0x1a)s[len]=0;fun(s,ch);fprintf(wf,"%s",s);fclose(rf);fclose(wf);}/*b0303.in文件内容0下:Youcanspecifythattheprimaryindexisinrecordnumbersequence.t*//*b0303.out文件内容0下:Youcanspecifyhaheprimaryindexisinrecordnumbersequence.*/二、20XX年9月*程序修改题13给定程序MODI1.C中函数fun的功能是:将字符串中的内容按逆序输出,但不改变字符串中的内容。例如,若字符串为abcd,则应输出:dcba。请改正程序中的错误,使它能计算出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!*/#include/************found************/fun(char*a)//fun(chara){if(*a){fun(a+1);/************found************/printf("%c",*a);//printf("%c"*a);}}main(){chars[10]="abcd";printf("处理前字符串=%s\n处理后字符串=",s);fun(s);printf("\n");}/*编程题请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。例如,输入beijingshanghai(为回车键),函数将返回shanghai。注意:部分源程序存在文件PROG1.C文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。*/#includechar*fun(char*s,char*t){//char*ss=s,*tt=t;while((*ss)&&(*tt)){ss++;tt++;}if(*tt)return(t);elsereturn(s);//}main(){chara[20],b[10],*p,*q;inti;printf("Input1thstring:");gets(a);printf("Input2thstring:");gets(b);printf("%s\n",fun(a,b));NONO();}NONO(){/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE*fp,*wf;inti;chara[20],b[20];fp=fopen("bc03.in","r");if(fp==NULL){printf("数据文件bc03.in不存在!");return;}wf=fopen("bc03.out","w");for(i=0;i<10;i++){fscanf(fp,"%s%s",a,b);fprintf(wf,"%s\n",fun(a,b));}fclose(fp);fclose(wf);}/*bc03.in内容0下:alskdffdslkfjdsdksfjfdssddjkfdfsdlkfjdslksdjflksdflkdsjflksdjffslkdjffsdljfsdlkffflsdjkfsdklfadfslkjflsjfslkdflksjflksdfjknlfksdnlkjfsfsfsfsd*//*bc03.out内容应当0下:fdslkfjdsdksfjfsdlkfjdslksdjflksdfslkdjffsdlkfffsdklfadflsjfslkdflksjflksdfjkfsfsfsd*//*程序修改题49代码:/*给定程序MODI1.C中fun函数的功能是:判断两个指针所指存储单元中的值的符号是否相同;若相同函数返回1,否则返回0。这两个存储单元中的值都不为0。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!*/#include#include/**********found**********/fun(double*a,double*b)//fun(double*a,*b){/**********found**********/if(*a**b>0.0)//if(a*b>0.0)return1;elsereturn0;}main(){doublen,m;clrscr();printf("Entern,m:");scanf("%lf%lf",&n,&m);printf("\nThevalueoffunctionis:%d\n",fun(&n,&m));NONO();}NONO(){/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/inti;doublen,m;FILE*rf,*wf;rf=fopen("gc8.in","r");wf=fopen("gc8.out","w");for(i=0;i<10;i++){fscanf(rf,"%lf%lf",&n,&m);fprintf(wf,"%d\n",fun(&n,&m));}fclose(rf);fclose(wf);}/*gc8.in内容0下:-22.99361284.57629812101.434234-999.888432-454.78678-987.785678667987.7989897878.564564564-47238.31231287212.212121-8989.34243457899.98978972121.212121-6767.2121298-4324.5454-32132.3232899.98983127878.23121221210.2121-12332.2332*//*正确程序生成的gc8.out内容0下:0011000110*//*编程题请编一个函数fun(int*a,intn,int*odd,int*even),函数的功能是分别求出数组中所有奇数之和以及所有偶数之和。形参n给出数组中数据的个数;利用指针odd返回奇数之和,利用指针even返回偶数之和。例0:数组中的值依次为:1,9,2,3,11,6;则利用指针odd返回奇数之和24;利用指针even返回偶数之和8。注意:部分源程序存在文件PROG1.C文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。*/#include#include#defineN20fun(int*a,intn,int*odd,int*even){//inti;*odd=0;*even=0;for(i=0;iif(a[i]%2)*odd+=a[i];else*even+=a[i];//}main(){inta[N]={1,9,2,3,11,6},i,n=6,odd,even;clrscr();printf("Theoriginaldatais:\n");for(i=0;i<n;i++)printf("%5d",*(a+i));printf("\n\n");fun(a,n,&odd,&even);printf("Thesumofoddnumbers:%d\n",odd);printf("Thesumofevennumbers:%d\n",even);NONO();}NONO(){/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/inti,j,odd,even,n,a[N];FILE*rf,*wf;rf=fopen("bc7.in","r");wf=fopen("bc7.out","w");for(i=0;i<10;i++){fscanf(rf,"%d",&n);for(j=0;j<n;j++)fscanf(rf,"%d",a+j);fun(a,n,&odd,&even);fprintf(wf,"odd=%d,even=%d\n",odd,even);}fclose(rf);fclose(wf);}/*bc7.in内容0下:5121314151671012011002003277113128910161012013014015016014200202204206789999978076289010178681018710289101697891999389910290149019021001888101012018992028961098991098566846*//*正确程序生成的bc7.out内容0下:odd=28,even=42odd=390,even=332odd=190,even=12odd=2106,even=0odd=0,even=812odd=1999,even=3218odd=2965,even=102odd=1800,even=102odd=1902,even=1790odd=2209,even=3608*//*程序修改题50代码:/*给定程序MODI1.C中函数fun的功能是:判断字符ch是否与str所指串中的某个字符相同;若相同,什么也不做,若不同,则将其插在串的最后。请改正程序中的错误,使它能进行正确的操作。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!*/#include#include#include/**********found**********/voidfun(char*str,charch)//voidfun(charstr,charch){while(*str&&*str!=ch)str++;/**********found**********/if(*str=='\0')//if(*str==ch){str[0]=ch;/**********found**********/str[1]='\0';//str[1]='0';}}main(){chars[81],c;clrscr();printf("\nPleaseenterastring:\n");gets(s);printf("\nPleaseenterthecharactertosearch:");c=getchar();fun(s,c);printf("\nTheresultis%s\n",s);NONO();}NONO(){/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/inti;chars[81],t[81],c;FILE*rf,*wf;rf=fopen("gc9.in","r");wf=fopen("gc9.out","w");for(i=0;i<10;i++){fscanf(rf,"%s%s",s,t);c=t[0];fun(s,c);fprintf(wf,"%s\n",s);}fclose(rf);fclose(wf);}/*文本文件gc9.in内容0下:fhdjskfhdstierwtmfvnsdkgsdjkweitrgfzfaskdfjsdffjfsdfjkdfkjfkdsklfjkfjsdkfjsdklffsdjkfhsdjkfsdjkfhweiotrweufmewredfhsdfdfjkdsfsrweiotewiotueldmfdsfjksdhsdffdshfdsjkfkjdskf9fsdfhsdjkfdsfjkwerdsfdmsdfjkdafjsdkfjsdkfksdljfdksltrwt6fsdjkfhsdjkfsdkffksdjnfdskfhsdjkfhjsdkhfdudrnmcvmgsjkgfxsjfhsdjkfhsdjfhfjdhsjkfhsdjm*//*程序全部修改正确生成的gc9.out内容0下:fhdjskfhdstierwtmfvnsdkgsdjkweitrgfzfaskdfjsdffjfsdfjkdfkjfkdsklfjkfjsdkfjsdklfsdjkfhsdjkfsdjkfhweiotrweufmewrefhsdfdfjkdsfsrweiotewiotueldmfdsfjksdhsdffdshfdsjkfkjdskf9fsdfhsdjkfdsfjkwerdsfdmsdfjkdafjsdkfjsdkfksdljfdksltrwt6fsdjkfhsdjkfsdkffksdjnfdskfhsdjkfhjsdkhfdudrnmcvmgsjkgfxsjfhsdjkfhsdjfhfjdhsjkfhsdjm*//*编程题请编一个函数fun(char*s),函数的功能是把字符串中的内容逆置。例如:字符串中原有的字符串为:abcdefg,则调用该函数后,串中的内容为:gfedcba。注意:部分源程序存在文件PROG1.C文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。*/#include#include#include#defineN81fun(char*s){//strrev(s);//}main(){chara[N];clrscr();printf("Enterastring:");gets(a);printf("Theoriginalstringis:");puts(a);fun(a);printf("\n");printf("Thestringaftermodified:");puts(a);NONO();}NONO(){/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/inti;chara[N];FILE*rf,*wf;rf=fopen("bc8.in","r");wf=fopen("bc8.out","w");for(i=0;i<10;i++){fscanf(rf,"%s",a);fun(a);fprintf(wf,"%s\n",a);}fclose(rf);fclose(wf);}/*文本文件bc8.in内容0下:fjkdshjksdfhjksdfhsdjkfhsdjkfhsdjkfhsdafsdgdfklreiotertresdjklfhsdjkfhsdjkfhjrwerioweruiopfzxcfnweorfjsdkfhsdjkfhsdjkfhsdjkfhsdfdslkfjklfsdkljfsdklfsdfsmfsdfsdjklfsdjfklsdfjsdfjsdkfjsdklfjsdklfjsdkdsfhjsdkhfsdjkfhsdjfhsdjkfsfrweioruwelfsdfknsdr238945fsdkljfdsklfjdskfjsdkjfksdfjdksfjsdkfjsdkfjsdkjfsdkfjsdkfjsdfsdjfklsdfjksdfjsdlkfjsdlkrjeiowpriwpeoriwepxczmcmzxfmifjsfsdlfkfjsdlkfjsdklfjsdkljfsdkfjsdkfjsdklwe9rweiopfjsdcvmsfewiorweiocfsdlkfjsdkljfklsdfjsdklfjsdkljfsdkjfsdklfjsdkljfsdklfjdskfjsdklfjsdklfjsd全国计算机等级考试二级C语言数据由国家教委考试中心承办djashdjasdhjkashdjasdhasjkdhasjkdhasjkdhasjkdhasjkdhasjkdhas*//*正确程序生成的bc8.out文件内容应当0下:ertretoierlkfdgdsfadshfkjdshfkjdshfkjdshfdskjhfdskjhsdkjfdshfkjdshfkjdshfkjdshfkdsjfroewnfcxzfpoiurewoirewrjhfkjdshfkjdshflkjdskdsjflkdsjflkdsjfkdsjfdsjfdslkfjdsflkjdsfdsfmsfdsflkdsfjlkdsflkjfklsdf549832rdsnkfdsflewuroiewrfsfkjdshfjdshfkjdsfhkdsjhfsddsjfkdsjfkdsfjkdsjfkdsjfkdsjfskdjfdskfjkdsjfksdjflksdfjlkdsfsjfimfxzmcmzcxpewiroepwirpwoiejrkldsjfkldsjfdskjfdslkfjdsfcoiewroiwefsmvcdsjfpoiewr9ewlkdsjfkdsjfkdsfjlkdsjflkdsjfkldsjfkfldsfdsjflkdsjflkdsjfksdjflkdsfjlkdsjflkdsfjkdsfjlkdsjflkdsjfdslkfjlkdsjfkldsf毂谐男兄允伎探壹捎薪匝镉C都允伎都鹊阔萍sahdkjsahdkjsahdkjsahdkjsahdkjsahdkjsahdsajdhsakjhdsajdhsajd*/三、/*程序修改题10给定程序MODI1.C中函数fun的功能是:求出a所指数组中最大数和次最大数(规定最大数和次最大数不在a[0]和a[1]中),依次和a[0]、a[1]中的数对调。例如数组中原有的数为:7、10、12、0、3、6、9、11、5、8,输出的结果为:12、11、7、0、3、6、9、10、5、8。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!*/#include#include#defineN20intfun(int*a,intn){intk,m1,m2,max1,max2,t;max1=max2=-32768;m1=m2=0;for(k=0;k<n;k++)if(a[k]>max1){max2=max1;m2=m1;max1=a[k];m1=k;}elseif(a[k]>max2){max2=a[k];m2=k;}/************found************/t=a[0];a[0]=a[m1];a[m1]=t;//t=a[0];a[m1]=a[0];a[m1]=t;/************found************/t=a[1];a[1]=a[m2];a[m2]=t;//t=a[1];a[m2]=a[1];a[m2]=t;}main(){intx,b[N]={7,10,12,0,3,6,9,11,5,8},n=10,i;clrscr();for(i=0;i<n;i++)printf("%d",b[i]);printf("\n");fun(b,n);for(i=0;i<n;i++)printf("%d",b[i]);printf("\n");}/*编程题函数fun的功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和十位上,b数的十位和个位数依次放在c数的百位和千位上。例如,当a=45,b=12。调用该函数后,c=2154。注意:部分源程序存在文件PROG1.C中。数据文件IN1.DAT中的数据不得修改。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。*/#include#includevoidfun(inta,intb,long*c){//*c=a/10+a%10*10+b/10*100+b%10*1000;//}main(){inta,b;longc;clrscr();printf("Inputa,b:");scanf("%d%d",&a,&b);fun(a,b,&c);printf("Theresultis:%ld\n",c);NONO();}NONO(){/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE*rf,*wf;inti,a,b;longc;rf=fopen("in1.dat","r");wf=fopen("bc10.dat","w");for(i=0;i<10;i++){fscanf(rf,"%d,%d",&a,&b);fun(a,b,&c);fprintf(wf,"a=%d,b=%d,c=%ld\n",a,b,c);}fclose(rf);fclose(wf);}/*in1.dat内容如下:45,1263,5414,7888,9171,1312,4572,3229,9934,4322,44*//*bc10.dat内容应当0下:a=45,b=12,c=2154a=63,b=54,c=4536a=14,b=78,c=8741a=88,b=91,c=1988a=71,b=13,c=3117a=12,b=45,c=5421a=72,b=32,c=2327a=29,b=99,c=9992a=34,b=43,c=3443a=22,b=44,c=4422*//*程序修改题11给定程序MODI1.C中函数fun的功能是:计算正整数num的各位上的数字之积。例0,若输入:252,则输出应该是:20。若输入:202,则输出应该是:0。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!*/#include#includelongfun(longnum)/************found************/{longk=1;//{longk;do{k*=num%10;/************found************/num/=10;//num\=10;}while(num);return(k);}main(){longn;clrscr();printf("\Pleaseenteranumber:");scanf("%ld",&n);printf("\n%ld\n",fun(n));}/*请编写一个函数fun,它的功能是:计算n门课程的平均分,计算结果作为函数值返回。例0:若有5门课程的成绩是:90.5,72,80,61.5,55则函数的值为:71.80。注意:部分源程序存在文件PROG1.C文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。*/#includefloatfun(float*a,intn){//inti;floatsum=0;for(i=0;isum+=a[i];return(sum/n);//}main(){floatscore[30]={90.5,72,80,61.5,55},aver;aver=fun(score,5);printf("\nAveragescoreis:%5.2f\n",aver);NONO();}NONO(){/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE*fp,*wf;inti,j;floataver,score[5];fp=fopen("bc01.in","r");if(fp==NULL){printf("数据文件bc01.in不存在!");return;}wf=fopen("bc01.out","w");for(i=0;i<10;i++){for(j=0;j<5;j++)fscanf(fp,"%f,",&score[j]);aver=fun(score,5);fprintf(wf,"%5.2f\n",aver);}fclose(fp);fclose(wf);}/*bc01.in文件内容0下:90.5,72,80,61.5,5598,72.5,78,24.5,7767.5,78,76.5,56,9988,62.5,45,54.5,7178,72.5,55,88.5,7248,82.5,43,94.5,7368,92.5,87,84.5,7477,32.5,57,54.5,7556,42.5,68,67.5,7685,62.5,99,86.5,52*//*bc01.out文件内容应当0下:71.8070.0075.4064.2073.2068.2081.2059.2062.0077.00*//*程序修改题12给定程序MODI1.C中函数fun的功能是:计算n!。例如,给n输入5,则输出120.000000。请改正程序中的错误,使程序能输出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!*/#include#includedoublefun(intn){doubleresult=1.0;/************found************/if(n==0)//ifn==0return1.0;while(n>1&&n<170)/************found************/result*=n--;//result*=n--returnresult;}main(){intn;printf("InputN:");scanf("%d",&n);printf("\n\n%d!=%lf\n\n",n,fun(n));}/*编程题请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例0,若输入字符串"-1234",则函数把它转换为整数值-1234。注意:部分源程序存在文件PROG1.C文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。*/#include#includelongfun(char*p){//longnn=0;intss=1;if((*p)=='-'){p++;ss=-1;}if((*p)=='+')p++;while(*p)nn=nn*10-48+(*p++);return(nn*ss);//}main()/*主函数*/{chars[6];longn;printf("Enterastring:\n");gets(s);n=fun(s);printf("%ld\n",n);NONO();}NONO(){/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE*fp,*wf;inti;chars[20];longn;fp=fopen("bc02.in","r");if(fp==NULL){printf("数据文件bc02.in不存在!");return;}wf=fopen("bc02.out","w");for(i=0;i<10;i++){fscanf(fp,"%s",s);n=fun(s);fprintf(wf,"%ld\n",n);}fclose(fp);fclose(wf);}/*bc02.in内容0下:-123455536546424267764522-53456643-8686-12101*//*bc02.out内容应当0下:-123455536546424267764522-53456643-8686-12101*/20XX年9月计算机等级考试二级C语言上机试题(7、8、9)/*程序修改题7给定程序MODI1.C中函数fun的功能是:将长整型数中每一位上为偶数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为:87653142时,t中的数为:8642。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!*/#include#includevoidfun(longs,long*t){intd;longsl=1;*t=0;while(s>0){d=s%10;/************found************/if(d%2==0)//if(d%2=0){*t=d*sl+*t;sl*=10;}/************found************/s/=10;//s\=10;}}main(){longs,t;clrscr();printf("\nPleaseenters:");scanf("%ld",&s);fun(s,&t);printf("Theresultis:%ld\n",t);}/*编程题函数fun的功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的百位和个位上。例如,当a=45,b=12。调用该函数后,c=5142。注意:部分源程序存在文件PROG1.C中。数据文件IN1.DAT中的数据不得修改。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。*/#include#includevoidfun(inta,intb,long*c){//*c=a/10*10+a%10*1000+b/10*100+b%10;//}main(){inta,b;longc;clrscr();printf("Inputa,b:");scanf("%d%d",&a,&b);fun(a,b,&c);printf("Theresultis:%ld\n",c);NONO();}NONO(){/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE*rf,*wf;inti,a,b;longc;rf=fopen("in1.dat","r");wf=fopen("bc07.dat","w");for(i=0;i<10;i++){fscanf(rf,"%d,%d",&a,&b);fun(a,b,&c);fprintf(wf,"a=%d,b=%d,c=%ld\n",a,b,c);}fclose(rf);fclose(wf);}/*文本文件in1.dat内容0下:45,1263,5414,7888,9171,1312,4572,3229,9934,4322,44*//*输出文件bc07.dat内容应当0下:a=45,b=12,c=5142a=63,b=54,c=3564a=14,b=78,c=4718a=88,b=91,c=8981a=71,b=13,c=1173a=12,b=45,c=2415a=72,b=32,c=2372a=29,b=99,c=9929a=34,b=43,c=4433a=22,b=44,c=2424*//*程序修改题8给定程序MODI1.C中函数fun的功能是:将长整型数中每一位上为偶数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为:87653142时,t中的数为:8642。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!*/#include#
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 鞣制工艺对毛皮抗张强度的影响考核试卷
- 硬皮病抗炎治疗研究-洞察分析
- 语言学校师资队伍建设-洞察分析
- 移动金融创新趋势-洞察分析
- 2024-2025学年广东省佛山市S6高质量发展联盟高二上学期期中联考生物试题(解析版)
- 中国医师协会工作计划
- 中学2025-2025第一学期初中语文教研组工作计划
- 2023-2024学年四川省成都市蓉城名校高二上学期期末联考生物试题(解析版)
- 2023-2024学年山西省运城市高一上学期期末考试生物试题(解析版)
- 系统集成与软件架构-洞察分析
- 心理健康与职业生涯(第一章)课件
- DB-T 29-202-2022 天津市建筑基坑工程技术规程
- DB51∕T 5060-2013 四川省预拌砂浆生产与应用技术规程
- 粤教版三年级劳动与技术全册教案教学设计
- 越努力越幸运商务红色工作汇报PPT模板
- (完整版)外科学名词解释【完整版】
- 永磁同步电机控制系统设计与仿真毕业论文
- 传感器与检测技术课后习题和答案(陈杰)
- 藏历新年ppt模版课件
- 基于PLC的自动门控制系统
- 沪教牛津版小学四年英语上册全册教案
评论
0/150
提交评论