当前位置:文档之家› C++面向对象程序设计课后题答案

C++面向对象程序设计课后题答案

C++面向对象程序设计课后题答案
C++面向对象程序设计课后题答案

面向对象程序设计课后题答案

第二章C++概述

【2.6】D

【2.7】D

【2.8】A

【2.9】A

【2.10】B

【2.11】A

【2.12】C

【2.13】B

【2.14】D

【2.15】C

【2.16】D

【2.17】C

【2.18】程序的运行结果:

101

【2.19】程序的运行结果:

10 10

【2.20】程序的运行结果:

10

20

【2.22】编写一个C++风格的程序,用动态分配空间的方法计算Fibonacci数列的前20项并存储到动态分配的空间中。

#include

int main()

{

int *p,i;

p=new int[20];

p[0]=1;

p[1]=1;

for(i=2;i<20;i++)

{

p[i]=p[i-1]+p[i-2];

}

for(i=0;i<20;i++)

{

cout<

}

return 0;

}

【2.23】编写一个C++风格的程序,建立一个被称为sroot()的函数,返回其参数的二次方根。重载sroot()3次,让它返回整数、长整数与双精度数的二次方根。

#include

#include

double sroot(int m)

{

return sqrt(m);

}

double sroot(long m)

{

return sqrt(m);

}

double sroot(double m)

{

return sqrt(m);

}

int main()

{

cout<<"sroot(145)="<

cout<<"sroot(123456)="<

cout<<"sroot(1.44)="<

return 0;

}

【2.24】编写一个C++风格的程序,解决百钱问题:将一元人民币兑换成1、2、5分的硬币,有多少种换法?

#include

int main()

{

int k=0;

for(int i=0;i<=20;i++)

{

for(int j=0;j<=50;j++)

{

if(100-5*i-2*j>=0)

{

k++;

}

}

}

cout<<"将一元人民币兑换成1、2、5分的硬币,共有"<

return 0;

}

【2.25】编写一个C++风格的程序,输入两个整数,将它们按由小到大的顺序输出。要求使用变量的引用。

void change(int &a,int &b)

{

int t=a;

a=b;

}

int main()

{

int m,n;

cout<<"请输入两个整数:";

cin>>m>>n;

if(m>n)

change(m,n);

cout<<"这两个数从小到大依次为: "<

return 0;

}

【2.26】编写一个C++风格的程序,用二分法求解f(x)==0的根。假设方程为:2*x*x*x-4*x*x+3*x-6=0

#include

#include

using namespace std;

double f(double x)

{

return 2*x*x*x-4*x*x+3*x-6;

}

int main()

{

double left,right,middle,ymid,yleft,yright;

cout<<"请按由小到大的顺序输入两个数:";

cin>>left>>right;

yleft=f(left);

yright=f(right);

if(yleft*yright>0)

cout<<"您输入的两个数,用二分法无法求得方程的根"<

exit(0);

}

do{

middle=(left+right)/2;

ymid=f(middle);

if(yleft*ymid<0)

{

right=middle;

yright=ymid;

}

if (yright*ymid<0)

{

left=middle;

yleft=ymid;

}

}while(fabs(ymid)>=1e-6);

cout<<"方程的根为:"<

return 0;

}

第三章类和对象

【3.6】假设在程序中已经声明了类point,并建立了其对象p1和p4。请回答以下几个语句有什么区别?

(1)point p2,p3;

(2)point p2=p1;

(3)point p2(p1);

【解答】语句(1)使用带默认参数的构造函数,或不带参数的构造函数,定义了point类的两个对象p2,p3;

语句(2)在建立新对象p2时,用已经存在的对象p1去初始化新对象p2,在这个过程中用“赋值法”调用了拷贝构造函数;

语句(3)在建立新对象p2时,用已经存在的对象p1去初始化新对象p2,在这个过程中用“带入法”调用了拷贝构造函数;

【3.7】B

【3.8】C

【3.9】C

【3.10】B

【3.11】B

【3.12】A

【3.13】A

【3.14】 B

【3.15】A

【3.16】B

【3.17】B

【3.18】写出下面程序的运行结果。

10,20

30,48

50,68

70,80

90,16

11,120

【3.19】写出下面程序的运行结果。

Constructing

10

Destructing

100

Destructing

【3.20】写出下面程序的运行结果。

3 objects in existence

4 objects in existence after allocation 3 objects in existence after delection 【3.21】写出下面程序的运行结果。Counting at 0

Counting at 1

Counting at 2

Counting at 3

Counting at 4

Counting at 5

Counting at 6

Counting at 7

Counting at 8

Counting at 9

【3.22】写出下面程序的运行结果。Default constructor called.

Default constructor called.

Default constructor called. Constructor: a=1, b=2 Constructor: a=3, b=4 Constructor: a=5, b=6

【3.23】写出下面程序的运行结果。Con.

Copy con.

default.

【3.24】写出下面程序的运行结果。A=5

B=14

A=9

B=14

【3.25】写出下面程序的运行结果。

5,7

22,25

【3.26】写出下面程序的运行结果。

Constructing

Constructing

A=5

B=15

Destructing

A=10

B=15

Destructing

Destructing

Destructing

【3.27】指出下列程序中的错误,并说明为什么。

class Student

{

char name[10];

int age;

float aver;

void printStu();

};

void main()

{

Student p1,p2,p3;

p1.age = 30; //Error: age为私有成员,不能在类外直接访问}

【3.28】指出下列程序中的错误,并说明为什么。

class Student

int age;

int sno;

public: /*在成员函数定义前加public,不然默认为private,则在主函数中不能调用私有的成员函数*/ void printStu();

void setSno(int d);

void setAge(int a); //添加成员函数的声明

};

void printStu()

//类外定义成员函数需加类名::,改为:void Student::printStu()

{

cout<<"\nStudent No. is "<

cout<<"age is "<

}

void setSno(int s)

//类外定义成员函数需加类名::,改为:void Student:: setSno(int s)

{

sno=s;

}

void setAge(int a)

//类外定义成员函数需加类名::,改为:void Student:: setAge(int a)

{

age = a;

}

void main()

{

Student lin;

lin.setSno(20021);

lin.setAge(20);

lin.printStu();

【3.29】指出下列程序中的错误,并说明为什么。

class Point

{

public:

int x,y;

private:

Point()//构造函数不能说明为private的

{

x = 1;

y = 2;

}

};

void main()

{

Point cpoint;

cpoint.x = 2;

}

构造函数Point是私有的,语句“Point copint;”执行时出现错误。错误的原因是:类Point的构造函数是私有函数,创建对象cpoint时不能调用它。

【3.30】下面是一个计算器类的定义,请完成该类成员函数的实现。

#include

using namespace std;

class Counter

{

public:

Counter(int number);

void decrement(); //给原值减1

int getValue(); //取得计数器值

int print(); //显示计数

private:

int value;

};

counter::counter(int number)

{

value = number;

}

void counter::increment()

{

value++;

}

void counter::decrement()

{

value--;

}

int counter::getvalue()

{

return value;

}

int counter::print()

{

cout<<"\nvalue is: "<

}

void main()

{

counter op(10);

op.decrement();

op.print();

op.increment();

op.print();

}

【3.31】根据注释语句的提示,实现类Date的成员函数。#include

using namespace std;

class Date

{

public:

void printDate();//显示日期

void setDay(int d);//设置日的值

void setMonth(int m);//设置月的值

void setYear(int y);//设置年的值

private:

int day,month,year;

};

void Date::printDate()

{

cout<

}

void Date::setDay(int d)

{

day = d;

}

void Date::setMonth(int m)

{

month = m;

void Date::setYear(int y)

{

year = y ;

}

int main()

{

Date testDay;

testDay.setDay(5);

testDay.setMonth(10);

testDay.setYear(2003);

testDay.printDate();

return 0;

}

【3.32】建立类cylinder,cylinder的构造函数被传递了两个double值,分别表示圆柱体的半径和高度。用类cylinder计算圆柱体的体积,并存储在一个double变量中。在类cylinder中包含一个成员函数vol(),用来显示每个cylinder对象的体积。

#include

using namespace std;

const double PI=3.1415926;

class Cylinder

{

double radius,height,volume;

public:

Cylinder(double r,double h)

{

radius=r;

height=h;

volume=PI*radius*radius*height;

}

{

cout<<"the volume is"<

}

};

int main()

{

Cylinder c(2,5);

c.vol();

return 0;

}

【3.33】构建一个类book,其中含有两个私有数据成员qu和price,建立一个有5个元素的数组对象,将qu初始化为1~5,将price初始化为qu的10倍。显示每个对象的qu*price值。

【3.34】修改上题,通过对象指针访问对象数组,使程序以相反的顺序显示对象数组的qu*price值。

#include

using namespace std;

class Book

{

private:

int qu,price;

public:

Book(int i);

void print();

void printqandp();

};

Book::Book(int i)

{

qu = i;

price = qu * 10;

}

void Book::print()

{

cout<<"the Book's qu is: "<

cout<<"the Book's price is: "<

}

void Book::printqandp()

{

cout<<"the Book's qu*price is: "<

void main()

{

Book a[5] = {1,2,3,4,5};

int i;

for(i = 0; i < 5; i++)

{

a[i].print();

}

Book *b = &a[4]; //逆序显示数组元素

for(i = 0; i < 5; i++)

{

b->printqandp();

b--;

}

Book *c = a; //顺序显示数组元素

for(i = 0; i < 5; i++)

{

c->printqandp();

c++;

}

}

//或者

class Book

{

private:

int qu,price;

public:

Book(int q,int p);

void print();

void printqandp();

};

Book::Book(int q,int p)

{

qu = q;

price = p;

}

void Book::print()

{

cout<<"the Book's qu is: "<

cout<<"the Book's price is: "<

}

void Book::printqandp()

{

cout<<"the Book's qu*price is: "<

}

void main()

{

Book a[5] = {Book(1,10),Book(2,20),Book(3,30),Book(4,40),Book(5,50)}; int i;

for(i = 0; i < 5; i++)

{

a[i].print();

}

Book *b = &a[4]; //逆序显示数组元素

for(i = 0; i < 5; i++)

{

b->printqandp();

b--;

}

Book *c = a; //顺序显示数组元素

for(i = 0; i < 5; i++)

{

c->printqandp();

c++;

}

}

【3.35】构建一个类Stock,含字符数组stockcode[]及整型数据成员quan、双精度型数据成员price。构造函数含3个参数:字符数组na[]及q、p。当定义Stock的类对象时,将对象的第一个字符串参数赋给数据成员stockcode,第2个和第3个参数分别赋给quan和price。未设置第2个和第3个参数时,quan 的值为1000,price的值为8.98。成员函数print()没有形参,需使用this指针,显示对象数据成员的内容。假设类Stock第1个对象的三个参数为:“600001”、3000和5.67,第2个对象的第1个数据成员的值是“600001”,第2和第3个数据成员的值取默认值。要求编写程序分别显示这两个对象数据成员的值。

#include

#include

using namespace std;

class Stock

{

public:

Stock(char na[], int q = 1000,double p =8.98);

print();

private:

char stockcode[16];

int quan;

float price;

};

Stock::Stock(char na[], int q,double p)

{

strcpy(stockcode, na);

quan = q;

price = p;

}

Stock::print()

{

cout<<"stocknode: "<stockcode<<" "<<"quan: "<quan;

cout<<" "<<"price: "<price<

}

void main()

{

Stock a("600001",3000,5.67);

Stock b("600001");

a.print();

b.print();

}

【3.36】编写一个程序,已有若干学生的数据,包括学号、姓名、成绩,要求输出这些学生的数据并计算出学生人数和平均成绩(要求将学生人数和总成绩用静态数据成员表示)。

#include

#include

using namespace std;

class Student

string name;

string sno;

double score;

static int num;

static double sum;

public:

Student(string n,string no,double s);

void print();

static double getAverage();

static double gettotal();

static int getnum();

};

int Student::num=0;

double Student::sum=0;

Student::Student(string n,string no,double s)

{

name=n;

sno=no;

score=s;

num++;

sum+=s;

}

void Student::print()

{

cout<<"学生的学号为:"<

int Student::getnum()

return num;

}

double Student::getAverage()

{

if (num==0)

return 0;

else

return sum/num;

}

double Student::gettotal()

{

return sum;

}

int main()

{

cout<<"当前学生人数为:"<

Student s1("12012","张明",80);

s1.print();

cout<<"当前学生人数为:"<

Student s2("09615","李涛",50);

s2.print();

cout<<"当前学生人数为:"<

大一思修课后答案

《大一思修课后答案》 1、大学生怎样尽快适应大学新生活? (1)认识大学生活特点,了解大学生活得变化。 大学生活得新特点:宽松与自主并存得学习环境;统一与独立并存得生活环境;丰富与平等并存得人际环境;多彩与严谨并存得课余环境。 (2)提高独立生活能力。 确立独立生活意识;虚心求教、细心体察;大胆实践、不断积累生活经验。不断提高生活上得自理能力,包括一些基本得生活能力;学会用平等得态度对待她人,正确地认识与评价自己,客观地对待别人得优势。 (3)树立新得学习理念。 树立自主学习得理念;树立全面学习得理念;树立创新学习得理念;树立终身学习得理念。(4)培养优良学风。 高度要求自己,努力做到“勤奋、严谨、求就是、创新”。 2、当代大学生得历史使命与成才目标就是什么? 不同时代得青年面对不同得历史课题,承担着不同得历史使命。当代大学生承担得就是建设中国特色社会主义、实现中华民族伟大复兴得历史使命。 成为德智体美全面发展得社会主义事业得建设者与接班人,就是历史发展对大学生得必然要求,就是党与人民得殷切期望,也就是大学生需要确立得成才目标。大学培养目标所要求得德智体美方面得素质就是相互联系、相互制约得统一体。 德就是人才素质得灵魂;智就是人才素质得基础;体就是人才素质得条件;美就是人才素质得重要内容。大学生得全面发展,就就是德智体美得全面发展,就是思想道德素质、科学文化素质与健康素质得全面提高。当代大学生应努力成长为主动发展、健康发展、与谐发展得一代新人。 3、谈谈您对社会主义核心价值体系得科学内涵极重要意义得理解? 科学内涵:巩固马克思主义指导地位,坚持不懈得用马克思主义中国化最新成果武装全党、教育人民,用中国特色社会主义共同理想凝聚力量;用以爱国主义为核心得民族精神与以改革创更新为核心得时代精神鼓舞斗志;用社会主义荣辱观引领风尚,巩固全党全国各民族人名团结奋斗得共同思想基础。 意义:它为当代大学生加强自身修养。锤炼优良品德、成长为德智体美全面发展得社会主义事业得合格建设者与可靠接班人指明了努力方向,提供了发展动力,明确了基本途径。当代大学生只有自觉学习与践行社会主义核心价值体系,才能健康得成长为有理想、有道德、有文化、有纪律得社会主义“四有”新人。 4、当代大学生提高思想道德素质与法律素质为什么要自觉学习与践行社会主义核心价值体系? 社会主义核心价值体系就是社会意识得本质体现。社会主义核心价值体系在构建与谐社会、建设与谐文化中应运而生;社会主义核心价值体系就是建设与谐文化得根本;建设社会主义核心价值体系就是构建社会主义与谐社会得重要保证;建设社会主义核心价值体系就是适应新形势、迎接新挑战、完成新任务得迫切需要。 社会主义核心价值体系也就是引领当代大学生成长成才得根本指针,它为当代大学生加强自身修养、锤炼优良品德、成长为德智体美全面发展得社会主义事业得合格建设者与可靠接班人指明了努力方向,提供了发展动力,明确了基本途径。 5、结合实际谈谈学习“思想道德修养与法律基础”课得意义与方法。

C语言程序的设计填空题及答案复习用

导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【3.1】下面程序的功能是不用第三个变量,实现两个数的对调操作。 #include main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a= ①; b= ②; a= ③; printf("a=%d,b=%d\n",a,b); } 【3.2】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include double pi(long n) { double s=0.0; long i; for(i=1;i<=n;i++) s=s+ ①; return( ② ); } 【3.3】下面的程序的功能是求一维数组中的最小元素。findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;pamax) amax=x; if( ② ) amin=x; scanf("%f",&x); } printf("\namax=%f\namin=%f\n",amax,amin); } 【3.7】下面程序的功能是将形参x的值转换为二进制数, 所得的二进制数放在一个一维数组中返回,二进制数的 最低位放在下标为0的元素中。 fun(int x,int b[]) { int k=0,r; do { r=x% ①; b[k++]=r; x/= ②; }while(x); } 【3.8】下面程序的功能是输出1到100之间每位数的乘 积大于每位数的和的数。例如数字26,数位上数字的乘 积12大于数字之和8。 main() { int n,k=1,s=0,m; for(n=1;n<=100;n++) { k=1; s=0; ①; while( ② ) 页脚

c语言程序填空题

导出题库试题(1~100) 共计104道试题 一、程序填空答案(104题) 【程序填空】 1功能:求两个非负整数的最大公约数和最小公倍数。 【1】r != 0 或r 【2】r=m%n 或r=m-m/n*n 【3】n 【4】gcd,lcm 或n,lcm 2功能:下面的程序是求1!+3!+5!+……+n!的和。 【1】s=0 【2】i+=2 或i=i+2 或i++,i++ 【3】j<=i 或i>=j 或jj 【4】f= f * j 3功能:将一个字符串中下标为m的字符开始的全部字符复制成为另 一个字符串。 【1】p1= str1 + m 【2】*p2++=*p1++ 或*(p2++)=*(p1++) 或*p2=*p1,p2++,p1++ 或*p2=*p1++,p2++ 或*p2++=*p1,p1++ 【3】*p2='\0' 或*p2=0 或*p2=NULL【4】strcopy(str1,str2,m) 4功能:以下程序是用选择法对10个整数按升序排序。 【1】#define N 10 【2】k=I 【3】jj 或j<=N-1 或N-1>=j【4】k != i 5功能:删除一个字符串中的所有数字字符。 【1】s[i]!= 或*(s+i)!= 或*(i+s)!= 【2】|| 【3】s[j]=s[i] 或*(s+j)=*(s+i) 或s[j]=*(s+i) 或*(s+j)=s[i] 【4】delnum(item) 6功能:以每行5个数来输出300以内能被7或17整除的偶数,并求出 其和。 【1】n=0 【2】i<=300 或i<300 或300>=i 或300>i 【3】i%7 == 0 || i%17 == 0 或!(i%7)||!(i%17) 或!(i%17)||!(i%7) 或!(i%7&&i%17) 【4】n%5 == 0 或!(n%5) 或n/5*5==n 7功能:求100-999之间的水仙花数 说明:水仙花数是指一个三位数的各位数字的立方和是这个数本身。 例如:153=1^3+5^3+3^3)。 【1】k=0 【2】j=m%10 或j=m-m/10*10 或j=m-10*(m/10) 【3】return(1) 【4】fun(i) 8功能:输出9*9口诀。 【1】i<10 或10>i 【2】j++ 或++j 或j=j+1 【3】result 9功能:输出100到1000之间的各位数字之和能被15整除的所有数, 输出时每10个一行。 【1】k=0 【2】n%10 或n-n/10*10 或n-10*(n/10) 【3】while(n>0) 或while(0

思修课后题目答案

《思想道德修养与法律基础》课后答案 绪论珍惜大学生活开拓新的境界 1.大学生怎样尽快适应大学新生活? 2.当代大学生的历史使命和成才目标是什么? 3.谈谈你对社会主义核心价值体系的科学内涵极重要意义的理解? 4.当代大学生提高思想道德素质与法律素质为什么要自觉学习和践行社会主义核心价值体系? 5.结合实际谈谈学习“思想道德修养与法律基础”课的意义和方法。 第一章追求远大理想坚定崇高信念 1.结合自身实际,谈谈理想信念对大学生成长成才的重要意义。 2.如何理解马克思主义指导思想在社会主义核心价值体系中的地位? 3.如何认识个人理想与社会主义共同理想的关系? 4.结合历史与现实,谈谈对实现理想的长期性、艰巨性和曲折性的认识。 5.如何认识立志高远与始于足下的关系? 第二章继承爱国传统弘扬民族精神 1.怎样继承和发扬中华民族的爱国主义优良传统? 2.在经济全球化条件下为什么要发扬爱国主义精神? 3.新时期的爱国主义有哪些主要内容? 4.如何正确地理解和弘扬以改革创新为核心的时代精神? 5.做一个忠诚的爱国者需要在哪些方面作出努力? 第三章领悟人生真谛创造人生价值 1.在当今的社会生活条件下,许多人都十分讲求“实际”,思考人生目的这样的大问题有意义吗?为什么? 6 2.人生态度与人生观是什么关系?如何端正人生态度? 3.人生的自我价值、社会价值具有怎样的关系?如何理解当代大学生人生价值目标要与社会主义核心价值体系相一致? 4.如何理解健康的含义,怎样协调自我身心关系? 5.如何正确认识和处理个人与他人、个人与社会的关系? 6.如何协调人与自然的关系,有效解决当今世界面临的环境和资源问题? 第四章加强道德修养锤炼道德品质 1.道德的本质、功能和作用是什么? 2.中华民族的优良道德传统表现在哪些方面? 3.联系实际谈一谈树立社会主义荣辱观的重大意义。 4.怎样认识和实践公民基本道德规范的具体要求? 5.谈谈当代大学生为什么要树立诚信品质。 第五章遵守社会公德维护公共秩序 1.当代社会公共生活有哪些特点?如何维护公共生活秩序? 2.公共生活有序化对经济社会发展有何重要意义? 3.社会公德的基本特征和主要内容是什么? 4.联系实际谈谈大学生应当如何增强自身的公德意识? 5.遵守网络生活中道德要求的重要意义是什么? 6.谈谈法律规范在公共生活中的作用。 第六章培育职业精神树立家庭美德 1.如何理解社会主义职业道德的基本要求?

C语言程序设计程序填空题库及答案

程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【】下面程序的功能是不用第三个变量,实现两个数的对调操作。#include <> main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a= ①; b= ②; a= ③; printf("a=%d,b=%d\n",a,b); }

【】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include <> double pi(long n) { double s=; long i; for(i=1;i<=n;i++) s=s+ ①; return( ②); } 【】下面的程序的功能是求一维数组中的最小元素。 findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;p

C语言课后习题答案(最终)

第0章习题 1. 将下列十进制数分别转化为二进制数、八进制数和十六进制数: (1)128 (2)511 (3)1024 (4)65535 (5)1048575 答: (1)10000000、200、80 (2)111111111、777、1FF (3)10000000000、2000、400 (4)1111111111111111、177777、FFFF (5)11111111111111111111、3777777、FFFFF 2. 将下列二进制数转化为十进制数和十六进制数: (1)1100110101B (2)101101.1011B 答: (1)821、335 (2)45.6875、2D.B 3. 写出下列数的原码、反码、补码:15、-20、-27/32 答: (1)00001111、00000000、00001111 (2)10010100、11101011、11101100 (3)1.1101100、1.0010011、1.0010100 4. 16位无符号定点整数的数值表示范围为多少?8位补码的表示范围是多少?16位补码的表示范围是多少? 答: 0~65535、-128~127、-32768~32767 5.1968年Dijkstra提出结构化程序设计的思想的原因是什么?简要回答结构化程序设计的经典定义。 答: 结构化程序设计概念的提出主要是源于程序结构的层次性与模块化使得构造出来的软件具有良好的可理解性和可维护性,随着软件规模的扩大与复杂性的提高,程序的可维护性成为程序设计者们关注的重要问题之一。 如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。 6.C程序在内存中存储在哪儿?计算机的内存空间是如何分区的?分区存放不同类型的数据的目的是什么? 答:

C语言程序设计习题集(3)

指针 一单项选择题(每题2分,共40分) 1 以下叙述中错误的是_B__。 A 在程序中凡是以“#”开始的语句行都是预处理命令行 B 预处理命令行的最后不能以分号表示结束 C #define MAX是合法的宏定义命令行 D C程序对预处理命令行的处理是在程序执行的过程中进行的 2 若程序中有宏定义行:#define N 100 ,则以下叙述中正确的是__B_。 A 宏定义行中定义了标识符N的值为整数100 B 在编译程序对C源程序进行预处理时用100替换标识符N C 对C源程序进行编译时用100替换标识符N D 在运行时用100替换标识符 3 若有如下宏定义: #define N 2 #define y(n) ((N+1)*n) 则执行下列语句:z=4*(N+y(5));后的结果是_B__。 A 语句有错误 B z值为68 C z值为60 D z值为180 4 以下程序运行后的输出结果是_A__。 #define F(X,Y) (X)*(Y) main() { int a=3,b=4; printf("%d\n",F(a++,b++)); } A 12 B 15 C 16 D 20 5 以下程序运行后的输出结果是_C__。 #define f(x) (x*x) main() { int i1,i2; i1=f(8)/f(4); i2=f(4+4)/f(2+2); printf("%d,%d\n",i1,i2); } A 64,28 B 4,4 C 4,3 D 64,64 6 若已定义a为int型变量,则__D_是对指针变量p的正确说明和初始化。 A int p=&a; B int *p=a; C int *p=*a; D int *p=&a; 7 已知下列说明语句: static int a[]={2,4,6,8} static int *p[]={a,a+1,a+2,a+3}; int **q; q=p; 则表达式**(q+2)的值是_A__。 A 6 B 2 C 4 D 8 8 下面是一个初始化指针的语句:int *px=&a;,其中指针变量的名字应该__C_。 A *px B a C px D &a 9 若指针px为空指针,则_B__。。

《思想道德修养与法律基础》课后思考题答案

《思想道德修养与法律基础》课后思考题参考答案 答题时需注意: 1.如果是简答题,仅答要点,不要展开阐述。 2.如果是论述题,每个要点之下都要展开阐述;如果题目要求联系实际则必须联系。 3.部分课后思考题题目很大,可以拆分成若干道题,复习时注意自己总结。 4.老师总结的答案仅供参考! 第一章人生的青春之问 1.为什么要树立正确的人生观? 答:人生观是人们关于人生目的、人生态度、人生价值等人生问题的总观点和总看法。人生观决定着人生道路的方向,也决定着人们行为选择的价值取向和用社么样的方式对待实际生活。每个人都会对“做什么人”和“怎样做人”的问题形成一定的认识,无论自觉与否,都会在这种认识的影响下实践自己的人生。因此,有什么样的人生观就会有什么样的人生。由于人们在现实社会关系中的地位不同,经济利益和政治立场不同,生活经历、人生遭遇、认识水平不同,人们对人生的看法也不同。不同的人生观往往意味着不同的生活道路和生活方式,并赋予人生以不同的意义。人的生命只有一次,理应认真严肃地思考人生,努力领悟人生的真谛,选择正确的人生道路,树立崇高的人生追求,实现应有的人生价值。 2.如何理解人生目的,人生态度和人生价值的关系?为什么说人生目的是人生观的核心? 答:人生目的,人生态度和人生价值这三个方面相互联系、相辅相成、统一为一个有机整体,具体讲就是,人生目的决定着人们对待实际生活的基本态度和人生价值的评判标准,人生态度影响着人们对人生目的的持守和人生价值的评判,人生价值制约着人生目的和人生态度的选择。 人生目的是人生观的核心,在人生实践中具有重要作用。首先人生目的决定人生道路。正确的人生目的使人做出正确的选择,始终朝着正确的人生发方向前进。其次,人生目的决定人生态度。正确的人生目的使人无所畏惧、顽强拼搏、积极进取、乐观向上,以昂扬乐观的人生态度正确对待人生道路上的顺逆曲直,错误的人生目的使人投机钻营、犯罪、或是虚度人生、放纵人生,或是悲观消沉、厌世轻生。再次,人生目的决定人生价值选择。正确的人生目的会使人懂得人生的价值首先在于分享,从而在工作中尽心尽力尽责;错误的人生目的则会使人把人生价值理解为向社会或他人进行索取,从而把追逐个人私利视为有价值的人生,而漠视对国家、社会、集体和他人的义务与责任。 3.根据马克思主义关于个人与社会关系的原理说明人生的自我价值与社会价值的关系。 答:个人与社会是对立统一的关系,两者相互依存、相互制约、相互促进。社会是由一个个具体的人组成的,离开了人就没有社会,社会是人的存在形式。同时,人是社会的人,离开了社会人也无法生活。个人与社会的关系,最根本的是个人利益与社会利益的关系。人的社会性决定了人只有在推动社会进步的过程中,才能实现自我的发展。 人生的自我价值是个体的人生活动对自己的生存和发展所具有的价值,主要表现为对自身物质和精神需要

C语言程序填空题及答案

C语言程序填空题及答 案 集团企业公司编码:(LL3698-KKI1269-TM2483-LUI12689-ITT289-

程序填空题 1、 #include void main() { int n,k=0; scanf("%d",&n); while( _____1_____ ) // 1)n 2) n!=0; { k++; _____2_____; n=n/10 } printf("%d\n",k); } 2、 #include #include #define f(x) x*x-5*x+sin(x) void main() { int x; float max; ______1______ // max=f(1); for(x=2;x<=10;x++) ______2______ // if(f(i)>max) max=f(i); printf("%f\n",max);

} 3、 #include void main() { char c; c=getchar(); if(______1______) // c>='a' && c<'v' c=c+5; else if (c>='v' && c<='z') ______2______ //c=c-21; putchar(c); } 4、 #include void Dec2Bin(int m) { int bin[32],j; for(j=0;m!=0;j++) { bin[j]= ______1______; // m%2

最新c语言课后习题答案汇总

c语言课后习题答案

第二章习题 2.什么叫做结构化算法?为什么要提倡结构化算法? 答:结构化算法是由一些基本结构顺序组成的。在基本结构之间不存在向前或向后的跳转,流程的转移只存在于一个基本的结构范围内。一个非结构化的算法可以用一个等价的结构化算法代替,其功能不变。 跟结构化算法比较起来,非结构化算法有以下缺点: 流程不受限制的随意转来转去,使流程图豪无规律使人在阅读的时候难以理解算法的逻辑.难以阅读,也难以修改,从而使算法的可靠性和可维护性难以保证。 4. 第三章习题 1.#include #include void main() { unsigned int n;

float p,p1,r=0.09; scanf("%u",&n); p=pow(1+r,n); p1=(p-1)*100; printf("%5.2f%%\n",p1); } 运行结果:输入,回车,见结果: 2.#include #include int main() { int bj=1000; float r1,r2,r3,r5,r0,lx1,lx2,lx3,lx4,lx5; r1=0.0414; r2=0.0468; r3=0.0540; r5=0.0585; r0=0.0072; lx1=bj*r5; lx2=bj*(1+r2)*r3; lx3=bj*(1+r3)*r2; lx4=bj*pow(1+r1,5); lx5=bj*r0*5; printf("lx1=%f lx2=%f lx3=%f lx4=%f lx=5%f\n",lx1,lx2,lx3,lx4,lx5); return 0; } 运行结果: 3.#include #include int main() { long d,p; d=300000; p=6000; double m,r=0.01; m=log(p/(p-d*r))/log(1+r); printf("%4.2f",m); return 0;

思修课后思考题答案

1? 绪论珍惜大学生活开拓新的境界? 一、大学生应如何尽快适应大学新生活?? 1.认识与适应大学生活。(学习要求的变化,生活环境的变化,社会活动的变化)? (树立自立自强自信自律的生活意识提高明辨是非善恶的能力虚心求教,细心体察大胆实践,积累生活经验)?2.更新学习理念。(自主、全面、创新、合作、终身学习理念)? 3.确立成才目标。(德是人才素质的灵魂,智是人才素质的基本内容,体是人才素质的基础,美是人才素质的综合体现)? 二、如何理解思想道德素质和法律素质对大学生成长成才的作用?? 1.思想道德素质和法律素质是人的基本素质,体现着人们协调各种关系、处理各种问题时所表现出的是非善恶判断的能力和行为选择的能力,是政治素养、道德品格和法律意识的综合体,决定着人们在日常生活中的行动目的和方向。?2.良好的思想道德素质是促进个体健康成长、社会发展进步的重要保障和基础。? 3.良好的法律素质对于保证人们合法得实施行为,一发维护各种正当的权益,履行法定义务,弘扬社会主义法治精神,具有重要意义。? 三、为什么要将社会主义核心价值观内化于心、外化于行??1.实现中华民族伟大复兴的中国梦的价值支撑;?2.协调推进“四个全面”战略布局的精神动力;?3.引导大学生进德修业成长成才的根本指针。?四、如何认识学习本课程的重要意义和基本方法? 1、重要意义:有助于当代大学生认识立志、树德和做人的道理,选择正确的成才

之路;有助于当代大学生掌握丰富的思想道德和法律知识,为提高思想道德和法律素养打下知识基础;有助于当代大学生摆正“德”与“才”的位置,做到德才兼备、全面发展。? 2、基本方法:学好科学理论;掌握基本知识;注重联系实际;坚持学以致用。?? 第一章追求远大理想坚定崇高信念? 一、谈谈理想信念对大学生成长成才的重要意义。? 1.理想信念指引奋斗目标。人的理想信念,反映的是对社会和人自身发展的期望。因此,有什么样的理想信念,就意味着以什么样的期望和方式去改造自然和社会、塑造和成就自身。只有树立起崇高的理想信念,才能够解答好人生的意义、奋斗的价值以及做什么人等重要的人生课题。? 2.理想信念提供前进动力。大学时期,同学们都普遍面临着一系列人生课题,这些问题的解决,都需要有一个总的原则和目标,这需要树立科学崇高的理想信念。大学时期确立的理想信念,对今后的人生之路产生重大影响,甚至会影响终身。?3.理想信念提高精神境界。大学生只有树立崇高的理想信念,才能明确学习的目的和意义,激发起为国家富强、民族振兴和人民幸福而发愤学习的强烈责任感与使命感,努力掌握建设祖国、服务人民的本领。? 二、如何认识个人理想与中国特色社会主义共同理想的关系?? 1.个人理想是指处于一定历史条件和社会关系中的个体对于自己未来的物质生活、精神生活所产生的种种向往和追求;?2.社会理想是指社会集体乃至社会全体成员的共同理想,即在全社会占主导地位的共同奋斗目标;?3.个人理想与社会理想有机地联系在一起,二者相互联系、相互影响,又相互区别、相互制约;? 4.社会理想规定、指引着个人理想。人是社会的人,实现理想的实践活动在社会

模块化程序设计练习题及答案

第四章模块化程序设计练习题及参考答案 一、填空题 1、以下程序的运行结果是(111),把x定义为静态变量运行结果是(123)。void increment(void) { int x=0; x+=1; printf("%d",x);} main() { increment(); increment(); increment(); } 2、若输入的值是-125,以下程序的运行结果是(-125=-5*5*5) #include "" main() { int n; void f(int n); scanf("%d",&n); printf("%d=",n); if(n<0) printf("-"); n=fabs(n); fun(n); } void fun(int n) { int k,r; for(k=2;k<=sqrt(n);k++) { r=n%k; while(r==0) { printf("%d",k); n=n/k; if(n>1)printf("*"); r=n%k; } } if(n!=1) printf("%d\n",n); } 3、设有以下宏定义: #define WIDTH 80 #define LENGTH WIDTH+40 则执行赋值语句:v=LENGTH*20;(v为int型)后,v的值是(880) 4、设有以下宏定义: #define WIDTH 80 #define LENGTH (WIDTH+40)

则执行赋值语句:k=LENGTH*20;(k为int型变量)后,k的值是(2400) 5、下面程序的运行结果是(5) #define DOUBLE(r) r*r main() { int x=1,y=2,t; t=DOUBLE(x+y); printf("%d\n",t);} 6、下面程序的运行结果是(36) #define MUL(z) (z)*(z) main() { printf("%d\n",MUL(1+2)+3); } 7、下面程序的运行结果是(212) #define POWER(x) ((x)*(x)) main() { int i=1; while(i<=4) printf("%d,",POWER(i++)); } 8、下面程序的运行结果是(9) #define MAX(a,b) (a>ba:b)+1 main() { int i=6,j=8,k; printf("%d\n",MAX(i,j)); } 二、选择题 1、以下正确的说法是(D)建立自定义函数的目的之一是: A)提高程序的执行效率 B)提高程序的可读性 C)减少程序的篇幅 D)减少程序文件所占内存 2、以下正确的说法是(B) A)用户若需调用标准库函数,调用前必须重新定义 B)用户可以重新定义标准库函数,若如此,该函数将失原有含义。 C)系统根本不允许用户重新定义标准库函数。 D)用户若需调用标准函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调用。 3、以下正确的函数定义形式是(C) A)double fun(int x,int y) B)double fun(int x;int y) C)double fun(int x,int y); D)double fun(int x,y) 4、以下正确的说法是(D)。在C语言中: A)实参与其对应的形参各占用独立的存储单元。 B)实参和与其对应的形参共占用一个存储单元。 C)只用当实参和与其对应的形参同名时才共占用存储单元。

《C语言程序设计》课后习题答案(第四版)谭浩强

第1章程序设计和C语言1 1.1什么是计算机程序1 1.2什么是计算机语言1 1.3C语言的发展及其特点3 1.4最简单的C语言程序5 1.4.1最简单的C语言程序举例6 1.4.2C语言程序的结构10 1.5运行C程序的步骤与方法12 1.6程序设计的任务14 1-5 #include int main ( ) { printf ("**************************\n\n"); printf(" Very Good!\n\n"); printf ("**************************\n"); return 0; } 1-6#include int main() {int a,b,c,max; printf("please input a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if (max

2.5结构化程序设计方法34 习题36 第章最简单的C程序设计——顺序程序设计37 3.1顺序程序设计举例37 3.2数据的表现形式及其运算39 3.2.1常量和变量39 3.2.2数据类型42 3.2.3整型数据44 3.2.4字符型数据47 3.2.5浮点型数据49 3.2.6怎样确定常量的类型51 3.2.7运算符和表达式52 3.3C语句57 3.3.1C语句的作用和分类57 3.3.2最基本的语句——赋值语句59 3.4数据的输入输出65 3.4.1输入输出举例65 3.4.2有关数据输入输出的概念67 3.4.3用printf函数输出数据68 3.4.4用scanf函数输入数据75 3.4.5字符数据的输入输出78 习题82 3-1 #include #include int main() {float p,r,n; r=0.1; n=10; p=pow(1+r,n); printf("p=%f\n",p); return 0; } 3-2-1 #include #include int main() {float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5; p=1000;

C语言程序设计试题集与答案解析

一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。

13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20.

大学思修课后习题答案

1.大学生怎样尽快适应大学新生活? (1)认识大学生活特点,了解大学生活的变化。 大学生活的新特点:宽松与自主并存的学习环境;统一与独立并存的生活环境;丰富与平等并存的人际环境;多彩与严谨并存的课余环境。 (2)提高独立生活能力。 确立独立生活意识;虚心求教、细心体察;大胆实践、不断积累生活经验。不断提高生活上的自理能力,包括一些基本的生活能力;学会用平等的态度对待他人,正确地认识和评价自己,客观地对待别人的优势。 (3)树立新的学习理念。 树立自主学习的理念;树立全面学习的理念;树立创新学习的理念;树立终身学习的理念。(4)培养优良学风。 高度要求自己,努力做到“勤奋、严谨、求是、创新”。 2.当代大学生的历史使命和成才目标是什么? 不同时代的青年面对不同的历史课题,承担着不同的历史使命。当代大学生承担的是建设中国特色社会主义、实现中华民族伟大复兴的历史使命。 成为德智体美全面发展的社会主义事业的建设者和接班人,是历史发展对大学生的必然要求,是党和人民的殷切期望,也是大学生需要确立的成才目标。大学培养目标所要求的德智体美方面的素质是相互联系、相互制约的统一体。 德是人才素质的灵魂;智是人才素质的基础;体是人才素质的条件;美是人才素质的重要内容。大学生的全面发展,就是德智体美的全面发展,是思想道德素质、科学文化素质和健康素质的全面提高。当代大学生应努力成长为主动发展、健康发展、和谐发展的一代新人。3.谈谈你对社会主义核心价值体系的科学内涵极重要意义的理解? 科学内涵:巩固马克思主义指导地位,坚持不懈得用马克思主义中国化最新成果武装全党、教育人民,用中国特色社会主义共同理想凝聚力量;用以爱国主义为核心的民族精神和以改革创更新为核心的时代精神鼓舞斗志;用社会主义荣辱观引领风尚,巩固全党全国各民族人名团结奋斗的共同思想基础。 意义:它为当代大学生加强自身修养。锤炼优良品德、成长为德智体美全面发展的社会主义事业的合格建设者和可靠接班人指明了努力方向,提供了发展动力,明确了基本途径。当代大学生只有自觉学习和践行社会主义核心价值体系,才能健康的成长为有理想、有道德、有文化、有纪律的社会主义“四有”新人。 4. 当代大学生提高思想道德素质与法律素质为什么要自觉学习和践行社会主义核心价值体系? 社会主义核心价值体系是社会意识的本质体现。社会主义核心价值体系在构建和谐社会、建设和谐文化中应运而生;社会主义核心价值体系是建设和谐文化的根本;建设社会主义核心价值体系是构建社会主义和谐社会的重要保证;建设社会主义核心价值体系是适应新形势、迎接新挑战、完成新任务的迫切需要。 社会主义核心价值体系也是引领当代大学生成长成才的根本指针,它为当代大学生加强自身修养、锤炼优良品德、成长为德智体美全面发展的社会主义事业的合格建设者和可靠接班人指明了努力方向,提供了发展动力,明确了基本途径。 5.结合实际谈谈学习“思想道德修养与法律基础”课的意义和方法。 意义:1.学习“思想道德修养与法律基础”课,有助于当代大学生认识立志、树德和做人的道理,选择正确地成才之路;2.学习“思想道德修养与法律基础”课,有助于当代大学生掌握丰富的思想道德和法律知识,为提高思想道德和法律素养打下知识基础;3.学习“思想道德修养与法律基础”课,有助于当代大学生摆正“德”与“才”的位置,做到德才兼备、全

-程序填空部分试题及答案

第1.题*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:下面的程序是求1!+3!+5!+……+n!的和。 -------------------------------------------------------*/ #include main() { long int f,s; int i,j,n; /***********SPACE***********/ 【?】; scanf("%d",&n); /***********SPACE***********/ for(i=1;i<=n; 【?】) { f=1; /***********SPACE***********/ for(j=1; 【?】;j++) /***********SPACE***********/ 【?】; s=s+f; } printf("n=%d,s=%ld\n",n,s); } 第2题./*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:以下程序是用选择法对10个整数按升序排序。 -------------------------------------------------------*/ #include /***********SPACE***********/ 【?】 main()

C语言课后作业答案

3-5-1正确 大写字母转化成小写或者小写变大写 #include void main() { char ch; printf("请输入一个字符:"); scanf("%c",&ch); if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z') { if(ch>='A'&&ch<='Z')ch=ch+32; else ch=ch-32; } else ch=ch; printf("%c\n",ch); } 3-5-2大写转化成小写或者小写变大写 #include void main() { char ch; printf("请输入一个字符:"); scanf("%c",&ch); ch=ch; { if(ch>='A'&&ch<='Z')ch=ch+32; else ch=ch-32; } printf("%c\n",ch); } 3-5-3大写转化成小写或者小写变大写 #include void main() { char ch; printf("请输入一个字符:"); scanf("%c",&ch); if(ch>='a'&&ch<='z') ch=ch-32; else if(ch>='A'&&ch<='Z') ch=ch+32; else ch=ch; printf("%c\n",ch); } 3-6-1正确分段函数

#include void main() { int x,y; printf("请输入x:"); scanf("%d",&x); if(x<=1) y=x; else { if(1 void main() { int x,y; printf("请输入x:"); scanf("%d",&x); if(x>=10) y=3*x-8; else if(x>1) y=2*x+1; else y=x; printf("x=%d,y=%d\n",x,y); } 3 -6 -3正确 #include void main() { int x,y; printf("请输入x:"); scanf("%d",&x); if(x<=1) y=x; else if(1=10) y=3*x-8; printf("x=%d,y=%d\n",x,y); } 计算器正确 #include void main() {

相关主题
文本预览
相关文档 最新文档