版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、導(dǎo)讀:在程序填空題中,已經(jīng)給出了程序的主干,讀者首先要理解程序的思路,再選擇正確的內(nèi)容填入空白處,使程序完成既定的功能。這類習(xí)題的設(shè)計就是要引導(dǎo)讀者逐步掌握編程的方法。本節(jié)習(xí)題的難度適中,可能有些典型的程序在課堂上已經(jīng)有所接觸,讀者一定要獨立完成它,這樣就可以逐步提高自己的編程能力。在程序設(shè)計語言學(xué)習(xí)的中期,讀者對程序設(shè)計已經(jīng)有了初步的了解,而自己編寫程序又不知從何處入手,此時解答此類題目可以避免盲目性,從而提高學(xué)習(xí)的效率?!?.1】下面程序的功能是不用第三個變量,實現(xiàn)兩個數(shù)的對調(diào)操作。#include <stdio.h>main() int a,b;scanf("%d%
2、d",&a,&b);printf("a=%d,b=%dn",a,b);a= ; b= ; a= ;printf("a=%d,b=%dn",a,b);【3.2】下面程序的功能是根據(jù)近似公式:2/6 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,int t,i
3、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) ;s=s+t; ;printf("%dn",s);【3.5】有以下
4、程序段:s=1.0;for(k=1;k<=n;k+)s=s+1.0/(k*(k+1);printf("%fn",s);填空完成下述程序,使之與上述程序的功能完全相同。s=0.0; ;k=0; do s=s+d; ;d=1.0/(k*(k+1);while( );printf("%fn",s);【3.6】下面程序的功能是從鍵盤上輸入若干學(xué)生的學(xué)習(xí)成績,統(tǒng)計并輸出最高成績和最低成績,當(dāng)輸入為負(fù)數(shù)時結(jié)束輸入。main() float x,amax,amin;scanf("%f",&x);amax=x;amin=x;while(
5、 ) 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ù)放在一個一維數(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到100之間每位數(shù)的乘積大于每位數(shù)的和的數(shù)。例如數(shù)字26,數(shù)位上數(shù)字的乘積12大于數(shù)字之和8。m
6、ain() 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)計用0至9之間的不同的數(shù)字組成的三位數(shù)的個數(shù)。main() int i,j,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+;printf("%d",count);【3.
7、10】下面程序的功能是輸出100以內(nèi)的個位數(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)相除法求兩個正整數(shù)m和n的最大公約數(shù)。hcf(int m,int n) int r;if(m<n) r=m; ;n=r;r=m%n;while( ) m=n;n=r;r=m%n; ;【3.12】下面程序的功能是使用冒泡法對輸入的10個浮點數(shù)從小到大進(jìn)行排序。排好序的10個數(shù)分兩行輸出。程序如下:#include <stdi
8、o.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 sorted 10 numbers;n");for(i=0; ;i+ ) if( ) printf("n");printf("%ft",ai);
9、printf("n");【3.13】下面程序的功能是讀入20個整數(shù),統(tǒng)計非負(fù)數(shù)個數(shù),并計算非負(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】下面程序的功能是刪除字符串s中的空格。#include <stdi
10、o.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】下面程序的功能是將字符串s中所有的字符'c'刪除。請選擇填空。#include<stdio.h>main( ) char s80;int i,j;gets(s);for(i=j=0;si!= '0';i+ )if(si!=
11、 'c') ;sj= '0';puts(s);【3.16】下面程序的功能是輸出兩個字符串中對應(yīng)相等的字符。請選擇填空。#include <stdio.h>char x="programming";char y="Fortran";main() int i=0;while(xi!= '0' && yi!= '0')if(xi=yi)printf("%c", );elsei+;【3.17】下面程序的功能是將字符串s中的每個字符按升序的規(guī)則插到數(shù)組a
12、中, 字符串a(chǎn)已排好序。#include <string.h>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】下面程序的功能是對鍵盤輸入的兩個字符串進(jìn)行比較,然后輸出兩個字符串中第一個不相同字符的ASCII碼之差。例如:輸入的兩個字符串分別為"abcdefg&q
13、uot;和"abceef",則輸出為-1。#include <stdio.h>main() char str1100,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】下面的函數(shù)expand在將字符串s復(fù)制到字符串t
14、時, 將其中的換行符和制表符轉(zhuǎn)換為可見的轉(zhuǎn)義字符表示,即用'n'表示換行符,用't'表示制表符。expand(char s,char t) int i,j;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】下面的函數(shù)index(char s, char t)檢查字符串s中是否
15、包含字符串t,若包含,則返回t在s中的開始位置(下標(biāo)值),否則送回-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】下面程序的功能是計算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)
16、;s= ;for(k=0;k<=n;k+)s+= ;printf("%ldn",s);【3.22】下面程序的功能是顯示具有n個元素的數(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】下面程序的功能是由鍵盤輸入n,求滿足下述條件的x、y:nx和n
17、y的末3位數(shù)字相同,且xy,x、y、n均為自然數(shù),并使x+y為最小。#include <stdio.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("
18、x=%d,y=%dn", x, min-x ); ;【3.24】下面的程序是用遞歸算法求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(&quo
19、t;The sqrt of %lf=%lfn", x, mysqrt( x, 1.0) );【3.25】以下程序是計算學(xué)生的年齡。已知第一位最小的學(xué)生年齡為10歲,其余學(xué)生的年齡一個比一個大2歲,求第5個學(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)完成計算1n的累加和。 sum(int n) if(n<=0)printf(&qu
20、ot;data errorn");if(n=1) ;else ;【3.27】下面的函數(shù)是一個求階乘的遞歸調(diào)用函數(shù)。facto(int n) if( n = 1 ) ;else return( );【3.28】組合問題,由組合的基本性質(zhì)可知:(1) C(m,n)=C(n-m,n)(2) C(m,n+1)=C(m,n)+C(m-1,n)公式(2)是一個遞歸公式,一直到滿足C(1,n)=n為止。當(dāng)n<2*m時,可先用公式(1) 進(jìn)行簡化,填寫程序中的空白,使程序可以正確運行。#include"stdio.h"main() int m,n;printf("
21、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( n<2*m ) m=n-m;if( m=0 ) com=1;else if(m=1) ;else ;return(com);【3.29】下列函數(shù)是求一個字符串str的長度。 int strlen( char *str ) if( ) return (0); else return
22、( );【3.30】用遞歸實現(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時的圖形如下:*#include <stdio.h>void prt( char
23、 c, int n ) if( n>0 ) printf( "%c", c ); ;main() int i, n;scanf("%d", &n);for( i=1; i<=n; i+ ) ; ; printf("n");【3.32】下面的函數(shù)實現(xiàn)N層嵌套平方根的計算。double y(double x, int n) if( n=0 )return(0);else return ( sqrt(x+( ) );【3.33】函數(shù)revstr(s)將字符串s置逆,如輸入的實參s為字符串"abcde"
24、, 則返回時 s 為字符串"edcba"。遞歸程序如下:revstr( char *s ) char *p=s, c;while(*p) p+; ;if(s<p) c=*s;*s=*p; ;revstr(s+1); ; 如下是由非遞歸實現(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中存放的長度為n的字符串反轉(zhuǎn)過來,例如原來是"ABCDE",反序為"
25、;EDCBA"。void invent(char *str,int n) char t;t=*str; *str=*(str+n-1); *(str+n-1)=t; if( n>2 ) invent ( ,n-2);else ;【3.35】從鍵盤上輸入10個整數(shù),程序按降序完成從大到小的排序。#include <stdio.h>int array10;sort( int *p, int *q ) int *max, *s;if( )return;max=p; for( s=p+1; s<=q; s+)if( *s > *max ) ; swap( );s
26、ort( ); swap( int *x, int *y ) int temp;temp=*x;*x=*y;*y=temp;main() int i; printf("Enter data :n"); for( i=0; i<10; i+)scanf("%d", &arrayi); sort( );printf("Output:");for( i=0; i<10; i+)printf("%d ", arrayi);【3.36】下面函數(shù)的功能是將一個整數(shù)存放到一個數(shù)組中。存放時按逆序存放。例如:4
27、83存放成"384"。#include <stdio.h>void convert(char *a, int n) int i;if(i=n/10) !=0 ) convert( , i ); *a = ;char str10= " ";main() int number;scanf("%d", &number);convert( str, number );puts(str);【3.37】下面程序的功能是實現(xiàn)數(shù)組元素中值的逆轉(zhuǎn)。#include <string.h>main() int i,n=10,
28、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】下面程序通過指向整型的指針將數(shù)組a34 的內(nèi)容按行×列的格式輸出,請給printf( )填入適當(dāng)?shù)膮?shù),使之通過指針p將數(shù)組元素按要求輸出。#include <stdio.h>int a34=1,2,3,4,5,6
29、,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】下面程序的功能是:從鍵盤上輸入一行字符,存入一個字符數(shù)組中,然后輸出該字符串。#include <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 )
30、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】下面程序的功能是從鍵盤上輸入兩個字符串,對兩個字符串分別排序;然后將它們合并,合并后的字符串按ASCII碼值從小到大排序,并刪去相同的字符。#include <stdio.h>strmerge(a,b,c) /* 將已排好序的字符串a(chǎn)、b合并到c */char *a,*b
31、,*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( *a != '0' ) /* 以下將a或b中剩下的字符存入w */if( *a != *w ) *+w=*a+;else a+;while( *b != '0')if( *b != *w ) *+w=*b
32、+;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( si>sj ) main( ) char s1100,s2100,s3200;printf("nPlease Input First String:");scanf("%s",s1);printf("nPlease Input Se
33、cond String:");scanf("%s",s2);strsort(s1);strsort(s2); = '0';strmerge(s1,s2,s3);printf("nResult:%s",s3);【3.42】已知某數(shù)列前兩項為2和3,其后繼項根據(jù)前面最后兩項的乘積,按下列規(guī)則生成: 若乘積為一位數(shù),則該乘積即為數(shù)列的后繼項; 若乘積為二位數(shù),則該乘積的十位上的數(shù)字和個位上的數(shù)字依次作為數(shù)列的兩個后繼項。下面的程序輸出該數(shù)列的前項及它們的和,其中,函數(shù)sum(n,pa) 返回數(shù)列的前N項和,并將生成的前N項存入首指針為
34、pa的數(shù)組中,程序中規(guī)定輸入的N值必須大于2,且不超過給定的常數(shù)值MAXNUM。 例如:若輸入的值為10,則程序輸出如下內(nèi)容:sum(10)=442 3 6 1 8 8 6 4 2 4#include "stdio.h"#define 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) = tem
35、p;else = temp/10;total += *pa;if( count<n ) count +; pa+; = temp%10;total += *pa; ;main() int n, *p, *q, numMAXNUM;do printf("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
36、("%4d", *p);printf("n");【3.43】下面程序的功能是輸入學(xué)生的姓名和成績,然后輸出。#include <stdio.h>struct stuinf char name20; /* 學(xué)生姓名 */int score; /* 學(xué)生成績 */ stu, *p;main ( ) p=&stu;printf("Enter name:");gets( );printf("Enter score: ");scanf("%d", );printf("Outp
37、ut: %s, %dn", , );【3.44】下面程序的功能是按學(xué)生的姓名查詢其成績排名和平均成績。查詢時可連續(xù)進(jìn)行,直到輸入0時才結(jié)束。 #include <stdio.h>#include <string.h>#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;
38、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.score); ; if( i>=NUM ) printf("Not foundn");
39、 while( strcmp(str,"0")!=0 );【3.45】下面程序的功能是從終端上輸入個人的年齡、性別和姓名,然后輸出。#include "stdio.h"struct man char name20;unsigned age;char sex7;main ( ) struct man person5;data_in(person,5);data_out(person,5);data_in(struct man *p, int n ) struct man *q = ;for( ;p<q;p+ ) printf( "age:s
40、ex:name" );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個整數(shù),儲存輸入的數(shù)及對應(yīng)的序號,并將輸入的數(shù)按從小到大的順序進(jìn)行排列。要求:當(dāng)兩個整數(shù)相等時,整數(shù)的排列順序由輸入的先后次序決定。例如:輸入的第3個整數(shù)為5,第7個整數(shù)也為5,則
41、將先輸入的整數(shù)5排在后輸入的整數(shù)5的前面。程序如下:#include "stdio.h"#define N 10struct int no;int num; arrayN;main( ) int i,j,num;for( i=0;i<N;i+ ) printf("enter No. %d:",i);scanf("%d",&num);for( ;j>=0&&arrayj.num num; )arrayj+1=arrayj;array .num=num;array .no=i;for( i=0;i<
42、;N;i+ )printf("%d=%d,%dn",i,arrayi.num,arrayi.no);【3.47】以下程序的功能是:讀入一行字符(如:a、.y、z),按輸入時的逆序建立一個鏈接式的結(jié)點序列,即先輸入的位于鏈表尾(如下圖),然后再按輸入的相反順序輸出,并釋放全部結(jié)點。#include <stdio.h>main( ) struct node char info;struct node *link; *top,*p;char c;top=NULL;while(c= getchar( ) ) p=(struct node *)malloc(sizeof(
43、struct node);p->info=c;p->link=top;top=p;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->next=p2;elseconcate
44、nate( ,p2);【3.49】下面程序的功能是從鍵盤輸入一個字符串,然后反序輸出輸入的字符串。#include <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(sizeof(struct node);p->data = ch;p->link = ;head = ; ;while( p!=NULL ) p
45、rintf("%c ", p->data);p = p->link;【3.50】下面程序的功能是從鍵盤上順序輸入整數(shù),直到輸入的整數(shù)小于0時才停止輸入。然后反序輸出這些整數(shù)。#include <stdio.h>struct data int x;struct data *link;*p;input() int num;struct data *q;printf("Enter data:");scanf("%d", &num);if( num<0 ) ;q = ;q->x = num;q-&g
46、t;link = p;p=q; ;main() printf("Enter data until data<0:n");p=NULL;input();printf("Output:");while( ) printf("%dn", p->x); ;【3.51】下面函數(shù)的功能是創(chuàng)建一個帶有頭結(jié)點的鏈表,將頭結(jié)點返回給主調(diào)函數(shù)。鏈表用于儲存學(xué)生的學(xué)號和成績。新產(chǎn)生的結(jié)點總是位于鏈表的尾部。struct student long num;int score;struct student *next;struct student
47、*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=a;tail->next=(struct student *)malloc(LEN);else tail->next=NULL;while(num!=0);return( );【3.52】下面crea
48、te函數(shù)的功能是建立一個帶頭結(jié)點的單向鏈表,新產(chǎn)生的結(jié)點總是插入在鏈表的末尾。單向鏈表的頭指針作為函數(shù)值返回。#include <stdio.h>#define LEN sizeof(struct student)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,&
49、;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)計文件中的字符的個數(shù)。#include <stdio.h>main() long num=0; *fp;if(fp=fopen("fname.dat", "r")=NULL) prin
50、tf("Can't open the file! ");exit(0);while( ) fgetc(fp); num+;printf("num=%dn",num);fclose(fp);【3.54】下面程序的功能是把從鍵盤輸入的文件(用 作為文件結(jié)束標(biāo)志)復(fù)制到一個名為second.txt的新文件中。#include <stdio.h>FILE *fp;main() char ch;if(fp=fopen( )=NULL) exit(0);while(ch=getchar()!='')fputc(ch,fp); ;【
51、3.55】下面程序的功能是將磁盤上的一個文件復(fù)制到另一個文件中,兩個文件名在命令行中給出(假定給定的文件名無誤)。#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, "w");while( ) fputs(fgetc(f1), ); ; ;【3.56】下面程序的功能是根
52、據(jù)命令行參數(shù)分別實現(xiàn)一個正整數(shù)的累加或階乘。例如:如果可執(zhí)行文件的文件名是sm,則執(zhí)行該程序時輸入:"sm + 10",可以實現(xiàn)10的累加;輸入:"sm - 10",可以實現(xiàn)求10的階乘。#include <stdio.h>#include <stdlib.h>main (int argc,char *argv) int n;void sum(),mult();void (*funcp)();n=atoi(argv2);if(argc!=3 | n<=0)dispform( );switch ( ) case '+&
53、#39;: funcp=sum;break;case '-': funcp=mult;break;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<=m;i+ )s *= i;printf("mult= %ldn";s);dispform( ) printf ("usage:sm n(+/!) (n>0)
54、n");exit (0);【3.57】下面程序的功能是鍵盤上輸入一個字符串,把該字符串中的小寫字母轉(zhuǎn)換為大寫字母,輸出到文件test.txt中,然后從該文件讀出字符串并顯示出來。#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);printf("Input a string:n");gets(str);whi
55、le(stri) if(stri>= 'a'&&stri<= 'z')stri= ;fputc(stri,fp);i+;fclose(fp);fp=fopen("test.txt", );fgets(str,strlen(str)+1,fp);printf("%sn",str);fclose(fp);【3.58】下面程序的功能是將從終端上讀入的10個整數(shù)以二進(jìn)制方式寫入名為"bi.dat"的新文件中。#include <stdio.h>FILE *fp;main(
56、) int i, j;if( fp=fopen( , "wb" ) = NULL )exit (0);for( i=0;i<10;i+ ) scanf("%d", &j );fwrite( , sizeof(int), 1, );fclose( fp);【3.59】以字符流形式讀入一個文件,從文件中檢索出六種語言的關(guān)鍵字,并統(tǒng)計、 輸出每種關(guān)鍵字在文件中出現(xiàn)的次數(shù)。本程序中規(guī)定:單詞是一個以空格或't'、 'n'結(jié)束的字符串。#include <stdio.h>#include <strin
57、g.h>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'
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《行政職業(yè)能力測驗》2024年公務(wù)員考試阿克陶縣預(yù)測試卷含解析
- Unitech數(shù)據(jù)采集器PA690產(chǎn)品介紹
- 第16課 毛澤東開辟井岡山道路(解析版)
- 2024年體育個人工作總結(jié)
- 《特斯拉電動汽車》課件
- 新聞業(yè)的變革與挑戰(zhàn)
- 保險公司人事工作總結(jié)
- 《水利工程質(zhì)量管理》課件
- 2023-2024年項目部安全管理人員安全培訓(xùn)考試題及參考答案【A卷】
- 保護(hù)瀕危動物宣傳方案萬能2022
- 2025年工程春節(jié)停工期間安全措施
- 2024版人才引進(jìn)住房租賃補貼協(xié)議3篇
- 川藏鐵路勘察報告范文
- 新零售智慧零售門店解決方案
- 小學(xué)一年級數(shù)學(xué)20以內(nèi)的口算題(可直接打印A4)
- 上海黃浦區(qū)2025屆物理高一第一學(xué)期期末質(zhì)量跟蹤監(jiān)視模擬試題含解析
- 肺結(jié)核課件教學(xué)課件
- 規(guī)劃設(shè)計行業(yè)數(shù)字化轉(zhuǎn)型趨勢
- 2024年廣告代理合同的廣告投放范圍與分成比例
- 物業(yè)年終總結(jié)匯報工作
- 2024-2025學(xué)年上學(xué)期期中教育學(xué)業(yè)質(zhì)量監(jiān)測八年級生物學(xué)試卷
評論
0/150
提交評論