C语言程序设计习题解答.pdf_第1页
C语言程序设计习题解答.pdf_第2页
C语言程序设计习题解答.pdf_第3页
C语言程序设计习题解答.pdf_第4页
C语言程序设计习题解答.pdf_第5页
已阅读5页,还剩26页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C 语言程序设计语言程序设计习题习题解答解答 沈国荣沈国荣 隋雪莉隋雪莉 闵芳闵芳 目录目录 第 1 章 C 语言程序设计概述. 2 第 2 章 数据类型及其运算.3 第 3 章 语句与输入输出.4 第 4 章 选择结构程序设计.6 第 5 章 循环结构程序设计.9 第 6 章 数组.12 第 7 章 函数.15 第 8 章 编译预处理.18 第 9 章 指针.19 第 10 章 结构体与共用体.22 第 11 章 位运算.26 第 12 章 文件操作.27 第 1 章 C 语言程序设计概述 一、选择题一、选择题 12345678910 CBACCBDBDA 二、二、填空填空题题 1.函数、main()函数 2./*、*/ 3.C、.OBJ、.EXE 4.顺序结构、选择结构、循环结构 三、编程题三、编程题 1.【参考代码】 #include int main( ) printf( (学校名称)n ) ; printf( (姓名)n ) ; return 0 ; 2.【参考代码】 #include int main( ) printf( (学校名称)n(姓名)n ) ; return 0 ; 第 2 章 数据类型及其运算 一、选择题一、选择题 12345678910 CCCABADDC、BB 11121314151617181920 CADDDCDC 注:第 5 题 B 选项为:017t 二、二、填空填空题题 1.字母、数字、下划线 2.1、4、4、8 3.-16 4.3.5 5.0 6.9 7.6 8.-60 9.y%2=1 10. 1、0、1 三、程序阅读题三、程序阅读题 1.b 2.0 3.0 4.10,2 5.9,10,9,10 6.3,1,0,0 7.3,20,30,1 第 3 章 语句与输入输出 一、选择题一、选择题 12345678910 BCCCCBBBDA 二、二、填空填空题题 1.123.47 2.D 3.回车 4.10,2 三、程序阅读题三、程序阅读题 1.261 2.20 3.201,10 4.y=4630 y=4630 5.*3.140000,3.142* 6.c:dec=120,oct=170,hex=78,ASCII=x 7.x=1 y=2 *sum*=3 10 squared is : 100 8.2 48 20.2 20.2 9.x+y+z=48 10. 55, ,A 四、编程题四、编程题 1.【参考代码】 #include int main( ) char ch; printf(请输入一个字符:n); scanf(%c, printf(%c 的 ASCII 码为:%dn, ch,ch); return 0 ; 2.【参考代码】 #include #define PI 3.1416 int main( ) double r, h; double cl,cs,cv; printf(请输入圆的半径:); scanf(%lf, printf(请输入圆柱高:); scanf(%lf, 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.【参考代码】 #include int main( ) int splitInt,one,ten,hundred; printf(输入要处理的整数:); scanf(%d, hundred = splitInt/100; ten = splitInt%100/10; one = splitInt%10; printf(个位:%d,十位:%d,百位:%dn,one,ten,hundred); return 0 ; 第 4 章 选择结构程序设计 一、选择题一、选择题 123456 DCCBBC 二、二、程序阅读题程序阅读题 1.10 2.2,2,2 3.6 4.97,b 5.c=-1 6.8888 7.20,0 8.2,1 9.1,1 2,2 2,1 -2,2 10. a=1,b=3 三、程序完善题三、程序完善题 1.ab、cx 四、编程题四、编程题 1.【参考代码】 #include int main( ) int a, b, c,d,min; printf(输入 4 个整数:); scanf(%d%d%d%d, if(a b) min = a; else min = b; if(c min) min=c; if(dmin) min=d; printf(%dn,min); return 0 ; 2.【参考代码】 #include int main( ) int num,a,b,c,d; printf(请输入一个四位整数:); scanf(%d, a=num/1000; b=num%1000/100; c=num%100/10; d=num%10; printf(各位数字之和为:%dn,a+b+c+d); return 0 ; 3.【参考代码】 #include int main( ) int x; printf(请输入 x:); scanf(%d, printf(y 的值为:); if(x0) printf(%dn,x); else if(x50) printf(%dn,3*x-2); else if(x4|dj1) printf(无此等级的苹果!n); return 0; printf(请输入重量(公斤): ); scanf(%f, 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(您应付金额为: %.2f 元n,je); printf(n); printf(顾客所付金额: ); scanf(%f, if (yfk Z printf( Output:n ) ; for(n = 100 ; n 1000 ; n+ ) i = n % 10 ;/* 个位 */ j = ( n / 10 ) % 10 ;/* 十位 */ k = n / 100 ;/* 百位 */ if ( n = i * i * i + j * j * j + k * k * k ) printf( %dn , n ) ; return 0 ; 2. 【参考代码】 #include int main ( ) int i , m , n , t , p , k ; printf( Please input: ) ; scanf ( %d,%d , if( m n ) t = n ; n = m ; m = t ; p = m * n ; while ( n != 0 )/* 余数不为 0,继续相除,直到余数为 0*/ i = m % n ; m = n ; n = i ; k = p / m ; printf( %d,%dn , m , k ); return 0 ; 3. 【参考代码】 #include int main( ) int i , n , t , sum ; t = 1 ; sum = 0 ; printf( Please input: n = ) ; scanf( %d , for( i = 1 ; i = n ; i+ ) t = t * i ; sum = sum + t ; printf( 1!+2!+%d!= %dn , n , sum ) ; return 0 ; 4. 【参考代码】 #include int main( ) inti , m ; double sum = 0 , k = 1 ; printf( Please input : m= ) ; scanf( %d , for( i = 1 ; i = m ; i+ ) sum = sum + k / i ; k = -k ; printf( sum=%4.2fn , sum ) ; return 0 ; 第 6 章 数组 一、选择题一、选择题 12345678910111213141516 DDDBCCBCCDDBDDCD 二、程序阅读题二、程序阅读题 18 24 30,2 412 5t*M 6mo 7fwo 三、程序完善题三、程序完善题 1k = ij = i ak = maxaj = max 2sum += scoreiscoreiavg 3si = si + aijprintf( n ) ; 4j = strlen( str ) 1strj = k 5( c = getchar( ) ) != #numc-A += 1 四、编程题四、编程题 1. 【参考代码】 #include #define N 5 int main( ) int aN , i , j , r , temp ; printf( Please input %d numbersn , N ) ; for( i = 0 ; i N ; i+ ) scanf( %d , 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 sort:n ) ; for( i = 0 ; i a7 ) a8 = x ; else for( j = 0 ; j 8 ; j+ ) if( x j ; k- ) ak = ak - 1 ; aj = x ; for( j = 0 ; j 9 ; j+ ) printf( %5d , aj ) ; printf( n ) ; return 0 ; 3. 【参考代码】 #include int 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 ; 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 int main( ) char s1100 , s230 ; inti , 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 ) ; return 0 ; 5. 【参考代码】 #include int main( ) char s1100 ; inti ; printf( Please input s1: ) ; gets( s1 ) ; for( i = 0 ; s1i != 0 ; i+ ) ; printf( The length of s1 is %dn ,i ) ; return 0 ; 第 7 章 函数 一、选择题一、选择题 123456789101112131415 BDDABBCBDDAADDA 二、程序阅读题二、程序阅读题 1max is 2 2a=1,b=2 3111 4a=11,b=12,c=2 56 6789 7817 80 1 2 0 1 2 三、程序完善题三、程序完善题 1float area ( float r )return s 2z = fun( x , y )z = z * x 3count =fun( score )count+ 四、编程题四、编程题 1. 【参考代码】 #include int main( ) void f(int n) ; int n ; printf( Please input: n= ) ; scanf( %d , if( n = 0) printf( Wrong number!n ) ; else f( n ) ; return 0 ; void f(int n) if( n % 2 = 1 ) printf( %d is a odd number.n , n ) ; else printf( %d is a even number.n , n ) ; 2. 【参考代码】 #include #include int main( ) void f( int m ) ; int m ; printf( Please input: m= ) ; scanf( %d , 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. 【参考代码】 #include int 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 ; printf( Please input(m,n): ) ; scanf( %d%d , 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. 【参考代码】 #include int main( ) void mystrcat( char s1100 , char s230 ) ; char s1100 , s230 ; printf( Please input s1: ) ; gets( 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 章 编译预处理 一、选择题一、选择题 123456 ADDABA 二、程序阅读题二、程序阅读题 16,18 215 35 第 9 章 指针 一、选择题一、选择题 123456789101112 DBBCDCCCDBAC 1314151617 CDDAC 二、二、填空题填空题 1.地址 , NULL(或 0) 2 .char a, *p;,scanf(%c, ,p= 3.*m 4.for( k=0; k *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 intstrcompare( 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 ) ; m = strcompare ( s1 , s2 ) ; printf( The result of strcompare is: %dn , m ) ; return 0 ; intstrcompare( char *str1 , char *str2 ) int i = 0 ; while( ( *( str1 + i ) = *( str2 + i ) ) return( *( str1 + i ) - *( str2 + i ) ) ; 程序 2: #include intstrcompare( 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 ) ; printf( The result of strcompare is: %dn , m ) ; return 0 ; intstrcompare( char *str1 , char *str2 ) int i = 0 ; while( ( *( str1 + i ) = *( str2 + i ) ) return( *( str1 + i ) - *( str2 + i ) ) ; 程序 3: #include intstrcompare( 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 ) ; printf( The result of strcompare is: %dn , m ) ; return 0 ; intstrcompare( char *str1 , char *str2 ) int i = 0 ; while( (str1i =str2i ) return( str1i- str2i) ; 第 10 章 结构体与共用体 一、选择题一、选择题 1234567891011 CBACCDDDCBD 二、二、填空题填空题 1.16 2 .p-next=head-nexthead-next=p 3.p-next 三、程序三、程序阅读阅读题题 1.51,60,21 2.16 3.1001,ChangRong,1098.0 四四、程序完善题程序完善题 1.sizeof( struct ps )或sizeof( bt ) 2.p=p-next 3.personi.sex 五、编程题五、编程题 1.【参考代码】 #define N 3 #include struct student char 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 N ; i+ ) printf( %st%st , stui.num , ) ; for( j = 0 ; j 2 ; j+ ) printf( %dt , stui.scorej ) ; printf( %8.2fn , stui.ave ) ; i = max( stu ) ; printf( nThe 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(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, 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; 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 next = NULL ; p = head ; printf( Please input( end of -1)!:n ) ; scanf( %d , while( num != -1 ) q = ( NODE *)malloc( sizeof( NODE ) ) ; q-data = num ; p-next = q ; p = q ; scanf( %d , p-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 ) ; intmax( NODE *head ) NODE *p; short int max = -32768; p = head-next ; while( p != NULL ) if( max data ) max = p-data ; p = p-next ; return max ; 第 11 章 位运算 一、选择题一、选择题 1234 DBCA 二、二、填空题填空题 1.0000 1111 2 .x |ff00 3.43 三、程序三、程序阅读阅读题题 1.0 2.11 22 3.0 四四、编程题编程题 1.【参考代码】 #include int main() short int data , low ,high ; printf( Please input( short int): ) ; scanf( %d , low = data /* 0 x00ff 表示低字节全 1 */ high = data /* 0 xff00 表示高字节全 1 */ printf( data:0 x%x,the value of low byte is:0 x%xn , data , high ) ; printf( data:0 x%x,the value of high byte is:0 x%xn , data , low ) ; return 0 ; 2.【参考代码】 #include int main( ) short int data , result ; printf( Please intput(short int): ) ; scanf( %d , result = data 0 x000f ; /* 0 x000f 表示低 4 位全 1,高 12 位全 0 */ printf( The data is 0 x%x nThe result is :0 x%xn , data,result ) ; return 0 ; 第 12 章 文件操作 一、选择题一、选择题 123456789101112 DB、CCBBABCDBCC 131415 CDC 二、二、填空题填空题 1.二进制ASCII(文本) 2 .FILE *fp# include 3.n 1buf 的首地址 4.1 5.用以获得文件读写位置标记指针的位置,函数返回值为当前文件读写位置标记指针相对 于文件开头的字节数 6.使文件读写位置标记指针重新返回文件的开头 三、程序三、程序阅读阅读题题 1.1 2 2.end 3.3 4.hello, 四四、程序完善题程序完善题 1.! feof (fp)fgetc (fp) 2.fopen (“num.dat”,”r”)fp,”%d”, 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( str ) ; while( stri != ! ) if( stri = a 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 #include #define N 5 struct student char num10 ; char name8 ; int score3 ; 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 = 0 ; j 3 ; j+ ) printf( Score%d: , j + 1 ) ; scanf( %d , 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 N ; i+ ) fwrite( 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( printf( n%st%st%dt%dt%5.2fn , stui.num , , stui.score0 ,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论