![[工學(xué)]計(jì)算機(jī)上機(jī)實(shí)習(xí)報(bào)告_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/16/090b8459-65a9-4bcb-99a7-698f7141dac5/090b8459-65a9-4bcb-99a7-698f7141dac51.gif)
![[工學(xué)]計(jì)算機(jī)上機(jī)實(shí)習(xí)報(bào)告_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/16/090b8459-65a9-4bcb-99a7-698f7141dac5/090b8459-65a9-4bcb-99a7-698f7141dac52.gif)
![[工學(xué)]計(jì)算機(jī)上機(jī)實(shí)習(xí)報(bào)告_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/16/090b8459-65a9-4bcb-99a7-698f7141dac5/090b8459-65a9-4bcb-99a7-698f7141dac53.gif)
![[工學(xué)]計(jì)算機(jī)上機(jī)實(shí)習(xí)報(bào)告_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/16/090b8459-65a9-4bcb-99a7-698f7141dac5/090b8459-65a9-4bcb-99a7-698f7141dac54.gif)
![[工學(xué)]計(jì)算機(jī)上機(jī)實(shí)習(xí)報(bào)告_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/16/090b8459-65a9-4bcb-99a7-698f7141dac5/090b8459-65a9-4bcb-99a7-698f7141dac55.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、. 班級(jí): 自本一班 學(xué)號(hào): 201028004 姓名: 徐艷改錯(cuò)題第1題1、 題目要求 函數(shù)fun的功能是:用遞歸算法計(jì)算斐波拉契級(jí)數(shù)數(shù)列中第n項(xiàng)的值。從第l項(xiàng)起,斐波拉契級(jí)數(shù)序列為1、1、2、3、5、8、13、21、;例如:當(dāng)給n輸入7,該項(xiàng)的斐波拉契級(jí)數(shù)值為13。#include 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: );
2、scanf(%d,&n); printf(n=%dn,n); fib=fun(n); printf(fib=%dnn,fib);2、 錯(cuò)誤分析語句swich(g);錯(cuò)誤,swich(表達(dá)式)后不應(yīng)該帶有“;”,應(yīng)該為:swich(g)語句case 1;case 2: return 1;錯(cuò)誤,case語句常量后應(yīng)該是“:”,應(yīng)該為:case:case:return 1;第2題一、題目要求下列給定程序中,函數(shù)fun的功能是:將字符串p中的所有字符復(fù)制到字符串b中,要求每復(fù)制三個(gè)字符之后插入一個(gè)空格。例如,在調(diào)用fun函數(shù)之前給字符串a(chǎn)輸入ABCDEFGHIJK,調(diào)用函數(shù)之后,字符串b中的內(nèi)容則為A
3、BC DEF GHI JK。#include void fun(char *p,char *b) int i,k=0; while(*p)/*found*/ i=1;/*found*/ while(i3 | *p) bk=*p; k+;p+;i+; if(*p)/*found*/ bk= ; bk=0;main() char a80,b80; printf(enter a string ); gets(a); printf(the original string: ); puts(a); fun(a,b); printf(nthe string after insert space: ); p
4、uts(b); printf(nn);二、錯(cuò)誤分析題目中p是指針型變量作函數(shù)參數(shù),因此給bk賦值時(shí)出現(xiàn)錯(cuò)誤。應(yīng)改為bk=*p;題目要求賦值3個(gè)字符后加一個(gè)空格,所以應(yīng)該是先給bk賦值空格,然后變量k再加1。應(yīng)改為bk= ;k+第3題一、題目要求下列給定程序中,函數(shù)fun的功能是:用冒泡法對(duì)6個(gè)字符串按由小到大的順序進(jìn)行排序。#include #include #define MAXLINE 20fun ( char *pstr6) int i, j ; char *p ; for (i = 0 ; i 5 ; i+ ) for (j = i + 1; j 0) p = *(pstr + i)
5、;/*found*/ *(pstr + i) = pstr + j ; *(pstr + j) = p ; main( ) int i ; char *pstr6, str6MAXLINE ; clrscr( ) ; for(i = 0; i 6 ; i+) pstri = stri ; printf( nEnter 6 string(1 string at each line): n ) ; for(i = 0 ; i 6 ; i+) scanf(%s, pstri) ; fun(pstr) ; printf(The strings after sorting:n) ; for(i = 0
6、; i 6 ; i+) printf(%sn, pstri) ;二、錯(cuò)誤分析根據(jù)for語句的格式,各表達(dá)式之間應(yīng)用;割開,應(yīng)該為for (j = i + 1; j 6; j+)根據(jù)用指針表示數(shù)組元素的方法,*(pstrI)表示pstr所指向數(shù)組的第I個(gè)元素,同理*(pstrj)表示pstr所指向數(shù)組的第j個(gè)元素。所以應(yīng)該為)*(pstr + i) = *(pstr + j) ;第4題一、題目要求下列給定程序中函數(shù)fun的功能是:計(jì)算正整數(shù)num的各位上的數(shù)字之積。例如,若輸入252,則輸出應(yīng)該是20。若輸入202,則輸出應(yīng)該是0。#include #include long fun (long
7、 num)/*found*/ long k; do k*=num%10;/*found*/ num=10; while(num); return (k);main( ) long n ; clrscr() ; printf(Please enter a number:); scanf(%ld,&n) ; printf(n%ldn,fun(n) ;二、錯(cuò)誤分析k用來存放各位數(shù)字的積,初始值應(yīng)為1,應(yīng)該為long k=1;除號(hào)應(yīng)用/來表示,所以應(yīng)改為num/=10;第5題一、題目要求下列給定程序中,fun函數(shù)的功能是:求出以下分?jǐn)?shù)序列的前n項(xiàng)之和。和值通過函數(shù)值返回main()函數(shù)。 例如,若n=
8、5,則應(yīng)輸出8.391667。#include #include /*found*/fun(n)int n ; int a=2,b=1 ,c,k ; double s=0.0 ; for(k =1;k=n;k+ ) s=s+1.0*a/b ;/*found*/ c=a; a+=b;b+=c; return(s) ;main( ) int n = 5 ; clrscr( ) ; printf( nThe value of function is: %lfn,fun(n) ;二、錯(cuò)誤分析由語句return(s)和變量s定義為double數(shù)據(jù)類型可知,該函數(shù)定義時(shí)其類型標(biāo)識(shí)符為double類型。所以
9、應(yīng)該為double fun(int n)注意數(shù)據(jù)類型double的書寫格式。所以應(yīng)該為s=s+(double)a/b;第6題一、題目要求下列給定程序中,函數(shù)fun的功能是:通過某種方式實(shí)現(xiàn)兩個(gè)變量值的交換,規(guī)定不允許增加語句和表達(dá)式。例如變量a中的值原為8,b中的值原為3。程序運(yùn)行后a中的值為3,b中的值為8。#include #include int fun(int *x,int y) int t;/*found*/ t=x;x=y;/*found*/ return(y);main() int a=3, b=8; clrscr(); printf(%d %dn,a,b); b=fun(&a,
10、b); printf(%d %dn,a,b);二、錯(cuò)誤分析變量t作為中間變量,然后進(jìn)行數(shù)據(jù)交換,因參數(shù)x是指針變量,交換時(shí)應(yīng)使用*x,所以應(yīng)該為t=*x;*x=y;確定返回值,根據(jù)代碼bfun(8a,b)可以知道返回值將賦給變量b,而b中應(yīng)存放交換前*中的值,所以函數(shù)應(yīng)返回變量t,所以應(yīng)該為return(t);第7題一、題目要求下列給定程序中,函數(shù)fun的功能是:求出兩個(gè)非零正整數(shù)的最大公約數(shù),并作為函數(shù)值返回。例如,若給numl和num2分別輸入49和2l,則輸出的最大公約數(shù)為7;若給numl和num2分別輸入27和81,則輸出的最大公約數(shù)為27。#include int fun(int a
11、, int b) int r,t; if(ab)/*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); printf(num1=%d num2=%dnn,num1,num2); a=fun(num1,num2); printf(the maximun common divisor is %dnn,a);二、錯(cuò)誤分析將a、b的值互換,應(yīng)先將a的值賦給中
12、間變量t,再將b的值賦給a,最后將t的值賦給b,所以應(yīng)該為t=a; a=b; b=t;當(dāng)余數(shù)r為0時(shí),除數(shù)b即為所求的最大公約數(shù),所以函數(shù)應(yīng)返回b,所以應(yīng)該為return(b);第8題一、題目要求下列給定程序中函數(shù)fun的功能是:將長整型數(shù)中每一位上為奇數(shù)的數(shù)依次取出,構(gòu)成一個(gè)新數(shù)放在t中。高位仍在高位,低位仍在低位。例如,當(dāng)s中的數(shù)為87653142時(shí),t中的數(shù)為7531。#include #include void fun (long s, long *t) int d; long sl=1;/*found*/ t = 0; while ( s 0) d = s%10;/*found*/
13、if (d%2 = 0) *t = d * sl + *t;sl *= 10; s /= 10;main() long s, t; clrscr(); printf(nPlease enter s:); scanf(%ld, &s); fun(s, &t); printf(The result is: %ldn, t);二、錯(cuò)誤分析變量t是指針變量,所以對(duì)t進(jìn)行賦初值0是不對(duì)的。因?yàn)閠指向的是存放新數(shù)的變量,所以此處應(yīng)給新數(shù)賦初值0,即*t0;變量d表示數(shù)s各個(gè)位上的數(shù),此處的if條件應(yīng)為判斷d是否為奇數(shù),所以此處應(yīng)為if (d%2 != 0)第9題一、題目要求下列給定程序中,函數(shù)fun的功能
14、是:將一個(gè)由八進(jìn)制數(shù)字字符組成的字符串轉(zhuǎn)換為與其面值相等的十進(jìn)制整數(shù)。規(guī)定輸入的字符串最多只能包含5位8進(jìn)制數(shù)字。例如,若輸入77777,則輸出將是32767。#include int fun(char *p) int n;/*found*/ n=*p-o; p+; while(*p!=0)/*found*/ n=n*7+*p-o; p+; return n; main() char s6; int i; int n; printf(enter a string(ocatal digits):); gets(s); if(strlen(s)5)printf(error: string too
15、longer!nn); exit(0); for(i=0;si;i+) if(si7) printf(error:%c not is ocatal digits!nn,si); exit(0); printf(the original string:); puts(s); n=fun(s); printf(n%s is convered to integer number: %dnn,s,n);二、錯(cuò)誤分析0和1是字符串中的數(shù)字字符,為了進(jìn)行數(shù)字運(yùn)算,必須要將數(shù)字字符轉(zhuǎn)換為數(shù)字,用數(shù)字字符減去字符0的ASCII碼,就得到對(duì)應(yīng)的數(shù)字。題中給出的是o,不是0,所以此處為n= *P-0;要在一個(gè)八進(jìn)
16、制數(shù)的最后加上一位,原來各個(gè)位上的數(shù)上升一位,只需將原數(shù)乘以8再加上個(gè)位數(shù),所以此處為n=n*8+*P-0;第10題一、題目要求 下列給定程序中,函數(shù)fun的功能是:計(jì)算并輸出k以內(nèi)最大的10個(gè)能被13或17整除的自然數(shù)之和。k的值由主函數(shù)傳入,若k的值為500,則函數(shù)值為4622。#include #include int fun( int k ) int m=0,mc=0,j,n; while(k =2) & (mc10) /*found*/ if(k%13=0) | (k%17 =0) m = m+ k; mc+; k-; return m;/*found*/_main ( ) prin
17、tf(%dn,fun (500); 二、錯(cuò)誤分析if(k%13=0) | (k%17 =0)目的是判斷K能否整除13或17而“=”是賦值號(hào)應(yīng)該改為:if(k%13=0) | (k%17=0) “_”應(yīng)該改為“”填空題第1題一、 題目要求 函數(shù)fun的功能是:把形參a所指數(shù)組中的最小值放在元素a0中,接著把形參a所指數(shù)組中的最大值放在a1中,再把a(bǔ)所指數(shù)組中的次小值放在a2中,把a(bǔ)所指數(shù)組中的次大值放在a3;其余依此類推。例如:若a所指數(shù)組中的數(shù)據(jù)最初排列為:9、l、4、2、3、6、5、8、7,則按規(guī)則移動(dòng)后,數(shù)據(jù)排列為1、9、2、8、3、7、4、6、5,形參n中存放a所指數(shù)組中數(shù)據(jù)的個(gè)數(shù)。#i
18、nclude #define N 9void fun(int a, int n) int i,j, max, min, px, pn, t; for (i=0; in-1; i+=2) /*found*/ max = min = _1_; px = pn = i; for (j=i+1; jn; j+) /*found*/ if (max_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; m
19、ain() int bN=9,1,4,2,3,6,5,8,7, i; printf(nThe original data :n); for (i=0; iN; i+) printf(%4d , bi); printf(n); fun(b, N); printf(nThe data after moving :n); for (i=0; iN; i+) printf(%4d , bi); printf(n);二、算法分析 本程序完成的功能是找出指定數(shù)組中的最小值和最大值依次放入a0、a1中,再依次找出剩余數(shù)中的最小和最大值放入數(shù)組,從而得到一個(gè)新數(shù)組。for循環(huán)語句循環(huán)體中對(duì)max和min賦值,
20、第一個(gè)空白處應(yīng)為:“_ai_”。通過一次for循環(huán),找到數(shù)組中的最大值,第二個(gè)空白處應(yīng)為:“_aj_”。通過一次for循環(huán),找到數(shù)組中的最小值,第三個(gè)空白處應(yīng)為:“_aj_”。第2題1、 題目要求函數(shù)fun的功能是進(jìn)行數(shù)字字符轉(zhuǎn)換。若形參ch中是數(shù)字字符09,則0轉(zhuǎn)換成9,1轉(zhuǎn)換成8,2轉(zhuǎn)換成7, 9轉(zhuǎn)換成0;若是其它字符則保持不變;并將轉(zhuǎn)換后的結(jié)果作為函數(shù)值返回。#include /*found*/_1_ fun(char ch)/*found*/ if (ch=0 & _2_)/*found*/ return 9- (ch-_3_); return ch ;main() char c1,
21、c2; printf(nThe result :n); c1=2; c2 = fun(c1); printf(c1=%c c2=%cn, c1, c2); c1=8; c2 = fun(c1); printf(c1=%c c2=%cn, c1, c2); c1=a; c2 = fun(c1); printf(c1=%c c2=%cn, c1, c2);二、算法分析 本程序完成的功能是進(jìn)行數(shù)字字符轉(zhuǎn)換。對(duì)函數(shù)fun()的定義,函數(shù)名前是返回值的數(shù)據(jù)類型,第一個(gè)空白處應(yīng)為:“_char_”。判斷ch是否是數(shù)字字符,第二個(gè)空白處應(yīng)為:“_ch=9_”。進(jìn)行數(shù)字字符的轉(zhuǎn)換,第三個(gè)空白處應(yīng)為:“_0_”
22、。第3題一、題目要求給定程序中,函數(shù)fun的功能是:求ss所指字符串?dāng)?shù)組中長度最短的字符串所在的行下標(biāo),作為函數(shù)值返回,并把其串長放在形參n所指變量中。ss所指字符串?dāng)?shù)組中共有M個(gè)字符串,且串長N。#include #include #define M 5#define N 20int fun(char (*ss)N, int *n) int i, k=0, len= N;/*found*/ for(i=0; i_1_; i+) len=strlen(ssi); if(i=0) *n=len;/*found*/ if(len _2_ *n) *n=len; k=i; /*found*/ ret
23、urn(_3_);main()char ssMN=shanghai,guangzhou,beijing,tianjing,chongqing; int n,k,i; printf(nThe original strings are :n); for(i=0;iM;i+)puts(ssi); k=fun(ss,&n); printf(nThe length of shortest string is : %dn,n); printf(nThe shortest string is : %sn,ssk);二、算法分析本函數(shù)的功能是求一字符串?dāng)?shù)組中長度最長的字符串所在的行下標(biāo),并作為函數(shù)值返回。ss
24、所指字符串?dāng)?shù)組中共有M個(gè)字符串,所以第一個(gè)空白處為:“_M_”。求長度最短的字符串,*n中存放的是已知字符串中長度最短的字符串的長度,這里將當(dāng)前字符串長度與*n比較,若小于*n,則將該長度值賦給*n,因此第二處空白為:“_”。將最短字符串的行下標(biāo)作為函數(shù)值返回,變量k儲(chǔ)存行下標(biāo)的值,所以第三處空白為:“_k_”。第4題一、題目要求給定程序中,函數(shù)fun的功能是:將s所指字符串中的所有數(shù)字字符移到所有非數(shù)字字符之后,并保持?jǐn)?shù)字字符串和非數(shù)字字符串原有的先后次序。例如,形參s所指的字符串為:def35adh3kjsdf7。執(zhí)行結(jié)果為:defadhkjsdf3537。#include void fu
25、n(char *s) int i, j=0, k=0; char t180, t280; for(i=0; si!=0; i+) if(si=0 & si=9) /*found*/ t2j=si; _1_; else t1k+=si; t2j=0; t1k=0;/*found*/ for(i=0; ik; i+) _2_;/*found*/ for(i=0; i_3_; i+) sk+i=t2i;main() char s80=ba3a54j7sd567sdffs; printf(nThe original string is : %sn,s); fun(s); printf(nThe res
26、ult is : %sn,s);二、算法分析本程序的功能是將一數(shù)組中所指字符串中的所有數(shù)字字符移到所有非數(shù)字字符之后,并保持?jǐn)?shù)字字符串和非數(shù)字字符串原有的先后次序。根據(jù)函數(shù)fun中的內(nèi)容可知,數(shù)組t1存儲(chǔ)了s中的非數(shù)字字符,數(shù)組t2存儲(chǔ)了s中的數(shù)字字符,為了存儲(chǔ)下一個(gè)數(shù)字字符,下標(biāo)j要進(jìn)行加1操作,所以第一個(gè)空白處應(yīng)為:“_i+_”。將s串中的數(shù)字與非數(shù)字字符分開后,要先將非數(shù)字字符放入字符串s中,所以第二個(gè)空白處應(yīng)為:“_si=t1i_”。最后要將數(shù)字字符加到s串之后,并且i要小于數(shù)字的個(gè)數(shù)j,所以第四處空白應(yīng)為: “_j_”。第5題一、題目要求給定程序的功能是將既在字符串s中出現(xiàn)、又在字符
27、串t中出現(xiàn)的字符形成一個(gè)新的字符串放在u中,u中字符按原字符串中字符順序排列,但去掉重復(fù)字符。例如,當(dāng)s=“122345”,t=“2467”時(shí),u中的字符串為:“24”。#include #include void fun (char *s, char *t, char *u) int i, j, sl, tl, k, ul=0; sl = strlen(s); tl = strlen(t); for (i=0; isl; i+) for (j=0; jtl; j+) if (si = tj) break; if(jtl) for (k=0; k=ul)/*found*/ uul+=_2_ ;
28、 /*found*/ _3_ = 0;main() char s100, t100, u100; printf(nPlease enter string s:); scanf(%s, s); printf(nPlease enter string t:); scanf(%s, t); fun(s, t, u); printf(The result is: %sn, u);二、算法分析程序的功能是將既在字符串s中出現(xiàn)、又在字符串t中出現(xiàn)的字符形成一個(gè)新的字符串放在u中,u中字符按原字符串中字符順序排列,但去掉重復(fù)字符。重復(fù)字符時(shí)結(jié)束本次循環(huán),去掉重復(fù)字符。第一個(gè)空白處應(yīng)為:“_=_”。既在字符串
29、s中出現(xiàn)、又在字符串t中出現(xiàn)的字符si賦給uul+第二個(gè)空白處應(yīng)為:“_si_”。為u添加字符串結(jié)束標(biāo)志。第三個(gè)空白處應(yīng)為:“_uul_”。 第6題一、題目要求給定程序中,函數(shù)fun的功能是;統(tǒng)計(jì)形參s所指字符串中數(shù)字字符出現(xiàn)的次數(shù),并存放在形參t所指的變量中,最后在主函數(shù)中輸出。例如,形參s所指的字符串為:abcdef35adgh3kjsdf7。輸出結(jié)呆為;4。#include void fun(char *s, int *t) int i, n; n=0;/*found*/ for(i=0; _1_ !=NULL; i+)/*found*/ if(si=0&si= _2_ ) n+;/*f
30、ound*/ _3_ ;main() char s80=abcdef35adgh3kjsdf7; int t; printf(nThe original string is : %sn,s); fun(s,&t); printf(nThe result is : %dn,t);二、算法分析統(tǒng)計(jì)某一形參所指的字符串中數(shù)字字符出現(xiàn)的次數(shù)。通過for循環(huán)語句,來判斷是否到字符串結(jié)尾,變量i用來存放字符串?dāng)?shù)組下標(biāo),則第一個(gè)空白處應(yīng)為: “_si_”。根據(jù)題目要求此處為判斷數(shù)字字符,所以第二個(gè)空白處應(yīng)為: “_9_”。將數(shù)字字符個(gè)數(shù)存入變量t中,所以第三個(gè)空白處應(yīng)為: “_*t=n_”。第7題一、題目要
31、求函數(shù)fun的功能是;把形參a所指數(shù)組中的奇數(shù)按原順序依次存放到aO、a1、a2、中,把偶數(shù)從數(shù)組中刪除,奇數(shù)個(gè)數(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。#include #define N 9int fun(int a, int n) int i,j; j = 0; for (i=0; in; i+)/*found*/ if (ai%2=_1_) /*found*/ aj = ai; _2_; /*found*/ return _3_;main() int bN=9,1,4,2,
32、3,6,5,8,7, i, n; printf(nThe original data :n); for (i=0; iN; i+) printf(%4d , bi); printf(n); n = fun(b, N); printf(nThe number of odd : %d n, n); printf(nThe odd number :n); for (i=0; in; i+) printf(%4d , bi); printf(n);二、算法分析本題考查:if語句條件表達(dá)式;自增/自減運(yùn)算符;函數(shù)返回值。進(jìn)行奇偶數(shù)的判定,可以通過if條件語句來判斷數(shù)組元素是否是奇數(shù),如果元素不能被2整除
33、,則為奇數(shù),所以第一個(gè)空白處應(yīng)為: “_if (ai%21)_”。將為奇數(shù)的元素重新存放到數(shù)組的前面,同時(shí)下標(biāo)增1, 所以第二個(gè)空白處應(yīng)為: “_9_”。函數(shù)返回值需要返回?cái)?shù)組中奇數(shù)的個(gè)數(shù),因此返回變量j, 所以第二個(gè)空白處應(yīng)為: “_j_”。第8題一、題目要求函數(shù)fun的功能是:逆置數(shù)組元素中的值。例如:若a所指數(shù)組中的數(shù)據(jù)依次為:1、2、3、4、5、6、7、8、9,則逆置后依次為:9、8、7、6、5、4、3、2、1。形參n給出數(shù)組中數(shù)據(jù)的個(gè)數(shù)。#include void fun(int a, int n) int i,t;/*found*/ for (i=0; i_1_; i+) t=ai
34、;/*found*/ ai = an-1-_2_;/*found*/ _3_ = t; main() int b9=1,2,3,4,5,6,7,8,9, i; printf(nThe original data :n); for (i=0; i9; i+) printf(%4d , bi); printf(n); fun(b, 9); printf(nThe data after invert :n); for (i=0; i9; i+) printf(%4d , bi); printf(n);二、算法分析本題主要考查for循環(huán)語句以及變量交換算法。逆置數(shù)組元素中的值,將a0與an1對(duì)換位置,
35、依此類推,那么需要對(duì)換n/2次,所以第一個(gè)空白處應(yīng)為: “_n/2_”。將a0與an1對(duì)換位置,a1與an2對(duì)換位置,依次類推,則aian1i, 所以第一個(gè)空白處應(yīng)為: “_i_”。普通的調(diào)換位置程序,顯然填入ani1, 所以第一個(gè)空白處應(yīng)為: “_an1i_”。第9題一、題目要求給定程序的功能是;調(diào)用函數(shù)fun將指定源文件中的內(nèi)容復(fù)制到指定的目標(biāo)文件中,復(fù)制成功時(shí)函數(shù)返回值是1,失敗時(shí)返回值為0。在復(fù)制的過程中,把復(fù)制的內(nèi)容輸出到終端屏幕。主函數(shù)中源文件名放在變量sfname中,目標(biāo)文件名放在變量tfname中。 #include #include int fun(char *source,
36、 char *target) FILE *fs,*ft; char ch;/*found*/ if(fs=fopen(source, _1_)=NULL) return 0; if(ft=fopen(target, w)=NULL) return 0; printf(nThe data in file :n); ch=fgetc(fs);/*found*/ while(!feof(_2_) putchar( ch );/*found*/ fputc(ch,_3_); ch=fgetc(fs); fclose(fs); fclose(ft); printf(nn); return 1;main(
37、) char sfname20 =myfile1,tfname20=myfile2; FILE *myf; int i; char c; myf=fopen(sfname,w); printf(nThe original data :n); for(i=1; i30; i+) c=A+rand()%25;fprintf(myf,%c,c); printf(%c,c); fclose(myf);printf(nn); if (fun(sfname, tfname) printf(Succeed!); else printf(Fail!);二、算法分析本程序完成的功能是讀取源文件內(nèi)容,將讀出的數(shù)據(jù)
38、寫入目標(biāo)文件中。源文件應(yīng)該以讀方式打開。第1個(gè)空白處應(yīng)為: “_r_”。對(duì)源文件進(jìn)行讀操作,直到讀到文件結(jié)束。第2個(gè)空白處應(yīng)為:“_fs_”。調(diào)用fputc函數(shù),將一個(gè)字符寫入目標(biāo)文件。第3的空白處應(yīng)為:“_ft_”。 第10題一、題目要求給定程序的功能是:從鍵盤輸入若干行文件(每行不超過80個(gè)字符),寫到文件myfile4.txt中,用-1作為字符串輸入結(jié)束的標(biāo)志。然后將文件的內(nèi)容讀出顯示在屏幕上。文件的讀寫分別由自定義函數(shù)ReadText和WriteText實(shí)現(xiàn)。#include #include #include void WriteText(FILE *);void ReadText(
39、FILE *);main() FILE *fp; if(fp=fopen(myfile4.txt,w)=NULL) printf( open fail!n); exit(0); WriteText(fp); fclose(fp); if(fp=fopen(myfile4.txt,r)=NULL) printf( open fail!n); exit(0); ReadText(fp); fclose(fp);/*found*/void WriteText(FILE _1_) char str81; printf(nEnter string with -1 to end :n); gets(str
40、); while(strcmp(str,-1)!=0) /*found*/ fputs(_2_,fw); fputs(n,fw); gets(str); void ReadText(FILE *fr) char str81; printf(nRead file and output to screen :n); fgets(str,81,fr); while( !feof(fr) ) /*found*/ printf(%s,_3_); fgets(str,81,fr); 二、算法分析程序的功能是:從鍵盤輸入若干行文件(每行不超過80個(gè)字符),寫到文件myfile4.txt中,用-1作為字符串輸
41、入結(jié)束的標(biāo)志。然后將文件的內(nèi)容讀出顯示在屏幕上義一個(gè)文件指針fw第一個(gè)空白處應(yīng)為:“_*fw_”。將str81字符串輸入到fw所指文件中 第二個(gè)空白處應(yīng)為:“_str_”。 將字符串輸出第三個(gè)空白處應(yīng)為:“_str_”。 編程題第1題1、 題目要求 某學(xué)生的記錄由學(xué)號(hào)、8門課程成績和平均分組成,學(xué)號(hào)和8門課程的成績已在主函數(shù)中給出。請(qǐng)編寫函數(shù)fun,它的功能是:求出該學(xué)生的平均分放在記錄的ave成員中。請(qǐng)自己定義正確的形參。例如,若學(xué)生的成績是855,76,695,85,9l,72,645,875,則他的平均分應(yīng)當(dāng)是78875。#include #define N 8typedef struc
42、t char num10; double sN; double ave;STREC;void fun() main()STRECs=GA005,85.5,76,69.5,85,91,72,64.5,87.5; int i; fun(&s); printf(the %ss student data:n,s.num); for(i=0;iN;i+) printf(%4.1fn,s.si); printf(nave=%7.3fn,s.ave); 二、算法分析1 主要數(shù)據(jù)結(jié)構(gòu)char num10;用于存放學(xué)號(hào)double sN;用于存放8門課程成績2 算法描述遍歷s數(shù)組,計(jì)算總分。計(jì)算平均分。遍歷s.
43、s數(shù)組,輸出學(xué)生的學(xué)號(hào)、8門課程成績和平均分。 三、實(shí)現(xiàn)代碼void fun(STREC *a)double ave=0.0; int i; for(i=0;iN;i+) (a*).ave=(a*).ave+(a*).si; (a*).ave/=N;四、程序測(cè)試程序測(cè)試結(jié)果正確,需要注意的是需要定義一個(gè)指針類型的形參STREC*a。第2題一、題目要求請(qǐng)編寫函數(shù)fun,它的功能是:求出l到1000之內(nèi)能被7或11整除、但不能同時(shí)被7和11整除的所有整數(shù)并將它們放在a所指的數(shù)組中,通過n返回這些數(shù)的個(gè)數(shù)。#include #include void fun (int *a, int *n) main()int aa1000,n,k; clrscr(); fun(aa,&n); for(k=0;kn;k+) if(k+1)%10=0) printf(n); else printf(%5d,aak);二、算法分析1 主要數(shù)據(jù)結(jié)構(gòu)int aa
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 養(yǎng)生課題申報(bào)書范例
- 醫(yī)藥集采合同范例
- 廠車出租合同范例
- 課題申報(bào)書如何排版
- 劇本轉(zhuǎn)讓合同范本
- 伐樹合同范本
- 合同范本工程延期
- 完善老舊農(nóng)機(jī)報(bào)廢更新機(jī)制的措施
- 發(fā)票附帶合同范本
- 后增補(bǔ)合同范例
- 金屬的電化學(xué)腐蝕與防護(hù) 完整版課件
- 保密風(fēng)險(xiǎn)評(píng)估報(bào)告
- 09式 新擒敵拳 教學(xué)教案 教學(xué)法 圖解
- CAD術(shù)語對(duì)照表
- 《橋梁工程計(jì)算書》word版
- 學(xué)術(shù)論文的寫作與規(guī)范課件
- 香港牛津新魔法Newmagic3AUnit4Mycalendar單元檢測(cè)試卷
- 中考《紅星照耀中國》各篇章練習(xí)題及答案(1-12)
- 中華人民共和國特種設(shè)備安全法(節(jié)選)
- 長RP心動(dòng)過速的心電圖鑒別診斷
- 施工現(xiàn)場(chǎng)安全隱患檢查(附標(biāo)準(zhǔn)規(guī)范)
評(píng)論
0/150
提交評(píng)論