




下載本文檔
版權(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)容填入空白處,使程序完成既定的功能。 這類(lèi)習(xí)題的設(shè)計(jì)就是要引導(dǎo)讀者逐步掌握編程的方法。本節(jié)習(xí)題的難 度適中,可能有些典型的程序在課堂上已經(jīng)有所接觸,讀者一定要獨(dú) 立完成它,這樣就可以逐步提高自己的編程能力。在程序設(shè)計(jì)語(yǔ)言學(xué) 習(xí)的中期,讀者對(duì)程序設(shè)計(jì)已經(jīng)有了初步的了解,而自己編寫(xiě)程序又 不知從何處入手,此時(shí)解答此類(lèi)題目可以避免盲目性,從而提高學(xué)習(xí) 的效率?!?3.1 】下面程序的功能是不用第三個(gè)變量,實(shí)現(xiàn)兩個(gè)數(shù)的對(duì)調(diào)操作。#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 】下面程序的功能是計(jì)算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 ;來(lái)- s=s+d ;d=1.0/(k*(k+1);while( );printf("%fn",s) ;【 3.6 】下面程序的功能是從鍵盤(pán)上輸入若干學(xué)生的學(xué)習(xí)成績(jī),統(tǒng)計(jì)并輸出最高成績(jī)和最低成績(jī),當(dāng)輸入為負(fù)數(shù)時(shí)結(jié)束輸入。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 的值轉(zhuǎn)換為二進(jìn)制數(shù),所得的二進(jìn)制數(shù)放在一個(gè)一維數(shù)組中返回,二進(jìn)制數(shù)的最低位放在下標(biāo)為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)計(jì)用0 至 9 之間的不同的數(shù)字組成的三位數(shù)的個(gè)數(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 以內(nèi)的個(gè)位數(shù)為 6、且能被3 整除的所有數(shù)。main() int i,j ;for(i=0 ; i+) j=i*10+6 ;if( ) countinue ;printf("%d",j) ;【 3.11 】 下面程序的功能是用輾轉(zhuǎn)相除法求兩個(gè)正整數(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 】下面程序的功能是使用冒泡法對(duì)輸入的10 個(gè)浮點(diǎn)數(shù)從小到大進(jìn)行排序。排好序的10 個(gè)數(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 個(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
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' 刪除。請(qǐng)選擇填空。#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 】 下面程序的功能是輸出兩個(gè)字符串中對(duì)應(yīng)相等的字符。請(qǐng)選擇填空。#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 中的每個(gè)字符按升序的規(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 】 下面程序的功能是對(duì)鍵盤(pán)輸入的兩個(gè)字符串進(jìn)行比較,然后輸出兩個(gè)字符串中第一個(gè)不相同字符的ASCII 碼之差。例如:輸入的兩個(gè)字符串分別為"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 復(fù)制到字符串 t 時(shí), 將其中的換行符和制表符轉(zhuǎn)換為可見(jiàn)的轉(zhuǎn)義字符表示,即用'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 中的開(kāi)始位置(下標(biāo)值),否則送回-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 】下面程序的功能是計(jì)算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 個(gè)元素的數(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下面程序的功能是由鍵盤(pán)輸入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 】 以下程序是計(jì)算學(xué)生的年齡。已知第一位最小的學(xué)生年齡為10 歲,其余學(xué)生的年齡一個(gè)比一個(gè)大 2 歲,求第5 個(gè)學(xué)生的年齡。#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)完成計(jì)算1n的 累加和。sum(int n) if(n<=0)printf("data errorn")
21、;if(n=1) ;else ;【 3.27 】下面的函數(shù)是一個(gè)求階乘的遞歸調(diào)用函facto(int n) if( n = 1 ) ; else return( ); 【 3.28 】組合問(wèn)題,由組合的基本性質(zhì)可知:(1) C(m,n)=C(n-m,n)(2) C(m,n+1)=C(m,n)+C(m-1,n)公式 (2)是一個(gè)遞歸公式,一直到滿足C(1,n)=n 為止。當(dāng) n<2*m 時(shí),可先用公式(1) 進(jìn)行簡(jiǎn)化,填寫(xiě)程序中的空白,使程序可以正確運(yùn)行。#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ù)是求一個(gè)字符串str 的長(zhǎng)度。? int strlen( char *str )? if( ) return (0) ;? ? else return
23、();【 3.30 】用遞歸實(shí)現(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 的等邊三角形。例如當(dāng) n=4 時(shí)的圖形如下:*#include <stdio.h>vo
24、id prt( char c, int n ) if( n>0 ) printf( "%c", c );放的長(zhǎng)度為n 的字符串反轉(zhuǎn)過(guò)來(lái),例如原來(lái)是"ABCDE" ,反序?yàn)?quot;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 】從鍵盤(pán)上輸入10 個(gè)整數(shù),程序按降序完printf("n") ;成從大到小的排序。#include <stdio.h>int array10 ;【 3.32 】 下面的函數(shù)實(shí)現(xiàn)N 層嵌套平方根的計(jì)算。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( );的實(shí)參s 為字符串"abcde" , 則返回時(shí)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) ;如下是由非遞歸實(shí)現(xiàn)的revstr(s) 函數(shù):【 3.36 】 下面函數(shù)的功能是將一個(gè)整數(shù)存放到一個(gè)revstr (s)數(shù)組中。存放時(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ù)用遞歸調(diào)用的方法,將str 中存 int number ;scanf("%d", &number);convert( str, number );puts(str) ;【 3.37 】 下面程序的功能是
29、實(shí)現(xiàn)數(shù)組元素中值的逆 轉(zhuǎn)。#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 】下面程序通過(guò)指向整型的指針將數(shù)組a34的內(nèi)容按3行X 4列的格式輸出,請(qǐng)給 printf( ) 填入適
30、當(dāng)?shù)膮?shù),使之通過(guò)指針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 】 下面程序的功能是:從鍵盤(pán)上輸入一行字符,存入一個(gè)字符數(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ù)的功能是將字符變量的值插入已經(jīng)按 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 】 下面程序的功能是從鍵盤(pán)上輸入兩個(gè)字符串,對(duì)兩個(gè)字符串分別排序;然后將它們合并,
32、合并后的字符串按ASCII 碼值從小到大排序,并刪去相同的字符。#include <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+ : ( );/* 將*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ù)列前兩項(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)=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 】下面程序的功能是輸入學(xué)生的姓名和成績(jī),然后輸出。#include <stdio.h>struct stuinf
38、char name20 ;/* 學(xué)生姓名*/int score ;/* 學(xué)生成績(jī)*/ stu, *p ;main ( ) p=&stu ;printf("Enter name:");gets( );printf("Enter score: ");scanf("%d" ,);printf("Output: %s, %dn",);【 3.44 】 下面程序的功能是按學(xué)生的姓名查詢其成績(jī)排名和平均成績(jī)。查詢時(shí)可連續(xù)進(jìn)行,直到輸入 0 時(shí)才結(jié)束。? #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 個(gè)整數(shù),儲(chǔ)存輸入的數(shù)及對(duì)應(yīng)的序號(hào),并將輸入的數(shù)按從小到大的順序進(jìn)行排列。要求:當(dāng)兩個(gè)整數(shù)相等時(shí),整數(shù)的排列順序由輸入的先后次序決定。例如:輸入的第3 個(gè)整數(shù)為5 ,第
42、 7個(gè)整數(shù)也為5,則將先輸入的整數(shù)5 排在后輸入的整數(shù) 5 的前面。程序如下:#include "stdio.h"? if( i>=NUM ) printf("Not foundn")? while( strcmp(str , "0")!=0 ) ; ?【 3.45 】下面程序的功能是從終端上輸入5個(gè)人的年齡、性別和姓名,然后輸出。#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),按輸入時(shí)的逆序建立一個(gè)鏈接式的結(jié)點(diǎn)序列,即先輸入的位于鏈表尾(如下圖),然后再按輸入的相反順序輸出,并釋放全部結(jié)點(diǎn)。#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 】 下面程序的功能是從鍵盤(pán)輸入一個(gè)字符串,然后反序輸出輸入的字符串。#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 】 下面程序的功能是從鍵盤(pán)上順序輸入整數(shù),直到輸入的整數(shù)小于0 時(shí)才停止輸入。然后反序輸出這些整數(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ù)的功能是建立一個(gè)帶頭結(jié)點(diǎn)的單向鏈表,新產(chǎn)生的結(jié)點(diǎn)總是插入在鏈表的末尾。單向鏈表的頭指針作為函數(shù)值返回?!?3.51 】 下面函數(shù)的功能是創(chuàng)建一個(gè)帶有頭結(jié)點(diǎn)的鏈表,
49、將頭結(jié)點(diǎn)返回給主調(diào)函數(shù)。鏈表用于儲(chǔ)存學(xué)生的學(xué)號(hào)和成績(jī)。新產(chǎn)生的結(jié)點(diǎn)總是位于鏈表的尾部。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)計(jì)文件中的字符的個(gè)數(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 】下面程序的功能是把從鍵盤(pán)輸入的文件(用 作為文件結(jié)束標(biāo)志)復(fù)制到一個(gè)名為second.txt的新文件中。#include <stdio.h>FILE *fp ;main() ch
53、ar ch ;if(fp=fopen( )=NULL)exit(0) ;fputc(ch,fp) ;【 3.55 】 下面程序的功能是將磁盤(pán)上的一個(gè)文件復(fù)制到另一個(gè)文件中,兩個(gè)文件名在命令行中給出(假定給定的文件名無(wú)誤)。#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ù)分別實(shí)現(xiàn)一個(gè)正整數(shù)的累加或階乘。例如:如果可執(zhí)行文件的文件名是sm ,則執(zhí)行該程序時(shí)輸入:"sm +10" ,可以實(shí)現(xiàn)10 的累加;輸入:"sm - 10" ,可以實(shí)現(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 】 下面程序的功能是鍵盤(pán)上輸入一個(gè)字符串,把該字符串中的小寫(xiě)字母轉(zhuǎn)換為大寫(xiě)字母,輸出到文件 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(0) ;pri
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年姿態(tài)敏感器項(xiàng)目資金申請(qǐng)報(bào)告代可行性研究報(bào)告
- 營(yíng)異常名錄管理暫行辦法
- 薊州區(qū)房屋土地管理辦法
- 蚌埠市基金管理辦法細(xì)則
- 行政預(yù)算與管理暫行辦法
- 衢州市排澇泵站管理辦法
- 西寧市市民中心管理辦法
- 西藏合同制工人管理辦法
- 設(shè)備管理與保養(yǎng)管理辦法
- 評(píng)標(biāo)專(zhuān)家?guī)旃芾頃盒修k法
- 品牌授權(quán)使用協(xié)議合同書(shū)
- 2024年天津市公安局濱海分局招聘警務(wù)輔助人員考試真題
- 報(bào)廢汽車(chē)回收拆解前景
- 2025年廣東省中考生物試卷真題(含答案解析)
- 2025至2030停車(chē)場(chǎng)項(xiàng)目發(fā)展趨勢(shì)分析與未來(lái)投資戰(zhàn)略咨詢研究報(bào)告
- 第10課+遼夏金元的統(tǒng)治(大概念教學(xué)課件)2024-2025學(xué)年高一歷史上冊(cè)教學(xué)課件(統(tǒng)編版2019)
- 裝置保運(yùn)方案(3篇)
- 重癥心臟超聲指南解讀
- 中國(guó)聚丙烯酰胺行業(yè)市場(chǎng)發(fā)展分析及前景趨勢(shì)與投資研究報(bào)告2025-2028版
- 青年教師教學(xué)工作坊組織計(jì)劃
- 職工訴求服務(wù)管理制度
評(píng)論
0/150
提交評(píng)論