C语言程序设计练习题(答案)
- 格式:docx
- 大小:123.51 KB
- 文档页数:21
C语言程序设计练习题(答案)
1.1上机实训项目
实验1实验步骤
1、进入VC环境
从“开始”→“程序”→“Microsoft Visual Studio
6.0”→“Microsoft Visual C++ 6.0”,这时进入VC集成环境的主菜单窗口,屏幕显示如图1_1所示。
图1-1 VC集成环境的主菜单窗口
2、VC环境下C程序的编辑、连接和运行
(1)新建一个源程序
①在VC环境中选择“文件”菜单,然后单击“新建”菜单项。如图1-2所示 图1-2 选择新建
② 在弹出的新建对话框中设置好相应的内容,如图2-2所示。要事先准备好保存文件的目录,例d:\lx 目录。在图1-3中“文件”一栏的源程序文件的扩展名一定要输入C 语言程序的扩展名“.c ”。设置好后,单击“OK ”,就回到了VC++的编辑界面,即将进行输入和编辑的源程序文件example.c 文件存放在D 盘的LX 目录下。
图1-3 新建对话框的设置
③ 在图1-4的工作区中,输入源程序
2.设置源程序的文件名,扩展名一定要为“.c ”且一定要输入扩展名
1.单击该处
3.设置存放目录 图1-4 输入、编辑源程序
④输入源程序文件后可在主菜单栏中选择“文件”(FILE),并在其下拉菜单中选择“保存”(SAVE),如图1-5所示。
图1-5 保存源程序
⑤源程序的编译
如图2-6所示,单击主菜单的“编译”(Build),在其下拉菜单中选择“编译example.c”(Compile example.c),或者单击工具栏上的“编译”按钮,如图1-6所示。在单击“编译”后,屏幕上会出现一个如图1-7所示的对话框。内容是“This build command
requires an active
project worksapce,Would you like to create a default project
worksapce?”,要创建一个默认的项目工作区,单击“是(Yes)”,表示同意,将开始编译;单击“No ”,表示不同意,将取消编译。此处选择“是”。
图1-6 编译源程序
图1-7 要求创建一个工作区
⑥ 编译完成后将如图1-8所示,此时注意编译窗口中的信息,如果有编译错误,将要对源程序进行修改,然后再重新编译,直到没有错误为止。
从该处进入编译
注意此处的obj文件
图1-8编译信息
⑦编译没有错误,完成并生成obj文件后,就可进入程序的连接了。连接的目的是将程序和系统提供的资源(如函数库、头文件等)建立连接,真正生成可以执行的程序文件。如图1-9所示,单击主菜单的“编译”(Build),在其下拉菜单中选择“构建example.exe”(build example.exe),或者单击工具栏上的“构建”按钮。
执行连接后,将在调试窗口中显示连接的信息,如图1-10所示,如果连接有错误,将修改源程序,然后再编译、连接,直至没有错误为止。
或单击此处
图1-9 程序的连接
图1-10 连接后的信息
⑧ 程序的执行
完成了编译、连接后,就生成了可执行程序文件,些时该程序可执行了。如图1-11所示,单击主菜单的“编译”(Build ), 在其下拉菜单中选择“执行example.exe ”(Execute example.exe ),或者单击工具栏上的“执行”按钮。执行后,将出现图1-12所示的结果。
图1-11 执行程序
注意:此处生成的.exe 文件 图1-12 执行的结果
实验2 程序中包含三处错误,分别为:(1) Int应为int;(2)“sum=25+30”后缺少“;”;
(3)缺少“return 0;”
实验3 提示:要完成题目任务,一种方法是每一行调用一个printf函数输出,另一种方法是只调用一个printf函数输出。代码分别如下:
(1)#include
int main (void)
{
printf ("This is my first C program.\n");
printf ("And programming in C is even more fun.\n");
return 0;
}
(2)#include
int main (void)
{
printf ("This is my first C program.\nAnd programming in C
is even more fun.\n");
return 0;
}
实验 4 (1)计算33+56的和。
解题思路:将例1.2中变量值改为33与56代码如下:
#include
int main(void) { int value1,value2,sum;
value1=33;
value2=56;
sum=value1+value2;
printf(“%d+%d=%d\n”, value1, value 2,sum);
}
(2)计算1+2+3+4+5
解题思路:可以分别建立五个变量value1,value2,value3,value4,value5,赋值后计算value1+value2+value3+value4+value5,代码如下:
#include
int main(void)
{
int value1,value2,value3,value4,value5,sum;
value1=1;
value2=2;
value3=3;
value4=4;
value5=5;
sum=value1+value2+value3+value4+value5;
printf(“%d+%d+%d+%d+%d=%d\n”, value1, value 2,
value3, value4, value5, sum);
}
实验 5
解题思路:根据摄氏度与华氏温度转换公式进行转换,代码如下:
#include
int main () {
float f, c;
f = 27.0;
c = (f-32)/1.8; printf("f=%f\nc=%f\n", f, c);
return 0;
}
1.2课后实训项目
一、选择题
1.C ;
2. D;
3.A;
4.C;
5.A
二、填空题
1. main函数
2. ;
3. 编译
三、分析下面程序,写出运行结果
1. The result is 95
2. we are students.
I begin to study C language.
四、找出下面程序中的所有语法错误,然后在计算机上运行输出正确结果。
1. (1)Void 应为void;(2)INT 应为int;(3)“/* COMPUTE
RESULT” 后缺少“*/” ;(4)“printf ("The answer is %i\n"
sum) ;” 应为“printf ("The answer is %d\n" ,sum);”
2. (1)缺少预处理指令#include ;(2)没有声明value1,value2。
3. (1)缺少main函数#include ;(2)没有对value1,value2进行声明;(3)
输出语句中“The sum of value1 and value2 is %d\n”缺少双引号;(4)函数体应由{}括起来。
2.1上机实训项目 实验1解题思路:根据运行结果,了解各种数据类型在内存所占用空间的大小,运行结果如下:
int is 4B
char is 1B
long int is 4B
unsigned int is 4B
float is 4B
double is 8B
实验2解题思路:根据例子,分析VC++6.0短整数、字符型和float型数据的范围,运行结果如下:
s=32767 c=127 f=3.1234e+038
s=-32768 c=-128 f=1.#INF(越界)
通过程序运行结果可知:VC++6.0短整数范围-32768~32767;字符型范围-128~127;float型范围:0以及-3.4*10-38~3.4*1038
实验3解题思路:
错误1 “j=++3;”应为“j=++i;”。++与—运算符只能用于变量,不能用于常量或者表达式,如5++或者(a+b)++都是不合法的。
错误2 “k=5.0%2;”应为“k=5%2;”。%运算符要求参加运算的对象为整数,结果也是整数。
实验4解题思路,代码如下:
# include
int main(){
int a=3,b=4,c=5;
double x=1.2,y=2.4,z=-3.6;
long int u=51274,n=128765;
char c1='a',c2='b';
printf("a=%db=%dc=%d\n",a,b,c);
printf("x=%7.6fy=%7.6fz=%7.6f\n",x,y,z);
printf("x+y=%3.2fy+z=%3.2fz+x=%3.2f\n",x+y,y+z,z+x);
printf("u=%dn=%d\n",u,n); printf("c1='%c'or%d\n",c1,c1);
printf("c2='%c'or%d\n",c2,c2);
return 0;
}
实验5错误:“average=1/2*(96+55);”应改为“average=1.0/2.0*(96+55);”
解题思路:两个整数相除的结果是整数,需要改为两个实数相除。
2.2课后实训项目
一、选择题
1)C 以0开头的数字是8进制数字,但是8进制数字里面是没有8的(满8进位),所以出错;2)C;3)D ;4)D;5)D;6)B;m为(n*100+0.5)取整数部分,相当于四舍五入;7)A;8)C;9)B A赋值表达式,C y=y++=5,在C语言++,--都不能位于“=”左边,D强制类型转换;10)B x=x+x-(x-x);11)A;12)C;13)D 二、填空题
1)标识符;2)变量;3)整型、字符型、长双精度型;4)字母、数字、下划线;5)4B;6)f;7)pow(e,x*x+y*y)*(1/fabs(x-y)); 8) 3.5
三、分析下面程序,写出运行结果
1. i=2,j=2
i=2,j=3
2. 119,w
97, a
3. 24,683
3.456000,53400.000000
4. 2 20.000000
5. -6
四、找出下面程序中的所有语法错误,然后在计算机上运行输出正确结果。
1. #include