C语言程序设计习题参考答案
习 题 1
一、判断题
1.在计算机中,小数点和正负号都有专用部件来保存和表示。 2.二进制是由0和1两个数字组成的进制方式。
3.二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系。 4.在整数的二进制表示方法中,0的原码、反码都有两种形式。 5.有符号数有三种表示法:原码、反码和补码。
6.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、大写英文字母、小写英文字母。
解:1.F 2.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. ˉ =1000 Y5.下列叙述中正确的是( )。
A.高级语言就是机器语言
B.汇编语言程序、高级语言程序都是计算机程序,但只有机器语言程序才是计算
机可以直接识别并执行的程序
C.C语言因为具有汇编语言的一些特性,所以是汇编语言的一种
D.C源程序经过编译、连接,若正确,执行后就能得到正确的运行结果 6.用C语言编写的源程序经过编译后,若没有产生编译错误,则系统将( )。
A.生成可执行文件 B.生成目标文件 C.输出运行结果 D.自动保存源文件 7.下列叙述中不正确的是( )。
A.main函数在C程序中必须有且只有一个
B. C程序的执行从main函数开始,所以main函数必须放在程序最前面 C. 函数可以带参数,也可以不带参数。
D. 每个函数执行时,按函数体中语句的先后次序,依次执行每条语句
解:1.C 2.C 3.D 4.B 5.B 6.B 7.B 三、填空题
1.(87.625)10=( )2=( )8=( )16 2.(1001010111001.10111)2=( )8=( )16=( )10 3.输入三个数,计算并输出三个数的和与三个数的乘积。 程序如下:
#include 
int a,b,c,s,z;
printf(\
s=a+b+c; printf(\ } *4. 输入三角形三条边的边长,计算并输出三角形的面积。 根据三条边的边长,计算三角形面积的公式如下:
x?y?z??面积?s(s?x)(s?y)(s?z) ?其中s?? 2??程序如下:
     #include 
double x,y,z,s,dime; scanf(\
dime=sqrt(s*(s-x)*(s-y)*(s-z)); } 解:1.1010111.101 127.5 57.A
2.11271.56 12B9.B8 4793.71875
3.scanf(\ z=a*b*c; printf(\4.s=(x+y+2)/2; printf(\ 四、编程题
1.仿照例1.1,编程序在屏幕上显示:
***************************** Merry Christmas! Happy New Year!
*****************************   解:#include 
{ printf(\ printf(\
1
printf(\
printf(\ }
2.仿照例1.2编程,输入一个整数,计算这个数的平方。  解:#include
printf(\请输入一个整数:\\n\ scanf(\
z=a*a;
printf(\
}
*3.仿照例1.3编程,输入两个数后,输出其中较小值。 解:#include
    float min(float x, float y)        {  float m;               if (x        return  m;           }      void main()      {  float a,b,c,mindata;       printf(\请输入二个数:\\n\    scanf(\         mindata=min(a,b);                  printf(\较小数:%f\\n\      }  *4.仿照例1.2编程,输入a、b后,输出一元一次方程ax+b=0的解。 解:#include     {   float a,b,x;        printf(\请输入a、b:\\n\       scanf(\        x=-a/b;               printf(\     }  *5.仿照例1.2编程,输入圆柱体的半径和高,计算并输出圆柱体的体积。 解:#include      {   float r,h,s,v;          printf(\        scanf(\        v=3.14*r*r*h;          printf(\ 2       }  习 题2  一、判断题  1.任何变量都必须要定义其类型。  2.C语言的double类型数据在其数值范围内可以表示任何实数。 3.C语言的任何类型数据在计算机内都是以二进制形式存储的。 4.isdigit(?5?)的结果为0。  5.printf函数中格式符“%c”对应的参数只能是字符类型。  6.按格式符“%d”输出float类型变量时,截断小数位取整后输出。 7.在C语言程序中,ABC与abc是两个相同的变量。 8.scanf函数中的格式符“%d”不能用于输入实型数据。 9.格式符“%f”不能用于输入double类型数据。  10.当格式符中指定宽度时,输出的信息完全取决于所指定的宽度。 解:(1)T  (2)F  (3)T  (4)F  (5)F  (6)F  (7)F  (8)T  (9)T   (10)F 二、指出下列各项中哪些是C语言中的常量,并指出其类型  10,150      007      –0x3d       π       1e0       e1       o7o8 ?x?         ?xo?      1.52e0.5     sin(3)     0xf16    ?\\a?       ?\\009? 1.414E+2    2.54      ?\\\\?         ?a?+2     0x100h    0128      10L 解:合法的C常量有:        整型常量:  007      –0x3d       0xf16    10L       实型常量:  1e0      1.414E+2        字符型常量:?x?       ?\\a?       ?\\\\? 三、指出下列各项中哪些是C语言中的用户标识符  x_1       X_2      High      printf      β         3DS       i/j e2        -e2      count      Int        number     $23       next_ sizeof     IF        sum_12    _123#      NO1:      double     for  解:C的用户标识符有:x_1     X_2    High    e2    count    Int    number     next_     IF     sum_12     四、单项选择题  1.C语言中,char型数据在内存中的存储形式是(  )。 A.原码      B.反码    C.补码   D.ASCII码 2.若有定义语句“char c='\\72';”则变量c(  )。  A.包含1个字符 B.包含2个字符  C.包含3个字符 D.定义不合法 3.C语言中的基本数据类型包括(  )。 A.整型、实型、逻辑型   B.整型、实型、字符型 C.整型、逻辑型、字符型   D.整型、实型、逻辑型、字符型 4.设c1、c2为字符型变量,执行语句“c1=getchar( );c2=getchar( );”时,从键盘输入A↙,c1和c2的值分别为(  )。  A.都是‘A’     B.c1是‘A’,c2未输入  3  C.c1未输入,c2是‘A’   D.c1是‘A’,c2是‘\\n’ 5.a、b是整型变量,执行语句“scanf(\,b=%d\,&a,&b);”,使a和b的值分别为1和2,正确的输入是(  )。  A.1 2  B.1,2   C.a=1,b=2  D.a=1 b=2 6.设c为字符型变量值为‘A’,a为整型变量值为97,执行语句“putchar(c);putchar(a);”后,输出结果为(  )。  A.Aa  B.A97   C.A9   D.aA  7.已知字母A的ASCII码值为65,以下语句段的输出结果是(  )。  char c1='A',c2='Y'; printf(\A.输出格式非法,输出错误信息 B.65,90 C.A,Y       D.65,89  8.若要使用输入语句“scanf(\,&i,&j,&x);”,为i输入-10,为j输入12,为x输入345.67,则正确的输入形式是(  )。  A.–1012345.67↙     B.–10 12 345.67↙ C.–10001200345.67↙    D.–10,12,345.67↙ 9.能正确地定义符号常量的是(  )。  A.#define n=10 B.#define n 10   C.#define n 10; D.#DEFINE N 10 10.在C语言中,int、char、short三种类型数据在内存中所占的字节数(  )。 A.由用户自己定义  B.均为2个字节  C.是任意的  D.由机器字长决定    解:(1) D  (2) A  (3) B  (4) D  (5) C  (6) A  (7) D  (8) B  (9) B  (10) D 五、填空题  1.char ch='$';float x=153.4523; 语句“printf(\–8.2f\\\\n\;”的输出结果是              。   解:$153.45  \\n  2.int i=123;float x= – 1234.56789; 语句“printf(\ x=%7.3f\\n\;”的输出结果是              。   解:i=  123  x=-1234.568  3.char c='a';int a=65;    语句“putchar(c+1);putchar(a);”的输出结果是              。   解:bA  4.int a=98;     语句“printf(“%d,%c,%o,%x”,a,a+1,a+2,a+3);”的输出结果是              。   解:98,c,144,65  5.int k; float f;  语句“scanf(“=%*4do”,&k,&f);”执行时输入  12345678765.43↙ 则 k=               ,f=              。   解:k=123      f=8765.4  6.使用pow()函数时,程序的开头必须写一条预处理命令:              。   解:#include   (1)int i=123,j=45;   函数printf(\的输出结果是            。   解:123,45  4