C語言程序設計習題解答_第1頁
C語言程序設計習題解答_第2頁
C語言程序設計習題解答_第3頁
C語言程序設計習題解答_第4頁
C語言程序設計習題解答_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、13 / 27c語言程序設計習題解答沈國榮隋雪莉閔芳目錄18第1章C語言程序設計概述 1 第2章數(shù)據(jù)類型及其運算 2 第3章語句與輸入輸出3 第4章選擇結構程序設計 第5章循環(huán)結構程序設計 第6章數(shù)組9 第7章函數(shù)12 第8章編譯預處理14 第9章指針15 第10章結構體與共用體 第11章位運算21 第12章文件操作22第1章C語言程序設計概述二、填空題函數(shù)、mai n()函數(shù)/*、*/.C、.OBJ、.EXE順序結構、選擇結構、循環(huán)結構一、選擇題12345678910CBACCBDBDA.三、編程題1. 【參考代碼】#in clude<stdio.h>int mai

2、n()printf("(學校名稱)n");printf(”(姓名)n");return 0 ;2. 【參考代碼】#in clude<stdio.h>int main()printf("(學校名稱)n (姓名)n"); return 0 ;第2章數(shù)據(jù)類型及其運算一、選擇題12345678910CCCABADDC、BB11121314151617181920CADDDCDC注:第5題B選項為:”'017''t'二、填空題1.字母、數(shù)字、下劃線2.1、 4、 4、 83.-6.97.68

3、.-609.y%2=110.1、0、1三、程序閱讀題1.b2.03.04.10,25.9,10,9,106.3,1,0,07.3,20,30,1第3章語句與輸入輸出一、選擇題.0201,10y=4630y=4630*3.140000,3.142* c:dec=120,oct=170,hex=78,ASCII=x x=1 y=2 *sum*=310 squared is : 1002 48 20.2 20.29.x+y+z=4855, ,A10.四、編程題12345678910BCCCCBBBDA二、填空題1.123.472.D3.回車4.10,2三、程序閱讀題1.2

4、611. 【參考代碼】#in clude<stdio.h>int main()char ch; printf("請輸入一個字符:n");scan f("%c",&ch);printf("%c 的 ASCII 碼為:%dn", ch,ch); return 0 ;2. 【參考代碼】#in clude<stdio.h>#defi ne PI 3.1416 int main()double r, h;double cl,cs,cv;printf(”請輸入圓的半徑:");scan f("%F

5、,&r);”);%.4lfn", cl);%.4lfn", cs);%.4lfn", cv);printf("請輸入圓柱高: scan f("%lf", &h); cl=2* Pl*r;cs=P l*r*r;cv=p |*r*r*h;printf(”圓的周長為: printf(”圓的面積為: printf(”圓柱的體積為: return 0 ;3. 【參考代碼】#in clude<stdio.h> int main()int sp litl nt,o ne,te n,hun dred;printf(&quo

6、t;輸入要處理的整數(shù):”);scan f("%d", &splitlnt);hun dred = sp lit In t/100;ten = spl iti nt%100/10;one = sp litI nt%10;printf("個位:%d,十位:%d,百位:dn",one,ten,hundred); return 0 ;第4章選擇結構程序設計、選擇題123456DCCBBC二、程序閱讀題1.102.2,2,23.64.97,b5.c=-16.88887.20,08.2,19.1,12,22,1-2,210. a=1,b=3三、程序完善題1.

7、 a>b、 c>x四、編程題 1.【參考代碼】 #include<stdio.h> int main( )int a, b, c,d,min;printf(" 輸入 4 個整數(shù): "); scanf("%d%d%d%d",&a,&b,&c,&d); if(a < b) min = a;else min = b; if(c < min) min=c; if(d<min) min=d; printf("%dn",min); return 0 ;2.【參考代碼】#in

8、clude<stdio.h>int main( )int num,a,b,c,d;printf(" 請輸入一個四位整數(shù): ");scanf("%d",&num);a=num/1000;b=num%1000/100;c=num%100/10;d=num%10;printf(" 各位數(shù)字之和為: %dn",a+b+c+d);return 0 ;3. 【參考代碼】#include<stdio.h>int main( )int x;printf(" 請輸入 x: "); scanf(&quo

9、t;%d",&x);printf("y 的值為: "); if(x<0) printf("%dn",x);else if(x<50)printf("%dn",3*x-2);else if(x<100)printf("%dn",4*x+1);elseprintf("%dn",5*x); return 0 ;4. 【參考代碼】#include<stdio.h>int main( )int dj;float zl,je,yfk;printf("

10、 請輸入等級( 14 ): "); scanf("%d",&dj);if (dj>4|dj<1)printf(" 無此等級的蘋果! n"); return 0;printf(" 請輸入重量(公斤) : "); scanf("%f",&zl);printf("n");switch (dj)break; break; break; break;case 1 : je=5.5*zl; case 2 : je=4.3*zl; case 3 : je=3.0*zl;

11、case 4 : je=2.5*zl;: %d 級 n",dj); : %.2f 公斤 n",zl);printf(" 您選擇蘋果級別 printf(" 您購買蘋果重量 printf("您應付金額為:%.2f元宙",je); printf("n");printf(" 顧客所付金額 : "); scanf("%f",&yfk);if (yfk<je)printf("Data Error!n"); return 0;printf(” 應找您:.2

12、f 元n",yfk-je); return 0 ;第5章循環(huán)結構程序設計12345678(1)8(2)91011CBBBABBBCDCB、選擇題、程序閱讀題1.1,2,02 .m=4,n=23.A2C4E64.1325.46.k=0,m=57.x=98988.、程序完善題1.2.3.(ch > 'Z' && ch <= 'Z' + 4 ) |(ch > 'z' )ch - 26 k k/10con ti nuei + t * 10s = s + t4.fabs( t ) >= 1

13、e-6 f = -f i<10 j%3 !=05.四、編程題1.【參考代碼】#in clude<stdio.h>int main()int n , i , j , k ;printf( "Output : 'n");for(n = 100 ; * 1000 ; n+ )i = n % 10 ;/* 個位 */j = ( n / 10 ) % 10 ;/* 十位 */k = n / 100 ;/* 百位 */if ( n = i * i * i + j * j * j + k * k * k ) prin tf( "%dn" ,

14、n );return 0 ;2.#in clude<stdio.h> int mai n ()【參考代碼】int i , m , n , t , p , k ;printf( "Please input: " ) ;scanf ( "%d,%d" , &m , &n ) ;if( m < n )t = n ;n = m ; m = t ;p = m * n ;while ( n != 0 )/* 余數(shù)不為 0,繼續(xù)相除,直到余數(shù)為 i = m % n ; m = n ;i ;k = p / m ;printf( &quo

15、t;%d,%dn" , m , k ); return 0 ;0 */3.參考代碼】#include<stdio.h>int main( ) int i , n , t , sum ;t = 1 ;sum = 0 ;printf( "Please input: n = " ) ; scanf( "%d" , &n ) ;for( i = 1 ; i <= n ; i+ )t = t * i ;sum = sum + t ;printf( "1!+2!+ return 0 ;+%d!=r%dn , sum );

16、4.參考代碼】#include<stdio.h>int main( )int i , m ;double sum = 0 , k = 1 ;pnntf( "PI ease input : m="); scanf( "%d" , &m );for( i = 1 ; i <= m ; i+ )sum = sum + k / i ; k = -k ;prin tf( "sum=%4.2fn" , sum ); return 0 ;第6章數(shù)組一、選擇題12345678910111213141516DDDBCCBCCD

17、DBDDCD二、程序閱讀題1 824 30,2412 5t*M6mo7 fwo三、程序完善題aj = max scorei<avgj = i ak = max2 sum += scorei 3si = si + aij prin tf( "n");4j = strlen( str ) Tstrj = k5( c = getchar( ) ) != '#' n umc-'A' += 1四、編程題1.【參考代碼】#in clude<stdio.h>#defi ne N 5int main()int aN , i , j , r

18、, temp ;prin tf( " PI ease input %d numbers'n" , N ); for( i = 0 ; i < N ; i+ )scan f( "%d" , & ai);for( i = 0 ; i < N - 1 ; i+ )r = i ;for( j = i + 1 ; j < N ; j+ ) if( aj < ar ) r = j ;if( r != i )temp = ar ; ar = ai ;ai = temp ;printf( "The array after

19、 sort:n" ) ;for( i = 0 ; i < N ; i+ )printf( "%5d" , ai ) ;printf( "n" ) ;return 0 ;2. 【參考代碼】 #include<stdio.h> int main( )int a10 = 1 , 2 , 3 , 6 , 7 , 8 , 9 , 10 ; int x , j , k = 0 ;printf( "Please input :x= " ) ;scanf( "%d" , &x) ;if( x &

20、gt; a7 )a8 = x ;elsefor( j = 0 ; j < 8 ; j+ ) if( x < aj ) break ;for(k = 8 ; k > j ; k- ) ak = ak - 1 ;aj = x ;for( j = 0 ; j < 9 ; j+ )printf( "%5d" , aj ) ; printf( "n" ) ; return 0 ;參考代碼】3.#include<stdio.h> int main( )int a55 = 0,1,2,3,4,5,6,7,8,9,10,11,12,1

21、3,14,15,16,17,18,19,20,21, 22,23,24 ; int i , j ,sum = 0 ;for ( i = 0 ; i < 5 ; i+ )for ( j = 0 ; j < 5 ; j+) printf( "%4d" , aij ) ;printf( "n" ) ;for( i =0 ;i < 5 ; i+ ) sum += aii ;printf( " sum=%4dn" , sum ) ; return 0 ;參考代碼】4.#include<stdio.h> int ma

22、in( ) char s1100 , s230 ;int i , j ;printf( "Please input s1:" ) ; gets( s1 ) ;printf( "Please input s2:" ) ; gets( s2 ) ;for( i = 0 ; s1i != '0' ; i+ ) ;for( j = 0 ; s2j != '0' ; j+ , i+ ) s1i = s2j ;s1i = '0' ;printf( "Outputns1:" ) ;puts( s1 )

23、 ;5.return 0 ;參考代碼】 #include<stdio.h> int main( ) char s1100 ;int i ;printf( "Please input s1:" ) ;gets( s1 ) ;for( i = 0 ; s1i != '0' ; i+ ) ;printf( "The length of s1 is %dn" ,i ) ; return 0 ;第7章函數(shù)一、選擇題123456789101112131415BDDABBCBDDAADDA二、程序閱讀題1max is 22 a=1,b=23

24、 1 114 a=11,b=12,c=25 67177880 1 2 0 1 2三、程序完善題float area ( float r ) return s 2z = fun( x , y ) z = z * x 3co unt =fun( score ) coun t+ 四、編程題1. 【參考代碼】#in clude<stdio.h> int main()void f(int n);int n ;prints "PIease input: n= ” ); scan f( "%d" , &n );if( n <= 0)printf( &q

25、uot;Wrong number!n"); elsef( n );return 0 ;void f(int n)if( n % 2 = 1 )prin tf( "%d is a odd number.'n" , n );else2.printf( "%d is a even number.n" , n );【參考代碼】#in elude < stdio.h > #in elude < math.h >int main( ) void f( int m ) ;int m ;printf( "Please

26、input: m= " ) ; scanf( "%d" , &m ) ;f( m ) ;return 0 ; void f( int m )int i , k ;k = sqrt( m );for(i = 2 ; i <= k ; i+ )if( m % i = 0 ) break;if (i >= k + 1 )printf( "%d is a Prime Number.n" , m ) ;elseprintf( "%d is not a Prime Number.n" , m ) ;3.參考代碼】#i

27、nclude<stdio.h>int gys( int m , int n ) int r ; r = m % n ; while( r != 0 ) return n ;int gbs( int m , int n , int r ) return m * n / r ; int main( ) int m , n , t ;printf( "Please input(m,n) : " ) ; scanf( "%d%d" , &m , &n ) ;if( m < n )t = gys( m , n );prin tf(

28、 "gys=%dn" , t );t = gbs( m , n , t );prin tf( "gbs=%dn" , t ); return 0 ;4.【參考代碼】#in clude<stdio.h>int main()void mystrcat( char s1100 , char s230); char s1100 , s230;prin tf( " PI ease input s1:");gets( s1 );prin tf( " PI ease inp ut s2:");gets( s2 );m

29、ystrcat( s1 , s2 );prin tf( "Out pu tns1:");p uts( s1 );return 0 ;void mystrcat( char s1100 , char s230)int i , j ;for( i = 0 ; s1i != '0' ; i+ );for( j = 0 ; s2j != '0' ; j+ , i+ ) s1i = s2j;s1i = '0'第8章編譯預處理、選擇題123456ADDABA二、程序閱讀題14 / 2716,1821535第9章指針、選擇題12345678

30、9101112DBBCDCCCDBAC1314151617CDDAC、填空題1.地址,NULL(或 0)2 .char a, * p; ,scan f("%c"3.*m4.for( k=0; k<10; k+ )5.*(p+i), p i,*(x+i)6.stri或 *( str + i ),i三、程序閱讀題1.gae2.bcdABCD3.7, 8, 84.845.3 14 26.efgh7.w,one8.7四、程序完善題1.ai或 *(a + i )2.*p !='0'*p-'O'3.p1p2-x4.max(i nt a , int

31、b );p = max,& a);,p=&a;四、編程題1.【參考代碼】#in clude<stdio.h>void sort( int *a , int *b , int *c );int mai n()int m , n , t ;prin tf( " PI ease inp ut(m n t):"); scan f( "%d%d%d" , &m , &n , &t ); sort( &m , &n , &t );printf( "The result is :%d

32、t%dt%dn" , m , n , t ) ; return 0 ; void sort( int *a , int *b , int *c ) int temp ;if( *a > *b ) temp = *a ; *a = *b ; *b = temp ; if( *a > *c ) temp = *a ; *a = *c ; *c = temp ; if( *b > *c ) temp = *b ; *b = *c ; *c = temp ; 2. 【參考代碼】 程序 1: #include <stdio.h>int strcompare( ch

33、ar *str1 , char *str2 ); int main( )int m ;char s120 , s220 , *p1 , *p2 ;printf( "Please input(string1):" ) ; scanf( "%s" , s1 ) ;printf( "Please input(string2):" ) ;scanf( "%s" , s2 ) ;m = strcompare ( s1 , s2 ) ;int printf( "The result of strcompare is:

34、 %dn" , m ) ; return 0 ;strcompare( char *str1 , char *str2 )int i = 0 ;while( ( *( str1 + i ) = *( str2 + i ) ) &&( *( str1 + i ) != '0' ) ) i+ ;return( *( str1 + i ) - *( str2 + i ) ) ;程序 2: #include <stdio.h>int strcompare( char *str1 , char *str2 ); int main( )int m ;c

35、har s120 , s220 , *p1 , *p2 ; printf( "Please input(string1):" ) ; scanf( "%s" , s1 ) ;printf( "Please input(string2):" ) ;scanf( "%s" , s2 ) ;p1 = s1 ;p2 = s2 ;m = strcompare ( p1 , p2 ) ;int printf( "The result of strcompare is: %dn" , m ) ; return

36、 0 ;strcompare( char *str1 , char *str2 )int i = 0 ;while( ( *( str1 + i ) = *( str2 + i ) ) &&( *( str1 + i ) != '0' ) ) i+ ;return( *( str1 + i ) - *( str2 + i ) ) ;程序 3: #include <stdio.h>int strcompare( char str1 , char str2 ); int main( )int m ;char s120 , s220 , *p1 , *p2

37、 ;printf( "Please input(string1):" ) ; scanf( "%s" , s1 ) ;printf( "Please input(string2):" ) ;scanf( "%s" , s2 ) ;p1 = s1 ;p2 = s2 ;m = strcompare ( p1 , p2 ) ;int printf( "The result of strcompare is: %dn" , m ) ; return 0 ;strcompare( char *str1 ,

38、 char *str2 )int i = 0 ;while( ( str1i = str2i ) &&( str1i != '0' ) ) i+ ;return( str1i- str2i ) ;第10章結構體與共用體1234567891011CBACCDDDCBD一、選擇題二、填空題1.16p->n ext=head->next head->n ext=p p->next2 .3.三、程序閱讀題1.2.51,60,21161001,Cha ngRo ng,1098.03.四、程序完善題1.2.3.五、sizeof( struct ps

39、) 或 sizeof( bt ) p=p->n extperson i.sex編程題1. 【參考代碼】#defi ne N 3#i nclude <stdio.h>struct stude nt char nu m6;char n ame8;int score2;float ave ;void input( struct stude nt stuN);void average( struct stude nt stuN);int max( struct stude nt stuN);int main()int i , j ;struct stude nt stuN;input

40、( stu );average( stu );prin tf( "NotNametScore1tScore2tAveragen");for( i = 0 ; i < N ; i+ )prin tf( "%st%st" , stui. num , stui. name ); for( j = 0 ; j < 2 ; j+ )prin tf( "%dt" , stui.scorej);printf( "%8.2fn" , stui.ave ) ;i = max( stu ) ;printf( "n

41、The max is :n" ) ;printf( "NotNametScore1tScore2tAveragen" ) ; printf( "%st%st" , stui.num , ) ; for( j = 0 ; j < 2 ; j+ )printf( "%dt" , stui.scorej ) ;printf( "%5.2fn" , stui.ave ) ; return 0;void input( struct student stuN)int i , j ; for(

42、i=0;i<N;i+) printf("nPlease input No%d student:n",i+1); printf("No:");scanf("%s",stui.num);printf("Name:");scanf("%s",); for(j=0;j<2;j+)printf("score %d:",j+1);scanf("%d",&stui.scorej);void average( struct stude

43、nt stuN) int i , j , sum ; for(i=0;i<N;i+) for(j=0 , stui.ave = 0 ;j<2;j+) stui.ave += stui.scorej;stui.ave = stui.ave / 2 ;int max( struct student stuN)int i , max , index; max = stu0.ave ; index = 0 ;for( i = 1 ; i < N ; i+ )if( max < stui.ave )max = stui.ave ; index = i ;return index;

44、2. 【參考代碼】#include<stdio.h>#include<stdlib.h> struct nodeshort int data ; struct node *next ; ;typedef struct node NODE ; struct node *CreatLink( ) ; void PrintLink( NODE *head ) ; int max( NODE *head ); int main( )NODE *head ;int max_value ;head = CreatLink( ) ;PrintLink( head ) ; max_va

45、lue = max( head ) ;printf( "The max is:%dn" , max_value ) ; return 0 ; struct node *CreatLink( )NODE *head , *p , *q ; short int num ;head = ( NODE * )malloc( sizeof( NODE ) ) ; head->next = NULL ;p = head ;printf( "Please input( end of -1)!:n" ) ; scanf( "%d" , &

46、;num ) ;while( num != -1 )q = ( NODE *)malloc( sizeof( NODE ) ) ;q->data = num ; p->next = q ;p = q ; scanf( "%d" , &num );p->next = NULL ;return head ;void Prin tLi nk( NODE *head )NODE *p;p = head->n ext ;prin tf( "The data is:n"); while( p != NULL )prin tf( &qu

47、ot;%4d" , p->data ); p = p->next ;prin tf( "n");max( NODE *head ) intNODE *p;short int max = -32768; p = head->n ext ;while( p != NULL )if( max < p->data ) max = p->data ;p = p->next ;return max ;第11章位運算、選擇題1234DBCA二、填空題1. 0000 11112 . x | ff003. 43三、程序閱讀題 1.11 22

48、02.3.四、編程題1.【參考代碼】#in clude<stdio.h>int mai n()short int data , low ,high ;prin tf( " PI ease input( short in t):");scan f( "%d" , & data );low = data & 0x00ff ; /* 0x00ff表示低字節(jié)全 1 */high = data & 0xff00 ; /* 0xff00 表示高字節(jié)全 1 */prin tf( "data:0x%x,the value o

49、f low byte is:0x%xn" , data , high ); prin tf( "data:0x%x,the value of high byte is:0x%xn" , data , low ); return 0 ;2. 【參考代碼】#i nclude <stdio.h>int main()short int data , result ;prin tf( " PI ease intp ut(short in t):");scan f( "%d" , & data );result =

50、data 人 0x000f ; /* 0x000f 表示低 4 位全 1,高 12 位全 0 */ prin tf( "The data is 0x%x nThe result is :0x%xn" , data,result );return 0 ;第12章文件操作一、選擇題123456789101112DB、CCBBABCDBCC131415CDC二、填空題1. 二進制ASCII(文本)2 . FILE *fp# in elude <stdio.h>26 / 273.4.5. 用以獲得文件讀寫位置標記指針的位置, 于文件開頭的字節(jié)數(shù)6. 使文件讀寫位置標記指

51、針重新返回文件的開頭 三、程序閱讀題n -11buf 的首地址函數(shù)返回值為當前文件讀寫位置標記指針相對1.1 22.end3.34.hello,四、程序完善題1.2.3. 五、z+! feof (fp) fgetc (fp) fopen ( “ num.dat” ,” r” ) fp, ”%d”,&temp ( ch=getchar() )ch , fp 編程題1.【參考代碼】#include<stdio.h>#include<stdlib.h>#include<string.h>int main( )FILE *fp ;char str100 ,

52、10 ;int i = 0 ;if( ( fp = fopen( "upper.txt" , "w+" ) ) = NULL ) printf( "Cannot open file!n" ) ;exit( 0 ) ;printf( "Please input(string):n" ) ;gets( str ) ;while( stri != '!' )if( stri >= 'a' && stri <= 'z' )stri = stri -

53、 32 ;fputc( stri , fp ) ;i+ ;rewind( fp ) ;fgets( str , strlen( str ) + 1 , fp ) ; printf( "nThe result is :n" ) ; printf( "%sn" , str ) ; fclose( fp ) ;return 0 ;2.【參考代碼】#include<stdio.h>#include<stdlib.h>#define N 5 struct studentchar num10 ; char name8 ;int score3

54、;float ave ; stuN ;int main( )int i , j , sum ;FILE *fp ;for( i = 0 ; i < N ; i+ ) printf( "nPlease input student information: n" , i + 1 ) ; printf( "No:" ) ;scanf( "%s" , stui.num ) ;printf( "Name:" ) ;scanf( "%s" , ) ;sum = 0 ;for( j

55、= 0 ; j < 3 ; j+ )printf( "Score%d:" , j + 1 ) ; scanf( "%d" , &stui.scorej ) ; sum += stui.scorej ;stui.ave = sum / 3.0 ;if( ( fp = fopen( "stud.dat" , "w" ) ) = NULL ) printf( "cannot open stud for write!n" ) ; exit( 0 ) ;for( i = 0 ; i <

56、 N ; i+ )fwrite( &stui , sizeof( struct student ) , 1 , fp ) ; fclose( fp ) ;if( ( fp = fopen( "stud.dat" , "r" ) ) = NULL ) printf( "cannot open stud for read!n" ) ; exit( 0 ) ;printf( "nNotNametScore1tScore2tAveragen" ) ;for( i = 0 ; i < N ; i+ ) fread( &a

溫馨提示

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

最新文檔

評論

0/150

提交評論