




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、導(dǎo)讀:在程序填空題中,已經(jīng)給出了程序的主干,讀者首先要理解程序的思路,再選擇正確的內(nèi)容填入空白處,使程序 完成既定的功能。這類習(xí)題的設(shè)計(jì)就是要引導(dǎo)讀者逐步掌握編程的方法。本節(jié)習(xí)題的難度適中,可能有些典型的程序在 課堂上已經(jīng)有所接觸,讀者一定要獨(dú)立完成它,這樣就可以逐步提高自己的編程能力。在程序設(shè)計(jì)語(yǔ)言學(xué)習(xí)的中期,讀 者對(duì)程序設(shè)計(jì)已經(jīng)有了初步的了解,而自己編寫程序又不知從何處入手,此時(shí)解答此類題目可以避免盲目性,從而提高 學(xué)習(xí)的效率。3.1 1下面程序的功能是不用第三個(gè)變量,實(shí)現(xiàn)兩個(gè)數(shù)的對(duì)調(diào)操作。#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);+1/n2,求3.2】下面程序的功能是根據(jù)近似公式:7t 2/61/12+1/22+1/32+7t值。#inelude <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,i
3、 nt 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)3.41下面程序的功能是計(jì)算1-3+5-7+-99+101 的值。main()int i,t=1,s=0;for(i=1 ; i<=101 ; i+=2);s=s+t ; ; p rintf("%dn&
4、quot;,s)3.5 1有以下程序段:8=1.0 ;for(k=1 ; k<=n; k+)s=s+1.0/(k*(k+1);p rintf("%fn",s);填空完成下述程序,使之與上述程序的功能完全相同。8=0.0 ;;k=0;dos=s+d ;;d=1.0/(k*(k+1);while();p rintf("%fn",s);統(tǒng)計(jì)并輸出最高成績(jī)和3.6 1下面程序的功能是從鍵盤上輸入若干學(xué)生的學(xué)習(xí)成績(jī), 最低成績(jī),當(dāng)輸入為負(fù)數(shù)時(shí)結(jié)束輸入。main()float x,amax,ami n;scan f("%f',&x);
5、amax=x;amin=x;while()if(x>amax) amax=x ;if( )amin=x ;scan f("%f',&x);printf("n amax=%fnamin=%frr,amax,amin)3.7 1下面程序的功能是將形參X的值轉(zhuǎn)換為二進(jìn)制數(shù),所得的二進(jìn)制數(shù)放在一個(gè)一維數(shù)組中返回,二進(jìn)制數(shù)的最低位放在下標(biāo)為0的元素中。fun(int x,int b)int k=O,r dor=x% ; bk+=r ;x/=;while(x);3.81下面程序的功能是輸出1到100之間每位數(shù)的乘積大于每位數(shù)的和的數(shù)。例如數(shù)字26,數(shù)位上數(shù)字的乘積
6、12大于數(shù)字之和8omain()intn ,k=1 ,s=0,m;for(n=1 ; n<=100; n+)k=1 ;s=0; ;while() k*=m%10;s+=m%19 ;3.9 1下面程序的功能是統(tǒng)計(jì)用0至9之間的不同的數(shù)字組成的三位數(shù)的個(gè)數(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( )count+ ;p rintf("%d", count) ;3.10】下面程序的功能是輸出
7、100以內(nèi)的個(gè)位數(shù)為 6、且能被3整除的所有數(shù)。main()int ij ;for(i=0 ;;i+)j=i*10+6;if( )countinue ;printf("%d"j) ;m和n的最大公約數(shù)。3.11 1下面程序的功能是用輾轉(zhuǎn)相除法求兩個(gè)正整數(shù) hcf(int m,int n)intr ;if(m<n)r=m ;;n=r;r=m%n while() m=n ;n=r;r=m%n3.12 1下面程序的功能是使用冒泡法對(duì)輸入的10個(gè)浮點(diǎn)數(shù)從小到大進(jìn)行排序。排好序的10個(gè)數(shù)分兩行輸出。程序如下:#inelude <stdio.h>main();int
8、ij ;printf("lriput 10 numbers pleasen");for(i=0 ;;i+)scanf("%f', &ai);printf("n") ;for(i=2 ;;i+)forG=0 ;;j+)if()x=aD;aj+1=x ;;n”);printf("The sorted 10 numbers for(i=0 ;;i+)if()printf("n") ; printf("%ft",ai);printf("n")3.131下面程序的功能是
9、讀入20個(gè)整數(shù),統(tǒng)計(jì)非負(fù)數(shù)個(gè)數(shù),并計(jì)算非負(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)3.14 1下面程序的功能是刪除字符串S中的空格。#include <stdio.h>main() char *s="Be
10、ijing ligong daxue"int ij ;for(i=j=0 ; si!='0' i+)if(si!=");else ;sD= '0';printf("%s",s) ;3.151下面程序的功能是將字符串s中所有的字符'C刪除。請(qǐng)選擇填空。#include<stdio.h>main()char s80;int ij ;gets(s);for(i=j=0 ; si!= '0' i+)if(si!= 'c');sD= '0'Puts(s);3.161
11、下面程序的功能是輸出兩個(gè)字符串中對(duì)應(yīng)相等的字符。請(qǐng)選擇填空。#inelude <stdio.h>char x=" programmi ng"char y="Fortran" ;main()int i=0;while(xi!= '0' && yi!= '0')if(xi=yi)printf("%c", );elsei+ ;3.171下面程序的功能是將字符串S中的每個(gè)字符按升序的規(guī)則插到數(shù)組a中,字符串a(chǎn)已排好序。#inelude <string.h>main()ch
12、ar 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);3.181下面程序的功能是對(duì)鍵盤輸入的兩個(gè)字符串進(jìn)行比較,然后輸出兩個(gè)字符串中第一個(gè)不相同字符的ASCII碼之差。例如:輸入的兩個(gè)字符串分別為"abedefg"和"abceef ,則輸出為-1 o#inelude <stdio.
13、h>main()charstr1100,str2100,cint i,s ;gets(str1);gets(str2)printfC'Enter string 1:")printfC'Enter string 2:") i=0 ;)while(str1i = str2i && str1i!=i+ ;S=;Printf("%dn", s)3.19 1下面的函數(shù)expand在將字符串s復(fù)制到字符串t時(shí), 表符轉(zhuǎn)換為可見(jiàn)的轉(zhuǎn)義字符表示,即用 'n'表示換行符,用't' expan d(cha
14、r 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 break ;二;=sitD=;3.20】下面的函數(shù)index(char s, char t)檢查字符串s若包含,則返回t在s中的開始位置(下標(biāo)值),否則送回 index(char s, char t)int ij,k ;for(i=0 ; si!= '0
15、39; i+)forG=i,k=0 ; && sj=tk; j+,k+);if() return (i);return(-1)n3.21】下面程序的功能是計(jì)算S= k! ok=0long fun(int n)inti ;long s ;for(i=1 ; i ;i+)s*=i ;return();將其中的換行符和制表7F制表符O中是否包含字符串t,main()int k,n;long s ;scanf("%d",&n);s=;for(k=0 ; k<=n; k+) s+=; printf("%ldn",s) ;3.22】下面
16、程序的功能是顯示具有n個(gè)元素的數(shù)組S中的最大元素。#define N 20main()inti,aN ;for(i=0 ; i<N ; i+) scanf("%d",&ai);printf("%dn", );fmax(int s,int n)intk,p ;for(p=0,k=p ; p<n; p+) if(sp>sk);return (k);3.23 1下面程序的功能是由鍵盤輸入n,求滿足下述條件的 X、y:nx和ny的末3位數(shù)字相同,且xy, x、y、n均為自然數(shù),并使 x+y為最小。#inelude <stdio.h
17、>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 && flag ; x+ ) if( && pow3(n,x)=pow3(n,min-x) printf("x=%d,y=%dn", x, min-x) ;3.24 1下面的程序是
18、用遞歸算法求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'Enterx: ”);scanf("%lf', &x);printf("The sqrt of %lf=%lfn", x, mysqrt( x, 1.0)已知第一位最
19、小的學(xué)生年齡為 10歲,其余學(xué)生 2歲,求第5個(gè)學(xué)生的年齡。3.25 1以下程序是計(jì)算學(xué)生的年齡。 的年齡一個(gè)比一個(gè)大#include <stdio.h> age( int n) int c ; if(n=1 )c=10;else c=; return (c);main()int n=5;p rintf("age:%dn",sum(int n)完成計(jì)算1n的累加和。3.26 1下面的函數(shù) sum(int n)if(n<=0)printf("data errorn") if(n=1); else ;3.27 1下面的函數(shù)是一個(gè)求階乘的遞歸
20、調(diào)用函數(shù)。;);facto(int n) if( n = = 1 ) else return(【3.28】組合問(wèn)題,由組合的基本性質(zhì)可知:(1) C(m,n)=C(n-m,n) C(m,n+1)=C(m,n)+C(m-1,n)公式(2)是一個(gè)遞歸公式,一直到滿足C(1,n)=n為止。當(dāng)*2*01時(shí),可先用公式(1)進(jìn) 行簡(jiǎn)化,填寫程序中的空白,使程序可以正確運(yùn)行。#include"stdio.h"main()int m,n ;printf("lriput m,n=");scanf("%d%d", &m, &n);pri
21、ntf("The bination numbeers is %dn", bin(m,n);bin( int m, int n)int ;if( n<2*m ) m=n-m ;if( m=0 ) =1;else if(m=1);else ;return 0;3.29】下列函數(shù)是求一個(gè)字符串str的長(zhǎng)度。? int strlen( char *str)?if( )return (0);? ? ? ? ? else return ();3.30 1用遞歸實(shí)現(xiàn)將輸入小于32768的整數(shù)按逆序輸出。如輸入12345,則輸出54321 o#include"stdio.h
22、"main()int n ;printfC'Input n : ”);scanf("%d",);r(n);printf("n") ;r( int m );printf("%d", m =;if();3.31 輸入n值,輸出高度為 n的等邊三角形。例如當(dāng) 4時(shí)的圖形如下:*#include <stdio.h> void prt( char c, int n ) if( n>0) printf( "%c", c);main()int i, n ;scanf("%d"
23、;, &n);for( i=1; iv=n ; i+);p rintf("n") ;3.32 1下面的函數(shù)實(shí)現(xiàn)double y(double x, int n)if( n=0)return (0);else return (sqrt(x+(N層嵌套平方根的計(jì)算。)【3.33】函數(shù) revstr(s)回時(shí)s為字符串"edcba”。遞歸程序如下:revstr( char *s) char *p=s, c ;while(*p) P+;;if(s<p)c=*s ;*s=*p;將字符串s置逆,如輸入的實(shí)參 S為字符串”abode",則返revstr(
24、s+1);如下是由非遞歸實(shí)現(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中存放的長(zhǎng)度為n的字符串反轉(zhuǎn)過(guò)來(lái), 例如原來(lái)是"ABCDE",反序?yàn)?quot;EDCBA”。void invent(char *strchart ;t=*str ; *str=*(str+n-1) else ;,int n);*(str+ rM)=t; if( n>2 ) invent (,n-2)
25、3.35 1從鍵盤上輸入#inelude <stdio.h> 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 terrip=*x ;*x=*y ;*y=te mp ;10個(gè)整數(shù),程序按降序完成從大到小的排序。s<=q ; S+)main()int i ; printf("Enter data :n");f
26、or( i=0; i<10 ; i+);sort();scanf("%d", &arrayi) printfC'Output:") ; for( i=0; i<10 ; i+)printf("%d ", arrayi)存放時(shí)按逆序存放。例如:3.36 1下面函數(shù)的功能是將一個(gè)整數(shù)存放到一個(gè)數(shù)組中。483存放成"384" O#include <stdio.h>void convert(char *a, int n)inti ;if(i=n/10) !=0)convert( ,i);*a
27、=;char str10=""main()int number ;scanf("%d", &number) convert( str, number) puts (str) ;3.37 1下面程序的功能是實(shí)現(xiàn)數(shù)組元素中值的逆轉(zhuǎn)。#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",ai);p rintf("n") ;inver
28、t(int *s,int num) int *t,k ;t=s+num;while()k=*s ;*s=*t ;*t=k ;3.38 下面程序通過(guò)指向整型的指針將數(shù)組a34 的內(nèi)容按3行X 4列的格式輸出,請(qǐng)給Printf()填入適當(dāng)?shù)膮?shù),使之通過(guò)指針P將數(shù)組元素按要求輸出。#inelude <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+)printf("%4d",);3.39 1下面程序的功能是:從鍵盤上
29、輸入一行字符,存入一個(gè)字符數(shù)組中,然后輸 出該字符串。#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 1下面函數(shù)的功能是將字符變量的值插入已經(jīng)按 字符串中。void fun (char *w,char x,int *n)inti,p=O ; while(x>wp
30、) ; for(i=*n ; i>=p ; i-);wp=x ;+*n ;3.41 1下面程序的功能是從鍵盤上輸入兩個(gè)字符串,對(duì)兩個(gè)字符串分別排序;然后 將它們合并,合并后的字符串按ASCII碼值從小到大排序,并刪去相同的字符。#inelude <stdio.h>strmerge(a , b, c) /*將已排好序的字符串a(chǎn)、b合并到c */char *a , *b , *c ; char t , *w;w=c;while( *a!= '0' *b!='0')t=?*a+:*b<*a?*b+ :(if( *w '0') *
31、w=t ;else if( t *w) *+w=t ; /*);/* 將*a、*b的小者存入t*/將與*w不相同的t存入W */while( *a != '0')/*if( *a != *w ) *+w=*a+ else a+ ;while( *b != '0')if( *b != *w ) *+w=*b+ else b+ ;*+w =;以下將a或b中剩下的字符存入W */strsort( char *s ) /* inti chart ,; for( n=0W+; for( i=0 for(j=i+1J , n;*w;*w != '0'i<
32、;n-1 ; i+);j<n ; j+ )將字符串S中的字符排序*/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) ;strsort(s2) ;='0'strmerge(s1 , s2, s3);prin
33、tf("nResult:%s" , s3);13.42 1已知某數(shù)列前兩項(xiàng)為 2和3,其后繼項(xiàng)根據(jù)前面最后兩項(xiàng)的乘積,按下列規(guī) 則生成: 若乘積為一位數(shù),則該乘積即為數(shù)列的后繼項(xiàng); 若乘積為二位數(shù),則該乘積的十位上的數(shù)字和個(gè)位上的數(shù)字依次作為數(shù)列的兩個(gè)后繼項(xiàng)。下面的程序輸出該數(shù)列的前N項(xiàng)及它們的和,其中,函數(shù)sum(n,pa)返回?cái)?shù)列的前N項(xiàng)和,并將生成的前N項(xiàng)存入首指針為pa的數(shù)組中,程序中規(guī)定輸入的 N值必須大于 2,且不超過(guò)給定的常數(shù)值MAXNUM例如:若輸入N的值為 10,則程序輸出如下內(nèi)容:sum(10)=442361886424#include "st
34、dio.h"#define MAXNUM 100int 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) count +; pa+ ;=temp%10 ;total += *pa ;main()intn, *p, *q, numMA
35、XNUM ;do printfC'Input N=? (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);p rintf("n") ;3.43 1下面程序的功能是輸入學(xué)生的姓名和成績(jī),然后輸出。#include <stdio.h>struct Stu infc
36、har name20 ; /*學(xué)生姓名 */int score ; /* 學(xué)生成績(jī) */,) Stu, *p ; main () p=&stu ; printfC'Enter name:") gets(); printfC'Enter score:") scanf("%d",); printfC'Output: %s, %dn"3.44 1下面程序的功能是按學(xué)生的姓名查詢其成績(jī)排名和平均成績(jī)。查詢時(shí)可連續(xù) 進(jìn)行,直到輸入0時(shí)才結(jié)束。? ? #include <stdio.h>#inelude <
37、string.h>#define NUM 4? struct student? int rank ;char * name ;?; ?1?float score : stu = 3, "liming" , 89.3 ,4 , "zhanghua" , 78.2 ,1 , "anii" , 95.1 ,2 , "wangqi" , 90.6 main() char str10;int i ;? printfC'Enter a name");doscanf("%s" , st
38、r);for( i=0; i<NUM i+ )if()?printfC'Name :%8sn" printfC'Rank :%3dn" printfC'Average :%5.1fn";,),stui.rank);,stui.score)if( i>=NUM ) printfC'Not foundn") while( strcmp(str, "0")!=0)3.45 1下面程序的功能是從終端上輸入5個(gè)人的年齡、性別 和姓名,然后輸出。#include "stdio
39、.h"struct man char name20; unsigned age ;char sex7 ;main () struct man person5 data_i n(person,5) data_ out(person,5) data_in(stnjct 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, i
40、nt n ) struct man *q =_;P+)%i4 %sn", p->name, p->age, p->sex)for( ; p<q; printf("%s ;3.46 1輸入N個(gè)整數(shù),儲(chǔ)存輸入的數(shù)及對(duì)應(yīng)的序號(hào),并將輸入的數(shù)按從小到大的順 序進(jìn)行排列。要求:當(dāng)兩個(gè)整數(shù)相等時(shí),整數(shù)的排列順序由輸入的先后次序決定。例 如:輸入的第3個(gè)整數(shù)為5,第7個(gè)整數(shù)也為5,則將先輸入的整數(shù) 5排在后輸入的整 數(shù)5的前面。程序如下:#include "stdio.h"#defi ne N 10struct int no ;int num
41、; arrayN;mai n() int i ,j, numfor( i=0; i<N ; i+ ) prin tf("e nter No. %d:"scanf("%d" ,&num);,i);for(;j>=0&&arrayj.num num ;arrayj+1=arrayj ;arrayarrayfor( i=0 .num=num ; .no=i ;i<N ; i+ )printf("%d=%d , %dn",i, arrayi.num ,arrayi.no)【3.47】以下程序的功能是:
42、讀入一行字符一個(gè)鏈接式的結(jié)點(diǎn)序列,即先輸入的位于鏈表尾(如下圖),然后再按輸入的相反順 序輸出,并釋放全部結(jié)點(diǎn)。(如:a、y、z),按輸入時(shí)的逆序建立while( top );top=top->li nk pu tchar( p->info) free( p);【3.48】下面函數(shù)將指針 p2所指向的線性鏈表,串接到 p1所指向的鏈表的末端。假 定p1所指向的鏈表非空。#defi ne NULL 0struct link float a ;struct link *next ;;con cate nate ( p1, p2 )struct list *p1, *p2 ; if( p
43、1-> next=NULL )p1->next=p2 ;elsecon cate nate(,p2);#i nclude <stdio.h>mai n() struct node char info ;struct node *li nk; *top , *p ;char c ;top=NULL;while(c= getchar() p=(struct node *)malloc(sizeof(struct no de) p->info=c ;p->li nk=t op;to p=p ;【3.49】下面程序的功能是從鍵盤輸入一個(gè)字符串,然后反序輸出輸入的字符
44、串。#in clude <stdio.h>struct node char data ;struct node *li nk;*head ;main () char ch ;struct node *p ;head = NULL ;while( ch=getchar()!='n') p = (struct node *)malloc(sizeof(struct no de);p->data = ch ;p->link =;head =;while( p !=NULL ) Printf("%c", p->data) p = p-&
45、gt;link;0時(shí)才停止3.50 1下面程序的功能是從鍵盤上順序輸入整數(shù),直到輸入的整數(shù)小于 輸入。然后反序輸出這些整數(shù)。#include <stdio.h>struct dataintx ;struct data *link ;*P ; inputO int num ;struct data *q ;p rintfC'E nter data:”) ; scanf("%d", &num);if( num<0);q =;q->x = num ;q->li nk = p ;p=q; ;main() printf("Ent
46、er data until data<0:n") p=N U inputO ;printfC'Output:") ;while() printf("%dn", p->x);;3.51 1下面函數(shù)的功能是創(chuàng)建一個(gè)帶有頭結(jié)點(diǎn)的鏈表,將頭結(jié)點(diǎn)返回給主調(diào)函數(shù)。 鏈表用于儲(chǔ)存學(xué)生的學(xué)號(hào)和成績(jī)。新產(chǎn)生的結(jié)點(diǎn)總是位于鏈表的尾部。struct stude ntlong num ;int score :struct stude nt *next struct stude nt *creat()struct student *head=NULL,*tai
47、l long 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) else tail->next=NULL while(num!=O); return();新產(chǎn)生的結(jié)點(diǎn)總是【3.52】下面create函數(shù)的功能是建立一個(gè)帶頭結(jié)點(diǎn)的單向鏈表, 插入
48、在鏈表的末尾。單向鏈表的頭指針作為函數(shù)值返回。#inelude <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 a ;tail=()malloc(LEN); doscanf("%ld,%d",&num,&a) ; if(num!=0)if(head=NUL
49、L) 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下面程序的功能是統(tǒng)計(jì)文件中的字符的個(gè)數(shù)。#include <stdio.h>main()long num=0 ; *fp ;if(fp=fopen("fname.dat", "r")=NULL) printfC'Can't open the
50、 file!");exit(O);while() fgetc(fp) nu m+ p rintf("num=%dn",num) fclose(fp) ;【3.54】下面程序的功能是把從鍵盤輸入的文件(用作為文件結(jié)束標(biāo)志)復(fù)制到一個(gè)名為second.txt的新文件中。#include <stdio.h>FILE *fp ;main()char ch ;if(fp=fopen( )=NULL)exit(O);while(ch=getchar()!='')fputc(ch,fp) ; ;3.55 1下面程序的功能是將磁盤上的一個(gè)文件復(fù)制到另一
51、個(gè)文件中,兩個(gè)文件名在 命令行中給出(假定給定的文件名無(wú)誤)。#include <stdio.h>main(int argc,char *argv)FILE &f1,*f2;if(argc< ) printfC'The mand line error!") exit(O);f1 =fopen(argv1, "r") f2=fopen(arhv2, "w") while() fputs(fgetc(f1), ( ; ;【3.56 1下面程序的功能是根據(jù)命令行參數(shù)分別實(shí)現(xiàn)一個(gè)正整數(shù)的累加或階乘。例如:如果可執(zhí)行文件
52、的文件名是 sm,則執(zhí)行該程序時(shí)輸入:"sm + 10",可以實(shí)現(xiàn)10的累 加;輸入:"sm -10",可以實(shí)現(xiàn)求10的階乘。#inelude <stdio.h>#include <stdlib.h>main (int argc,char *argv)int n ;void sum(),mult() ;void (*funcp)();n=atoi(argv2);if(argc!=3 | *=0) dispfomn();switch () case funep=sum ;break ;case funcp=mult;break ;d
53、efault: dispfonn();void sum(int m)int i,s=0;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 ;printf("mult= %ldn"dispfonn() printf ("usage:sm n(+/!) (n>O)n") exit (0);3.57 1下面程序的功能是鍵盤上輸入一個(gè)字符串,把該字符串中的小寫字母轉(zhuǎn)換為
54、大寫字母,輸出到文件 test.txt 中,然后從該文件讀出字符串并顯示出來(lái)。#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(O);printfC'Input a string:n") gets(str); while(stri)if(stri>= 'a'&&stri<= N)
55、stri=; fputc(stri,fp) ; i+ ;fclose(fp) ;fp=fopen("test.txt",);fgets(str,strlen(str)+1 ,fp) p rintf("%sn",str) ;fclose(fp) ;3.58 1下面程序的功能是將從終端上讀入的10個(gè)整數(shù)以二進(jìn)制方式寫入名為"bi.dat"的新文件中。#include <stdio.h>FILE *fp ;main()intij ;if( fp=fopen( ,"wb") = NULL ) exit (0);
56、for( i=0; i<10 ; i+)scanf("%d", &j);fwrite( ,sizeof(int), 1,)fclose( fp)從文件中檢索出六種C語(yǔ)言的關(guān)鍵字,并統(tǒng)計(jì)、本程序中規(guī)定:?jiǎn)卧~是一個(gè)以空格或't'、'n'3.59 1以字符流形式讀入一個(gè)文件, 輸出每種關(guān)鍵字在文件中出現(xiàn)的次數(shù)。 結(jié)束的字符串。#inelude <stdio.h>#inelude <string.h>FILE *cp ;char fname20, buf1OO ;int num ; struct key char word10 ; int count ;keyword= ”if", 0, "char", 0, "int", 0, "else", 0,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 保安人員技術(shù)素養(yǎng)提升的路徑計(jì)劃
- 公共服務(wù)行業(yè)的品牌工作計(jì)劃
- 苗圃未來(lái)希望助力孩子成長(zhǎng)計(jì)劃
- 加強(qiáng)跨國(guó)經(jīng)營(yíng)管理提升全球競(jìng)爭(zhēng)力計(jì)劃
- 弘揚(yáng)學(xué)生尊重勞動(dòng)的精神計(jì)劃
- 2025年地理信息大數(shù)據(jù)合作協(xié)議書
- 2025年中國(guó)橡膠行業(yè)市場(chǎng)運(yùn)行態(tài)勢(shì)、產(chǎn)業(yè)鏈全景及發(fā)展趨勢(shì)報(bào)告
- 七年級(jí)下冊(cè)《立方根》課件與練習(xí)
- 利用大數(shù)據(jù)分析預(yù)測(cè)用戶需求變化
- 2025年路面清潔裝備項(xiàng)目建議書
- 2022版義務(wù)教育(生物學(xué))課程標(biāo)準(zhǔn)(附課標(biāo)解讀)
- 醫(yī)院放射診療中的輻射防護(hù)常識(shí)學(xué)習(xí)培訓(xùn)
- 《中國(guó)山水畫技法》課件
- 如何提升小學(xué)教學(xué)質(zhì)量
- 陜西省西安市2023-2024學(xué)年六年級(jí)上學(xué)期期末數(shù)學(xué)試卷(A卷)
- 變電站模塊化建設(shè)2.0版技術(shù)導(dǎo)則
- 無(wú)人機(jī)飛行表演合同
- 廣州市2023年中考:《道德法治》考試真題與參考答案
- 爺爺?shù)臓敔斈睦飦?lái):人類起源的演化過(guò)程
- 公會(huì)掛靠協(xié)議
- 欒川光伏扶貧發(fā)電項(xiàng)目部qc成果
評(píng)論
0/150
提交評(píng)論