当前位置:文档之家› C++程序设计基础课后答案--第五章教学提纲

C++程序设计基础课后答案--第五章教学提纲

C++程序设计基础课后答案--第五章教学提纲
C++程序设计基础课后答案--第五章教学提纲

C++程序设计基础课后答案--第五章

5.1 阅读下列程序,写出执行结果

1.#include < iostream.h >

struct data

{ int n ;

float score ;

} ;

void main()

{ data a[3] = { 1001,87,1002,72,1003,90 } , *p = a ;

cout << (p++)->n << endl ;

cout << (p++)->n << endl ;

cout << p->n++ << endl ;

cout << (*p).n++ << endl ;

}

2.#include < iostream.h >

struct employee

{ char name[ 20 ] ;

char sex ;

} ;

void fun( employee *p )

{ if( (*p).sex == 'm' )

cout << (*p).name << endl ;

}

void main()

{ employee emp[5] = { "Liming", 'm', "Wangxiaoping", 'f', "Luwei", 'm' } ;

int i ;

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

fun( emp+i ) ;

}

3. #include < iostream.h >

struct node

{ char * s ;

node * q ;

} ;

void main()

{ node a[ ] = { { "Mary", a+1 }, { "Jack", a+2 }, { "Jim", a } } ;

node *p = a ;

cout << p->s << endl ;

cout << p->q->s << endl ;

cout << p->q->q->s << endl ;

cout << p->q->q->q->s << endl ;

}

4.#include < iostream.h >

class A

{ public :

int f1();

int f2();

void setx( int m ) { x = m ; cout << x << endl; }

void sety( int n ) { y = n ; cout << y << endl; }

int getx() { return x ; }

int gety() { return y ; }

private :

int x, y ;

};

int A::f1() { return x + y ; }

int A::f2() { return x - y ; }

void main()

{ A a ;

a.setx( 10 ) ; a.sety( 5 ) ;

cout << a.getx() << '\t' << a.gety() << endl ;

cout << a.f1() << '\t' << a.f2() << endl ;

}

5. #include < iostream.h >

class T

{ public :

T( int x, int y )

{ a = x ; b = y ;

cout << "调用构造函数1." << endl ;

cout << a << '\t' << b << endl ;

}

T( T &d )

{ cout << "调用构造函数2." << endl ;

cout << d.a << '\t' << d.b << endl ;

}

~T() { cout << "调用析构函数."<

int add( int x, int y = 10 ) { return x + y ; } private :

int a, b ;

};

void main()

{ T d1( 4, 8 ) ;

T d2( d1 ) ;

cout << d2.add( 10 ) << endl ;

}

6. #include < iostream.h >

class T

{ public:

T(int x){ a=x; b+=x;};

static void display(T c)

{ cout<<"a="<

int a;

static int b;

} ;

int T::b=5;

void main()

{ T A(3),B(5);

T::display(A);

T::display(B);

}

7. #include < iostream.h >

#include < math.h >

class point

{ public :

point( float x, float y )

{ a = x; b = y;? cout << "点( " << a << ", " << b << " )" ; } friend double d( point &A , point &B )

{ return sqrt((A.a-B.a) * (A.a-B.a) + (A.b-B.b) * (A.b-B.b)) ; } private:

double a, b ;

};

void main()

{ point p1( 2, 3 ) ;

cout << " 到 " ;

point p2( 4, 5 ) ;

cout << "的距离是:" << d( p1,p2 ) << endl ;

}

8. #include < iostream.h >

class A

{ public :

A() { a = 5 ; }

void printa() { cout << "A:a = " << a << endl ; } private :

int a ;

friend class B ;

} ;

class B

{ public:

void display1( A t )

{ t.a ++ ; cout << "display1:a = " << t.a << endl ; } ;

void display2( A t )

{ t.a -- ; cout << "display2:a = " << t.a << endl ; } ;

};

void main()

{ A obj1 ;

B obj2 ;

obj1.printa() ;

obj2.display1( obj1 ) ;

obj2.display2( obj1 ) ;

obj1.printa() ;

}

5.2 思考题

1.结构和类有什么区别?如果把程序中定义结构的关键字struct直接改成class,会有什么问题?用教材上的一个例程试一试,想一想做什么修改能使程序正确运行?

2.分析以下说明结构的语句

struct node

{ int data;

node error; //错误

node * ok; //正确

};

error和ok分别属于什么数据类型?有什么存储要求?error出错的原因是什么?

3.有说明

class A

{ int a;

double x;

public:

funMember();

};

A a1, a2, a3 ;

编译器为对象a1,a2,a3开辟了什么内存空间?它们有各自的funMember函数的副本吗?C++通过什么机制调用类的成员函数?

4.C++提供了默认版本的构造函数,为什么还需要用户自定义构造函数?编写一个验证程序,说明自定义构造函数的必要性。

5.试从定义方式、访问方式、存储性质和作用域分析类的一般数据成员和静态数据成员的区别,并编写一个简单程序验证之。

6.试从定义方式、调用方式分析静态成员函数和友员函数的区别。考察教材的例5-22,若class Goods 的指针域

Goods * next;

被声明为私有(private)成员,程序会出现什么错误?做什么最小修改能使程序正确运行?请你试一试。

1.分析以下说明结构的语句

struct Node

{ int data;

Node error; //错误

Node * ok; //正确

};

error和ok分别属于什么数据类型?有什么存储要求?error出错的原因是什么?

【答案】

error是Node结构类型数据成员,错误。原因是结构定义的数据成员若为本身的结构类型,是一种无穷递归。ok是指向Node类型的指针,定义正确,占4字节。

2.本章例5-5中用辅助数组对结构数组做关键字排序,有定义

person *index[100];

index数组存放结构数组元素的地址。如果把index定义改为

int index[100];

用于存放结构数组元素的下标。可以实现对结构数组的索引排序吗?如何修改程序?请你试一试。

【答案】

可以。关键是通过整型索引数组元素作为下标访问结构数组。表示为:

all[pi[i]].name all[pi[i]].id all[pi[i]].salary

有关程序如下:

#include

using namespace std;

struct person //说明结构类型

{ char name[10];

unsigned int id;

double salary;

} ;

void Input( person[], const int );

void Sort( person[], int[],const int );

void Output( const person[], int[],const int );

int main()

{ person allone[100] ; //说明结构数组

int index[100]; //说明索引数组

int total ;

for(int i=0; i<100; i++) //索引数组元素值初始化为结构数组元素下标index[i]=i ;

cout<<"输入职工人数:";

cin>>total;

cout<<"输入职工信息:\n";

Input(allone,total);

cout<<"以工资做关键字排序\n";

Sort(allone,index, total);

cout<<"输出排序后信息:\n";

Output(allone,index,total);

}

void Input( person all[], const int n )

{ int i ;

for( i=0; i

{ cout<

cin>>all[i].name;

cout<<"编号: ";

cin >> all[i].id;

cout<<"工资: ";

cin >> all[i].salary ;

}

}

void Sort(person all[], int pi[], const int n)

{ int i,j;

int t; //交换用中间变量

for(i=1; i

{ for(j=0; j<=n-1-i; j++)

if(all[pi[j]].salary>all[pi[j+1]].salary) //通过索引数组访问结构数组元素

{ t=pi[j]; //交换索引数组元素值

pi[j]=pi[j+1];

pi[j+1]= t;

}

}

}

void Output(const person all[], int pi[], const int n)

{ for( int i=0; i

cout<

}

3.有以下结构说明和遍历单向链表的函数。函数内有错误吗?是什么性质的错误?请上机验证你的分析。

struct Node

{ int data; Node * next; };

void ShowList( Node *head )

{ while( head )

{ cout << head->date << '\n' ;

head ++ ;

}

}

【答案】

head++错误,原因是动态链表的结点存放不是连续顺序的内存空间,它们是逐个结点通过new建立的,所以不能用++做地址偏移运算。应该用:

head=head->next

4.结构和类有什么区别?如果把程序中定义结构的关键字struct直接改成class,会有什么问题?用教材上的一个例程试一试,想一想做什么修改能使程序正确运行?

【答案】

结构是数据的封装,类是数据和操作的封装。可以把结构看成是类的特例。结构和类都可以用关键字struct或class定义。区别是,struct定义的结构或类的全部成员都是公有的,用class定义的结构或类不做声明的成员是私有的。

若把struct改成class,只需要把全部成员定义为public就可以了。

5.有说明

class A

{ int a;

double x;

public:

funMember();

};

A a1, a2, a3 ;

编译器为对象a1、a2和a3开辟了什么内存空间?它们有各自的funMember函数的副本吗?C++通过什么机制调用类的成员函数?

【答案】

开辟的存储空间有a1.a, a1.x, a2.a, a2.x, a3.a, a3.x。各对象没有funMember函数的副本,C++通过this指针调用成员函数。

6.C++提供了默认版本的构造函数,为什么还需要用户自定义构造函数?编写一个验证程序,说明自定义构造函数的必要性。

【答案】

类的默认构造函数可以建立基本类型数据成员的存储空间。基于以下两个原因,需要用户定义构造函数:(1)对数据成员的值做指定初始化;

(2)类的数据是由指针管理的堆。

程序略。

7.试从定义方式、访问方式、存储性质和作用域分析类的一般数据成员和静态数据成员的区别,并编写一个简单程序验证它。

程序略。

8.试从定义方式、调用方式分析常成员函数、静态成员函数和友员函数的区别。考察教材的例5-22,若class Goods的指针域

Goods * next;

被声明为私有(private)成员,程序会出现什么错误?做什么最小修改能使程序正确运行?请你试一试。

【答案】

在例5-22中,若把next声明为私有数据成员,只须把有关指针操作的函数定义为友员函数就可以了:friend void purchase( Goods * &f, Goods *& r, int w );

friend void sale( Goods * & f , Goods * & r );

9.设有

class M { int a ;};

class N { M m; int b; void fun(){ /*……*/ } };

int main() { N n; N *p=&n; /*……*/ }

描述在N::fun中如何访问M类的数据成员a;在main函数中又如何访问对象n的全部数据成员?

【答案】

在N::fun中访问M类的数据成员a的形式是: m.a

在main函数中访问M类的数据成员的形式是: n.b n.m.a

5.3 编程题

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);

过程控制工程课后作业 答案

第一章纸质作业答案 一、调节阀的流量特性是指通过调节阀的流量与阀杆行程之间的关系。 调节阀的流量特性有线性型,等百分比型,快开型,抛物线型 调节阀流量特性选择的目的主要是从非线性补偿的角度来考虑,利用调节阀的非线性来补偿广义对象中其它环节的非线性,从而使整个广义对象的特性近似为线性。 二、简单控制系统是由一个被控对象、一个测量元件及变送器、一个控制器和一个执行器所构成的单闭环控制系统,也成为单回路控制系统。 简单控制系统的典型方块图为 三.按照已定的控制方案,确定使控制质量最好的控制器参数值。 经验凑试法、临界比例度法、衰减曲线法、响应曲线法 四、解: (1) 选择流出量 Q为操纵变量,控制阀安装在流出管线上, o 贮槽液位控制系统的控制流程图为 (2) 被控对象:液体贮槽

被控变量:贮槽液位 操纵变量:贮槽出口流量 主要扰动变量:贮槽进口流量 五、解: (1) 选择流入量 Q为操纵变量,控制阀安装在流入管线上, i 贮槽液位控制系统的控制流程图为 为了防止液体溢出,在控制阀气源突然中断时,控制阀应处于关闭状态,所以应选用气开形式控制阀,为“+”作为方向。 操纵变量即流入量 Q增加时,被控变量液位是上升的,故对象为“+”作用方向。由于 i 控制阀与被控对象都是“+”作用方向,为使控制系统具有负反馈作用,控制器应选择反作用。 (2) 选择流出量 Q为操纵变量,控制阀安装在流出管线上, o 贮槽液位控制系统的控制流程图为

为了防止液体溢出,在控制阀气源突然中断时,控制阀应处于全开状态,所以应选用气关形式控制阀,为“-”作为方向。 操纵变量即流出量 Q增加时,被控变量液位是下降的,故对象为“-”作用方向。由于 o 控制阀与被控对象都是“-”作用方向,为使控制系统具有负反馈作用,控制器应选择反作用。 六、(1)加入积分作用后,系统的稳定性变差,最大动态偏差增大、余差减小 加入适当的微分作用后,系统的稳定性编号,最大动态偏差减小,余差不变。 (2)为了得到相同的系统稳定性,加入积分作用后应增大比例度,加入微分作用后应适当的减小比例度。 第二章纸质作业答案 一.由两个控制器组成,分别接受来自被控对象不同部位的测量信号。一个控制器的输出作为下一个控制器的给定值,后者的输出去控制执行器以改变操纵变量。从系统的结构来看,两个控制器是串级工作的,称为串级控制系统。 方框图如下 二.答: 前馈控制系统方块图

C++程序设计基础课后答案 第八章

8.1 阅读下列程序,写出执行结果 1.#include class Bclass { public: Bclass( int i, int j ) { x = i; y = j; } virtual int fun() { return 0 ; } protected: int x, y ; }; class Iclass:public Bclass { public : Iclass(int i, int j, int k):Bclass(i, j) { z = k; } int fun() { return ( x + y + z ) / 3; } private : int z ; }; void main() { Iclass obj( 2, 4, 10 ); Bclass p1 = obj; cout << p1.fun() << endl; Bclass & p2 = obj ; cout << p2.fun() << endl; cout << p2.Bclass :: fun() << endl; Bclass *p3 = &obj;

cout << p3 -> fun() << endl; } 2.#include class Base { public: virtual void getxy( int i,int j = 0 ) { x = i; y = j; } virtual void fun() = 0 ; protected: int x , y; }; class A: public Base { public: void fun() { cout<<"x = "<。C语言中没有数据的输入、输出等功能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf等来实现的。这些函数的说明都包括在stdio.h文件中。 ②main是主函数的名称。用{}括起来的内容是函数体,函数体由若干条语句组成,这是计算机要执行的部分,每条语句以分号“;”结束。 ③注意显示的信息有三行,所以要用到换行符“\n”。 参考代码: #include main() { printf("************************\n"); printf(" I love C programs! \n"); printf("************************\n"); }

(完整版)过程控制系统与仪表课后习题答案完整版汇总

第1章思考题与习题 1-1 过程控制有哪些主要特点?为什么说过程控制多属慢过程参数控制? 解答: 1.控制对象复杂、控制要求多样 2. 控制方案丰富 3.控制多属慢过程参数控制 4.定值控制是过程控制的一种主要控制形式 5.过程控制系统由规范化的过程检测控制仪表组成 1-2 什么是过程控制系统?典型过程控制系统由哪几部分组成? 解答: 过程控制系统:一般是指工业生产过程中自动控制系统的变量是温度、压力、流量、液位、成份等这样一些变量的系统。 组成:参照图1-1。 1-4 说明过程控制系统的分类方法,通常过程控制系统可分为哪几类? 解答: 分类方法说明: 按所控制的参数来分,有温度控制系统、压力控制系统、流量控制系统等;按控制系统所处理的信号方式来分,有模拟控制系统与数字控制系统;按控制器类型来分,有常规仪表控制系统与计算机控制系统;按控制系统的结构和所完成的功能来分,有串级控制系统、均匀控制系统、自适应控制系统等;按其动作规律来分,有比例(P)控制、比例积分(PI)控制,比例、积分、微分(PID)控制系统等;按控制系统组成回路的情况来分,有单回路与多回路控制系统、开环与闭环控制系统;按被控参数的数量可分为单变量和多变量控制系统等。 通常分类: 1.按设定值的形式不同划分:(1)定值控制系统 (2)随动控制系统 (3)程序控制系统 2.按系统的结构特点分类:(1)反馈控制系统 (2)前馈控制系统 (3)前馈—反馈复合控制系统 1-5 什么是定值控制系统? 解答: 在定值控制系统中设定值是恒定不变的,引起系统被控参数变化的就是扰动信号。

1-6 什么是被控对象的静态特性?什么是被控对象的动态特性?二者之间有什么关系? 解答: 被控对象的静态特性:稳态时控制过程被控参数与控制变量之间的关系称为静态特性。 被控对象的动态特性:。系统在动态过程中,被控参数与控制变量之间的关系即为控制过程的动态特性。 二者之间的关系: 1-7 试说明定值控制系统稳态与动态的含义。为什么在分析过程控制系统得性能时更关注其动态特性? 解答: 稳态: 对于定值控制,当控制系统输入(设定值和扰动)不变时,整个系统若能达 到一种平衡状态,系统中各个组成环节暂不动作,它们的输出信号都处于相对静 止状态,这种状态称为稳态(或静态)。 动态: 从外部扰动出现、平衡状态遭到破坏、自动控制装置开始动作,到整个系统 又建立新的稳态(达到新的平衡)、调节过程结束的这一段时间,整个系统各个环节的状态和参数都处于变化的过程之中,这种状态称为动态。 在实际的生产过程中,被控过程常常受到各种振动的影响,不可能一直工作在稳态。只有将控制系统研究与分析的重点放在各个环节的动态特性,才能设计出良好的控制系统。 1-8 评价控制系统动态性能的常用单项指标有哪些?各自的定义是什么? 解答: 单项性能指标主要有:衰减比、超调量与最大动态偏差、静差、调节时间、振荡频率、上升时间和峰值时间等。 衰减比:等于两个相邻的同向波峰值之比n; 过渡过程的最大动态偏差:对于定值控制系统,是指被控参数偏离设定值的最大值A; y与最终稳态值y(∞)之比的百分数σ; 超调量:第一个波峰值 1

Java程序设计基础习题答案

Java程序设计基础课后习题参考答案 第2章 1、关于Java Application得入口方法main()得检验: main()方法得参数名就是否可以改变? main()方法得参数个数就是否可以改变? 该方法名就是否可以改变? 参考答案:(1)main()方法得参数名可以改变.(2)main()方法得参数个数不可以改变。(3)该方法名不可以改变。 2、当一个程序没有main()方法时,能编译吗?如果能编译,能运行吗? 参考答案:当一个程序没有main()方法就是,就是可以编译通过得,但就是不能给运行,因为找不到一个主函数入口。 3、下列语句能否编译通过? bytei =127; bytej = 128; longl1 = 999999; long l2= 9999999999; 参考答案:byte i 与long l1可以编译通过。而byte j 与longl2 超出自身数据类型范围,所以编译失败。 4、下列语句能否编译通过? float f1 =3、5; float f2 = 3.5f; 参考答案:java中浮点型得数据在不声明得情况下都就是double型得,如果要表示一个数据就是float型得,必须在数据后面加上“F”或“f”;因此,floatf1 无法编译通过。 5、验证int 与char,int与double等类型就是否可以相互转换。 参考答案:(1)char类型可以转换为int 类型得,但就是int类型无法转换为char类型得;(2)int 可以转换为double类型得,但就是double类型无法转换为int 类型得。 6、计算下列表达式,注意观察运算符优先级规则。若有表达式就是非法表达式,则指出不合法之处且进行解释。 (1)4+5 == 6*2 ?(2) (4=5)/6?? (3)9%2*7/3>17(4)(4+5)<=6/3 ? (5) 4+5%3!=7-2????(6)4+5/6〉=10%2 参考答案:表达式(2)为不合法表达式,只能将值赋值给一个变量,因此其中(4=5)将5赋值给4就是不合法得. 7、下列()就是合法得Java标识符。 (1)Counter1 ??(2)$index, (3) name-7 ??(4)_byte

c语言程序设计》教学大纲

《C语言程序设计》教学大纲 课程名称:中文名称:C语言程序设计;英文名称:C Language Programming 课程编码:161002 学分:分 总学时:72学时,其中,理论学时:52学时;上机学时:20学时。 适用专业:全校理工科各专业 先修课程:计算机基础 执笔人: 审订人: 一、课程的性质与任务 《C语言程序设计》是为全校所有的理工科专业的学生开设的公共基础课,也是一门重要的必修课。其目的是使学生掌握程序设计的基本方法,培养学生掌握利用计算机处理问题的思维方法与应用能力。要求学生掌握程序的三种基本结构及结构化的程序设计方法,了解并掌握几种典型的算法,并且能够熟练地运用C语言编写各种应用程序,为进一步学习其它相关课程奠定基础。 二、教学内容与学时分配 第一章程序设计基本概念 (3学时) 本章重点:一、算法及特性;二、结构化程序设计方法。难点:算法设计及其表示。 第一节程序和程序设计 一、程序;二、程序设计。 第二节算法 第三节结构化程序设计方法

第四节 C语言程序的基本结构 第二章数据类型、运算符和表达式 (5学时) 本章重点:一、标识符的正确使用;二、各种基本数据类型的使用;三、算术运算符的优先级和结合性;四、表达式计算中的类型转换。难点:一、各种类型数据在计算机内存中的存储形式;二、自增自减运算。 第一节 C语言的数据类型 第二节常量与变量 第三节整型数据 第四节实型数据 第五节字符型数据 第六节算术运算符与算术表达式 第七节赋值运算符与赋值表达式 一、赋值运算符和赋值表达式;二、复合的赋值表达式;三、自加、自减运算符; 四、赋值运算中的类型转换。 第八节逗号运算符与逗号表达式 第三章顺序结构程序设计 (4学时) 本章重点:一、printf函数;二、scanf函数。难点:输入与输出时的格式控制。 第一节 C语句概述 第二节赋值语句 第三节数据的输入与输出 一、printf函数;二、putchar函数;三、scanf函数;四、getchar函数 第四节顺序结构程序举例

(完整版)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、整型,实型,字符型

《计算机程序设计基础》课后练习题参考答案

《计算机程序设计基础》课后练习题1 一.判断题 (1)(错)事件过程由某个用户事件或系统事件触发执行,但不能被其他过程调用。 (2)(错)若X=2, Y=5,则表达式 Y-2>X AND X+2>Y 的结果为:True。 (3)(错)常量是指在程序运行过程中其值可以改变的那些量。 (4)(错,timer没有)VB工具箱中的所有控件都具有宽度(Width)和高度(Height)属 性。 (5)(错)定义变量:Dim max,min as Single , 则max 和 min 的数据类型均为Single。 (6)(对)如果创建的菜单项的标题是一个减号“-”,则该菜单项显示为一条分隔线。 (7)(错)标准模块文件的扩展名是“*.VBP”。 (8)(错,都不能)定时器控件可以响应Click事件,但不能响应DbClick事件。 (9)(错)在默认情况下,数组下标下界的缺省值为1。 (10)(对)在使用字体对话框时,需要对其Flags属性先进行相应设置。 二.单选题 (11)在Visual Basic中,表示鼠标单击事件的是 C 。 A)Activate B)DoubleClick C)Click D)MouseDown (12)用于设置计时器时间间隔的属性是 A 。 A)Interval B)Name C)Left D)Top (13)函数Int(10*Rnd)是在 D 范围内的整数。 A)[1,10] B)[1,10] C) [0,9) D)[0,9] (14)Select case语句结构的结尾应使用 D 。 A)End B) End Case C) End Sub D) End Select (15)改变了容器的坐标系后,该容器的 A 属性值不会改变。 A)left B)scaleleft C)scaletop D)scalewidth (16)执行下列语句后,列表框中各表项顺序为 D List1.Clear For i=1 to 4 : List1.AddItem i-1,0 :Next i A)B)C)D) (17)输入对话框InputBox的返回值的类型是 A 。

《程序设计基础》实验课程教学大纲.doc

《程序设计基础》实验课程教学大纲 1 .课程概况 注:(1)平时实5金考核主要是对学生完成每个实验项目的预习、操作、实验报告等的综合考核; (2)笔试或门试主要是对学生掌握实验原理、实验结果分析方法等知识的考核。

2.教学内容及教学安排 3.教学要求

4.实验的主要仪器设备 5.实验指导书和参考书 1、《c语言程序设计实验指导书》自编教材 2、谭浩强.C程序设计(第四版).北京:清华大学出版社,2010 3、谭浩强.C程序设计(第四版)学习辅导.北京:清华大学出版社,2010 6 .专业个性化需求补充说明 附件:实验教学大纲编写的进一步说明(见下页)

附件:实验教学大纲编写的进一步说明 1.重新审定实验课程所开设的实验项目,除保留必做的经典演示性、验证性实验项目外,应尽量开设综合性、设计研究类实验项目。做到各专业有综合性、设计研究类实验项目的实验课程占总实验课程门数的80%以上;力争各专业综合性、设计研究类实验项目数占总实验项目数的30%以上。 2.实验教学大纲中设置的实验项目数应适当多于课程实际必须开设的实验项目数;要求设置选修实验项目,以满足不同教师个性化教学需求和学生不同层次的学习需要。 3.实验项目主要教学内容(内容提要):从实验项目的实验目的、方法和要求等方面简要阐述。 4.实验项目学时:每个实验项目有明确的实验学时数。因为设置有选做实验项目,各实验项目学时数之和应大于实验课程总学时数。 5.实验项目类型:分为演示性、验证性、综合性、设计研究、其它等。 (1)演示性实验项目:由教师操作,学生仔细观察,验证理论、说明原理和介绍方法。 (2)验证性实验项目:按照实验教材(或实验指导书)的要求,由学生操作验证课堂所学的理论,加深对基本理论、基本知识的理解,掌握基本的实验知识、实验方法、实验技能和实验数据处理,撰写规范的实验报告。 (3)综合性实验项目:可以是学科内一门或多门课程教学内容的综合,也可以是跨学科的综合。运用多方面知识、多种实验方法,按照要求(或自拟实验方案)进行实验,主要培养学生综合运用所学知识、实验方法和实验技能,分析、解决问题的能力。 实验项目内容满足以下条件之一视为综合性实验项目: %1涵盖本课程的多个知识点; %1涉及多门课程的知识点; %1本课程多项实验内容的有机综合。 (4)设计研究类实验项目:运用多学科知识、综合多学科内容,结合教师的科研项目,可以是实验方案的设计,也可以是系统的分析与设计。从查阅资料、拟定实验方案、实验方法和步骤(或系统的分析与设计)、选择仪器设备(或自行设计、制作)并实际操作运行,以完成实验的全过程,同时形成完整的实验报告,学生独立完成或教师指导下完成。使学生初步掌握科学思维方式和科学研究方法,学会撰写科研报告和有关论证报

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. 函数可以带参数,也可以不带参数。

过程控制系统与仪表习题答案

第3章 习题与思考题 3-1 什么是控制器的控制规律控制器有哪些基本控制规律 解答: 1)控制规律:是指控制器的输出信号与输入偏差信号之间的关系。 2)基本控制规律:位式控制、比例控制、比例积分控制、比例微分控制和比例积分微分控制。 3-2 双位控制规律是怎样的有何优缺点 解答: 1)双位控制的输出规律是根据输入偏差的正负,控制器的输出为最大或最小。 2)缺点:在位式控制模式下,被控变量持续地在设定值上下作等幅振荡,无法稳定在设定值上。这是由于双位控制器只有两个特定的输出值,相应的控制阀也只有两个极限位置,总是过量调节所致。 3)优点:偏差在中间区内时,控制机构不动作,可以降低控制机构开关的频繁程度,延长控制器中运动部件的使用寿命。 3-3 比例控制为什么会产生余差 解答: 产生余差的原因:比例控制器的输出信号y 与输入偏差e 之间成比例关系: 为了克服扰动的影响,控制器必须要有控制作用,即其输出要有变化量,而对于比例控制来讲,只有在偏差不为零时,控制器的输出变化量才不为零,这说明比例控制会永远存在余差。 3-4 试写出积分控制规律的数学表达式。为什么积分控制能消除余差 解答: 1)积分控制作用的输出变化量y 是输入偏差e 的积分:? =edt T y 11 2)当有偏差存在时,输出信号将随时间增大(或减小)。当偏差为零时,输出停止变化,保持在某一值上。因而积分控制器组成控制系统可以到达无余差。 3-5 什么是积分时间试述积分时间对控制过程的影响。 解答:

1)?=edt T y 1 1 积分时间是控制器消除偏差的调整时间,只要有偏差存在,输出信号将随时间增大(或减小)。只有当偏差为零时,输出停止变化,保持在某一值上。 2) 在实际的控制器中,常用积分时间Ti 来表示积分作用的强弱,在数值上,T i =1/K i 。显然,T i 越小,K i 就越大,积分作用就越强,反之亦然。 3-6 某比例积分控制器输入、输出范围均为4~20mA ,若将比例度设为100%、积分时间设为2min 、稳态时输出调为5mA ,某时刻,输入阶跃增加,试问经过5min 后,输出将由5mA 变化为多少 解答: 由比例积分公式:??? ? ??+=?edt T e P y 111分析: 依题意:%1001==p K p ,即K p =1, T I = 2 min , e =+; 稳态时:y 0=5mA , 5min 后:mA edt T e P y y )7.05()52.02 12.0(151110±=??±±?+=???? ??++ =? 3-7 比例控制器的比例度对控制过程有什么影响调整比例度时要注意什么问题 解答:P74 1)控制器的比例度P 越小,它的放大倍数p K 就越大,它将偏差放大的能力越强,控制力也越强,反之亦然,比例控制作用的强弱通过调整比例度P 实现。 2)比例度不但表示控制器输入输出间的放大倍数,还表示符合这个比例关系的有效输入区间。一表的量程是有限的,超出这个量程的比例输出是不可能的。 所以,偏差的变化使控制器的输出可以变化全量程(16mA ),避免控制器处于饱和状态。 3-8 理想微分控制规律的数学表达式是什么为什么常用实际为分控制规律 解答:

程序设计基础练习题(全答案版)

《程序设计基础——C#.NET》练习 参考答案: 一、选择题 https://www.doczj.com/doc/593928121.html,的目的就是将____A____作为新一代操作系统的基础,对互联网的设计思想进行扩展。A.互联网 B. Windows C. C# D. 网络操作系统 2.假设变量x的值为10,要输出x值,下列正确的语句是__C__。 A.System.Console.writeline(“x”) B. System.Cosole.WriteLine(“x”) C. System.Console.WriteLine(“x={0}”,x) D. System.Console.WriteLine(“x={x}”) 3.要退出应用程序的执行,应执行下列的_A___语句。 A. Application.Exit(); B. Application.Exit; C. Application.Close(); D. Application.Close; 4.关于C#程序的书写,下列不正确的说法是__D________。 A.区分大小写 B.一行可以写多条语句 C.一条语句可以写成多行 D.一个类中只能有一个Main()方法,因此多个类中可以有多个Main()方法 5. 在C#语言中,下列能够作为变量名的是__C__。 A.if B. 3ab C. b_3a D. a-bc 7. 能正确表示逻辑关系“a≥5或a≤0”的C#语言表达方式是__D__。 A.a>=5 or a<=0 B. a>=5|a<=0 C. a>=5&&a<=0 D. a>=5||a<=0 8. 以下程序的输出结果是___C_____。 A. 5 B. 4 C. 6 D. 不确定 9. If语句后面的表达式应该是__A___。 A.逻辑表达式 B. 条件表达式 C. 算术表达式 D. 任意表达式10.有如下程序:

程序设计基础课程教学大纲

《程序设计基础》课程教学大纲 课程简介:(300字以内) 《程序设计基础》是软件工程专业必修的专业核心课程之一,主要用以培养学生程序设计能力, 本课程主 要介绍 C 语言的基本语法、基本语句、数据类型、基本控制结构以及程序设计的一般方法, 使学生具有使用当今流行的系统平台的初步能力, 具有熟练使用C 语言编程解决实际问题的能力, 培 养良好的程序设计风格和习惯,培养上机解题调试程序的初步能力,为以后的软件开发等奠定基础。 教学目标(M ) 1.课程概 况 课程代码 B1102301 课程所属模块/课程性质 专业核心课 课程名称 程序设计基础 总学时/学分 82/4. 5 理论学时/学分 54/3 实践实训学时/学分 28/1.5 开设学期 适用专业 软件工程 先修课程 计算机导论 所属教研室 软件工程 选用教材 C 程序设计(第四版)谭浩强 清华大学出版社 大纲执笔人 蔡勇 大纲审核人 曾安平 M3:掌握编程一些常用的算法 M1:掌握程序设计语言相关语法规则 M2:掌握程序设计语言的基本控制结构和语句

2.教学内容及要求 第一章程序设计与C 语言 1.教学内容 第一节C 语言出现的历史背景、C 语言的特点第二节简单的C 语言程序介绍 第三节运行C 程序的步骤与方法 2.教学要求 了解C 语言出现的历史背景、C 语言的特点理解简单的C 程序功能及结构 掌握C 程序的上机调试步骤 3.教学重点和难点 C 语言的特点,运行C 程序的步骤与方法。 第二章算法——程序的灵魂 1.教学内容 第一节算法的概念、算法的特性、简单算法举例 第二节算法的表示、结构化程序设计方法 2..教学要求了解算法的概念、算法的特性理解结构化程序设计方法掌握算法的表示(自然语言表示、传统流程图表示、N-S 流程图表示、伪代码表示、计算机语言表示) 3.教学重点和难点掌握算法的表示第三章顺序结构程序设计 1.教学内容 第一节顺序结构程序设计举例 第二节数据的表达形式及其运算 第三节C 语句 第四节字符数据的输入输出、格式输入与输出 2.教学要求 掌握C 语言的数据类型、常量与变量、整型数据、浮点型数据、字符型数据、变量赋初值、数值型数据间的混合运算、算术运算符算术表达式、赋运算符和赋值表达式、逗号运算符和逗号表达式。 理解C 语言的赋值语句、输入输出概念掌握字符数据输入输出、格式输入输出,熟练掌握顺序结构程序设计方法3.教学重点和难点 各类数值型数据间的混合运算;算术运算符和算术表达式;逗号运算符和逗号表达式。字符数据的输入输出,简单的格式输入与输出,较复杂的输入输出格式控制。 第四章选择结构程序设计 1.教学内容 第一节关系运算符和关系表达式、逻辑运算符和逻辑表达式第二节if 语句、switch 语句 第三节选择结构程序设计综合举例 2.教学要求理解关系运算符和关系表达式、逻辑运算符和逻辑表达式掌握if 语句、switch 语句,熟练掌握选择结构程序设计方法3.教学重点和难点 用if 语句实现选择结构,利用switch 语句实现多分支选择结构。 第五章循环结构程序设计 1.教学内容 第一节为什么需要循环控制

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