当前位置:文档之家› C++程序设计课后习题参考答案

C++程序设计课后习题参考答案

C++程序设计课后习题参考答案
C++程序设计课后习题参考答案

第一章

一、选择题

1.B; (typedef ,typeid ,typename,都为保留字);

2.C; (标识符,应该以字母或,下划线开头);

3.C; (标识符中有的特殊符号,只能有下划线);

二、填空题

1. cin,cout

2. new,delete

3. int a(55);

三、改错题

1.没有定义变量num;

2.*p不能当作“左值”。

3.p为常量指针,不能吧p作为“左值”,p=&y,错误。

四、编程题

1. 分别用字符和ASCII码形式输出整数值65和66.

#include < iostream >

using namespace std;

void main()

{

char a='A',b='B';

int ascii_1=53,ascii_2=54;//ASCII码中的,5和6

cout<<"字符输出:"<<(int)a<<","<<(int)b<< endl;

cout<<"ASCII码输出:"<<(char)ascii_2<<(char)ascii_1<<",";

cout<<(char)ascii_1<<(char)ascii_1<< endl;

}

2.编写一个int型变量分配100个整形空间的程序。

#include < iostream >

using namespace std;

void main()

{

int *p;

p = new int[100];

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

{

*(p+i)=i;

}

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

{

cout<<*(p+i)<<",";

}

delete p;

}

3.编写完整的程序,它读入15个float值,用指针把它们存放在一个存储快里,然后输出这些值和以及最小值。

#include < iostream >

#include < algorithm > //用于数组排列的头文件

using namespace std;

void main()

float *p;

p = new float[15];

cout<<"输入15个float类型的值:" << endl;

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

{

cin>>*(p+i);

}

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

{

cout<<*(p+i)<<",";

}

sort(p,p+15);

cout<<"\n最小的是:"<<*(p)<< endl;

delete p;

}

4.声明如下数组: int a[] = {1 ,2 ,3, 4, 5, 6, 7, 8};

先查找4的位置,讲数组a复制给数组b,然后将数组a的内容反转,再查找4的位置,最后分别输出数组a和b的内容。

#include < iostream>

#include < algorithm>

#include < functional>

using namespace std;

void main()

{

int a[]={1,2,3,4,5,6,7,8},b[8];

cout<<"数组a中‘4’的位置是:"<< find(a,a+8,4)<< endl;//查找4的位置

copy(a,a+8,b);//将数组a复制给数组b

reverse_copy(b,b+8,a);//把数组b,逆向复制给a,完成a的逆转

cout<<"数组a反转后,‘4’的位置是:"<< find(a,a+8,4)<< endl;//在查找4的位置

cout<<"数字a的内容:"<< endl;

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

cout<< a[i]<<" ,";

cout<<"\n数组b中的内容:"<< endl;

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

cout<< b[i]<<" ,";

第二章

一、单项选择

1.D;

2.D;

三、编程题

1.使用多种方法编写将两个字符串连接在一起的程序。

#include < iostream >

#include < string >

using namespace std;

void main()

//使用string类定义字符串,完成字符串连接

string str1("C++"),str2("程序设计");

string str3;

str3 = str1+str2;//连接方式1

cout<< str3<< endl;

//使用char数组定义字符串,完成连接

char c1[] = {"c++"},c2[] = {"program"};

char c3[20];

int i=0,k=0;

for(i=0;i<20;i++)//初始化c3

c3[i]='\0';

i=0;

while(c1[i]!='\0')

{

c3[k]=c1[i];

i++;

k++;

}

i=0;

while(c2[i]!='\0')

{

c3[k]=c2[i];

i++;

k++;

}

cout<< c3<< endl;

}

2.已知一个string的对象str的内容为“We are here!”,使用多种方法输出“h”。

#include < iostream >

#include < functional >

#include < algorithm >

#include < string >

using namespace std;

void main()

{

string str1("We are here!");

cout<< str1[7]<< endl;//通过数组

string str2=str1.substr(7,1);//通过得到子字符串

cout<< str2<< endl;

char *p=find(str1.begin(),str1.end(),'h');//通过find函数

if(p)

cout<<*p<< endl;

}

第三章

一、填空题

1.函数原型声明;

2.inline

3.对象、对象指针、引用

4.函数func返回引用

5.int *fun(char,int&);

二、单项选择题 1.A; 2.C; 3.C;

三、改错题

1.y = x * x - T; 错误,T是类型,不是变量,不能参加运算;

2. T max(T x, y) y没有类型

3.void change (string & s)中函数change 的参数定义成了常量,只能使用参数,而无权修改他。所以应去掉。

四、编程题

1.编写一个求方程ax2 + bx + c = 0的根的程序,用3个函数分别求当b2-4ac大于零、等于零、和小于零时的方程的根。要求从主函数输入a,b,c的值并输出结果。

#include < iostream.h >

#include < math.h >

void equation_1 (int a, int b, int c)

{

double x1, x2, temp;

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

x1 = (-b + sqrt(temp) ) / (2 * a * 1.0);

x2 = (-b - sqrt(temp) ) / (2 * a * 1.0);

cout<<"两个不相等的实根"<< endl;

cout<<"x1 = "<< x1<<", x2 = "<< x2<< endl;

}

void equation_2 (int a, int b, int c)

{

double x1, x2, temp;

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

x1 = (-b + sqrt(temp) ) / (2 * a * 1.0);

x2 = x1;

cout<<"两个相等的实根"<< endl;

cout<<"x1 = "<< x1<<", x2 = "<< x2<< endl;

}

void equation_3 (int a, int b, int c)

{

double temp, real1, real2, image1, image2;

temp = - (b*b - 4 * a * c);

real1 = -b / (2 * a *1.0);

real2 = real1;

image1 = sqrt(temp);

image2 = - image1;

cout<<"两个虚根"<< endl;

cout<<"x1 = "<< real1<<" + "<< image1<<"j"<< endl;

cout<<"x2 = "<< real2<<" + "<< image2<<"j"<< endl;

}

void main()

{

int a, b, c;

double temp;

cout<<"输入a,b,c的值"<< endl;

cin>>a>>b>>c;

cout<<"方程为:"<< a<<"x*x+"<< b<<"x+"<< c<<" = 0"<< endl;

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

if(temp > 0)

equation_1 (a, b, c);

if(temp == 0)

equation_2 (a, b, c);

if(temp < 0)

equation_3 (a, b, c);

}

2.定义函数up(ch),如字符变量ch是小写字母就转换成大写字母并通过up返回,否则字符ch不改变。要求在短小而完全的程序中显示这个程序是怎样被调用的。

#include < iostream >

using namespace std;

char up (char c)

{

if(c >= 97 && c <= 123)

return (c - 32) ;

else

return c;

}

void main()

{

int i;

char c[15] = {'A','v','e','t','E','T','%','&','4','Y','e','i','@','9','^'};

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

cout<< up(c[i])<<", ";

cout<< endl;

}

3.编写主程序条用带实数r和整数n两个参数的函数并输出r的n次幂。

#include < iostream.h >

#include < math.h >

double power(double a, int b)

{

int i;

double result = 1.0;

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

result = result * a;

return result;

}

void main()

{

double r;

int n;

cout<<"r = ";

cin>>r;

cout<<"n = ";

cin>>n;

cout<< r<<"的"<< n<<"次幂是:"<< power(r,n)<< endl;

}

4.编写有字符型参数C和整形参数N的函数,让他们显示出由字符C组成的三角形。其方式为第1行有1个字符C,第2行有2个字符C ,等等。

#include < iostream >

using namespace std;

void print_triangle(char c, int n)

{

int i, j;

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

{

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

{

cout<< c;

}

cout<< endl;

}

}

void main()

{

print_triangle('a',10);

}

5.编写一个ieqiu字符串长度的函数,strlen(),再用strlen()函数编写一个函数revers (s)的倒序递归程序,使字符串s逆序。

#include < iostream >

#include < string >

using namespace std;

int strlen(char *str)

{

int len = 0;

while(str[len] != '\0')

{

len++;

}

return len;

}

void revers(char *b)

{

char c;

int j, len;

len=strlen(b);

j=len/2-1;

while(j>=0)

{

c=*(b+j);

*(b+j)=*(b+len-j-1);

*(b+len-j-1)=c;

j--;

}

b[len]='\0';

}

void main()

{

char str[]={"1234567890"};

cout<< str<<"----的长度:"<< strlen(str)<< endl;

cout<< str<< endl;//倒序前

revers(str);//

cout<< str<< endl;//倒序后

}

6.用函数模板实现3个数值中按最小值到最大值排序的程序。

#include < iostream >

using namespace std;

template

void sort(T a, T b, T c)

{

T array[3],temp;

int i,j;

array[0] = a;

array[1] = b;

array[2] = c;

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

{

for(j=0;j<2;j++)

if(array[j]>array[j+1])

{

temp = array[j];

array[j] = array[j+1];

array[j+1] = temp;

}

}

cout<< array[0]<< array[1]<< array[2]<< endl;

}

void main()

{

sort(5,1,9);

}

7.利用函数模板设计一个求数组元素中和的函数,并检验之。

#include < iostream >

using namespace std;

template

T sum (T a[],int n)

{

int i;

T s=0;

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

s = s + a[i];

return s;

}

void main ()

{

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

int s = sum(a,5);

cout<< s<< endl;

}

8.重载上题中的函数模板,使他能够进行两个数组的求和。

#include < iostream >

using namespace std;

template

T sum (T a[], int n)

{

int i;

T s=0;

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

s = s + a[i];

return s;

}

template //重载上面的模板

T sum (T a[], int n, T b[], int m)

{

return sum(a,n)+sum(b,m);

}

void main ()

{

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

int b[10]={1,2,3,4,5,6,7,8,9,10};

int s1 = sum(a, 5);

int s2 = sum(b, 10);

int s3= sum(a, 5, b, 10);

cout<< s1<< endl;

cout<< s2<< endl;

cout<< s3<< endl;

}

第四章

一、填空题

1.数据成员、成员函数;

2.类、返回类型、1;

3.fun::fun(fun &)、fun::fun(const fun &);

二、单项选择题

1.C。

2.C。

3.没有答案,应该是A::~A(void)、或A::~A()。

4.B。

5.C。

6.C。

7.D

三、改错题

1.return m;---错误,没又定义变量m; ~base(){delete p} p后应有一个";"

2.A.init(24,56);---错误,应该先定义A对象:Point A; 同时参数个数不同;

{Setx(a);}无类型,也无返回值。

四、完成程序题

1.

#include < iostream >

using namespace std;

class base

{

private :

//私有数据成员

int a, b;

public :

void init(int x, int y)//公有函数

{

a = x;

b = y;

}

void print()

{

cout<<"2 * "<< a<<" - "<< b<<" = "<<(2*a-b)<< endl;

}

};

void main()

{

base a;

a.init(68,55);

a.print();

}

2.

#include

using namespace std;

class Point

{

private :

int m, n;

public :

Point(int, int);//整型变量,为参数的构造函数

Point(Point&);//复制构造函数的原型

print()

{

cout<<"m = "<< m<<", n = "<< n<< endl;

}

};

Point::Point(int a, int b)

{

m = a;

n = b;

}

Point::Point(Point & t)//复制构造函数的定义

{

m = t.m;

n = t.n;

}

void main()

{

Point a(10,89);

Point b(a);

a.print();

b.print();

}

五、程序分析题

1.没有结果,因为没有main函数

如果加main函数

void main()

{

base b(10, 20);

}

输出:

初始化...10,20

Destory...10,20

2.

输出:

55

六、编程题

1.设计一个点类Point,再设计一个矩形类,矩形类使用Point类的两个坐标点作为矩形的对角顶点。并可以输出4个坐标值和面积。使用测试程序验证程序。

#include

using namespace std;

class Point //点类

{

private:

int x, y;//私有成员变量,坐标

public :

Point()//无参数的构造方法,对xy初始化

{

x = 0;

y = 0;

}

Point(int a, int b)//又参数的构造方法,对xy赋值

{

x = a;

y = b;

}

void setXY(int a, int b)//设置坐标的函数

{

x = a;

y = b;

}

int getX()//得到x的方法

{

return x;

}

int getY()//得到有的函数

{

return y;

}

};

class Rectangle //矩形类

{

private:

Point point1, point2, point3, point4;//私有成员变量,4个点的对象

public :

Rectangle();//类Point的无参构造函数已经对每个对象做初始化啦,这里不用对每个点多初始化了

Rectangle(Point one, Point two)//用点对象做初始化的,构造函数,1和4为对角顶点

{

point1 = one;

point4 = two;

init();

}

Rectangle(int x1, int y1, int x2, int y2)//用两对坐标做初始化,构造函数,1和4为对角顶点

{

point1.setXY(x1, y1);

point4.setXY(x2, y2);

init();

}

void init()//给另外两个点做初始化的函数

{

point2.setXY(point4.getX(), point1.getY() );

point3.setXY(point1.getX(), point4.getY() );

}

void printPoint()//打印四个点的函数

{

cout<<"A:("<< point1.getX() <<","<< point1.getY() <<")"<< endl;

cout<<"B:("<< point2.getX() <<","<< point2.getY() <<")"<< endl;

cout<<"C:("<< point3.getX() <<","<< point3.getY() <<")"<< endl;

cout<<"D:("<< point4.getX() <<","<< point4.getY() <<")"<< endl;

}

int getArea()//计算面积的函数

{

int height, width, area;

height = point1.getY() - point3.getY();

width = point1.getX() - point2.getX();

area = height * width;

if(area > 0)

return area;

else

return -area;

}

};

void main()

{

Point p1(-15, 56), p2(89, -10);//定义两个点

Rectangle r1(p1, p2);//用两个点做参数,声明一个矩形对象r1

Rectangle r2(1, 5, 5, 1);//用两队左边,声明一个矩形对象r2

cout<<"矩形r1的4个定点坐标:"<< endl;

r1.printPoint();

cout<<"矩形r1的面积:"<< r1.getArea() << endl;

cout<<"\n矩形r2的4个定点坐标:"<< endl;

r2.printPoint();

cout<<"矩形r2的面积:"<< r2.getArea() << endl;

}

2.使用内联函数设计一个类,用来表示直角坐标系中的任意一条直线并输出它的属性。

#include < iostream.h >

#include < math.h >

class Line

{

private:

int x1, y1, x2, y2;

public :

Line();

Line(int =0, int =0, int =0, int=0 );

void printPoint();

double getLength();

};

inline Line::Line(int a, int b, int c, int d)

{

x1 = a;

y1 = b;

x2 = c;

y2 = d;

}

inline void Line::printPoint()

{

cout<<"A:"<< x1 <<", "<< y1 << endl;

cout<<"B:"<< x2 <<", "<< y2 << endl;

}

inline double Line::getLength()

{

double length;

length = sqrt((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1) );

return length;

}

void main()

{

Line line(10,80,-10,12);

line.printPoint();

cout<< line.getLength() << endl;

}

第五章

一、填空题

1.常成员函数;

2.常量成员函数(const);

3.const

二、单项选择题

1.B;

2.A;

3.C;

4.A;

三、改错题

1.static int getn(){return number;}错误

静态成员函数,只允许访问静态成员变量,number不是静态成员变量

2.缺少new

void main()

{

test *two[2] = {new test(4, 5), new test(6 ,8)};

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

delete two[i];

}

四、完成程序题

#include < iostream >

using namespace std;

class test

{

int x;

public :

test(int a)

{

x = a;

}

int GetX()

{

return x;

}

};

void main()

{

int i;//填空一,声明变量i

test *p, a[2][3] = {{1, 2, 3}, {4, 5, 6}};

for( p=&a[0][0], i=0; i<=6; i++, p++)//填空2,初始化p,i

{

if((p-a[0])%3 == 0)

cout<< endl;

cout<< p->GetX() <<" ";

}

}

五、编程题

1.声明复数的类,complex,使用友元函数add实现复数加法。

#include < iostream >

using namespace std;

class Complex

{

private:

double real, image;

public :

Complex(){}

Complex(double a,double b)

{

real = a;

image = b;

}

void setRI(double a, double b)

{

real = a;

image = b;

}

double getReal()

{

return real;

}

double getImage()

{

return image;

}

void print()

{

if(image>0)

cout<<"复数:"<< real <<" + "<< image <<"i"<< endl;

if(image<0)

cout<<"复数:"<< real <<" - "<< image <<"i"<< endl;

}

friend Complex add(Complex ,Complex);//声明友元函数};

Complex add(Complex c1, Complex c2)//定义友元函数

{

Complex c3;

c3.real = c1.real + c2.real;//访问Complex类中的私有成员

c3.image = c1.image + c2.image;

return c3;

}

void main()

{

Complex c1(19, 0.864), c2, c3;

c2.setRI(90,125.012);

c3 = add(c1, c2);

cout<<"复数一:";c1.print();

cout<<"复数二:";c2.print();

cout<<"相加后:";c3.print();

}

2.例子5.8,114页例子不错;

3.编写一个程序,该程序建立一个动态数组,为动态数组的元素赋值,显示动态数组的值并删除动态数组。

#include < iostream >

using namespace std;

void main()

{

int i, n, temp=0;

cout<<"输入数组大小:";

cin>>n;

double *array = new double[n]; //用指针,动态申请数组大小

cout<<"给每个数组元素赋值:"<< endl;

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

{

cout<<"array["<< i <<"] = ";

cin>>temp;

*(array+i) = temp;//给数组元素赋值

}

cout<<"动态数组个元素的值如下:"<< endl;

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

{

cout<<"array["<< i <<"] = "<< array[i] << endl;//打印数组元素}

delete [] array;//释放内存

}

4.定义一个Dog类,它用静态数据成员Dogs记录Dog的个体数目,静态成员函数GetDogs 用来存取Dogs。设计并测试这个类。

#include < iostream >

using namespace std;

class Dog

{

private:

static int dogs;//静态数据成员,记录Dog的个体数目public :

Dog(){}

void setDogs(int a)

{

dogs = a;

}

static int getDogs()

{

return dogs;

}

};

int Dog :: dogs = 25;//初始化静态数据成员

void main()

{

cout<<"未定义Dog类对象之前:x = "<< Dog::getDogs() << endl;; //x在产生对象之前即存在,输出25

Dog a, b;

cout<<"a中x:"<< a.getDogs() << endl;

cout<<"b中x:"<< b.getDogs() << endl;

a.setDogs(360);

cout<<"给对象a中的x设置值后:"<< endl;

cout<<"a中x:"<< a.getDogs() << endl;

cout<<"b中x:"<< b.getDogs() << endl;

}

第六章

一、填空题

1.单一继承;

2.private protected public

二、单项选择

1.A;

2.A;

3.A;

4.D;

三、改错题

1.类derived和base中均没变量b,derived的构造函数中的m(b)错误;

2.Derived类中重载show()方法

void Show()

{

Base1::Show();Base2::Show();

}

四、编程题

1.设计一个基类,从基类派生圆柱,设计成员函数输出它们的面积和体积;#include < iostream >

using namespace std;

class Basic//基类

{

protected:

double r;

public :

Basic(){ r = 0; }

Basic(double a):r(a){}

};

class Circular : public Basic//从基类派生圆类

{

protected:

double area;

public :

Circular(double a)

{

r = a;

area = area = 3.1415926 * r * r;

}

double getArea()//返回圆面积

{

return area;

}

};

class Column : public Circular//从圆类派生圆柱类

{

protected:

double h;

double cubage;

public :

Column(double a, double b) : Circular(a)

{

h = b;

cubage = getArea() * h;

}

double getCubage()//返回圆柱体积函数

{

return cubage;

}

};

void main()

{

Circular circular(45);

Column column(12, 10);

cout<<"圆的面积:"<< circular.getArea() << endl;

cout<<"圆柱的体积:"<< column.getCubage() << endl;

}

3.定义一个线段类作为矩形的基类,基类有起点和终点坐标,有输出左边和长度以及线段和x轴的夹角的成员函数。矩线段对象的两个坐标作为自己一条边的位置,它具有另外一条边,能输出矩形的4个顶点坐标。给出类的定义并用程序验证它们的功能。

#include < iostream >

#include < cmath >

using namespace std;

class Point//点类

{

protected:

double x, y;

public :

Point(){}

Point(double a, double b)

{

x = a; y = b;

}

double getX()

{return x;}

double getY()

{return y;}

};

class Line

{

protected:

Point p1, p2;//Point对象做成员

double length, angle;

public:

Line(double a, double b, double c, double d):p1(a, b), p2(c, d)//用两对坐标初始化线段

{

init();

}

Line(Point a, Point b)//用两个点的对象初始化线段

{

p1 = a; p2 = b;

init();

}

void init()//计算线段长度,以及和x轴的夹角的度数

{

double x1 = p1.getX(), y1 = p1.getY();

double x2 = p2.getX(), y2 = p2.getY();

length = sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2));

angle = atan( (y2-y1) / (x2-x1) );

angle = angle *180/3.141592653;

}

void printXY()

{

cout<<"("<< p1.getX() <<","<< p1.getY() <<"); ("<< p2.getX() <<","<< p2.getY() <<")"<< endl;

}

void printLength()

{

cout<<"线段长度:"<< length << endl;

}

void printAngle()

{

cout<<"与x轴的夹角:"<< angle <<"°"<< endl;

}

};

class Rectangle : public Line

{

protected:

Line *line;

public:

Rectangle(double a, double b, double c, double d, double e, double f, double g, double h):Line(a,b,c,d)

{

line = new Line(e,f,g,h);

}

Rectangle(Point a, Point b, Point c, Point d) : Line(a, b)//4个点对象,初始化

{

line = new Line(c, d);

}

void printPoint()

{

cout<<"矩形4个顶点:\n";

printXY();

line->printXY();

}

};

void main()

{

Point p1(0, 0), p2(4, 3), p3(12, 89), p4(10, -50);

Line l1(0,0,4,3);

l1.printXY();

l1.printLength();

l1.printAngle();

Line l2(p1, p2);

l2.printXY();

l2.printLength();

l2.printAngle();

Rectangle r1(12,45,89,10,10,23,56,1);

r1.printPoint();

Rectangle r2(p1, p2, p3, p4);

r2.printPoint();

}

4.基类是使用极坐标的点类,从它派生一个圆类,圆类用点类的左边作圆心,圆周通过极坐标原点,圆类有输出圆心直、圆半径和面积的成员函数。完成类的设计并验证之。

#include < iostream >

#include < cmath >

using namespace std;

class Point//点类

{

protected:

int x, y;

public :

Point(){}

};

class Circular : public Point//圆类,继承点类

{

protected:

double r, area;

public :

Circular(int a, int b)

{

x = a;

y = b;

C语言程序设计第三版习题库答案

C 语言程序设计(第三版)习题库 1、设圆半径r=,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 #include<> main(){ floatr,h,C1,Sa,Sb,Va,Vb; scanf(__”%f ”__,&r); scanf(”%d ”,__&h _);; C1=2**r; Sa=*r*r; Sb=4*Sa; Va=4**r*r*r/3; Vb=Sa*h; printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f ”,Cl,Sa,Sb,Va,Vb ); } 2、输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9 输出要求有文字说明,取位2小数。 #include<> main(){ floatF,c; scanf("%f",&F); ____c=5*(F-32)/9______; printf("c=%.2f",c); } 3、有一函数:?? ???≥-<≤-<=10113101121x x x x x x y 写一程序,输入x 值,输出y 值。 #include<> main(){ intx,y; printf("输入x :"); scanf("%d",&x); if(x<1){/*x<1*/ y=x; printf("x=%3d,y=x=%d\n",x,y);

}elseif(____x<10_______){/*1≤x-10*/ _____y=2*x-1_______; printf("x=%3d,y=2*x-1=%d\n",x,y); }else{/*x≥10*/ y=3*x-11; printf("x=%3d,y=3*x-11=%d\n",x#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d\n",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }scanf("%d",&x);

《C程序设计》作业内容

实验一C语言的运行环境的使用 一、目的与要求 1. 了解Windows系统下C语言的运行环境,熟悉C程序调试、运行的基本操作方法。 2. 熟练掌握编辑、编译、连接和运行C程序的方法。 3. 通过运行简单的C程序,初步了解C源程序的特点。 4. 初步理解C语言的数据类型,了解变量定义、变量赋值以及简单运算方法,了解程序运 行结果的基本输出方法。 二、实验例题 在C语言运行环境下,按以下例题要求完成程序的编辑、编译、连接和运行,直至取得正确的运行结果。 【例1】编程实现在屏幕上显示如下三行文字 Hello, world ! Wolcome to the C language world! Everyone has been waiting for. (1)输入如下程序: #include int main() { printf("Hello,World!\n"); printf("Wolcome to the C language world!\n"); printf("Everyone has been waiting for.\n"); return 0; } (2)将输入的程序以文件名example.c存盘。 (3)编译:通过“组建”(Build) 下拉菜单中的“编译”(compile)命令,编译example.c,若出现编译错误,则修改程序,重新编译,直至编译成功,系统自动生成目标文件example.obj。 (4)连接:通过“组建”(Build)下拉菜单中的“组建”(Build)命令,生成以.exe为扩展名的可执行文件example.exe。 (5)运行:通过“组建”菜单下的“执行”(Excute)命令运行程序并观察运行结果。 【例2】编写程序,将两个整数相加,并输出结果。 #include int main() { int a,b,sum; a=123;b=456; sum=a+b; printf(“sum is %d\n”,sum); return 0;}

(完整版)谭浩强c程序设计课后习题答案

谭浩强c++程序设计课后答案 娄警卫

第一章1.5题 #include using namespace std; int main() { cout<<"This"<<"is"; cout<<"a"<<"C++"; cout<<"program."; return 0; 1.6题 #include using namespace std; int main() { int a,b,c; a=10; b=23; c=a+b; cout<<"a+b="; cout< using namespace std; int main() { int a,b,c; int f(int x,int y,int z); cin>>a>>b>>c; c=f(a,b,c); cout< using namespace std; int main() { int a,b,c; cin>>a>>b; c=a+b; cout<<"a+b="< using namespace std; int main() { int a,b,c; int add(int x,int y); cin>>a>>b; c=add(a,b); cout<<"a+b="<

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.

C语言程序设计作业参考答案

《C语言程序设计》作业参考答案 作业一 C语言概述 一、选择题: 1-5 ACDCB 二、编程题: main() { printf(“****************************************\n”); printf(“ Hello,world! \n”); printf(“****************************************\n”); } 作业二程序的灵魂——算法 一、填空题: 1.确定性有效性有零个或多个输入有一个或多个输出 2.顺序结构选择结构循环结构 3.函数 作业三数据类型、运算符与表达式 一、选择题: 1-5 BDDAB 6-10 BCAAB 11-15 BCADC 16-20 DACCA 21-25 ADDBA 26-30 DDDDD 作业四顺序结构 一、选择题: 1-5 BCDDD 6-10 BDADD 二、填空题: 1.【31.415920,3.14159e+01】 2.【c=k】 3.【a=1,b=空格,c=2】 4.【a=12,b=345】 5.【c=A】 作业五选择结构 一、选择题:1-5 ADCBC 6-10 BBBBA 11-15 DBAAC 16-17 CB 二、填空题: 1.【-1】 2.【3】 3.【4】 4.【11】 5.【97或'a'】 作业六循环结构 一、选择题: 1-5 CBAAC 6-10 CBCCB 11-15 DBDDB 16-20 BCAAC 21-25 CDBBB

作业七数组 一、选择题: 1-5 CDDAC 6-10 CCDBC 11-15 DDBCA 16-20 DCBDD 21-23 BDB 二、填空题: 1. LBLMNP 2. SW* 3. mo 4. a=2,b=1 作业八函数 一、选择题: 1-5 AAACA 二、填空题: 1.【编程中的main( )函数】 2.【函数说明部分】和【函数体】 3.【–125= –5*5*5】 4.【void add (float a, float b)】【float add (float a, float b)】 5.【i=7; j=6; x=7 i=2; j=7; x=5】 6.【111】 三、编程题: 1.参考代码 main() { int score,temp,log; char grade; log=1; while (log) { printf(“enter score:”); scanf(“%d”,&score); if ((score>100)||(score<0)) printf(“\n error,try again! \n”); else log=0; } if (score==100)temp=9; else temp=(score-score%10)/10; switch(temp) { case 0:case 1:case2: case 3:case 4:case 5:grade=’E’;break; case 6:grade=’D’;break; case 7:grade=’C’;break; case 8:grade=’B’;break; case 9:grade=’A’; } printf(“score=%d,grade=%c\n”,score,grade); } 2.解:设计以高度n为参数的函数trangle(int n),打印等边三角形。参考程序如下: #include

C语言程序设计课后各章节习题答案

第三章 8 输入一个非负数,计算以这个数为半径的圆周长和面积。 答#define PI 3.1415926 main() { float r,l,area; scanf("%f",&r); l=2*PI*r; area=PI*r*r; printf("l=%f\tarea=%f\n",l,area); } 9 输入任意一个3位数,将其各位数字反序输出(例如输入123,输出321)。 答main() { int x,y; printf("Input number:"); scanf("%d",&x); y=100*(x%10)+10*(x/10%10)+x/100; printf("%d--->%d\n",x,y); } 10 输入任意大小的3个整数,判断其中是否有两个奇数一个偶数。若是则输出YES,不是则输出NOT(要求用条件表达式进行判断,不使用if语句)。 答main() { int x,y,z,oddcount=0; printf("Input x,y,z:"); scanf("%d,%d,%d",&x,&y,&z); x%2==1?oddcount++:0; y%2==1?oddcount++:0; z%2==1?oddcount++:0; oddcount==2?printf("YES"):printf("NOT"); } 11 求前驱字符和后继字符。输入一个字符,找出它的前驱字符和后继字符,并按ASCII码值,按从大到小的顺序输出这3个字符及其对应的ASCII码值。 答 main() { char c; printf("Input character:"); scanf("%c",&c); printf("%c----->%d\n",c-1,c-1); printf("%c----->%d\n",c,c);

c语言程序设计第五版习题答案

习题解析与答案 第1章C语言概述 一.简答题 1.概述C语言的主要特点。 【解答】 (1)语言简洁、紧凑,使用方便、灵活。 (2)数据类型丰富,表达能力强。 (3)运算符多样。C语言中的运算符包含的范围非常广泛。 (4)具有结构化的控制语句。如if…else语句、while语句、do while语句、switch 语句、for语句。 (5)允许直接访问物理地址。C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。 (6)所生成的目标代码质量高,可移植性好。 2.构成C语言程序的基本单位是什么?它由哪几部分组成? 【解答】函数是构成C语言程序的基本单位。一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。 3.C语言程序的运行一般要经过哪几个步骤? 【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。 二.运行程序写结果 1.输入下面程序并运行。 main() { int a1,a2,x; a1=100; a2=50; x=a1-a2; printf(″x=%d\n″,x); } 【解答】运行结果为:x=50 2.输入下面程序并运行。 main() { int a1,a2,x; a1=10; a2=20; x=a1*a2; printf(″a1=%d,a2=%d\n″,a1,a2); printf(″x=%d\n″,x); } 【解答】运行结果为:a1=10,a2=20 x=200 3.输入下面程序并运行。

#include main() { printf("******\n"); printf(" *****\n"); printf(" ****\n"); printf(" ***\n"); printf(" **\n"); printf(" *\n"); } 【解答】运行结果为:****** ***** **** *** ** * 思考:可以修改程序,使之输出平行四边形,等腰三角形等图形。 三.编程题 1.参照本章例题,编写一个C程序,用于显示如下信息: ************************* I love C programs! ************************* 【分析与提示】 ①要有文件包含语句#include 。C语言中没有数据的输入、输出等功能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf等来实现的。这些函数的说明都包括在stdio.h文件中。 ②main是主函数的名称。用{}括起来的内容是函数体,函数体由若干条语句组成,这是计算机要执行的部分,每条语句以分号“;”结束。 ③注意显示的信息有三行,所以要用到换行符“\n”。 参考代码: #include main() { printf("************************\n"); printf(" I love C programs! \n"); printf("************************\n"); }

C程序设计作业样本

第一章作业 答案:一,59,14.4,28.e 二1小题,59 2,15 一、将数89、20.25、40.875用十六进制表达 二、填空 1.在C语言中,数值常量0x3b十进制值是。 2.字母f ASCII码为十进制数___________。 第三章作业 一、选取题: 1、下列变量名中, B 是非法。 A) Tom B) 3n C) little_boy D) c10 2、若有如下类型阐明 char a; int b; float c; double d;则表达式a*b+d-c成果类型是(A ) A)float B)char C)int D)double 3、若x为整型,则逗号表达式(x=4*5,x*5),x+25成果及x值分别是(C )对的答案是100,45 A)45 20 B)125 20 C)125 45 D)100 100 4、假设所有变量均为整型,则表达式(a=3,b=2,b++,a+b)值是 C 。 A) 5 B) 8 C) 6 D)7 5、已知c2为字符型,则执行语句c2=’E’+’8’-‘A’后,c2值为 C 。 A) 12 B) 11 C)不拟定值D) 10

6、设a为double变量,b为int型变量,c为字符型变量,则a+b+c为( C )型 A) int B) float C) double D) char 7、C语言中不可用作标记符字符有( C ) A下划线 B % C数字 D字母 8、下面四个选项中,均是合法整型常量是(D ) A)160 B)- 0xcdf C)- 01 D)0x - 0xffff 01a 0668 2e5 9、设a为字符变量,b为int型变量,c为double型变量,则a*b+c为( C )型 A. int B. float C. double D. char 10.若a是int型变量,则表达式(a=4*5,a*2),a+4值为( C ) A. 20 B.22 C. 24 D. 44 第四章作业 一、选取题 1、若x为int型变量,则执行如下语句后x= C 。 x=5; x-=x-=x+x; A. -10 B. -5 C.0 D.10 2、在printf()函数格式阐明符中,字符型数输出格式阐明符是 D 。

《C语言程序设计》课后习题答案谭浩强

精心整理第1章程序设计和C语言1 1.1什么是计算机程序1 1.2什么是计算机语言1 1.3C语言的发展及其特点3 1.4 1.5 1.6 } printf("pleaseinputa,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if(max

if(max #include intmain() {floatp,r,n; r=0.1;

n=10; p=pow(1+r,n); printf("p=%f\n",p); return0; } 3-2-1 p4=p*pow(1+r1,5);//存1年期,到期后将本息存再存1年期,连续存5次p5=p*pow(1+r0/4,4*5);//存活期存款。活期利息每一季度结算一次 printf("p1=%f\n",p1);//输出按第1方案得到的本息和 printf("p2=%f\n",p2);//输出按第2方案得到的本息和 printf("p3=%f\n",p3);//输出按第3方案得到的本息和

printf("p5=%f\n",p5);//输出按第5方案得到的本息和 return0; } 3-2-2 p4=p*pow(1+r1,5);//存1年期,到期后将本息存再存1年期,连续存5次p5=p*pow(1+r0/4,4*5);//存活期存款。活期利息每一季度结算一次 printf("p1=%f\n",p1);//输出按第1方案得到的本息和 printf("p2=%f\n",p2);//输出按第2方案得到的本息和 printf("p3=%f\n",p3);//输出按第3方案得到的本息和 printf("p4=%f\n",p4);//输出按第4方案得到的本息和

(完整版)C语言程序设计练习及答案

《C语言程序设计》练习及答案 得分评卷人复查人 一、单选题,每小题1分,共60分(将正确答案的序号写在题目的括号中)。 1、结构化程序设计的三种基本控制结构是(D )。 A、主程序、子程序、函数 B、输入、处理、输出 C、调用,返回,转移 D、顺序、选择、循环 2、下列关于C程序变量的叙述, ( D )是错误的。 A、变量名必须由字母或下划线开头。 B、程序中的变量必须在被使用之前定义。 C、不同的基本类型的变量之间可以混合运算。 D、变量的数据类型决定变量的"作用域"。 3、能将C语言编写的源程序转换为目标程序的软件是(C )。 A、编辑程序 B、汇编程序 C、编译程序 D、解释程序 4、以下符号中,合法的用户标识符是( D )。 A、-p B、int C、3ab D、_xt_ 5、以下选项中,与m=n++完全等价的表达式是( C )。 A、m=++n B、m+=n+1 C、m=n, n=n+1 D、n=n+1,m=n 6、若有定义:int aa[8];。则以下表达式中不能代表数组元aa[1]的地址的是(C )。 A、&aa[0]+1 B、&aa[1] C、&aa[0]++ D、aa+1 7、表达式!5&(7+3)&&(4+5)的值是(A)。 A、0 B、1 C、5 D、9 8、以下选项中非法的C语言表达式是(A )。 A、x+1=x+1 B、0<=x<100 C、i=j==0 D、(char)(65+3) 9、在TURBO C中, int类型变量所占字节数是(B )。 A、1 B、2 C、4 D、8 10、C语言中基本的数据类型包括(B)。 A、整型,实型,逻辑型 B、整型,实型,字符型

《C语言程序设计实践教程》答案-完整版

4.2练习题 一、选择题 1.D 2.B 3.A 4.B和D 5.C 6.A 7.B 二、填空题 1.//或/* */ 2.主或main 3.函数首部和函数体4.编译和连接 5.分号 5.2练习题 一、选择题 1.A 2.D 3.B 4.B 5.C 6.C 7.D 8.A 9.B 10.B 11.D 12.B 13.A或B 14.C 15.B

17.D 18.D 19.C 20.D 21.B 22.A 23.D 24.C 25.C 26.B 27.C 28.D 29.A 30.B 二、填空题 1.102,10 2.#define 宏名字符串 3.1 4.n=1 5.-4 6.a=1,b= ,c=2 7.c=A 8.n1=%d\nn2=%d 9.a+b>c&&a+c>b&&b+c>a 10.ch>=’a’&&ch<=’z’|| ch>=’A’&&ch<=’Z’11.7 12.0 13.11110000 14.8,4 6.2练习题 一、选择题 1.A 2.C 3.D 4.C 5.A

7.A 8.D 9.B 10.C 11.A 12.A 13.C 14.B 15.正确答案为:12345678 二、填空题 1.10 2.y=1 x%i==0 3.屏幕中间输出一个由星号组成的菱形4.1 5.13 6.(cx=getchar())!=-1 front=cx; 7.m%n 8.4 9.*p px=&x py=&y 三、读程序,写结果 1.-1 2.3,1,-1, 3.a=16,y=60 4.x=12,y=4 5.59 7.2练习题 一、选择题 1.B 2.C 3.C 4.A 5.D

c程序设计作业

1、分析下面程序: # include int main() { char c1,c2; c1=97; c2=98; printf("c1=%c,c2=%c\n"c1,c2); printf("c1=%d,c2=%d\n",c1,c2); return 0; } (1)运行时会输出什么信息?为什么? (2)如果将程序第4,5行改为 c1=197; c2=198; 运行时会输出什么信息?为什么? (3)如果将程序第3行改为 int c1,c2; 运行时会输出什么信息?为什么? 答:(1)程序运行不了,因为程序存在错误。正确的程序为:#include int main() { char c1,c2; c1=97; c2=98; printf("c1=%c,c2=%c\n",c1,c2); printf("c1=%d,c2=%d\n",c1,c2); return 0; } (2)如果将程序第4,5行改为 c1=197; c2=198; 运行时会输出: (3)如果将程序第3行改为 int c1,c2; 运行时会输出:

因为int表示整型,%c是输出字符,a的ASCLL代码是97,b的是98,所以输出 c1=a,c2=b.%d是表示输出十进制整型,所以输出c1=97,c2=98 2、用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。 问在键盘上如何输入? #include int main() { int a,b; float x,y; char c1,c2; scanf("a=%db=%d",&a,&b); scanf("%f%e",&a,&y); scanf("%c%c",&c1,&c2); return 0; } 答:输入如图: 输出如图: (此文档部分内容来源于网络,如有侵权请告知删除,文档可自行编辑修改内容, 供参考,感谢您的配合和支持)

C语言程序设计教程课后习题答案

1 【C语言】《C语言程序设计教程(第二版)》习题答案 说明 1. 本文所指的《C语言程序设计教程(第二版)》是李凤霞主编、北京理 工大学出版社出版的,绿皮。 2 第1章程序设计基础知识 一、单项选择题(第23页) 1-4.CBBC 5-8.DACA 二、填空题(第24页) 1.判断条件 2.面向过程编程 3.结构化 4.程序 5.面向对象的程序设计语言 6.基本功能操作和控制结构 7.有穷性 8.直到型循环 9.算法10.可读性11.模块化12.对问题的分析和模块的划分 三、应用题(第24页) 2.源程序: main() {int i,j,k; /* i:公鸡数,j:母鸡数,k:小鸡数的1/3 */ printf("cock hen chick\n"); for(i=1;i<=20;i++) for(j=1;j<=33;j++) for(k=1;k<=33;k++) if (i+j+k*3==100&&i*5+j*3+k==100) printf(" %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; a=b=1; for(i=1;i<=10;i++) /*要计算前30项,把10改为15。*/ {printf("%8ld%8ld",a,b); a=a+b;b=b+a;}} 递归法源程序: main() {int i; for(i=0;i<=19;i++)

printf("%8d",fib(i));} fib(int i) {return(i<=1?1:fib(i-1)+fib(i-2));} 执行结果: 1 1 2 3 5 8 13 21 3 4 55 89 144 233 377 610 987 1597 2584 4181 6765 4.源程序: #include "math.h"; main() {double x,x0,deltax; x=1.5; do {x0=pow(x+1,1./3); deltax=fabs(x0-x); x=x0; }while(deltax>1e-12); printf("%.10f\n",x);} 执行结果: 1.3247179572 5.源程序略。(分子、分母均构成斐波那契数列) 结果是32.66026079864 6.源程序: main() {int a,b,c,m; printf("Please input a,b and c:"); scanf("%d %d %d",&a,&b,&c); if(a

C语言程序设计第二版习题参考答案

C语言程序设计第二版 习题参考答案 Document serial number【LGGKGB-LGG98YT-LGGT8CB-LGUT-

C语言程序设计习题参考答案 习题 1 一、判断题 1.在计算机中,小数点和正负号都有专用部件来保存和表示。 2.二进制是由0和1两个数字组成的进制方式。 3.二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系。 4.在整数的二进制表示方法中,0的原码、反码都有两种形式。 5.有符号数有三种表示法:原码、反码和补码。 6.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、大写英文字母、小写英文字母。 解:1.F2.T 3.T 4.T 5.T 6.T 二、单选题 1.在计算机中,最适合进行数值加减运算的数值编码是。 A. 原码 B. 反码 C. 补码 D. 移码 2.已知英文小写字母m的ASCII码为十进制数109,则英文小写字母y的ASCII 码为十进制数。 A. 112 B. 120 C. 121 D. 122 3.关于ASCII码,在计算机中的表示方法准确地描述是。 A. 使用8位二进制数,最右边一位为1 B. 使用8位二进制数,最左边一位为1 C. 使用8位二进制数,最右边一位为0 D. 使用8位二进制数,最左边一位为0 4.设在机器字长4位,X=0111B,Y=1011B,则下列逻辑运算中,正确的是 ___________。 A. X∧Y=1000 B. X∨Y=1111 C. X⊕Y=0011 D. ˉY=1000 5.下列叙述中正确的是()。 A.高级语言就是机器语言 B.汇编语言程序、高级语言程序都是计算机程序,但只有机器语言程序才是计算机可以直接识别并执行的程序 C.C语言因为具有汇编语言的一些特性,所以是汇编语言的一种 D.C源程序经过编译、连接,若正确,执行后就能得到正确的运行结果6.用C语言编写的源程序经过编译后,若没有产生编译错误,则系统将()。 A.生成可执行文件B.生成目标文件 C.输出运行结果D.自动保存源文件 7.下列叙述中不正确的是()。 A.main函数在C程序中必须有且只有一个 B. C程序的执行从main函数开始,所以main函数必须放在程序最前面 C. 函数可以带参数,也可以不带参数。

c程序设计教程与实验__吉顺如__实验一到七

实验1熟悉Visual C++环境及运行C程序 一、实验目的 1.掌握在Visual C++环境下C程序的建立、编辑、编译和执行过程。 2.掌握C程序的最基本框架结构,完成简单程序的编制与运行和调试。 3.掌握发现语法错误、逻辑错误的方法以及排除简单错误的操作技能。 二、实验内容 1.从键盘输入两个数a和b,求它们的平方和,并在屏幕上输出。输入该C程序,编译并运行之,记下屏幕的输出结果,以文件名保存。 #include <> main() { int a,b,sum; /*定义整型变量a、b、sum */ printf("Please Input a,b \n "); /*输出提示信息*/ scanf("%d%d",&a,&b); /*从键盘输入两个整数分别赋予a和b*/ sum=a*a+b*b; /*赋值语句,把a2+b2的结果赋给变量sum*/ printf("%d*%d+ %d*%d=%d\n",a,a,b,b,sum); /*输出语句*/ }

改错题 (1计算x*y 的值并将结果输出。试纠正程序中存在的错误,以实现其功能。程序以文件名保存。 #include <> main main () { int x=2;y=3;a int x=2,y=3,a ; A=x*y a =x*y ; print ('a=%d",A); print f ("a=%d",a ); printf("\n"); } (2)下程序的功能为:求两数中的较大数据并输出。纠正程序中存在的错误,以实现其功能。程序以文件名保存。 #include <> viod main() void main() { int a ,b , max; Scanf(“%d,%d ”,&a,&b); s canf(“%d,%d ”,&a,&b); Max=a; m ax=a; If (max

C程序设计教程课后习题答案吉顺如版

一、选择题 1、A 2、D 3、C 4、D 5、B 6、C 7、C 8、B 9、B 10、A 二、填空题 1、一,函数体 2、main(主),main(主) 3、编译,目标 4、.c,.obj,.exe 5、缩进,无影响,/* */ 三、程序分析题 1、 ***************** Very good! ***************** 2、 a=12,b=5 a=17,b=22 3、 r= 5.50,s=95.033098 四、编程题 1.用printf()函数在屏幕上输出自己的班级、学号、姓名。#include"stdio.h"

{ printf("班级:BX1109\n"); printf("学号:111003530901\n"); printf("姓名:王孟荣\n"); } 2.从键盘输入两个整数,计算它们的和、差、积、商,并在屏幕上输出结果。 #include void main() { int x,y,a,b,c; float d; printf("Please Input Two Integers:\n"); scanf("%d%d",&x,&y); a=x+y; b=x-y; c=x*y; d=1.0*x/y;

printf("a=%d\nb=%d\nc=%d\nd=%f\n",a,b,c,d); }

第2章习题 一、选择题 1~5 BCDCD 6~10 DBBCA 二、填空题 1.单精度浮点型、双精度浮点型、字符型2.0 3.x%10*10+x/10 4.5.5 5.5.7 20 6.sin(sqrt(x*x))/(a*b) 7.,

C语言程序设计-作业与答案

《C 语言程序设计》课程作业 适用层次:专升本 培养类型:理工科专业 专业班级: 姓名: 学号: 作业要求:题目可打印,答案要求手写,考试时交作业。 第1次: 1.编写程序,分别计算1到100之间的奇数之和及偶数之和,并输出。 2.输入三角形的三条边a 、b 、c ,如果能构成一个三角形,则计算并输出三角形的周长和面积(结果保留两位小数);否则输出“无效的边长!”。 三角形面积计算公式为: s=))()((c x b x a x x ---,其中,x=(a+b+c)/2。 3.输入一个整数,求它的各位数字之和。例如,123的各位数字之和为6,-63的各位数字之和为9。 4.使用格里高利公式求π的近似值,精确到最后一项的绝对值小于10-6 。 +-+-=71 513114π …… 5.中国古代数学史上著名的“百鸡问题”:鸡翁一,值钱五;鸡母一,值钱三,鸡雏三,值钱一。百钱买百鸡,问翁、母、雏各几何? 6.编写程序,键盘输入正整数n (0= 2 2. 编写一个函数prime(int n),判断一个整数是否是素数,若是素数,函数值返回1,否则返回0。利用该函数找出100-200之间的所有素数。素数是只能被1和自身整除的正整数,2是最小的素数。 3.写一函数int strlength(char *s)求一个字符串的长度。主函数中输入一个字符串,调用函数strlength 求其长度并输出。

C语言程序设计第三版谭浩强课后习题答案完整版

C语言程序设计第三版谭浩强 课后习题答案完整版 第一章 1.5请参照本章例题,编写一个C程序,输出以下信息:************************** V ery Good! ************************** 解: mian() {printf(“**************************”); printf(“\n”); printf(“V ery Good!\n”); printf(“\n”); printf(“**************************”); } 1.6 编写一个程序,输入a、b、c三个值,输出其中最大值。解: mian() {int a,b,c,max; printf(“请输入三个数a,b,c:\n”); scanf(“%d,%d,%d”,&a,&b,&c); max=a; if(max main() { char c1=?C?,c2=?h?,c3=?i?,c4=?n?,c5=?a?; c1+=4; c2+=4; c3+=4; c4+=4; c5+=4; printf("密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5); } 运行结果: 密码是Glmre 3.9求下面算术表达式的值。 (1)x+a%3*(int)(x+y)%2/4 设x=2.5,a=7,y=4.7 (2)(float)(a+b)/2+(int)x%(int)y 设a=2,b=3,x=3.5,y=2.5 (1)2.5 (2)3.5 3.10写出程序运行的结果。 main() {int i,j,m,n; i=8; j=10; m=++i; n=j++; printf(“%d,%d,%d,%d”,i,j,m,n); } 解: 9,11,9,10 3.12 写出下面表达式运算后a的值,设原来a=12。设a和n都已定义为整型变量。 (1)a+=a (2)a-=2 (3)a*=2+3 (4)a/=a+a (5)a%=(n%=2),n的值等于5 (6)a+=a-=a*=a 解: (1) 24 (2) 10 (3) 60 (4) 0 (5) 0 (6) 0 第四章 4.4若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2=’b’。想得到以下输出格式和结果,请写出程序(包括定义变量类型和设计输出)。 a=_3_ _b=_4_ _c=_5 x=1.200000,y=2.400000,z=-3.600000 x+y=_3.600_ _y+z=-1.20_ _z+x=-2.40 c1=ˊaˊ_or_97(ASCII)

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