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

下載本文檔

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

文檔簡介

1、導讀:在程序填空題中,已經給出了程序的主干,讀者首先要理解程序的思路,再選擇正確的內容填入空白處,使程序 完成既定的功能。這類習題的設計就是要引導讀者逐步掌握編程的方法。本節習題的難度適中,可能有些典型的程序在 課堂上已經有所接觸,讀者一定要獨立完成它,這樣就可以逐步提高自己的編程能力。在程序設計語言學習的中期,讀 者對程序設計已經有了初步的了解,而自己編寫程序又不知從何處入手,此時解答此類題目可以避免盲目性,從而提高 學習的效率。3.1 1下面程序的功能是不用第三個變量,實現兩個數的對調操作。#include <stdio.h>main()int a,b ;scanf("

2、;%d%d",&a,&b);p rintf("a=%d,b=%dn",a,b);a=;b=;a=;p rintf("a=%d,b=%dn",a,b);2/6 1/12+1/22+1/32+3.2】下面程序的功能是根據近似公式:Tt 求冗值。#inelude <math.h> double pi(long n)double s=0.0;long i ;for(i=1 ; i<=n ; i+) s=s+ ; return();3.3 1下面的程序的功能是求一維數組中的最小元素。 findmin(int *s,i n

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

4、t;,s)3.5 1有以下程序段:s=1.0 ;f甜孵F ; kv=n ; k+)s=s+1.0/(k*(k+1);p rintf("%fn",s);填空完成下述程序,使之與上述程序的功能完全相同。8=0.0 ;;k=0 ;do s=s+d ;;d=1.0/(k*(k+1);while();P rintf("%fn",s);統計并輸出最高成績和3.6 1下面程序的功能是從鍵盤上輸入若干學生的學習成績, 最低成績,當輸入為負數時結束輸入。main()float x,amax,ami n ;scanf("%f',&x);amax=x

5、 ; amin=x ;while()if(x>amax) amax=x if()amin=x ; scanf("%f',&x);pnntf("n amax=%fnamin=%frr,amax,amin)3.7 1下面程序的功能是將形參X的值轉換為二進制數,所得的二進制數放在一個一維數組中返回,二進制數的最低位放在下標為0的元素中。fun(int x,int b)int k=0,r;dor=x% ;bk+=r ;x/=;while(x);3.8 1下面程序的功能是輸出1到100之間每位數的乘積大于每位數的和的數。例如數字26 ,數位上數字的乘積 12大于

6、數字之和8omain()intn ,k=1 ,s=0,m;for(n=1 ; *=100 ; n+)k=1 ;s=0 ; ;while()k*=m%10;s+=m%10 ;;3.9 下面程序的功能是統計用0至9之間的不同的數字組成的三位數的個數。main()int i,j,k,count=0;for(i=1 ; i<=9 ; i+)forG=0 ; j<=9 ; j+)if()continue ;else for(k=0 ; k<=9 ; k+)if()count+ ;p rintf("%d",count) ;3.10】下面程序的功能是輸出100以內的個位

7、數為6、且能被3整除的所有數。main()int i,j ;for(i=0 ;;i+)j=i*10+6;if()countinue ;m和n的最大公約數。p rintf("%d"j);3.11 1下面程序的功能是用輾轉相除法求兩個正整數hcf(int m,int n)intr ;if(m<n)r=m ;;n=r ;r=m%n ; while()m=n ;n=r ;r=m%n ;3.12 1下面程序的功能是使用冒泡法對輸入的10個浮點數從小到大進行排序。排好序的10個數分兩行輸出。程序如下:#include <stdio.h>main();int ij ;p

8、rintfC'Input 10 numbers pleasen");i+)for(i=0 ;; scanf("%f', &ai) p rintf("n");for(i=2 ;;for(j=0 ;; if() x=aj;;aj+1=x ;;n”);printf("The sorted 10 numbers for(i=0 ;;i+)if()p rintf("n"); printf("%ft",ai) ;printf("n")3.13 1下面程序的功能是讀入20個整

9、數,統計非負數個數,并計算非負數之和。#include "stdio.h" main()int i,a20,s,count s=co unt=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)3.14 1下面程序的功能是刪除字符串S中的空格。#inelude <stdio.h>main() char *s="Beijing

10、 ligong daxue" ;int ij ;for(i=j=0 ; si!='0' i+)if(si!=");else ;sD= '0';p rintf("%s",s);3.15 1下面程序的功能是將字符串S中所有的字符C刪除。請選擇填空。#in clude<stdio.h> main()char s80;int ij ;gets(s);for(i=j=0 ; si!= '0' i+)if(si!= 'c');sD= '0'puts(s);3.16 下面程序的

11、功能是輸出兩個字符串中對應相等的字符。請選擇填空。#inelude <stdio.h> char x=" programmi ng" char y="Fortran" ; main()int i=0 ;while(xi!= '0' && yi!= '0') if(xi=yi)printf("%c", );else i+ ;3.17 1下面程序的功能是將字符串S中的每個字符按升序的規則插到數組 a中,字符串a已排好序。#inelude <string.h>main(

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

13、> main()char str1100,str2100,cint i,s ;gets(strl); gets(str2);printfC'Enter string 1:");,printfC'Enter string 2: ”);,i=0 ;)while(str1i = str2i && str1i!= i+ ;s=;printf("%dn", s) ;【3.19】下面的函數expand在將字符串s復制到字符串t時,將其中的換行符和 制表符轉換為可見的轉義字符表7F,即用 'n'表7F換行符,用't&

14、#39;表7F制表符。expan d(char s,char t)int ij ;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 下面的函數index(chars, chart)檢查字符串s中是否包含字符串t,若包含,則返回t在S中的開始位置(下標值),否則送回index(char s, char t)int

15、ij,k ;for(i=0 ; si!= '0' i+)for(j=i,k=0 ; && sj=tk; j+,k+);if() return (i);return(-1) n3.21 1下面程序的功能是計算S= k! ok=0long fun(int n)inti ;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)

16、; 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.22 1下面程序的功能是顯示具有#define N 20main()int i,aN;for(i=0 ; i<N ; i+) scanf("%d",&ai);printf("%dn", );n個元素的數組s中的最大元素。fmax(int s,in

17、t n)int k,p ;for(p=0,k=p ; p<n ; p+) if(sp>sk); return (k);3.23 1下面程序的功能是由鍵盤輸入nx和ny的末3位數字相同,且 xm#include <stdio.h>n ,求滿足下述條件的 X、y:y, X、y、n均為自然數,并使 x+y為最小。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", &

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

19、 mysqrt( x, 1.0)10歲,其余學3.25 1以下程序是計算學生的年齡。已知第一位最小的學生年齡為 生的年齡一個比一個大2歲,求第5個學生的年齡。#inelude <stdio.h> age( int n)int c ;if( n=1 ) c=10 else c=; return (c);main()int n=5;printf("age:%dn", );n的累加和。3.26 下面的函數sum(int n)完成計算1 sum(int n)if(n<=0)printf("data errorn");if(n=1);else ;

20、3.27 下面的函數是一個求階乘的遞歸調用函數。facto(int n)if( n = 1 );else return();3.28 1組合問題,由組合的基本性質可知:(1) C(m,n)=C(n-m,n) C(m,n+1)=C(m,n)+C(m-1 ,n)公式(2)是一個遞歸公式,一直到滿足C(1,n)=n為止。當*2*m 時,可先用公式進 行簡化,填寫程序中的空白,使程序可以正確運行。#include"stdio.h" main()int m,n ;printfC'Input m,n=");scanf("%d%d", &m,

21、 &n);prin tf("The combi nation nu m beers is %dn", combi n(m,n) combin( int m, int n)int com ;if( n<2*m ) m=n-mif( m=0 ) com=1 ; else if(m=1);else ; return(com) ;3.29 下列函數是求一個字符串str的長度。? int strlen( char *str) ?if()return (0); ? ? else return ();13.30 1用遞歸實現將輸入小于32768的整數按逆序輸出。如輸入 12

22、345 ,貝9輸出54321 O#include"stdio.h"main()int n ;printfC'Input n : ”);scanf("%d",);r(n);printf("n");r( int m )printf("%d", ); m =;if();3.31 輸入n值,輸出高度為n的等邊三角形。例如當 n=4時的圖形如下:*#inelude <stdio.h> void prt( char c, int n ) if( n>0) printf( "%c",

23、 c) ; ; main() inti, n ;scanf("%d", &n)for( i=1 ; iv=n ;i+);p rintf("n");3.32 1下面的函數實現N層嵌套平方根的計算。double y(double x, int n)if( n=0));return (0);將字符串S置逆,如輸入的實參S為字符串"abcde”,則返回 O遞歸程序如下:else return (sqrt(x+(3.33 函數 revstr(s) 時S為字符串"edcba” revstr( char *s) char *p=s, c ;

24、 while(*p) P+ ; ; if(s<p)c=*s ;*s=*p; ;revstr(s+1); ;如下是由非遞歸實現的revstr(s)函數:revstr (s)char*s ; char *p=s, c ;while( *p ) P+; ;while( s<p)c=*s ; =*p ;*P- = c ;3.34 1下面函數用遞歸調用的方法,將 str中存放的長度為n的字符串反轉過來, 例如原來是"ABCDE",反序為"EDCBA”。void invent(char *str, int n)chart ;t=*str ;*str=*(str+n

25、-1)else ;;*(str+n-1)=t; if( n>2) invent (,n-2)3.35 從鍵盤上輸入#inelude <stdio.h>10個整數,程序按降序完成從大到小的排序。int array10; sort( int *p, int *q ) int *max, *s ; if() return :max=p ; for( s=p+1;if( *s > *max);swap();sort(); swap( int *x, int *y ) int ternp temp=*x ;*x=*y ;*y=te mp ;s<=q ;S+)main()in

26、t i ;printf("Enter data :rr); for( i=0 ;i<10 ;i+)scanf("%d", &arrayi) ; sort();p rintfC'Output:") ;for( i=0 ;i<10 ;i+)printf("%d ", arrayi) ;3.36 下面函數的功能是將一個整數存放到一個數組中。483存放成"384"。#inelude <stdio.h>void convert(char *a, int n)存放時按逆序存放。例如:in

27、ti ;if(i=n/10) !=0) convert(,i);*a =;char str10=""main()int number ; scanf("%d", &number) convert( str, number) puts (str);3.37 1下面程序的功能是實現數組元素中值的逆轉。#inelude <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+)p rintf("%4d"

28、;,ai);p rintf("n");invert(int *s,int num) int *t,k ;t=s+num ;while()k=*s ;*s=*t ;*t=k ; ; ;3.38 下面程序通過指向整型的指針將數組a34的內容按3行X 4列的格式輸出,請給Printf()填入適當的參數,使之通過指針P將數組元素按要求輸出。#include <stdio.h>int a34=1,2,3,4,5,6,7,8,9,10,11,12, *p=a;main()int ij ;for(i=0 ; i<3 ; i+)forG=0 ; j<4 ; j+ )

29、 printf("%4d ",);3.39 1下面程序的功能是:從鍵盤上輸入一行字符,存入一個字符數組中,然后輸 出該字符串。#inelude <stdio.h>main () char str81, *sptr ;int i ;for(i=0 ; i<80 ; i+)stri=getchar();if(stri= 'n') break ; stri=;sptr=str ;while( *sptr)putchar( *sptr );ASCII碼值從小到大排好序的3.40】下面函數的功能是將字符變量的值插入已經按 字符串中。void fun

30、(char *w,char x,int *n)inti,p=O ;while(x>wp) ;for(i=*n ; i>=p ; i-); wp=x ;+*n ;3.41 1下面程序的功能是從鍵盤上輸入兩個字符串,對兩個字符串分別排序;然后 將它們合并,合并后的字符串按ASCII碼值從小到大排序,并刪去相同的字符。#inelude <stdio.h>strmerge(a , b, c)/* 將已排好序的字符串a、b合并到c*/char*a , *b , *c; char t , *w ;w=c ;while( *a!= '0' *b!='0'

31、;)t= ?*a+:*b<*a ? *b+ :( if(*w '0') *w=t ;);/*將*3、*b的小者存入t*/將與*W不相同的t存入W*/while( *a != '0')/* 以下將 a if( *a != *w ) *+w=*a+;else a+ ;while( *b != '0')if( *b != *w ) *+w=*b+;else b+ ;*+w =;或b中剩下的字符存入W*/else if( t *w) *+w=t;/*S中的字符排序*/將字符串strsort( char *s ) /* inti , j, n; ch

32、art , *w ;;for( n=0 ; *w != '0')W+ ;for( i=0 ; i<n-1 ; i+)for( j=i+1; jvn ; j+ )if( si>sj) main()char s1 100, s2100 , s3200;printf("nPlease Input First String:") scanf("%s" , s1);printf("nPlease Input Second String:") scanf("%s" , s2);strsort(sl)

33、;strsort(s2);='0'strmerge(s1 , s2 , s3);printf("nResult:%s", s3);3.42 已知某數列前兩項為 2和3,其后繼項根據前面最后兩項的乘積,按下列規則生成: 若乘積為一位數,則該乘積即為數列的后繼項; 若乘積為二位數,則該乘積的十位上的數字和個位上的數字依次作為數列的兩個后 繼項。下面的程序輸出該數列的前N項及它們的和,其中,函數sum(n,pa) 返回數列的前N項和,并將生成的前 N項存入首指針為pa的數組中,程序中規定輸入的 N值必須大 于2 ,且不超過給定的常數值 MAXNUM O例如:若輸入

34、N的值為 10 ,則程序輸出如下內容:sum(10)=442361886424#include "stdio.h" #define MAXNUM 100 int sum(n, pa) int n, *pa ;int count, total, ternp*pa = 2 ;=3 ;total=5 ;count=2 ;while( count+<n)temp = *(pa-1) * *pa if(temp<10)total += temp ; *(+pa) = tern p ; else=temp/10 ; total += *pa ;if( countvn) co

35、unt +; pa+ ;=temp%10 ; total += *pa ;main()intn, *p, *q,numMAXNUM;do printfC'Input N=? (2<N<%d):", MAXNUM+1) scanf("%d", &n);while();pnntf("nsum(%d)=%dn", n, sum(n, num) for( p=num, q =; p<q ;p+ )printf("%4d", *p) ;p rintf("n");3.43 1下面程序

36、的功能是輸入學生的姓名和成績,然后輸出。#include <stdio.h> struct Stu infchar name20; /* 學生姓名 */int score ;/* 學生成績 */ Stu, *p ; main (),);p=&stu ; pnntf("Enter n ame:") gets(); pnntf("Enter score:") scanf("%d",); printfC'Output: %s, %dn"3.44 1下面程序的功能是按學生的姓名查詢其成績排名和平均成績。查

37、詢時可連續 進行,直到輸入0時才結束。? #include <stdio.h>#inelude <string.h>#define NUM 4 ? struct student? int rank ;char *name float score ; ?;? 4 ,? 1 ,? 2 ,stu = 3 , "liming" , 89.3 ,"zhanghua" , 78.2 ,"anii" , 95.1 ,"wangqi" , 90.6 ?main()?charstr10;? int i ;?

38、do pnntf("Enter a name");? scanf("%s" , str);? for( i=0 ; i<NUM ; i+)? if()? printfC'Name :%8sn"? printfC'Rank :%3dn"? printfC'Average :%5.1fn"?;,) ;,stui.rank) ;,stui.score);? 1 ? if( i>=NUM ) printfC'Not foundn") ? while( strcm

39、p(str , "0")!=0); ?3.45 1下面程序的功能是從終端上輸入5個人的年齡、性別 和姓名,然后輸出。#include "stdio.h" struct man char name20 unsigned age char sex7;main ()struct man person5data_i n(person,5)num ;)data_out (person,5) ;data_ in( struct man *p, int n ) struct man *q =;for( ; p<q ; p+ ) prin tf( "ag

40、e:sex:n ame");scan f("%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個整數,儲存輸入的數及對應的序號,并將輸入的數按從小到大的順 序進行排列。要求:當兩個整數相等時,整數的排列順序由輸入的先后次序決定。例 如:輸入的第3個整數

41、為5,第7個整數也為5,則將先輸入的整數 5排在后輸入的 整數5的前面。程序如下:#i nclude "stdio.h"#defi ne N 10 struct int no ; int num arrayN;mai n() int i , j, num ;for( i=0 ; i<N ; i+ ) printf("enter No. %d:",i);scanf("%d",&num);for(;j>=0&&arrayj.num arrayj+1=arrayj ; array.num=num ; ar

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

43、char() ) p=(struct node *)malloc(sizeof(struct no de) p->in fo=c ;p->li nk=t op;top=p ;while( top );top=top->li nk ;pu tchar( p->info) ;free(p);【3.48】下面函數將指針 p2所指向的線性鏈表,串接到 p1所指向的鏈表的末端。 假定p1所指向的鏈表非空。#defi ne NULL 0struct linkfloat a ; struct link *nextcon cate nate ( p1, p2 )struct list

44、*p1, *p2 ;if(p 1->next=NULL) p1->next=p2 ;elsecon cate nate(,p 2);3.49 下面程序的功能是從鍵盤輸入一個字符串,然后反序輸出輸入的字符串。#include <stdio.h>struct nodechar data ; struct node *link *head ;main()char ch ; struct node *p head = NULLwhile( ch=getchar()!='rV) p = (struct node *)malloc(sizeof(struct node) p

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

46、uot;, &num) if( num<0) ;q =; q->x = num ; q->li nk = p ;main() printf("Enter data until data<0:n") p=NULL ;inputO ;p rintfC'Output:") ;while()printf("%dn", p->x);;3.51 1下面函數的功能是創建一個帶有頭結點的鏈表,將頭結點返回給主調函數。 鏈表用于儲存學生的學號和成績。新產生的結點總是位于鏈表的尾部。struct stude ntlon

47、g num ;int score :struct stude nt *nextstruct stude nt *creat()struct student *head=NULL,*taillong num ; int a ;tail= malloc(LEN);doscanf("%ld,%d",&num,&a) ; if(num!=0)if(head=NULL) head=tail ;else ;tail->num=num ; tail->score=a tail->next=(struct student *)malloc(LEN) els

48、e tail->next=NULL while(num!=O); return();3.52 下面create函數的功能是建立一個帶頭結點的單向鏈表,新產生的結點總 是插入在鏈表的末尾。單向鏈表的頭指針作為函數值返回。#include <stdio.h>#define LEN sizeof(struct student) struct stude ntlong num ;int score ;struct stude nt *next :struct stude nt *creat()struct student *head=NULL,*tail long num ;int

49、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->next=( )malloc(LEN);else tail->next=NULLwhile(num!=O);;3.53 1下面程序的功能是統計文件中的字符的個數。#inelude <stdio.h>main()long num=0 ; *

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

51、pen()=NULL)exit(O);while(ch=getchar()!='') fputc(ch,fp) ; ;3.55 1下面程序的功能是將磁盤上的一個文件復制到另一個文件中,兩個文件名在 命令行中給出(假定給定的文件名無誤)。#include <stdio.h>main(int argc,char *argv)FILE &f1,*f2;if(argc< ) prin tf("The comma nd line error!");exit(O);f1=fopen(argv,"r") f2=fopen(ar

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

53、;n=atoi(argv2) ; if(argc!=3 | *=0) dispfonn();switch () casefuncp=sum;break ;casefuncp=multbreak ;default: dispfonn() void sum(int m)int i,s=O ;for(i=1 ; i<m ; i+) ;p rintf("sum=%dn",s) void mult(int m)long int i, s=1;for(i=1 ; i<=m ; i+) s *= i : dispfomn()printf("mult= %ldn&qu

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

55、ntf("lriput a string:n") gets(str); while(stri)if(stri>= 'a'&&stri<= N) stri=; fputc(stri,fp);i+ ;fclose(fp);fp=fopen("test.txt", ); fgets(str,strle n(stij+1 ,fp) p rintf("%sn",str) ;fclose(fp);3.58 1下面程序的功能是將從終端上讀入的10個整數以二進制方式寫入名為"bi.dat"

56、;的新文件中。#include <stdio.h>FILE *fp ;main()intij ;if( fp=fopen( ,"wb") = NULL )exit (0);for( i=0 ; i<10 ; i+) scanf("%d", &j);fwrite(,sizeof(int), 1,);fclose( fp);3.59 1以字符流形式讀入一個文件, 從文件中檢索出六種C語言的關鍵字,并統計、輸出每種關鍵字在文件中出現的次數。本程序中規定:單詞是一個以空格或't' > 'n'結束的字

57、符串。#include <stdio.h> #inelude <string.h>FILE *cp ;char fname20, buf100 int num ; struct keychar word10 int count : keyword= ”if", 0, "char", 0, "int", 0,"else", 0, "while", 0, "return", 0;char *getword (FILE *fp)int i=0 ;char c ;while(c=getc(fp) != EOF && (c=' '|c='t'|c='n') if( c=EOF ) return (NULL) ;else bufi+=c ;while(c = && c!=" && c!= 't' && c!= 'n')bufi+ = c

溫馨提示

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

評論

0/150

提交評論