(完整word版)C語言程序設計填空題及答案復習用_第1頁
(完整word版)C語言程序設計填空題及答案復習用_第2頁
(完整word版)C語言程序設計填空題及答案復習用_第3頁
(完整word版)C語言程序設計填空題及答案復習用_第4頁
(完整word版)C語言程序設計填空題及答案復習用_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

3、t *s,i nt t,i nt *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) t=t* i;s=s+t ;t

4、>0?t=-1:1;printf("%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 ;dos=s+d ; ;d=1.0/(k*(k+1);while();printf("%fn",s);【3.6下面程序的功能是從鍵盤上輸入若干學生的學習 成績,統計并輸出最高成績和最低成績,當輸入為負數 時結束輸入。main () float x,amax,

5、amin ;scan f("%f", &x);amax=x ; amin=x ;while() if(x>amax) amax=x ;if()amin=x ;scan f("%f", &x);prin tf("namax=%fnami n=%fn",amax,ami n);【3.7下面程序的功能是將形參x的值轉換為二進制數,所得的二進制數放在一個一維數組中返回,二進制數的 最低位放在下標為0的元素中。fun(int x,int b) int k=0,rdo r=x% ; bk+=r ; x/=;while(x);

6、【3.8下面程序的功能是輸出 1到100之間每位數的乘 積大于每位數的和的數。例如數字26,數位上數字的乘積12大于數字之和8。main () intn,k=1,s=0,m ; x=aj;for(n=1 ; *=100 ; n+); k=1 ;【3.11】下面程序的功能是用輾轉相除法求兩個正整數maj+1=x ;s=0;和n的最大公約數。;hcf(int m,i nt n)printf("The sorted 10 numbers; n");while() int r ;for(i=0 ;;i+ ) k*=m%10;if(m<n) if()s+=m%10; r=m ;

7、printf("n");;printf("%ft",ai);n=r ;if(k>s)printf("n");printf("%d",n);r=m% n;while()【3.13】下面程序的功能是讀入20個整數,統計非負數 m=n ;個數,并計算非負數之和?!?.9】下面程序的功能是統計用0至9之間的不同的數n=r ;#include "stdio.h"字組成的三位數的個數。r=m% n;main ()main () int i,a20,s,count ; int i,j,k,count=0

8、 ;s=count=0 ;for(i=1 ; i<=9 ; i+)for(i=0 ; i<20 ; i+ )for(j=0 ; j<=9 ; j+)【3.12】下面程序的功能是使用冒泡法對輸入的10個浮scanf("%d",);if()continue ;點數從小到大進行排序。排好序的10個數分兩行輸出。for(i=0 ; i<20 ; i+)else for(k=0 ; k<=9 ; k+)程序如下: if(ai<0)if()count+ ;#in clude <stdio.h>;printf("%d",

9、count);main ()s+=ai;;coun t+ ;【3.10】下面程序的功能是輸出100以內的個位數為 6、int i,j;且能被3整除的所有數。prin tf("I nput 10 nu mbers pleasen");prin tf("s=%dt coun t=%dn",s,cou nt);main ()for(i=0 ;;i+ ) int i,j ;scanf("%f", &ai);【3.14】下面程序的功能是刪除字符串s中的空格。for(i=0 ;i+)printf("n");#in cl

10、ude <stdio.h> j=i*10+6 ;for(i=2 ;;i+ )main ()if()countinue ;for(j=0 ;;j+ ) char *s="Beiji ng ligo ng daxue" ;printf("%d",j);if()int i,j ;for(i=j=0 ; si!='O' ; i+) if(si!=''); else ; sj= '0'prin tf("%s",s);【3.15】下面程序的功能是將字符串s中所有的字符'c'

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

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

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

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

15、'break ;case 't': t = ;tj+ = 't'break ;default: t =si;break ;tj=;【3.20】下面的函數index(char s, char t)檢查字符串s 中是否包含字符串t,若包含,則返回t在s中的開始位 置(下標值),否則送回-1。in dex(char s, char t) int i,j,k ;for(i=0 ; si!= '0' ; i+ ) for(j=i,k=0 ; && sj=tk; j+,k+);if()return (i);return(-1);n【3

16、.21】下面程序的功能是計算S= k!。k=0long fun (i nt n) int i ;數,并使 x+y為最小。scanf("%lf", &x);long s ;#in clude <stdio.h>prin tf("The sqrt of %lf=%lfn", x, mysqrt( x, 1.0);for(i=1 ; i ;i+)pow3(i nt n ,i nt x)s*=i ; int i, lastreturn();for(last=1,i=1 ; i<=x ; i+ )last=;【3.25】以下程序是計算學生

17、的年齡。已知第一位最小的main ()return(last);學生年齡為10歲,其余學生的年齡一個比一個大2歲, int k,n ;求第5個學生的年齡。long s ;main ()#in clude <stdio.h>scanf("%d",&n); int x,n,min, flag=1 ;age( int n )s=;scanf("%d", &n); int c ;for(k=0 ; k<=n ; k+)for(min=2 ; flag ; min+)if( n=1 ) c=10 ;s+=;for(x=1 ; x&

18、lt;min && flag ; x+ )else c=;printf("%ldn",s);if( && pow3(n,x)=pow3(n,min-x)return(c); pri ntf("x=%d,y=%dn", x, min-x);【3.22】下面程序的功能是顯示具有n個兀素的數組s;main ()中的最大兀素。 int n=5 ;#defi ne N 20printf("age:%dn",);main ()【3.24】下面的程序是用遞歸算法求a的平方根。求平 int i,aN;方根的迭代公式如下

19、:【3.26】下面的函數sum(int n)完成計算1n的累加和。for(i=0 ; i<N ; i+)sum(i nt n)scanf("%d",&ai);#in clude <math.h> if(n<=0)printf("%dn",);double mysqrt( double a, double x0 )prin tf("data errorn"); double x1, y ;if(n=1);fmax(i nt s,i nt n)x1 =else ; int k,p ;if( fabs(x1-

20、x0)>0.00001 )for(p=0,k=p ; p<n ; p+)y = mysqrt( );【3.27】下面的函數是一個求階乘的遞歸調用函數。if(sp>sk);else y = x1 ;facto(i nt n)return(k);return(y); if( n = 1 );else return();【3.23】下面程序的功能是由鍵盤輸入n,求滿足下述條main ()件的x、y: double x ;【3.28】組合問題,由組合的基本性質可知:nx和ny的末3位數字相同,且 xm y,x、y、n均為自然printf("Enter x:");(

21、1) C(m, n)=C( n-m, n) C(m, n+1)=C(m, n)+C(m-1, n)printf("n"); if( n-0 )公式(2)是一個遞歸公式,一直到滿足C(1,n)-n為止。當return(0);*2*m時,可先用公式(1)進行簡化,填寫程序中的空r( int m )else return ( sqrt(x+( );白,使程序可以正確運行。 printf("%d",);#in clude"stdio.h"m -;【3.33】函數revstr(s)將字符串s置逆,如輸入的實參smain ()if()為字符串&q

22、uot;abcde",則返回時 s為字符串"edcba"。遞歸 int m,n ;程序如下:prin tf("I nput m,n=");revstr( char *s )scanf("%d%d", &m, &n); char *p-s, c ;prin tf("The comb in ati on nu mbeers is %dn",【3.31】輸入n值,輸出高度為n的等邊三角形。例如while(*p) p+ ;combin(m,n);當n-4時的圖形如下:;*if(s<p)com

23、b in( int m, int n)* c-*s ; int com ;*s-*p ;if( n< 2*m ) m=n-m;*;if( m0 ) com=1 ;#in clude <stdio.h>revstr(s+1);else if(m=1);void prt( char c, int n );else ; if( n>0 )return(com); printf( "%c", c );如下是由非遞歸實現的revstr(s)函數:【3.29】下列函數是求一個字符串str的長度。revstr (s)? int strle n( char *str

24、 )char *s ;? if()return (0);main () char *p-s, c ;? ? else return (); int i, n ;while( *p ) p+ ;scanf("%d", &n);【3.30】用遞歸實現將輸入小于32768的整數按逆序輸for( i-1 ; i<-n ;i+ )while( s<p )出。如輸入12345,則輸出54321。; c-*s ;#in clude"stdio.h";-*p ;main ()printf("n");*p- - c ; int n

25、;printf("Input n :");scanf("%d",);【3.32】下面的函數實現 N層嵌套平方根的計算?!?.34】下面函數用遞歸調用的方法,將str中存放的長r(n);double y(double x, int n)度為n的字符串反轉過來, 例如原來是"ABCDE",反序為"EDCBA"。#in clude <stdio.h>void invent(char *str , int n)void con vert(char *a, int n)【3.38】下面程序通過指向整型的指針將數組

26、a34的 char t; inti ;內容按3行X 4列的格式輸出,請給printf()填入適當的t=*str ; *str=*(str+ n-1); *(str+ n-1)=t ; if( n>2 ) inventif(i=n/10) !=0 )參數,使之通過指針 p將數組兀素按要求輸出。(,n-2);convert(,i );#in clude <stdio.h>else ;*a =;int a34=1,2,3,4,5,6,7,8,9,10,11,12, *p=a ;main ()【3.35】從鍵盤上輸入10個整數,程序按降序完成從大char str10="&q

27、uot;; int i,j ;到小的排序。main ()for(i=0 ; i<3 ; i+ )#i nclude <stdio.h> int number ; for(j=0 ; j<4 ; j+ )int array1O;scanf("%d", &number);printf("%4d ",);sort( int *p, int *q )con vert( str, nu mber ); int *max, *s ;puts(str);if()【3.39】下面程序的功能是:從鍵盤上輸入一行字符,存return ;【3.

28、37】下面程序的功能是實現數組兀素中值的逆轉。入一個字符數組中,然后輸出該字符串。max=p ; for( s=p+1 ; s<=q ;s+)#in clude <stri ng.h>#in clude <stdio.h>if( *s > *max )main ()mai n ();swap(); int i,n=10,a10=1,2,3,4,5,6,7,8,9,10; char str81, *sptr ;sort();invert(a,n-1);int i ;swap( int *x, int *y ) int temp ;for(i=0 ; i<

29、10 ; i+)for(i=0 ; i<80 ; i+ )temp=*x ;printf("%4d",ai); stri=getchar();*x=*y ;printf("n");if(stri= 'n') break ;*y=temp ;in vert(i nt *s,i nt num)stri=;main () int *t,k ;sptr=str ; int i ;printf("Enter data :n") ; for( i=0 ;i<10 ;i+)t=s+num ;while( *sptr )s

30、canf("%d", &arrayi) ; sort();while()putchar( *sptr );prin tf("Output:"); k=*s ;for( i=0 ;i<10 ;i+)*s=*t ;【3.40】下面函數的功能是將字符變量的值插入已經按printf("%d ", arrayi);*t=k ;ASCII碼值從小到大排好序的字符串中。;void fun( char *w,char x,i nt *n)【3.36】下面函數的功能是將一個整數存放到一個數組; int i,p=0 ;中。存放時按逆序存放。

31、例如:483存放成"384"。while(x>wp);int n, *pa ; int count, total, temp ;*pa = 2 ;=3 ;total=5 ;count=2 ;while( coun t+<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,

32、 *p, *q, nu mMAXNUM;do pri ntf("l nput N=? (2<N<%d):", MAXNUM+1) scanf("%d", &n);while();prin tf("nsum(%d)=%dn", n, sum(n, num) ; for( p=num, q =; p<q ;p+ )printf("%4d", *p);for(i=*n ; i>=p ; i-);wp=x ;+* n ;【3.41】下面程序的功能是從鍵盤上輸入兩個字符串,對兩個字符串分別排序

33、;然后將它們合并,合并后的字符 串按ASCII碼值從小到大排序,并刪去相同的字符。#i nclude <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*/while( *

34、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;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)mai n()

35、char s1100,s2100,s3200;prin tf("nPlease In put First Stri ng:");scanf("%s", s1);prin tf("nPlease In put Second Stri ng:");scanf("%s", s2);strsort(sl);strsort(s2);='0';strmerge(s1 , s2, s3);printf("nResult:%s", s3);【3.42】已知某數列前兩項為 2和3,其后繼項最后兩項

36、的乘積,按下列規(guī)則生成: 若乘積為一位數,則該乘積即為數列的后繼項; 若乘積為二位數,則該乘積的十位上的數字和個位上 的數字依次作為數列的兩個后繼項。下面的程序輸出該數列的前N項及它們的和,其中,函數sum(n,pa)返回數列的前 N項和,并將生成的前 N項 存入首指針為pa的數組中,程序中規(guī)定輸入的N值必須大于2,且不超過給定的常數值MAXNUM。例如:若輸入N的值為10,則程序輸出如下內容:sum(10)=442 3 6 1 8 8 6 4 2 4#i nclude "stdio.h"#defi ne MAXNUM 100int sum(n, pa)printf(&qu

37、ot;n");? char str10;for( ; p<q ; p+ )? int i- printf( "age:sex:name");【3.43】下面程序的功能是輸入學生的姓名和成績,然后? doscanf("%u%s", &p->age, p->sex);輸出。 prin tf("E nter a n ame");#i nclude <stdio.h>? scanf("%s",str);struct stui nf? for( i=0; i<NUM ;

38、i+ ) char name20 ;/* 學生姓名 */? if()data_out( struct man *p, int n )int score ;/* 學生成績 */? printf("Name :%8sn", ); struct man *q = _ _; stu, *p ;? printf("Rank :%3dn",stui.rank);for( ; p<q ; p+ )mai n ()? prin tf("Average :%5.1fn",printf("%s ; %u %sn"

39、;, p->name, p=&stu ;stui.score);p->age, p->sex);printf("Enter name:");? -gets();? printf("Enter score:");? if( i>=NUM ) pri ntf("Not foun dn");【3.46】輸入N個整數,儲存輸入的數及對應的序號,scanf("%d",);? while( strcmp(str,"0")!=0 );并將輸入的數按從小到大的順序進行排列。要求:

40、當兩printf("Output: %s, %dn",);?個整數相等時,整數的排列順序由輸入的先后次序決定。例如:輸入的第3個整數為5,第7個整數也為5,則將【3.44】下面程序的功能是按學生的姓名查詢其成績排名【3.45】下面程序的功能是從終端先輸入的整數5排在后輸入的整數 5的前面。程序如下:和平均成績。查詢時可連續(xù)進行,直到輸入0時才結束。上輸入5個人的年齡、性別和姓#include "stdio.h"? #i nclude <stdio.h>名,然后輸出。#defi ne N 10#in clude <stri ng.h>

41、;#i nclude "stdio.h"struct#defi ne NUM 4struct man int no ;? struct stude nt char name20;int num ;? int rank ;unsigned age ; arrayN;char *name ;char sex7;mai n()float score ; int i , j, num ;?mai n ()for( i=0 ; i<N ; i+ )? stu = 3,"liming",89.3, struct man pers on5; printf(&qu

42、ot;enter No. %d:" , i);? 4,"zhanghua",78.2,data_in(person,5);scanf("%d", &num);? 1,"anli",95.1,data_out(person,5);for(;j>=0&&arrayj.num num ; )? 2,"wangqi",90.6arrayj+1=arrayj;data_ in( struct man *p, int n )array.num=num ;?mai n() struct m

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

44、e(c= getchar() ) p=(struct node *)malloc(sizeof(struct no de) p->info=c ; p->li nk=top ;top=p ;while( top );top=top->li nk ;putchar(p->info);free(p);【3.48】下面函數將指針p2所指向的線性鏈表,串接到p1所指向的鏈表的末端。假定p1所指向的鏈表非空。#defi ne NULL 0struct link float a ;struct link *next ;con cate nate ( p1 , p2 )struct

45、list *p1 , *p2 ; if( p1->next=NULL )p1- >n ext=p2 ;elsecon cate nate(,p2);【3.49】下面程序的功能是從鍵盤輸入一個字符串,然后反序輸出輸入的字符串。#in clude <stdio.h>struct node char data ;struct node *link ;*head ;main () char ch ;struct node *p ;head = NULL ;while( ch=getchar()!='n') p = (struct node *)malloc(si

46、zeof(struct no de);p->data = ch ;p->li nk =head =; ;while( p!=NULL ) prin tf("%c ", p->data);p = p->li nk ;【3.50】下面程序的功能是從鍵盤上順序輸入整數,直到輸入的整數小于0時才停止輸入。然后反序輸出這些整 數。#in clude <stdio.h>struct data int x ;struct data *link ;*p ;in put() int num ;struct data *q ;printf("Ent

47、er data:"); scanf("%d", &num); if( num<0 );q =;q->x = num ; q->li nk = p ; p=q ; ;main () prin tf("E nter data un til data<0:n");p=NULL ;input();【3.52】下面create函數的功能是建立一個帶頭結點的 *fp ;prin tf("Output:");單向鏈表,新產生的結點總是插入在鏈表的末尾。單向if(fp=fopen("fname.da

48、t", "r")=NULL)while()鏈表的頭指針作為函數值返回。 printf("Can't open the file!"); prin tf("%dn", p->x);#in clude <stdio.h>exit(0);#defi ne LEN sizeof(struct stude nt)struct stude ntwhile() long num ; fgetc(fp);int score ;nu m+ ;【3.51】下面函數的功能是創(chuàng)建一個帶有頭結點的鏈表,struct stud

49、e nt *next ;將頭結點返回給主調函數。鏈表用于儲存學生的學號和;printf("num=%dn", num);成績。新產生的結點總是位于鏈表的尾部。struct stude nt *creat()fclose(fp);struct stude nt struct stude nt *head=NULL,*tail; long num ;long num ;int score ;int a ;【3.54】下面程序的功能是把從鍵盤輸入的文件(用struct student *next ;tail=()malloc(LEN);作為文件結束標志)復制到一個名為second

50、.txt的新文;do件中。struct stude nt *creat() scanf("%ld,%d",&num,&a);#in clude <stdio.h> struct stude nt *head=NULL,*tail ;if(n um!=0)FILE *fp ;long num ; int a ; if(head=NULL) head=tail ;main ()tail= malloc(LEN);else tail=tail->n ext; char ch ;dotail->num=num;if(fp=fopen()=NU

51、LL) scanf("%ld,%d",&num,&a);tail->score=a ;exit(0);if(nu m!=0)tail->next=()malloc(LEN);while(ch=getchar()!='') if(head=NULL) head=tail ;fputc(ch,fp);else ;else tail-> next=NULL ;tail->num=num; tail->score=a ;while(num!=0);tail-> next=(struct stude nt *)mal

52、loc(LEN);【3.55】下面程序的功能是將磁盤上的一個文件復制到另else tail-> next=NULL ;一個文件中,兩個文件名在命令行中給出(假定給定的while(num!=0);【3.53】下面程序的功能是統計文件中的字符的個數。文件名無誤)。return();#in clude <stdio.h>#in clude <stdio.h>main ()main (i nt argc,char *argv) long num=0 ; FILE &f1,*f2 ;把該void sum(i nt m) int i,s=0 ;for(i=1 ; i&

53、lt;m ; i+ );printf("sum=%dn",s);void mult(i nt m) long int i, s=1 ;for(i=1 ; i<=m ; i+ )s *= i ;printf("mult= %ldn" ; s);dispform() printf ("usage:sm n(+/!) (n >0)n");exit (0);【3.57】下面程序的功能是鍵盤上輸入一個字符串, 字符串中的小寫字母轉換為大寫字母,輸出到文件 test.txt中,然后從該文件讀出字符串并顯示出來。#in clude &l

54、t;stdio.h>main () char str100;int i=0 ;FILE *fp ;if(fp=fopen("test.txt",)=NULL) prin tf("Ca n't ope n the file.n");exit(0);prin tf("I nput a stri ng:n");gets(str);while(stri)if(argc< ) prin tf("The comma nd line error!");exit(O);f1=fope n(argv1, &quo

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

56、lt();void (*funcp)();n=atoi(argv2);if(argc!=3 | n<=0)dispform();switch () case '+': fun cp=sum ;break ;case '-': fun cp=mult ;break ;default: dispform(); if(stri>= 'a'&&stri<= 'z') stri=; fputc(stri,fp); i+ ;fclose(fp);fp=fopen("test.txt",);fgets(str,strle n(str)+1,fp);printf("%sn",str);fclose(fp);【3.58】下面程序的功能是將從終端上讀入的10個整數以二進制方式寫入名為"bi.dat"的新文件中。#in clude <stdio.h>FILE *fp ;main () int i, j

溫馨提示

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

評論

0/150

提交評論