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

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

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

第八章构造数据类型

一、单项选择题:

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

8. 设有一结构体类型变量定义如下:

struct date

{ int year;

int month;

int day;

};

struct worklist

{ char name [20];

char sex;

struct date birthday;

}person;

若要对结构体变量person的出生年份进行赋值时,下面正确的赋值语句是:A.year=1976 B. birthdat.year=1976

C. person.birthday.year=1976

D. person.year=1976

9.有以下程序

#include

struct stu

{ int num;

char name[10];

int age;

};

void fun(struct stu *p)

{ printf(“%s\n”, (*p).name);}

main()

{ struct stu students[3]={ {9801,”Zhang”,20},

{9802,”Wang”,19},

{9803,”Zhao”,18} };

fun(students+2);

}

输出结果是

A)Zhang B)Zhao C)Wang D)18

二、填空题:

1.定义struct{ int x; int y;} s[2]={{1,2},{3,4}},*p=s;

则表达式++p->x的值为, 表达式(++p)->x的值为。

2.有以下说明和语句,可用a.day引用结构体成员day,请写出引用结构体成员a.day

的其它两种形式、。

3.定义struct{ int x; char *y;} tab[2]={{1,”ab”},{2,”cd”}}, *p=tab;

则表达式*p->y的结果为,表达式*(++p)->y的结果为。

4.结构体类型的数据特性是,使用结构体处理数据的场合是

三、判断题:

1.结构体和数组一样,属于构造数据类型。()

2.在结构体中,各成员应该具有不同的数据类型。()

3.结构体可以作为函数的参数。()

4.结构体和数组不一样,结构体属于构造数据类型,数组是基本数据类型。()5.在程序中使用结构体时,一般不允许把结构体作为一个整体参加操作处理,而应通过对结构体的各个成员项的引用来实现各种运算和操作。()

6.在程序中,可以将一个结构体变量作为一个整体赋给另一个同类型的结构体变量。()7.枚举类型变量可用于while和for语句中的循环控制参数。()

二、程序阅读题:

1.程序如下:

struct n_c{int x; char c;};

main()

{ struct n_c a={10,?x?};

func(a);

printf(“%d%c”,a.x,a.c);

}

func(struct n_c b)

{ b.x=20; b.c=?y?; }

该程序的运行结果是:

2. #include

main()

{ int i;char *s;float f1,f2;

struct std

{ int id;

char * name;

float sf1;

float sf2;

} a;

i=a.id=1995; s=https://www.360docs.net/doc/3711412598.html,=”Windows 95”;

f1=a.sf1=1.18;f2=a.sf2=6.0;

printf(“%d is %s\n”,i,s);

printf(“%f %f\n”,f1,f2);

}

三、程序填空题:

1.下面是从键盘上输入一个日期,计算该日是该年中第几天,并从屏幕上显示出来。程序如下:

struct date{int d; int m; int y;};

main()

{struct date ymd;

printf(“Enter year-month-day:”);

scanf(“%d-%d-%d”,&ymd.y,&ymd.m,&ymd.d);

printf(“The Passed days:%d\n”,days ( ));

}

int days(struct date pd)

{static int tab[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31}, {0,31,29,31,30,31,30,31,31,30,31,30,31}};

int number,i,lp;

number=pd.d;

lp=pd.y%4= =0 && pd.y%100!=0| |pd.y%400= =0;

for (i=1; i

return( );

}

2.下面的程序从终端上为结构数组接收5个人的年龄、性别和姓名,然后输出。

程序如下:

struct man{char name[20]; unsigned age; char sex[7]};

main()

{ struct man person[5];

data_in(person); data_out(person);

}

data_in(struct man *p)

{ struct man *q= ;

for (;p

{printf(“age:sex:name”); scanf(“%u,%s”,p->age,p->sex);

;

}

}

data_out(struct man *p)

{ struct man *q= ;

for (;pname,p->age,p->sex); }

第八章

一.单项选择题

1. D

2. D

3. A

4. C

5. D

6. 无

7. B

8. C. 1. B

二.填空题

1. 2 3

2.(*(&a)).day (&a)->day

3. …a?…c?

4.. 不同类型的数据占用连续的存储单元不同类型的数据组合在一起

三.判断题

1. √

2. ╳

3. √

4. ╳

5. √

6. √

7. √

四.程序阅读题

1. 10x

2. 1995 is Windows 95

1.1800000 .000000

五.程序填空题

1. ymd number+tab[lp][i number

2. p+5 scanf(“%s”,p->name), p+5

3. struct parts *next (struct parts *)malloc(LEN)

自定义数据类型习题及答案(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

实验1 类的基本使用

实验一类的基本使用 一、实验目的 1.掌握类的定义; 2.熟悉方法及属性的定义与使用; 3. 掌握对象中的对象用法。 二、实验要求 1.认真完成实验内容并得到正确的程序运行结果。 2.为你的程序加上注释,使得其清晰可读。 3.利用调试程序来修改你程序的逻辑错误 三、实验原理 1.类定义:客观世界中的事物往往需要从属性与行为两个方面进行描述,在JAVA中,分别用数据成员与函数成员来表现,并且将它们封装在一起,形成一种抽象数据类型——类。 类具有数据成员和成员函数两种成员,类成员分为公开的(public)和私有的(private)两类。外界不能访问一个对象的私有部分,它们与对象间的信息传送只能通过公开成员函数等特定方法进行。 类接口定义的基本格式为

四、主要仪器及耗材 计算机及eclipse软件 五、实验内容与步骤 1. 设计一个商品类,在edu.dali包里实现类Commodity,要求: ①包括编号、名称、产地、单价属性; ②通过构造函数对各属性附值; ③定义一个取得折扣价的方法,输入折扣值返回折扣价。 ④在CommodityTest的main( )里创建对象创建,输出对象属性及6.5价的价格。 2.编写一类似开心农场游戏中的植物类,要求: ①在edu.dali包里实现类Plant ②具有名称、颜色、种类、金钱数、经验值(exp)、生长周期(天)、果实; ③“种类”为PlantType类型(代码、名称属性) ④植物可以有多个果实,每个果实为Fruit类型的对象,具有编号、名称、重量、颜色、形状、卖出价格属性。 ⑤通过一个方法取得果实卖出总价。 ⑥在PlantTest类的main方法里创建Plant对象,并输出名称、颜色、种类、金钱数、经验值、生长周期属性,输出该Plant对象的果实数量及总价。 提示:植物果实可用对象集合实现 public class Class { private String classNo; private String className; List studentList;

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/3711412598.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; 结构体名和结构体变量是两个不同的概念,结构体名只能表示一个结构形式,编译系统并不对它分配内存空间,只有当某变量被说明为这种类型的结构时,才对该变量分配存储空间。这是因为结构体变量被定义后相当于标准数据类型被使用。 利用结构体指针变量访问成员如下: (*结构体指针变量).成员名 或者: 结构体指针变量->成员名 后一种形式较为方便,容易区分。

实验2基本数据类型与数组(最新整理)

民族学院实验报告 计算机科学 系 级 班 指导教师 报告人20 年 月 日 成 绩 课程名称 JAVA 语言程序设计实验名称实验二 基本数据类型与数组实验 目的 1.掌握基本数据类型及其相互之间的转换2.掌握JAVA 中数组的使用实验仪器 和器材具有JDK 环境的计算机一台 实验内容和要求 一、输出希腊字母表 1.请按模板要求,将【代码】替换为Java 程序代码,运行该程序时在命令窗口中输出希腊字母表。其运行效果如图 2.1所示。 图2.1 输出希腊字母表 GreekAlphabet.java public class GreekAlphabet { public static void main(String[] args) { int startPosition=0,endPosition=0; char cStart='α',cEnd='ω'; startPosition=(int )cStart; //cStart 做int 型数据转换,并将结果赋值给startPosition endPosition=(int )cEnd; //cEnd 做int 型数据转换,并将结果赋值给EndPosition System.out.println("希腊字母\'α\'在Unicode 表中的顺序位置:"+(int)cStart); System.out.println("希腊字母表:"); for (int i=startPosition;i<=endPosition;i++){ char c='\0'; cStart=(char )i; //i 做char 型转换运算,并将结果赋值给c System.out.print(" "+c); if ((i-startPosition+1)%10==0) System.out.println(); } } } 2.实验后练习 (1)将一个double 型数据直接赋值给float 型变量,程序编译时提示怎样的 错误? 答:程序提示的内容为:“可能损失精度”。 (2)在应用程序的main 方法中增加语句:

第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

《Python程序设计》实验3---Python基本数据类型及分支结构实验报告

**大学数学与信息工程学院 《Python程序设计》实验报告 实验名称:实验3 Python基本数据类型及分支结构 … 班级: 姓名:学号:[ 实验地点:日期: 、 一、实验目的: [实验目的和要求] 1、熟练掌握Python三种数字类型及其应用 \ 2、熟练判断条件表达式的真假 3、熟练掌握Python分支结构 二、实验环境: 1、计算机,局域网,python 软件 三、实验内容和要求:(直接将实验步骤及截图写在题目下面,结果必须截图) 1、# 2、复数z=-3+4j,用Python程序求得对应的实部和虚部并计算z的绝对值,并思考输出的绝对值代表什么含义 3、请将下列数学表达式用Python程序写出来,并运算结果 1) 4 2734 5 x +-?= 代码:~

a=2**4 b=7 c=3 d=4 e=5 [ x=(a+b-c*d)/e print(x) 2)2 131677()(mod )/x =+? 代码: | a=3**2 b=1 c=16 d=7 x=(a+b)*(c%d)/7 # print(x) 4、编写程序,根据输入的长和宽,计算矩形的面积并输出。要求:输入语句input 实现同步赋值。 lw=input('请输入矩形的长和宽,以空格分隔:') length,width=map(float,()) ~ s=length*width

print("矩形面积为:",s) 5、编写程序,用户输入一个三位以上的整数(如果不是三位数则提示输入错误),输出其百位以上的数字。例如用户输入1234,则程序输出12。(提示:使用整除运算。) 代码: [ a=eval(input('请输入一个三位以上的整数:')) b=int(a/100) if(a<99): print('输入错误') else: … print(b)

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

补充练习第八章构造数据类型 第八章构造数据类型 一、单项选择题: 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];

实验二JAVA基本数据类型(1)

实验二JA V A基本数据类型(1) 【实验目的】 1.掌握标识符的定义规则。 2.掌握表达式的组成。 3.掌握Java 基本数据类型及其使用方法。 4.理解定义变量的作用,掌握定义变量的方法。 5.掌握各种运算符的使用及其优先级控制。 6.通过以上内容,掌握Java 语言的编程规则。 【预习内容】 1.一个声明Java 不同数据类型:整形、浮点型、字符型等类型的特点。 2.JA V A各类运算符:算术运算符、关系运算符、逻辑运算符的使用方法。 3. JA V A各类表达式:算术表达式、关系表达式、逻辑表达式的综合应用。 【实验内容及步骤】 1.编写一个JA V A程序,设置各数据类型的相应变量,并赋予初值,最后在屏幕上显示如图1所示的结果。 图1 [程序清单] public class shiyan1 { public static void main(String[] args) { byte b = 85;

short s = 22015; int i=1000000; long l = 65535; char c ='a'; float f =0.23F; double d = 7.0E-4; boolean B =true; String S ="这是字符串数据类型"; System.out.println("字节型变量b=" + b); System.out.println("短整型变量s=" + s); System.out.println("整型变量i=" + i); System.out.println("长整型变量l=" + l); System.out.println("字符型变量c=" + c); System.out.println("浮点型变量f=" + f); System.out.println("双精度变量d=" + d); System.out.println("布尔型变量B=" + B); System.out.println("字符串类对象S=" + S); System.out.println(); System.out.println("输出完成(耗时0秒)-正常终止"); } } [程序运行结果(截图)]

实验2简单数据类型和流程控制

实验2简单数据类型和流程控制 1.实验目的 (1)掌握Java语言的标识符、保留字、各简单数据类型。 (2)掌握Java语言中各种运算符表达式的基本知识。 (3)熟练掌握使用if语句进行单分支结构和双分支结构程序设计的基本方法。 (4)熟练掌握使用if语句嵌套及switch语句进行多分支结构程序设计的基本方法。(5)熟练掌握while、do-while和for三种语句组成循环结构的基本方法。 2.实验主要内容 (1)将百分制成绩转换成等级制成绩。 (2)打印所有的水仙花数,即一个三位数,它的每个数字位的立方和等于它本身。 (3)打印出杨辉三角形。 (4)改写下面的计算圆面积的程序,使之能处理用户输入的负数、并能让用户循环输入半径值,另外,设定一个用户退出程序的值,比如0或者q等,用户输入这个值后能退出时程序。 public class ComputerAreaV02 { public static void main(String[] args) { final double PI = 3.14159; // 创建一个 Scanner对象 Scanner input = new Scanner(System.in); // 提示用户输入一个半径值 System.out.print("请输入半径值: "); //从键盘接受输入的值 double radius = input.nextDouble(); // 计算圆的面积 double area = radius * radius * PI; // Display result System.out.println("圆的面积是: " + area); } } (5)计算身体质量指数。BMI指数(身体质量指数,Body Mass Index,BMI),是国际上常用的衡量人体胖瘦程度的一个标准,其计算方法是用体重(公斤)数除以身高(米)

实验2 C语言基本数据类型

实验2 C语言基本数据类型 一、实验目的: 1.掌握C语言的基本数据类型(整型、字符型和实型)。 2.掌握C语言变量的定义和赋值方法。 3.进一步熟悉C程序的编辑、编译、连接和运行的过程。 二、实验内容: 1.验证性实验 (1) 分析下面程序结果,并上机验证(整型、字符型数据表示和输出)。 #include void main() { int x=010,y=10,z=0x10; /*前导中的'0'是数字0而不是字母o*/ char c1='M',c2='\x4d',c3='\115',c4=77,c; /*字符型数据表示*/ /* 整型数据的输出 */ printf("x=%o,y=%d,z=%x\n",x,y,z); /* 数据以原进制输出,注意是否有前导0或0x */ printf("x=%d,y=%d,z=%d\n",x,y,z); /* 数据以10进制输出,换算到10进制,结果对吗? */ /* 字符型数据的输出 */ printf("c1=%c,c2=%x,c3=%o,c4=%d\n",c1,c2,c3,c4); /* 数据以原进制输出,注意是否有前导0或0x */ printf("c1=%c,c2=%c,c3=%c,c4=%c\n",c1,c2,c3,c4); /*结果都是什么字符?,也就是说字符可以自由的表示成几种形式? */ printf("c1=%d,c2=%d,c3=%d,c4=%d\n",c1,c2,c3,c4); /*看看这些字符的10进制ASCII码,哦,ASCII码一样,同一种字符 */ /* 字符型数据参与算术运算 */ c=c1+32; /* 字符怎么参加了数学运算,哦,是字符对应的ASCII码-整数/*参与数学运算;结果还是一个整数-另外一个字符的ASCII码 */ printf("c=%c,c=%d\n",c,c); /*看看这个字符是什么?'M'+32就变为'm'了字母的大小写转换原来如此!*/ } (2)分析下面程序结果,并上机验证(整型、实型数据的表示、输入和输出)。 #include void main() { int i,j; float m,n; long x,y; unsigned int u,v; char c1,c2; scanf("%d,%d",&i,&j);

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

习题八查找 一、单项选择题 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

实验一 Java基本数据类型与控制语句

实验一 Java基本数据类型与控制语句 【目的】 ①掌握char型数据和int型数据之间的相互转换,同时了解unicode字符表; ②掌握使用if…else if多分支语句; ③使用if…else分支和while循环语句解决问题。 【内容】 1.猜数字游戏。 ?实验要求: 编写一个Java应用程序,实现下列功能: 1)程序随机分配给客户一个1—100之间的整数 2)用户在输入对话框中输入自己的猜测 3)程序返回提示信息,提示信息分别是:“猜大了”、“猜小了”和“猜对 了”。 4)用户可根据提示信息再次输入猜测,直到提示信息是“猜对了”。 ?程序运行效果 ? ? ?程序模板: GuessNumber.java import javax.swing.JOptionPane; public class GuessNumber

{ public static void main (String args[ ]) { System.out.println("给你一个1至100之间的整数,请猜测这个数"); int realNumber=(int)(Math.random()*100)+1; int yourGuess=0; String str=JOptionPane.showInputDialog("输入您的猜测:"); yourGuess=Integer.parseInt(str); while(【代码1】) //循环条件 { if(【代码2】) //条件代码 { str=JOptionPane.showInputDialog("猜大了,再输入你的猜测:"); yourGuess=Integer.parseInt(str); } else if(【代码3】) //条件代码 { str=JOptionPane.showInputDialog("猜小了,再输入你的猜测:"); yourGuess=Integer.parseInt(str); } } System.out.println("猜对了!"); } } 添加代码后的程序: import javax.swing.JOptionPane; public class GuessNumber { public static void main (String args[ ]) { System.out.println("给你一个1至100之间的整数,请猜测这个数"); int realNumber=(int)(Math.random()*100)+1; int yourGuess=0; String str=JOptionPane.showInputDialog("输入您的猜测:"); yourGuess=Integer.parseInt(str); while(yourGuess<=100) //循环条件 { if(yourGuess> realNumber) //条件代码 { str=JOptionPane.showInputDialog("猜大了,再输入你的猜测:"); yourGuess=Integer.parseInt(str); } else if(yourGuess< realNumber) //条件代码

实验二 数据类型、运算符和表达式

实验二数据类型、运算符和表达式一、实验目的 (1)了解C 语言数据类型的意义,掌握基本数据类型变量的特点和定义方法。 (2)学会使用C 的算术运算符,以及包含这些运算符的算术表达式。 (3)掌握自加(++)和自减(--)运算符的使用。 (4)进一步熟悉C 程序的编辑、编译、连接和运行的过程。 二、实验要点 基本数据类型包括整型、字符型、实型。 三、实验要求 (1)上机前先阅读和编写以下要调试的程序。 (2)上机输入和调试程序并存在磁盘上。 (3)检查实验结果是否正确。 四、实验内容 (以下内容在实验报告中的实验预

习报告内容中完成) 1. 调试程序,分析输出结果 (1)输入并运行以下程序。 main() {float a,b; a=123456.789e5; b=a+20; printf("a=%f,b=%f\n",a,b); } 将第二行改为: double a,b; 再运行,分析运行结果。 说明:由于实型变量的值是用有限的存储单元存储的,因此其有效数字的位数是有限的。float型变量最多只能保证7 位有效数字,后面的数字是无意义的,不能准确表示该数。 (2)输入并运行以下程序。 ①将第二行改为:int c1,c2;再运行。 ②再将第三行改为:c1=300;c2=400;再运行,分析运行结果。 说明:字符型数据可作为整型数据

处理,整型数据也可以作为字符型数据处理,但应注意字符数据只占一个字节,它只能存放0-255 范围的整数。 (以下内容在实验报告中的实验操作原始记录中完成) 2.完成以下填空,并把程序调通,写出运行结果。 下面的程序计算由键盘输入的任意两个整数的平均值: main() {int x,y ; ; scanf(“%d,%d”,&x,&y); ; printf(" The average is : %f ",a); } 3. 指出以下程序的错误并改正,上机把程序调通 {int a; A=5;main();

(完整版)实验2基本数据类型与数组

民族学院实验报告 计算机科学系级班指导教师 报告人20 年月日成绩 课程 名称JAVA语言程序设计 实验名称实验二基本数据类型与数组实验 目的 1.掌握基本数据类型及其相互之间的转换 2.掌握JAVA中数组的使用 实验仪器 和器材 具有JDK环境的计算机一台 实验内容 和要求 一、输出希腊字母表 1.请按模板要求,将【代码】替换为Java程序代码,运行该程序时在命令窗 口中输出希腊字母表。其运行效果如图2.1所示。 图2.1 输出希腊字母表 GreekAlphabet.java public class GreekAlphabet { public static void main(String[] args) { int startPosition=0,endPosition=0; char cStart='α',cEnd='ω'; startPosition=(int)cStart; //cStart做int型数据转换,并将结果赋值给startPosition endPosition=(int)cEnd; //cEnd做int型数据转换,并将结果赋值给EndPosition System.out.println("希腊字母\'α\'在Unicode表中的顺序位置:"+(int)cStart); System.out.println("希腊字母表:"); for (int i=startPosition;i<=endPosition;i++){ char c='\0'; cStart=(char)i; //i做char型转换运算,并将结果赋值给c System.out.print(" "+c); if ((i-startPosition+1)%10==0) System.out.println(); } } } 2.实验后练习 (1)将一个double型数据直接赋值给float型变量,程序编译时提示怎样的 错误? 答:程序提示的内容为:“可能损失精度”。 (2)在应用程序的main方法中增加语句:

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); 比较:"<" */

上机实验二 数据类型

上机实验二数据类型、运算符与表达式 学号: 姓名: 一.实验目的 1.掌握C基本数据类型,学会如何定义一个整形、字符型和实型的常量和变量,以及对变量赋值; 2.掌握不同的类型数据之间赋值的规律; 3.掌握C算术运算符,以及包含这些运算符的表达式,特别是++和--运算符的使用; 4.掌握C算术运算符的基本概念、基本属性、运算规则。 5.掌握表达式的求值规则。 6.记录运行结果,回答问题。 二.实验内容 思考问题:数据类型、运算符、表达式等在C语句中充当什么成分?什么是标识符?整型、实型、字符型常量的书写法是怎样的?整型、实型、字符型变量怎样创建?字符串怎样表示?如何求表达式的值?混合表达式的求值规则是怎样的? 1.输入下列源程序,进行修改、编译、连接和运行。 程序:main ( ) { char c1,c2; c1=97; //1 c2=98; //2 printf("%c,%c\n",c1,c2); printf("%d,%d\n",c1,c2); } 运行结果是: 两行结果的不同是由什么引起的: 把注释1和注释2(即//1和//2)两行的赋值语句中,c1和c2分别赋值为400、500会产生什么结果,分析为什么。

2.输入下列源程序,进行修改、编译、连接和运行。分析++运算符。 程序:main ( ) { int i,j,m,n; i=8; j=10; m=++i; n=j++; printf("%d,%d,%d,%d \n", i, j, m, n); } 运行结果是: 分析前++和后++的不同: 3.输入下列源程序,进行修改、编译、连接和运行。分析++和--运算符。 程序:main ( ) { int i,j; i=8; j=10; printf("%d,%d \n", i, j); printf("%d,%d \n", i++, j--); printf("%d,%d \n", i, j); printf("%d,%d \n", ++ i, -- j); } 运行结果是: 想一想i++和++i,j--和--j之间的不同之处?

相关文档
最新文档