新编C语言程序设计教程
习题及实验题部分答案
第1章 C 语言概述
1 习题
一、选择题
ADCDB CCBBA
二、简答题
1、什么是语言?语言分几类?各有什么特点?
语言:
语言是思维的载体。人和计算机打交道,必须要解决一个“语言”沟通的问题。如今人与计算机之间有许多种类的“语言”的。
语言分类:
机器二进制语言、汇编语言(低级)和高级语言(第三代、第四代、……)
各自特点:
1)机器二进制语言:用0、1两个数字编写的计算机能直接运行的程序的语言,机器语言执行效率高,但难编写、难懂、难移植。
2)汇编语言(低级):汇编语言的特点是使用一些“助记符号”来替代那些难懂难记的二进制代码,所以汇编语言相对于机器指令便于理解和记忆,但它和机器语言的指令基本上是一一对应,两者都是针对特定的计算机硬件系统的,可移植性差,因此称它们都是“面向机器的低级语言”。
3)高级语言:高级语言类似自然语言(主要是英语),由专门的符号根据词汇规则构成单词,由单词根据句法规则构成语句,每种语句有确切的语义并能由计算机解释。高级语言包含许多英语单词,有“自然化”的特点;高级语言书写计算式子接近于熟知的数学公式的规则。高级语言与机器指令完全分离,具有通用性,一条高级语言语句常常相当于几条或几十条机器指令。
2、汇编语言与高级语言有何区别?
高级语言程序要比汇编语言要易懂、明了、简短得多;高级语言与机器指令完全分离,具有通用性,一条高级语言语句常常相当于几条或几十条机汇编语言指令;高级语言要经过解释或编译来执行的,而汇
编语言程序通过汇编程序来生成机器程序来执行的。
3、什么是程序?
完成某一特定任务的一组指令序列,或者说,为实现某一算法的指令序列称为“程序”。不同计算机语言有不同的计算机程序。
4、C语言中为何要加注释语句?
注释部分,起到说明语句或程序的作用。程序中应添加必要的注释,来增强程序的阅读与理解。注释用来向用户提示或解释程序的意义。
在调试程序中对暂不使用的语句也可用注释符标注起来,使翻译跳过这些不作处理,待调试结束后再按需去掉注释符。为此,注释也有调试的辅助作用。
5、说说C语言程序的组成?C语言程序包括由哪些部分?一个C语言函数一般又由哪几部分组成的?
C语言程序的组成:
一个C语言源程序可以由一个或多个源程序文件组成。
C语言程序的组成部分:
1.一个C语言源程序可以由一个或多个源文件组成;
2.每个源文件可由一个或多个函数组成;
3.一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数;
4.源程序中可以有预处理命令(include 命令仅为其中的一种),预处理命令通常应放在源文件或源程序的最前面;
5.每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“}”之后不能加分号;
6.标识符,关键字之间必须至少加一个空格以示间隔。
C语言函数:
一个C语言函数通常由函数首部(如int max(int a,int b))、函数体组成。函数体一般又由局部变量定义与函数声明等组成的定义与声明部分、程序执行语句等组成的执行部分这两部分组成的(如min函数所示)。
第2章结构化程序设计与算法
2 习题
一、选择题
BCDCD CBCAD
二、简答题
1、什么是算法?算法的特点是什么?
什么是算法:
算法就是解决某个问题或处理某件事的方法和步骤,在这里所讲的算法是专指用计算机解决某一问题的方法和步骤。
算法的特点:
1)有穷性
人们编制算法的目的就是要解决问题,若该算法无法在一个有限合理的时间内完成问题的求解,那么算法也就失去了其原有的目的,人们就会摒弃它。而且人们研究算法,其目的还在于它的高效率,即解决同一个问题的两个算法,人们往往选择其中那个运行效率高的。
2)确定性
所谓算法的确定性是指算法的每一个步骤都应该确切无误,没有歧义性。
3)有零个或多个输入
执行算法时,有时需要外界提供某些数据,帮助算法的执行。一个算法可以没有输入,也可以有多个输入。例如,求解N!,该算法就需要输入一个数据N;而求解两数之和,该算法就需要输入两个数据
4)有一个或多个输出
算法的目的是求解,解就是结果,就是输出,否则就毫无意义。
5)有效性
算法中的每一步都应该能有效地执行、可以实现,执行算法最后应该能得到确定的结果。
2、结构化程序设计的三种基本结构是什么?其共同特点是什么?
结构化程序设计的三种基本结构:顺序、选择、循环三种基本控制结构
其共同特点:1)只有单一的入口和单一的出口;2)结构中的每个部分都有执行到的可能;3)结构内不存在永不终止的死循环。
3、尝试用自然语言、流程图、N-S流程图或伪代码写出下面问题的求解算法。
1)根据三边,求三角形的周长和面积
2)判断用户输入的一个整数是奇数还是偶数
3)求解一元二次方程ax2+bx+c=0根
4)出10个数据的最大数
5)将20个考生成绩中不及格者的分数打印出来
6)求S=1+2+3+4+……+100
解:略
实验2 熟悉VC++ 6.0环境及算法
二、实验内容
1、改错题
#include <stdio.h>
()c语言是啥main()
{
i nt x=2,y=3,a;
a=x-y;
printf("a=%d",a);
printf("\n"); /* 换行 */
}
2、程序填空题
#include <stdio.h>
main()
{
int a,b,m;
printf("Input a,b please!\n");
scanf("%d%d",&a,&b);
m=a*b; /*赋值语句,将a和b之积值赋给m*/
printf("a*b=%d\n",m); /*输出a和b积的结果值并换行 */
}
3、设计与表示算法
判断一个数n能否同时被3和5整除。
1)用伪代码表示
begin (算法开始)
input n
if (n/3*3)=n
{
if (n/5*5)=n
{
print “数n能同时被3和5整除”
}
}
end (算法结束)
2)用N-S图表示
3
4
1
2
并换行 */
}
第3章数据类型及其运算
3 习题
一、选择题
BADCD DCBCA
二、阅读程序,给出运行结果
1、7,8,10
2、1,3
3、
4、4
61
57
9
112
三、编程题
1. (sin(sqrt(x*x)))/(a*b)
2. 5.5
3. 3 3
4. 3
5. #include <stdio.h>
void main()
{
char c;
c = getchar();
printf("%c\n",c);
printf("%d\n",c);
}
6. #include <stdio.h>
int main()
{
float C,F;
printf("请输入一个华氏温度:");
scanf("%f",&F);
C = (5.0/9)*(F-32);
printf("摄氏温度C=%5.2f\n",C);
return 0;
}
7. #include <stdio.h>
#include <math.h>
int main()
{
float a;
a = exp(3.1415926);
printf("%f\n",a);
return 0;
}
实验3 数据类型及其运算
二、实验内容
1.改错题
#include <stdio.h>
main()
{
int x,y;
printf("请输入两个整数\n");
scanf("%d%d",&x,&y);
printf("互换前的x:%d y:%d\n",x,y);
x=x+y;
y=x-y;
x=x-y;
printf("互换前的x:%d y:%d\n",x,y);
}
2. 程序填空题
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论