C語言程序填空題_第1頁
C語言程序填空題_第2頁
C語言程序填空題_第3頁
C語言程序填空題_第4頁
C語言程序填空題_第5頁
已閱讀5頁,還剩92頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、prin tf(',a=%d,b=%dn,',a,b)導(dǎo)讀:在程序填空題中,已經(jīng)給出了程序的主干,讀者首先要理解程序的思路,再選擇正確 的內(nèi)容填入空白處,使程序完成既定的功能。 這類習(xí)題的設(shè)計就是要引導(dǎo)讀者逐步 掌握編 程的方法。本節(jié)習(xí)題的難度適中,可能有些典 型的程序在課堂上已經(jīng)有所接觸,讀者一定 要獨立完成它,這樣就可以逐步提 高自己的 編程能力。在程序設(shè)計語言學(xué)習(xí)的中期,讀者 對程序設(shè)計已經(jīng)有了初步的了解,而自己編 寫程序又不知從何處入手,此時解答此類題 目可以避免盲目性,從而提高學(xué)習(xí)的 效率3.1下面程序的功能是不用第三個變量, 實現(xiàn)兩個數(shù)的對調(diào)操作。#in elude

2、 <stdio.h>mai n()int a,b seanf(',%d%d,',&a,&b) ; prin tf("a=%d,b=%dn",a)b)b=;a=;)3,2下面程序的功能是根據(jù)近似公式: n 2/6 -1/12+1/22+1/32+1/n2,求n值。#in elude <math.h>double pi( long n) double s=0.0;long i ;for(i=1 ; i<=n ; i+)s=s+ ;return();3.3下面的程序的功能是求一維數(shù)組中 的最小元素。findmin (i

3、 nt *s,i nt t,i nt *k)intpfor(p=0,*k=p ; pvt; p+)if(sp<s*k);)mai n()int a10,i,*k=&i;for(i=0 ; i<10 ; i+)sea nf(”cr,&ai);fin dmi n(a,10,k);prin tf(”d,%dn7k,ak)3,4 程序的功能是計算1 -3+5- 7+ -99+101 的值。mai n()s=s+t ;;prin tf("dn”,s);3,5 下程序段:s=1.0 ;for(k=1 ; k<=n; k+)s=s+1.0/(k*(k+1);pri

4、n tf(',%fn",s);填空完成下述程序,使之與上述程序的功能完全相同。s=0.0 ;int i,t=1 ,s=0:k=0 :for(i=1 ; i<=101 ; i+=2)dos=s+d ;prin tf(nnamax=%fnamin=%fn amax,ami;*d=1.0/(k*(k+1);while();3,7下面程序的功能是將形參x的值轉(zhuǎn)換 為二進制數(shù),所得的二進制數(shù)放在一個一維 數(shù)組中返回,二進制數(shù)的最低位放在下標(biāo)為。的元素中。3.6下面程序的功能是從鍵盤上輸入若干學(xué)生的學(xué)習(xí)成績,統(tǒng)計并輸出最高成績和最 低fun(int x,int b)成績,當(dāng)輸入為負(fù)

5、數(shù)時結(jié)束輸入。int k=O,rmai n()dofloat x,amax,am in ;r=x% ;bk+=r ;amax=xx/=;amin=x;while(x);while()if(x>amax) amax=x ;if()amin=x ;3,8下面程序的功能是輸出1到100之間每位數(shù)的乘積大于每位數(shù)的和的數(shù)。例如數(shù)字26,數(shù)位上數(shù)字的乘積12大于數(shù)字之和8omai n()intn ,k=1 ,s=O,mint ij,k,co un t=0for(n=1 ; n<=100; n+)for (i=1 ; i<=9 ; i+)k=1 ;for (j=0 ; j<=9 ;

6、 j+)s=0;if ()con ti nue ;else for (k=0 ; k<=9; k+)while()if ()cou nt+ ; k*=m%10;prin tf (H%d",cou nt);s+=m%10;3.10 程序的功能是輸出100以內(nèi)的個位數(shù)為6且能被3整除的所有數(shù)。if(k>s)mai n ()prin tf(n%dH, n);int i,j ;)for (i=0 ;i+)j=i*10+6 ;3.9下面程序的功能是統(tǒng)計用。至9之間的不同的數(shù)字組成的三位數(shù)的個數(shù)。if ()coun " nue ;mai n()3,11下面程序的功能是用輾轉(zhuǎn)

7、相除法求 兩個正整數(shù)m和n的最大公約數(shù)。hcf(i nt m,i nt n)int r ;if(m<n)r=m ;n=r ;r=m%nwhile() m=n ;n=r ;r=m%n入的10個浮點數(shù)從小到大進行排序。排好序的10個數(shù)分兩行輸出。程序如下:#include <stdio.h>mai n();int i,j ;prin tf(n In put 10 nu mbers please' n");for(i=0 ;i+ )sea nf(,%f, & ai);prin tf(nnn) ;for(i=2 ;i+ )for(j=0 ;j+)if()x=

8、aj;3.12 程序的功能是使用冒泡法對輸aj+1=x ;for(i=0 ; i<20 ; i+ )printf("The sorted 10 numbers ; nn);for(i=0 ;i+ )if(®)prin tf("n”);prin tf(n%ftH,ai) ;prin tf("rT) ;3.13 程序的功能是讀入20個整數(shù), 統(tǒng)計非負(fù)數(shù)個數(shù),并計算非負(fù)數(shù)之和。#i nclude "stdio.h"mai n()int i,a205s5co unt ;s=count=0 ;for(i=0 ; i<20 ; i+)

9、if(ai<0);s+=ai;coun t+ ;prin tf(ns=%dt coun t=%dn",s,co unt) ;3.14 程序的功能是刪除字符串s中 的空格。#include <stdio.h>mai n() char *s='*Beiji ng lig ong daxuen ;int i,j ;for(i=j=0 ; si!=,0,; i+)else ;scanf(”d”,);計(S叩=”);scanf(”d”,);else ;sO= '0'prin tf(n%sn,s)char x=nprogrammi ngchar y=&q

10、uot;FortranH mai n()3,15下面程序的功能是將字符s中所int i=0磷勺字符'd刪除。請選擇填空。; while(xi!=VT &&yi!= VX)#include<stdio.h>if(xi=yi)mai n()printf(n%cn, ); char s80;elseint i,j ;i+gets(s);;char s="fbla” ;for(i=j=0 ; s昨'0' i+)if(si!= 'c')sD= '0';puts(s);3.17下面程序的功能是將字符串s中的 每個

11、字符按升序的規(guī)則插到數(shù)組a中,字符 串a(chǎn)已排好序。# nclude <stri ng.h>mai n() char a20=,'cehik nq tw"3,16下面程序的功能是輸出兩個字符串 中對應(yīng)相等的字符。請選擇填空。int i,kj#in elude <stdio.h>int i,sfor(k=0 ; sk!= fOf ; k+)j=0;prin tf("E nter stri ng 1: *') ; gets(strl)while(sk>=aj && aj!= '01)j+;for();aj=sk

12、;puts(a);3,18下面程序的功能是對鍵盤輸入的兩 個字符串進行比較,然后輸出兩個字符串中第 一個不相同字符的ASCII碼之差。例如:輸入 的兩個字符串分別為“abcdefg”和 "abceefn,則輸出為-1。#in elude <stdio.h>mai n()prin tf("E nter stri ng 2: *') ; gets(str2)i=0 ;while(str1i = str2i && str1i!=)i+ ;s=;printf("%dnH, s);3.19下面的函數(shù)expand在將字符串s 復(fù)制到字符串t

13、時,將其中的換行符和制表 符 轉(zhuǎn)換為可見的轉(zhuǎn)義字符表示,即用VT表示換 行符,用Y'表示制表符。expa nd(char s,char t)int i,j ;for(i=j=0 ; si!='0'; i+) char str1100,str2100,ccase 'n': t二;for(j=i,k=0 ; && sj=tkj+,k+);tj+ = h ;訐()break ;return (i);case %: t卜;) 田+ = t ;return(-1);break ;default: t卜si;nbreak ;3,21 下面程序的功能是

14、計 S= k!o算k=0怩;long fun (i nt n) int i ;3.20 下面的函數(shù) index(char s, char電)檢查字符串s中是否包含字符串t,若long s ;包含,則返回t在s中的開始位置(下標(biāo)值),for(i=1 ; i ;i+)否則送回in dex(char s, char t)return(2); int ij,kfor(i=0 ; si!=XT ; i+)mai n()int k,n ;long s ;seanf("%dn,&n);s二;for(k=0 ; k<=n; k+)s+=;prin tf(H%ldnn,s) ;)3,22

15、 程序的功能是顯示具有n個元 素的數(shù)組s中的最大元素。#defi ne N 20mai n()int i,aN;for(i=0 ; i<N ; i+)fmax(i nt s,i nt n)int k,p ;for(p=0,k=p ; pvn; p+)if(sp>sk);return(k);)3,23 程序的功能是由鍵盤輸入n, 求滿足下述條件的x、y:nx和ny的末3位數(shù)字相同,且XMy, x、y n均為自然數(shù),并使x+y為最小。#include <stdio.h>pow3(i nt n ,i nt x)int i, last ;for(last=1 ,i=1 ; i&

16、lt;=x ; i+)last=;return(last);sea nf(n%dn,&ai)printf(n%dnn, );mai n()if( fabs(x1-x0)>0.00001 )int x,n,min, flag=1 ;sea nf(”cT, &n);for(min=2 ; flag ; min+)for(x=1 ; x<min && flag ; x+ )if( && pow3( n,x)=pow3( n,mi n-x) prin tf("x=%d,y=%dn',5 x, mi n-x );3.24下面的

17、程序是用遞歸算法求a的平方根。求平方根的迭代公式如下:#in elude <math.h>double mysqrt( double a, double xO ) double x1, y ;y = mysqrt();else y = x1 ;return( y );)mai n() double x ;prin tf(ME nter x:");sea nf("%lf' &x);prin tf(MThe sqrt of %lf=%lfn", x, mysqrt( x, 1.0);3,25 程序是計算學(xué)生的年齡。已知 第一位最小的學(xué)生年齡

18、為10歲,其余學(xué)生的 年齡一個比一個大2歲,求第5個學(xué)生的年 齡。x1 =;#inelude <stdio.h>age( int n )else ;int c ;if( n=1 ) c=10;else c=0 ;return(c);mai n()int n=5;printf("age:%dnH, );3,26 的函數(shù)sum(int n)完成計算1 一 n的累加和。sum(i nt n)if(n<=0)prin tf(ndata error'n")3,27 的函數(shù)是一個求階乘的遞歸調(diào)用函數(shù)。facto(int n)if( n = 1 );else r

19、eturn();3,28 問題,由組合的基本性質(zhì)可知: C(m, n)=C( n-m, n)(2) C(m,n+1)=C(m,n)+C(m-1 ,n)公式是一個遞歸公式,一直到滿足C(1,n)=n為止。當(dāng)nv2*m時,可先用公式進行簡化,填寫程序中的空白,使程序可以 正確運行。#i ncludetdio.h"age( int n )mai n()int m,n ; prin tf(" In put m,n 二");seanf(H%d%dH, &m, &n);3.30用遞歸實現(xiàn)將輸入小于32768的整 數(shù)按逆序輸出。如輸入12345,則輸出54321

20、。prin tf(HThe comb in ati on nu mbeersis %dnH, combi n(m5n)#i ncludenstdio.hnmai n()comb in( int m, int n)int n ;int com ;printf(Hlnput n :");if( n< 2*m ) m=n-m ;scanf(”%d”,);if( m=0 ) com=1 ;r(n);else ;return(com);r( int m )的長m =;3,29下列函數(shù)是求一個字符串str訐();? int strle n( char *str)?if 0) return

21、(0)【3.31】輸入n值,輸出高度為n的等邊三角形。例如當(dāng)n=4時的圖形如下:#in elude <stdio.h>void prt( char c, int n )if( n>0 ) prin tf( "c”, c );;)mai n()int i, n ;sea nf("cT, &n);for( i=1; i<=n ; i+)(;3.32 的函數(shù)實現(xiàn)N層嵌套平方根的、I XX 計舁。double y(double x, int n)if( n=0 )return(O);else retur n ( sqrt(x+();)3.33 rev

22、str(s)將子符串s置逆, 如輸入的實參s為字符串"abede”,則返回時s為字符串七deba”。遞歸程序如下:revstr( char *s ) char *p=s, c ;while(*p) p+ ;;if(svp) c= s ;*S=*P ;;revstr(s+1);;如下是由非遞歸實現(xiàn)的數(shù):revstr (s)char *s ; char *p=s, c ;while( *p ) p+;;while( s<p)c=*s ;=*p ;*)3.34 函數(shù)用遞歸調(diào)用的方法,將str 中存放的長度為n的子符串反轉(zhuǎn)過來,例如原來是“ABCDE”反序為“EDCBA”void in

23、vent(char *str , int n) char t ;revstr(s)函t=*str ; *str=*(st 口十 n-1); *(str+ n-1)=tif( n>2 ) invent (,n-2);else ;)3.35 盤上輸入10個整數(shù),程序按降 序完成從大到小的排序。#include <stdio.h>int array10;sort( int *p, int *q )int *max, *s ;if(0)printf(H%dn, arrayi)return ;max=p for( s=p+1; s<=q ; s+)if( *s > *max

24、 );swap();sort();swap( int *x, int *y ) int temptemp=*x ;*x=*y ;*y=temp ;mai n()int i ; prin tf("E nter data :n")for( i=0; i<10 ; i+)scanf(M%d", &arrayi) ; sort();prin tf(nOutput:n) ;3.36 函數(shù)的功能是將一個整數(shù)存 放到一個數(shù)組中。存放時按逆序存放。例 如:483存放成放84”。#include <stdio.h>void conv ert(char *a

25、, int n) int i ;if(i=n/1O) !=0)conv ert(,i);*a =;char str10=,H,;mai n()int nu mber ;sea nf("%dn, &n umber);conv ert( str, nu mber) for( i=0 ; i<10 ;i+)puts(str););3.37 程序的功能是實現(xiàn)數(shù)組元素中 值的逆轉(zhuǎn)。#i nclude <stri ng.h>mai n()inti,n=10,a10=1,2,3,4,5,6,7,8,9,10;inv ert(a, n-1);for(i=0 ; i<1

26、0 ; i+)prin tf(n%4d"5ai);prin tf("n”);)inv ert(i nt *s,i nt num)int 氣 k ;t=s+num;while()*t=k ;3,38下面程序通過指向整型的指針將數(shù) 組a34的內(nèi)容按3行X4列的格式輸出, 請給printf() 填入適當(dāng)?shù)膮?shù),使之 通過指針P將數(shù)組元素按要求輸出。#include <stdio.h>inta34=1,2,3,4,5,6,7,8,9,10,11,12, *p=a ;mai n()int i,j ;for(i=0 ; i<3 ; i+ )for(j=0 ; j<

27、;4 ; j+ )printf(',%4d ”, k=*s ; s=*t ;3,40下面函數(shù)的功能是將字符變量的值3.39下面程序的功能是:從鍵盤上輸入符串中。一行字符,存入一個字符數(shù)組中,然后輸出該字符串。void fun( char *w,char x,i nt *n)int i,p=0;#in elude <stdio.h>mai n ()while(x>wp); char str81, *sptr ; for(i=*n ; i>=p ; i-);int i ;+* n;wp=x ;for(i=0 ; i<80 ; i+ ) stri=getchar

28、()if(stri= 'n") break)stri=;sptr=str ;while( *sptr)putchar( *sptr );3.41 程序的功能是從鍵盤上輸入兩 個字符串,對兩個字符串分別排序;然后將它們合并,合并后的字符串按ASCII碼值從 小到大排序,并刪去相同的字符。#include <stdio.h>strmerge(a , b, c)/*將已排好序的字符串a(chǎn)、b合并到c*/char *a , *b, *插入已經(jīng)按ASCII碼值從小到大排好序的字3,40下面函數(shù)的功能是將字符變量的值chart, *w;w=c;strsort( char *s

29、) /*將字符串s中的字while( *a!= '0' 七!='0')t=? *a+:*b<*a ? *b+ :();/*將*a、*b的小者存入t*/if( *w '0') *w=t ;else if( t *w) *+w=t ; /* 將與 *w 不相同的t存入w*/while( *a != VT ) /* 以下將 a 或 b 中 剩下的字符存入w*/else b+ ;符排序*/inti , j , n;chart , *w;for( n=0 ; *w!=W;)w+for( i=0; i<n-1 ; i+)for( j=i+1; j

30、vn ; j+ )if( *a != *w ) *+w=*a+else a+ ;while( *b CO)if( *b != *w ) *+w=*b+*+w =(6);if( si>sD)©mai n() char s1 100, s2100, s3200;prin tf(nnPlease In put First Strin g:H);scanf("%s" , s1);prin tf(nnPlease In put Secondseanf(,'%sH, s2);例如:若輸入N的值為10,則程序輸Stri ng:")*pa = 2 ;=3

31、;total=5 ;count=2 ;while( coun t+vn )temp = *(pa-1) * *paif( temp<10)seanf(n%sH, s2);例如:若輸入N的值為10,則程序輸strsort(sl);出如下內(nèi)容:strsort(s2);sum(10)=44二 vr ;2361886424strmerge(s1 , s2, s3);#i nclude "stdio.h',printf(HnResult:%sM , s3);#defi ne MAXNUM)100 int sum(n, pa)3.42 某數(shù)列前兩項為2和3,其后int n, *pa

32、 ;繼項根據(jù)前面最后兩項的乘積,按下列規(guī)則生成:int count, total, temp若乘積為一位數(shù),則該乘積即為數(shù)列的后 繼項;若乘積為二位數(shù),則該乘積的十位上的數(shù) 字和個位上的數(shù)字依次作為數(shù)列的兩個后繼 項。下面的程序輸出該數(shù)列的前N項及它們的和,其中,函數(shù)sum(n,pa)返回數(shù)列的前N 項和,并將生成的前N項存入首指針為pa 的數(shù)組中,程序中規(guī)定輸入的N值必須大于2,且不超過給定的常數(shù)值MAXNUM*(+pa) = temp ;)else二temp/10 ;total += *pa ;if( countvn )count + ; pa+;=temp%10;total += *pa

33、 ;;mai n()int n, *p, *q, numM AXNUM prin tf(Ml nput N=? (2<N<%d):H,MAXNUM+;)sea nf("cT, &n);while();prin tf(nnsum(%d)=%dnH, n, sum(n, num);for( p=num, q =; p<q ; p+)prin tf("4d”,*p);prin tf(Mnn) ;3.43 程序的功能是輸入學(xué)生的姓 名和成績,然后輸出。#include <stdio.h>struct stui nf char name20 ;

34、/* 學(xué)生姓名/int score ; /* 學(xué)生成績 */ stu, *p ;domain () p=&stu ;? stu = 3, "liming", 89.3 ,? 4, nzhanghuan, 78.2,? 1, nanlin , 95.1,? 2, “wangqi”,90.6;?mai n()?char str10; jnt i .? do prin tf(HE nter a n ameH);? scanf(”s”,str);prin tf(HE nter n ame:H) ;gets();prin tf("E nter score:'

35、*) ;scanf(n%d",);printf("Output: %s, %dn' ,);3,44下面程序的功能是按學(xué)生的姓名查 詢其成績排名和平均成績。查詢時可連續(xù)進 行,直到輸入。時才結(jié)束。? #i nclude <stdio.h>#i nclude <stri ng.h>#defi ne NUM 4? struct stude nt? int rank ;char *name ;? for( i=0 ; ivNUMi+)? if()? prin tf(nName :%8sn"stui. name);? printf(HRank

36、 :%3dn", stui.ra nk);? prin tf("Average :%5.1fnn struct manstui.score) ;? if( i>=NUM ) printf(HNotfoundnH);? while( strcmp(str, “0")!=03.45 程序的功能是從終端上輸入5個人的年齡、性別和姓名,然后輸出。#i nclude "stdio.h"struct manchar n ame20;unsigned age ;char sex7;person5;data_i n( pers on,5);data_ou

37、t(pers on,5);data_i n(struct man *p,);intn) struct man*q 二;for( ; pvq; p+) prin tf( "age:sex:name'f);scanf(',%u%sH, &p->agep->sex);data_out( struct man*p, int n )main ();for( ; pvq; p+ )printf("%s ; %u %sn",p->n ame, p->age, p->sex);【3.46】輸入N個整數(shù),儲存輸入的數(shù)及對 應(yīng)的序

38、號,并將輸入的數(shù)按從小到大的順序 進行排列。要求:當(dāng)兩個整數(shù)相等時,整數(shù) 的排列順序由輸入的先后次序決定。例如: 輸入的第3個整數(shù)為5,第7個整數(shù)也為5, 則將先輸入的整數(shù)5排在后輸入的整數(shù)5的 前面。程序如下:#i nclude "stdio.h"#defi ne N 10structint i , j, numfor ( i=0 ; i<N ; i+ ) printf (Henter No. %d:n , i);scant ("d“, &num;for (®; j>=0&&arrayj.num (2) num;)a

39、rrayj+1=arrayj;array®.num=num ;array (5).no=i ;)for ( i=0 ; i<N ; i+ )printf ("%d=%d , %dn' i, arrayi.num arrayi. no);int no ;3,47以下程序的功能是:讀入一行字符int num ;(如:a、y、z),按輸入時的逆序建立一個鏈接式的結(jié)點序列,即先輸入的位于鏈表 arrayN尾(如下圖),然后再按輸入的相反順序輸while( top )出,并釋放全部結(jié)點。#in elude <stdio.h>main () struct no

40、dechar info ;struct node *li nk ; *top , *p ;char c ;top=NULLwhile(c= getchar() ) p=(struct node *)malloc(sizeof(struct node);p->info=c ;p->li nk=top ;top=top->li nk ;putchar(p->info) ;free(p);3.48 函數(shù)將指針p2所指向的線性 鏈 表,串接到p1所指向的鏈表的末端。假定 p1所指向的鏈表非空。#defi ne NULL 0struct linkfloat a ;struct l

41、ink *n ext ;;con cate nate ( p1 , p2 )struct list *p1, *p2 ;top=p ;if(p1->n ext=NULL)p1->next=p2 ;p->data = ch ;elsep->link =;head =;concatenate。,p2);3.49 程序的功能是從鍵盤輸入一個字符串,然后反序輸出輸入的字符串。#in elude <stdio.h>struct nodechar data ;struct node *li nk ;*head ;mai n()char ch ; p = (struct

42、node;while(p!=NULL) prin tf("%c ",p->data);p = p->li nk ;3.50 程序的功能是從鍵盤上順序輸 入整數(shù),直到輸入的整數(shù)小于。時才停止輸 入。然后反序輸出這些整數(shù)。#include <stdio.h> struct node *p ;struct data head = NULL;int x ; while( ch=getchar()!=,n,)struct data *li nk*P ;*)malloc(sizeof(struct no de)in put()prin tf("Outp

43、ut:n)int num ;struct data *q ;prin tf(HE nter data/') ;seanf("%dM, &num);if( num<0 );q =;q->x = num ;q->li nk = p ;p=q;mai n() prin tf(nE nter data until data<O:nM)p=NULLwhile() prin tf("%dn' p->x);【3.51下面函數(shù)的功能是創(chuàng)建一個帶有頭 結(jié)點的鏈表,將頭結(jié)點返回給主調(diào)函數(shù)。鏈表 用于儲存學(xué)生的學(xué)號和成績。新產(chǎn)生的結(jié)點 總是位

44、于鏈表的尾部。struct stude ntlong num ;int score ;struct stude nt *n ext ;;struct stude nt *creat() struct stude nt *head=NULL,*tailin put();long num ; int a ;數(shù)值返回else tail=tail->nexttail= malloc(LEN); do scan f("ld,%d”,&n um,&a);if(n um!=0)if(head=NULL) head=tail ;else ;tail->num=num ;

45、tail->score=a ;tail->n ext=(struct stude nt*)malloc(LEN);else tail->n ext=NULL ;while( nu m!=0);return();3.52 create函數(shù)的功能是建立一個帶頭結(jié)點的單向鏈表,新產(chǎn)生的結(jié)點總是插#include <stdio.h>入在鏈表的末尾。單向鏈表的頭指針作為函#defi ne LEN sizeof(struct stude nt) struct stude ntlong num ;int score ;struct stude nt *n ext ;;struc

46、t stude nt *creat() struct stude nt *head=NULL,*tail longnum ;int a ;tail=(0)malloc(LEN);do sea nf("%ld,%d",&n um,&a); if(nu m!=0) if(head=NULL) head=tail ;tail->num=num ;tail->score=a ;tail-> next=()malloc(LEN);else tail->n ext=NULL ;while( nu m!=0);3.53 程序的功能是統(tǒng)計文件中的字

47、符的個數(shù)。#in elude <stdio.h>mai n()long num=0 ; *fp ;if(fp=fope n("fname.datn, "r")=NULL) prin tf(nCa n't open the file!'1);while()fgetc(fp);nu m+printf("num=%dnH, num);fclose(fp);13.54下面程序的功能是把從鍵盤輸入的文件(用作為文件結(jié)束標(biāo)志)復(fù)制到一個 名為second.txt的新文件中。#include <stdio.h>FILE *fp

48、;mai n()char ch ;if(fp=fope n()=NULL)exit(O);exit(O);while(ch=getchar() !=,)break ;printf("mult= %ldn" ; s);fputc(ch,fp);3,55下面程序的功能是將磁盤上的一個 文件復(fù)制到另一個文件中,兩個文件名在命令行中給出(假定給定的文件名無誤)O#in elude <stdio.h>main (i nt argc,char *argv)FILE &f1,*f2;if(argc< ) prin tf("The comma nd li

49、ne error!")exit(O);f1=fope n(argv1, "r")fputs(fgetc(f1),); 3.56下面程序的功能是根據(jù)命令行參數(shù) 分別實現(xiàn)一個正整數(shù)的累加或階乘。例如: 如果可執(zhí)行文件的文件名是sm,則執(zhí)行該程 序時輸入:”sm + 10”,可以實現(xiàn)10的累加; 輸入:可以實現(xiàn)求10的階乘。#include <stdio.h>#include <stdlib.h>main (int argc,char *argv)int n ;void sum(),mult() void (*fun cp)()n=atoi(ar

50、gv2) if(argc!=3 | n<=0)dispform(); switch ()f2=fope n( arhv2, nwn) while() case fun cp=sumcase fun cp=multbreak ;default: dispform();void sum(i nt m)int i,s=0;for(i=1 ; i<m; i+);prin tf(nsum=%dnn,s)void mult(i nt m)long int i, s=1;fc"; i . i j -dispform() printf ("usage:sm n (+/!) (n

51、 >0)nH)exit (0);)3,57下面程序的功能是鍵盤上輸入一個 字符串,把該字符串中的小寫字母轉(zhuǎn)換為大 寫字母,輸出到文件test.txt中,然后從該 文件讀出字符串并顯示出來。#include <stdio.h>mai n() char str100;int i=0 ;FILE *fp ;if(fp=fope n(Htest.txtn,)=NULL) prin tf(HCa n't open the file.nH)exit(O);#i nclude <stdio.h>printf(Hlnput a string:nM);gets(str);while(stri)if(stri>= 'a,&&stri<= 'z')str;fputc(stri,fp);i+ ;fclose(fp);fp=fopen("test.txtn, );fgets(str,strle n(str)+1 ,fp) ;prin tf(,%sn',5str);fclose(fp);3.58 程序的功能是將從終端上讀入的10個整數(shù)以二進制方式寫入名為FILE *fp ;"bi.dat"的新文件中。mai n()int i,

溫馨提示

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

評論

0/150

提交評論