C++习题第05章 构造数据类型

C++习题第05章 构造数据类型
C++习题第05章 构造数据类型

第05章构造数据类型

1. 选择题

(1)已知P是一个指向结构体类型A的指针,a是结构体类型A的一个变量,如果要给a 变量的成员赋值为5,()是正确的。

(A)a.m=5 (B)p->m=5 (C) (*p).m=5 (D) A.m=5

(2)下列关于数组的描述错误的是()

(A)数组的下标是从0开始的

(B)数组名是一个常量指针

(C)数组的每一个元素都是同一类型的

(D)数组元素只能赋初值,而不能在定义后赋值

(3)若有程序段如下:

(A)int a[4]={4,10},*p

(B)P=a;

则输出*(++P)的值为

(A)10 (B) 4 (C)0 (D)不定

(4).下列程序的输出结果是(B)

#include

Struct A

{int a,b,c;};

Void main()

{ struct A s[2]={{1,2,3},{4,5,6}};

Int t;

T=s[0].a+s[1].b;

Cout<

}

A)5 B)6 C)7 D)8

(5)有如下定义:

Struct data

{int year,month,day;};

Struct student

{ char name[20];

Char sex;

Struct data birthday;

}stu;

对结构体变量stu的出生年份进行赋值时,下面正确的是(C )

A)year=1990 B)stu.birthday=1990

C)stu. .birthday.year=1990; D)stu.year=1990;

2.判断题

(1)给定一个数组,可以通过直接使用数组名显示它的所有元素。

(2)如果在多维数组声明中包含了3对方括号,则后面两对方括号中必须填入常整数值。(3)可以通过引用来传递一个变量的地址。

(4)不可以对指针变量使用加号。

(5)在将一个数组地址赋给指针变量前必须对数组值进行初始化。

3.读程序写结果

(1)

#include

void main()

{

int a=10,*p=&a,**q=&p,b=15;

cout<<(++**q*b-++(*p))<

}

(2)

#include

void main()

{

int a[]={2,4,6,8,10};

int *p=a;

int i;

cout<<(*p)++<<*(p++)<

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

cout<

}

(3)

#include

enum GROUP

{A,B,C=10,D=20,E};

union comm

{unsigned int x[2];

unsigned short c;

};

void main()

{

union comm y;

y.x[0]=0x1FFFF;

y.x[1]=0x61;

cout<

}

(4)

#include

struct data

{

int x;

int y;

};

void main()

{

data *p;

data mydata[2]={8,5,9,3};

cout<<(mydata[0].x+mydata[0].y)/mydata[1].y<

(p++)->y=p->y+10;

p->x=p->x-5;

cout<

}

(5)

#include

void print(char*);

void main()

{

char str[]={"4096"};

print(str);

cout<

}

void print(char*s)

{

char*s1=s;

if(*s1=='\0')return;

while(*s1)

s1++;

cout<<*(--s1);

*s1='\0';

print(s);

}

(6)

#include

int&func(int n,int x[]);

void main()

{

int i;

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

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

func(i,s)=i;

for(i=4;i>=0;i--)

cout<

}

int&func(int n,int x[])

{

return x[n];

}

4. 编程题

习题参考答案

第1章C++语言概述1.填空题

(1)函数说明,函数体

(2)声明区,主程序区,函数定义区

(3)多态性

(4)namespace,using

(5)std

(6)cin,>>

(7)//

(8)对数据的操作

2.判断题

(1)对(2)错(3)错(4)错(5)错

3.改错题

(1)没有函数体,应改为

void main() {};

(2)语句没有分号,应改为

using namespace myspace;

(3)cout和操作符<<共同完成输出的功能,应改为cout<<" Input your name:";

(4)应改为

#include

4.简答题(略)

5.编程题(略)

第2章基本数据类型、运算符与表达式1.选择题

(1)B (2)D (3)B (4)D (5)B

2.简答题

(1)(a)、(c)(e)、(f)、(g)、(h)、(i)

(2)(a)、(g)、(i)、(j)

(3)

(a)5.5

(b)0

(c)20

(d)0,0

(e)1

(f)1,2

(g)3

(h)-40

(i)2

(j)3

(k)s1>='0'&&s1<='9'

(l)N!=0

3.读程序写结果

(1)0,15

(2)(1、1、1),(-1、-1、-1)

(3)

(a)a*a+2*a*b+b*b

(b)4.0/3.0*3.1415926*R*R*R

(c)5.0/9.0*(F-32)

(d)b>=a&&b<=c

(4)

36

41

43

(5)

x=1

4.编程题(略)

第3章C++的控制语句

1.选择题

(1)B (2)A (3)A (4)C (5)A

2.判断题

(1)错(2)对(3)对(4)错(5)错

3.读程序写结果

(1)

1

2 2

3 3 3

4 4 4 4

5 5 5 5 5

(2)

1

1 2 1

1 2 3 2 1

1 2 3 4 3 2 1

1 2 3 4 5 4 3 2 1

(3)

j的值为0;

i的值为2;

4.编程题(略)

第4章函数1.填空题

(1)void

(2)静态全局变量,static

(3)函数重载

(4)inline

(5)递归函数

(6)宏定义命令,文件包含命令,条件编译命令2.判断题

(1)错(2)错(3)错(4)错(5)错

(6)对(7)错(8)错(9)对(10)对3.读程序写结果

(1)

x=7,y=4

x=9,y=5

(2)

34.56

101

(3)

16

22

28

(4)

12 15 18 21 24

(5)

2,1,4,1,3,2,1,

4.简答题(略)

5.编程题(略)

第5章构造数据类型1.选择题

(1)C (2)D (3)A (4)B (5)C

2.判断题

(1)错(2)对(3)对(4)错(5)错3.读程序写结果

(1)

153

(2)

42

2 5 6 8 10

(3)

65535,21

(4)

4

19

(5)

6904

(6)

4

3

2

1

4.编程题(略)

第6章类和对象1.填空题

(1)类,对象,类

(2)数据成员,成员函数

(3)不能

(4)private,protected,public,private

(5)成员函数

(6)friend

(7)类名,作用域运算符

(8)对象名.成员名,指针变量名->成员名,(*指针变量名).成员名

(9)构造,析构,构造,析构

(10)常量数据,引用数据

(11)全局,数据类型,所属的类

(12)常成员,只读

(13)成员,友元

(14)类数据成员,类成员函数

(15)this

(16)浅拷贝

2.选择题

(1)C (2)C (3)B (4)C (5)B

(6)C (7)D (8)B (9)C (10)D

(11)A (12)C (13)D (14)D (15)B

3.改错题

(1)man1.salary=1000.00; 不能在类外访问类的私有成员

(2)float r=0;和float c=0; 类本身是抽象的,不能在类的定义体中给其数据成员赋值}后缺少分号“;”

(3)成员函数void setdata(float x1,float y1,float r);没有实现

(4)构造函数名point()应与类名同名,为Point

没有头文件包含#include

4.读程序写结果题

(1)

x=0,y=0

x=100,y=200

(2)

x=100,y=200

x=1000,y=2000

t=3.14

(3)

Sta::fun2()=10

s.fun2()=11

r.a=20

(4)

Constructor1 called!

x=0

Constructor2 called!

x=100

Destructor called!

Destructor called!

(5)

57

5.简答题(略)

6.编程题(略)

第7章继承和派生

1.填空题

(1)继承

(2)基类,派生类

(3)private,protected,public,private

(4)不可访问,保护,公有

(5)私有

(6)单(一),多(重)

(7)赋值兼容规则

(8)静态,动态

(9)抽象类

2.选择题

(1)B (2)A (3)B (4)C (5)B

(6)A (7)D (8)B (9)B (10)B

(11)D (12)B

3.改错题

(1)本题的错误主要是数据成员的访问权限问题:基类的私有成员在派生类中不可访问,如fb()函数中的a3=30;语句;类的私有和保护成员在类外不能访问,如main函数中的x.a2 =20;.a3=30; ,y.a2=200; ,y.a3=300; ,y.b2=2000;和y.b3=3000;语句。

(2)本题的错误主要是成员函数的访问权限问题:由于派生类Derived是基类Base 的保护派生类,所以基类中的私有成员变成派生类的不可访问成员,而基类的保护和公有成员则变成派生类的保护成员。对于类的不可访问和保护成员在类外是不能访问的,故main 函数中的语句obj.funl();,obj.fun2(); 和obj.fun3(); 是错误的。

4.读程序写结果题

(1)

d=110

b=190

d=110

d=110

(2)

d=110

b=190

d=110

b=90

(3)

基类B1的构造函数被调用

基类B3的构造函数被调用

基类B2的构造函数被调用

派生类D的构造函数被调用

派生类D的析构函数被调用

基类B2的析构函数被调用

基类B3的析构函数被调用

基类B1的析构函数被调用(4)

A

B

C

D

D

(5)

A

B

D

D

(6)

A

A

B

D

D

(7)

A

B

C

D

D

(8)

5

25

5.简答题(略)

6.编程题(略)

第8章运算符重载1.填空题

(1)函数重载

(2)重载为类的成员函数,重载为类的友元函数(3)Operator

(4)1,2

(5)友元

2.选择题

(1)B (2)D (3)A (4)D (5)B

(6)C (7)C (8)C

3.简答题(略)

4.编程题(略)

第9章模板1.填空题

(1)类模板,函数模板

(2)类,对象

(3)数据类型

(4)fun(5)

2.选择题

(1)C (2)B (3)C (4)B (5)D

3.简答题(略)

4.编程题(略)

第10章文件1.填空题

(1)FILE,stdio.h

(2)stdio.h,fopen,fclose

(3)顺序,随机

(4)cin,>>,cout,<<

(5)ios

(6)fstream,open,close

(7)文件指针的当前位置,文件开头,文件尾2.选择题

(1)B (2)B (3)A (4)D (5)B

(6)D (7)C (8)B (9)A (10)B

3.简答题(略)

4.编程题(略)

第11章string类与标准模板库STL 1.填空题

(1)字符数组,string类

(2)string

(3)容器,迭代器,算法

(4)顺序,关联

(5)指针

(6)函数模板

2.简答题(略)

3.编程题(略)

第12章异常处理

1.填空题

(1)throw,try,catch

(2)多

(3)数据类型

(4)catch(…)

(5)相反

2.判断题

(1)错(2)对(3)错(4)错(5)错

3.简答题(略)

4.编程题(略)

自定义数据类型习题及答案(C语言)

第7章自定义数据类型习题 一.选择题: 1.当定义一个结构体变量时,系统分配给它的内存空间是【】。 A) 结构中一个成员所需的内存量B) 结构中最后一个成员所需的内存量 C) 结构体中占内存量最大者所需的容量D) 结构体中各成员所需内存量的总和2.若有以下说明,对初值中整数2的正确引用方式是【】。 static struct { char ch; int i; double x; } a[2][3]={{…a?,1,3 .45,?b?,2,7.98,?c?,3,1.93I} {…d?,4,4.73,?e?,5,6.78,?f?,6,8.79 }}; A) a[1][1].i B) a[0][1].i C) a[0][0].i D) a[0][2].i 3.根据以下定义,能打印字母M的语句是【】。 struct p { char name[9]; int age; }c[10]={“Jobn”,17,”Paul”,19,”Mary”,18,”Adam”,16}; A) printf(“%c”,c[3].name);B) printf(“%c”,c[3].name[1]); C) printf(“%c”,c[2].name);D) printf(“%c”,c[2].name[0]); 4.以下说明和语句中,已知int型数据占两个字节,则以下语句的输出结果是【】。 struct st { char a[l0]; int b; double c; }; printf(“%d”,sizeof(struct st)); A) 0 B) 8 C) 20 D) 2 5.以下说明和语句中,对结构体变量std中成员id的引用方式不正确的是【】。 struct work { int id; int name; } std, *p; p=&std; A) std.id B) *p.id C) (*p).id D) &std.id 6.如设有如下定义,若要使px指向rec中的成员x,正确的赋值语句是【】。 struct aa

C语言自定义数据类型

自定义数据类型 结构体 结构体是程序员在程序中自定义的一种数据类型,在说明和使用之前必须先定义它,也就是构造它。定义一个结构体的语法格式如下: Struct 结构体类型名 { 成员1的数据类型名成员1名称; 成员2的数据类型名成员2名称; . . 成员n的数据类型名成员n名称; }结构体变量表={成员初始化}; 注意成员可以由若干个不同的数据类型组成,每个成员也可以是结构体,即可以嵌套定义。 例如: Struct student { Long num; Char name; Char sex; Float score; }; 已经定义的某种结构体类型可以视为一种标准的数据类型,它的使用方法与标准数据类型使用方法相同,可以用来定义变量、数组、指针。 结构体变量说明 结构体变量的说明在程序的变量说明部分给出,一般在结构定义之后,它的语法格式如下: Struct 结构类型名结构变量名表; 例如: Struct student stu; 指出了结构变量stu是student类型的变量,它由四个成员组成,每个成员的数据类型和名字都与student结构定义中给出的相同。系统完全按照结构定义时制定的内存模式为结构变量分配内存空间。 可以在定义结构体类型的同时给出结构体变量。 Struct student { Long num; Cha name[20]; Cha sex; Float score; }stu1,stu2; 这种形式与前面给出的结构定义和结构说明分开处理效果相同。

结构体成员访问 结构体成员是通过结构体变量名和成员名进行访问的,不能把他作为一个整体进行访问。其访问格式如下: 结构体变量名.成员名 其中运算符.是成员访问运算符,其运算级别是最高的,和圆括号运算符()、下标运算符[]是同一级别的。如果结构体成员是指针变量,则访问格式为: *https://www.360docs.net/doc/a111479471.html, 如果某个结构体变量的成员数据类型又是一个结构体,则访问方式为: 外层结构体变量名.外层成员名.内层成员名 可以在定义结构体变量的同时对结构体变量初始化。 {结构体成员}结构体变量={初始数据}; struct student { long num; char name[20]; char sex; float score; } stu1={200401L,"ZhangHong",'f',92.5f}; 对于嵌套的结构体类型数据,访问格式为: 结构体变量名1.结构体变量名2.成员名 结构体变量初始化的格式如下: struct 结构体名 {结构体成员}结构体变量={初始数据}; 初始数据类型必须与结构成员的数据类型相匹配,并且先后顺序一一对应赋值。 要对结构体变量的成员地址进行访问,其语法格式为: &结构体变量.成员名 当一个指针变量用来指向一个结构变量时,称为结构体指针变量。结构体指针变量中的值是所指向的结构体变量的首地址。 结构体指针变量: Struct 结构名*结构体指针变量名 Struct student *pstu; 必须先赋值后使用,把结构体变量的首地址赋给指针变量,不能把结构名或结构体变量名赋给指针变量。 pstu=&stu1; 结构体名和结构体变量是两个不同的概念,结构体名只能表示一个结构形式,编译系统并不对它分配内存空间,只有当某变量被说明为这种类型的结构时,才对该变量分配存储空间。这是因为结构体变量被定义后相当于标准数据类型被使用。 利用结构体指针变量访问成员如下: (*结构体指针变量).成员名 或者: 结构体指针变量->成员名 后一种形式较为方便,容易区分。

第10章 合理使用数据类型

第10章合理使用数据类型 在进一步讨论更深的主题之前,我们需要先停一停,快速地回顾一下可移植问题。Linux1.2版本和2.0版本之间的不同就在于额外的多平台能力;结果是,大多数源代码级的移植问题已经被排除了。这意味着一个规范的Linux驱动程序也应该是多平台的。 但是,与内核代码相关的一个核心问题是,能够同时存取各种长度已知的数据项(例如,文件系统数据类型或者设备卡上的寄存器)和利用不同处理器的能力(32位和64位的体系结构,也有可能是16位的)。 当把x86的代码移植到新的体系结构上时,核心开发者遇到的好几个问题都和不正确的数据类型相关。坚持强数据类型以及编译时使用-Wall-Wstrict-prototypes选项能够防止大部分的臭虫。 内核使用的数据类型划分为三种主要类型:象int这样的标准C语言类型,象u32这样的确定数据大小的类型和象pid_t这样的接口特定类型。我们将看一下这三种类型在何时使用和如何使用。本章的最后一节将讨论把驱动器代码从x86移植到其它平台上可能碰到的其它一些典型问题。 如果你遵循我提供的这些准则,你的驱动程序甚至可能在那些你未能进行测试的平台上编译并运行。 使用标准C类型 大部分程序员习惯于自由的使用诸如int和long这样的标准类型,而编写设备驱动程序就必须细心地避免类型冲突和潜在的臭虫。 问题是,当你需要“2个字节填充单位(filler)”或“表示4个字节字符串的某个东西”时,你不能使用标准类型,因为通常的C数据类型在不同的体系结构上所占空间大小并不相同。例如,长整数和指针类型在Alpha上和x86上所占空间大小就不一样,下面的屏幕快照表明了这一点: morgana%./datasize system/machine:Linux i486 sizeof(char)=1 sizeof(short)=2 sizeof(int)=4 sizeof(long)=4 sizeof(longlong)=8 sizeof(pointer)=4

数据结构1-10章习题

第1章绪论 1.简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型。2.试举一个数据结构的例子,叙述其逻辑结构和存储结构两方面的含义和相互关系。 3.简述逻辑结构的四种基本关系并画出它们的关系图。 4.存储结构由哪两种基本的存储方法实现? 5.选择题 (1)在数据结构中,从逻辑上可以把数据结构分成()。 A.动态结构和静态结构B.紧凑结构和非紧凑结构 C.线性结构和非线性结构D.内部结构和外部结构 (2)与数据元素本身的形式、内容、相对位置、个数无关的是数据的() A.存储结构B.存储实现C.逻辑结构D.运算实现 (3)通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着()。 A.数据具有同一特点 B.不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型要一致 C.每个数据元素都一样 D.数据元素所包含的数据项的个数要相等 (4)以下说法正确的是()。 A.数据元素是数据的最小单位 B.数据项是数据的基本单位 C.数据结构是带有结构的各数据项的集合 D.一些表面上很不相同的数据可以有相同的逻辑结构 (5)以下与数据的存储结构无关的术语是()。 A.顺序队列 B. 链表 C. 有序表 D. 链栈 (6)以下数据结构中,()是非线性数据结构 A.树B.字符串C.队D.栈 6.试分析下面各程序段的时间复杂度。 (1)x=90; y=100; while(y>0) if(x>100) {x=x-10;y--;} else x++; (2)for (i=0; i

补充练习第八章构造数据类型

补充练习第八章构造数据类型 第八章构造数据类型 一、单项选择题: 1.设有以下语句: struct st{int n; struct st *next;}; static struct st a[3]={5,&a[1],7,&a[2],9,?\0?},*p; p=&a[0]; 则表达式的值是6。 A. p++ ->n B. p->n++ C. (*p).n++ D. ++p->n 2.若有下面的说明和定义,则sizeof(struct aa)的值是。 struct aa{int r1; double r2; float r3;} mya; A. 8 B. 10 C. 12 D. 14 3. 若程序中有下面的说明和定义: struct abc{int x; char y;} struct abc s1,s2; 则会发生的情况是。 A. 编译出错 B. 程序将顺利编译、连接、执行 C. 能顺利通过编译、连接,但不能执行 D. 能顺利通过编译,但连接出错 4.选择出k的正确值。 enum {a,b=5,c,d=4,e} k; k=e; A.3 B. 4 C. 5 D. 6 5.选择出不正确的函数定义:。 A.struct tree func(s) B. int *func(s) struct tree s[]; char *s[]; { { ... ... } } C. struct tree *func(s) D. int *func(s) char **s; char *s[10][]; { {

... ... } } 6.若有以下的说明,则在scanf函数调用语句中对结构体变量成员的不正确引用方式为。 struct pupil { char name[20]; int age; int sex; } pup[5], *p; p=&pup[0]; A.scanf(“%s”, pup[0].name); B. scanf(“%d”, &pup[0].age); C. scanf(“%d”, &(p->sex)); D. scanf(“%d”, &p->age); 7. 设有100个学生的考试成绩数据表如下形式: 在下面结构体数组的定义中,不正确的是: A.struct student B. struct stud [100] { { int no; int no; char name [10]; char name [10]; float score; float score; }; }; struct student stud[100]; C. struct student D. struct { { int no; int no; char name [10]; char name [10]; float score; float score; } stud[100]; ]stud[100];

数据结构第八章习题及答案

习题八查找 一、单项选择题 1.顺序查找法适合于存储结构为()的线性表。 A.散列存储 B. 顺序存储或链式存储 C. 压缩存储 D. 索引存储 2.若查找每个记录的概率均等,则在具有n个记录的连续顺序文件中采用顺序查找法查找一个记录,其平均查找长度ASL为( )。 A. (n-1)/2 B. n/2 C. (n+1)/2 D. n 3.适用于折半查找的表的存储方式及元素排列要求为( ) A.链接方式存储,元素无序 B.链接方式存储,元素有序 C.顺序方式存储,元素无序 D.顺序方式存储,元素有序 4.当在一个有序的顺序存储表上查找一个数据时,即可用折半查找,也可用顺序查找,但前者比后者的查找速度( ) A.必定快 B.不一定 C. 在大部分情况下要快 D. 取决于表递增还是递减5.当采用分块查找时,数据的组织方式为 ( ) A.数据分成若干块,每块内数据有序 B.数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块 C. 数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成索引块 D. 数据分成若干块,每块(除最后一块外)中数据个数需相同 6.二叉树为二叉排序树的充分必要条件是其任一结点的值均大于其左孩子的值、小于其右孩子的值。这种说法()。 A.正确 B. 错误 7. 二叉查找树的查找效率与二叉树的((1) )有关, 在 ((2) )时其查找效率最低。 (1): A. 高度 B. 结点的多少 C. 树型 D. 结点的位置 (2): A. 结点太多 B. 完全二叉树 C. 呈单枝树 D. 结点太复杂。 8.如果要求一个线性表既能较快的查找,又能适应动态变化的要求,则可采用( )查找法。 A. 分快查找 B. 顺序查找 C. 折半查找 D. 基于属性 9.分别以下列序列构造二叉排序树,与用其它三个序列所构造的结果不同的是( )。 A.(100,80, 90, 60, 120,110,130) B.(100,120,110,130,80, 60, 90) C.(100,60, 80, 90, 120,110,130) D. (100,80, 60, 90, 120,130,110) 10.下图所示的4棵二叉树,( )是平衡二叉树。 (A)(B)(C)(D) 11.散列表的平均查找长度()。 A.与处理冲突方法有关而与表的长度无关 B.与处理冲突方法无关而与表的长度有关 C.与处理冲突方法有关且与表的长度有关 D.与处理冲突方法无关且与表的长度无关 12. 设有一组记录的关键字为{19,14,23,1,68,20,84,27,55,11,10,79},用链地址法构造散列表,散列函数为H(key)=key MOD 13,散列地址为1的链中有()个

第十章-CO10-作业类型主数据维护流程.

第十章-CO10_作业类型主数据维护流程 1.流程说明 此流程描述对作业类型在SAP系统中之维护(创建、修改、删除、冻结),以利于成本进行分摊。 家具公司实际业务中,作业类型仅作为计算生产成本,不作其他任何用途。因此,作业类型只有与生产部门之工作中心相关。另外,哪一类成本中心之费用及该费用通过作业类型分摊至哪个次级成本要素中去均须于创建作业类型时予以确定。 作业类型编码原则以及作业类型与次级成本要素之对应关系(参见附件一),由主数据专职维护人员统一定义、维护。 维护时,财务主数据维护专职人员须填写“作业类型主数据维护申请表”,作为SAP系统维护之依据。 注意事项: 通常,作业类型于SAP上线后即可交付使用,一般不需要创建、修改、删除或冻结。 因系统的高度集成,故创建作业类型前,必须与生产部门(PP模组)达成共识后方可进行,否则将引起前端部门作业困扰,冻结时亦然(若仅在CO模组已创建作业类型但不能与PP模组集成,则该作业类型是无用的)。 修改作业类型时,亦应事先与生产部门取得共识后方可进行。 2.流程图

3.系统操作 3.1.操作范例 例1:因公司内部核算需要,生技部门于2000/12/01起实行独立核算,各生产车间凡涉及之维 修费用均透过生技部门进行,生技部门按实际维修工时(维修内部价格按公司制定标准执行)结 算各生产车间费用。为此,财务部门决定创建一个作业类型——维修工时(代码:AMAINT),以 满足依维修工时核算所需。 例2:上述作业类型创建后,发现中文名称定义不够恰当,变更为生技维修工时。 例3:生技部门试运行后,未能继续推行下去,故将作业类型冻结。 例4:将作业类型——维修工时(代码:AMAINT)删除 3.2.系统菜单及交易代码 案例1:会计→控制→成本中心会计→主数据→作业类型→单个处理→创建 交易代码:KL01 案例2:会计→控制→成本中心会计→主数据→作业类型→单个处理→更改 交易代码:KL02

C++(练习)第5章,自定义数据类型

一,单选题 1. 已知枚举类型定义语句为: enum Token { NAME, NUMBER, PLUS=5, MINUS, PRINT=10 }; 则下列叙述中错误的是( )。 A 枚举常量NAME的值为1 B 枚举常量NUMBER的值为1 C 枚举常量MINUS的值为6 D 枚举常量PRINT的值为10 参考答案 A 2. 当定义一个结构体变量时,系统分配给它的内存大小的理论值是__________。 A 各成员所需内存的总和 B 结构体中的第一个成员所需内存 C 成员中所需内存最大者的存储空间 D 结构体中的最后一个成员所需存储容量 参考答案 A 3. 以下对枚举类型名的定义中正确的是()。 A enum a={“one”, “two”, “three”}; B enum a {“one”, “two”, “three”}; C enum a={one, two, three}; D enum a {one=9,two=-1,three}; 参考答案 D 4. 下面程序的正确的输出是()。 #include void main() { enum team{my,your=4,his,her=his+10}; cout<

5. 设有以下定义: enum t1 {a1,a2=7,a3,a4=15} time; 则枚举常量a1和a3的值分别是 A 1和2 B 6和3 C 1和8 D 0和8 参考答案 D 6. 设有类型说明: enum color{red, yellow=3, white, black}; 则执行语句cout<

数据结构作业系统_第十章答案

10.23②试以L.r[k+1]作为监视哨改写教材10.2.1节 中给出的直接插入排序算法。其中,L.r[1..k]为待排 序记录且k0;i--) { L.r[L.length+1]=L.r[i+1]; if(GT(L.r[i],L.r[i+1])) { L.r[L.length+1]=L.r[i]; L.r[i]=L.r[i+1]; } for(j=i+2;LT(L.r[j],L.r[L.length+1]);j++) L.r[j-1]=L.r[j]; L.r[j-1]=L.r[L.length+1]; } } 10.26②如下所述改写教科书1.4.3节中的起泡排序算法:将算法中用以起控制作用的布尔变量change改为一个整型变量,指示每一趟排序中进行交换的最后一个记录的位置,并以它作为下一趟起泡排序循环终止的控制值。 实现下列函数: void BubbleSort(SqList &L); /* 元素比较和交换必须调用以下比较函数和交换函数:*/ /* Status LT(RedType a, RedType b); 比较:"<" */

程序设计教程(机械工业出版社)课后习题答案 第5章 构造数据类型

第5章构造数据类型 1、枚举类型有什么好处?C++对枚举类型的操作有何规定? 答:使用枚举类型有利于提高程序的易读性;使用枚举类型也有利于保证程序的正确性。 首先,可以对枚举类型实施赋值操作,但不同枚举类型之间不能相互赋值,而且不能把一个整型数直接赋值给枚举类型的变量。还可以对枚举类型实施比较运算。还可以对枚举类型实施算术运算,对枚举类型的运算前要转换成对应的整型值,且运算结果类型为算术类型,而且不能对枚举类型的值直接进行输入/输出。 2、指针类型主要用于什么场合?引用类型与指针类型相比,其优势在哪里? 答:指针类型主要用于参数传递和对动态变量的访问。在C++中,指针类型还用于访问数组元素,以提高访问效率。 引用类型与指针类型都可以实现通过一个变量访问另一个变量,但访问的语法形式不同:引用是采用直接访问形式,指针则采用间接访问形式。在作为函数参数类型时,引用类型参数的实参是一个变量,而指针类型参数的实参是一个变量的地址。 除了在定义时指定的被引用变量外,引用类型变量不能再引用其他变量;而指针变量定义后可以指向其他同类型的变量。因此,引用类型比指针类型要安全。 引用类型的间接访问对使用者而言是透明的。 3、写出下面程序的运行结果: #include using namespace std; void f(int &x,int y) { y = x + y; x = y % 3; cout << x << ‘\t’ << y << endl; } int main() { int x=10, y=19; f(y,x); cout << x << ‘\t’ << y << endl; f(x,x); cout << x << ‘\t’ << y << endl; return 0; } 答: 2 29 10 2 2 20 2 2 4、从键盘输入某个星期每一天的最高和最低温度,然后计算该星期的平均最低和平均最高 温度并输出之。 解: #include

数据结构作业系统_第十章答案教学文稿

数据结构作业系统_第 十章答案

10.23②试以L.r[k+1]作为监视哨改写教材10.2.1节 中给出的直接插入排序算法。其中,L.r[1..k]为待排 序记录且k0;i--) { L.r[L.length+1]=L.r[i+1]; if(GT(L.r[i],L.r[i+1])) { L.r[L.length+1]=L.r[i]; L.r[i]=L.r[i+1]; } for(j=i+2;LT(L.r[j],L.r[L.length+1]);j++) L.r[j-1]=L.r[j]; L.r[j-1]=L.r[L.length+1]; } } 10.26②如下所述改写教科书1.4.3节中的起泡排序算法:将算法中用以起控制作用的布尔变量change改为一个整型变

量,指示每一趟排序中进行交换的最后一个记录的位置,并 以它作为下一趟起泡排序循环终止的控制值。 实现下列函数: void BubbleSort(SqList &L); /* 元素比较和交换必须调用以下比较函数和交换函数:*/ /* Status LT(RedType a, RedType b); 比较:"<" */ /* Status GT(RedType a, RedType b); 比较:">" */ /* void Swap(RedType &a, RedType &b); 交换 */ 顺序表的类型SqList定义如下: typedef struct { KeyType key; ... } RedType; typedef struct { RedType r[MAXSIZE+1]; // r[0]闲置或用作哨兵单元 int length; } SqList; 比较函数和交换函数: Status LT(RedType a, RedType b); // 比较函数:"<" Status GT(RedType a, RedType b); // 比较函数:">" void Swap(RedType &a, RedType &b); // 交换函数 void BubbleSort(SqList &L) /* 元素比较和交换必须调用如下定义的比较函数和交换函数:*/ /* Status LT(RedType a, RedType b); 比较:"<" */

第3章 创建数据类型和表

第3章创建数据类型和表 本章概述 在前面了解了SQL Server数据库的组成以及SQL Server数据库中的对象后,我们在本章中学习数据库中的数据类型和表的创建方法。通过本章的学习,我们已经能够利用SQL Server数据库为简单资料设计和实现最基本的存储方案了。 教学目标 ●了解SQL Server支持的数据类型 ●掌握创建和删除用户定义数据类型的方法 ●掌握创建和删除用户表的方法 ●掌握生成列值的方法 ●掌握生成脚本的方法 教学重点 ●SQL Server支持的类型,何时选用何种类型描述数据。用户定义类型的相关处理。 ●用户表的增删以及相关操作,包括生成脚本和数据列的定义。 教学难点 ●本章同样会设计到数据的底层存储结构,比如B树,为什么要这样设计,需要讲 清楚。 ●企业项目流程同课程内容的结合。比如设计表结构属于项目什么阶段的任务,该 任务的实际进行方式是如何的(结合案例)。又比如生成SQL脚本对项目的作用。

数据库程序设计—SQL Server 2000 数据库程序设计教师参考手册 教学资源 先修知识 在正式开始学习本章内容以前,学生须具备下列知识基础。 2

第3章创建数据类型和表 建议学时 课堂教学(3课时)+实验教学(3课时) 教学过程 3.1创建数据类型 教学提示: 本节主要达到三个目的。 ●掌握SQL Server支持的数据类型。(精讲) ●掌握用户自定义类型的创建。(精讲+演示) ●掌握选择数据类型的原则,这点在企业数据库应用中非常重要,因为正确的选择数据 列的类型将使数据库性能达到最优。(略讲) 3

数据库程序设计—SQL Server 2000 数据库程序设计教师参考手册 4

C++习题第05章 构造数据类型

第05章构造数据类型 1. 选择题 (1)已知P是一个指向结构体类型A的指针,a是结构体类型A的一个变量,如果要给a 变量的成员赋值为5,()是正确的。 (A)a.m=5 (B)p->m=5 (C) (*p).m=5 (D) A.m=5 (2)下列关于数组的描述错误的是() (A)数组的下标是从0开始的 (B)数组名是一个常量指针 (C)数组的每一个元素都是同一类型的 (D)数组元素只能赋初值,而不能在定义后赋值 (3)若有程序段如下: (A)int a[4]={4,10},*p (B)P=a; 则输出*(++P)的值为 (A)10 (B) 4 (C)0 (D)不定 (4).下列程序的输出结果是(B) #include Struct A {int a,b,c;}; Void main() { struct A s[2]={{1,2,3},{4,5,6}}; Int t; T=s[0].a+s[1].b; Cout<

相关文档
最新文档