C程序设计项目教程习题答案
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
答:
常量是指在程序执行过程中值保持不变的量,变量是指在程序运行过程中值可以改变的量,每个变量都必须在声明时明确定义其数据类型,并且需要用标识符标识。
字符串常量与字符常量有所不同。字符型常量在内存中只占一个字节;字符串是按照串中字符的排列顺序存放的,每一个字符占一个字节,并在末尾添加“\0”作为字符串结尾标志或结束标志。
void main()
{
char c;
int n=0;
printf("请输入一行字符:");
do
{
scanf("%c",&c);
if(c>='A'&&c<='Z' || c>='a' && c<='z')
{
n++;
}
}while(c!='\n');
printf("该行英文字母的个数为:%d\n",n);
项目实训
实训一
#include<stdio.h>
void main()
{
float weight, price;
printf("请输入您行李的重量!");
scanf("%f",&weight);
if (weight<0)
{
printf("您输入的数据有误!");
}
else if (weight<=20)
不断按【F10】键,程序会一步一步地向前执行。
项目实训
略
项目二
项目考核
一、选择题
1—12:DAAAB BDCAB AC
二、简答题
1.在程序中定义数据类型的目的是什么?C语言提供了哪些基本数据类型?
答:
为了在程序中存储不同类型的数据,并节省空间。
C语言提供了以下数据类型:
2.常量和变量有何区别?字符常量和字符串常量有何区别?
break语句用于终止当前循环的执行,直接执行当前循环语句的下一语句。当循环有多层时,break语句只能跳出本层循环,外层循环仍会继续。
continue语句只能用于循环语句内部,用于结束本次循环,即跳过本次循环体中余下的尚未执行的语句,再一次进行循环条件判断,以便执行下一次循环。
项目实训
实训一
#include <stdio.h>
scanf("%d",&n);
sushu(n);
return 0;
}
int sushu(int x)
{
int i;
for(i=2;i<x;i++)
if(x%i==0)
break;
if(i==x)
printf("是素数\n");
else
printf("不是素数\n");
return 0;
}
程序运行结果
项目一
项目考核
一、选择题
1—6:ACCCD C
二、简答题
1.机器语言、汇编语言、高级语言各有什么特点?
①机器语言
机器语言是以二进制代码(0和1)表示机器指令的一种语言,用机器语言编写的程序能被计算机直接执行。但使用机器语言编写程序非常繁琐,程序代码很难读懂且不通用。
②汇编语言
汇编语言用易懂的符号代替二进制代码,使得编程技术前进了一大步。计算机并不能直接执行,需要借助汇编编译器将它翻译成二进制机器代码。
4.下列标识符中哪些是合法的?并指出系统自定义的标识符
2a a# t3 _hit int
答:合法标识符:t3 _hit int(为系统自定义标识符)
5.写出下面程序的输出结果
#include <stdio.h>
void main()
{
int i,j,m,n;
i=5;
j=10;
m=++i;
n=j++;
}
}
实训二
#include<stdio.h>
void main()
{
float sales, bonus;
printf("请输入您的销售额!");
scanf("%f",&sales);
bonus = sales >= 15000 ? sales * 0.1 :
sales >= 10000 ? sales * 0.08 :
Abc = abc && 8 > 4
0
||
逻辑或
两操作数同假结果为假,否则为真。但当左操作数为真,其结果则为真,不再计算右操作数的值
ef = ef ||ac = bd
1
条件运算符的使用方法
条件运算符“?:”也称三元运算符,它根据布尔型表达式的值返回两个值中的一个,其格式如下:
条件?第一个表达式:第二个表达式;
for(i=0;i<3;i++)
{
//输入并存储职工工资信息
printf("\n\n");
printf("请输入员工编号:\n");
scanf("%d", &num);
printf("请输入姓名:\n");
scanf("%s", &name);
printf("请输入年龄:\n");
scanf("%d", &age);
②编译
编译阶段是将我们编写的源代码翻译为计算机能够理解的二进制目标代码。
③连接
连接过程便是将目标文件与函数合并成完整的可执行文件,即生成.exe文件,这样程序就可以在计算机上直接运行了。
④运行
即执行连接成功后得到的可执行程序。
3.简述C程序的基本结构。
①C语言程序由函数构成
②程序中包含对库函数的引用
③程序有良好的编码格式
④编写程序注释
⑤友好的人机交互提示
4.简述调试C程序的基本步骤。
第一步设置断点
单击工具栏按钮 即可添加断点,此时该行前端将出现一个断点标志 。
第二步开始调试程序
打开“组建”下拉菜单,执行“开始调试”→“GO”命令(或直接按【F5】键),程序会进入调试模式,并且会在断点处暂停。
第三步单步运行
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);
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"
void main()
{
int num,i;
char name[10] ;//字符串用数组方式存储,下同
int age;
fflush(stdin);//清空缓存
printf("请输入基本工资:\n");
scanf("%d", &base_salary);
printf("请输入级别系数:\n");
scanf("%f", &ratio);
printf("请输入销售额:\n");
scanf("%f", &yj);
//计算每个人工资总额
sum_age=age+sum_age;
sum_salary=salary+sum_salary;
}
printf(Βιβλιοθήκη Baidu\n\n");
printf("平均年龄为:%f\n",sum_age/3);
printf("平均工资为:%f\n",sum_salary/3);
}
项目三
项目考核
一、选择题
1-2 A A
{
sigh=(-1)*sigh;
term= sigh*(1/deno);
sum=sum+term;
}
printf("表达式的值为:%.20lf",sum);
}
#include<stdio.h>
int main()
{
int sushu(int x);
int n;
printf("请输入一个大于1的整数:\n");
{
printf("您可以免费托运行李!");
}
else if (weight<=30)
{
price = (weight-20) * 30;
printf("您的托运费用为%f元!",price);
}
else if (weight<=40)
{
price = (30 - 20) *30+(weight-30)*40;
如果条件为true,则计算第一表达式并以它的计算结果为整个条件表达式的值;如果为false,则计算第二表达式并以它的计算结果为整个条件表达式的值。
2.简述C语言中switch语句的特点。
①switch语句中的表达式通常为整型或字符型,配套的常量类型也应该是字符型或整型。此外,如果常量类型是字符型,一定要用单引号括起来(如'A'),而不能使用双引号("A")。
sales >= 8000 ? sales * 0.05 :
sales >= 5000 ? sales * 0.03 : 0;
if (sales < 0)
printf("您输入的金额有误!", "奖金");
else
printf("您获得的奖金为:%f元!",bonus );
}
项目五
项目考核
一、选择题
int base_salary;
float ratio,salary,yj,sum_age,sum_salary;
sum_age=sum_salary=0;
printf("**********************************\n");
printf("输入与输出职工工资信息\n");
printf("**********************************\n");
1-5 ABBAA
二、简答题
1.简述for语句的使用方法。
for语句中变量初始化部分只在开始时执行一次,然后判断条件表达式,若为true,则执行代码块循环体,然后执行控制变量更新表达式,再回头来判断条件表达式是否成立,以决定下一次循环;若条件表达式为false,则结束整个循环。
2.简述break语句和continue语句的区别。
S8:若deno≤100,返回S4;否则,结束。
流程图描述如下:
参考程序代码如下:
#include "stdio.h"
void main()
{
int sigh,deno;
long double sum,term;
sigh = 1;
deno = 2;
term=sum=0;
for(;deno<=100;deno++)
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等。
}
实训二
#include <stdio.h>
void main()
{
int x = 1;
while (x++ <= 100)
printf("您的托运费用为%f元!", price);
}
else if (weight <= 50)
{
price = (30 - 20) * 30 + (40 - 30) * 40+(weight-40)*50;
printf("您的托运费用为%f元!",price );
}
else
{
printf("您托运的行李超出了最高上限,不允许托运!");
二、简答题
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
③高级语言
高级语言屏蔽了机器的细节,更接近于自然语言和数学语言,给编程带来了极大的方便,如FORTRAN、BASIC、C、C++、Java、C#等。
2.简述执行C语言程序的基本过程。
C语言程序都采用编译方式运行,一般分为编辑、编译、连接和运行过程。
①编写源代码
使用C语言编写实现特定功能的程序代码,源代码必须遵循C语言的规范。
②每个case后面的常量表达式必须各不相同,否则会出现矛盾,即一个值有多种选择。
③各个case语句和default语句出现的顺序对执行结果没有影响。
④每个分支的语句可以是单条语句,也可以是多条语句,多条语句不用加花括号。
⑤通常情况下,每个分支语句后都要加一个break语句,表示跳出switch语句。程序在执行完该分支的语句后,如果有break语句,则结束switch语句,否则,继续执行下面的语句,直到遇到break语句或整个switch语句结束。
项目四
项目考核
一、选择题
1-5 DBCCC
二、简答题
1.简述逻辑运算符与条件运算符的使用方法。
逻辑运算符的使用方法
表4-2逻辑运算符及其用法
逻辑运算符
名称
说明
示例
结果
!
逻辑非
一元运算符,真变假,假变真
! 6 <5
1
&&
逻辑与
两操作数同真结果为真,否则为假。但当左操作数为假时,其结果则为假,不再计算右操作数的值
常量是指在程序执行过程中值保持不变的量,变量是指在程序运行过程中值可以改变的量,每个变量都必须在声明时明确定义其数据类型,并且需要用标识符标识。
字符串常量与字符常量有所不同。字符型常量在内存中只占一个字节;字符串是按照串中字符的排列顺序存放的,每一个字符占一个字节,并在末尾添加“\0”作为字符串结尾标志或结束标志。
void main()
{
char c;
int n=0;
printf("请输入一行字符:");
do
{
scanf("%c",&c);
if(c>='A'&&c<='Z' || c>='a' && c<='z')
{
n++;
}
}while(c!='\n');
printf("该行英文字母的个数为:%d\n",n);
项目实训
实训一
#include<stdio.h>
void main()
{
float weight, price;
printf("请输入您行李的重量!");
scanf("%f",&weight);
if (weight<0)
{
printf("您输入的数据有误!");
}
else if (weight<=20)
不断按【F10】键,程序会一步一步地向前执行。
项目实训
略
项目二
项目考核
一、选择题
1—12:DAAAB BDCAB AC
二、简答题
1.在程序中定义数据类型的目的是什么?C语言提供了哪些基本数据类型?
答:
为了在程序中存储不同类型的数据,并节省空间。
C语言提供了以下数据类型:
2.常量和变量有何区别?字符常量和字符串常量有何区别?
break语句用于终止当前循环的执行,直接执行当前循环语句的下一语句。当循环有多层时,break语句只能跳出本层循环,外层循环仍会继续。
continue语句只能用于循环语句内部,用于结束本次循环,即跳过本次循环体中余下的尚未执行的语句,再一次进行循环条件判断,以便执行下一次循环。
项目实训
实训一
#include <stdio.h>
scanf("%d",&n);
sushu(n);
return 0;
}
int sushu(int x)
{
int i;
for(i=2;i<x;i++)
if(x%i==0)
break;
if(i==x)
printf("是素数\n");
else
printf("不是素数\n");
return 0;
}
程序运行结果
项目一
项目考核
一、选择题
1—6:ACCCD C
二、简答题
1.机器语言、汇编语言、高级语言各有什么特点?
①机器语言
机器语言是以二进制代码(0和1)表示机器指令的一种语言,用机器语言编写的程序能被计算机直接执行。但使用机器语言编写程序非常繁琐,程序代码很难读懂且不通用。
②汇编语言
汇编语言用易懂的符号代替二进制代码,使得编程技术前进了一大步。计算机并不能直接执行,需要借助汇编编译器将它翻译成二进制机器代码。
4.下列标识符中哪些是合法的?并指出系统自定义的标识符
2a a# t3 _hit int
答:合法标识符:t3 _hit int(为系统自定义标识符)
5.写出下面程序的输出结果
#include <stdio.h>
void main()
{
int i,j,m,n;
i=5;
j=10;
m=++i;
n=j++;
}
}
实训二
#include<stdio.h>
void main()
{
float sales, bonus;
printf("请输入您的销售额!");
scanf("%f",&sales);
bonus = sales >= 15000 ? sales * 0.1 :
sales >= 10000 ? sales * 0.08 :
Abc = abc && 8 > 4
0
||
逻辑或
两操作数同假结果为假,否则为真。但当左操作数为真,其结果则为真,不再计算右操作数的值
ef = ef ||ac = bd
1
条件运算符的使用方法
条件运算符“?:”也称三元运算符,它根据布尔型表达式的值返回两个值中的一个,其格式如下:
条件?第一个表达式:第二个表达式;
for(i=0;i<3;i++)
{
//输入并存储职工工资信息
printf("\n\n");
printf("请输入员工编号:\n");
scanf("%d", &num);
printf("请输入姓名:\n");
scanf("%s", &name);
printf("请输入年龄:\n");
scanf("%d", &age);
②编译
编译阶段是将我们编写的源代码翻译为计算机能够理解的二进制目标代码。
③连接
连接过程便是将目标文件与函数合并成完整的可执行文件,即生成.exe文件,这样程序就可以在计算机上直接运行了。
④运行
即执行连接成功后得到的可执行程序。
3.简述C程序的基本结构。
①C语言程序由函数构成
②程序中包含对库函数的引用
③程序有良好的编码格式
④编写程序注释
⑤友好的人机交互提示
4.简述调试C程序的基本步骤。
第一步设置断点
单击工具栏按钮 即可添加断点,此时该行前端将出现一个断点标志 。
第二步开始调试程序
打开“组建”下拉菜单,执行“开始调试”→“GO”命令(或直接按【F5】键),程序会进入调试模式,并且会在断点处暂停。
第三步单步运行
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);
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"
void main()
{
int num,i;
char name[10] ;//字符串用数组方式存储,下同
int age;
fflush(stdin);//清空缓存
printf("请输入基本工资:\n");
scanf("%d", &base_salary);
printf("请输入级别系数:\n");
scanf("%f", &ratio);
printf("请输入销售额:\n");
scanf("%f", &yj);
//计算每个人工资总额
sum_age=age+sum_age;
sum_salary=salary+sum_salary;
}
printf(Βιβλιοθήκη Baidu\n\n");
printf("平均年龄为:%f\n",sum_age/3);
printf("平均工资为:%f\n",sum_salary/3);
}
项目三
项目考核
一、选择题
1-2 A A
{
sigh=(-1)*sigh;
term= sigh*(1/deno);
sum=sum+term;
}
printf("表达式的值为:%.20lf",sum);
}
#include<stdio.h>
int main()
{
int sushu(int x);
int n;
printf("请输入一个大于1的整数:\n");
{
printf("您可以免费托运行李!");
}
else if (weight<=30)
{
price = (weight-20) * 30;
printf("您的托运费用为%f元!",price);
}
else if (weight<=40)
{
price = (30 - 20) *30+(weight-30)*40;
如果条件为true,则计算第一表达式并以它的计算结果为整个条件表达式的值;如果为false,则计算第二表达式并以它的计算结果为整个条件表达式的值。
2.简述C语言中switch语句的特点。
①switch语句中的表达式通常为整型或字符型,配套的常量类型也应该是字符型或整型。此外,如果常量类型是字符型,一定要用单引号括起来(如'A'),而不能使用双引号("A")。
sales >= 8000 ? sales * 0.05 :
sales >= 5000 ? sales * 0.03 : 0;
if (sales < 0)
printf("您输入的金额有误!", "奖金");
else
printf("您获得的奖金为:%f元!",bonus );
}
项目五
项目考核
一、选择题
int base_salary;
float ratio,salary,yj,sum_age,sum_salary;
sum_age=sum_salary=0;
printf("**********************************\n");
printf("输入与输出职工工资信息\n");
printf("**********************************\n");
1-5 ABBAA
二、简答题
1.简述for语句的使用方法。
for语句中变量初始化部分只在开始时执行一次,然后判断条件表达式,若为true,则执行代码块循环体,然后执行控制变量更新表达式,再回头来判断条件表达式是否成立,以决定下一次循环;若条件表达式为false,则结束整个循环。
2.简述break语句和continue语句的区别。
S8:若deno≤100,返回S4;否则,结束。
流程图描述如下:
参考程序代码如下:
#include "stdio.h"
void main()
{
int sigh,deno;
long double sum,term;
sigh = 1;
deno = 2;
term=sum=0;
for(;deno<=100;deno++)
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等。
}
实训二
#include <stdio.h>
void main()
{
int x = 1;
while (x++ <= 100)
printf("您的托运费用为%f元!", price);
}
else if (weight <= 50)
{
price = (30 - 20) * 30 + (40 - 30) * 40+(weight-40)*50;
printf("您的托运费用为%f元!",price );
}
else
{
printf("您托运的行李超出了最高上限,不允许托运!");
二、简答题
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
③高级语言
高级语言屏蔽了机器的细节,更接近于自然语言和数学语言,给编程带来了极大的方便,如FORTRAN、BASIC、C、C++、Java、C#等。
2.简述执行C语言程序的基本过程。
C语言程序都采用编译方式运行,一般分为编辑、编译、连接和运行过程。
①编写源代码
使用C语言编写实现特定功能的程序代码,源代码必须遵循C语言的规范。
②每个case后面的常量表达式必须各不相同,否则会出现矛盾,即一个值有多种选择。
③各个case语句和default语句出现的顺序对执行结果没有影响。
④每个分支的语句可以是单条语句,也可以是多条语句,多条语句不用加花括号。
⑤通常情况下,每个分支语句后都要加一个break语句,表示跳出switch语句。程序在执行完该分支的语句后,如果有break语句,则结束switch语句,否则,继续执行下面的语句,直到遇到break语句或整个switch语句结束。
项目四
项目考核
一、选择题
1-5 DBCCC
二、简答题
1.简述逻辑运算符与条件运算符的使用方法。
逻辑运算符的使用方法
表4-2逻辑运算符及其用法
逻辑运算符
名称
说明
示例
结果
!
逻辑非
一元运算符,真变假,假变真
! 6 <5
1
&&
逻辑与
两操作数同真结果为真,否则为假。但当左操作数为假时,其结果则为假,不再计算右操作数的值