新编C语言程序设计教程机械工业出版社钱雪忠吕莹楠.docx

上传人:b****8 文档编号:10798023 上传时间:2023-02-23 格式:DOCX 页数:35 大小:108.12KB
下载 相关 举报
新编C语言程序设计教程机械工业出版社钱雪忠吕莹楠.docx_第1页
第1页 / 共35页
新编C语言程序设计教程机械工业出版社钱雪忠吕莹楠.docx_第2页
第2页 / 共35页
新编C语言程序设计教程机械工业出版社钱雪忠吕莹楠.docx_第3页
第3页 / 共35页
新编C语言程序设计教程机械工业出版社钱雪忠吕莹楠.docx_第4页
第4页 / 共35页
新编C语言程序设计教程机械工业出版社钱雪忠吕莹楠.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

新编C语言程序设计教程机械工业出版社钱雪忠吕莹楠.docx

《新编C语言程序设计教程机械工业出版社钱雪忠吕莹楠.docx》由会员分享,可在线阅读,更多相关《新编C语言程序设计教程机械工业出版社钱雪忠吕莹楠.docx(35页珍藏版)》请在冰豆网上搜索。

新编C语言程序设计教程机械工业出版社钱雪忠吕莹楠.docx

新编C语言程序设计教程机械工业出版社钱雪忠吕莹楠

新编C语言程序设计教程

习题及实验题部分答案

第1章C语言概述

1习题

一、选择题

ADCDBCCBBA

二、简答题

1、什么是语言?

语言分几类?

各有什么特点?

语言:

语言是思维的载体。

人和计算机打交道,必须要解决一个“语言”沟通的问题。

如今人与计算机之间有许多种类的“语言”的。

语言分类:

机器二进制语言、汇编语言(低级)和高级语言(第三代、第四代、……)

各自特点:

1)机器二进制语言:

用0、1两个数字编写的计算机能直接运行的程序的语言,机器语言执行效率高,但难编写、难懂、难移植。

2)汇编语言(低级):

汇编语言的特点是使用一些“助记符号”来替代那些难懂难记的二进制代码,所以汇编语言相对于机器指令便于理解和记忆,但它和机器语言的指令基本上是一一对应,两者都是针对特定的计算机硬件系统的,可移植性差,因此称它们都是“面向机器的低级语言”。

3)高级语言:

高级语言类似自然语言(主要是英语),由专门的符号根据词汇规则构成单词,由单词根据句法规则构成语句,每种语句有确切的语义并能由计算机解释。

高级语言包含许多英语单词,有“自然化”的特点;高级语言书写计算式子接近于熟知的数学公式的规则。

高级语言与机器指令完全分离,具有通用性,一条高级语言语句常常相当于几条或几十条机器指令。

2、汇编语言与高级语言有何区别?

高级语言程序要比汇编语言要易懂、明了、简短得多;高级语言与机器指令完全分离,具有通用性,一条高级语言语句常常相当于几条或几十条机汇编语言指令;高级语言要经过解释或编译来执行的,而汇编语言程序通过汇编程序来生成机器程序来执行的。

3、什么是程序?

完成某一特定任务的一组指令序列,或者说,为实现某一算法的指令序列称为“程序”。

不同计算机语言有不同的计算机程序。

4、C语言中为何要加注释语句?

注释部分,起到说明语句或程序的作用。

程序中应添加必要的注释,来增强程序的阅读与理解。

注释用来向用户提示或解释程序的意义。

在调试程序中对暂不使用的语句也可用注释符标注起来,使翻译跳过这些不作处理,待调试结束后再按需去掉注释符。

为此,注释也有调试的辅助作用。

5、说说C语言程序的组成?

C语言程序包括由哪些部分?

一个C语言函数一般又由哪几部分组成的?

C语言程序的组成:

一个C语言源程序可以由一个或多个源程序文件组成。

C语言程序的组成部分:

1.一个C语言源程序可以由一个或多个源文件组成;

2.每个源文件可由一个或多个函数组成;

3.一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数;

4.源程序中可以有预处理命令(include命令仅为其中的一种),预处理命令通常应放在源文件或源程序的最前面;

5.每一个说明,每一个语句都必须以分号结尾。

但预处理命令,函数头和花括号“}”之后不能加分号;

6.标识符,关键字之间必须至少加一个空格以示间隔。

C语言函数:

一个C语言函数通常由函数首部(如intmax(inta,intb))、函数体组成。

函数体一般又由局部变量定义与函数声明等组成的定义与声明部分、程序执行语句等组成的执行部分这两部分组成的(如min函数所示)。

第2章结构化程序设计与算法

2习题

一、选择题

BCDCDCBCAD

二、简答题

1、什么是算法?

算法的特点是什么?

什么是算法:

算法就是解决某个问题或处理某件事的方法和步骤,在这里所讲的算法是专指用计算机解决某一问题的方法和步骤。

算法的特点:

1)有穷性

人们编制算法的目的就是要解决问题,若该算法无法在一个有限合理的时间内完成问题的求解,那么算法也就失去了其原有的目的,人们就会摒弃它。

而且人们研究算法,其目的还在于它的高效率,即解决同一个问题的两个算法,人们往往选择其中那个运行效率高的。

2)确定性

所谓算法的确定性是指算法的每一个步骤都应该确切无误,没有歧义性。

3)有零个或多个输入

执行算法时,有时需要外界提供某些数据,帮助算法的执行。

一个算法可以没有输入,也可以有多个输入。

例如,求解N!

,该算法就需要输入一个数据N;而求解两数之和,该算法就需要输入两个数据

4)有一个或多个输出

算法的目的是求解,解就是结果,就是输出,否则就毫无意义。

5)有效性

算法中的每一步都应该能有效地执行、可以实现,执行算法最后应该能得到确定的结果。

2、结构化程序设计的三种基本结构是什么?

其共同特点是什么?

结构化程序设计的三种基本结构:

顺序、选择、循环三种基本控制结构

其共同特点:

1)只有单一的入口和单一的出口;2)结构中的每个部分都有执行到的可能;3)结构内不存在永不终止的死循环。

3、尝试用自然语言、流程图、N-S流程图或伪代码写出下面问题的求解算法。

1)根据三边,求三角形的周长和面积

2)判断用户输入的一个整数是奇数还是偶数

3)求解一元二次方程ax2+bx+c=0根

4)找出10个数据的最大数

5)将20个考生成绩中不及格者的分数打印出来

6)求S=1+2+3+4+……+100

解:

实验2熟悉VC++环境及算法

二、实验内容

1、改错题

#include<>

main()

{

intx=2,y=3,a;

a=x-y;

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

printf("\n");/*换行*/

}

2、程序填空题

#include<>

main()

{

inta,b,m;

printf("Inputa,bplease!

\n");

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

m=a*b;/*赋值语句,将a和b之积值赋给m*/

printf("a*b=%d\n",m);/*输出a和b积的结果值并换行*/

}

3、设计与表示算法

判断一个数n能否同时被3和5整除。

1)用伪代码表示

begin(算法开始)

inputn

if(n/3*3)=n

{

if(n/5*5)=n

{

print“数n能同时被3和5整除”

}

}

end(算法结束)

2)用N-S图表示

 

3)用流程图表示

 

4、编程题

1)

#include<>

voidmain()

{

printf("Howareyou!

\n");

}

2)

#include<>

main()

{

inta,b,c,sum;

printf("Inputa,b,cplease!

\n");

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

sum=a*a*a+b*b*b+c*c*c;/*赋值语句,将a和b之积值赋给m*/

printf("a*a*a+b*b*b+c*c*c=%d\n",sum);/*输出a和b积的结果值并换行*/

}

第3章数据类型及其运算

3习题

一、选择题

BADCDDCBCA

二、阅读程序,给出运行结果

1、7,8,10

2、1,3

3、

4、4

61

57

9

112

三、编程题

1.(sin(sqrt(x*x)))/(a*b)

2.

3.33

4.3

5.#include<>

voidmain()

{

charc;

c=getchar();

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

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

}

6.#include<>

intmain()

{

floatC,F;

printf("请输入一个华氏温度:

");

scanf("%f",&F);

C=9)*(F-32);

printf("摄氏温度C=%\n",C);

return0;

}

7.#include<>

#include<>

intmain()

{

floata;

a=exp;

printf("%f\n",a);

return0;

}

实验3数据类型及其运算

二、实验内容

1.改错题

#include<>

main()

{

intx,y;

printf("请输入两个整数\n");

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

printf("互换前的x:

%dy:

%d\n",x,y);

x=x+y;

y=x-y;

x=x-y;

printf("互换前的x:

%dy:

%d\n",x,y);

}

2.程序填空题

#include<>

main()

{

inti1,i2,i3,i;

printf("Pleaseinputi1,i2,i3:

");

scanf("%d%d%d",&i1,&i2,&i3);

i=i3;2.法一:

#include<>

Intmain()

{floatx,xf;

Intxi;

Printf(“请输入一个实数:

”);

Scanf(“%f”,&x);

Xi=(int)x;

Xi=x-xi;

Printf(“该数的整数部分为:

%d\n”,xi);

Printf(“该数的小数部分为:

5f\n”,xf);

Return0;

}

法二:

#include<>

doublea,b;

scanf("%lf",&a);

b=a;

longintp;

p=(longint)a;

printf("整数部分:

%d\n",p);

printf("小数部分:

%lf",(b-p));

3.

4.

5.#include<>

voidmain()

{floata,b,h;

floatarea;

scanf("%f,%f,%f",&a,&b,&h);

area=(a+b)*h/2;

printf("梯形的面积为:

%\n",area);

}

实验4顺序结构程序设计

二、实验内容

1.改错题

下列程序的功能为:

按下列公式计算并输出x的值。

其中a和b的值由键盘输入。

纠正程序中存在的错误,以实现其功能。

#include<>

main()

{inta,b;

floatx;

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

x=2ab/(a+b)(a+b);x=*a*b/((a+b)*(a+b));

printf("x=%d\n",x);printf("x=%f\n",x);

2.程序填空题

下列程序的功能为:

设圆半径r=,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。

用scanf输入数据r、h,输出计算结果,输出时要求有文字说明,取小数点后2位数字。

(周长l=2

,圆面积s=

,圆球表面积sq=

,圆球体积vq=

;圆柱体积vz=

),请补充完善程序,以实现其功能。

#include<>

main()

{

floatpi,h,r,ly,sy,sq,vq,vz;

pi=;

printf("请输入圆半径r,圆柱高h:

\n");

scanf("%f%f",&r,&h);

ly=2*pi*r;

sy=pi*r*r;

sq=4*pi*r*r;

vq=3*pi*r*r*r;

vz=pi*h*r*r;

printf("圆周长为:

%.2f\n",ly);

printf("圆面积为:

%.2f\n",sy);

printf("圆球表面积为:

%.2f\n",sq);

printf("圆球体积为:

%.2f\n",vq);

printf("圆柱体积为:

%.2f\n",vz);

}

3.编程题

(1)编写一个程序实现如下功能:

从键盘输入3个字符,然后在屏幕上分3行输出该3个字符。

#include<>

main()

{

charc1,c2,c3;

c1=getchar();

c2=getchar();

c3=getchar();

putchar(c1);

putchar('\n');

putchar(c2);

putchar('\n');

putchar(c3);

putchar('\n');

}

(2)编写一个程序实现如下功能:

输入一元二次方程ax2+bx+c=0的系数a、b、c,求方程的根。

要求:

运行该程序时,输入a、b、c的值,分别使b2-4ac的值大于、等于和小于零,观察并分析运行结果。

求根公式如下:

法一:

#include<>

#include<>

voidmain()

{floata,b,c,disc,x1,x2,p,q;

scanf("a=%f,b=%f,c=%f",&a,&b,&c);

disc=b*b-4*a*c;

p=-b/*a);

q=sqrt(disc)/*a);

x1=p+q;

x2=p-q;

printf("x1=%\nx2=%\n",x1,x2);

}

法二:

#include<>

#include<>

voidmain()

{floata,b,c,disc,x1,x2,p,q;

scanf("a=%f,b=%f,c=%f",&a,&b,&c);

if(a==0)

printf("不是二次方程\n");

else

disc=b*b-4*a*c;

if(disc<0)

printf("无实根\n");

else

if(disc==0)

{p=-b/*a);

q=sqrt(disc)/*a);

x1=p+q;

x2=p-q;

printf("有两个相同的实根\n");

printf("x1=%\nx2=%\n",x1,x2);

}

else

{p=-b/*a);

q=sqrt(disc)/*a);

x1=p+q;

x2=p-q;

printf("有两个不同的实根\n");

printf("x1=%\nx2=%\n",x1,x2);

}

}

第5章选择结构程序设计

5习题

一、选择题

BBCBBCBACB

二、阅读程序写出运行结果

1、-22、Yes

3、

(1)2

(2)3

CC

A=2,b=2,c=4

4、*&5、5

3

2

三、编程题

1.#include<>

int main()

{

  int a,b;

 

3.#include<>

int main(void)

{

    int n;

    int status=1;

    while(status)

    {

        printf("输入:

");

        scanf("%d",&n);

        switch (n)

        {

        case 0:

            printf("舞蹈\n");

            break;

        case 1:

        case 3:

            printf("乒乓球\n");

            break;

case2

        case 4:

            printf("篮球\n");

            break;

        case 5:

            printf("保龄球\n");

            break;

        case 6:

            printf("吉他\n");

            break;

        default:

            status=0;

        }

    }

    return 0;

}

实验5选择结构程序设计

二、实验内容

1.改错题

下列程序的功能为:

输入3个整数后,输出其中最大值。

请纠正程序中存在错误,使程序实现其功能。

#include""

main()

{

inta,b,c,max;

printf("请输入3个整数:

\n");

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

max=a;

if(c>b)

{if(b>a)max=c;}/*c>b>a*/

else/*b>c*/

{if(c>a)max=b;}/*b>c>a*/

printf("3个数中最大者为:

%d\n",max);

}

改正后的程序:

#include""

main()

{

inta,b,c,max;

printf("请输入3个整数:

\n");

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

max=a;

if(c>b)

{if(c>a)max=c;}

else

{if(b>a)max=b;}

printf("3个数中最大者为:

%d\n",max);

2.程序填空题

#include<>

main()

{

inta,b,d;

charch;

printf("Pleaseinputaexpression:

");

scanf("%d%c%d",&a,&ch,&b);/*输入数学表达式*/

switch(ch)

{

case'+':

d=a+b;

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

case'-':

d=a-b;

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

case'*':

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

case'/':

if(b==0)printf("Divisoriszero\n");

elseprintf("%d/%d=%f\n",a,b,(float)a/b);/*强制类型转换*/

break;

default:

printf("InputOperatorerror!

\n");

}

}

3.编程题

(1)#include<>

main()

{

inta,b,c,max,min;

floatsum,d,e;

printf("请输入三个数:

");

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

sum=a+b+c;

d=sum/3;

e=a*b*c;

if(a>b)

{max=a;min=b;}

else

{max=b;min=b;}

if(max

max=c;

else

if(min>c)

min=c;

printf("三个数的和%.1f\n",sum);

printf("三个数的平均值%.2f\n",d);

printf("三个数的积%.1f\n",e);

printf("三个数中最大值是%d\n",max);

printf("三个数中最小值是%d\n",min);

}

(2)

#include<>

voidmain()

{

floatx,y;

scanf("%f",&x);

if(x<5)y=1-x*x*x;

elseif(x<=15&&x>=5)y=x-1;

elsey=2*x*x-1;

printf("x=%0f,y=%0f\n",x,y);

}

(3)

#include<>

voidmain()

{inta;printf("inputintegernumber:

");

scanf("%d",&a);

switch(a)

{case0:

printf("Sunday\n");break;

case1:

printf("Monday\n");break;

case2:

printf("Tuesday\n");break;

case3:

printf("Wednesday\n");break;

case4:

printf("Thursday\n");break;

case5:

printf("Friday\n");break;

case6:

printf("Saturday\n");break;

default:

printf("error\n");

}

}

第6章循环结构程序设计

6习题

一、选择题

BCDDABDBABBC

二、阅读程序写出运行结果

1、______3,4________

2、_____6_____

3、___##___

4、___02____

5、___18_____

6、_____1______

7、___80____

8、___输出一行中含大写或小写字母个数中的大者数________

9、

1)5次

212

2)2次

13644

3)外循环2次,内2层循环累计3次,内3层循环累计5次

28

4)外循环3次,内循环累计4次

-1-105

三、编程题

实验6循环结构程序设计

二、实验内容

1.改错题

下列程序的功能为:

倒序打印26个英文字母。

纠正程序中存在的错误,以实现其功能。

#include<>

main()

{

charx;

x='z';

while(x!

='a')while(x!

='a'-1)或while(x>='a')

{

printf("%3d",x);printf("%3c",x);

x++;x--;

}

}

2.程序填空题

1)

#include<>

main()

{

intday,x1,x2;

day=0;

x1=1020;

while(x1)

{

X2=x1/2-2;

X1=x2;

day++;

}

printf(“day=%d\n”,day);

}

2)

#include<>

#include<>

main()

{

inti,left,right;charcc[80];

printf("输入一个算术表达式\n");

gets(cc);

left=0;right=0;

f\n\n",i,no,sum,ave);

}

}

第7章数组及其应用

7习题

一、选择题

DACBCABDBD

二、阅读程序写出运行结果

1、______4______

2、____Tony_____

3、____max=85,min=5,sum=180,aver=

4、____a=2b=2c=2d=2e=1f=2g=2____

5、____j=45_____

三、编程题

1.略

2.

#include <>

int main()

{

    int a[10];程序填空题

#include<>

#include<>

voidmain()

{

c

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

当前位置:首页 > 工作范文 > 其它

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

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