C语言程序设计教程(第二版)课后习题答案
第一章 C语言程序设计概述
-习题答案1
 算法的描述有哪些基本方法? 
答 1、自然语言
2、专用工具
 2 C语言程序的基本结构是怎样的?举一个例子说明。
 答
 1、C语言程序由函数构成;
2、“/*”与“*/”之间的内容构成C语言程序的注释部分;
3、用预处理命令#include、#define可以包含有关文件或预定义信息;
4、大小写字母在C语言中是有区别的;
5、除main()函数和标准库函数外,用户也可以自己编写函数,应用程序一般由多个函数组成,这些函数指定实际所需要做的工作。 
3 C语言有什么特点? 
答 1、具有结构语言的特点,程序之间很容易实现段的共享;
2、主要结构成分为函数,函数可以在程序中被定义完成独立的任务,独立地编译代码,以实现程序的模块化;
3、运算符丰富,包含的范围很广;
4、数据类型丰富;
5、允许直接访问物理地址,即可直接对硬件进行损伤,实现汇编语言的大部分功能;
6、限制不太严格,程序设计自由度大,这样使C语言能够减少对程序员的束缚;
7、生成的目标代码质量,程序执行效率高,同时C语言编写的程序的可移植性好。
4
 ★指出合法与不合法的标识符命名。 
 AB12--√ leed_3--  a*b2--×  8stu--×  D.K.Jon--×  EF3_3--√  PAS--√  if--×  XYZ43K2--√  AVE#XY--×  _762--√  #_DT5--×  C.D--× 
5
 说明下列Turbo C热键的功能。 
 F2:源文件存盘  F10:调用主菜单  F4:程序运行到光标所在行(用于调试程序)  Ctrl+F9:编译并链接成可执行文件  Alt+F5:将窗口切换到 DOS 下,查看程序运行结果。
 
6
 说明下列Turbo C方式下输入并运行下列程序,记录下运行结果。
 
 
 ①main()
 {printf("********************\n");
  printf("  welcome you  \n");
  printf("    very good  \n);
  printf("********************\n");
  }
 ②main()
 {  int a,b,c,t;
    printf("please input three numbers;");
    scanf("%d,%d,%d",&a,&b,&c); /*教材S是错误的*/
    t=max(max(a,b),c);
    printf("max number is:%d\n",t);
  }
  int max(int x, int y)
  { int z;
    if(x>y)z=x;
    else z=y;
    return(z);
  }
 
 运行结果:
********************
    welcome you
      very good
********************
 运行结果:
please input three numbers;3,1,4 /*左侧下划线内容为键盘输入*/
max number is:4
 
7
 一个C程序是由若干个函数构成的,其中有且只能有一个___函数。
 
 main()
 
8
 在Turbo C环境下进行程序调试时,可以使用Run下拉菜单的___命令或按___键转到用户屏幕查看程序运行结果。
 
 1、User screen
2、Alt+F5
 
9
 ★C语言对标识符与关键字有些什么规定?
 
 1、标识符用来表示函数、类型及变量的名称,它是由字母、下划线和数字组成,但必须用字母或下划线开头。
2、关键字是一种语言中规定具有特定含义的标识符,其不能作为变量或函数名来使用,用户只能根据系统的规定使用它们。
 
10
 C源程序输入后是如何进行保存的?
 
 是以C为扩展名保存的纯文本文件。
 
 
第二章 C语言程序的基本数据类型与表达式
-习题答案
1
 ★指出下列常数中哪些是符合C语法规定的。
 
 '\'--×  '101'--×  "\"--×  e3--×  019--√  0x1e--√ 
"ab\n"--√  1.e5--×  (2+3)e(4-2)--×  5.2e2.5--×
 
2
 请出下列程序中的错误,改正后写出程序运行结果。
 
 
 ①void main()
 {int x,y=z=5,aver;
  x=7
  AVER=(x+y+z)/3
  printf("AVER=%d\n",aver);
  }
 ②void main()
 {  char c1='a';c2='b';c3='c';
    int a=3.5,b='A'
    printf("a=%db=\'\"end\n",a,b);
    printf("a%cb%c\bc%c\tabc\n",c1,c2,c3);
  }
 
  main()
 {int x,y=5,z=5,aver;
  x=7;
  aver=(x+y+z)/3;
  printf("AVER=%d\n",aver);
  }
运行结果:AVER=5
 ②main()
 {  char c1='a', c2='b', c3='c';
    int a=3,b='A';
    printf("a=%d,b=\'%c\'\"end\"\n",a,b);
    printf("a%cb%c\bc%c\tabc\n",c1,c2,c3);
  }
运行结果:a=3,b='A'"end"
     aabcc        abc
 
3
 写出下列赋值的结果,表格中写了数值的是要将它赋给其他类型的变量,将所有的空格填上赋值后的数据(实数保留到小数点后两位)。
int
 99
 
 
 
 
 -1
 
char
 
 'h'
 
 
 
 
 
unsigned int
 
 
 66
 
 
 
 
float
 
 
 
 55.78
 
 
 
long int
 
 
 
 
 68
 
 
 
 int
 99
 104
 66
 55
 68
 -1
 
char
 'c'
 'h'
 'B'
 '7'
 'D'
 
 
unsigned int
 99
 104
 66
 55
 68
 65535
汇编语言大小写字母转换 
float
 99.00
 104.00
 66.00
 55.78
 68.00
 -1.00
 
long int
 99
 104
 66
 55
 68
 -1
 
 
4
 ★写出程序运行结果。
 
 
 ①void main()
 {int i,j;
  i=8,j=10;
  printf("%d,%d,%d,%d\n",i,j,++i,j++);
  }
 ②main()
 {  int a=1,b=2,c=30;;
    printf("%d,%d,%d,%d\n",a=b=c,a=b==c,a==(b=c),a==(b==c));
  }
注意:a=b=c,a=b==c之间应为逗号,教材有误
 
 运行结果:
9,11,9,10
 运行结果:
30,1,0,0
 
 
 ③void main()
 {int a=10,b=20,c=30,d;
  d=++a<=10||b-->=20||c++;
  printf("%d,%d,%d,%d\n",a,b,c,d);
  }
 
 
 运行结果:
11,19,30,1
 
 
5
 ★写出下面表达式的值(设a=10,b=4,c=5,d=1,x=2.5,y=3.5)。
⑴a%=(b%=3)
⑵n++,a+=a-=a*=a
⑶(float)(a+c)/2+(int)x%(int)y
⑷a*=b+c
⑸++a-c+b++
⑹++a-c+++b
⑺a<b?x:'A'
⑻b++==c
⑼a+b,18+(b=4)*3,(a/b,a%b)
⑽x+a%3*(int)(x+y)%2/4+sizeof(int)
⑾a<b?a:c<d?c:d
⑿b++==c
⒀a*=b=c=2
⒁a=b==c
 
 ⑴0 ⑵0 ⑶9.500000 ⑷90 ⑸10 ⑹10 ⑺'A' ⑻2 ⑼4.5 ⑽1 ⑾0 ⑿20 ⒀0

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。