C程序设计习题参考答案
习 题 一
1. 填空题
计算机程序设计语言按其发展可分为三类,即 机器语言 、汇编语言和 高级语言 。
C程序是由 函数 构成的,一个C程序中至少包含 1个main函数。因此, 函数是C程序的基本单位。
C程序注释是由 /* 和 */ 所界定的文字信息组成的。
函数体一般包括 函数首行 和c语言中逗号表达式的用法 函数体 。
在任何C程序中都必须且只能有一个主函数, 主函数名必须为 main 。
2. 判断下列各个叙述的正确与否
C程序的执行总是从该程序的main函数开始,在main函数最后结束【√】
C程序的注释部分可以出现在程序中任何位置,它对程序的编译和运行不起任何作用,但可以增加程序的可读性【√】
由“/*”与“*/”界定的注释必须在同一行【╳】
通过了编译、连接的程序就是正确的程序【╳】
有计算结果输出的程序一定是正确的程序【╳】
编译错误是语法错误,运行结果错误是逻辑错误【√】
编译时在信息窗口出现包含“error”的信息,说明程序存在警告性错误【╳】
源程序每次修改后,都必须重新编译、连接【√】
3. 简答题
算法的含义、特点是什么?
解答:算法是解题方法的精确描述。有穷性、确定性、有多或零个输入、有1或多个输出、有效性。
写出一个C程序的基本结构。
由编译预处理命令、注释、1个main和若干个自定义函数构成,函数格式如下:
函数类型 函数名(类型标识符 形参,类型标识符 形参,...)
{ 类型声明语句; 执行语句部分; }
写出在你使用的计算机系统上,进入C环境以及运行、调试程序的简要步骤。
输入x后计算其正弦值的源程序如下。编译信息是否表示有致命性错误?应如何修改?
解答:致命性错误为第6行函数sin未声明,应加入编译预处理命令 #include <math.h>
4. 编程题
请上机调试、运行本章课本上C语言程序例题4~6(注释部分可以不必输)
仿照例6编程,输入两个变量后,输出其中较大的值。
#include <stdio.h>
void main()
{ int a, b;
printf("请输入A,B的值:\n");
scanf("%d%d",&a,&b) ;
if(a>b) printf("%d\n",a); else printf("%d\n",b);
}
仿照例题编程,输入圆柱体的半径和高,计算并输出圆柱体的体积。
#include <stdio.h>
void main()
{ float r, h, v;
printf("请输入半径、高的值:\n");
scanf("%f%f",&r,&h);
v=r*r*3.141593*h;
printf("%f\n",v);
}
习 题 二
1. 将下列程序上机运行,写出你所使用的C语言处理系统中short、int以及long类型数据的字长和数值范围。
#include <stdio.h>
void main()
{ printf("short类型数据的字长为:%d\n",sizeof(short));
printf("int类型数据的字长为:%d\n",sizeof(int));
printf("long类型数据的字长为:%d\n",sizeof(long));
}
解答:VC++环境下,分别为2、4、4
2. 仿照题1编程,测试float、double类型数据的字长。
#include <stdio.h>
void main()
{ printf("float类型数据的字长为:%d\n",sizeof(float));
printf("double类型数据的字长为:%d\n",sizeof(double));
}
3. 判断下列各个叙述的正确与否。
C的long类型数据可以表示任何整数【╳】
任何变量都必须要声明其类型【√】
C的任何类型数据在计算机内都是以二进制形式存储的【√】
scanf函数中的格式符“%d”不能用于输入实型数据【√】
格式符中指定宽度时,从缓冲区中读入的字符数完全取决于所指定的宽度【√】
按格式符“%d”输出float类型变量时,截断小数位取整后输出【╳】
按格式符“%6.3f”输出i(i=123.45)时,输出结果为 23.450【╳】
scanf函数中的格式符“%f”能用于输入double类型数据【╳】
4. 指出下列各项中那些是C的常量,对合法的C常量请同时指出其类型。
10,150 007 -0x3d π 1e0 e1 o7o8
'x' 'xo' 1.52e0.5 sin(3) 0xf16 "X" '\007'
1.414E+2 2.54 '\\' 'a'
解:007整型,-0x3d整型,1e0实型,'x'字符型,0xf16整型,"X"字符串
'\007'字符型,1.414E+2实型,2.54实型,'\\'字符型,'a'字符型
5. 指出下列各项中那些是C的标识符(可作变量名)。
x_1 X_2 High printf β 3DS i/j
e2 -e2 count Int number $23 next_
解:x_1、X_2、High、e2、count、Int、number、next_
6. 根据条件,写出下列各题的输出结果。
int i=234,j=567; 函数printf("%d%d\n",i,j) 的输出结果是 234567 。
int i=234; float x=-513.624;
函数printf("i=%5d x=%7.4f\n",i,x) 的输出结果是 i= 234 x=-513.6240 。
float alfa=60,pi=3.1415926535626; 函数printf("sin(%3.0f*%f/180)\n",alfa,pi)
的输出结果是 sin( 60*3.141592/180) 。
char ch='$',float x=153.45;
函数printf("%c%-8.2f\\n",ch,x) 的输出结果是 $153.45 \n 。
int d=27; 函数printf("%-5d,%-5o,%-5x\n",d,d,d)的输出结果是 27 ,34 ,1b。
float x1=13.24,x2=-78.32; 函数printf("x(%d)=%.2f x(%d)=%.2f\n",1,x1,2,x2)
的输出结果是 x(1)=13.24 x(2)=-78.32
7. 根据下列条件写出变量i1(int类型)、c1(char类型)、f1(float类型)、d1(double类型)的当前值。
执行scanf("%d%c%f%lf",&i1,&c1,&f1,&d1)时输入52$9.17 3.1415926535 后。
i1为52,c1为'$',f1为9.17,d1为3.1415926535
执行scanf("%d$%c%f%lf",&i1,&c1,&f1,&d1)时输入52$9.17 3.1415926535 后。
i1为52,c1为'9',f1为0.17,d1为3.1415926535
8.下列源程序输入x、y后,输出x的y次方。运行时无编译、连接错误,但输入不同格式的两组数据输出结果却不同,哪一组是对的?请说明原因。
解答:第1组输入数据错误,因为格式串中有“,”所以键盘输入数据x、y之间也一定以逗号为间隔符。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论