C语言程序设计练习题答案.docx

上传人:b****6 文档编号:7087391 上传时间:2023-01-17 格式:DOCX 页数:73 大小:284.64KB
下载 相关 举报
C语言程序设计练习题答案.docx_第1页
第1页 / 共73页
C语言程序设计练习题答案.docx_第2页
第2页 / 共73页
C语言程序设计练习题答案.docx_第3页
第3页 / 共73页
C语言程序设计练习题答案.docx_第4页
第4页 / 共73页
C语言程序设计练习题答案.docx_第5页
第5页 / 共73页
点击查看更多>>
下载资源
资源描述

C语言程序设计练习题答案.docx

《C语言程序设计练习题答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计练习题答案.docx(73页珍藏版)》请在冰豆网上搜索。

C语言程序设计练习题答案.docx

C语言程序设计练习题答案

1.1上机实训项目

实验1实验步骤

1、进入VC环境

从“开始”→“程序”→“MicrosoftVisualStudio6.0”→“MicrosoftVisualC++6.0”,这时进入VC集成环境的主菜单窗口,屏幕显示如图1_1所示。

图1-1VC集成环境的主菜单窗口

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的工作区中,输入源程序

图1-4输入、编辑源程序

④输入源程序文件后可在主菜单栏中选择“文件”(FILE),并在其下拉菜单中选择“保存”(SAVE),如图1-5所示。

图1-5保存源程序

⑤源程序的编译

如图2-6所示,单击主菜单的“编译”(Build),在其下拉菜单中选择“编译example.c”(Compileexample.c),或者单击工具栏上的“编译”按钮,如图1-6所示。

在单击“编译”后,屏幕上会出现一个如图1-7所示的对话框。

内容是“Thisbuildcommandrequiresanactiveprojectworksapce,Wouldyouliketocreateadefaultprojectworksapce?

”,要创建一个默认的项目工作区,单击“是(Yes)”,表示同意,将开始编译;单击“No”,表示不同意,将取消编译。

此处选择“是”。

图1-6编译源程序

图1-7要求创建一个工作区

⑥编译完成后将如图1-8所示,此时注意编译窗口中的信息,如果有编译错误,将要对源程序进行修改,然后再重新编译,直到没有错误为止。

图1-8编译信息

⑦编译没有错误,完成并生成obj文件后,就可进入程序的连接了。

连接的目的是将程序和系统提供的资源(如函数库、头文件等)建立连接,真正生成可以执行的程序文件。

如图1-9所示,单击主菜单的“编译”(Build),在其下拉菜单中选择“构建example.exe”(buildexample.exe),或者单击工具栏上的“构建”按钮。

执行连接后,将在调试窗口中显示连接的信息,如图1-10所示,如果连接有错误,将修改源程序,然后再编译、连接,直至没有错误为止。

图1-9程序的连接

图1-10连接后的信息

⑧程序的执行

完成了编译、连接后,就生成了可执行程序文件,些时该程序可执行了。

如图1-11所示,单击主菜单的“编译”(Build),在其下拉菜单中选择“执行example.exe”(Executeexample.exe),或者单击工具栏上的“执行”按钮。

执行后,将出现图1-12所示的结果。

图1-11执行程序

图1-12执行的结果

实验2程序中包含三处错误,分别为:

(1)Int应为int;

(2)“sum=25+30”后缺少“;”;(3)缺少“return0;”

实验3提示:

要完成题目任务,一种方法是每一行调用一个printf函数输出,另一种方法是只调用一个printf函数输出。

代码分别如下:

(1)#include

intmain(void)

{

printf("ThisismyfirstCprogram.\n");

printf("AndprogramminginCisevenmorefun.\n");

return0;

}

(2)#include

intmain(void)

{

printf("ThisismyfirstCprogram.\nAndprogramminginCisevenmorefun.\n");

return0;

}

实验4

(1)计算33+56的和。

解题思路:

将例1.2中变量值改为33与56代码如下:

#include

intmain(void)

{

intvalue1,value2,sum;

value1=33;

value2=56;

sum=value1+value2;

printf(“%d+%d=%d\n”,value1,value2,sum);

}

(2)计算1+2+3+4+5

解题思路:

可以分别建立五个变量value1,value2,value3,value4,value5,赋值后计算value1+value2+value3+value4+value5,代码如下:

#include

intmain(void)

{

intvalue1,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,value2,value3,value4,value5,sum);

}

实验5

解题思路:

根据摄氏度与华氏温度转换公式进行转换,代码如下:

#include

intmain(){

floatf,c;

f=27.0;

c=(f-32)/1.8;

printf("f=%f\nc=%f\n",f,c);

return0;

}

1.2课后实训项目

一、选择题

1.C;2.D;3.A;4.C;5.A

二、填空题

1.main函数

2.;

3.编译

三、分析下面程序,写出运行结果

1.Theresultis95

2.wearestudents.

IbegintostudyClanguage.

四、找出下面程序中的所有语法错误,然后在计算机上运行输出正确结果。

1.

(1)Void应为void;

(2)INT应为int;(3)“/*COMPUTERESULT”后缺少“*/”;(4)“printf("Theansweris%i\n"sum);”应为“printf("Theansweris%d\n",sum);”

2.

(1)缺少预处理指令#include

(2)没有声明value1,value2。

3.

(1)缺少main函数#include

(2)没有对value1,value2进行声明;(3)输出语句中“Thesumofvalue1andvalue2is%d\n”缺少双引号;(4)函数体应由{}括起来。

2.1上机实训项目

实验1解题思路:

根据运行结果,了解各种数据类型在内存所占用空间的大小,运行结果如下:

intis4B

charis1B

longintis4B

unsignedintis4B

floatis4B

doubleis8B

实验2解题思路:

根据例子,分析VC++6.0短整数、字符型和float型数据的范围,运行结果如下:

s=32767c=127f=3.1234e+038

s=-32768c=-128f=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

intmain(){

inta=3,b=4,c=5;

doublex=1.2,y=2.4,z=-3.6;

longintu=51274,n=128765;

charc1='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);

return0;

}

实验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)BA赋值表达式,Cy=y++=5,在C语言++,--都不能位于“=”左边,D强制类型转换;10)Bx=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.220.000000

5.-6

四、找出下面程序中的所有语法错误,然后在计算机上运行输出正确结果。

1.#include

intmain(void)

{

floata=5,b=3;错误:

应为inta=5,b=3;

printf("a%%b=%d\n",a%b);

return0;

}

运行结果:

a%b=2

2.#include

intmian()错误1:

main

{

charc=’China’;错误2;将字符串赋给字符变量

printf(‘c=%c\n’,c);错误3:

双引号

Return0;错误4:

return首字母小写

}

运行结果c=C

3.#include

intmain()

{inta,b,c;

a=2;b=3;

C=a+b;错误:

C未定义

printf(“%d+%d=%d\n”,a,b,c);

return0;

}

运行结果:

2+3=5

五、程序设计题

1.解题思路:

需要知道三角形求面积公式s=底*高*0.5,根据公式进行编程,代码如下:

#include

intmain(){

doublea,b,c;

a=5.0;

b=6.0;

c=a*b/2;

printf("areais%f",c);

return0;

}

2.解题思路:

知道根据半径r求圆形周长公式l=2

以及面积公式S=

,代码如下:

#include

#definePI3.1416

intmain(){

doublea,area,length;

a=5.0;

area=PI*a*a;

length=2*PI*a;

printf("areais%fandlengthis%f\n",area,length);

return0;

}

3.解题思路:

已知边长a,正方形求面积公式s=a2,代码如下:

#include

intmain(){

doublea,area;

a=6.0;

area=a*a;

printf("areais%f\n",area);

return0;

}

4.解题思路:

已知圆柱体的底面半径a,高h,圆柱体体积c=

,代码如下:

#include

#definePI3.1416

intmain(){

doublea,h,cube;

a=6.0;

h=10.0;

cube=PI*a*a*h;

printf("cubeis%f\n",cube);

return0;

}

3.1上机实训项目

实验11略

2.答:

输出为ab,此时c1=‘a’,c2=‘’,c3=‘b’

3.答:

输出为a

b

此时c1=‘a’,c2=‘回车’,c3=‘b’

4.答:

输入123<回车>

实验2下面程序是的功能是输入两个整数,输出其和,试调试运行。

#include

intmain()

{

intx,y;

printf("请输入两个整数:

\n");

scanf("x=%d,y=%d",&x,&y);

printf("%d%+%d=%d\n",x,y,x+y);错误:

多写一个%,输出错误。

return0;

}

实验3 解题思路:

调用scnaf与printf函数输入输出字符数据,代码如下:

#include

intmain()

{

chara,b,c;

scanf("%c",&a);

scanf("%c",&b);

scanf("%c",&c);

printf("%c",a);

printf("%c",b);

printf("%c",c);

return0;

}

实验4下面程序是输入1个整数和1个实数,然后其值,找出其中的错误。

#include

intmain()

{longx;

doubley;

scanf("%f,%f",&x,&y);错误1:

scanf("%ld,%lf",&x,&y);,double型数据输入要用%lf;

printf("x=%f,f=%f\n",x,y);错误2:

printf("x=%d,f=%f\n",x,y);,x为整数;

错误3:

缺少return0;

}

实验5代码如下:

scanf(_____“%d,%f”,&x,&y__________);

printf(_______“x+y=%f”,x+y________)

课后实训项目

一、选择题

1)D;2)D;3)C;4)D;5)B;6)A;7)B;8)B;9)C;10)B如果使用的格式符与对应的变量类型不一致,有可能造成读取错误的数据,但系统不报错;11)C;12)C;13)C赋值语句的对象只能是变量,而不是表达式;14)A;15)A;16)D

二、填空题

1)3;2)%%;3)格式控制,输出表列;4)%d,%c,%s;5)&a,&b;a=b

三、程序阅读题

1.运行结果A,66

2.运行结果1,65,1.5,6.5

3.输出结果为i:

dec=14,otc=177774,hex=fffc,unsigned=65532

4.输出结果是1234

四、改错题

1.下面程序编译时无错误,运行程序时,从键盘输入1,2,但输出结果不正确,找出程序中的错误并改正之。

#include

voidmain()

{intx,y;

scanf( "%d,%d",x,y);改错:

scanf( "%d,%d",&x,&y);

printf( "%d,%d",x,y);

}

2.下面程序是输入两个double型数据,然后输出的和,找出错误并改正之

#include

voidmain()

{

doublex,y;

scanf(“%f%f”,&x,&y);改错1:

scanf(“%lf%lf”,&x,&y);

printf(“x+y=%f\n,x+y);改错2:

printf(“x+y=%f\n”,x+y);

}

五、程序设计题

1.解题思路:

设置两个整数给变量a,b,输入的大数放在a中,输入的小数放在b中,利用a/b和a%b分别求他们的商和余数,代码如下:

#include

intmain(){

inta,b,c;

intd,e;

scanf("%d,%d",&a,&b);

if(a

{

c=a;

a=b;

b=c;

}

d=a/b;e=a%b;

printf("a=%d,b=%d,d=%d,e=%d\n",a,b,d,e);

return0;

}

2.解题思路:

用%(求余)。

比如输入321,321%100=21用321-(321%100)再除以100即可得:

(321-(321%100))100=3同样,用21%10=1再除以10即可得:

((321%100)-((321%100)%10))/10=2最后,1-(1%1)=1。

代码如下:

#include

intmain(){

inta;

intb,c,d;

scanf("%d",&a);

b=a%10;

c=a/10%10;

d=a/100;

printf("a=%d,b=%d,c=%d,d=%d",a,b,c,d);

return0;

}

4.1上机实训项目

实验1正确程序代码为:

#include

intmain()

{

floata,b,c,t;

scanf(“%f,%f,%f”,&a,&b,&c);

if(a>b)

{t=a;a=b;b=t;}//if语句后是个复合语句,需要加上花括号

if(a>c)

{t=a;c=a;c=t;}

if(b>c)

{t=b;b=c;c=t;}

printf(“%f,%f,%f\n”,a,b,c);

return0;

}

实验2解题思路:

分段函数计算,根据不同的x,按照条件选择建立不同的分支执行。

参考代码如下:

#include

intmain(){

floatx,y;

printf("Pleaseinputx:

\n");

scanf("%f",&x);

if(x<1.0)

y=x;

elseif((x>1.0)&&(x<10.0))

y=2*x-1;

elseif(x>=10.0)y=3*x-11;

printf("Thevalueofyis:

%f\n",y);

return0;

}

实验3解题思路:

ASCII代码表示的小写字母比大写字母值大32,首先判断是否大写字母,如果是,则当前值加32,如果是小写字母,则当前值减32。

参考代码如下:

#include

intmain()

{

charch;

scanf("%c",&ch);

if(ch>='A'&&ch<='Z')

ch=ch+32;

elseif(ch>='a'&&ch<='z')

ch=ch-32;

printf("%c\n",ch);

return0;

}

实验4解题思路:

首先要明确构成三角形的条件,两边之和大于第三遍;然后根据等边三角形(三边相等)、等腰三角形(两边相等)、直角三角形(直角边平方和等于斜边平方)分别进行判断,参考代码如下:

#include

#include

voidmain(){

inta,b,c;

intk,i,j;

intm,o,p;

inta1,b1,c1;

printf("输入三条边:

\n");

scanf("%d,%d,%d",&a,&b,&c);

i=a*a+b*b-c*c;j=b*b+c*c-a*a;k=a*a+c*c-b*b;

m=abs(a-b);o=abs(a-c);p=abs(c-b);

a1=a+b;b1=b+c;c1=a+c;

if((a1>c)&&(b1>a)&&(c1>b)&&(m

if((m==0)&&(o==0))

printf("这是一个等边三角形。

\n");

elseif((m==0)||(o==0)||(p==0))

printf("这是一个等腰三角形。

\n");

elseif((i==0)||(j==0)||(k==0))

printf("这是一个直角三角形!

\n");

elseprintf("这是一个任意三角形!

\n");

}

elseprintf("这不是一个三角形!

\n");

}

实验5解题思路:

根据不同的距离,确定折扣和运费,参考代码如下:

#include

intmain(){

doublecost(doublex,doubley,doublez,doublep);

doublef,p,w,s,d;

printf("请输入距离:

");

scanf("%lf",&s);

printf("\n请输入运费:

");

scanf("%lf",&p);

printf("\n请输入货物重量:

");

scanf("%lf",&w);

if(s<250.0){

d=0;

f=cost(p,w,s,d);

}

elseif((s>=250.0)&&(s<500.0)){

d=0.05;

f=cost(p,w,s,d);

}

elseif((s>=500.0)&&(s<1000.0)){

d=0.1;

f=cost(p,w,s,d);

}

elseif((s>=1000.0)&&(s<2000.0)){

d=0.15;

f=cost(p,w,s,d);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1