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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、導讀:在程序填空題中,已經給出了程序的主干,讀者首先要理解程 序的思路,再選擇正確的內容填入空白處,使程序完成既定的功能。 這類習題的設計就是要引導讀者逐步掌握編程的方法。本節(jié)習題的難 度適中,可能有些典型的程序在課堂上已經有所接觸,讀者一定要獨 立完成它,這樣就可以逐步提高自己的編程能力。在程序設計語言學 習的中期,讀者對程序設計已經有了初步的了解,而自己編寫程序又 不知從何處入手,此時解答此類題目可以避免盲目性,從而提高學習 的效率?!?3.1 】下面程序的功能是不用第三個變量,實現(xiàn)兩個數(shù)的對調操作。#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ù)近似公式:兀1/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.3 】下面的程序的功能是求一維數(shù)組中的最小元素。findmin(int *s,i

3、nt t,int *k) int p ;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("%

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

5、t;,&x) ;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 的值轉換為二進制數(shù),所得的二進制數(shù)放在一個一維數(shù)組中返回,二進制數(shù)的最低位放在下標為0 的元素中。fun(int x,int b) int k=0,r ;do r=x% ;bk+=r ;x/= ;while(x) ;【 3.8 】 下面程序的功能是輸出1 到

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

7、else for(k=0 ; k<=9 ; k+)if( )count+;printf("%d",count) ;【 3.10 】下面程序的功能是輸出100 以內的個位數(shù)為 6、且能被3 整除的所有數(shù)。main() int i,j ;for(i=0 ; i+) j=i*10+6 ;if( ) countinue ;printf("%d",j) ;【 3.11 】 下面程序的功能是用輾轉相除法求兩個正整數(shù) m 和 n 的最大公約數(shù)。hcf(int m,int n) int r ; if(m<n) r=m ;n=r ;r=m%n ;while(

8、) m=n ;n=r ;r=m%n ;【 3.12 】下面程序的功能是使用冒泡法對輸入的10 個浮點數(shù)從小到大進行排序。排好序的10 個數(shù)分兩行輸出。程序如下:#include <stdio.h>main() ;int i,j ;printf("Input 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 s

9、orted 10 numbers ; n") ;for(i=0 ; i+ ) if( )printf("n") ; printf("%ft",ai) ;printf("n") ;【 3.13 】下面程序的功能是讀入20 個整數(shù),統(tǒng)計非負數(shù)個數(shù),并計算非負數(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

10、+) if(ai<0);s+=ai ;count+ ;printf("s=%dt count=%dn",s,count);【 3.14 】下面程序的功能是刪除字符串s 中的空格。#include <stdio.h>main() char *s="Beijing ligong daxue" ;int i,j ;for(i=j=0 ; si!='0' ; i+)if(si!= ' ');else ;sj= '0' ;printf("%s",s) ;【 3.15 】 下面程序

11、的功能是將字符串s 中所有的字符 'c' 刪除。請選擇填空。#include<stdio.h>main( ) char s80 ;int i,j ;gets(s) ;for(i=j=0 ; si!= '0' ; i+ )if(si!= 'c');sj= '0' ;puts(s) ;【 3.16 】 下面程序的功能是輸出兩個字符串中對應相等的字符。請選擇填空。#include <stdio.h>char x="programming" ;char y="Fortran"

12、 ;main() int i=0 ;while(xi!= '0' && yi!= '0')if(xi=yi)printf("%c", );elsei+ ;【 3.17 】 下面程序的功能是將字符串s 中的每個字符按升序的規(guī)則插到數(shù)組a 中 , 字符串 a 已排好序。#include <string.h>main() char a20="cehiknqtw" ;char s="fbla" ;int i,k,j ;for(k=0 ; sk!= '0' ; k+ )

13、 j=0 ;while(sk>=aj && aj!= '0' )j+ ;for( );aj=sk ;puts(a) ;【 3.18 】 下面程序的功能是對鍵盤輸入的兩個字符串進行比較,然后輸出兩個字符串中第一個不相同字符的ASCII 碼之差。例如:輸入的兩個字符串分別為"abcdefg" 和 "abceef" ,則輸出為-1 。#include <stdio.h>main() char str1100,str2100,c;int i,s ;printf("Enter string 1: &quo

14、t;);gets(str1) ;printf("Enter string 2: ");gets(str2) ;i=0 ;while(str1i = str2i && str1i!=)i+ ;s= ;printf("%dn", s) ;【 3.19 】 下面的函數(shù)expand 在將字符串s 復制到字符串 t 時, 將其中的換行符和制表符轉換為可見的轉義字符表示,即用'n' 表示換行符,用't' 表示制表符。expand(char s,char t) int i,j ;for(i=j=0 ; si!= '

15、;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, char t) 檢查字符串s中是否包含字符串t,若包含,則返回t 在 s 中的開始位置(下標值),否則送回-1 。index(char s, char t) int i,j,k ;for(i=0 ; si!= '0' ;

16、 i+ ) for(j=i,k=0 ;&& sj=tk; j+,k+) ;if( )return (i) ;return(-1) ; n【 3.21 】下面程序的功能是計算S= k! 。k=0long fun(int n) int i ;long s ;for(i=1 ; i ; i+)s*=i ;return( ); main() int k,n ;long s ;scanf("%d",&n) ;s= ;for(k=0 ; k<=n ; k+)s+= ;printf("%ldn",s) ;【 3.22 】 下面程序的功能是

17、顯示具有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);return(k) ;【3.23下面程序的功能是由鍵盤輸入n,求滿足下述條件的x、 y:nx和ny的末3位數(shù)字相同,且 xw y, x、y、n均為自然數(shù),并使x+y 為最小。#include <stdio

18、.h>pow3(int n,int x) int i, last ;for(last=1,i=1 ; i<=x ; i+ )last= ;return(last) ;main() int x,n,min,flag=1 ;scanf("%d", &n);for(min=2 ; flag ; min+)for(x=1 ; x<min && flag ; x+ )if( && pow3(n,x)=pow3(n,min-x) printf("x=%d,y=%dn", x, min-x );【 3.24 】

19、 下面的程序是用遞歸算法求a 的平方根。求平方根的迭代公式如下:#include <math.h>double mysqrt( double a, double x0 ) double x1, y ;x1 = ;if( fabs(x1-x0)>0.00001 )y = mysqrt( );else y = x1 ;return( y ) ;main() double x ;printf("Enter x: ");scanf("%lf", &x);printf("The sqrt of %lf=%lfn", x

20、, mysqrt( x,1.0) );【 3.25 】 以下程序是計算學生的年齡。已知第一位最小的學生年齡為10 歲,其余學生的年齡一個比一個大 2 歲,求第5 個學生的年齡。#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(int n)完成計算1n的 累加和。sum(int n) if(n<=0)printf("data errorn")

21、;if(n=1) ;else ;【 3.27 】下面的函數(shù)是一個求階乘的遞歸調用函facto(int n) if( n = 1 ) ; else return( ); 【 3.28 】組合問題,由組合的基本性質可知:(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 為止。當 n<2*m 時,可先用公式(1) 進行簡化,填寫程序中的空白,使程序可以正確運行。#include"stdio.h"main() int m,n ;printf("Input m,n=&q

22、uot;);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) ;【 3.29 】下列函數(shù)是求一個字符串str 的長度。? int strlen( char *str )? if( ) return (0) ;? ? else return

23、();【 3.30 】用遞歸實現(xiàn)將輸入小于32768 的整數(shù)按逆序輸出。如輸入12345 ,則輸出54321 。#include"stdio.h"main() int n ;printf("Input n : ");scanf("%d", );r(n) ;printf("n") ;r( int m ) printf("%d", );m = ;if( );【 3.31 】 輸入 n 值,輸出高度為n 的等邊三角形。例如當 n=4 時的圖形如下:*#include <stdio.h>vo

24、id prt( char c, int n ) if( n>0 ) printf( "%c", c );放的長度為n 的字符串反轉過來,例如原來是"ABCDE" ,反序為"EDCBA" 。void invent(char *str , int n)main() char t ; int i, n ;t=*str ;*str=*(str+n-1);*(str+n-1)=t;scanf("%d", &n);if( n>2 ) invent (, n-2) ;for( i=1 ; i<=n ;i

25、+ )else ; ;【 3.35 】從鍵盤上輸入10 個整數(shù),程序按降序完printf("n") ;成從大到小的排序。#include <stdio.h>int array10 ;【 3.32 】 下面的函數(shù)實現(xiàn)N 層嵌套平方根的計算。sort( int *p, int *q )double y(double x, int n) int *max, *s ; if( n=0 )if( )return(0) ;return ;else return ( sqrt(x+() );max=p ; for( s=p+1 ; s<=q ;s+)if( *s >

26、; *max )【 3.33 】函數(shù)revstr(s) 將字符串s 置逆,如輸入; swap( );的實參s 為字符串"abcde" , 則返回時s 為字符sort( );串 "edcba" 。遞歸程序如下:swap( int *x, int *y ) int temp;revstr( char *s )temp=*x ; char *p=s, c ;*x=*y ;while(*p) p+ ;*y=temp ;if(s<p)main() c=*s ; int i;printf("Enter data :n") ; for( i=

27、0 ;*s=*p ;i<10 ;i+);scanf("%d", &arrayi) ; sort( );revstr(s+1) ;printf("Output:") ;for( i=0 ;i<10 ;i+)printf("%d ", arrayi) ;如下是由非遞歸實現(xiàn)的revstr(s) 函數(shù):【 3.36 】 下面函數(shù)的功能是將一個整數(shù)存放到一個revstr (s)數(shù)組中。存放時按逆序存放。例如:483 存放成char *s ;"384" 。 char *p=s, c ;#include &l

28、t;stdio.h>while( *p ) p+;void convert(char *a, int n); int i ;while( s<p )if(i=n/10) !=0 ) c=*s ;convert( , i ) ;= *p ;*a = ;*p- = c ;char str10= " ";main()【 3.34 】 下面函數(shù)用遞歸調用的方法,將str 中存 int number ;scanf("%d", &number);convert( str, number );puts(str) ;【 3.37 】 下面程序的功能是

29、實現(xiàn)數(shù)組元素中值的逆 轉。#include <string.h> main() int i,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的內容按3行X 4列的格式輸出,請給 printf( ) 填入適

30、當?shù)膮?shù),使之通過指針p 將數(shù)組元素按要求輸出。#include <stdio.h>int a34=1,2,3,4,5,6,7,8,9,10,11,12,*p=a ; main() int i,j ;for(i=0 ; i<3 ; i+ ) for(j=0 ; j<4 ; j+ ) printf("%4d ",);【 3.39 】 下面程序的功能是:從鍵盤上輸入一行字符,存入一個字符數(shù)組中,然后輸出該字符串。#include <stdio.h>main ( ) char str81, *sptr ;int i ;for(i=0 ; i&l

31、t;80 ; i+ ) stri=getchar( );if(stri= 'n') break ;stri= ;sptr=str ;while( *sptr )putchar( *sptr );【 3.40 】 下面函數(shù)的功能是將字符變量的值插入已經按 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 】 下面程序的功能是從鍵盤上輸入兩個字符串,對兩個字符串分別排序;然后將它們合并,

32、合并后的字符串按ASCII 碼值從小到大排序,并刪去相同的字符。#include <stdio.h>strmerge(a , b, c) /* 將已排好序的字符串a、 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 */whil

33、e( *a != '0' ) /* 以下將 a 或 b 中剩下的字符存入 w */if( *a != *w ) *+w=*a+;else a+ ;while( *b != '0')if( *b != *w ) *+w=*b+;else b+ ;*+w = ;strsort( char *s ) /* 將字符串s 中的字符排序*/ int i , j, n ;char t , *w ;for( n=0 ; *w != '0' ;)w+ ;for( i=0 ; i<n-1 ; i+ )for( j=i+1 ; j<n ; j+ )if(

34、si>sj ) main( ) char s1100, s2100 , s3200 ;printf("nPlease Input First String:");scanf("%s" , s1) ;printf("nPlease Input Second String:");scanf("%s" , s2) ;strsort(s1) ;strsort(s2) ;= '0' ;strmerge(s1 , s2 , s3) ;printf("nResult:%s" , s3)

35、;【 3.42 】 已知某數(shù)列前兩項為2 和 3,其后繼項根據(jù)前面最后兩項的乘積,按下列規(guī)則生成: 若乘積為一位數(shù),則該乘積即為數(shù)列的后繼項; 若乘積為二位數(shù),則該乘積的十位上的數(shù)字和個位上的數(shù)字依次作為數(shù)列的兩個后繼項。下面的程序輸出該數(shù)列的前N項及它們的和,其中,函數(shù)sum(n,pa) 返回數(shù)列的前N 項和,并將生成的前N 項存入首指針為pa 的數(shù)組中,程序中規(guī)定輸入的N 值必須大于2 ,且不超過給定的常數(shù)值 MAXNUM 。例如:若輸入N的值為10,則程序輸出如下內容:sum(10)=442 3 6 1 8 8 6 4 2 4#include "stdio.h"#de

36、fine MAXNUM 100int 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( temp<10 ) total += temp ;*(+pa) = temp ;else = temp/10 ;total += *pa ;if( count<n ) count + ; pa+ ;= temp%10 ;total += *pa ;main() int n, *p, *q, numM

37、AXNUM ;do printf("InputN=?(2<N<%d):",MAXNUM+1) ;scanf("%d", &n);while( );printf("nsum(%d)=%dn",n, sum(n,num) ;for( p=num, q =; p<q ;p+ )printf("%4d", *p);printf("n") ;【 3.43 】下面程序的功能是輸入學生的姓名和成績,然后輸出。#include <stdio.h>struct stuinf

38、char name20 ;/* 學生姓名*/int score ;/* 學生成績*/ stu, *p ;main ( ) p=&stu ;printf("Enter name:");gets( );printf("Enter score: ");scanf("%d" ,);printf("Output: %s, %dn",);【 3.44 】 下面程序的功能是按學生的姓名查詢其成績排名和平均成績。查詢時可連續(xù)進行,直到輸入 0 時才結束。? #include <stdio.h>#include

39、<string.h>#define NUM 4? struct student? int rank ;char *namedata_out(person,5) ;data_in(struct man *p,int n ) struct man *q =;for( ; p<q ; p+ ) printf( "age:sex:name" )float score? stu = 3"liming" , 89.3 ,?; ? 4 , "zhanghua" , 78.2 ,? 1 , "anli" , 95

40、.1 ,? 2 , "wangqi" , 90.6 ;?main()? char str10;? int i ;? do printf("Enter a name") ;? scanf("%s" , str) ; ? for( i=0 ; i<NUM ; i+ )? if( )? printf("Name :%8sn") ;? printf("Rank:%3dn"stui.rank) ;?printf("Average:%5.1fn"stui.scor

41、e) ;? ;? scanf("%u%s", &p->age, p->sex) ; ;data_out( struct man *p, int n ) struct man *q = _ _;for( ; p<q ; p+ ) printf("%s ; %u ; %sn", p->name,p->age,p->sex) ;【 3.46 】輸入 N 個整數(shù),儲存輸入的數(shù)及對應的序號,并將輸入的數(shù)按從小到大的順序進行排列。要求:當兩個整數(shù)相等時,整數(shù)的排列順序由輸入的先后次序決定。例如:輸入的第3 個整數(shù)為5 ,第

42、 7個整數(shù)也為5,則將先輸入的整數(shù)5 排在后輸入的整數(shù) 5 的前面。程序如下:#include "stdio.h"? if( i>=NUM ) printf("Not foundn")? while( strcmp(str , "0")!=0 ) ; ?【 3.45 】下面程序的功能是從終端上輸入5個人的年齡、性別和姓名,然后輸出。#include "stdio.hstruct man char name20 ; unsigned age ; char sex7 ;main ( ) struct man person5

43、 data_in(person,5) ;#define N 10 struct int no ;int num ; arrayN ;main( ) int i , j, num ;for( i=0 ; i<N ; i+ ) printf("enter No. %d:", i) ;top=p ;scanf("%d" , &num) ;for( ; j>=0&&arrayj.num num ;)arrayj+1=arrayj ;array .num=num;array .no=i ;for( i=0 ; i<N ;

44、i+ )printf("%d=%d , %dn" , i , arrayi.num ,arrayi.no) ;【 3.47 】以下程序的功能是:讀入一行字符(如:a、y、z),按輸入時的逆序建立一個鏈接式的結點序列,即先輸入的位于鏈表尾(如下圖),然后再按輸入的相反順序輸出,并釋放全部結點。#include <stdio.h>main( ) struct node char info ;struct node *link ; *top , *p ;char c ;top=NULL ;while(c= getchar( ) p=(struct node *)mal

45、loc(sizeof(struct node);p->info=c ;p->link=top ;while( top ) ;top=top->link ;putchar(p->info) ;free(p) ;【 3.48 】下面函數(shù)將指針p2 所指向的線性鏈表,串接到 p1 所指向的鏈表的末端。假定p1 所指向的鏈表非空。#define NULL 0struct link float a ;struct link *next;concatenate ( p1, p2 )struct list *p1, *p2 ; if( p1->next=NULL )p1->

46、;next=p2 ;elseconcatenate( , p2) ;【 3.49 】 下面程序的功能是從鍵盤輸入一個字符串,然后反序輸出輸入的字符串。#include <stdio.h>struct data *link*p ;input() int num ;struct node char data ;struct node *link*head ;main() char ch ;struct node *p ;head = NULL ;while( ch=getchar()!='n' ) p = (struct node *)malloc(sizeof(str

47、uct node) struct data *q ; printf("Enter data:") scanf("%d", &num) if( num<0 );q = ;p->data = ch ;p->link =;head = ;while( p!=NULL ) printf("%c ", p->data) ;p = p->link ;【 3.50 】 下面程序的功能是從鍵盤上順序輸入整數(shù),直到輸入的整數(shù)小于0 時才停止輸入。然后反序輸出這些整數(shù)。#include <stdio.h>

48、 struct data int x ;q->x = num ;q->link = p ;p=q ;main() printf("Enter data until data<0:n")p=NULL ;input() ;printf("Output:") ;while( ) printf("%dn", p->x);【 3.52 】下面 create 函數(shù)的功能是建立一個帶頭結點的單向鏈表,新產生的結點總是插入在鏈表的末尾。單向鏈表的頭指針作為函數(shù)值返回?!?3.51 】 下面函數(shù)的功能是創(chuàng)建一個帶有頭結點的鏈表,

49、將頭結點返回給主調函數(shù)。鏈表用于儲存學生的學號和成績。新產生的結點總是位于鏈表的尾部。struct student long num ;int score ;struct student *next ;struct student *creat() struct student *head=NULL,*tail ;long num ; int a ;tail= malloc(LEN) ;do scanf("%ld,%d",&num,&a) ;if(num!=0) if(head=NULL) head=tail ;else ;tail->num=num

50、; tail->score=a ;tail->next=(struct student *)malloc(LEN);else tail->next=NULL ;while(num!=0) ;return( );#include <stdio.h>#define LEN sizeof(struct student) struct student long num ;int score ;struct student *next ;struct student *creat() struct student *head=NULL,*taillong num ;int

51、a ;tail=( )malloc(LEN) ;do scanf("%ld,%d",&num,&a) ;if(num!=0) if(head=NULL) head=tail ;else tail=tail->next ;tail->num=num ;tail->score=a ;tail->next=( )malloc(LEN) ;else tail->next=NULL ;while(num!=0) ;【 3.53 】下面程序的功能是統(tǒng)計文件中的字符的個數(shù)。#include <stdio.h> main() lon

52、g num=0 ; *fp ;if(fp=fopen("fname.dat", "r")=NULL) printf("Can't open the file! ");exit(0) ;while( ) fgetc(fp) ;num+ ;printf("num=%dn",num) ;fclose(fp) ;【 3.54 】下面程序的功能是把從鍵盤輸入的文件(用 作為文件結束標志)復制到一個名為second.txt的新文件中。#include <stdio.h>FILE *fp ;main() ch

53、ar ch ;if(fp=fopen( )=NULL)exit(0) ;fputc(ch,fp) ;【 3.55 】 下面程序的功能是將磁盤上的一個文件復制到另一個文件中,兩個文件名在命令行中給出(假定給定的文件名無誤)。#include <stdio.h> main(int argc,char *argv) FILE &f1,*f2;if(argc< ) printf("The command line error! ");exit(0) ;f1=fopen(argv1, "r");f2=fopen(arhv2, "

54、w");while( )fputs(fgetc(f1), );【 3.56 】 下面程序的功能是根據(jù)命令行參數(shù)分別實現(xiàn)一個正整數(shù)的累加或階乘。例如:如果可執(zhí)行文件的文件名是sm ,則執(zhí)行該程序時輸入:"sm +10" ,可以實現(xiàn)10 的累加;輸入:"sm - 10" ,可以實現(xiàn)求 10 的階乘。#include <stdio.h>#include <stdlib.h>main (int argc,char *argv)while(ch=getchar()!='') int n ;void sum(),mu

55、lt() ;void (*funcp)() ;n=atoi(argv2) ;if(argc!=3 | n<=0)dispform( ) ;switch () case '+': funcp=sumbreak ;case '-': funcp=multbreak ;default: dispform( );void sum(int m) int i,s=0 ;for(i=1 ; i<m ; i+ );printf("sum=%dn",s)void mult(int m) long int i, s=1;for(i=1 ; i<

56、=m ; i+ )s *= i ;printf("mult= %ldn" ; s);dispform( ) printf ("usage:sm n(+/!) (n>0)n");exit (0) ;【 3.57 】 下面程序的功能是鍵盤上輸入一個字符串,把該字符串中的小寫字母轉換為大寫字母,輸出到文件 test.txt 中,然后從該文件讀出字符串并顯示出來。#include <stdio.h> main() char str100;int i=0 ;FILE *fp ;if(fp=fopen("test.txt", )=NULL) printf("Can't open the file.n") ;exit(0) ;pri

溫馨提示

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

最新文檔

評論

0/150

提交評論