天天看点

中南c语言作业答案,C语言程序设计习题集沈国荣-参考答案

《C语言程序设计习题集沈国荣-参考答案》由会员分享,可在线阅读,更多相关《C语言程序设计习题集沈国荣-参考答案(31页珍藏版)》请在人人文库网上搜索。

1、C语言程序设计习题解答沈国荣 隋雪莉 闵芳目录第1章 C语言程序设计概述2第2章 数据类型及其运算3第3章 语句与输入输出4第4章 选择结构程序设计6第5章 循环结构程序设计9第6章 数组12第7章 函数15第8章 编译预处理18第9章 指针19第10章 结构体与共用体21第11章 位运算25第12章 文件操作26第1章 C语言程序设计概述一、选择题12345678910CBACCBDBDA二、填空题1.函数、main()函数2.3.C、.OBJ、.EXE4.顺序结构、选择结构、循环结构三、编程题1.【参考代码】#includeint main( )printf( (学校名称)n )。

2、 ;printf( (姓名)n ) ;return 0 ;2.【参考代码】#includeint main( )printf( (学校名称)n(姓名)n ) ;return 0 ;第2章 数据类型及其运算一、选择题12345678910CCCABADDC、BB11121314151617181920CADDDCDC注:第5题B选项为: 017 t二、填空题1.字母、数字、下划线2.1、4、4、83.-164.3.55.06.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章 语句与输入。

3、输出一、选择题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,hex=78,ASCII=x7.x=1 y=2 *sum*=310 squared is : 1008.2 48 20.2 20.29.x+y+z=4810.55, ,A四、编程题1.【参考代码】#includeint main( )char ch;printf(请输入一个字符:n);scanf(%c,&ch);printf(%c的ASC。

4、II码为:%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 。

5、main( ) int splitInt,one,ten,hundred;printf(输入要处理的整数:); scanf(%d,&splitInt); hundred = splitInt/100;ten = splitInt%100/10;one = splitInt%10;printf(个位:%d,十位:%d,百位:%dn,one,ten,hundred);return 0 ;第4章 选择结构程序设计一、选择题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三、程。

6、序完善题1.ab、cx四、编程题1.【参考代码】#includeint main( )int a, b, c,d,min; printf(输入4个整数:); scanf(%d%d%d%d,&a,&b,&c,&d);if(a int main( ) int num,a,b,c,d; printf(请输入一个四位整数:); scanf(%d,&num);a=num/1000;b=num%1000/100;c=num%100/10;d=num%10; printf(各位数字之和为:%dn,a+b+c+d);return 0 ;3.【参考代码】#includeint main( )int x; pri。

7、ntf(请输入x:); scanf(%d,&x);printf(y的值为:);if(xint main( )int dj;float zl,je,yfk;printf(请输入等级(14): );scanf(%d,&dj);if (dj4|dj Z & ch z ) ch - 262.k k/10 continue 3.i + t * 10 s = s + t4.fabs( t ) = 1e-6 f = -f 5.iint main( )int n , i , j , k ;printf( Output:n ) ;for(n = 100 ; n int main ( ) int i , m , 。

8、n , t , p , k ; printf( Please input: ) ;scanf ( %d,%d , &m , &n ) ;if( m int main( )int i , n , t , sum ;t = 1 ;sum = 0 ;printf( Please input: n = ) ;scanf( %d , &n ) ;for( i = 1 ; i int main( ) int i , m ;double sum = 0 , k = 1 ;printf( Please input : m= ) ;scanf( %d , &m ) ;for( i = 1 ; i #define。

9、 N 5int main( )int aN , i , j , r , temp ;printf( Please input %d numbersn , N ) ;for( i = 0 ; i 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 a7 )a8 = x ;elsefor( j = 0 ; j j ; k- )ak = ak - 1 ;aj = x ;for( j = 0 ; j int 。

10、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 int 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+ ) ;for( j = 0 ; s2j != 0 ; j+ , 。

11、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章 函数一、选择题123456789101112131415BDDABBCBDDAADDA二、程序阅读题1 max is 22 a。

12、=1,b=23 1 114 a=11,b=12,c=25 66 7 8 97 8 178 0 1 2 0 1 2 三、程序完善题1 float area ( float r ) return s2 z = fun( x , y ) z = z * x 3 count =fun( score ) count+四、编程题1. 【参考代码】#includeint main( ) void f(int n) ;int n ;printf( Please input: n= ) ;scanf( %d , &n ) ;if( n #include int main( )void f( int m ) ;i。

13、nt m ;printf( Please input: m= ) ;scanf( %d , &m ) ;f( m ) ;return 0 ;void f( int m )int i , k ;k = sqrt( 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 ;。

14、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 ;printf( Please input(m,n): ) ;scanf( %d%d , &m , &n ) ;if( m int main( )void mystrcat( char s1100 , char s230 ) ;char s1100 , s230 ;printf( Please input s1: ) ;gets( s1 ) ;printf( Please input s2:。

15、 ) ;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章 编译预处理一、选择题123456ADDABA二、程序阅读题1 6,182 153 5第9章 指针一、选择题123456789101112DBBCDCCCDBCC13。

16、14151617CDDAC二、填空题1.地址 , NULL(或0)2 .char a, *p; , scanf(%c, &a); , p=&a;3.*m4.for( k=0; kvoid 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。

17、 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 int strcompare( char *str1 , char *str2 );int main( )int m ;char s120 , s220 , *p1 , *p2 ;printf( 。

18、Please input(string1): ) ;scanf( %s , s1 ) ;printf( Please input(string2): ) ;scanf( %s , s2 ) ; m = strcompare ( s1 , s2 ) ;printf( The result of strcompare is: %dn , m ) ;return 0 ;int strcompare( char *str1 , char *str2 )int i = 0 ;while( ( *( str1 + i ) = *( str2 + i ) ) &( *( str1 + i ) != 0 ) 。

19、)i+ ;return( *( str1 + i ) - *( str2 + i ) ) ;程序2:#include int strcompare( 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 = strcompare ( p1 , p2 ) ;。

20、printf( The result of strcompare is: %dn , m ) ;return 0 ;int strcompare( char *str1 , char *str2 )int i = 0 ;while( ( *( str1 + i ) = *( str2 + i ) ) &( *( str1 + i ) != 0 ) )i+ ;return( *( str1 + i ) - *( str2 + i ) ) ;程序3:#include int strcompare( char str1 , char str2 );int main( )int m ;char s12。

21、0 , 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 ) ;printf( The result of strcompare is: %dn , m ) ;return 0 ;int strcompare( char *str1 , char *str2 )int i = 0 ;while( ( str1i = 。

22、str2i ) &( str1i != 0 ) )i+ ;return( str1i- str2i ) ;第10章 结构体与共用体一、选择题1234567891011CBACCDDDCBD二、填空题1.112 .p-next=head-next head-next=p3.p-next三、程序阅读题1.51,60,212. 163. 1001,ChangRong,1098.0四、程序完善题1.sizeof( struct ps ) 或 sizeof( bt )2.p=p-next 3.personi.sex五、编程题1.【参考代码】#define N 3#include struct stude。

23、ntchar num6 ;char name8 ;int score2 ;float ave ; ;void input( struct student stuN ) ;void average( struct student stuN ) ;int max( struct student stuN ) ;int main( )int i , j ;struct student stuN ;input( stu ) ;average( stu ) ;printf( NotNametScore1tScore2tAveragen ) ;for( i = 0 ; i #includestruct n。

24、odeshort 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_value = max( head ) ;printf( The max is:%dn , max_value ) ;return 0 ;stru。

25、ct 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 , &num ) ;while( num != -1 )q = ( NODE *)malloc( sizeof( NODE ) ) ; q-data = num ;p-next = q ;p = q ;scanf( %d , &num ) ;p。

26、-next = NULL ;return head ;void PrintLink( NODE *head )NODE *p;p = head-next ;printf( The data is:n ) ;while( p != NULL )printf( %4d , p-data ) ;p = p-next ;printf( n ) ;int max( NODE *head )NODE *p;short int max = -32768;p = head-next ;while( p != NULL )if( max data )max = p-data ;p = p-next ;retur。

27、n max ;第11章 位运算一、选择题1234DBCA二、填空题1.0000 11112 .x | ff00 3.4 3三、程序阅读题1.02. 11 223. 0四、编程题1.【参考代码】#includeint main()short int data , low ,high ;printf( Please input( short int): ) ;scanf( %d , &data ) ;low = data & 0x00ff ; high = data & 0xff00 ; printf( data:0x%x。

28、,the value of low byte is:0x%xn , data , high ) ;printf( data:0x%x,the value of high byte is:0x%xn , data , low ) ;return 0 ;2.【参考代码】#include int main( )short int data , result ;printf( Please intput(short int): ) ;scanf( %d , &data ) ;result = data 0x000f ; printf( The dat。

29、a is 0x%x nThe result is :0x%xn , data,result ) ;return 0 ;第12章 文件操作一、选择题123456789101112DB、CCBBABCDBCC131415CDC二、填空题1.二进制 ASCII(文本)2 .FILE *fp # include 3.n 1 buf的首地址4. 15. 用以获得文件读写位置标记指针的位置,函数返回值为当前文件读写位置标记指针相对于文件开头的字节数 6. 使文件读写位置标记指针重新返回文件的开头 三、程序阅读题1.1 22. end3. 34. hello,四、程序完善题1.! feof (fp) fge。

30、tc (fp) 2.fopen (“num.dat”,”r”) fp,”%d”,&temp z+ 3.( ch=getchar() ) ch , fp 五、编程题1.【参考代码】#include#include#includeint main( ) FILE *fp ;char str100 , filename10 ;int i = 0 ;if( ( fp = fopen( upper.txt , w+ ) ) = NULL )printf( Cannot open file!n ) ;exit( 0 ) ;printf( Please input(string):n ) ;gets( st。

31、r ) ;while( stri != ! )if( stri = a & stri #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 #include#define N 5struct studentchar num10 ;char name8 ;int score3 ;float ave ; stuN ;int main( )int i , j , min , i。

32、ndex ;FILE *fp ;struct student temp ;if( ( fp = fopen( stud.dat , r ) ) = NULL )printf( cannot open stud for read!n ) ;exit( 0 ) ;printf( nThe data is : ) ;printf( nNotNametScore1tScore2tAveragen ) ;for( i = 0 ; i N ; i+ )fread( &stui , sizeof(struct student ) , 1 , fp ) ;printf( n%st%st%dt%dt%5.2fn , stui.num , stui.name , stui.score0 , stu。