C语言程序设计习题集沈国荣-参考答案

C语言程序设计习题集沈国荣-参考答案
C语言程序设计习题集沈国荣-参考答案

《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语言程序设计概述

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章数据类型及其运算

注:第5题B选项为:'\'' '\017' '\t'

二、填空题

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章语句与输入输出

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",&ch);

printf("%c的ASCII码为:%d\n", ch,ch);

return 0 ;

}

2.【参考代码】

#include

#define PI 3.1416

int 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("圆的周长为:%.4lf\n", cl);

printf("圆的面积为:%.4lf\n", cs);

printf("圆柱的体积为:%.4lf\n", cv);

return 0 ;

}

3.【参考代码】

#include

int main( )

{

int splitInt,one,ten,hundred;

printf("输入要处理的整数:");

scanf("%d",&splitInt);

hundred = splitInt/100;

ten = splitInt%100/10;

one = splitInt%10;

printf("个位:%d,十位:%d,百位:%d\n",one,ten,hundred);

return 0 ;

}

第4章选择结构程序设计

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. a>b、c>x

四、编程题

1.【参考代码】

#include

int main( )

{

int a, b, c,d,min;

printf("输入4个整数:");

scanf("%d%d%d%d",&a,&b,&c,&d);

if(a < b) min = a;

else min = b;

if(c < min) min=c;

if(d

printf("%d\n",min);

return 0 ;

}

2.【参考代码】

#include

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("各位数字之和为:%d\n",a+b+c+d);

return 0 ;

}

3.【参考代码】

#include

int main( )

{

int x;

printf("请输入x:");

scanf("%d",&x);

printf("y的值为:");

if(x<0)

printf("%d\n",x);

else if(x<50)

printf("%d\n",3*x-2);

else if(x<100)

printf("%d\n",4*x+1);

else

printf("%d\n",5*x);

return 0 ;

}

4.【参考代码】

#include

int main( )

{

int dj;

float zl,je,yfk;

printf("请输入等级(1~4): ");

scanf("%d",&dj);

if (dj>4||dj<1)

{

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("您应付金额为: %.2f元\n",je);

printf("\n");

printf("顾客所付金额: ");

scanf("%f",&yfk);

if (yfk

{

printf("Data Error!\n");

return 0;

}

printf("应找您: %.2f元\n",yfk-je);

return 0 ;

}

第5章循环结构程序设计

1. 1,2,0

2 . m=4,n=2

3. A2C4E6

4. 132

5. 4

6. k=0,m=5

7. x=8

8. 1.6

9. 998988

三、程序完善题

1. ( ch > 'Z' && ch <= 'Z' + 4 ) ||(ch > 'z' ) ch - 26

2. k k/10 continue

3. i + t * 10 s = s + t

4. fabs( t ) >= 1e-6 f = -f

5. i<10 j%3 !=0

四、编程题

1.【参考代码】

#include

int main( )

{

int n , i , j , k ;

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( "%d\n" , n ) ;

}

return 0 ;

}

2. 【参考代码】

#include

int 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 ) /* 余数不为0,继续相除,直到余数为0 */ {

i = m % n ;

m = n ;

n = i ;

}

k = p / m ;

printf( "%d,%d\n" , m , k );

return 0 ;

}

3. 【参考代码】

#include

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!+…+%d!= %d\n" , n , sum ) ;

return 0 ;

}

4. 【参考代码】

#include

int main( )

{

int i , m ;

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.2f\n" , sum ) ;

return 0 ;

}

第6章数组

1 8

2 4

3 0,2

4 12

5 t*M

6 mo

7 fwo

三、程序完善题

1 k = i j = i

a[k] = max a[j] = min

2 sum += score[i] score[i]

3 s[i] = s[i] + a[i][j] printf( "\n" ) ;

4 j = strlen( str ) – 1 str[j] = k

5 ( c = getchar( ) ) != '#' num[c-'A'] += 1

四、编程题

1. 【参考代码】

#include

#define N 5

int main( )

{

int a[N] , i , j , r , temp ;

printf( "Please input %d numbers\n" , N ) ;

for( i = 0 ; i < N ; i++ )

scanf( "%d" , &a[i] ) ;

for( i = 0 ; i < N - 1 ; i++ )

{

r = i ;

for( j = i + 1 ; j < N ; j++ )

if( a[j] < a[r] )

r = j ;

if( r != i )

{

temp = a[r] ;

a[r] = a[i] ;

a[i] = temp ;

}

}

printf( "The array after sort:\n" ) ;

for( i = 0 ; i < N ; i++ )

printf( "%5d" , a[i] ) ;

printf( "\n" ) ;

return 0 ;

}

2. 【参考代码】

#include

int main( )

{

int a[10] = { 1 , 2 , 3 , 6 , 7 , 8 , 9 , 10 } ;

int x , j , k = 0 ;

printf( "Please input :x= " ) ;

scanf( "%d" , &x) ;

if( x > a[7] )

a[8] = x ;

else

{

for( j = 0 ; j < 8 ; j++ )

if( x < a[j] )

break ;

for(k = 8 ; k > j ; k-- )

a[k] = a[k - 1] ;

a[j] = x ;

}

for( j = 0 ; j < 9 ; j++ )

printf( "%5d" , a[j] ) ;

printf( "\n" ) ;

return 0 ;

}

3. 【参考代码】

#include

int main( )

{

int a[5][5] = {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" , a[i][j] ) ;

printf( "\n" ) ;

}

for( i =0 ;i < 5 ; i++ )

sum += a[i][i] ;

printf( " sum=%4d\n" , sum ) ;

return 0 ;

}

4. 【参考代码】

#include

int main( )

{

char s1[100] , s2[30] ;

int i , j ;

printf( "Please input s1:" ) ;

gets( s1 ) ;

printf( "Please input s2:" ) ;

gets( s2 ) ;

for( i = 0 ; s1[i] != '\0' ; i++ ) ;

for( j = 0 ; s2[j] != '\0' ; j++ , i++ )

s1[i] = s2[j] ;

s1[i] = '\0' ;

printf( "Output\ns1:" ) ;

puts( s1 ) ;

return 0 ;

}

5. 【参考代码】

#include

int main( )

{

char s1[100] ;

int i ;

printf( "Please input s1:" ) ;

gets( s1 ) ;

for( i = 0 ; s1[i] != '\0' ; i++ ) ;

printf( "The length of s1 is %d\n" ,i ) ;

return 0 ;

}

第7章函数

1 max is 2

2 a=1,b=2

3 1 11

4 a=11,b=12,c=2

5 6

6 7 8 9

7 8 17

8 0 1 2 0 1 2

三、程序完善题

1 float area ( float r ) return s

2 z = fun( x , y ) z = z * x

3 count =fun( score ) count++

四、编程题

1. 【参考代码】

#include

int main( )

{

void f(int n) ;

int n ;

printf( "Please input: n= " ) ;

scanf( "%d" , &n ) ;

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 < stdio.h >

#include < math.h >

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 = 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 ) ;

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" , &m , &n ) ;

if( m < n )

{

t = m ;

m = n ;

n = t ;

}

t = gys( m , n ) ;

printf( "gys=%d\n" , t ) ;

t = gbs( m , n , t ) ;

printf( "gbs=%d\n" , t ) ;

return 0 ;

}

4. 【参考代码】

#include

int main( )

{

void mystrcat( char s1[100] , char s2[30] ) ;

char s1[100] , s2[30] ;

printf( "Please input s1:" ) ;

gets( s1 ) ;

printf( "Please input s2:" ) ;

gets( s2 ) ;

mystrcat( s1 , s2 ) ;

printf( "Output\ns1:" ) ;

puts( s1 ) ;

return 0 ;

}

void mystrcat( char s1[100] , char s2[30] )

{

int i , j ;

for( i = 0 ; s1[i] != '\0' ; i++ ) ;

for( j = 0 ; s2[j] != '\0' ; j++ , i++ )

s1[i] = s2[j] ;

s1[i] = '\0' ;

}

第8章编译预处理

1 6,18

2 15

3 5

第9章指针

二、填空题

1. 地址,NULL(或0)

2 . char a, *p; ,scanf("%c", &a); ,p=&a;

3. *m

4. for( k=0; k<10; k++ )

5. *(p+i) ,p[i] ,*(x+i)

6. str[i]或*( str + i ) ,i

三、程序阅读题

1. gae

2. bcdABCD

3. 7, 8, 8

4. 8 4

5. 3 1

4 2

6. efgh

7. w,one

8. 7

四、程序完善题

1. a[i] 或*( a + i )

2. *p!='\0' *p-'0'

3. p1 p2-x

4. max(int a , int b ); p = max

四、编程题

1.【参考代码】

#include

void 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 :%d\t%d\t%d\n" , 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

int strcompare( char *str1 , char *str2 );

int main( )

{

int m ;

char s1[20] , s2[20] , *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: %d\n" , 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 ) ) ;

}

程序2:

#include

int strcompare( char *str1 , char *str2 );

int main( )

{

int m ;

char s1[20] , s2[20] , *p1 , *p2 ;

printf( "Please input(string1):" ) ;

scanf( "%s" , s1 ) ;

printf( "Please input(string2):" ) ;

scanf( "%s" , s2 ) ;

p1 = s1 ;

p2 = s2 ;

C语言程序设计第三版习题库答案

C 语言程序设计(第三版)习题库 1、设圆半径r=,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 #include<> main(){ floatr,h,C1,Sa,Sb,Va,Vb; scanf(__”%f ”__,&r); scanf(”%d ”,__&h _);; C1=2**r; Sa=*r*r; Sb=4*Sa; Va=4**r*r*r/3; Vb=Sa*h; printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f ”,Cl,Sa,Sb,Va,Vb ); } 2、输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9 输出要求有文字说明,取位2小数。 #include<> main(){ floatF,c; scanf("%f",&F); ____c=5*(F-32)/9______; printf("c=%.2f",c); } 3、有一函数:?? ???≥-<≤-<=10113101121x x x x x x y 写一程序,输入x 值,输出y 值。 #include<> main(){ intx,y; printf("输入x :"); scanf("%d",&x); if(x<1){/*x<1*/ y=x; printf("x=%3d,y=x=%d\n",x,y);

}elseif(____x<10_______){/*1≤x-10*/ _____y=2*x-1_______; printf("x=%3d,y=2*x-1=%d\n",x,y); }else{/*x≥10*/ y=3*x-11; printf("x=%3d,y=3*x-11=%d\n",x#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d\n",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }scanf("%d",&x);

C语言程序设计第四版第六章答案_谭浩强

1、用筛选法求100之内的素数。解: #include #include int main() {int i,j,n,a[101]; for (i=1;i<=100;i++) a[i]=i; a[1]=0; for (i=2;i int main() {int i,j,min,temp,a[11]; printf("enter data:\n"); for (i=1;i<=10;i++)

{printf("a[%d]=",i); scanf("%d",&a[i]); } printf("\n"); printf("The orginal numbers:\n"); for (i=1;i<=10;i++) printf("%5d",a[i]); printf("\n"); for (i=1;i<=9;i++) {min=i; for (j=i+1;j<=10;j++) if (a[min]>a[j]) min=j; temp=a[i]; a[i]=a[min]; a[min]=temp; } printf("\nThe sorted numbers:\n"); for (i=1;i<=10;i++) printf("%5d",a[i]); printf("\n"); return 0; } 3、求一个3×3的整型矩阵对角线元素之和。解: #include int main() { int a[3][3],sum=0; int i,j; printf("enter data:\n"); for (i=0;i<3;i++) for (j=0;j<3;j++) scanf("%3d",&a[i][j]); for (i=0;i<3;i++) sum=sum+a[i][i]; printf("sum=%6d\n",sum);

C语言程序设计试题集与答案解析

一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。

13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20.

C语言程序设计(谭浩强)第四版-课后答案

第一章程序设计和C语言【第15页】 1-5 #include int main ( ) { printf ("**************************\n\n"); printf(" Very Good!\n\n"); printf ("**************************\n"); return 0; } 1-6 #include int main() {int a,b,c,max; printf("please input a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if (max #include int main() {float p,r,n; r=0.1; n=10; p=pow(1+r,n); printf("p=%f\n",p); return 0; }

3-2-1 #include #include int main() {float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5; p=1000; r5=0.0585; r3=0.054; r2=0.0468; r1=0.0414; r0=0.0072; p1=p*((1+r5)*5); // 一次存5年期 p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后将本息再存3年期 p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后将本息再存2年期 p4=p*pow(1+r1,5); // 存1年期,到期后将本息存再存1年期,连续存5次 p5=p*pow(1+r0/4,4*5); // 存活期存款。活期利息每一季度结算一次 printf("p1=%f\n",p1); // 输出按第1方案得到的本息和 printf("p2=%f\n",p2); // 输出按第2方案得到的本息和 printf("p3=%f\n",p3); // 输出按第3方案得到的本息和 printf("p4=%f\n",p4); // 输出按第4方案得到的本息和 printf("p5=%f\n",p5); // 输出按第5方案得到的本息和 return 0; } 3-2-2 #include #include int main() {double r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5; p=1000; r5=0.0585; r3=0.054; r2=0.0468; r1=0.0414; r0=0.0072; p1=p*((1+r5)*5); // 一次存5年期 p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后将本息再存3年期 p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后将本息再存2年期 p4=p*pow(1+r1,5); // 存1年期,到期后将本息存再存1年期,连续存5次

c语言程序设计第五版习题答案

习题解析与答案 第1章C语言概述 一.简答题 1.概述C语言的主要特点。 【解答】 (1)语言简洁、紧凑,使用方便、灵活。 (2)数据类型丰富,表达能力强。 (3)运算符多样。C语言中的运算符包含的范围非常广泛。 (4)具有结构化的控制语句。如if…else语句、while语句、do while语句、switch 语句、for语句。 (5)允许直接访问物理地址。C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。 (6)所生成的目标代码质量高,可移植性好。 2.构成C语言程序的基本单位是什么?它由哪几部分组成? 【解答】函数是构成C语言程序的基本单位。一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。 3.C语言程序的运行一般要经过哪几个步骤? 【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。 二.运行程序写结果 1.输入下面程序并运行。 main() { int a1,a2,x; a1=100; a2=50; x=a1-a2; printf(″x=%d\n″,x); } 【解答】运行结果为:x=50 2.输入下面程序并运行。 main() { int a1,a2,x; a1=10; a2=20; x=a1*a2; printf(″a1=%d,a2=%d\n″,a1,a2); printf(″x=%d\n″,x); } 【解答】运行结果为:a1=10,a2=20 x=200 3.输入下面程序并运行。

#include main() { printf("******\n"); printf(" *****\n"); printf(" ****\n"); printf(" ***\n"); printf(" **\n"); printf(" *\n"); } 【解答】运行结果为:****** ***** **** *** ** * 思考:可以修改程序,使之输出平行四边形,等腰三角形等图形。 三.编程题 1.参照本章例题,编写一个C程序,用于显示如下信息: ************************* I love C programs! ************************* 【分析与提示】 ①要有文件包含语句#include 。C语言中没有数据的输入、输出等功能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf等来实现的。这些函数的说明都包括在stdio.h文件中。 ②main是主函数的名称。用{}括起来的内容是函数体,函数体由若干条语句组成,这是计算机要执行的部分,每条语句以分号“;”结束。 ③注意显示的信息有三行,所以要用到换行符“\n”。 参考代码: #include main() { printf("************************\n"); printf(" I love C programs! \n"); printf("************************\n"); }

《C语言程序设计》课后习题答案(第四版)谭浩强

第1章程序设计和C语言1 1.1什么是计算机程序1 1.2什么是计算机语言1 1.3C语言的发展及其特点3 1.4最简单的C语言程序5 1.4.1最简单的C语言程序举例6 1.4.2C语言程序的结构10 1.5运行C程序的步骤与方法12 1.6程序设计的任务14 1-5 #include int main ( ) { printf ("**************************\n\n"); printf(" Very Good!\n\n"); printf ("**************************\n"); return 0; } 1-6#include int main() {int a,b,c,max; printf("please input a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if (max

2.5结构化程序设计方法34 习题36 第章最简单的C程序设计——顺序程序设计37 3.1顺序程序设计举例37 3.2数据的表现形式及其运算39 3.2.1常量和变量39 3.2.2数据类型42 3.2.3整型数据44 3.2.4字符型数据47 3.2.5浮点型数据49 3.2.6怎样确定常量的类型51 3.2.7运算符和表达式52 3.3C语句57 3.3.1C语句的作用和分类57 3.3.2最基本的语句——赋值语句59 3.4数据的输入输出65 3.4.1输入输出举例65 3.4.2有关数据输入输出的概念67 3.4.3用printf函数输出数据68 3.4.4用scanf函数输入数据75 3.4.5字符数据的输入输出78 习题82 3-1 #include #include int main() {float p,r,n; r=0.1; n=10; p=pow(1+r,n); printf("p=%f\n",p); return 0; } 3-2-1 #include #include int main() {float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5; p=1000;

(完整版)C语言程序设计练习及答案

《C语言程序设计》练习及答案 得分评卷人复查人 一、单选题,每小题1分,共60分(将正确答案的序号写在题目的括号中)。 1、结构化程序设计的三种基本控制结构是(D )。 A、主程序、子程序、函数 B、输入、处理、输出 C、调用,返回,转移 D、顺序、选择、循环 2、下列关于C程序变量的叙述, ( D )是错误的。 A、变量名必须由字母或下划线开头。 B、程序中的变量必须在被使用之前定义。 C、不同的基本类型的变量之间可以混合运算。 D、变量的数据类型决定变量的"作用域"。 3、能将C语言编写的源程序转换为目标程序的软件是(C )。 A、编辑程序 B、汇编程序 C、编译程序 D、解释程序 4、以下符号中,合法的用户标识符是( D )。 A、-p B、int C、3ab D、_xt_ 5、以下选项中,与m=n++完全等价的表达式是( C )。 A、m=++n B、m+=n+1 C、m=n, n=n+1 D、n=n+1,m=n 6、若有定义:int aa[8];。则以下表达式中不能代表数组元aa[1]的地址的是(C )。 A、&aa[0]+1 B、&aa[1] C、&aa[0]++ D、aa+1 7、表达式!5&(7+3)&&(4+5)的值是(A)。 A、0 B、1 C、5 D、9 8、以下选项中非法的C语言表达式是(A )。 A、x+1=x+1 B、0<=x<100 C、i=j==0 D、(char)(65+3) 9、在TURBO C中, int类型变量所占字节数是(B )。 A、1 B、2 C、4 D、8 10、C语言中基本的数据类型包括(B)。 A、整型,实型,逻辑型 B、整型,实型,字符型

C语言程序设计第四版第七章答案-谭浩强

第七章函数 7.1写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。 maxyueshu(m,n) int m,n; { int i=1,t; for(;i<=m&&i<=n;i++) {if(m%i==0&&n%i==0) t=i; } return(t); } minbeishu(m,n) int m,n; {int j; if(m>=n) j=m; else j=n; for(;!(j%m==0&&j%n==0);j++); return j; } main() {int a,b,max,min; printf("enter two number is: "); scanf("%d,%d",&a,&b); max=maxyueshu(a,b); min=minbeishu(a,b); printf("max=%d,min=%d\n",max,min); } 7.2求方程的根,用三个函数分别求当b2-4ac大于0、等于0、和小于0时的根,并输出结果。从主函数输入a、b、c的值。 #include"math.h" float yishigen(m,n,k) float m,n,k; {float x1,x2; x1=(-n+sqrt(k))/(2*m); x2=(-n-sqrt(k))/(2*m); printf("two shigen is x1=%.3f and x2=%.3f\n",x1,x2); } float denggen(m,n) float m,n; {float x; x=-n/(2*m); printf("denggen is x=%.3f\n",x); }

C语言程序设计第二版习题参考答案

C语言程序设计第二版 习题参考答案 Document serial number【LGGKGB-LGG98YT-LGGT8CB-LGUT-

C语言程序设计习题参考答案 习题 1 一、判断题 1.在计算机中,小数点和正负号都有专用部件来保存和表示。 2.二进制是由0和1两个数字组成的进制方式。 3.二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系。 4.在整数的二进制表示方法中,0的原码、反码都有两种形式。 5.有符号数有三种表示法:原码、反码和补码。 6.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、大写英文字母、小写英文字母。 解:1.F2.T 3.T 4.T 5.T 6.T 二、单选题 1.在计算机中,最适合进行数值加减运算的数值编码是。 A. 原码 B. 反码 C. 补码 D. 移码 2.已知英文小写字母m的ASCII码为十进制数109,则英文小写字母y的ASCII 码为十进制数。 A. 112 B. 120 C. 121 D. 122 3.关于ASCII码,在计算机中的表示方法准确地描述是。 A. 使用8位二进制数,最右边一位为1 B. 使用8位二进制数,最左边一位为1 C. 使用8位二进制数,最右边一位为0 D. 使用8位二进制数,最左边一位为0 4.设在机器字长4位,X=0111B,Y=1011B,则下列逻辑运算中,正确的是 ___________。 A. X∧Y=1000 B. X∨Y=1111 C. X⊕Y=0011 D. ˉY=1000 5.下列叙述中正确的是()。 A.高级语言就是机器语言 B.汇编语言程序、高级语言程序都是计算机程序,但只有机器语言程序才是计算机可以直接识别并执行的程序 C.C语言因为具有汇编语言的一些特性,所以是汇编语言的一种 D.C源程序经过编译、连接,若正确,执行后就能得到正确的运行结果6.用C语言编写的源程序经过编译后,若没有产生编译错误,则系统将()。 A.生成可执行文件B.生成目标文件 C.输出运行结果D.自动保存源文件 7.下列叙述中不正确的是()。 A.main函数在C程序中必须有且只有一个 B. C程序的执行从main函数开始,所以main函数必须放在程序最前面 C. 函数可以带参数,也可以不带参数。

大学生C语言程序设计(第四版 谭洪强)实验5答案

实验四参考答案(参考答案) (1) 设计程序sy5-1.c,从键盘上输入一个3行3列矩阵各个元素的值,输出其主对角线元素和反向对角线元素之和。 算法分析: 对角线上的元素,1维和2维下标相同,反对角线元素,如果行下标为i,列下标就为2-i; 参考答案: #include int main() { int a[3][3]={{1,2,3},{4,5,6},{7,8,9}}; int i,j,sum=0; for(i=0;i<3;i++) sum=sum+a[i][i]+a[i][2-i]; //a[i][i]当前行的主对角线元素 //a[i][2-i]当前行的反对角线元素printf("矩阵的正、反对角线元素之和为:%d\n",sum); return 0; } 运行结果: (2) 设计程序sy5-2.c,找出一个3×4的矩阵中的最小值及其位置。 算法分析: 首先把二维数组中的第一个数即a[0][0]看成最小值,然后逐行逐列的去遍历每个元素,逐一判断每一个元素是否比最小值还好小,如果是,就改写最小值,并记录他的下标。 参考答案: #include #include int main() { int a[3][4]={{10,21,41,5},{12,15,46,35},{40,21,26,30}}; int i,j,row,colum,min; printf("数组a:\n"); for(i=0;i<3;i++) { for(j=0;j<4;j++) printf("%5d",a[i][j]);

printf("\n"); } min=a[0][0];row=0;colum=0; //首先把第一个数a[0][0]看成最小数 for(i=0;i<3;i++) //双重循环逐一遍历每个元素a[i][j] for(j=0;j<4;j++) if(min>a[i][j]) //如果当前值a[i][j]比最小值还要小 {min=a[i][j];row=i;colum=j;} //用a[i][j]改写最小值,并记下他们的下标printf("矩阵中最小元素是:%d,行下标是:%d,列下标是%d\n",min,row,colum); return 0; } 运行结果: (3) 设计程序sy5-3.c,定义一个3×3的二维数组,通过随机函数自动赋值。然后输入一个整数n,使数组左下三角(含对角线元素)元素中的值乘以n 。例如:若n的值为3,a 数组中的值为 | 1 9 7 |则程序运行后a数组中的值应为| 3 9 7 | | 2 3 8 | | 6 9 8 | | 4 5 6 | | 12 15 18 | 算法分析: 主要理解到对角线即以下元素包含哪些元素,即他们的下标变化。对每一行i来说,对角线以下的元素,他们的列下标是0,1,2,---,i;所以用外循环i遍历行,内循环j(从0到i),逐一遍历每一个a[i][j],并给a[i][j]赋值为他的n倍。最后输出矩阵。 参考答案: #include #include int main() { int a[3][3]; int i,j,n; printf("原来a的值:"); for(i=0;i<3;i++) //生成数组元素,并按矩阵形式输出 { for(j=0;j<3;j++) {a[i][j]=rand()%20; //rand()参看教材385页 //rand()%20 产生一个20以内的整数

C语言程序设计习题答案

C 语言程序设计习题答案 习题一 C 语言程序设计概述 一、名词解释 (1)程序P1 (2)程序设计P1 (3)机器语言P1 (4)汇编程序P2 (5)高级语言P2 (6)编译程序P3 (7)解释程序P3 (8)算法P4 (9)结构化的程序设计P9 二、简述题 1. 设计程序时应遵循哪些基本原则?P4 答:正确性、可靠性、简明性、有效性、可维护性、可移植性。 2. 算法的要素是什么?算法具有哪些特点? 答:算法的要素是:操作与控制结构;算法的特点有:有穷性、确定性、有效性、有零个或多个输入、有一个或多个输出。 3. 算法的表示形式有哪几种? 答:算法的表示形式有:自然语言、传统流程图、伪代码、结构化的流程图(N_S 流程图,盒图)。 4. 有哪三种基本结构? 答:三种基本结构是:顺序结构、选择结构和循环结构。 5. 传统流程图与N-S 流程图最大的区别是什么? 答:N-S 流程图去掉了在传统流程图中常用的流程线,使得程序的结构显得更加清晰、简单。 三、用传统流程图、N-S 图分别表示求解以下问题的算法。 1. 有3个数a ,b ,c ,要求按由大到小的顺序把它们输出。 2. 依次将10个数输入,求出其中最大的数 和最小的数并输出。 3. 求1+2+3+…+100的值。

5. 求下列分段函数的值。 6. 求100~200之间的所有素数。 7. 求一元二次方程ax 2+bx+c=0的根。分别考虑d=b 2-4ac 大于0、等于0和小于0三种情况。 四、注释下面C 程序的各个组成部分。 main() /*主函数 */ { /*程序开始 */ int a,k,m; /*定义三个用来存放整数的变量 */ a=10; /*将整数10赋值给变量a */ k=2; /*将整数2赋值给变量k */ m=1; /*将整数1赋值给变量1 */ a=(k+m)*k/(k-m); /*先求出算术表达式的值,并将其赋值给变量a */ printf("%d\n",a); /*在屏幕上打印出变量a 的值 */ } /*程序结束 */ 习题二 数据类型、运算符与表达式 一、选择题 1~10:BCDCB DDBCA 11~20: ADDAA DBADC 21~28: DABAD CDD Y= 3X (X<1) 4X-1 (X=1) 5(X-1)+6 (1

C语言程序设计第三版谭浩强课后习题答案完整版

C语言程序设计第三版谭浩强 课后习题答案完整版 第一章 1.5请参照本章例题,编写一个C程序,输出以下信息:************************** V ery Good! ************************** 解: mian() {printf(“**************************”); printf(“\n”); printf(“V ery Good!\n”); printf(“\n”); printf(“**************************”); } 1.6 编写一个程序,输入a、b、c三个值,输出其中最大值。解: mian() {int a,b,c,max; printf(“请输入三个数a,b,c:\n”); scanf(“%d,%d,%d”,&a,&b,&c); max=a; if(max main() { char c1=?C?,c2=?h?,c3=?i?,c4=?n?,c5=?a?; c1+=4; c2+=4; c3+=4; c4+=4; c5+=4; printf("密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5); } 运行结果: 密码是Glmre 3.9求下面算术表达式的值。 (1)x+a%3*(int)(x+y)%2/4 设x=2.5,a=7,y=4.7 (2)(float)(a+b)/2+(int)x%(int)y 设a=2,b=3,x=3.5,y=2.5 (1)2.5 (2)3.5 3.10写出程序运行的结果。 main() {int i,j,m,n; i=8; j=10; m=++i; n=j++; printf(“%d,%d,%d,%d”,i,j,m,n); } 解: 9,11,9,10 3.12 写出下面表达式运算后a的值,设原来a=12。设a和n都已定义为整型变量。 (1)a+=a (2)a-=2 (3)a*=2+3 (4)a/=a+a (5)a%=(n%=2),n的值等于5 (6)a+=a-=a*=a 解: (1) 24 (2) 10 (3) 60 (4) 0 (5) 0 (6) 0 第四章 4.4若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2=’b’。想得到以下输出格式和结果,请写出程序(包括定义变量类型和设计输出)。 a=_3_ _b=_4_ _c=_5 x=1.200000,y=2.400000,z=-3.600000 x+y=_3.600_ _y+z=-1.20_ _z+x=-2.40 c1=ˊaˊ_or_97(ASCII)

《C语言程序设计》_谭浩强版教案

《C 语言程序设计》教案 职称: 助教 ____________ 单 位:湖南理工职业技术学院 学院(教研室):风能工程学院 工业机器人专业 授课教师: 周常欣

教 学 重 占 八、、 和 难 占 八、、 一、 程序设计和 C 语言 重点:计算机程序、计算机语言、 C 语言编译软件的安装、最简单的 C 语言程序 二、 算法:程序的灵魂 重点:简单的算法举例、算法的特性、用流程图表示算法。 三、 顺序结构程序设计 重点:C 语言的数据类型、C 语句的种类、赋值语句、数据的输入输出及输入输出 中最常用的 控制格式。 四、 选择结构程序设计 重点:关系运算符与逻辑运算符及其组成的具有逻辑值的表达式、 二条分支语句的格 式及基本应用、多分支的选择语句。 五、 循环结构程序设计 重点:C 构成循环的四种方法,尤其是后三种方法、 break 与continue 语句的基本作 用。 难点:while 语句;do-while 语句;for 语句;循环的嵌套; break 与continue 语句。 六、 数组 重点:一维数组、二维数组的定义与引用;字符数组的定义与引用、常用字符串处 理函数及字符处理函数;数组的应用 难点:二维数组的定义与引用;字符数组;数组的应用 七、 函数 重点:函数的定义;函数的参数和函数的值;函数的调用;函数的嵌套调用;函数的 递归调 用;数组作为函数参数;变量作用域;量存储类别; 难点:函数定义、函数调用、函数声明等基本基本概念;函数的嵌套调用与递归调 用;数组作 为函数的参数、变量的存储类别与作用域。 八、 指针 重点和难点:指针与地址的基本概念、指针与变量的关系;指针与数组;指针与字 符串、指针 数组与二级指针;指针的应用 九、 建立自己的数据类型 重点和难点:定义和使用结构体变量、用指针处理链表、共用体类型 十、文件 重点:文件的基本知识、 fopen 、fclose 函数打开与关闭文件、顺序读与数据文件、 随机读写数据文件 难点:用二进制方式向文件读写一组数据。 十一、常见错误分析 重点和难点:文件的基本概念;文件的打开、关闭、常用读写方法。 十二、数组高级应用 重点:不定长数组与二维数组的应用 难点:不定长数组与二维数组的应用 十三、综合应用 重点:数组、if 语句、循环语句、函数知识的综合应用 难点:二维数组、指针 教材、 参 考书 教材:《C 程序设计》(第四版) 谭浩强著 清华大学出版社2010年6月 参考书:《C 程序设计语言》 Kernighan&Ritchie 机械工业出版社 《C 语言程序设计》教案 第1-2课时

c语言程序设计第五版习题答案

c语言程序设计第五版习 题答案 Prepared on 24 November 2020

习题解析与答案 第1章C语言概述 一.简答题 1.概述C语言的主要特点。 【解答】 (1)语言简洁、紧凑,使用方便、灵活。 (2)数据类型丰富,表达能力强。 (3)运算符多样。C语言中的运算符包含的范围非常广泛。 (4)具有结构化的控制语句。如if…else语句、while语句、dowhile语句、switch语句、for语句。 (5)允许直接访问物理地址。C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。 (6)所生成的目标代码质量高,可移植性好。 2.构成C语言程序的基本单位是什么它由哪几部分组成 【解答】函数是构成C语言程序的基本单位。一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。 3.C语言程序的运行一般要经过哪几个步骤 【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。 二.运行程序写结果 1.输入下面程序并运行。 main() { inta1,a2,x; a1=100; a2=50; x=a1-a2; printf(″x=%d\n″,x); } 【解答】运行结果为:x=50 2.输入下面程序并运行。 main()

{ inta1,a2,x; a1=10; a2=20; x=a1*a2; printf(″a1=%d,a2=%d\n″,a1,a2); printf(″x=%d\n″,x); } 【解答】运行结果为:a1=10,a2=20 x=200 三.编程题 1.参照本章例题,编写一个C程序,用于显示如下信息: ************************* IloveCprograms! ************************* 【分析与提示】 ①要有文件包含语句#include<>。C语言中没有数据的输入、输出等功 能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf 等来实现的。这些函数的说明都包括在文件中。 ②main是主函数的名称。用{}括起来的内容是函数体,函数体由若干 条语句组成,这是计算机要执行的部分,每条语句以分号“;”结束。 ③注意显示的信息有三行,所以要用到换行符“\n”。 参考代码: #include<> main() { printf("************************\n"); printf("IloveCprograms!\n"); printf("************************\n"); } 第2章数据类型及其运算一.简答题 1.C语言中的数据类型主要有哪几类 【解答】短整型(shortint) 整型整型(int) 长整型(longint) 基本类型字符型(char)(float) 实型(浮点型) 双精度(double) 枚举类型(enum) 数组类型

《C语言程序设计》课后习题答案(第四版)谭浩强

第1章程序设计和C语言1 什么是计算机程序1 什么是计算机语言1 语言的发展及其特点3 最简单的C语言程序5 最简单的C语言程序举例6 语言程序的结构10 运行C程序的步骤与方法12 程序设计的任务14 1-5 #include <> int main ( ) { printf ("**************************\n\n"); printf(" Very Good!\n\n"); printf ("**************************\n"); return 0; } 1-6#include <> int main() {int a,b,c,max; printf("please input a,b,c:\n");

scanf("%d,%d,%d",&a,&b,&c); max=a; if (max

数据类型42 整型数据44 字符型数据47 浮点型数据49 怎样确定常量的类型51 运算符和表达式52 语句57 语句的作用和分类57 最基本的语句——赋值语句59 数据的输入输出65 输入输出举例65 有关数据输入输出的概念67 用printf函数输出数据68 用scanf函数输入数据75 字符数据的输入输出78 习题82 3-1 #include <> #include <> int main() {float p,r,n; r=; n=10; p=pow(1+r,n); printf("p=%f\n",p); return 0;

《C语言程序设计教程》习题参考答案

《C语言程序设计教程》习题参考答案 祝胜林主编 华南理工大学出版社 【习题1】 (1) 【习题2】 (2) 【习题3】 (3) 【习题4】 (5) 【习题5】 (8) 【习题6】 (11) 【习题7】 (14) 【习题8】 (16) 【习题9】 (16) 【习题10】 (18)

一、简答题(在课本中寻找答案,略) 1.1C程序的基本结构包括哪些内容? 1.2如何定义标识符? 1.3输入格式、输出格式的组成包括哪些内容? 1.4C语言函数分为哪两类? 1.5计算表达式的值应该考虑哪些方面? 1.6上机调试程序的步骤如何? 二、判断并改错 1.7C程序执行的入口是main()函数,所以main函数必须放在程序的开头。 错误:main函数可以放在程序的任何位置。并不限定在程序的开头。 1.8定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。 错误:不可以交叉出现,数据说明部分在执行语句部分的前面。 1.9编辑与编译不是一回事。 错误:不是一回事。编辑完成源程序的输入和修改;编译是对源程序进行语法检查,如果无语法错误,则生成目标程序。 1.10scanf("%d,%d",&x,&y);的正确输入格式:3,4<回车>。 正确 1.11注释内容太多会影响程序的执行效率。 错误:不会影响程序的执行效率。因为在编译时,编译系统将注释内容删除或用空格代替,所以注释内容不会编译到目标程序中。 1.12所有的数学公式可以直接出现在源程序中。 错误:数学公式需要转换成C语言能够接受的公式才能出现在源程序中。 三、编程题 1.13在屏幕上输出自己名字的拼音。 提示:中文名字叫?张三?,对应的拼音为?Zhang San?,输出用printf()函数。 1.14 输入圆的半径,求圆的周长,并将结果保留两位小数输出到屏幕上。 提示:定义圆的半径r,圆的周长:2*3.14*r,输出结果保留2位小数可以用%.2f 1.15输入两个整数,输出其中最大者。 提示:模仿例1.3 1.16 输入三个整数,输出其中最小者。 提示: min(min(a,b),c);

相关文档
最新文档