编程题特殊方法.doc_第1页
编程题特殊方法.doc_第2页
编程题特殊方法.doc_第3页
编程题特殊方法.doc_第4页
编程题特殊方法.doc_第5页
已阅读5页,还剩117页未读 继续免费阅读

下载本文档

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

文档简介

编程题(2009.12.06-2009.12.09)注意:1.编程题的做法:特殊做法和传统做法,优先考虑特殊做法,再考虑传统做法。2.特殊做法:考生文件下建立一个out.dat文件,文件中的数据满足要求即可。3.传统做法:编写程序,编译运行即可。为确保正确性,一定要查看一下考生文件下的out.dat文件中的数据,判断是否满足其题目的要求。4对于out.dat文件中的内容(数据),一定要结合题目要求和源程序。out.dat文件中的数据的构造,关键是看NONO()函数中的fprintf函数,输出的数据即out.dat文件中的数据都是从fprintf函数得出。5.对于中文题目,想关闭的话就点击最上面的“显示窗口”变为“隐藏窗口”,想查看中文题目,可以点击最上面的“隐藏窗口”变为“显示窗口”,这样就可以查看中文题目。6.谨记:一定不要改动程序上的任何地方,要是采用传统做法,只需要将写好的程序在子函数中编完就行。此外,in.dat文件中内容绝对不能改变。6.一定要勤加练习,千里之行,始于足下。第1题请编写函数fun,函数的功能是:移动字符串的内容,移动的规则如下:把第1个到第m个字符移动到字符串的最后,把第m+1到最后的字符串移动到字符串的前部。例如,字符串中原有内容为:ABCDEFGHIJK,m的值为3,字符串中的内容应该是: DEFGHIJKABC。源程序:#include #include #define N 80void fun(char *w, int m)main() char aN= ABCDEFGHIJK; int m; printf(The original string:n);puts(a); printf(nnEnter m: );scanf(%d,&m); fun(a,m); printf(nThe string after moving:n);puts(a); printf(nn); NONO();NONO()/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */ FILE *rf, *wf ; char aN ; int m, i ; rf = fopen(D:Exam24010001in.dat,r) ; wf = fopen(D:Exam24010001out.dat,w) ; for(i = 0 ; i 10 ; i+) fscanf(rf, %d %s, &m, a) ; fun(a, m) ; fprintf(wf, %sn, a) ; fclose(rf) ; fclose(wf) ;in.dat文件内容为:3 ABCDEFGHIJK21 fkjdlsfhjsdlkfjsdlkfjsdlkfjdsrewoiru29fdsilkfj93242 dfhdkjfhdskjfhdsjkfdshjfdhfkjdshfkjdsfhdksjfweo8ifhewf8943219 kclsdjfksdlfjsdlkfjdsfw329oruewoifjdslkfdf932dfjhklsvjfhd55 kdjsfldsjflkdfjdskfjdslkfjweioufeoijflkdwejfe2wruoiweufwekfhd10 jsdafhdsfhdsfdsfkjdsfhlkdjfhdfdskjfsd31 jfdashfdjksfhfe93tfivvjdfg934r4329ugfi2493ru9fur2039ruefoi36 fjsdfhdsjkfhsdf3o4irouiwrefu43298ruoit3290rfudkgrejg439tufrl9 jfdshfkjdshfdsjkfhsdjkfhsdkjfhds28 fjkhdsfkjhdsjfhdsjkfhsdfhsfkhsdkjfhdskjfhdsjfhdslkfjhdslkout.dat文件(标准答案测试数据) 内容为:DEFGHIJKABCsdlkfjdsrewoiru29fdsilkfj932fkjdlsfhjsdlkfjsdlkfjjfweo8ifhewf89432dfhdkjfhdskjfhdsjkfdshjfdhfkjdshfkjdsfhdksdsfw329oruewoifjdslkfdf932dfjhklsvjfhdkclsdjfksdlfjsdlkfjwekfhdkdjsfldsjflkdfjdskfjdslkfjweioufeoijflkdwejfe2wruoiweufdsfdsfkjdsfhlkdjfhdfdskjfsdjsdafhdsfh329ugfi2493ru9fur2039ruefoijfdashfdjksfhfe93tfivvjdfg934r4it3290rfudkgrejg439tufrlfjsdfhdsjkfhsdf3o4irouiwrefu43298ruoshfdsjkfhsdjkfhsdkjfhdsjfdshfkjdhsdkjfhdskjfhdsjfhdslkfjhdslkfjkhdsfkjhdsjfhdsjkfhsdfhsfk第2题【重要】【无in.dat】【2、16、51、58】学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。例如,输入的分数是60、69,则应当把分数在60到69的学生数据进行输出,包含60分和69分的学生数据。主函数把60放在low中,把69放在high中。源程序:#include #define N 16typedef struct char num10; int s; STREC;int fun( STREC *a,STREC *b,int l, int h )main() STREC sN=GA005,85,GA003,76,GA002,69,GA004,85, GA001,96,GA007,72,GA008,64,GA006,87, GA015,85,GA013,94,GA012,64,GA014,91, GA011,90,GA017,64,GA018,64,GA016,72; STREC hN,tt;FILE *out ; int i,j,n,low,heigh,t; printf(Enter 2 integer number low & heigh : ); scanf(%d%d, &low,&heigh); if ( heigh low ) t=heigh;heigh=low;low=t; n=fun( s,h,low,heigh ); printf(The students data between %d-%d :n,low,heigh); for(i=0;in; i+) printf(%s %4dn,hi.num,hi.s); printf(n); out = fopen(D:Exam24010001out.dat,w) ; n=fun( s,h,80,98 ); fprintf(out,%dn,n); for(i=0;in-1;i+) for(j=i+1;jhj.s) tt=hi ;hi=hj; hj=tt; for(i=0;in; i+) fprintf(out,%4dn,hi.s); fprintf(out,n); fclose(out);分析:这一题运行之后发现没有in.dat文件,那么想把out.dat 文件中数据写出,就需要观察源程序,根据上面浅蓝色的源程序可以看出:fun( s,h,80,98 )含义是输出80到98(包含80和98)分数范围内的学生数据,紧随其后的语句fprintf(out,%dn,n);是输出这个分数段的学生个数,显然从程序中的学生数据可以知道是8,所以输出:8。for(i=0;in-1;i+) for(j=i+1;jhj.s) tt=hi ;hi=hj; hj=tt;这一段程序是对学生的分数进行排序,观察到if括号中的表达式是“”,所以应该是从小到大排序。for(i=0;in; i+) fprintf(out,%4dn,hi.s);这是输出排序之后的学生分数,而且一定要注意格式是:%4dn,也就是说每输出的一个学生分数是占4列的,且每一个数据之后都是有一个回车的。根据fprintf(out,%4dn,hi.s);,所以按照输出格式的要求输出排序后的学生分数为:8585858790919496因此,out.dat文件(标准答案测试数据) 内容为:88585858790919496说明:浅蓝色部分为重要解释,红色部分是重中之重。第3题已知学生的记录由学号和学习成绩构成,N名学生的数据已经存入a结构体数组中。请编写函数fun,函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。源程序:#include #include #define N 10typedef struct ss char num10; int s; STU;fun( STU a, STU *s )main ( ) STU aN= A01,81,A02,89,A03,66,A04,87,A05,77, A06,90,A07,79,A08,61,A09,80,A10,71, m ; int i; printf(* The original data *n); for ( i=0; i N; i+ )printf(No = %s Mark = %dn, ai.num,ai.s); fun ( a, &m ); printf (* THE RESULT *n); printf (The lowest : %s , %dn,m.num, m.s); NONO( );NONO( )/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *rf, *wf ; STU aN, m ; int i ; rf = fopen(D:Exam24010001in.dat,r) ; wf = fopen(D:Exam24010001out.dat,w) ; for(i = 0 ; i 10; i+) fscanf(rf, %s %d, ai.num, &ai.s) ; fun(a, &m) ; fprintf (wf, The lowest : %s, %dn, m.num, m.s) ; fclose(rf) ; fclose(wf) ;in.dat文件内容为:NUM01 88NUM02 77NUM03 45NUM04 98NUM05 97NUM06 23NUM07 78NUM08 56NUM09 65NUM10 68out.dat文件(标准答案测试数据) 内容为:The lowest : NUM06, 23第4题【难题】请编写一个函数fun,其功能是:将ss所指字符串中所有下标为奇数位置上的字符转换为大写(若该位置上不是字母,则不转换)。例如,若输入“abc4EFg”,则应输出“aBc4EFg”。#include #include void fun( char *ss )void main( void ) char tt51; printf( nPlease enter an character string within 50 characters:n ); gets( tt ); printf( nnAfter changing, the stringn %s, tt ); fun(tt) ; printf( nbecomesn %s, tt ); NONO();NONO()/* 请在此函数内打开文件,输入测试数据,调用 fun 函数, 输出数据,关闭文件。 */ char tt51, ch; FILE *rf, *wf ; int len, i=0 ; rf = fopen(D:Exam24010001in.dat,r) ; wf = fopen(D:Exam24010001out.dat,w) ; while(i 10) fgets( tt, 50, rf ); len = strlen(tt) - 1 ; ch = ttlen ; if(ch = n | ch = 0x1a) ttlen = 0 ; fun(tt); fprintf( wf, %sn, tt ); i+ ; fclose(rf) ; fclose(wf) ;in.dat文件内容为:hdsf fds fdslj fsdlj fdsl fds ljkfsdjfd fdsjh fjdsh fds fdsj fds jkfdsfjsdhf fsdjk fdsjk fdskj fds j sdf ffjkfhds fjdsh k fsdh fs fdsj fdsjdsdhfd fdkjshf fdsjk fds kjfs ksfd hjdfjkdhfs fdsjh fsdk fsd fsdjfkjds fffdjfhds fsjdkhfsd fdsjkh fsd fsdjkh jffdshjfdshjf ds fdhjsfhjds fdshjkhkjfdhjfdhs fdkhjfsd kjds kdf fdsk ffffffdfhjsdkfsdkjh fsdkj fjdsh fsdkh kfsdout.dat文件(标准答案测试数据) 内容为:hDsF FdS FdSlJ FsDlJ FdSl fDs lJkFsDjFd fDsJh fJdSh fDs FdSj fDs jKfDsfJsDhF FsDjK FdSjK FdSkJ FdS J SdF FfjKfHdS FjDsH K FsDh fS fDsJ FdSjDsDhFd fDkJsHf FdSjK FdS KjFs kSfD HjdFjKdHfS FdSjH FsDk fSd fSdJfKjDs fFfdJfHdS FsJdKhFsD FdSjKh fSd fSdJkH JffDsHjFdShJf dS FdHjSfHjDs FdShJkHkJfDhJfDhS FdKhJfSd kJdS KdF FdSk fFfFffDfHjSdKfSdKjH FsDkJ FjDsH FsDkH KfSd说明:本题当中每一行代表一个字符串,且每一行之间有空格字符,不要把中间的空格字符看成是0(字符串结束标志),而且中间有稍大的空隙是代表两个空格字符。第5题请编写一个函数fun,函数的功能是使实型数保留2位小数,并对第3位进行四舍五入(规定实型数为正数)。例如:实型数为1234.567,则函数返回1234.57;实型数为1234.564,则函数返回1234.56。源程序:#include float fun ( float h )main( ) float a; printf (Enter a: ); scanf ( %f, &a ); printf ( The original data is : ); printf ( %f nn, a ); printf ( The result : %fn, fun ( a ) ); NONO( );NONO( )/* 请在此函数内打开文件,输入测试数据,调用 fun 函数, 输出数据,关闭文件。 */ int i ; float a ; FILE *rf, *wf ; rf = fopen(D:Exam24010001in.dat,r) ; wf = fopen(D:Exam24010001out.dat,w) ; for(i = 0 ; i 20 ; i+) fscanf(rf, %f, &a) ; fprintf(wf, %fn, fun(a) ; fclose(rf) ; fclose(wf) ;in.dat文件内容为:1.3421423 212.134555 341.2121 21.90789 87.899932.545646 455.31232 6656.2121 3232.2121 345.212121.32324 22.334999 2121.909 2121.9899 21.999978.9999 89.9999 1019.999 2121.98999 12.9879out.dat文件(标准答案测试数据) 内容为:1.340000212.130000341.21000021.91000087.90000032.550000455.3100006656.2100003232.210000345.21000021.32000022.3300002121.9100002121.99000022.00000079.00000090.0000001020.0000002121.99000012.990000说明:从上面源程序中的fprintf(wf, %fn, fun(a) ;可以看出每输出一个数据之后必须有一个回车。第6题【重要】【难题】【6、14、34、48、49同类型,只能编写程序】请编写一个函数fun,它的功能是:根据以下公式求的值(要求满足精度0.0005,即某项小于0.0005时停止迭代):题目查看P127页/2=1+1/3+(12)/(35)+ (123)/(357)+ (1234)/(3579)+ + (12n)/(35(2n+1)源程序:#include #include double fun ( double eps)main( ) double x; printf(Input eps:) ; scanf(%lf,&x); printf(neps = %lf, PI=%lfn, x, fun(x); NONO();NONO ( )/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *fp, *wf ; int i ; double x ; fp = fopen(D:Exam24010001in.dat,r) ; wf = fopen(D:Exam24010001out.dat,w) ; for(i = 0 ; i =eps) pi+=a; i+; a=a*i/(2*i+1); return pi*2;这样编译运行之后生成out.dat文件,且其文件内容为:3.1405783.1414803.1415803.1413583.1415663.1415903.1405783.1414803.1415803.140578第7题【重要】m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。例如,当score数组中的数据为:10、20、30、40、50、60、70、80、90时,函数返回的人数应该是4,below中的数据应该为:10、20、30、40。源程序:#include #include int fun(int score, int m, int below)main( ) int i, n, below9 ; int score9 = 10, 20, 30, 40, 50, 60, 70, 80, 90 ; n = fun(score, 9, below) ; printf( nBelow the average score are: ) ; for (i = 0 ; i n ; i+) printf(%d , belowi) ; NONO() ;NONO ( )/* 本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/ int i, j, n, below10, score10 ; FILE *rf, *wf ; rf = fopen(D:Exam24010001in.dat,r) ; wf = fopen(D:Exam24010001out.dat,w) ; for(i = 0 ; i 10 ; i+) for(j = 0 ; j 10 ; j+) fscanf(rf, %d, &scorej) ; n = fun(score, 10, below) ; for(j = 0 ; j n ; j+) fprintf(wf, %d , belowj) ; fprintf(wf, n) ; fclose(rf) ; fclose(wf) ;in.dat文件内容为:111 121 10 12 76 88 56 57 54 32980 876 675 896 101 301 401 431 451 777910 806 605 496 901 101 101 231 151 444120 576 275 596 401 201 211 441 401 321180 176 175 196 201 201 201 231 451 888280 276 275 296 201 201 287 231 451 555380 376 375 396 301 301 301 331 351 999480 476 475 496 201 201 101 131 151 777580 176 475 296 301 601 801 131 151 11198 76 75 96 10 30 40 43 41 77out.dat文件(标准答案测试数据) 内容为:10 12 56 57 54 32101 301 401 431 451101 101 231 151 444120 275 201 211 321180 176 175 196 201 201 201 231280 276 275 296 201 201 287 231380 376 375 396 301 301 301 331 351201 201 101 131 151176 296 301 131 151 11110 30 40 43 41分析:从上面的红色程序中n = fun(score, 10, below) ; for(j = 0 ; j n ; j+) fprintf(wf, %d , belowj) ;可以看出输出的格式是%d ,在d之后有一个空格,注意看VC编译环境下的源程序,也就是说输出的时候每一行中低于平均分的分数之间必须有一个空格。第8题【8、9、10、19、45、54、57、61】假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将字符串中其它的*号全部删除。在编写函数时,不得使用C语言中提供的字符串函数。例如,字符串的内容为:*A*BC*DEF*G*,删除后,字符串中的内容应当为:*ABCDEFG。源程序:#include void fun( char *a )main() char s81; printf(Enter a string:n);gets(s); fun( s ); printf(The string after deleted:n);puts(s); NONO();NONO()/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *in, *out ; int i ; char s81 ; in = fopen(D:Exam24010001in.dat,r) ; out = fopen(D:Exam24010001out.dat,w) ; for(i = 0 ; i 10 ; i+) fscanf(in, %s, s) ; fun(s) ; fprintf(out, %sn, s) ; fclose(in) ; fclose(out) ;in.dat文件内容为:*A*BC*DEF*G*LKJFHG*KHJ*SDFGH*KJKJ*J*K*K*J*OGH*GKLJ*LKJ*LKJ*KLKJHG*DQ*LJ*KJ*HJJKD*JHHKJH*DGH*TDFHG*TYRYTRIU*JGJ*HKHJLKH*GUHHJ*GFHJ*GJHK*GJKGK*KHKLHKJHKJ*JHGDFXGGJH*JFHGFK*HKH*KJHKL*KLH*UYKJDFARTQYW*HFGUJ*KJHKJ*KJHK*JKHILUHIUGCLKLKJGH*HJGHG*KJH*JY*JH*M*HJH*JKH*GHJK*JHGG*GGJK*GJKG*GKJ*GH*GK*JK*KJKHLKJHSQDQDQ*DQDQ*DQ*DQLKDKJQ*POUOIUO*LKJL*out.dat文件(标准答案测试数据) 内容为:*ABCDEFG*LKJFHGKHJSDFGHKJKJJKKJ*OGHGKLJLKJLKJKLKJHGDQLJKJ*HJJKDJHHKJHDGHTDFHGTYRYTRIUJGJ*HKHJLKHGUHHJGFHJGJHKGJKGKKHKLHKJHKJ*JHGDFXGGJHJFHGFKHKHKJHKLKLH*UYKJDFARTQYWHFGUJKJHKJKJHK*JKHILUHIUGCLKLKJGHHJGHGKJHJYJHMHJH*JKHGHJKJHGGGGJKGJKGGKJGHGKJK*KJKHLKJHSQDQDQDQDQDQDQLKDKJQPOUOIUOLKJL第9题【8、9、10、19、45、54、57、61】假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串中前导*号移到字符串的尾部。例如,字符串的内容为:*A*BC*DEF*G*,移动后,字符串中的内容应当为:A*BC*DEF*G*。在编写函数时,不得使用C语言中提供的字符串函数。源程序:#include void fun( char *a )main() char s81,*p; int n=0; printf(Enter a string:n);gets(s); fun( s ); printf(The string after moveing:n);puts(s); NONO();NONO()/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *in, *out ; int i ; char s81 ; in = fopen(D:Exam24010001in.dat,r) ; out = fopen(D:Exam24010001out.dat,w) ; for(i = 0 ; i 10 ; i+) fscanf(in, %s, s) ; fun(s) ; fprintf(out, %sn, s) ; fclose(in) ; fclose(out) ;in.dat文件内容为:*A*BC*DEF*G*LKJFHG*KHJ*SDFGH*KJKJ*J*K*K*J*OGH*GKLJ*LKJ*LKJ*KLKJHG*DQ*LJ*KJ*HJJKD*JHHKJH*DGH*TDFHG*TYRYTRIU*JGJ*HKHJLKH*GUHHJ*GFHJ*GJHK*GJKGK*KHKLHKJHKJ*JHGDFXGGJH*JFHGFK*HKH*KJHKL*KLH*UYKJDFARTQYW*HFGUJ*KJHKJ*KJHK*JKHILUHIUGCLKLKJGH*HJGHG*KJH*JY*JH*M*HJH*JKH*GHJK*JHGG*GGJK*GJKG*GKJ*GH*GK*JK*KJKHLKJHSQDQDQ*DQDQ*DQ*DQLKDKJQ*POUOIUO*LKJL*out.dat文件(标准答案测试数据) 内容为:A*BC*DEF*G*LKJFHG*KHJ*SDFGH*KJKJ*J*K*K*J*OGH*GKLJ*LKJ*LKJ*KLKJHG*DQ*LJ*KJ*HJJKD*JHHKJH*DGH*TDFHG*TYRYTRIU*JGJ*HKHJLKH*GUHHJ*GFHJ*GJHK*GJKGK*KHKLHKJHKJ*JHGDFXGGJH*JFHGFK*HKH*KJHKL*KLH*UYKJDFARTQYW*HFGUJ*KJHKJ*KJHK*JKHILUHIUGCLKLKJGH*HJGHG*KJH*JY*JH*M*HJH*JKH*GHJK*JHGG*GGJK*GJKG*GKJ*GH*GK*JK*KJKHLKJHSQDQDQ*DQDQ*DQ*DQLKDKJQ*POUOIUO*LKJL*第10题【8、9、10、19、45、54、57、61】假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串中前导*号不得多于n个;如多于n个,则删除多余的*号;如少于或等于n个,则什么也不做,字符串中间和尾部的*号不能删除。例如,字符串的内容为:*A*BC*DEF*G*,若n的值为4,则删除后,字符串的内容应当是:*A*BC*DEF*G*;若n的值为8,则字符串中的内容仍为:*A*BC*DEF*G*。n的值在主函数中输入。在编写函数时,不得使用C语言中提供的字符串函数。源程序:#include void fun( char *a, int n )main() char s81; int n; printf(Enter a string:n);gets(s); printf(Enter n : );scanf(%d,&n); fun( s,n ); printf(The string after deleted:n);puts(s); NONO();NONO()/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *in, *out ; int i, n ; char s81 ; in = fopen(D:Exam24010001in.dat,r) ; out = fopen(D:Exam24010001out.dat,w) ; for(i = 0 ; i 10 ; i+) fscanf(in, %s, s) ; fscanf(in, %d, &n) ; fun(s,n) ; fprintf(out, %sn, s) ; fclose(in) ; fclose(out) ;in.dat文件内容为:*A*BC*DEF*G*4*A*BC*DEF*G*8*LKJFHG*KHJ*SDFGH*KJKJ*J*K*K*J*4*OGH*GKLJ*LKJ*LKJ*KLKJHG*DQ*LJ*KJ*5*HJJKD*JHHKJH*DGH*TDFHG*TYRYTRIU*JGJ*3*HKHJLKH*GUHHJ*GFHJ*GJHK*GJKGK*KHKLHKJHKJ*2*JHGDFXGGJH*JFHGFK*HKH*KJHKL*KLH*3*UYKJDFARTQYW*HFGUJ*KJHKJ*KJHK*4*JKHILUHIUGCLKLKJGH*HJGHG*KJH*JY*JH*M*HJH*3*JKH*GHJK*JHGG*GGJK*GJKG*GKJ*GH*GK*JK*2out.dat文件(标准答案测试数据) 内容为:*A*BC*DEF*G*A*BC*DEF*G*LKJFHG*KHJ*SDFGH*KJKJ*J*K*K*J*OGH*GKLJ*LKJ*LKJ*KLKJHG*DQ*LJ*KJ*HJJKD*JHHKJH*DGH*TDFHG*TYRYTRIU*JGJ*HKHJLKH*GUHHJ*GFHJ*GJHK*GJKGK*KHKLHKJHKJ*JHGDFXGGJH*JFHGFK*HKH*KJHKL*KLH*UYKJDFARTQYW*HFGUJ*KJHKJ*KJHK*JKHILUHIUGCLKLKJGH*HJGHG*KJH*JY*JH*M*HJH*JKH*GHJK*JHGG*GGJK*GJKG*GKJ*GH*GK*JK*第11题【重要】【难题】【无in.dat】请编写函数fun,它的功能是:求出能整除形参x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中。这些除数的个数通过形参返回。例如,若x的值为:35,则有4个数符合要求,他们是1,5,7,35。源程序:#include void fun ( int x, int pp, int *n )main( ) int x, aa1000, n, i ; printf( nPlease enter an integer number:n ) ; scanf(%d, &x) ; fun(x, aa, &n ) ; for( i = 0 ; i n ; i+ ) printf(%d , aai) ; printf(n) ; NONO( ) ;NONO ( )/* 本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/ int x, aa1000, n, i, j ; FILE *fp ; fp = fopen(D:Exam24010001out.dat,w) ; for(j = 0 ; j 10 ; j+) x = 30 + j ; fun(x, aa, &n) ; for(i = 0 ; i n ; i+) fprintf(fp, %d , aai) ; fprintf(fp, n) ; fclose(fp) ;注意:本题运行之后发现没有in.dat文件,和前面的第2题一样,就必须通过观察程序来把out.dat文件中数据得出。观察上面浅蓝色的程序,可以看出:循环变量j:09,循环10次,这样形参x的值为:3039,这样根据题目的意思就可以得出out.dat文件中的数据,并且注意每循环一次都有一个回车。根据fprintf(fp, %d , aai) ;中的%d 中d之后有一个空格把每一行的数据隔开。从而有,out.dat文件(标准答案测试数据) 内容为:1 3 5 151 3111 3 11 331 171 5 7 351 3 91 371 191 3 13 39第12题【难题】【讲解】函数fun的功能是:将s所指定字符串中下标为偶数同时ACCII码值为奇数的字符删除,s所指字符串中剩余的字符形成的新字符串放在t所指的数组中。例如,若s所指字符串中的内容为“ABCDEFG12345”,其中字符C的ASCII码值为奇数,且在数组中下标

温馨提示

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

评论

0/150

提交评论