《2022年C语言程序填空题 .pdf》由会员分享,可在线阅读,更多相关《2022年C语言程序填空题 .pdf(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。【3.1 】下面程序的功能是不用第三个变量,实现两个数的对调操作。#include main() int a,b;scanf(%d%d,&a,&b);printf(a=%d
2、,b=%dn,a,b);a= ;b= ;a= ;printf(a=%d,b=%dn,a,b); 【3.2 】下面程序的功能是根据近似公式:2/6 1/12+1/22+1/32+ +1/n2,求 值。#include double pi(long n) double s=0.0;long i ;for(i=1 ;i=n ;i+) s=s+ ;return( ); 【3.3 】下面的程序的功能是求一维数组中的最小元素。findmin(int *s,int t,int *k) int p ;for(p=0,*k=p;pt ; p+) if(sps*k) ; main() int a10,i,*k=&
3、i;for(i=0 ;i10 ;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,s); 【3.5 】有以下程序段:s=1.0 ;for(k=1 ;kamax) amax=x;if( ) amin=x;scanf(%f,&x); printf(namax=%fnamin=%fn,amax,amin); 【3.7 】下面程序的功能是将
4、形参x 的值转换为二进制数,所得的二进制数放在一个一维数组中返回,二进制数的最低位放在下标为0 的元素中。fun(int x,int b) int k=0,r;do r=x% ;bk+=r;x/= ;while(x) ; 【3.8 】下面程序的功能是输出1 到 100 之间每位数的乘积大于每位数的和的数。例如数字 26 ,数位上数字的乘积12 大于数字之和8。main() int n,k=1,s=0,m;for(n=1 ;ns) printf(%d,n); 【3.9 】下面程序的功能是统计用0 至 9 之间的不同的数字组成的三位数的个数。main() int i,j,k,count=0;for
5、(i=1 ;i=9 ;i+) for(j=0 ;j=9 ;j+) if( ) continue;else for(k=0;k=9 ;k+) if( ) count+;printf(%d,count); 【3.10 】下面程序的功能是输出100 以内的个位数为6、且能被3 整除的所有数。main() int i,j;for(i=0 ; ;i+) j=i*10+6;if( ) countinue;printf(%d,j); 【3.11 】下面程序的功能是用辗转相除法求两个正整数m 和 n 的最大公约数。hcf(int m,int n) int r ;if(mn) r=m ; ;n=r ; r=m%
6、n;while( ) m=n ;n=r ;r=m%n; ; 【3.12 】下面程序的功能是使用冒泡法对输入的10 个浮点数从小到大进行排序。排好序的 10 个数分两行输出。程序如下:名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 2 页,共 19 页 - - - - - - - - - #include main() ;int i,j ;printf(Input 10 numbers pleasen);for(i=0 ; ;i+ ) scanf(%f, &ai);p
7、rintf(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);printf(%ft,ai); printf(n); 【3.13 】下面程序的功能是读入20 个整数,统计非负数个数,并计算非负数之和。#include stdio.h main() int i,a20,s,count;s=count=0;for(i=0 ;i20 ;i+ ) scanf(%d, );for(i=0 ;i20 ;i+) if
8、(ai0) ;s+=ai ;count+; printf(s=%dt count=%dn,s,count); 【3.14 】下面程序的功能是删除字符串s 中的空格。#include 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 】下面程序的功能是将字符串s 中所有的字符c删除。请选择填空。#include main( ) char s80;int i,j;gets(s) ;for(i=j=0;si!= 0; i+ ) if(si
9、!= c) ;sj= 0;puts(s) ; 【3.16 】下面程序的功能是输出两个字符串中对应相等的字符。请选择填空。#include char x=programming;char y=Fortran;main() int i=0;while(xi!= 0 & yi!= 0) if(xi=yi) printf(%c, );else i+ ;名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 3 页,共 19 页 - - - - - - - - - 【3.17 】下面
10、程序的功能是将字符串s 中的每个字符按升序的规则插到数组a 中, 字符串 a 已排好序。#include 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.18 】下面程序的功能是对键盘输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差。例如:输入的两个字符串分别为abcdefg 和abceef ,则输出为 -1。#include main() char s
11、tr1100,str2100,c;int i,s ;printf(Enter string 1: ); gets(str1);printf(Enter string 2: ); gets(str2);i=0 ;while(str1i = str2i & str1i!= ) i+ ;s= ;printf(%dn, s); 【3.19 】下面的函数expand在将字符串s 复制到字符串t 时, 将其中的换行符和制表符转换为可见的转义字符表示,即用n 表示换行符,用t 表示制表符。expand(char s,char t) int i,j;for(i=j=0;si!= 0; i+ ) switch
12、(si) case n: t = ;tj+ = n;break ;case t: t = ;tj+ = t;break ;default: t = si ;break ; tj = ; 【3.20 】下面的函数index(char s, char t)检查字符串s 中是否包含字符串t,若包含,则返回t 在 s 中的开始位置(下标值),否则送回-1 。index(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.21 】下面
13、程序的功能是计算S= k! 。k=0 long fun(int n) int i ;long s ;for(i=1 ;i ;i+) s*=i ;return( ); main() 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 4 页,共 19 页 - - - - - - - - - int k,n;long s ;scanf(%d,&n);s= ;for(k=0 ;k=n ; k+) s+= ;printf(%ldn,s); 【3.22 】下面程序的功能是显示具有
14、n 个元素的数组s 中的最大元素。#define N 20 main() int i,aN;for(i=0 ;iN ;i+) scanf(%d,&ai);printf(%dn, ); fmax(int s,int n) int k,p;for(p=0,k=p;psk) ;return(k); 【3.23 】下面程序的功能是由键盘输入n,求满足下述条件的x、y:nx 和 ny 的末 3 位数字相同,且x y,x、y、n 均为自然数,并使x+y 为最小。#include pow3(int n,int x) int i, last;for(last=1,i=1;i=x ; i+ ) last= ;r
15、eturn(last); main() int x,n,min,flag=1;scanf(%d, &n);for(min=2;flag ;min+) for(x=1 ;xmin & flag;x+ ) if( & pow3(n,x)=pow3(n,min-x) printf(x=%d,y=%dn, x, min-x ); ; 【3.24 】下面的程序是用递归算法求a 的平方根。求平方根的迭代公式如下:#include double mysqrt( double a, double x0 ) double x1, y;x1 = ;if( fabs(x1-x0)0.00001 ) y = mysq
16、rt( );else y = x1;return( y ); main() double x;printf(Enter x: );scanf(%lf, &x);printf(The sqrt of %lf=%lfn, x, mysqrt( x, 1.0) ); 【3.25 】以下程序是计算学生的年龄。已知第一位最小的学生年龄为10 岁,其余学生的年龄一个比一个大2 岁,求第5 个学生的年龄。#include age( int n ) int c ;if( n=1 ) c=10;else c= ;return(c); main() int n=5;printf(age:%dn, );名师归纳总结
17、 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 5 页,共 19 页 - - - - - - - - - 【3.26 】下面的函数sum(int n)完成计算1n 的累加和。sum(int n) if(n=0) printf(data errorn);if(n=1) ;else ; 【3.27 】下面的函数是一个求阶乘的递归调用函数。facto(int n) if( n = 1 ) ;else return( ); 【3.28 】组合问题,由组合的基本性质可知:(1) C(m,
18、n)=C(n-m,n) (2) C(m,n+1)=C(m,n)+C(m-1,n) 公式 (2)是一个递归公式, 一直到满足C(1,n)=n为止。当 n2*m时, 可先用公式 (1) 进行简化,填写程序中的空白,使程序可以正确运行。#includestdio.h main() int m,n;printf(Input m,n=);scanf(%d%d, &m, &n);printf(The combination numbeers is %dn, combin(m,n); combin( int m, int n) int com;if( n2*m ) m=n-m;if( m=0 ) com=1
19、;else if(m=1) ;else ;return(com); 【3.29 】下列函数是求一个字符串str 的长度。? int strlen( char *str ) ? if( ) return (0);? ? else return ( ); 【3.30 】用递归实现将输入小于32768的整数按逆序输出。如输入12345 ,则输出54321 。#includestdio.h main() int n ;printf(Input n : );scanf(%d, );r(n) ;printf(n); r( int m ) printf(%d, );m = ;if( ) ; 【3.31 】输
20、入 n 值,输出高度为n 的等边三角形。例如当n=4 时的图形如下:* * * * #include void prt( char c, int n ) if( n0 ) printf( %c, c ); ; main() int i, n;scanf(%d, &n);for( i=1 ; i=n ; i+ ) ;名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 6 页,共 19 页 - - - - - - - - - ;printf(n); 【3.32 】下面的函数
21、实现N 层嵌套平方根的计算。double y(double x, int n) if( n=0 ) return(0);else return ( sqrt(x+( ) ); 【3.33 】函数 revstr(s) 将字符串s 置逆, 如输入的实参s 为字符串 abcde , 则返回时 s 为字符串 edcba 。递归程序如下:revstr( char *s ) char *p=s, c;while(*p) p+; ;if(sp) c=*s ;*s=*p ; ;revstr(s+1); ; 如下是由非递归实现的revstr(s)函数:revstr (s) char *s; char *p=s,
22、 c;while( *p ) p+; ;while( s2 ) invent ( ,n-2) ;else ; 【3.35 】从键盘上输入10 个整数,程序按降序完成从大到小的排序。#include int array10;sort( int *p, int *q ) int *max, *s;if( ) return;max=p ; for( s=p+1; s *max ) ; swap( );sort( ); swap( int *x, int *y ) int temp;temp=*x;*x=*y ;*y=temp; main() int i ; printf(Enter data :n)
23、; for( i=0 ; i10 ; i+) scanf(%d, &arrayi); sort( );printf(Output:);for( i=0 ; i10 ; i+) printf(%d , arrayi); 【3.36 】下面函数的功能是将一个整数存放到一个数组中。存放时按逆序存放。例如:483 存放成 384 。#include void convert(char *a, int n) int i ;if(i=n/10) !=0 ) 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - -
24、- - - - - - 第 7 页,共 19 页 - - - - - - - - - convert( , i ) ;*a = ; char str10= ;main() int number;scanf(%d, &number);convert( str, number );puts(str); 【3.37 】下面程序的功能是实现数组元素中值的逆转。#include main() int i,n=10,a10=1,2,3,4,5,6,7,8,9,10;invert(a,n-1);for(i=0 ;i10 ;i+) printf(%4d,ai);printf(n); invert(int *s
25、,int num) int *t,k;t=s+num;while( ) k=*s ;*s=*t ;*t=k ; ; ; 【3.38 】下面程序通过指向整型的指针将数组a34 的内容按行列的格式输出,请给 printf( )填入适当的参数,使之通过指针p 将数组元素按要求输出。#include int a34=1,2,3,4,5,6,7,8,9,10,11,12, *p=a;main() int i,j;for(i=0 ;i3 ;i+ ) for(j=0 ;j4 ;j+ ) printf(%4d , ); 【3.39 】下面程序的功能是:从键盘上输入一行字符,存入一个字符数组中,然后输出该字符串
26、。#include main ( ) char str81, *sptr;int i ;for(i=0 ;iwp) ;for(i=*n;i=p ; i-) ;wp=x ;+*n ; 【3.41 】下面程序的功能是从键盘上输入两个字符串,对两个字符串分别排序;然后将它们合并,合并后的字符串按ASCII 码值从小到大排序,并删去相同的字符。#include strmerge(a,b, c) /* 将已排好序的字符串a、b 合并到 c */ char *a,*b ,*c; char t,*w ;w=c ;名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归
27、纳 精选学习资料 - - - - - - - - - - - - - - - 第 8 页,共 19 页 - - - - - - - - - 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( *b !=
28、*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 ;in-1 ;i+ ) for( j=i+1;jsj ) main( ) char s1100,s2100 ,s3200 ;printf(nPlease Input First String:);scanf(%s, s1) ;printf(nPlease Input Second String:);scanf(%s, s2) ;strsort(
29、s1);strsort(s2); = 0 ;strmerge(s1,s2 ,s3) ;printf(nResult:%s,s3) ; 【3.42 】已知某数列前两项为2 和 3,其后继项根据前面最后两项的乘积,按下列规则生成: 若乘积为一位数,则该乘积即为数列的后继项; 若乘积为二位数, 则该乘积的十位上的数字和个位上的数字依次作为数列的两个后继项。下面的程序输出该数列的前项及它们的和,其中,函数 sum(n,pa) 返回数列的前N项和,并将生成的前N 项存入首指针为pa 的数组中,程序中规定输入的N 值必须大于 2,且不超过给定的常数值MAXNUM。例如:若输入的值为10 ,则程序输出如下内
30、容:sum(10)=44 2 3 6 1 8 8 6 4 2 4 #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( temp10 ) total += temp;*(+pa) = temp; else = temp/10;total += *pa;if( countn ) count +; pa+ ; = temp%10;total
31、 += *pa; 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 9 页,共 19 页 - - - - - - - - - ; main() int n, *p, *q, numMAXNUM;do printf(Input N=? (2N%d):, MAXNUM+1);scanf(%d, &n);while( );printf(nsum(%d)=%dn, n, sum(n, num);for( p=num, q = ; pq ; p+ ) printf(%4d, *
32、p);printf(n); 【3.43 】下面程序的功能是输入学生的姓名和成绩,然后输出。#include struct stuinf char name20; /* 学生姓名*/ int score; /* 学生成绩*/ stu, *p;main ( ) p=&stu;printf(Enter name:);gets( );printf(Enter score: );scanf(%d, );printf(Output: %s, %dn, , ); 【3.44 】下面程序的功能是按学生的姓名查询其成绩排名和平均成绩。查询时可连续进行,直到输入0 时才结束。? #include #include
33、 #define NUM 4 ? struct student ? int rank;char *name;float score;?;? stu = 3,liming,89.3 ,? 4 , 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=NUM ) printf(Not foundn);? while( strcmp(str,0)!=0 ) ;? 【3.45 】
34、下面程序的功能是从终端上输入个人的年龄、性别和姓名,然后输出。#include stdio.h struct man char name20;unsigned age;char sex7;main ( ) struct man person5;data_in(person,5);data_out(person,5); 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 10 页,共 19 页 - - - - - - - - - data_in(struct man *p
35、, int n ) struct man *q = ;for( ;page, p-sex); ; data_out( struct man *p, int n ) struct man *q = _;for( ;pname, p-age, p-sex); 【3.46 】输入 N 个整数,储存输入的数及对应的序号,并将输入的数按从小到大的顺序进行排列。要求:当两个整数相等时,整数的排列顺序由输入的先后次序决定。例如:输入的第3 个整数为5,第 7 个整数也为5,则将先输入的整数5 排在后输入的整数 5 的前面。程序如下:#include stdio.h #define N 10 struct i
36、nt no;int num; arrayN;main( ) int i , j,num ;for( i=0 ;i=0&arrayj.num num ; ) arrayj+1=arrayj;array .num=num;array .no=i ; for( i=0 ;iN ;i+ ) printf(%d=%d,%dn,i,arrayi.num,arrayi.no); 【3.47 】以下程序的功能是:读入一行字符(如: a、.y 、z),按输入时的逆序建立一个链接式的结点序列,即先输入的位于链表尾(如下图),然后再按输入的相反顺序输出,并释放全部结点。#include main( ) struct
37、 node char info;struct node *link; *top ,*p ;char c ;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 】下面函数将指针p2 所指向的线性链表,串接到p1 所指向的链表的末端。假定 p1 所指向的链表非空。#define NULL 0 struct link 名师归纳总结
38、精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 11 页,共 19 页 - - - - - - - - - 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 struct node ch
39、ar data;struct node *link;*head ;main() char 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; 【3.50 】下面程序的功能是从键盘上顺序输入整数,直到输入的整数小于0 时才停止输入。然后反序输出这些整数。#include struct da
40、ta int x ;struct data *link;*p;input() int num;struct data *q;printf(Enter data:);scanf(%d, &num);if( numx = num;q-link = p;p=q ; ; main() printf(Enter data until datax); ; 【3.51 】下面函数的功能是创建一个带有头结点的链表,将头结点返回给主调函数。链表用于储存学生的学号和成绩。新产生的结点总是位于链表的尾部。struct student long num;int score;struct student *next;名
41、师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 12 页,共 19 页 - - - - - - - - - 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; tail-score=
42、a;tail-next=(struct student *)malloc(LEN); else tail-next=NULL;while(num!=0);return( ); 【3.52 】下面 create函数的功能是建立一个带头结点的单向链表,新产生的结点总是插入在链表的末尾。单向链表的头指针作为函数值返回。#include #define LEN sizeof(struct student) struct student long num;int score;struct student *next;struct student *creat() struct student *head
43、=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=tail-next;tail-num=num;tail-score=a;tail-next=( )malloc(LEN); else tail-next=NULL;while(num!=0); ; 【3.53 】下面程序的功能是统计文件中的字符的个数。#include main() long num=0; *fp ;if(fp=fopen(fname.dat,
44、r)=NULL) printf(Cant open the file! );exit(0) ; while( ) fgetc(fp) ;num+; printf(num=%dn,num);fclose(fp) ; 【3.54 】下面程序的功能是把从键盘输入的文件(用 作为文件结束标志)复制到一个名为second.txt的新文件中。#include FILE *fp;main() char ch;if(fp=fopen( )=NULL) exit(0) ;while(ch=getchar()!=) fputc(ch,fp);名师归纳总结 精品学习资料 - - - - - - - - - - -
45、- - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 13 页,共 19 页 - - - - - - - - - ; 【3.55 】下面程序的功能是将磁盘上的一个文件复制到另一个文件中,两个文件名在命令行中给出(假定给定的文件名无误)。#include main(int argc,char *argv) FILE &f1,*f2;if(argc ) printf(The command line error! );exit(0) ; f1=fopen(argv1, r);f2=fopen(arhv2, w);while( ) fputs(fg
46、etc(f1), ); ; ; 【3.56 】下面程序的功能是根据命令行参数分别实现一个正整数的累加或阶乘。例如:如果可执行文件的文件名是sm ,则执行该程序时输入:sm + 10,可以实现10 的累加;输入: sm - 10,可以实现求10 的阶乘。#include #include 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 ;case -:
47、funcp=mult;break ;default: dispform( ); ; void sum(int m) int i,s=0;for(i=1 ;im ;i+ ) ;printf(sum=%dn,s); void mult(int m) long int i, s=1;for(i=1 ;i0)n);exit (0) ; 【3.57 】下面程序的功能是键盘上输入一个字符串,把该字符串中的小写字母转换为大写字母,输出到文件test.txt中,然后从该文件读出字符串并显示出来。#include main() char str100;int i=0;FILE *fp;if(fp=fopen(t
48、est.txt, )=NULL) printf(Cant open the file.n);exit(0) ; printf(Input a string:n);gets(str) ;while(stri) 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 14 页,共 19 页 - - - - - - - - - if(stri= a&stri= z) stri= ;fputc(stri,fp);i+ ; fclose(fp) ;fp=fopen(test.txt,
49、 );fgets(str,strlen(str)+1,fp);printf(%sn,str);fclose(fp) ; 【3.58 】下面程序的功能是将从终端上读入的10 个整数以二进制方式写入名为bi.dat的新文件中。#include FILE *fp;main() int i, j;if( fp=fopen( , wb ) = NULL ) exit (0) ;for( i=0 ;i10 ;i+ ) scanf(%d, &j );fwrite( , sizeof(int), 1, ); fclose( fp); 【3.59 】以字符流形式读入一个文件,从文件中检索出六种语言的关键字,并统
50、计、输出每种关键字在文件中出现的次数。本程序中规定: 单词是一个以空格或t 、 n结束的字符串。#include #include 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;char c ;while(c=getc(fp) != EOF & (c= |c=t|c=n) ;if( c=EOF ) return