c程序设计基础入门教程答案(C#程序设计基础入门教程答案)

hacker2年前黑客资讯95
本文导读目录:

c语言程序设计基础 衡军山 练习答案

答案没有,不过我有视频,不知道你需要不,因为我是自学,我现在就在看,感觉还不错。一听就能听懂的那种,感觉比较适合我这样入门刚学的人。最吸引的地方就是讲的难理解的概念讲的特别好,用形象比喻举例讲概念,比如变量比喻成装东西的盒子,我一下子就理解了变量赋值为什么是从右往左。还有很多这样类似的比喻。比我之前看的什么郝斌曾怡金文的晦涩难懂的都好多了。

c语言程序设计基础习题答案

1、

10,12,ai=2E

2、

#include

main(){

int

n,sum=0;

scanf

("%d",n);

while(n!=0){

sum=sum+n%10;

n=n/10;

}

printf("sum=%d",sum);}

3、

#include

int

main(){

int

up

=

0,low

=

0;

char

array[100]

=

{0};

gets(array);

for(int

i

=

0;i='a'array[i]='A'array[i]='Z'){

low++;

}

}

printf("大写字母个数:%d,小写字母个数:%d",up,low);

return

0;}

4、

#include

int

main(){

float

score[10]={0};

float

sum

=

0;

int

pass

=

0;

float

ave

=

0;

for(int

i

=

0;i=60){

pass++;

}

}

ave=sum/10.0;

printf("平均分%g\n",sum/10.0);

printf("及格人数%d\n",pass);

printf("高于平均分的分数:\n");

for(int

i

=0;i=ave){

printf("%g\n",score[i]);

}

}

return

0;}

计算机程序设计基础c语言版朱二连 习题答案

学生信息包括学号姓名性别及三门课的成绩,编写程序,输入若干学生的数据,并且保存在数组中,直到学号为0为止

c语言程序设计能力教程答案

1 【C语言】《C语言程序设计教程(第二版)》习题答案

说 明

1. 本文所指的《C语言程序设计教程(第二版)》是李凤霞主编、北京理

工大学出版社出版的,绿皮。

2 第1章 程序设计基础知识

一、单项选择题(第23页)

1-4.CBBC 5-8.DACA

二、填空题(第24页)

1.判断条件 2.面向过程编程 3.结构化 4.程序 5.面向对象的程序设计语言 7.有穷性 8.直到型循环 9.算法 10.可读性 11.模块化 12.对问题的分析和模块的划分

三、应用题(第24页)

2.源程序:

main()

{int i,j,k; /* i:公鸡数,j:母鸡数,k:小鸡数的1/3 */ brprintf("cock hen chick\n"); brfor(i=1;i=20;i++) brfor(j=1;j=33;j++) brfor(k=1;k=33;k++) brif (i+j+k*3==100i*5+j*3+k==100) brprintf(" %d %d %d\n",i,j,k*3);}

执行结果:

cock hen chick

4 18 78

8 11 81

12 4 84

3.现计算斐波那契数列的前20项。

递推法 源程序:

main()

{long a,b;int i; bra=b=1; brfor(i=1;i=10;i++) /*要计算前30项,把10改为15。*/ br{printf("%8ld%8ld",a,b); bra=a+b;b=b+a;}}

递归法 源程序:

main()

{int i; brfor(i=0;i=19;i++) brprintf("%8d",fib(i));}

fib(int i)

{return(i=1?1:fib(i-1)+fib(i-2));}

执行结果:

1 1 2 3 5 8 13 21 34 55

89 144 233 377 610 987 1597 2584 4181 6765

4.源程序:

#include "math.h";

main()

{double x,x0,deltax; brx=1.5; brdo {x0=pow(x+1,1./3); brdeltax=fabs(x0-x); brx=x0; br}while(deltax1e-12);

printf("%.10f\n",x);}

执行结果:

1.3247179572

5.源程序略。(分子、分母均构成斐波那契数列)

结果是32.66026079864

6.源程序:

main()

{int a,b,c,m; brprintf("Please input a,b and c:"); brscanf("%d %d %d",a,b,c); brif(ab){m=a;a=b;b=m;}

if(ac){m=a;a=c;c=m;}

if(bc){m=b;b=c;c=m;}

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

执行结果:

Please input a,b and c:123 456 789

789 456 123

7.源程序:

main()

{int a; brscanf("%d",a); brprintf(a%21==0?"Yes":"No");}

执行结果:

42

Yes

3 第2章 C语言概述

一、单项选择题(第34页)

1-4.BDCB 5-8.AABC

二、填空题(第35页)

1.主 2.C编译系统 3.函数 函数 4.输入输出 5.头 6. .OBJ 7.库函数 8.文本

三、应用题(第36页)

5.sizeof是关键字,stru、_aoto、file、m_i_n、hello、ABC、SIN90、x1234、until、cos2x、s_3是标识符。

8.源程序:

main()

{int a,b,c; brscanf("%d %d",a,b); brc=a;a=b;b=c; brprintf("%d %d",a,b);}

执行结果:

12 34

34 12

4 第3章 数据类型与运算规则

一、单项选择题(第75页)

1-5.DBACC 6-10.DBDBC 11-15.ADCCC 16-20.CBCCD 21-25.ADDBC 26-27.AB

二、填空题(第77页)

1.补码 2.±(10^-308~10^308) 3.int(整数) 4.单目 自右相左 5.函数调用 6.a或b 7.1 8.65,89

三、应用题(第78页)

1.10 9

2.执行结果:

11

12

1

5 第4章 顺序结构程序设计

一、单项选择题(第90页)

1-5.DCDAD 6-10.BACBB

二、填空题(第91页)

1.一 ;2. 5.169000 3.(1)-2002500 (2)I=-200,j=2500 (3)i=-200

j=2500 4.a=98,b=765.000000,c=4321.000000 5.略 6.0,0,3 7.3 8.scanf("%lf%lf%lf",a,b,c); 9. 13 13.000000,13.000000 10.a=a^c;c=c^a;a=a^c;(这种算法不破坏b的值,也不用定义中间变量。)

三、编程题(第92页)

1.仿照教材第27页例2-1。

2.源程序:

main()

{int h,m; brscanf("%d:%d",h,m); brprintf("%d\n",h*60+m);}

执行结果:

9:23

563

3.源程序:

main()

{int a[]={-10,0,15,34},i;

for(i=0;i=3;i++)

printf("%d\370C=%g\370F\t",a[i],a[i]*1.8+32);}

执行结果:

-10℃=14°F 0℃=32°F 15℃=59°F 34℃=93.2°F

4.源程序:

main()

{double pi=3.14159265358979,r=5; brprintf("r=%lg A=%.10lf S=%.10lf\n",r,2*pi*r,pi*pi*r);}

执行结果:

r=5 A=31.4159265359 S=49.3480220054

5.源程序:

#include "math.h";

main()

{double a,b,c; brscanf("%lf%lf%lf",a,b,c); brif (a+bca+cbb+ca) br{double s=(a+b+c)/2; brprintf("SS=%.10lf\n",sqrt(s*(s-a)*(s-b)*(s-c)));}

else printf("Data error!");}

执行结果:

4 5 6

SS=9.9215674165

6.源程序:

main()

{int a=3,b=4,c=5;float d=1.2,e=2.23,f=-43.56; brprintf("a=%3d,b=%-4d,c=**%d\nd=%g\ne=%6.2f\nf=%-10.4f**\n",a,b,c,d,e,f);}

7.源程序:

main()

{int a,b,c,m; brscanf("%d %d %d",a,b,c); brm=a;a=b;b=c;c=m; brprintf("%d %d %d\n",a,b,c);}

执行结果:

5 6 7

6 7 5

8.源程序:

main()

{int a,b,c; brscanf("%d %d %d",a,b,c); brprintf("average of %d,%d and %d is %.2f\n",a,b,c,(a+b+c)/3.); br执行结果: br6 7 9 braverage of 6,7 and 9 is 7.33 br9.不能。修改后的源程序如下: brmain() br{int a,b,c,x,y; brscanf("%d %d %d",a,b,c); brx=a*b;y=x*c; brprintf("a=%d,b=%d,c=%d\n",a,b,c); brprintf("x=%d,y=%d\n",x,y);}

6 第5章 选择结构程序设计

一、单项选择题(第113页)

1-4.DCBB 5-8.DABD

二、填空题(第115页)

1.非0 0 2.k==0

3.if (abs(x)4) printf("%d",x);else printf("error!");

4.if((x=1x=10||x=200x=210)x1)printf("%d",x);

5.k=1 (原题最后一行漏了个d,如果认为原题正确,则输出k=%。)

6. 8! Right!11 7.$$$a=0 8.a=2,b=1

三、编程题(第116页)

1.有错。正确的程序如下:

main()

{int a,b,c; brscanf("%d,%d,%d",a,b,c); brprintf("min=%d\n",ab?bc?c:b:ac?c:a);}

2.源程序:

main()

{unsigned long a; brscanf("%ld",a); brfor(;a;printf("%d",a%10),a/=10);}

执行结果:

12345

54321

3.(1)源程序:

main()

{int x,y; brscanf("%d",x); brif (x-5x0)y=x; brif (x=0x5)y=x-1; brif (x=5x10)y=x+1; brprintf("%d\n",y);}

(2)源程序:

main()

{int x,y; brscanf("%d",x); brif(x10) if(x-5) if(x=0) if(x=5)y=x+1; brelse y=x-1; else y=x; brprintf("%d\n",y);}

(3)源程序:

main()

{int x,y; brscanf("%d",x); brif(x10) if(x=5)y=x+1; brelse if(x=0)y=x-1; brelse if(x-5)y=x; brprintf("%d\n",y);}

(4)源程序:

main()

{int x,y; brscanf("%d",x); brswitch(x/5) br{case -1:if(x!=-5)y=x;break; brcase 0:y=x-1;break; brcase 1:y=x+1;}

printf("%d\n",y);}

4.本题为了避免考虑每月的天数及闰年等问题,故采用面向对象的程序设计。

现给出Delphi源程序和C++ Builder源程序。

Delphi源程序:

procedure TForm1.Button1Click(Sender: TObject);

begin

edit3.Text:=format('%.0f天',[strtodate(edit2.text) -strtodate(edit1.text)]);

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

Edit2.Text:=datetostr(now);

button1click(form1)

end;

C++ Builder源程序:

void __fastcall TForm1::Button1Click(TObject *Sender)

{

Edit3-Text=IntToStr(StrToDate(Edit2-Text)-StrToDate(Edit1-Text))+"天";

}

void __fastcall TForm1::FormCreate(TObject *Sender)

{

Edit2-Text=DateToStr(Now());

Button1Click(Form1);

}

执行结果:(运行于Windows下) http://img378.photo.163.com/nxgt/41463572/1219713927.jpg

5.源程序:

main()

{unsigned a,b,c; brprintf("请输入三个整数:"); brscanf("%d %d %d",a,b,c); brif(abca==ba==c)printf("构成等边三角形\n"); brelse if(a+bca+cbb+ca) brif(a==b||a==c||b==c)printf("构成等腰三角形\n"); brelse printf("构成一般三角形\n"); brelse printf("不能构成三角形\n");}

执行结果:

请输入三个整数:5 6 5

构成等腰三角形

6.源程序:

main()

{int x,y; brscanf("%d",x); brif(x20)y=1; brelse switch(x/60) br{case 0:y=x/10;break; brdefault:y=6;}

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

7.源程序:

main()

{unsigned m;float n; brscanf("%d",m); brif(m100)n=0; brelse if(m600)n=0.06; brelse n=(m/100+0.5)/100; brprintf("%d %.2f %.2f\n",m,m*(1-n),m*n);}

执行结果:

450

450 429.75 20.25

8. 2171天(起始日期和终止日期均算在内)

本题可利用第4小题编好的程序进行计算。把起始日期和终止日期分别打入“生日”和“今日”栏内,单击“实足年龄”按钮,将所得到的天数再加上1天即可。

9.源程序:

#include "math.h";

main()

{unsigned long i; brscanf("%ld",i); brprintf("%ld %d\n",i%10,(int)log10(i)+1);}

执行结果:

99887

7 5

10.源程序:

main()

{unsigned long i;unsigned j[10],m=0; brscanf("%ld",i); brfor(;i;){j[m++]=(i+2)%10;i/=10;}

for(;m;m--)i=i*10+j[m-1];

printf("%ld\n",i);}

执行结果:

6987

8109

(注:要加密的数值不能是0或以0开头。如果要以0开头需用字符串而不能是整数。)

7 第6章 循环结构程序设计

一、单项选择题(第142页)

1-4.BCCB 5-8.CBCA

二、填空题(第143页)

1.原题可能有误。如无误,是死循环 2.原题有误。如果把b=1后面的逗号改为分号,则结果是8。 3.20 4.11 5. 2.400000 6.*#*#*#$ 7.8 5 2 8.①d=1.0 ②++k ③k=n 9.①x=0 ②xamin

三、编程题(第145页)

1. 源程序:

main()

{int i=1,sum=i; brwhile(i101){sum+=i=-i-2;sum+=i=-i+2;}

printf("%d\n",sum);}

执行结果:

51

2.源程序:

main()

{double p=0,n=0,f;int i; brfor(i=1;i=10;i++) br{scanf("%lf",f); brif (f0)p+=f; else n+=f;}

printf("%lf %lf %lf\n",p,n,p+n);}

3.源程序:

main()

{unsigned a; brscanf("%ld",a); brfor (;a;printf("%d,",a%10),a/=10); brprintf("\b \n");}

执行结果:

23456

6,5,4,3,2

4.源程序:

main()

{unsigned long a,b,c,i; brscanf("%ld%ld",a,b); brc=a%1000; brfor(i=1;ib;i++)c=c*a%1000; brif(c100)printf("0"); brif(c10)printf("0"); brprintf("%ld\n",c);}

执行结果:

129 57

009

5.略

6.原题提供的计算e的公式有误(前面漏了一项1)。正确的公式是e= 1 + 1 + 1/2! + 1/3! + … + 1/n! + …

(1)源程序:

main()

{double e=1,f=1;int n; brfor(n=1;n=20;n++){f/=n;e+=f;}

printf("e=%.14lf\n",e);}

执行结果:

e=2.71828182845905

(2)源程序:

main()

{double e=1,f=1;int n; brfor(n=1;f1e-4;n++){f/=n;e+=f;}

printf("e=%.4f\n",e);}

执行结果:

e=2.7183

7.源程序:

main()

{unsigned long a=0,b=1,c=0;int i,d; brscanf("%d",d); brfor (i=1;i=(d+2)/3;i++) brprintf("%10ld%10ld%10ld",a,b,(a+=b+c,b+=c+a,c+=a+b));}

本题还可以用递归算法(效率很低),源程序如下:

unsigned long fun(int i)

{return i=3?i:fun(i-1)+fun(i-2)+fun(i-3);}

main()

{int i,d; scanf("%d",d); brfor(i=1;i=d;i++) brprintf("%10ld",fun(i));}

执行结果:

15

1 2 3 6 11 20 37 68

125 230 423 778 1431 2632 4841

8.源程序:

main()

{int i; brfor(i=1010;i=9876;i+=2) brif(i/100%11i%100%11i/10%100%11i/1000!=i%10i/1000!=i/10%10i/100%10!=i%10)printf(" %d",i);}

执行结果:

1024 1026 1028 1032 1034 1036 …… …… 9874 9876

9.源程序:

main()

{int i,j,k; brprintf("apple watermelon pear\n"); brfor(i=1;i=100;i++) brfor(j=1;j=10;j++) brif((k=100-i-j)*2==400-i*4-j*40) brprintf("%4d%7d%9d\n",i,j,k);}

执行结果:

apple watermelon pear

5 5 90

24 4 72

43 3 54

62 2 36

81 1 18

10.源程序:

#include "stdio.h";

#define N 4 /* N为阶数,可以改为其他正整数 */

main()

{int m=N*2,i,j; brfor(i=1;im;printf("\n"),i++) brfor(j=1;jm; brputchar(N-abs(i-N)=abs(j++-N)?' ':'*'));}

如果把N值改为5,则执行结果如下:

*

***

*****

*******

*********

*******

*****

***

*

c++程序设计基础教程课后答案(清华大学出版社郑莉 董渊著)

第 一 章 概述

1-1 简述计算机程序设计语言的发展历程。

解:

迄今为止计算机程序设计语言的发展经历了机器语言、汇编语言、高级语言等阶段,C++语言是一种面向对象的编程语言,也属于高级语言。

1-2 面向对象的编程语言有哪些特点?

解:

面向对象的编程语言与以往各种编程语言有根本的不同,它设计的出发点就是为了能更直接的描述客观世界中存在的事物以及它们之间的关系。面向对象的编程语言将客观事物看作具有属性和行为的对象,通过抽象找出同一类对象的共同属性(静态特征)和行为(动态特征),形成类。通过类的继承与多态可以很方便地实现代码重用,大大缩短了软件开发周期,并使得软件风格统一。因此,面向对象的编程语言使程序能够比较直接地反问题域的本来面目,软件开发人员能够利用人类认识事物所采用的一般思维 *** 来进行软件开发。C++语言是目前应用最广的面向对象的编程语言。

1-3 什么是结构化程序设计 *** ?这种 *** 有哪些优点和缺点?

解:

结构化程序设计的思路是:自顶向下、逐步求精;其程序结构是按功能划分为若干个基本模块;各模块之间的关系尽可能简单,在功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成;其模块化实现的具体 *** 是使用子程序。结构化程序设计由于采用了模块分解与功能抽象,自顶向下、分而治之的 *** ,从而有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。

虽然结构化程序设计 *** 具有很多的优点,但它仍是一种面向过程的程序设计 *** ,它把数据和处理数据的过程分离为相互独立的实体。当数据结构改变时,所有相关的处理过程都要进行相应的修改,每一种相对于老问题的新 *** 都要带来额外的开销,程序的可重用性差。

由于图形用户界面的应用,程序运行由顺序运行演变为事件驱动,使得软件使用起来越来越方便,但开发起来却越来越困难,对这种软件的功能很难用过程来描述和实现,使用面向过程的 *** 来开发和维护都将非常困难。

1-4 什么是对象?什么是面向对象 *** ?这种 *** 有哪些特点?

解:

从一般意义上讲,对象是现实世界中一个实际存在的事物,它可以是有形的,也可以是无形的。对象是构成世界的一个独立单位,它具有自己的静态特征和动态特征。面向对象 *** 中的对象,是系统中用来描述客观事物的一个实体,它是用来构成系统的一个基本单位,由一组属性和一组行为构成。

面向对象的 *** 将数据及对数据的操作 *** 放在一起,作为一个相互依存、不可分离的整体--对象。对同类型对象抽象出其共性,形成类。类中的大多数数据,只能用本类的 *** 进行处理。类通过一个简单的外部接口,与外界 *** ,对象与对象之间通过消息进行通讯。这样,程序模块间的关系更为简单,程序模块的独立性、数据的安全性就有了良好的保障。通过实现继承与多态性,还可以大大提高程序的可重用性,使得软件的开发和维护都更为方便。

面向对象 *** 所强调的基本原则,就是直接面对客观存在的事物来进行软件开发,将人们在日常生活中习惯的思维方式和表达方式应用在软件开发中,使软件开发从过分专业化的 *** 、规则和技巧中回到客观世界,回到人们通常的思维。

1-5 什么叫做封装?

解:

封装是面向对象 *** 的一个重要原则,就是把对象的属性和服务结合成一个独立的系统单位,并尽可能隐蔽对象的内部细节。

1-6 面向对象的软件工程包括哪些主要内容?

解:

面向对象的软件工程是面向对象 *** 在软件工程领域的全面应用,它包括面向对象的分析(OOA)、面向对象的设计(OOD)、面向对象的编程(OOP)、面向对象的测试(OOT)和面向对象的软件维护(OO *** )等主要内容。

1-7 简述计算机内部的信息可分为几类?

解:

计算机内部的信息可以分成控制信息和数据信息二大类;控制信息可分为指令和控制字两类;数据信息可分为数值信息和非数值信息两类。

1-8 什么叫二进制?使用二进制有何优点和缺点?

解:

二进制是基数为2,每位的权是以2 为底的幂的进制,遵循逢二进一原则,基本符号为0和1。采用二进制码表示信息,有如下几个优点:1.易于物理实现;2.二进制数运算简单;3.机器可靠性高;4.通用性强。其缺点是它表示数的容量较小,表示同一个数,二进制较其他进制需要更多的位数。

1-9 请将以下十进制数值转换为二进制和十六进制补码:

(1)2 (2)9 (3)93

(4)-32 (5)65535 (6)-1

解:

(1) (2)10 = (10)2 = (2)16

(2) (9)10 = (1001)2 = (9)16

(3) (93)10 = (1011101)2 = (5D)16

(4) (-32)10 = (11100000)2 = (E0)16

(5) (65535)10 = (11111111 11111111)2 = (FFFF)16

(6) (-1)10 = (11111111 11111111)2 = (FFFF)16

1-10 请将以下数值转换为十进制:

(1)(1010)2 (2)(10001111)2 (3)(01011111 11000011)2

(4)(7F)16 (5)(2D3E)16 (6)(F10E)16

解:

(1)(1010)2 = (10)10

(2)(10001111)2 = (143)10

(3)(01011111 11000011)2 = (24515)10

(4)(7F)16 = (127)10

(5)(2D3E)16 = (11582)10

(6)(F10E)16 = (61710)10

1-11 简要比较原码、反码、补码等几种编码 *** 。

解:

原码:将符号位数字化为 0 或 1,数的绝对值与符号一起编码,即所谓"符号——绝对值表示"的编码。

正数的反码和补码与原码表示相同。

负数的反码与原码有如下关系:

符号位相同(仍用1表示),其余各位取反(0变1,1变0)。

补码由该数反码的最末位加1求得。

第 二 章 C++简单程序设计

2-1 C++语言有那些主要特点和优点?

解:

C++语言的主要特点表现在两个方面,一是全面兼容C,二是支持面向对象的 *** 。C++是一个更好的C,它保持了C的简洁、高效、接近汇编语言、具有良好的可读性和可移植性等特点,对C的类型系统进行了改革和扩充,因此C++比C更安全,C++的编译系统能检查出更多的类型错误。 C++语言最重要的特点是支持面向对象。

2-2 下列标识符哪些是合法的?

Program, -page, _lock, test2, 3in1, @mail, A_B_C_D

解:

Program, _lock, test2, A_B_C_D是合法的标识符,其它的不是。

2-3 例2.1中每条语句的作用是什么?

#include iostream.h

void main(void)

{

cout"Hello!\n";

cout"Welcome to c++!\n";

}

解:

#include iostream.h //指示编译器将文件iostream.h中的代码

//嵌入到该程序中该指令所在的地方

void main() //主函数名,void 表示函数没有返回值

{ //函数体标志

cout"Hello!\n"; //输出字符串Hello!到标准输出设备(显示器)上。

cout"Welcome to c++!\n"; //输出字符串Welcome to c++!

}

在屏幕输出如下:

Hello!

Welcome to c++!

2-4 使用关键字const而不是#define语句的好处有哪些?

解:

const定义的常量是有类型的,所以在使用它们时编译器可以查错;而且,这些变量在调试时仍然是可见的。

2-5 请写出C++语句声明一个常量PI,值为3.1416;再声明一个浮点型变量a,把PI的值赋给a。

解:

const float PI = 3.1416;

float a = PI;

2-6 在下面的枚举类型中,Blue的值是多少?

enum COLOR ;

解:

Blue = 102

2-7 注释有什么作用?C++中有哪几种注释的 *** ?他们之间有什么区别?

解:

注释在程序中的作用是对程序进行注解和说明,以便于阅读。编译系统在对源程序进行编译时不理会注释部分,因此注释对于程序的功能实现不起任何作用。而且由于编译时忽略注释部分,所以注释内容不会增加最终产生的可执行程序的大小。适当地使用注释,能够提高程序的可读性。在C++中,有两种给出注释的 *** :一种是延用C语言 *** ,使用"/*"和"*/"括起注释文字。另一种 *** 是使用"//",从"//"开始,直到它所在行的行尾,所有字符都被作为注释处理。

2-8 什么叫做表达式?x = 5 + 7是一个表达式吗?它的值是多少?

解:

任何一个用于计算值的公式都可称为表达式。x = 5 + 7是一个表达式,它的值为12。

2-9 下列表达式的值是多少?

1. 201 / 4

2. 201 % 4

3. 201 / 4.0

解:

1. 50

2. 1

3. 50.25

2-10 执行完下列语句后,a、b、c三个变量的值为多少?

a = 30;

b = a++;

c = ++a;

解:

a:32 ; b:30 ; c:32;

2-11 在一个for循环中,可以初始化多个变量吗?如何实现?

解:

在for循环设置条件的之一个";"前,用,分隔不同的赋值表达式。

例如:

for (x = 0, y = 10; x 100; x++, y++)

2-12 执行完下列语句后,n的值为多少?

int n;

for (n = 0; n 100; n++)

c语言程序设计基础叶文珺版答案

初学者遇到最多的困惑是:上课也能听懂,书上的例题也能看明白,可是到自己动手做编程时,却不知道如何下手。发生这种现象的原因有三个:

一、所谓的看懂听明白,只是很肤浅的语法知识,而我们编写的程序或软件是要根据要解决问题的实际需要控制程序的流程,如果你没有深刻地理解C语言的语句的执行过程(或流程),你怎么会编写程序解决这些实际问题呢?

二、用C语言编程解决实际问题,所需要的不仅仅是C语言的编程知识,还需要相关的专业知识。例如,如果你不知道长方形的面积公式,即使C语言学得再好你也编不出求长方形的面积的程序来。

三、C语言程序设计是一门实践性很强的课程,“纸上谈兵”式的光学不练是学不好C语言的。例如,大家都看过精彩自行车杂技表演,假如,你从来没有骑过自行车,光听教练讲解相关的知识、规则、技巧,不要说上台表演、就是上路你恐怕都不行。

出现问题原因清楚了,那么如何学习呢?请你看【C语言学习六步曲】

特别提醒:在使用本 *** 之前一定要先阅读C语言的相关内容,要初步掌握相关知识的要点,然后按下述 *** 学习,可以达到理解、巩固、提高C语言知识和提高程序调式能力的目的。

之一步、验证性练习

在这一步要求按照教材上的程序实例进行原样输入,运行一下程序是否正确。在这一步基本掌握C语言编程软件的使用 *** (包括新建、打开、保存、关闭C程序,熟练地输入、编辑C程序;初步记忆新学章节的知识点、养成良好的C语言编程风格)。 单击此处查看【C语言的编程风格】

使用《Turbo C/C++ for Windows 集成实验与学习环境》软件可以很方便地看着软件集成的《C语言入门教程》输入练习其中的程序例题。具体使用 *** 参见软件帮助部分。

初学者最容易犯的错误是:

1、没有区分开教材上的数字1和字母l,字母o和数字0的区别,造成变量未定义的错误。另一个易错点是将英文状态下的逗号,分号;括号()双引号""输入出入成中文状态下的逗号,分号;括号(),双引号“”造成非法字符错误。

2、C语言初学者易犯语法错误:使用未定义的变量、标示符(变量、常量、数组、函数等)不区分大小写、漏掉“;”、“{”与“}”、“(”与“)”不匹配、控制语句(选择、分支、循环)的格式不正确、调用库函数却没有包含相应的头文件、调用未声明的自定义函数、调用函数时实参与形参不匹配、数组的边界超界等。

3、修改C语言语法错误时要注意以下两点:

(1)、由于C语言语法比较自由、灵活,因此错误信息定位不是特别精确。例如,当提示第10行发生错误时,如果在第10行没有发现错误,从第10行开始往前查找错误并修改之。

(2)、一条语句错误可能会产生若干条错误信息只要修改了这条错误,其他错误会随之消失。特别提示:一般情况下,之一条错误信息最能反映错误的位置和类型,所以调试程序时务必根据之一条错误信息进行修改,修改后,立即运行程序,如果还有很多错误,要一个一个地修改,即,每修改一处错误要运行一次程序。

第二步、照葫芦画瓢

在之一步输入的C程序的基础上进行试验性的修改,运行一下程序看一看程序结果发生了什么变化,分析结果变化的原因,加深新学知识点的理解。事实上这和之一步时同步进行的,实现“输入”加深知识的记忆,“修改”加深对知识的理解。记忆和理解是相辅相成的,相互促进。

例如:将最简单的Hello World!程序

#include "stdio.h"

int main()

{

printf("Hello World!\n");

return 0;

}

中的printf("Hello World!\n");中的Hello World!改成你的姓名,运行一下程序,看有什么变化?

再如求1+2+3...+100的和的程序

#include stdio.h

main()

{

int i,sum=0;

for(i=1;i=100;i++)

{

sum=sum+i;

}

printf("sum=%d\n",sum);

}

 

第1次将for(i=1;i=100;i++)中的100改成50,运行一下程序,看有什么变化?

第2次将for(i=1;i=100;i++)中的i++改成i=i+2,运行一下程序,看有什么变化? 

找出程序结果变化的原因,就加深了对C语句的理解。

 

第三步、不看教材看是否能将前两步的程序进行正确地输入并运行。

在这一步要求不看教材,即使程序不能运行,看能否将其改正,使其能正确运行。目的是对前两步的记忆、理解进一步强化。

第四步、增强程序的调试能力

在《Turbo C/C++ for Windows 集成实验与学习环境》集成的教材中每章都有C语言初学者易犯的错误,按照易出错的类型,将教材中的正确的程序改成错误的程序,运行一下程序,看出现的错误信息提示,并记下错误信息,再将程序改成正确的,运行一下程序。这样反复修改,就能够学习C语言程序发生错误的原因和修改错误的能力。

注意:每次只改错一个地方,目的是显示发生该错误的真正原因,避免一次改动多个地方,搞清发生错误的真正原因,切记!!!!

注意:上机调试程序时要带一个记录本,记下英文错误提示信息和解决该错误问题的 *** ,积累程序调试经验,避免在编程犯同样的错误,切记!!!!

例如,将Hello World程序中语句printf("Hello World!\n");中的;改成中文的分号;运行一下程序,看有什么结果?

C语言的错误信息的形式:(下面例子是的Turobo C2.0错误信息,如图1)

错误 文件名 行号 冒号 错误内容

↓ ↓ ↓ ↓ ↓

Error E:\WinTc\WinTc\frist.c 5 : Function call missing) in function main

C语言的错误信息的形式:(下面例子是Visual C++6.0 错误信息,如图2)

文件名 行号 冒号 错误代码 冒号 错误内容

↓ ↓ ↓ ↓ ↓ ↓

e:\wintc\wintc\frist.c ( 5 ) : error C2143 : syntax error : missing ')' before ';'

软件集成了高校教学用的最多的两个编译器Visual C++6.0和Turbo c 2.0,支持C、标准C、C++、标准C++、WINDOWS C程序的编辑、编译、和调试。软件根据用户输入程序的类型智能选择编译器,不用使用者干涉。

调试程序是一种实践性很强的事,光纸上谈兵是是没用的,就像游泳运动员只听教练讲解示范,而不亲自下水练习,是永远学不会游泳的。 即使在优秀的程序员编写程序也会犯错误的,可能事更低级的语法错误,但他能快速发现错误并改正错误,而我们C语言初学者面对错误提示,不知道发生了什么错误,如何改正,这就是差别。

第五步、研究典型的C语言程序,提高程序设计能力

经过上述过程的学习,我们已经学会了C语言各种语句的流程(即计算机是如何执行这些语句的过程),然后就可以研读别人编写C语言经典程序,看懂别人是如何解决问题的,学习解决问题的 *** 和程序设计技巧,提高自己的程序设计能力。

在软件中有50多个典型的源程序,研究它的实现 *** ,提高自己的程序设计能力。

 

第六步、研究课程设计源成序,提高C语言程序设计的能力。

C语言课程设计的目的:是让学生综合利用所学的C语言知识,解决一些接近实际问题题目,提高程序设计和调试较大程序的能力,为进一步进行软件开发打下坚实的基础。

最后送C语言初学者一句话来共勉:首先要相信自己是有能力学好C语言的,然后不惜一切代价把这种能力表现出来,你就成功了。做任何事,何尝不是这样呢?兴趣是学习C语言的更大动力,学习 *** 给你指明努力的方向,让你事半功倍。如果你感觉对你有帮助的话,请回帖支持,让更多的朋友知道它,谢谢支持!!!

求《C语言程序设计基础》的课后习题答案

大学学习资料免费下载网 有类似资料

在 其他公共课程 版块

标题:陈东方 C语言程序设计基础实验与题解(答案)

中国物联网校企联盟技术部

相关文章

开的房记录会显示几个人开么_寻找黑客高手联系方式?求黑客高手联系方式

“一片式文胸”又称一次成型文胸、无缝文胸、工厂一般叫一件围等,除搭扣处没有一个线头,接口都为一片式热压技术,钢圈处也是平滑过渡的,再不会有钢圈外露的难受尴尬,无缝一片式内衣的制造原理是什么?一片式文胸...

用手机赚钱的游戏,来看看你了解多少呢?

说到在网上赚钱的手机游戏实际上有很多,一般日常生活大部分人仅仅把手机游戏作为游戏娱乐的一种方法罢了,并沒有真实想运用手机游戏来挣钱,那今日就由我带大伙儿分析一下在手机上就能挣钱的游戏有什么?自然针...

黑客帮选课,现实生活中该去哪里找黑客,淘宝黑客找回微信密码

犯罪分子能够拜访ATM网络,进犯可用的网络服务,阻拦和假造流量,并进犯网络设备。 犯罪分子能够假造来自处理中心的呼应,获取ATM的操控权。 27 主机办理这种形式是先将明文切分红若干小段,然后每一小段...

从在线教育市场说开去——多维度分析背单词App前景

从在线教育市场说开去——多维度分析背单词App前景

跟着互联网在教诲行业的渗透,大量单词app涌现出来,好像是让背单词这件事更轻松了。本文作者对背单词市场近况及成长展开梳理,并对相关App举办了具体阐明,与各人分享。 媒介 受疫情影响,许多行业都遭到...

ps怎么复制选区

开启ps,导进素材图片,点一下左边菜单栏的迅速挑选专用工具,抠出来角色地区,ctrl J将角色拷贝出去,最终将背景层掩藏就可以。 知名品牌型号规格:想到GeekPro 2020 系统软件:win10...

黑客帝国4尼奥不会飞了(黑客帝国3尼奥死了)

黑客帝国4尼奥不会飞了(黑客帝国3尼奥死了)

本文导读目录: 1、黑客帝国4深度解析 2、里维斯是如何保持《黑客帝国4》“尼奥”身材的? 3、对于《黑客帝国4》这部电影,你作何评价? 4、黑客帝国4为什么崔妮蒂有能力了 5、黑客帝...