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