C程序设计项目教程习题答案.docx
《C程序设计项目教程习题答案.docx》由会员分享,可在线阅读,更多相关《C程序设计项目教程习题答案.docx(26页珍藏版)》请在冰豆网上搜索。
![C程序设计项目教程习题答案.docx](https://file1.bdocx.com/fileroot1/2022-10/25/6385f4c6-9335-491a-880b-12fa7a8ce79a/6385f4c6-9335-491a-880b-12fa7a8ce79a1.gif)
项目六函数
项目一
项目考核
一、选择题
1—6:
ACCCDC
二、简答题
1.机器语言、汇编语言、高级语言各有什么特点?
①机器语言
机器语言是以二进制代码(0和1)表示机器指令的一种语言,用机器语言编写的程序能被计算机直接执行。
但使用机器语言编写程序非常繁琐,程序代码很难读懂且不通用。
②汇编语言
汇编语言用易懂的符号代替二进制代码,使得编程技术前进了一大步。
计算机并不能直接执行,需要借助汇编编译器将它翻译成二进制机器代码。
③高级语言
高级语言屏蔽了机器的细节,更接近于自然语言和数学语言,给编程带来了极大的方便,如FORTRAN、BASIC、C、C++、Java、C#等。
2.简述执行C语言程序的基本过程。
C语言程序都采用编译方式运行,一般分为编辑、编译、连接和运行过程。
高级语言
源程序
编译
机器语言
目标程序
连接
可执行
程序
运行
运行
结果
编译程序
连接程序
(.obj)
(.exe)
①编写源代码
使用C语言编写实现特定功能的程序代码,源代码必须遵循C语言的规范。
②编译
编译阶段是将我们编写的源代码翻译为计算机能够理解的二进制目标代码。
③连接
连接过程便是将目标文件与函数合并成完整的可执行文件,即生成.exe文件,这样程序就可以在计算机上直接运行了。
④运行
即执行连接成功后得到的可执行程序。
3.简述C程序的基本结构。
①C语言程序由函数构成
②程序中包含对库函数的引用
③程序有良好的编码格式
④编写程序注释
⑤友好的人机交互提示
4.简述调试C程序的基本步骤。
第一步设置断点
单击工具栏按钮即可添加断点,此时该行前端将出现一个断点标志。
第二步开始调试程序
打开“组建”下拉菜单,执行“开始调试”→“GO”命令(或直接按【F5】键),程序会进入调试模式,并且会在断点处暂停。
第三步单步运行
不断按【F10】键,程序会一步一步地向前执行。
项目实训
略
项目二
项目考核
一、选择题
1—12:
DAAABBDCABAC
二、简答题
1.在程序中定义数据类型的目的是什么?
C语言提供了哪些基本数据类型?
答:
为了在程序中存储不同类型的数据,并节省空间。
C语言提供了以下数据类型:
数据类型
基本类型
构造类型
整型
短整型
长整型
整型
双长整型
浮点型
字符型
布尔型
空类型
单精度
双精度
长双精度
枚举类型、
数组类型、
结构体类型、
共同体类型、
指针类型、
函数类型
2.常量和变量有何区别?
字符常量和字符串常量有何区别?
答:
常量是指在程序执行过程中值保持不变的量,变量是指在程序运行过程中值可以改变的量,每个变量都必须在声明时明确定义其数据类型,并且需要用标识符标识。
字符串常量与字符常量有所不同。
字符型常量在内存中只占一个字节;字符串是按照串中字符的排列顺序存放的,每一个字符占一个字节,并在末尾添加“\0”作为字符串结尾标志或结束标志。
3.在C语言中如何表示不同进制的整数?
答:
①十进制整型常量:
由正、负号和数字0~9组成,但数字部分不能以0开头,如12、-7、0等。
②八进制整型常量:
由正、负号和数字0~7组成,数字部分以0开头,如-0408、07761等。
③十六进制整型常量:
由正、负号,数字0~9和字母A~F(或a~f)组成,数字部分以0X或0x开头,A~F(或a~f)分别表示数值10~15,如0XFFFF、-0x2D等。
4.下列标识符中哪些是合法的?
并指出系统自定义的标识符
p2aa#t3_hitint
答:
合法标识符:
t3_hitint(为系统自定义标识符)
5.写出下面程序的输出结果
#include
voidmain()
{
inti,j,m,n;
i=5;
j=10;
m=++i;
n=j++;
printf("i=%d,j=%d,m=%d,n=%d\n",i,j,m,n);
}
结果为
i=6,j=11,m=6,n=10
项目实训
#include"stdio.h"
voidmain()
{
intnum,i;
charname[10]; //字符串用数组方式存储,下同
intage;
intbase_salary;
floatratio,salary,yj,sum_age,sum_salary;
sum_age=sum_salary=0;
printf("**********************************\n");
printf("输入与输出职工工资信息\n");
printf("**********************************\n");
for(i=0;i<3;i++)
{
//输入并存储职工工资信息
printf("\n\n");
printf("请输入员工编号:
\n");
scanf("%d",&num);
printf("请输入姓名:
\n");
scanf("%s",&name);
printf("请输入年龄:
\n");
scanf("%d",&age);
fflush(stdin); //清空缓存
printf("请输入基本工资:
\n");
scanf("%d",&base_salary);
printf("请输入级别系数:
\n");
scanf("%f",&ratio);
printf("请输入销售额:
\n");
scanf("%f",&yj);
//计算每个人工资总额
salary=base_salary+yj*0.01*ratio;
//输出职工工资信息
printf("\n\n下面输出职工工资信息\n");
printf("员工编号:
%d\n",num);
printf("姓名:
%s\n",name);
printf("年龄:
%d\n",age);
printf("工资总额为:
%f\n",salary);
sum_age=age+sum_age;
sum_salary=salary+sum_salary;
}
printf("\n\n");
printf("平均年龄为:
%f\n",sum_age/3);
printf("平均工资为:
%f\n",sum_salary/3);
}
项目三
项目考核
一、选择题
1-2AA
二、简答题
1.将任务一【例3-2】的算法用流程图表示出来。
2.计算的值,设计算法并尝试写出程序进行调试。
自然语言描述如下:
S1:
sigh=1
S2:
sum=1
S3:
deno=2
S4:
sigh=(-1)×sigh
S5:
term=sigh×(1/deno)
S6:
sum=sum+term
S7:
deno=deno+1
S8:
若deno≤100,返回S4;否则,结束。
流程图描述如下:
输出sum的值
开始
deno≤100?
sigh=(-1)×sigh
term=sigh×(1/deno)
sum=sum+term
deno=deno+1
初始化变量
sigh=1,sum=1,deno=2
结束
参考程序代码如下:
#include"stdio.h"
voidmain()
{
intsigh,deno;
longdoublesum,term;
sigh=1;
deno=2;
term=sum=0;
for(;deno<=100;deno++)
{
sigh=(-1)*sigh;
term=sigh*(1/deno);
sum=sum+term;
}
printf("表达式的值为:
%.20lf",sum);
}
N
Y
项目实训
#include
intmain()
{
intsushu(intx);
intn;
printf("请输入一个大于1的整数:
\n");
scanf("%d",&n);
sushu(n);
return0;
}
intsushu(intx)
{
inti;
for(i=2;i if(x%i==0)
break;
if(i==x)
printf("是素数\n");
else
printf("不是素数\n");
return0;
}
程序运行结果
项目四
项目考核
一、选择题
1-5DBCCC
二、简答题
1.简述逻辑运算符与条件运算符的使用方法。
逻辑运算符的使用方法
表4-2逻辑运算符及其用法
逻辑运算符
名称
说明
示例
结果
!
逻辑非
一元运算符,真变假,假变真
!
6<5
1
&&
逻辑与
两操作数同真结果为真,否则为假。
但当左操作数为假时,其结果则为假,不再计算右操作数的值
Abc=abc&&8>4
0
||
逻辑或
两操作数同假结果为假,否则为真。
但当左操作数为真,其结果则为真,不再计算右操作数的值
ef=ef||ac=bd
1
条件运算符的使用方法
条件运算符“?
:
”也称三元运算符,它根据布尔型表达式的值返回两个值中的一个,其格式如下:
条件?
第一个表达式:
第二个表达式;
如果条件为true,则计算第一表达式并以它的计算结果为整个条件表达式的值;如果为false,则计算第二表达式并以它的计算结果为整个条件表达式的值。
2.简述C语言中switch语句的特点。
①switch语句中的表达式通常为整型或字符型,配套的常量类型也应该是字符型或整型。
此外,如果常量类型是字符型,一定要用单引号括起来(如'A'),而不能使用双引号("A")。
②每个case后面的常量表达式必须各不相同,否则会出现矛盾,即一个值有多种选择。
③各个case语句和default语句出现的顺序对执行结果没有影响。
④每个分支的语句可以是单条语句,也可以是多条语句,多条语句不用加花括号。
⑤通常情况下,每个分支语句后都要加一个break语句,表示跳出switch语句。
程序在执行完该分支的语句后,如果有break语句,则结束switch语句,否则,继续执行下面的语句,直到遇到break语句或整个switch语句结束。
项目实训
实训一
#include
voidmain()
{
floatweight,price;
printf("请输入您行李的重量!
");
scanf("%f",&weight);
if(weight<0)