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

下載本文檔

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

文檔簡介

1、導(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)操作。#include <stdio.h>main()int a,b ;scanf("

2、%d%d",&a,&b);printf("a=%d,b=%dn",a,b) ;a=;b=;a=;printf("a=%d,b=%dn",a,b) ;)3.2下面程序的功能是根據(jù)近似公式:%2/61/12+1/22+1/32+ +1/n2,求兀值。#include <math.h>double pi(long n)double s=0.0;long i ;for(i=1 ; i<=n ; i+)s=s+ ;return();)3.31下面的程序的功能是求一維數(shù)組中的最小元素。findmin(int *s,int

3、t,int *k)intp ;for(p=0,*k=p ; p<t; p+)if(sp<s*k);)main()int a10,i,*k=&i;for(i=0 ; i<10 ; i+) scanf("%d",&ai);findmin(a,10,k) ;printf("%d,%dn",*k,a*k);)3.4 下面程序的功能是計算1-3+5- 7+-99+101的值。main() int i,t=1,s=0;for(i=1 ; i<=101 ; i+=2);s=s+t ;;) printf("%dn&quo

4、t;,s) ;)3.5 1有以下程序段:s=1.0 ;for(k=1 ; k<=n; k+) s=s+1.0/(k*(k+1);printf("%fn",s) ;填空完成下述程序,使之與上述程序的功能完全相同。s=0.0 ;;k=0; dos=s+d ;;d=1.0/(k*(k+1);while(); printf("%fn",s) ;3,6 下面程序的功能是從鍵盤上輸入若干學(xué)生的學(xué)習(xí)成績,統(tǒng)計并輸出最高成績和最低成績,當(dāng)輸入為負(fù)數(shù)時結(jié)束輸入。main()float x,amax,amin ; scanf("%f',&x)

5、;amax=x;amin=x; while()if(x>amax) amax=x ; if( )amin=x ; scanf("%f',&x);)printf("namax=%fnamin=%fn",amax,amin) ;)3.7 下面程序的功能是將形參x的值轉(zhuǎn)換為二進(jìn)制數(shù),所得的二進(jìn)制數(shù)放在一個一維數(shù)組中返回,二進(jìn)制數(shù)的最低位放在下標(biāo)為。的元素中。fun(int x,int b)int k=0,r;dor=x% ;bk+=r ;x/=;while(x);)3,8 下面程序的功能是輸出1到100之間每位數(shù)的乘積大于每位數(shù)的和的數(shù)。例如數(shù)字2

6、6,數(shù)位上數(shù)字的乘積12大于數(shù)字之和8omain()int n,k=1 ,s=0,m;for(n=1 ; n<=100; n+)k=1 ;s=0;;while()k*=m%10; s+=m%1Q ;) if(k>s) printf("%d",n) ;)3,9 下面程序的功能是統(tǒng)計用。至9之間的不同的數(shù)字組成的三位數(shù)的個數(shù)。main() int ij,k,count=0 ;for(i=1 ; i<=9 ; i+) for(j=0 ; j<=9 ; j+) if( )continue ;else for(k=0 ; k<=9; k+) if( )c

7、ount+ ; printf("%d",count) ;)3,10下面程序的功能是輸出100以內(nèi)的個位數(shù)為6、且能被3整除的所有數(shù)。main() int i.j ;for(i=0 ;;i+) j=i*10+6 ;if( )countinue ;printf("%d",j) ; ) )3,11 下面程序的功能是用輾轉(zhuǎn)相除法求兩個正整數(shù)m和n的最大公約數(shù)。hcf(int m,int n) intr ; if(m<n) r=m ;; n=r;) r=m%n while() m=n ;n=r;r=m%r);)3,12 程序的功能是使用冒泡法對輸入的10個浮

8、點數(shù)從小到大進(jìn)行排序。序的10個數(shù)分兩行輸出。程序如下:#include <stdio.h>main()(;int ij ;printf("lnput 10 numbers pleasen") ;for(i=0 ;;i+)scanf("%f, &ai);printf("n") ;for(i=2 ;;i+)for(j=0 ;;j+) if()x=aj;;aj+1=x ;)printf("The sorted 10 numbers ; n");for(i=0 ;;i+)if()printf("n&q

9、uot;) ;printf("%ft",ai) ;)printf("n") ;)3,13 程序的功能是讀入20個整數(shù),統(tǒng)計非負(fù)數(shù)個數(shù),并計算非負(fù)數(shù)之和。#include "stdio.h" main()int i,a20,s,count ;s=count=0 ;for(i=0; i<20 ; i+ )scanf("%d",);for(i=0; i<20 ; i+)if(ai<0)排好;s+=ai;count+ ;)printf("s=%dt count=%dn",s,count

10、);)3,14 下面程序的功能是刪除字符串s中的空格。#include <stdio.h>main() char *s="Beijing ligong daxue" ;int ij ;for(i=j=0 ; si!='0' i+)if(si!=");else ;sj尸'0'printf("%s",s) ;)3,151下面程序的功能是將字符串 s中所有的字符'C刪除。請選擇填空。#include<stdio.h>main()char s80;int ij ;gets(s);for(i

11、=j=0 ; si!= '0' i+)if(si!= 'c');sj尸'0'puts(s);)3,16 程序的功能是輸出兩個字符串中對應(yīng)相等的字符。請選擇填空。#include <stdio.h> char x="programming" ; char y="Fortran" ; main() int i=0;while(xi!= '0' && yi!= '0') if(xi=yi) printf("%c", ); else i

12、+ ; )3,17 程序的功能是將字符串s中的每個字符按升序的規(guī)則插到數(shù)組a中,字符串a(chǎn)已排好序。#include <string.h> main()char a20="cehiknqtw" ; char s="fbla" ;int i,k,j ;for(k=0 ; sk!= '0' k+)j=0 ;while(sk>=aj && aj!= '0')j+ ; for(); aj=sk; ) puts(a); )3,181下面程序的功能是對鍵盤輸入的兩個字符串進(jìn)行比較,然后輸出兩個字符串中第

13、一個不相同字符的ASCII碼之差。例如:輸入的兩個字符串分別為"abcdefg"和"abceef',則輸出為-1。#include <stdio.h> main()charstr1100,str2100,c;int i,s ;printf("Enter string 1:"); gets(str1);printf("Enter string 2:"); gets(str2);i=0 ;while(str1 i = str2i && str1 i!=)i+ ;s=;printf("

14、%dn", s) ;)【3.19下面的函數(shù)expand在將字符串s復(fù)制到字符串t時, 表符轉(zhuǎn)換為可見的轉(zhuǎn)義字符表示,即用 VT表示換行符,用't' expand(char s,char t) int i.j ;for(i=j=0 ; si!= '0' i+)switch (si) case 'n': t =; tj+ = 'n'break ;case 't': t 二 ;tj+ = t;break ;default: t=si;break ; )tj=;)【3.20下面的函數(shù)index(char s口,

15、char t) 檢查字符串若包含,則返回t在s中的開始位置(下標(biāo)值),否則送回 -1 index(char s, char t)inti,j,k ;for(i=0 ; si!= '0' i+)for(j=i,k=0 ; && sj=tk; j+,k+);將其中的換行符和制 表木制表符。s中是否包含字符串t ,if()return (i);)return(-1) ;) n【321下面程序的功能是計算S= k! ok=0long fun(int n)inti ;long s ;for(i=1 ; i ;i+)s*=i ;return();) main()int k,

16、n ;long s ;scanf("%d",&n);s=;for(k=0 ; k<=n; k+)s+=;printf("%ldn",s) ;)3,22 下面程序的功能是顯示具有n個元素的數(shù)組s中的最大元素。#define N 20main()int i,aN ;for(i=0 ; i<N; i+)scanf("%d",&ai);printf("%dn", );)fmax(int s,int n)int k,p ;for(p=0,k=p ; p<n; p+)if(sp>sk);

17、return (k);)3,23 程序的功能是由鍵盤輸入n,求滿足下述條件的x、y:nx和ny的末3位數(shù)字相同,且 xwy, x、y、n均為自然數(shù),并使 x+y為最小。#include <stdio.h>pow3(int n,int x)int i, last ;for(last=1 ,i=1; i<=x ; i+ )last=;return(last) ;)main()intx,n,min,flag=1 ;scanf("%d", &n);for(min=2 ; flag ; min+)for(x=1 ; x<min && f

18、lag ; x+ )if( && pow3(n,x)=pow3(n,min-x) printf("x=%d,y=%dn", x, min-x);;)3,24 的程序是用遞歸算法求a的平方根。求平方根的迭代公式如下:#include <math.h>double mysqrt( double a, double xO )double x1, y ;x1 二;if(fabs(x1-x0)>0.00001 )y = mysqrt( );else y = x1;return(y );)main()double x ;printf("Ent

19、er x:");scanf("%lf, &x);printf("The sqrt of %lf=%lfn", x, mysqrt( x, 1.0) )【325】以下程序是計算學(xué)生的年齡。已知第一位最小的學(xué)生年齡為10歲,其余學(xué)生的年齡一個比一個大2歲,求第5個學(xué)生的年齡。#include <stdio.h> age( int n)int c ;if( n=1 ) c=10;else c=; return (c) ;) main()int n=5;printf("age:%dn", );)【3.26下面的函數(shù)sum(

20、int n)完成計算1n的累加和。 sum(int n)if(n<=0)printf("data errorn") ;if(n=1); else ;)3,27 的函數(shù)是一個求階乘的遞歸調(diào)用函數(shù)。facto(int n)if( n = 1 );else return();)【328】組合問題,由組合的基本性質(zhì)可知:(1) C(m,n)=C(n-m,n)(2) C(m,n+1)=C(m,n)+C(m-1,n)公式(2)是一個遞歸公式,一直到滿足 C(1,n)=n為止。當(dāng)門<2*01時,可先用公式(1)進(jìn) 行簡化,填寫程序中的空白,使程序可以正確運行。#include

21、"stdio.h"main()int m,n ;printf("lnput m,n=");scanf("%d%d", &m, &n);printf("The combination numbeers is %dn", combin(m,n);)combin( int m, int n)int com ;if( n<2*m ) m=n-m ;if( m=0 ) com=1 ;else if(m=1);else ;return(com);)【329】下列函數(shù)是求一個字符串str的長度。? int

22、strlen( char *str)?if( )return (0);? ? else return ();)【3.30用遞歸實現(xiàn)將輸入小于32768的整數(shù)按逆序輸出。如輸入12345,則輸出54321。#include"stdio.h"main()int n ;printf("lnput n :");scanf("%d",);r(n);printf("n"));r( int m ) printf("%d",m =if();3,31 輸入n值,輸出高度為n的等邊三角形。例如當(dāng) n=4時的圖形如下

23、:#include <stdio.h> void prt( char c, int n ) if( n>0) printf( "%c", c);)main()int i, n ;scanf("%d", &n);for( i=1; i<=n ; i+);printf("n") ;)3,32 下面的函數(shù)實現(xiàn)N層嵌套平方根的計算。double y(double x, int n)if( n=0)return (0);else return ( sqrt(x+( ) ;3.33 函數(shù)revstr(s)將字符串s

24、置逆,如輸入的實參s為字符串"abcde",則返回時s為字符串"edcba”。遞歸程序如下:revstr( char *s) char *p=s, c ;while(*p) p+;;if(s<p)c=*s ;*s=*p ;;revstr(s+1) ;;)如下是由非遞歸實現(xiàn)的 revstr(s) 函數(shù):revstr (s) char *s ; char *p=s, c ;while( *p ) p+;;while( s<p)c=*s ;=*p ;*p- = c ;)【3.34下面函數(shù)用遞歸調(diào)用的方法,將str中存放的長度為n的字符串反轉(zhuǎn)過來,例如原來是&

25、quot;ABCDE",反序為"EDCBA”。void invent(char *str , int n)chart ;t=*str ; *str=*(str+n-1); *(str+n-1)=t; if( n>2) invent (,n-2);else ;)3,35從鍵盤上輸入10個整數(shù),程序按降序完成從大到小的排序。#include <stdio.h> int array10 ;sort( int *p, int *q )int *max, *s ;if()return ;max=p for( s=p+1; s<=q ; s+)if( *s &g

26、t; *max);swap();sort();)swap( int *x, int *y ) int temp temp=*x ;*y=temp ;)main();for( i=0; i<10 ; i+)int i ; printf("Enter data :n") scanf("%d", &arrayi) ; sort();printf("Output:") ; for( i=0; i<10 ; i+)printf("%d ", arrayi) ; )3,36 下面函數(shù)的功能是將一個整數(shù)存放到

27、一個數(shù)組中。存放時按逆序存放。例如:483存放成"384" o#include <stdio.h> void convert(char *a, int n) inti ;if(i=n/1O) !=0) convert( ,i);*a =;)char str1O=""main() int number ;scanf("%d", &number) convert( str, number) puts(str) ;)3,37下面程序的功能是實現(xiàn)數(shù)組元素中值的逆轉(zhuǎn)。#include <string.h>main

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

29、34=1,2,3.4,5,6,7.8,9,10,11.12, *p=a;main()int i.j;for(i=0;i<3 ;i+ )forO=0; j<4; j+)printf("%4d",);)3,39 程序的功能是:從鍵盤上輸入一行字符,存入一個字符數(shù)組中,然后輸出該字符串。#include <stdio.h> main () char str81, *sptr ;int i ;for(i=0 ; i<80 ; i+ )stri=getchar();if(stri= 'n') break;)stri=;sptr=str ;

30、while( *sptr)putchar( *sptr );)3,40 函數(shù)的功能是將字符變量的值插入已經(jīng)按ASCII碼值從小到大排好序的字符串中。void fun(char *w,char x,int *n)int i,p=0;while(x>wp) ;for(i=*n ; i>=p ; i-);wp=x ;+*n ;)3,41 下面程序的功能是從鍵盤上輸入兩個字符串,對兩個字符串分別排序;然后 將它們合并,合并后的字符串按ASCII碼值從小到大排序,并刪去相同的字符。#include <stdio.h>strmerge(a , b, c) /*將已排好序的字符串a(chǎn)、

31、b合并到c */char *a , *b , *c; char t , *w;w=c;while( *a!= '0' *b!='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 != '0') /*以下將a或b中剩下的字符存入 w */if( *a != *w ) *+w=*a+;else a+ ;while( *b != '0')if(

32、 *b != *w ) *+w=*b+;else b+ ;*+w =;)strsort( char *s ) /*將字符串s中的字符排序 */inti , j , n;chart , *w;;for( n=0 ; *w != '0' )w+;for( i=0; i<n-1 ; i+ )for( j=i+1; j<n ; j+ )if( si>sj)main() char s1 100, s2100 , s3200;printf("nPlease Input First String:");scanf("%s" , s1)

33、;printf("nPlease Input Second String:");scanf("%s" , s2);strsort(sl) ;strsort(s2) ;='0'strmerge(s1 , s2, s3);printf("nResult:%s" , s3);)3,42已知某數(shù)列前兩項為2和3,其后繼項根據(jù)前面最后兩項的乘積,按下列規(guī)則生成: 若乘積為一位數(shù),則該乘積即為數(shù)列的后繼項;若乘積為二位數(shù),則該乘積的十位上的數(shù)字和個位上的數(shù)字依次作為數(shù)列的兩個后 繼項。下面的程序輸出該數(shù)列的前N項及它們的和,其中,

34、函數(shù) sum(n,pa)返回數(shù)列的前N 項和,并將生成的前N項存入首指針為pa的數(shù)組中,程序中規(guī)定輸入的 N值必須大于 2,且不超過給定的常數(shù)值MAXNUM例如:若輸入N的值為10,則程序輸出如下內(nèi)容:sum(10)=44 2361886424 #include "stdio.h" #define MAXNUM 100 int sum(n, pa) int n, *pa ;int count, total, temp ;*pa = 2 ;=3;total=5 ;count=2 ;while( count+<n )temp = *(pa-1) * *pa ; if( t

35、emp<10) total += temp ; *(+pa) = temp ; ) else =temp/10 ; total += *pa ;if( count<n) count + ; pa+ ;=temp%10 ; total += *pa ;) ) );) main() int n, *p, *q, numMAXNUM ; do printf("lnput N=? (2<N<%d):", MAXNUM+1) ; scanf("%d", &n);while();printf("nsum(%d)=%dn&qu

36、ot;, n, sum(n, num) ;for( p=num, q =; p<q ; p+ )printf("%4d", *p);printf("n") ; )3,43 程序的功能是輸入學(xué)生的姓名和成績,然后輸出。#include <stdio.h> struct stuinfchar name20 ; /* 學(xué)生姓名 */ int score ; /* 學(xué)生成績 */ stu, *p ;main () p=&stu ; printf("Enter name:") ; gets(); printf(&quo

37、t;Enter score:");scanf("%d",); printf("Output: %s, %dn", , );)3,44 程序的功能是按學(xué)生的姓名查詢其成績排名和平均成績。查詢時可連續(xù) 進(jìn)行,直到輸入0時才結(jié)束。? #include <stdio.h>#include <string.h>#define NUM 4 ? struct student ? int rank ;char *name ;float score ;? stu = 3, "liming" , 89.3 ,? 4 ,

38、"zhanghua" , 78.2 ,? 1 , "anli" , 95.1 ,? 2 , "wangqi" , 90.6);?main()? char str10;? int i? do printf("Enter a name") ;? scanf("%s" , str);? for( i=0; i<NUI4 i+)? if( )? printf("Name :%8sn", );? printf("Rank :%3dn", st

39、ui.rank) ;? printf("Average :%5.1fn", stui.score)? if( i>=NUM ) printf("Not foundn");? while( strcmp(str , "0")!=0);?3,45 1下面程序的功能是從終端上輸入5個人的年齡、性別 和姓名,然后輸出。#include "stdio.h"struct manchar name20;unsigned age ;char sex7 ;);main () struct man person5 ;data_i

40、n(person,5) ;data_out(person,5) ;) data_in(struct man *p, int n ) struct man *q =;for( ; p<q; p+) printf( "age:sex:name");scanf("%u%s", &p->age, p->sex) ;)data_out( struct man *p, int n ) struct man *q =_;for( ; p<q; p+)printf("%s ; %q %sn", p->name,

41、p->age, p->sex) )3,46輸入N個整數(shù),儲存輸入的數(shù)及對應(yīng)的序號,并將輸入的數(shù)按從小到大的順 序進(jìn)行排列。要求:當(dāng)兩個整數(shù)相等時,整數(shù)的排列順序由輸入的先后次序決定。例 如:輸入的第3個整數(shù)為5,第7個整數(shù)也為5,則將先輸入的整數(shù) 5排在后輸入的整 數(shù)5的前面。程序如下:#include "stdio.h"#define N 10structint no ;int num ; arrayN;main()int i , j , nurr|for( i=0; i<N ; i+ ) printf("enter No. %d:"

42、, i);scanf("%d" , &num);for( ;j>=O&&arrayj.num num; )arrayj+1=arrayj ;array .num=num ;array.no=i ;for( i=0; i<N ; i+ )printf("%d=%d , %dn” , i , arrayi.num , arrayi.no) ;【3.47】以下程序的功能是:讀入一行字符(如:a、.y、z),按輸入時的逆序建立一個鏈接式的結(jié)點序列,即先輸入的位于鏈表尾(如下圖),然后再按輸入的相反順 序輸出,并釋放全部結(jié)點。#inclu

43、de <stdio.h> main() struct node char info ;struct node *link ; *top , *p ; charc ;top=NULL;while(c= getchar() p=(struct node *)malloc(sizeof(struct node) p->info=c ;p->link=top ;top=p ;while( top );top=top->link ;putchar(p->info) ;free(p); 【3.48下面函數(shù)將指針p2所指向的線性鏈表,串接到 p1所指向的鏈表的末端。假定p

44、1所指向的鏈表非空。#define NULL 0 struct link float a ; struct link *next ;;concatenate ( p1 , p2 ) struct list *p1, *p2 ; if( p1->next=NULL ) p1->next=p2 ; else concatenate( ,p2); 【3.49下面程序的功能是從鍵盤輸入一個字符串,然后反序輸出輸入的字符串。#include <stdio.h> struct node char data ; struct node *link ; *head ; main() c

45、har ch ; struct node *p ; head = NULL ; while( ch=getchar()!='n') p = (struct node *)malloc(sizeof(struct node);p->data = ch ; p->link =;head =;);while( p!=NULL) printf("%c", p->data) ;p = p->link ;)0時才停止3,50下面程序的功能是從鍵盤上順序輸入整數(shù),直到輸入的整數(shù)小于 輸入。然后反序輸出這些整數(shù)。#include <stdio.

46、h>struct dataint x ;struct data *link ;)*P ;input()int num ;struct data *q ;printf("Enter data:");scanf("%d", &num);if( num<0);q =;q->x = num ;q->link = p ;P=q;)main() printf("Enter data until data<O:n");p=NULLinput();printf("Output:") ;whil

47、e()printf("%dn", p->x);)3,51 下面函數(shù)的功能是創(chuàng)建一個帶有頭結(jié)點的鏈表,將頭結(jié)點返回給主調(diào)函數(shù)。 鏈表用于儲存學(xué)生的學(xué)號和成績。新產(chǎn)生的結(jié)點總是位于鏈表的尾部。struct studentlong num ;int score ;struct student *next ;);struct student *creat() struct student *head=NULL,*tail ;long num ; int a ;tail= malloc(LEN); doscanf("%ld,%d",&num,&

48、;a) ;if(num!=0)if(head=NULL) head=tail ;else ;tail->num=num ; tail->score=a ;tail->next=(struct student *)malloc(LEN);)else tail->next=NULL ;while(num!=O);return();)【332】下面create函數(shù)的功能是建立一個帶頭結(jié)點的單向鏈表,新產(chǎn)生的結(jié)點總是插入在鏈表的末尾。單向鏈表的頭指針作為函數(shù)值返回。#include <stdio.h>#define LEN sizeof(struct student

49、) struct studentlong num ;int score ;struct student *next ;);struct student *creat() struct student *head=NULL,*tail ;long num ;int a ;tail=()malloc(LEN);doscanf("%ld,%d",&num,&a) ;if(num!=0)if(head=NULL) head=tail ;else tail=tail->next ;tail->num=num ;tail->score=a ;tail-

50、>next=( )malloc(LEN);)else tail->next=NULL ;while(num!=O);;)3,53下面程序的功能是統(tǒng)計文件中的字符的個數(shù)。#include <stdio.h>main()long num=0 ; *fp ;if(fp=fopen("fname.dat", "r")=NULL) printf("Can't open the file!");exit(O);)while()fgetc(fp);num+;)printf("num=%dn",nu

51、m) ;fclose(fp) ;)【334】下面程序的功能是把從鍵盤輸入的文件(用作為文件結(jié)束標(biāo)志)復(fù)制到一個名為second.txt的新文件中。#include <stdio.h>FILE *fp ;main()char ch ;if(fp=fopen( )=NULL)exit(O);while(ch=getchar()!='')fputc(ch,fp) ;;)3,55下面程序的功能是將磁盤上的一個文件復(fù)制到另一個文件中,兩個文件名在 命令行中給出(假定給定的文件名無誤)。#include <stdio.h>main(int argc,char *ar

52、gv)FILE &f1,*f2;if(argc< ) printf("The command line error!");exit(O);)f1=fopen(argv1, "r");f2=fopen(arhv2, "w");while()fputs(fgetc(f1), );;)3,56 下面程序的功能是根據(jù)命令行參數(shù)分別實現(xiàn)一個正整數(shù)的累加或階乘。如果可執(zhí)行文件的文件名是sm,則執(zhí)行該程序時輸入:"sm + 10",可以實現(xiàn)加;輸入:"sm-10",可以實現(xiàn)求10的階乘。#inc

53、lude <stdio.h>#include <stdlib.h>main (int argc,char *argv)int n ;void sum(),mult() ;void (*funcp)();n=atoi(argv2);if(argc!=3 | n<=0)dispform();switch () case funcp=sum ;break ;casefuncp=mult;break ;default: dispform(););)void sum(int m)int i,s=0;for(i=1 ; i<m; i+);printf("sum

54、=%dn",s) ;)void mult(int m)long int i, s=1;for(i=1 ; i<=m; i+)printf("mult= %ldn" ; s);) dispform()例如: printf ("usage:sm n(+/!) (n>O)n") 10 的累 exit (0);)3,57 程序的功能是鍵盤上輸入一個字符串,把該字符串中的小寫字母轉(zhuǎn)換為大寫字母,輸出到文件 test.txt 中,然后從該文件讀出字符串并顯示出來。#include <stdio.h>main()char str100

55、;int i=0 ;FILE *fp ;if(fp=fopen("test.txt",)=NULL) printf("Can't open the fileAn");exit(O);)printf("lnput a string:n");gets(str);while(stri)if(stri>= 'a'&&stri<= 'z')stri=;fputc(stri,fp) ;i+ ;)fclose(fp) ;fp=fopen("test.txt",

56、);fgets(str,strlen(str)+1 ,fp);printf("%sn",str) ;fclose(fp) ;)10個整數(shù)以二進(jìn)制方式寫入名為3,58 程序的功能是將從終端上讀入的"bi.dat"的新文件中。#include <stdio.h>FILE *fp ;main()inti.j ;if( fp=fopen( ,"wb") = NULL )exit (0);for( i=0; i<10 ; i+ ) scanf("%d", &j);fwrite( ,sizeof(in

57、t), 1,);)fclose( fp) ;)并統(tǒng)計、> 'n'3.59以字符流形式讀入一個文件, 輸出每種關(guān)鍵字在文件中出現(xiàn)的次數(shù)。 結(jié)束的字符串。#include <stdio.h>#include <string.h> FILE *cp ;char fname20, buf100;int num ; struct key char word10 ; int count ;keyword= "if', 0, "char", 0, "int", 0, "else", 0, "while", 0, "return", 0 char *getword (FILE *fp) int i=0;從文件中檢索出六種C語言的關(guān)鍵字,本程序中規(guī)定:單詞是一個以空格或't'char c ;while(c=getc(fp) !=

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論