c語言程序設(shè)計習(xí)題集沈國榮-答案_第1頁
c語言程序設(shè)計習(xí)題集沈國榮-答案_第2頁
c語言程序設(shè)計習(xí)題集沈國榮-答案_第3頁
c語言程序設(shè)計習(xí)題集沈國榮-答案_第4頁
c語言程序設(shè)計習(xí)題集沈國榮-答案_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、-. z.C語言程序設(shè)計習(xí)題解答沈國榮 隋雪莉 閔芳目錄 TOC o 1-3 h z u HYPERLINK l _Toc381868601第1章 C語言程序設(shè)計概述 PAGEREF _Toc381868601 h 2HYPERLINK l _Toc381868602第2章數(shù)據(jù)類型及其運算 PAGEREF _Toc381868602 h 3HYPERLINK l _Toc381868603第3章語句與輸入輸出 PAGEREF _Toc381868603 h 4HYPERLINK l _Toc381868604第4章選擇構(gòu)造程序設(shè)計 PAGEREF _Toc381868604 h 6HYPERL

2、INK l _Toc381868605第5章循環(huán)構(gòu)造程序設(shè)計 PAGEREF _Toc381868605 h 9HYPERLINK l _Toc381868606第6章數(shù)組 PAGEREF _Toc381868606 h 12HYPERLINK l _Toc381868607第7章函數(shù) PAGEREF _Toc381868607 h 15HYPERLINK l _Toc381868608第8章編譯預(yù)處理 PAGEREF _Toc381868608 h 18HYPERLINK l _Toc381868609第9章指針 PAGEREF _Toc381868609 h 19HYPERLINK l _

3、Toc381868610第10章構(gòu)造體與共用體 PAGEREF _Toc381868610 h 21HYPERLINK l _Toc381868611第11章位運算 PAGEREF _Toc381868611 h 25HYPERLINK l _Toc381868612第12章文件操作 PAGEREF _Toc381868612 h 26第1章 C語言程序設(shè)計概述一、選擇題12345678910CBACCBDBDA二、填空題1.函數(shù)、main()函數(shù)2./*、*/3.C、.OBJ、.E*E4.順序構(gòu)造、選擇構(gòu)造、循環(huán)構(gòu)造三、編程題1.【參考代碼】#includeint main( )printf

4、( 學(xué)校名稱n ) ;printf( n ) ;return 0 ;2.【參考代碼】#includeint main( )printf( 學(xué)校名稱nn ) ;return 0 ;第2章 數(shù)據(jù)類型及其運算一、選擇題12345678910CCCABADDC、BB11121314151617181920CADDDCDC注:第5題B選項為: 017 t二、填空題1.字母、數(shù)字、下劃線2.1、4、4、83.-6.97.68.-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章 語句與輸入輸

5、出一、選擇題12345678910BCCCCBBBDA二、填空題1.123.472.D3.回車4.10,2三、程序閱讀題1.2612.203.201,104.y=4630y=46305.*3.140000,3.142*6.c:dec=120,oct=170,he*=78,ASCII=*7.*=1 y=2 *sum*=310 squared is : 1008.2 48 20.2 20.29.*+y+z=4810.55, ,A四、編程題1.【參考代碼】#includeint main( )char ch;printf(請輸入一個字符:n);scanf(%c,&ch);printf(%c的ASCI

6、I碼為:%dn, ch,ch);return 0 ;2.【參考代碼】#include#define PI 3.1416int main( )double r, h;double cl,cs,cv;printf(請輸入圓的半徑:);scanf(%lf, &r);printf(請輸入圓柱高:);scanf(%lf, &h);cl=2*PI*r;cs=PI*r*r;cv=PI*r*r*h;printf(圓的周長為:%.4lfn, cl);printf(圓的面積為:%.4lfn, cs);printf(圓柱的體積為:%.4lfn, cv);return 0 ;3.【參考代碼】#includeint m

7、ain( ) int splitInt,one,ten,hundred;printf(輸入要處理的整數(shù):); scanf(%d,&splitInt); hundred = splitInt/100;ten = splitInt%100/10;one = splitInt%10;printf(個位:%d,十位:%d,百位:%dn,one,ten,hundred);return 0 ;第4章 選擇構(gòu)造程序設(shè)計一、選擇題123456DCCBBD二、程序閱讀題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三、程序

8、完善題1.ab、c*四、編程題1.【參考代碼】#includeint 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(dmin) min=d; printf(%dn,min); return 0 ;2.【參考代碼】#includeint main( ) int num,a,b,c,d; printf(請輸入一個四位整數(shù):); scanf(%d,&num);a=num/1000;b=num%1000/1

9、00;c=num%100/10;d=num%10; printf(各位數(shù)字之和為:%dn,a+b+c+d);return 0 ;3.【參考代碼】#includeint main( )int *; printf(請輸入*:); scanf(%d,&*);printf(y的值為:);if(*0)printf(%dn,*);else if(*50)printf(%dn,3*-2);else if(*100)printf(%dn,4*+1);elseprintf(%dn,5*);return 0 ;4.【參考代碼】#includeint main( )int dj;float zl,je,yfk;pr

10、intf(請輸入等級14: );scanf(%d,&dj);if (dj4|dj1)printf(無此等級的蘋果!n);return 0;printf(請輸入重量公斤: );scanf(%f,&zl);printf(n);switch (dj) case 1 : je=5.5*zl; break;case 2 : je=4.3*zl; break;case 3 : je=3.0*zl; break;case 4 : je=2.5*zl; break;printf(您選擇蘋果級別: %d 級n,dj);printf(您購置蘋果重量: %.2f公斤n,zl);printf(您應(yīng)付金額為: %.2f

11、元n,je);printf(n);printf(顧客所付金額: );scanf(%f,&yfk);if (yfk Z & ch z )ch - 262.k k/10 continue 3.i + t * 10s = s + t4.fabs( t ) = 1e-6 f = -f 5.i10 j%3 !=0四、編程題1.【參考代碼】#includeint main( )int n , i , j , k ;printf( Output:n ) ;for(n = 100 ; n1000 ; n+ )i = n % 10 ;/* 個位*/j = ( n / 10 ) % 10 ;/*十位*/k = n

12、 / 100 ;/* 百位*/if ( n = i * i * i + j * j * j + k * k * k )printf( %dn , n ) ;return 0 ;2. 【參考代碼】#includeint main ( ) 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ù)為0 */i = m % n ;m = n ;n =

13、i ; k = p / m ;printf( %d,%dn , m , k );return 0 ;3. 【參考代碼】#includeint 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!+%d!= %dn , n , sum ) ;return 0 ;4. 【參考代碼】#includeint main( ) int i , m ;

14、double sum = 0 , k = 1 ;printf( Please input : m= ) ;scanf( %d , &m ) ;for( i = 1 ; i = m ; i+ )sum = sum + k / i ;k = -k ;printf( sum=%4.2fn , sum ) ;return 0 ;第6章 數(shù)組一、選擇題12345678910111213141516DDDBCCBCCDDBDDCD二、程序閱讀題1 82430,24 125t*M6mo7 fwo三、程序完善題1 k = i j = i ak = ma* aj = min2 sum += scorei sco

15、reiavg3 si = si + aijprintf( n ) ;4 j = strlen( str ) 1strj = k5( c = getchar( ) ) != # numc-A += 1 四、編程題1. 【參考代碼】#include#define N 5int main( )int aN , i , j , r , temp ;printf( Please input %d numbersn , N ) ;for( i = 0 ; i N ; i+ )scanf( %d , &ai ) ;for( i = 0 ; i N - 1 ; i+ )r = i ;for( j = i +

16、1 ; j N ; j+ )if( aj ar )r = j ;if( r != i )temp = ar ;ar = ai ;ai = temp ;printf( The array after sort:n ) ;for( i = 0 ; i N ; i+ )printf( %5d , ai ) ;printf( n ) ;return 0 ;2. 【參考代碼】#includeint main( )int a10 = 1 , 2 , 3 , 6 , 7 , 8 , 9 , 10 ;int * , j , k = 0 ;printf( Please input :*= ) ;scanf( %

17、d , &*) ; if( * a7 )a8 = * ;elsefor( j = 0 ; j 8 ; j+ )if( * j ; k- )ak = ak - 1 ;aj = * ;for( j = 0 ; j 9 ; j+ )printf( %5d , aj ) ;printf( n ) ;return 0 ;3. 【參考代碼】#includeint main( )int a55 = 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21, 22,23,24 ;int i , j ,sum = 0 ;for ( i = 0 ; i 5 ;

18、 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. 【參考代碼】#includeint main( )char s1100 , s230 ;int i , j ;printf( Please input s1: ) ;gets( s1 ) ;printf( Please input s2: ) ;gets( s2 ) ;for( i = 0 ; s1i != 0 ; i+ ) ;f

19、or( j = 0 ; s2j != 0 ; j+ , i+ )s1i = s2j ;s1i = 0 ;printf( Outputns1: ) ;puts( s1 ) ;return 0 ;5. 【參考代碼】#includeint 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ù)一、選擇題123456789101112131415BDDABBC

20、BDDAADDA二、程序閱讀題1ma* is 22 a=1,b=23 1114 a=11,b=12,c=25 667 8 978 1780 1 2 0 1 2 三、程序完善題1 float area ( float r ) return s2z = fun( * , y ) z = z * * 3count =fun( score ) count+四、編程題1. 【參考代碼】#includeint main( ) void f(int n) ;int n ;printf( Please input: n= ) ;scanf( %d , &n ) ;if( n = 0)printf( Wrong

21、 number!n ) ;elsef( n ) ;return 0 ;void f(int n)if( n % 2 = 1 )printf( %d is a odd number.n , n ) ;elseprintf( %d is a even number.n , n ) ;2. 【參考代碼】#include #include int main( )void f( int m ) ;int m ;printf( Please input: m= ) ; scanf( %d , &m ) ;f( m ) ;return 0 ;void f( int m )int i , k ;k = sqr

22、t( m );for(i = 2 ; i = k + 1 ) printf( %d is a Prime Number.n , m ) ; else printf( %d is not a Prime Number.n , m ) ;3. 【參考代碼】#includeint gys( int m , int n )int r ;r = m % n ;while( r != 0 )m = n ;n = r ;r = m % n ;return n ;int gbs( int m , int n , int r )return m * n / r ;int main( )int m , n , t

23、 ;printf( Please input(m,n): ) ;scanf( %d%d , &m , &n ) ;if( m n )t = m ;m = n ;n = t ;t = gys( m , n ) ;printf( gys=%dn , t ) ;t = gbs( m , n , t ) ;printf( gbs=%dn , t ) ;return 0 ;4. 【參考代碼】#includeint main( )void mystrcat( char s1100 , char s230 ) ;char s1100 , s230 ;printf( Please input s1: ) ;g

24、ets( s1 ) ;printf( Please input s2: ) ;gets( s2 ) ;mystrcat( s1 , s2 ) ;printf( Outputns1: ) ;puts( 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章 編譯預(yù)處理一、選擇題123456ADDABA二、程序閱讀題1 6,1821535第9章指針一、

25、選擇題123456789101112DBBCDCCCDBCC1314151617CDDAC二、填空題1.地址 , NULL或02 .char a, *p; , scanf(%c, &a); , p=&a;3.*m4.for( k=0; k10; k+ )5.*(p+i) , pi , *(*+i)6.stri或*( str + i ) , i三、程序閱讀題1.gae2. bcdABCD3. 7, 8, 84. 8 45. 3 14 26. efgh7. w,one8. 7四、程序完善題1.ai 或 *( a + i )2.*p!=0 *p-03.p1 p2-*4.ma*(int a , int

26、 b );p = ma*四、編程題1.【參考代碼】#includevoid sort( int *a , int *b , int *c );int main()int m , n , t ;printf( Please input(m n t): ) ;scanf( %d%d%d , &m , &n , &t ) ;sort( &m , &n , &t ) ;printf( The result is :%dt%dt%dn , m , n , t ) ;return 0 ;void sort( int *a , int *b , int *c )int temp ;if( *a *b ) t

27、emp = *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 int strpare( char *str1 , char *str2 );int main( )int m ; char s120 , s220 , *p1 , *p2 ; printf( Please input(string1): ) ; scanf( %s , s1 ) ;printf( Plea

28、se input(string2): ) ; scanf( %s , s2 ) ; m = strpare ( s1 , s2 ) ; printf( The result of strpare is: %dn , m ) ;return 0 ;int strpare( char *str1 , char *str2 )int i = 0 ; while( ( *( str1 + i ) = *( str2 + i ) ) &( *( str1 + i ) != 0 ) )i+ ; return( *( str1 + i ) - *( str2 + i ) ) ;程序2:#include in

29、t strpare( char *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 ) ; p1 = s1 ;p2 = s2 ; m = strpare ( p1 , p2 ) ; printf( The result of strpare is: %dn , m ) ;return 0 ;int st

30、rpare( char *str1 , char *str2 )int i = 0 ; while( ( *( str1 + i ) = *( str2 + i ) ) &( *( str1 + i ) != 0 ) )i+ ; return( *( str1 + i ) - *( str2 + i ) ) ;程序3:#include int strpare( char str1 , char str2 );int main( )int m ; char s120 , s220 , *p1 , *p2 ; printf( Please input(string1): ) ; scanf( %s

31、 , s1 ) ;printf( Please input(string2): ) ; scanf( %s , s2 ) ; p1 = s1 ;p2 = s2 ; m = strpare ( p1 , p2 ) ; printf( The result of strpare is: %dn , m ) ;return 0 ;int strpare( char *str1 , char *str2 )int i = 0 ; while( ( str1i = str2i ) &( str1i != 0 ) )i+ ; return( str1i- str2i ) ;第10章構(gòu)造體與共用體一、選擇題

32、1234567891011CBACCDDDCBD二、填空題1.112 .p-ne*t=head-ne*t head-ne*t=p3.p-ne*t三、程序閱讀題1.51,60,212. 163. 1001,ChangRong,1098.0四、程序完善題1.sizeof( struct ps ) 或 sizeof( bt )2.p=p-ne*t 3.personi.se*五、編程題1.【參考代碼】#define N 3#include struct studentchar num6 ;char name8 ;int score2 ;float ave ; ;void input( struct s

33、tudent stuN ) ;void average( struct student stuN ) ;int ma*( struct student stuN ) ;int main( ) int i , j ;struct student stuN ;input( stu ) ;average( stu ) ;printf( NotNametScore1tScore2tAveragen ) ;for( i = 0 ; i N ; i+ )printf( %st%st , stui.num , ) ;for( j = 0 ; j 2 ; j+ )printf( %dt ,

34、 stui.scorej ) ;printf( %8.2fn , stui.ave ) ;i = ma*( stu ) ;printf( nThe ma* 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

35、 ;for(i=0;iN;i+)printf(nPlease input No%d student:n,i+1);printf(No:);scanf(%s,stui.num);printf(Name:);scanf(%s,);for(j=0;j2;j+)printf(score %d:,j+1);scanf(%d,&stui.scorej);void average( struct student stuN)int i , j , sum ;for(i=0;iN;i+)for(j=0 , stui.ave = 0 ;j2;j+) stui.ave += stui.scorej

36、;stui.ave = stui.ave / 2 ;int ma*( struct student stuN)int i , ma* , inde*;ma* = stu0.ave ;inde* = 0 ;for( i = 1 ; i N ; i+ )if( ma* stui.ave )ma* = stui.ave ;inde* = i ;return inde*;2.【參考代碼】#include#includestruct node short int data ;struct node *ne*t ; ;typedef struct node NODE ;struct node *Creat

37、Link( ) ;void PrintLink( NODE *head ) ;int ma*( NODE *head );int main( )NODE *head ;int ma*_value ;head = CreatLink( ) ;PrintLink( head ) ;ma*_value = ma*( head ) ;printf( The ma* is:%dn , ma*_value ) ;return 0 ;struct node *CreatLink( ) NODE *head , *p , *q ;short int num ;head = ( NODE * )malloc(

38、sizeof( NODE ) ) ;head-ne*t = NULL ;p = head ;printf( Please input( end of -1)!:n ) ;scanf( %d , &num ) ;while( num != -1 )q = ( NODE *)malloc( sizeof( NODE ) ) ; q-data = num ;p-ne*t = q ;p = q ;scanf( %d , &num ) ; p-ne*t = NULL ;return head ;void PrintLink( NODE *head )NODE *p;p = head-ne*t ;prin

39、tf( The data is:n ) ;while( p != NULL )printf( %4d , p-data ) ; p = p-ne*t ;printf( n ) ;int ma*( NODE *head )NODE *p;short int ma* = -32768;p = head-ne*t ;while( p != NULL )if( ma* data )ma* = p-data ; p = p-ne*t ;return ma* ;第11章位運算一、選擇題1234DBCA二、填空題1.0000 11112 .* | ff00 3.4 3三、程序閱讀題1.02. 11 223.

40、 0四、編程題1.【參考代碼】#includeint main()short int data , low ,high ;printf( Please input( short int): ) ;scanf( %d , &data ) ;low = data & 0*00ff ; /* 0*00ff表示低字節(jié)全1 */high = data & 0*ff00 ; /* 0*ff00表示高字節(jié)全1 */ printf( data:0*%*,the value of low byte is:0*%*n , data , high ) ;printf( data:0*%*,the value of

41、high byte is:0*%*n , data , low ) ;return 0 ;2.【參考代碼】#include int main( )short int data , result ;printf( Please intput(short int): ) ;scanf( %d , &data ) ;result = data 0*000f ; /* 0*000f表示低4位全1,高12位全0 */ printf( The data is 0*%* nThe result is :0*%*n , data,result ) ;return 0 ;第12章文件操作一、選擇題1234567

42、89101112DB、CCBBABCDBCC131415CDC二、填空題1.二進制 ASCII(文本)2 .FILE *fp # include 3.n 1 buf的首地址4. 15. 用以獲得文件讀寫位置標記指針的位置,函數(shù)返回值為當前文件讀寫位置標記指針相對于文件開頭的字節(jié)數(shù) 6. 使文件讀寫位置標記指針重新返回文件的開頭三、程序閱讀題1.1 22. end3. 34. hello,四、程序完善題1.! feof (fp) fgetc (fp) 2.fopen (“num.dat,r) fp,%d,&temp z+3.( ch=getchar() )ch , fp五、編程題1.【參考代碼】

43、#include#include#includeint main( ) FILE *fp ;char str100 , filename10 ;int i = 0 ;if( ( fp = fopen( upper.t*t , w+ ) ) = NULL )printf( Cannot open file!n ) ;e*it( 0 ) ;printf( Please input(string):n ) ;gets( str ) ;while( stri != ! )if( stri = a & stri = z )stri = stri - 32 ;fputc( stri , fp ) ;i+

44、;rewind( fp ) ;fgets( str , strlen( str ) + 1 , fp ) ;printf( nThe result is :n ) ;printf( %sn , str ) ;fclose( fp ) ;return 0 ;2.【參考代碼】#include#include#define N 5struct studentchar num10 ; char name8 ; int score3 ; float ave ; stuN ;int main( )int i , j , sum ; FILE *fp ;for( i = 0 ; i N ; i+ ) pri

45、ntf( nPlease input student information: n , i + 1 ) ; printf( No: ) ; scanf( %s , stui.num ) ; printf( Name: ) ; scanf( %s , ) ; sum = 0 ; for( j = 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.da

46、t , w ) ) = NULL ) printf( cannot open stud for write!n ) ; e*it( 0 ) ; for( i = 0 ; i 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 ) ; e*it( 0 ) ; printf( nNotNametScore1tScore2tAveragen ) ;for( i = 0 ; i N ; i+ ) fread( &stui , sizeof( struct stud

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論