二級機試題庫(1-30套)_第1頁
二級機試題庫(1-30套)_第2頁
二級機試題庫(1-30套)_第3頁
二級機試題庫(1-30套)_第4頁
二級機試題庫(1-30套)_第5頁
已閱讀5頁,還剩125頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第一套1.下列給定程序中,函數(shù)fun的功能是計算如下公式 直到 ,并且把計算結(jié)果作為函數(shù)值返回。例如,若形參e的值為1e3,則函數(shù)返回值為0.551690。請在下劃線處填入正確的內(nèi)容并將下劃線刪除,使程序得出正確的結(jié)果。注意:部分源程序在文件BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include <stdio.h>double fun(double e) int i, k; double s, t, x; s=0; k=1; i=2;/*found*/ x=_1_/4;/*found*/ while(x _2_ e) s=s+k*x; k=k* (-1); t=

2、2*i;/*found*/ x=_3_/(t*t); i+; return s;main() double e=1e-3; printf("nThe result is: %fn",fun(e);【參考答案】(1)3.0或(double)3(2)>(3) (t+1)1.下列給定程序中函數(shù)fun的功能是:求出如下分數(shù)序列的前n項之和。和值通過函數(shù)值返回。 例如,若n5,則應輸出8.391667。請改正程序中的錯誤,使其得出正確的結(jié)果。注意:部分源程序在文件MODI1.C中,不得增行或刪行,也不得更改的程序的結(jié)構(gòu)!#include <stdio.h>/*fou

3、nd*/void fun ( int n ) int a, b, c, k; double s; s = 0.0; a = 2; b = 1; for ( k = 1; k <= n; k+ ) /*found*/ s = s + (Double)a / b; c = a; a = a + b; b = c; return s;main( ) int n = 5; printf( "nThe value of function is: %lfn", fun ( n ) );【參考答案】(1)double fun(int n)(2)s=s+(double)a/b;1.請

4、編寫函數(shù)fun,其功能是:找出2×M整型二維數(shù)組中最大元素的值,并將此值返回調(diào)用函數(shù)。注意:部分源程序在文件PROG1.C中。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。#include <stdio.h>#define M 4int fun (int aM)main( ) int arr2M=5,8,3,45,76,-4,12,82 ;void NONO (); printf("max =%dn", fun(arr) ; NONO( ) ;void NONO ()/* 本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用

5、函數(shù),輸出數(shù)據(jù),關(guān)閉文件。 */ FILE *wf ; int arrM=5,8,3,90,76,-4,12,82 ; wf = fopen("out.dat","w") ; fprintf(wf, "max=%dn", fun(arr) ; fclose(wf) ;【參考答案】int fun (int aM)int i,j,max=a00; for(i=0;i<2;i+) for(j=0;j<M;j+) if(max<aij) max=aij; return max;第二套2. 下列給定程序中,函數(shù)fun的功能是:

6、計算如下公式前n項的和并作為函數(shù)值返回。 例如,當形參n的值為10時,函數(shù)返回值為9.612558。請在下劃線處填入正確的內(nèi)容并將下劃線刪除,使程序得出正確的結(jié)果。注意:部分源程序在文件BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include <stdio.h>double fun(int n) int i; double s, t;/*found*/ s=_1_;/*found*/ for(i=1; i<=_2_; i+) t=2.0*i;/*found*/ s=s+(2.0*i-1)*(2.0*i+1)/_3_; return s;main() int

7、n=-1; while(n<0) printf("Please input(n>0): "); scanf("%d",&n); printf("nThe result is: %fn",fun(n);【參考答案】(1) 0(2) n(3) (t*t)2.下列給定程序中函數(shù)fun的功能是:統(tǒng)計substr所指的子符串在str所指的字符串中出現(xiàn)的次數(shù)。例如,若字符串為aaas 1kaaas,子字符串為as,則應輸出2。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:部分源程序在文件MODI1.C中,不得增行或刪行,也不

8、得更改的程序的結(jié)構(gòu)!#include <stdio.h>int fun (char *str,char *substr) int i,j,k,num=0;/*found*/ for(i = 0, stri, i+) for(j=i,k=0;substrk=strj;k+,j+)/*found*/ If(substrk+1='0') num+; break; return num;main() char str80,substr80; printf("Input a string:") ; gets(str); printf("Input

9、 a substring:") ; gets(substr); printf("%dn",fun(str,substr);【參考答案】(1)for(i=0;stri;i+)(2)if(substrk+1= 0)2.編寫函數(shù)fun,其功能是:根據(jù)以下公式求的值(要求精度0.0005,即某項小于0.0005時停止迭代)。 程序運行后,若輸入精度0.0005,則程序應輸出為3.14。注意:部分源程序在文件PROG1.C中。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。#include <stdio.h>#incl

10、ude <math.h>double fun ( double eps)main( ) double x;void NONO (); printf("Input eps:") ; scanf("%lf",&x); printf("neps = %lf, PI=%lfn", x, fun(x); NONO();void NONO ()/* 本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。 */ FILE *fp, *wf ; int i ; double x ; fp = fopen("in.d

11、at","r") ; wf = fopen("out.dat","w") ; for(i = 0 ; i < 10 ; i+) fscanf(fp, "%lf", &x) ; fprintf(wf, "%lfn", fun(x) ; fclose(fp) ; fclose(wf) ;【參考答案】double fun ( double eps) double s=1.0,s1=1.0; int n=1; while(s1>=eps) /*當某項大于精度要求時,繼續(xù)求下

12、一項*/ s1=s1*n/(2*n+1); /*求多項式的每一項*/ s=s+s1; /*求和*/ n+; return 2*s;第三套3.給定程序中,函數(shù)fun的功能是:統(tǒng)計形參s所指的字符串中數(shù)字字符出現(xiàn)的次數(shù),并存放在形參t所指的變量中,最后在主函數(shù)中輸出。例如,若形參s所指的字符串為abcdef35adgh3kjsdf7,則輸出結(jié)果為4。請在下劃線處填入正確內(nèi)容并將下劃線刪除,使程序得出正確的結(jié)果。注意:部分源程序在文件BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include <stdio.h>void fun(char *s, int *t) int i

13、, n; n=0;/*found*/ for(i=0; _1_ !=0; i+)/*found*/ if(si>='0'&&si<= _2_ ) n+;/*found*/ _3_ ;main() char s80="abcdef35adgh3kjsdf7" int t; printf("nThe original string is : %sn",s); fun(s,&t); printf("nThe result is : %dn",t);【參考答案】(1) si(2) '

14、9'(3)*t=n3.下列給定程序中函數(shù)fun的功能是:實現(xiàn)兩個變量值的交換,規(guī)定不允許增加語句和表達式。例如,變量a中的值原為8,b中的值原為3,程序運行后a中的值為3,b中的值為8。請改正程序中的錯誤,使它得出正確的結(jié)果。注意:部分源程序在文件MODI1.C中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include <stdio.h>int fun(int *x,int y) int t ;/*found*/ t = x ; x = y ;/*found*/ return(y) ;main() int a = 3, b = 8 ; printf("%d %dn

15、", a, b) ; b = fun(&a, b) ; printf("%d %dn", a, b) ;【參考答案】(1)t = *x ; *x = y ;(2)return(t) ;或return t;3.編寫函數(shù)fun,其功能是:求出1到1000之間能被7或11整除,但不能同時被7和11整除的所有整數(shù),并將其放在a所指的數(shù)組中,通過n返回這些數(shù)的個數(shù)。注意:部分原程序在文件PROG1.C中。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。#include <stdio.h>void fun (in

16、t *a, int *n)main( ) int aa1000, n, k ; void NONO ( ); fun ( aa, &n ) ; for ( k = 0 ; k < n ; k+ ) if(k + 1) % 10 = 0) printf("n") ; else printf("%5d", aak) ; NONO( );void NONO ( )/* 本函數(shù)用于打開文件,輸入測試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/ int aa1000, n, k ; FILE *fp ; fp = fopen("out.d

17、at","w") ; fun ( aa, &n ) ; for ( k = 0 ; k < n ; k+ ) if(k + 1) % 10 = 0) fprintf(fp, "n") ; else fprintf(fp, "%5d", aak) ; fclose(fp) ;【參考答案】void fun (int *a, int *n)int i,j=0; for(i=1;i<=1000;i+) /*求1到1000之內(nèi)能被7或11整除、但不能同時被7和11整除的所有整數(shù),并放入數(shù)組a中*/ if(i%7=0

18、|i%11=0)&&i%77!=0) aj+=i; *n=j; 第四套4.下列給定程序中,函數(shù)fun的功能是:把形參a所指數(shù)組中的奇數(shù)按原順序依次存放到a0、a1、a2、中,把偶數(shù)從數(shù)組中刪除,奇數(shù)個數(shù)通過函數(shù)值返回。例如:若a所指數(shù)組中的數(shù)據(jù)最初排列為:9、1、4、2、3、6、5、8、7,刪除偶數(shù)后a所指數(shù)組中的數(shù)據(jù)為:9、1、3、5、7,返回值為5。請在下劃線處填入正確的內(nèi)容并將下劃線刪除,使程序得出正確的結(jié)果。注意:部分源程序在文件BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include <stdio.h>#define N 9int fun

19、(int a, int n) int i,j; j = 0; for (i=0; i<n; i+)/*found*/ if (ai%2=_1_) /*found*/ aj = ai; _2_; /*found*/ return _3_;main() int bN=9,1,4,2,3,6,5,8,7, i, n; printf("nThe original data :n"); for (i=0; i<N; i+) printf("%4d ", bi); printf("n"); n = fun(b, N); printf(

20、"nThe number of odd : %d n", n); printf("nThe odd number :n"); for (i=0; i<n; i+) printf("%4d ", bi); printf("n");【參考答案】(1)1(2) j+(3)j4.下列給定程序中函數(shù)fun的功能是:求兩個非零正整數(shù)的最大公約數(shù),并作為函數(shù)值返回。例如,若num1和num2分別為49和21,則輸出的最大公約數(shù)為7;若num1和num2分別為27和81,則輸出的最大公約數(shù)為27。請改正程序中的錯誤,使它能得

21、出正確結(jié)果。注意:部分源程序在文件MODI1.C中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)。#include <stdio.h>int fun(int a,int b) int r,t; if(a<b) /*found*/ t=a; b=a; a=t; r=a%b; while(r!=0) a=b; b=r; r=a%b; /*found*/ return(a);main() int num1, num2,a; printf("Input num1 num2: "); scanf("%d%d",&num1,&num2);

22、printf("num1= %d num2= %dnn",num1,num2); a=fun(num1,num2); printf("The maximun common divisor is %dnn",a);【參考答案】(1)t=a;a=b;b=t;(2)return(b);或return b;4.規(guī)定輸入的字符串中只包含字母和*號。編寫函數(shù)fun,其功能是:刪除字符串中所有的*號。編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。例如,字符串中的內(nèi)容為:*A*BC*DEF*G*,刪除后字符串中的內(nèi)容應當是:ABCDEFG。注意:部分源程序在文件PROG1

23、.C中。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干的語句。#include <stdio.h>void fun( char *a )main() char s81; void NONO ( ); printf("Enter a string:n");gets(s); fun( s ); printf("The string after deleted:n");puts(s); NONO();void NONO()/* 本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。 */ FILE *i

24、n, *out ; int i ; char s81 ; in = fopen("in.dat","r") ; out = fopen("out.dat","w") ; for(i = 0 ; i < 10 ; i+) fscanf(in, "%s", s) ; fun(s) ; fprintf(out, "%sn", s) ; fclose(in) ; fclose(out) ;【參考答案】void fun( char *a )int i,j=0; for(i=0;a

25、i!='0'i+) if(ai!='*') aj+=ai; /*若不是要刪除的字符'*'則留下*/ aj='0'第五套5.下列給定程序中,函數(shù)fun的功能是:將形參n中,各位上為偶數(shù)的數(shù)取出,并按原來從高位到低位相反的順序組成一個新數(shù),作為函數(shù)值返回。例如,輸入一個整數(shù)27638496,函數(shù)返回值為64862。請在下劃線處填入正確的內(nèi)容并將下劃線刪除,使程序得出正確的結(jié)果。注意:部分源程序在文件BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include <stdio.h>unsigned long fu

26、n(unsigned long n) unsigned long x=0; int t; while(n) t=n%10;/*found*/ if(t%2=_1_)/*found*/ x=_2_+t;/*found*/ n=_3_; return x;main() unsigned long n=-1; while(n>99999999|n<0) printf("Please input(0<n<100000000): "); scanf("%ld",&n); printf("nThe result is: %l

27、dn",fun(n);【參考答案】(1)0(2) 10*x (3)n/105.下列給定程序中函數(shù)fun的功能是:將長整型數(shù)中各位上為奇數(shù)的數(shù)依次取出,構(gòu)成一個新數(shù)放在t中。高位仍在高位,低位仍在低位。例如,當s中的數(shù)為87653142時,t中的數(shù)為7531。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:部分源程序在文件MODI1.C中,不得增行或刪行,也不得更改的程序的結(jié)構(gòu)!#include <stdio.h>void fun (long s, long *t) int d; long sl=1;/*found*/ t = 0; while ( s > 0) d

28、= s%10;/*found*/ if (d%2 = 0) *t = d * sl + *t;sl *= 10; s /= 10; main() long s, t; printf("nPlease enter s:"); scanf("%ld", &s); fun(s, &t); printf("The result is: %ldn", t);【參考答案】(1)*t=0;(2)if(d%2!=0)或if(d%2=1)5.編寫函數(shù)fun,其功能是:實現(xiàn)兩個字符串的連接(不要使用庫函數(shù)strcat),即把p2所指的字符

29、串連接到p1所指的字符串的后面。例如,分別輸入下面兩個字符串:FirstStringSecondString程序輸出:FirstStringSecondString注意:部分源程序在文件PROG1.C中。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。#include <stdio.h>void fun(char p1, char p2)main() char s180, s240 ;void NONO (); printf("Enter s1 and s2:n") ; scanf("%s%s",

30、s1, s2) ; printf("s1=%sn", s1) ; printf("s2=%sn", s2) ; printf("Invoke fun(s1,s2):n") ; fun(s1, s2) ; printf("After invoking:n") ; printf("%sn", s1) ; NONO() ;void NONO ()/* 本函數(shù)用于打開文件,輸入測試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/ int i ; FILE *rf, *wf ; char s180, s24

31、0 ; rf = fopen("in.dat","r") ; wf = fopen("out.dat","w") ; for(i = 0 ; i < 10 ; i+) fscanf(rf, "%s", s1) ; fscanf(rf, "%s", s2) ; fun(s1, s2) ; fprintf(wf, "%sn", s1) ; fclose(rf) ; fclose(wf) ;【參考答案】void fun(char p1, char p2)i

32、nt i,j; for(i=0;p1i!='0'i+) ; for(j=0;p2j!='0'j+) p1i+=p2j; p1i='0'第六套6.下列給定程序中,函數(shù)fun的功能是:把形參a所指數(shù)組中的最小值放在元素a0中,接著把a所指數(shù)組中的最大值放在a1元素中;再把a所指數(shù)組元素中的次小值放在a2中,把a所指數(shù)組元素中的次大值放在a3,以此類推。例如,若a所指數(shù)組中的數(shù)據(jù)最初排列為:9、1、4、2、3、6、5、8、7;則按規(guī)則移動后,數(shù)據(jù)排列為:1、9、2、8、3、7、4、6、5。形參n中存放a所指數(shù)組中數(shù)據(jù)的個數(shù)。規(guī)定fun函數(shù)中的max存放

33、當前所找的最大值,px存放當前所找最大值的下標。請在下劃線處填入正確的內(nèi)容并將下劃線刪除,使程序得出正確的結(jié)果。注意:部分源程序在文件BLANK1.C中。不得增行或刪行,也不行更改程序的結(jié)構(gòu)!# include <stdio.h>#define N 9void fun(int a, int n) int i,j, max, min, px, pn, t; for (i=0; i<n-1; i+=2) /*found*/ max = min = _1_; px = pn = i; for (j=i+1; j<n; j+) /*found*/ if (max<_2_)

34、 max = aj; px = j; /*found*/ if (min>_3_) min = aj; pn = j; if (pn != i) t = ai; ai = min; apn = t; if (px = i) px =pn; if (px != i+1) t = ai+1; ai+1 = max; apx = t; main() int bN=9,1,4,2,3,6,5,8,7, i; printf("nThe original data :n"); for (i=0; i<N; i+) printf("%4d ", bi);

35、printf("n"); fun(b, N); printf("nThe data after moving :n"); for (i=0; i<N; i+) printf("%4d ", bi); printf("n");【參考答案】(1) ai(2) aj(3) aj6.下列給定程序中函數(shù)fun的功能是:用遞歸算法計算斐波拉契數(shù)列中第n項的值。從第1項起,斐波拉契數(shù)列為:1、1、2、3、5、8、13、21、例如,若給n輸入7,則該項的斐波拉契數(shù)值為13。請改正程序中的錯誤,使它能得出正確結(jié)果。注意:部分源

36、程序在文件MODI1.C中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)。#include <stdio.h>long fun(int g)/*found*/ switch(g); case 0: return 0;/*found*/ case 1 ;case 2 : return 1 ; return( fun(g-1)+fun(g-2) );main() long fib; int n; printf("Input n: "); scanf("%d",&n); printf("n = %dn",n); fib=fun(

37、n); printf("fib = %dnn",fib);【參考答案】(1)去掉分號(2)case 1:case 2:return 1;6.某學生的記錄由學號、8門課程成績和平均分組成,學號和8門課程的成績已在主函數(shù)中給出,請編寫函數(shù)fun,其功能是:求出該學生的平均分,并放入記錄的ave成員中。例如,學生的成績是:85.5,76,69.5,85,91,72,64.5,87.5,則他的平均分應為78.875。注意:部分源程序在文件PROG1.C中。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun部位中填入你編寫的若干語句。#include <stdio.h

38、>#define N 8typedef struct char num10; double sN; double ave; STREC;void fun(STREC *a)main() STREC s="GA005",85.5,76,69.5,85,91,72,64.5,87.5; int i; void NONO ( ); fun( &s ); printf("The %s's student data:n", s.num); for(i=0;i<N; i+) printf("%4.1fn",s.si);

39、 printf("nave=%7.3fn",s.ave); NONO();void NONO()/* 本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。 */ FILE *out ; int i,j ; STREC s10 = "GA005",85.5,76,69.5,85,91,72,64.5,87.5, "GA001",82.5,66,76.5,76,89,76,46.5,78.5, "GA002",72.5,56,66.5,66,79,68,46.5,58.5, "GA003",

40、92.5,76,86.5,86,99,86,56.5,88.5, "GA004",82,66.5,46.5,56,76,75,76.5,63.5, "GA006",75.5,74,71.5,85,81,79,64.5,71.5, "GA007",92.5,61,72.5,84,79,75,66.5,72.5, "GA008",72.5,86,73.5,80,69,63,76.5,53.5, "GA009",66.5,71,74.5,70,61,82,86.5,58.5, "GA010&

41、quot;,76,66.5,75.5,60,76,71,96.5,93.5,; out = fopen("out.dat","w") ; for(i = 0 ; i < 10 ; i+) fun(&si) ; fprintf(out, "%7.3fn", si.ave) ; fclose(out) ;【參考答案】oid fun(STREC *a) double ave=0.0; int i; for(i=0;i<N;i+) a->ave=a->ave+a->si; /*求各門成績的總和*/ a-&

42、gt;ave/=N; /*求平均分*/第七套7.下列給定程序中,函數(shù)fun的功能是進行數(shù)字字符轉(zhuǎn)換。若形參ch中是數(shù)字字符'0''9',則將'0'轉(zhuǎn)換成'9','1'轉(zhuǎn)換成'8','2'轉(zhuǎn)換成'7','9'轉(zhuǎn)換成'0';若是其它字符則保持不變;并將轉(zhuǎn)換后的結(jié)果作為函數(shù)值返回。請在下劃線處填入正確的內(nèi)容并將下劃線刪除,使程序得出正確的結(jié)果。注意:部分源程序在文件BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include &

43、lt;stdio.h>/*found*/_1_ fun(char ch)/*found*/ if (ch>='0' && _2_)/*found*/ return '9'- (ch-_3_); return ch ;main() char c1, c2; printf("nThe result :n"); c1='2' c2 = fun(c1); printf("c1=%c c2=%cn", c1, c2); c1='8' c2 = fun(c1); printf

44、("c1=%c c2=%cn", c1, c2); c1='a' c2 = fun(c1); printf("c1=%c c2=%cn", c1, c2);【參考答案】(1)char(2) ch<='9'(3)'0'7.下列給定程序中函數(shù)fun的功能是:將p所指字符串中的所有字符復制到b中,要求每復制三個字符之后插入一個空格。例如,若給a輸入字符串:ABCDEFGKHIJK,調(diào)用函數(shù)后,字符數(shù)組b中的內(nèi)容為:ABCDEFGHIJK。請改正程序中的錯誤,使它能得出正確結(jié)果。注意:部分源程序在文件MODI

45、1.C中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)。#include <stdio.h>void fun(char *p, char *b) int i, k=0; while(*p) i=1; while( i<=3 && *p ) /*found*/ bk=p; k+; p+; i+; if(*p) /*found*/ bk+=" " bk='0'main() char a80,b80; printf("Enter a string: "); gets(a); printf("The origi

46、nal string: "); puts(a); fun(a,b); printf("nThe string after insert space: "); puts(b); printf("nn");【參考答案】(1)bk=*p;(2)bk= ;k+;7.N名學生的成績已在主函數(shù)中放入一個帶頭節(jié)點的鏈表結(jié)構(gòu)中,h指向鏈表的頭節(jié)點。請編寫函數(shù)fun,其功能是:求出平均分,并由函數(shù)值返回。例如,若學生的成績是:8576698591726487,則平均分應當是:78.625。注意:部分源程序在文件PROG1.C中。請勿改動主函數(shù)main和其它函數(shù)中

47、的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。#include <stdio.h>#include <stdlib.h>#define N 8struct slist double s; struct slist *next;typedef struct slist STREC;double fun( STREC *h )STREC * creat( double *s) STREC *h,*p,*q; int i=0; h=p=(STREC*)malloc(sizeof(STREC);p->s=0; while(i<N) q=(STREC*)m

48、alloc(sizeof(STREC); q->s=si; i+; p->next=q; p=q; p->next=0; return h;outlist( STREC *h) STREC *p; p=h->next; printf("head"); do printf("->%4.1f",p->s);p=p->next; while(p!=0); printf("nn");main() double sN=85,76,69,85,91,72,64,87,ave; void NONO ( );

49、 STREC *h; h=creat( s ); outlist(h); ave=fun( h ); printf("ave= %6.3fn",ave); NONO();void NONO()/* 本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。 */ FILE *in, *out ; int i,j ; double sN,ave; STREC *h ; in = fopen("in.dat","r") ; out = fopen("out.dat","w") ; for(i =

50、0 ; i < 10 ; i+) for(j=0 ; j < N; j+) fscanf(in, "%lf,", &sj) ; h=creat( s ); ave=fun( h ); fprintf(out, "%6.3lfn", ave) ; fclose(in) ; fclose(out) ;【參考答案】double fun( STREC *h ) double ave=0.0; STREC *p=h->next; while(p!=NULL) ave=ave+p->s; p=p->next; return av

51、e/N;第八套8.下列給定程序中,函數(shù)fun的功能是:求ss所指字符串數(shù)組中長度最短的字符串所在的行下標,作為函數(shù)值返回,并把其串長放在形參n所指的變量中。ss所指字符串數(shù)組中共有M個字符串,且串長<N。請在下劃線處填入正確的內(nèi)容并將下劃線刪除,使程序得出正確的結(jié)果。注意:部分源程序在文件BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include <stdio.h>#include <string.h>#define M 5#define N 20int fun(char (*ss)N, int *n) int i, k=0, len= N;/*f

52、ound*/ for(i=0; i<_1_; i+) len=strlen(ssi); if(i=0) *n=len;/*found*/ if(len _2_ *n) *n=len; k=i; /*found*/ return(_3_);main() char ssMN="shanghai","guangzhou","beijing","tianjing","chongqing" int n,k,i; printf("nThe original strings are :n"); for(i=0;i<M;i+)puts(ssi); k=fun(ss,&n); printf("nThe length of shortest

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論