c++实现字母频率统计

c++实现字母频率统计
c++实现字母频率统计

//读取5篇美语新闻,统计各个英文字母出现的频率

#include

#include

#include

#include

#include

void main()

{

int tag = 0, ii; //tag累积总字母数

FILE*fp; //声明文件指针

fp = fopen("voanews.txt","r"); //打开文件(只读)

int let[26] = {0}; //存放26个字母出现次数的数组(初始化为0)char ch; //定义读入的字符

ch = fgetc(fp); //从文件中逐个读取

while ( ch != EOF ) //当读到文件结束标志的时候结束循环

{

ch = fgetc(fp);

if ( isalpha(ch) != 0 ) //只让被判断为字母的字符进行后续操作

{

tag++; //累加字母个数

if ( isupper(ch) != 0 ) //如果是大写字母

let[ch-'A']++; //存放对应该字母位的数组数据+1

else //小写

let[ch-'a']++;

}

}

cout << "各字母出现次数:\n";

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

{

cout << char(97+j) << '=' << let[j] << setw(6);

if ( j % 5 == 0 )

cout << endl;

}

cout << "据估算,美语中字母出现频率如下:\n" << endl;

char p = 97; //‘a’

int i = 0;

int max = 0, min = 0; //用来存放出现次数最多(少)的字母(与a的差)for ( i = 0; i < 26; i++ ) //循环输出26个字母的频率情况

{

cout << p << " ";

for ( ii = 0; ii < let[i] * 100 / tag; ii++ )

cout << "*****";

cout << " " << let[i] * 100.0 / tag << '%' << endl; //转换成百分数

cout << endl;

if ( let[i] > let[max] ) //比大小

max = i;

if ( let[i] < let[min] )

min = i;

p++;

}

cout << "由此推测:应用最广泛的字母是" << char(max+97) << ",最少的是" << char(min+97) << endl << endl;

fclose(fp);

}

天津财经大学《统计学》期末考试试题

考试方式与标准 第一部分课程考核的有关说明 (一)考核对象 本课程的考核对象是经济类、管理类各专业的学生。 (二)考核方式 本课程采用平时考核和期末考核相结合的方式,学习过程中的考核,统一布置的平时作业占学期总成绩的30% 。终结性考核即期末考试,期末考试成绩占学期总成绩的70% 。课程总成绩按百分制记分,60 分为合格。 (三)命题依据 本课程的命题依据是统计学课程教学大纲。 (四)考试要求 本课程是一门专业基础课,要求学生在学完本课程后,能够掌握本课程的基本知识,并具有应用所学知识分析和解决实际问题的能力。据此,本课程的考试着重基本知识考查和应用能力考查两个方面,在各章的考核要求中,有关基本概念、基本理论、统计的基本公式、计算方法及数量应用分析能力的内容按“了解、理解和掌握、综合应用”三个层次要求。 (五)命题原则 1.本课程的考试命题在教学大纲规定的教学目的、教学要求和教学内容的范围之内。 2.命题注重对课程基础知识掌握程度的考核,试题力求覆盖面广一些,并应突出课程的重点内容。 3.试卷要兼顾各个能力层次。在一份试卷中,各层次题目所占分数比例大致为:了解20%、理解和掌握45%、综合应用35%。

4.试卷要合理安排题目的难易程度。题目的难易程度分为:易、较易、较难、难四个等级。在一份试卷中,各个等级所占的分数比例大致为:易20%,较易30%,较难30%,难20%。 试题的能力层次和难易程度是两个不同的概念。在各个能力层次中,都可以含有难易程度不同的题目。命题时要两者兼顾,在一份试卷中保持合理结构。 (六)试题类型及结构计算:考核对基本统计方法的掌握程度及综合应 用的能力。做计算题要求写出计算公式及主要计算过程。 (七)考核形式本课学习过程考核的形式为平时作业,期末考试的形式为闭卷笔试。 (八)答题时限本课程期末考试的答题时限为120 分钟。 (九)其他说明本课程期末考试可以携带计算工具。

实验六 哈夫曼树及哈夫曼编码

#include #include #include #define n 6 /* 叶子数目*/ #define m 2*n-1 /* 结点总数*/ #define Maxval 1 /* 最大权值*/ typedef char datatype; typedef struct //定义为结构类型 { float weight; //权值 datatype data; int lchild, rchild, parent; } hufmtree; hufmtree tree[m]; typedef struct { char bits[n]; /* 编码数组位串,其中n为叶子结点数目*/ int start; /* 编码在位串的起始位置*/ datatype data; } codetype; codetype code[n]; HUFFMAN(hufmtree tree[ ]) { int i, j, p1,p2; char ch; float small1,small2,f; for( i=0; i

大一C语言期末考试试题

6.以下程序的输出结果为(D)。 main( ) { char c; int i; for(i=65;i<68;i++) { c=i+32; switch(c) { case ‘a’:printf("%c,",c);break; case ‘b’:case ‘e’:printf("ok,"); default: printf("end"); } } } A a,ok,end B a,ok,endend C a,ok,end,end D a,ok,ok 9.以下程序的输出结果为(B)。 #define A 3 #define B(a) (A+1)*a main() { int x; x=3*A+B(7); printf("x=%d\n",x); } A x=93 B x=37 C x=60 D x=90 三写出下列程序的运行结果(10分,每小题2分) 1.main( ) { char c1=‘A’,c2=‘\144’,c3=‘\x44’,c=0xf5,x=13,a; int i=0122,j=0xa4; printf(“c1=%c,c4=%c\tc5=%c\n”,c1,c2,c3); printf(“%d,%d\n”,i,j); i=-34; j=20; printf(“%d,%d,%d\n”,i%j,i&j<<2,sizeof(j)); printf(“c=%d\n”,c|x); a=c^x<<2;

printf(“a=%d\n”,a); } 2.main() { int x,y=1,z=10; if(y!=0) x=5; printf(“x=%d\t”,x); x=1; if(z<0) if(y>0) x=3; else x=5; printf(“x=%d\n”,x); if(z=y<0) x=3; else if(y==0) x=5; else x=7; printf(“x=%d\t”,x); printf(“z=%d\n”,z); } 3.main( ) { char s[20]=“I like it.”,t[20]=“Are you?”,c[20]; int i=0; while(s[++i]!=‘\0’) t[i]=s[i]; t[i]=0; printf(“string s:%s\n”,s); printf(“string t:%s\n”,t); } 4.int i=5; main( ) { int i=3; { int i=10; i++; printf(“%d\n”,i);

实验四 哈夫曼树与哈夫曼编码

实验四哈夫曼树与哈夫曼编码 一、实验目的 1、使学生熟练掌握哈夫曼树的生成算法。 2、熟练掌握哈夫曼编码的方法。 二、实验内容 [问题描述] 已知n个字符在原文中出现的频率,求它们的哈夫曼编码。[基本要求] 1. 初始化:从键盘读入n个字符,以及它们的权值,建立Huffman 树。(具体算法可参见教材P147的算法6.12) 2. 编码:根据建立的Huffman树,求每个字符的Huffman 编码。 对给定的待编码字符序列进行编码。 [选作内容] 1. 译码:利用已经建立好的Huffman树,对上面的编码结果译码。 译码的过程是分解电文中的字符串,从根结点出发,按字符’0’和’1’确定找左孩子或右孩子,直至叶结点,便求得该子串相应的字符。 4. 打印 Huffman树。 [测试数据] 利用教材P.148 例6-2中的数据调试程序。可设8种符号分别为A,B,C,D,E,F,G,H。编/译码序列为“CFBABBFHGH”(也可自己设定数据进行测试)。

三、算法设计 1、主要思想:******************赫夫曼树的构造 ********************** (1) 由给定的 n 个权值{w1, w2, …, wn},构造具有 n 棵二 叉树的森林 F ={T1, T2, …, Tn },其中每棵二叉树 Ti 只有一个带权为 wi 的根结点, 其左、右子树均为空。 (2) 在 F 中选取两棵根结点的权值最小的二叉树, 作为 左、右子树构造一棵新的二叉树。置新的二叉树的根结点的权值为其左、右子树上根结点的权值之和。 (3)在 F 中删去这两棵二叉树, 把新的二叉树加入F。 (4)重复(2)和(3), 直到 F 中仅剩下一棵树为止。 ****************************霍夫曼编码***************************** 主要用途是实现数据压缩。由于赫夫曼树中没有度为1的节点,则一棵有n个叶子结点的赫夫曼树共有2n-1个结点,可以存储在一个大小为2n-1的一维数 组中。由于在构成赫夫曼树之后,为求编码需从叶子结点出发走一条从叶子到根的路径;而为译码需从根出发走一条从根到叶子的路径。则对每个结点而言,既须知双亲的信息,又需知孩子结点的信息。 2、本程序包含三个模块 1)主函数 Int main() { 先输入结点总数; 分别输入各个结点; 调用建立哈夫曼树函数; 调用编码函数读入建立的哈夫曼树进行编码 } 3、元素类型、结点类型和指针类型 typedef struct //定义新数据类型即结点结构

厦门大学统计学原理期末试题与答案完整版

厦门大学网络教育 2013-2014学年第一学期 《统计学原理》复习题 、单选题 1、统计调查方法体系中,作为“主体”的是( A ) A .经常性抽样调查 B.必要的统计报表 2、考虑全国的工业企业的情况时,以下标志中属于不变标志的有( A .产业分类 B.职工人数 C.劳动生产率 3、某地区抽取3个大型钢铁企业对钢铁行业的经营状况进行调查,这种调查是 4、下列这组数列15,17,17,18,22,24,50,62的中位数是(C )。 现象之间的相关程度越低,贝刑关系数越( 接近+1 B 接近-1 接近0 8、假定其他变量不改变,研究一个变量和另一个变量间的相关关系的是( 9、已知两个同类型企业职工平均工资的标准差分别为 8元,12元,则两个企业职 工平均工资的代表性是(A ) 10、( C 。是标志的承担者。 C.重点调查及估计推算 D.周期性普查 D.所有制 A .普查 B .典型调查 C.重点调查 D .抽样调查 A.17 B.18 C.20 5、标志变异指标中最容易受极端值影响的是( A.极差 B.平均差 &简单分组与复合分组的区别在于( 总体的复杂程度不同 选择分组标志的性质不同 A. C. D.22 C. B. D. 标准差 D.标准差系数 ) 组数多少不同 选择的分组标志的数量不同 7、 A.偏相关 B.正相关 C.完全相关 D.复相关 A.甲大于乙 B.乙大于甲 C. 一样的 D.无法判断

11、 下列各项中属于数量标志的是(A ) A.年龄 B.学历 C.民族 D.性别 12、 某商品价格上涨了 5%,销售额增加了 10%,则销售量增加了( C ) A. 15% B. 5.2 % C. 4.8 % D. 2 % 13、某变量数列末组为开口组,下限是 500;又知其邻组的组中值是 480,则该组 的组 中值应为(D )0 B.时间和指标数值 C.时间和次数 20、现象总体中最普遍出现的标志值是( A ) A.变量 B.总体 C.总体单位 D.指标 A. 490 B. 500 C. 510 D. 520 14、根据最小二乘法原理所配合的一元线性回归方程,是使( B )0 无 (Y -Y?)2 为最小 送(Y -Y?) = 0 A S (Y -Y ) = 0 C 送(Y -Y )为最小 15、 以下不是统计量特点的是( A.不确定 B.已知 16、 不属于专门调查的有(A A.统计年报 B.抽样调查 C.未知 C 普查 17、 今有N 辆汽车在同一距离的公路上行驶的速度资料, Z xf B. ----- Z f C 旦 C 7 x D.不唯一 D.典型调查 m 表示路程,x 表示速度, ) D. 18、 抽样推断的特点有(B )0 A.事先人为确定好样本 C.缺乏一定的科学性和可靠性 19、 时间数列的构成要素是( B.按随机原则抽取样本 D.事先无法计算和控制抽样误差 A.变量和次数 D.主词和宾词 A.众数 B.中位数 C.平均数 D.频数 21、定基发展速度等于相应的各环比发展速度(C A.之和 B.之差 C.之积 D.之商 22、平均指标不包括(A ) 0 A.标准差 B.调和平均数

大学计算机C语言期末试卷02

一、选择题,(1-50)每题1分,下列各题A)、B)、C)、D)四个选项中,只有一个选项是 正确的,请将正确选项涂写在试卷最后答题纸相应位置上,答在试卷上不得分。 (1) 用8位表示,-2的补码是D A) 10000001 B) 11111111 C) 00000001 D) 11111110 (2) 在VC中,实型float占用的字节数是c A) 1 B) 2 C) 4 D) 8 (3) unsigned short的取值范围是d A) 0~ 255 B) -128 ~ 127 C) -32768 ~ +32767 D) 0 ~ 65535 (4) 十六进制数FE的十进制结果为A A) 254 B) 512 C) 1024 D) 64 (5) 源程序ex1.c编译后生成的文件名为 C A) ex1.doc B) ex1.obj C) ex1.exe D) ex1.cpp (6) C语言源程序的后缀为B A) .cpp B) .c C) .exe D) .doc (7) 工程文件名的后缀为A A) .prj B) .c C) .cpp D) .bin (8) 字符’B’的ASCII值是A A) 66 B) 0x3A C) 0x42 D) 49 (9) 将十进制数132转为二进制数的结果是D A) 11001100 B) 110011011 C) 10101010 D) 10000100 (10) 终止死循环用组合键B A) Alt+F10 B) Ctrl+C或Ctrl+Break C) Ctrl+F1 D) Ctrl+Shit或Ctrl+ESC (11) 在VC中,编译的快捷键是B A) F7 B) Ctrl+F7 C) Ctrl+F5 D) F5 (12) 以下选项中可作为C语言合法整数的是D A) 10110B B) 0386 C) 0Xffa D) x2a2 (13) 以下不能定义为用户标识符的是D A) scanf B) Void C) _3com_ D) int (14) 以下程序 swap(int x, int y) {int temp; temp=x; x=y; y=temp; } main() {int a=10,b=20; swap(a,b); printf("a=%d,b=%d\n",a,b); } 的运行结果是B A)a=20,b=10 B)a=10,b=20 C)10,20 D)20,10 (15) 以下程序: main() {int a=0x55, b=0xaa; printf("%d\n", a^b); } 的运行结果是:C A) 0 B) 1 C) 255 D) 0xaa (16) 有以下程序 main() {int a=1,b=2,m=0,n=0,k; k=(n=b>a)||(m=a

哈夫曼编码步骤

哈夫曼编码步骤: 一、对给定的n个权值{W1,W2,W3,...,Wi,...,Wn}构成n棵二叉树的初始集合F= {T1,T2,T3,...,Ti,...,Tn},其中每棵二叉树Ti中只有一个权值为Wi的根结点,它的左右子树均为空。(为方便在计算机上实现算法,一般还要求以Ti的权值Wi的升序排列。) 二、在F中选取两棵根结点权值最小的树作为新构造的二叉树的左右子树,新二叉树的根结点的权值为其左右子树的根结点的权值之和。 三、从F中删除这两棵树,并把这棵新的二叉树同样以升序排列加入到集合F中。 四、重复二和三两步,直到集合F中只有一棵二叉树为止。 /*------------------------------------------------------------------------- * Name: 哈夫曼编码源代码。 * Date: 2011.04.16 * Author: Jeffrey Hill+Jezze(解码部分) * 在Win-TC 下测试通过 * 实现过程:着先通过HuffmanTree() 函数构造哈夫曼树,然后在主函数main()中 * 自底向上开始(也就是从数组序号为零的结点开始)向上层层判断,若在 * 父结点左侧,则置码为0,若在右侧,则置码为1。最后输出生成的编码。*------------------------------------------------------------------------*/ #include #include #define MAXBIT 100 #define MAXVALUE 10000 #define MAXLEAF 30 #define MAXNODE MAXLEAF*2 -1 typedef struct { int bit[MAXBIT]; int start;} HCodeType; /* 编码结构体*/ typedef struct{ int weight; int parent; int lchild; int rchild; int value;} HNodeType; /* 结点结构体*/ /* 构造一颗哈夫曼树*/ void HuffmanTree (HNodeType HuffNode[MAXNODE], int n){ /* i、j:循环变量,m1、m2:构造哈夫曼树不同过程中两个最小权值结点的权值,x1、x2:构造哈夫曼树不同过程中两个最小权值结点在数组中的序号。*/ int i, j, m1, m2, x1, x2; /* 初始化存放哈夫曼树数组HuffNode[] 中的结点*/ for (i=0; i<2*n-1; i++)

南京审计学院统计学期末试卷

统计学期末考试大致的题型 一、填空题(本题有5个空,每空2分,满分10分) 1、由一组数据的最大值、最小值、中位数和两个四分位数5个特征值绘制而成的,反映原始数据分布的图形被称为_____________ 。 2、当原假设为真而被拒绝的错误称作弃真错误,原假设为假而被接受的错误称作_____________ 。 3、测定分布的偏斜方向可以用_____________ 的大小关系来判断。 4、评价估计量优良的标准是无偏性、有效性和_____________ 。 5、如果时间序列的环比增长速度大体相同,在测定其长期趋势时可以拟合_____________。 二、判断题(本题有5个小题,每题2分,满分10分;正确打√,错误打×即可) 1、当一组数据中存在极端数值时,通常用中位数或众数来反映该组数据的集中趋势。() 2、组中值可以准确地代表各组数据的一般水平。() 3、由于抽样调查中既有登记误差又有代表性误差,而普查只有登记误差,故普查的准确性一定高。() 4、若两个变量之间具有完全线性相关关系,则线性相关系数。 () 5、拉氏指数将同度量因素固定在基期水平上。()

三、单项选择题(本题有5个小题,每题2分,共10分) 1、已知甲乙两组工人的平均工资和工资的标准差如下: 甲组:平均工资=1000元;标准差=100元; 乙组:平均工资=800元;标准差=96元。 则甲组工人的工资水平差异()乙组工人的工资水平差异。 A、大于 B、小于 C、等 于D、不能确定 2、下面关于标准误差(standard error)的陈述中正确的是 ()。 A、标准误差和标准差是同一个概念的两种表述 B、标准误差反映的是一组原始数据的离散程度 C、标准误差反映的是样本统计量的离散程度 D、标准误差的大小与总体标准差无关 3、通过调查某国一定时期内的国内生产总值与患有精神病的人数,计算发现该国国内生产总值与精神病人数之间的皮尔逊相关系数为0.93,表明国内生产总值与精神病人数之间存在()。 A、函数关系 B、相关关系 C、因果关系 D、没有关系

哈夫曼编码算法实现完整版

实验三树的应用 一.实验题目: 树的应用——哈夫曼编码 二.实验内容: 利用哈夫曼编码进行通信可以大大提高信道的利用率,缩短信息传输的时间,降低传输成本。根据哈夫曼编码的原理,编写一个程序,在用户输入结点权值的基础上求哈夫曼编码。 要求:从键盘输入若干字符及每个字符出现的频率,将字符出现的频率作为结点的权值,建立哈夫曼树,然后对各个字符进行哈夫曼编码,最后打印输出字符及对应的哈夫曼编码。 三、程序源代码: #include #include #include #include typedef struct{ char data; int weight; int parent,lchild,rchild; }HTNode,*HuffmanTree; typedef char * * HuffmanCode; void Select(HuffmanTree &HT,int n,int m) {HuffmanTree p=HT; int tmp; for(int j=n+1;j<=m;j++) {int tag1,tag2,s1,s2; tag1=tag2=32767; for(int x=1;x<=j-1;x++) { if(p[x].parent==0&&p[x].weights2) //将选出的两个节点中的序号较小的始终赋给s1 { tmp=s1; s1=s2; s2=tmp;} p[s1].parent=j;

c语言期末测试题(附答案)

课程代码:A100002座位号: 《计算机技术基础(C语言)》试卷A 姓名: 学号: 专业: 学院: 班级: 20 年月日 第一部分 选择题(共 30 分) 一、单项选择题(本大题共 15 小题,每题只有一个正确答案,答对一题得 2 分,共 30 分) 1、以下关于C语言标识符的描述中,正确的是【】。 A)标识符可以由汉字组成B)标识符只能以字母开头 C)关键字可以作为用户标识符D)Area与area是不同的标识符 2、使下列程序段输出“123,456,78”,键盘输入数据,正确的输入是【】。 int i,j,k; scanf(“%d,%3d%d”,&i,&j,&k); printf(“%d,%d,%d\n”,i,j,k); A)12345678 B)123,456,78 C)123,45678 D)123,*45678 3、判断char类型的变量c1是否为数字字符的正确表达式为【】。 A) (c1>=0)&&(c1<=9) B) (c1>=’0’)&&(c1<=’9’) C) ’0’<=c1<=’9’ D) (c1>=’0’)||(c1<=’9’) 4、若有语句int a=1,b=2,c=3;则以下值为0的表达式是【】。 A)’a’&&’b’ B)a<=b C)((a>b)||(b

A. *(a[0]+2) B. a[1][3] C . a[1][0] D. *(*(a+1)+2) 6、在循环语句的循环体中执行break语句,其作用是【】。A)跳出该循环体,提前结束循环 B)继续执行break语句之后的循环体各语句 C)结束本次循环,进行下次循环 D)终止程序运行 7、执行语句for(i=10;i>0;i--);后,变量i的值为【】。A)10 B)9 C)0 D)1 8、若有int *p1, *p2,k; 不正确的语句是【】 A. p1=&k B. p2=p1 C. *p1=k+12 D. k=p1+p2 9、在函数中未指定存储类别的局部变量,其隐含的存储类别是【】 A. 静态(static) B. 外部(extern) C. 自动(auto)D. 寄存器(register) 10、如下程序的输出结果是【】 main( ) { int x=2,a=0,b=0; switch(x) { case 2: a++; b++; case 1: ++a; b--; break; case 0: b++;} printf("a=%d, b=%d\n", a, b);} A. a=2, b=0 B. a=2, b=1 C. a=1, b=1 D. a=1, b=0 11、表示关系a main() {int x; scanf(“%d”,&x); if(x<=3) ; else if(x !=10)printf(“%d\n”,x); } 程序运行时,输入的值在哪个范围才会有输出结果。【】

数据结构实验三——Huffman编码(二叉树应用)

四川大学计算机学院 多媒体课程实验报告实验名称:Huffman编码(二叉树应用) 指导教师:沈琳 姓名:侯静 学号:0943041267 班级:09403014 日期:2010.12.10

一、实验号题目: Huffman编码(二叉树应用) 二、实验的目的和要求: 1.要求对文件进行Huffman编码的算法,以及对乙编码文件 进行解码的算法,为简单起见,可以假设文件是存放在一 个字符向量; 2.熟练掌握二叉树的应用; 3.熟练掌握计算机系统的基本操作方法,了解如何编辑、编 译、链接和运行一个C++程序及二叉树上的基本运算; 具体要求如下: 最小冗余码/哈夫曼码 ● ASCII码/定长码 ab12: 01100001 01100010 00110001 00110010 97 98 49 50 ●哈夫曼码/不定长码 能按字符的使用频度,使文本代码的总长度具有最小值。 例. 给定有18个字符组成的文本: A A D A T A R A E F R T A A F T E R

求各字符的哈夫曼码。 (1) 统计: (2) 构造Huffman 树: (2) 构造Huffman 树: (3) 在左分枝标0,右分枝标 1:

(4) 确定Huffman编码: 特点:任一编码不是其它编码的前缀 例. 给定代码序列:

0 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 1 1 10 文本为:A A F A R A D E T 4.上机调试程序,掌握查错、排错使程序能正确运行。 三、实验的环境: 1.硬件环境: intel core i5 460处理器,2G内存 2.软件环境:windows 7,Visual Studio 2010 Ultimate 四、算法描述: 1.主函数流程图

统计学期末考试试题(含答案) (2)

统计学去年试题 1、一个统计总体() A、只能有一个标志 B、只能有一个指标 C、可以有多个标志 D、可以有多个指标 2、调查某大学2000名学生学习情况,则总体单位是() A 、2000名学生B、2000名学生的学习成绩 C、每一名学生 D、每一名学生的学习成绩 3、某地进行国有商业企业经营情况调查,则调查对象是( )。 A、该地所有商业企业 B、该地所有国有商业企业 C、该地每一国有商业企业 D、该地每一商业企业 4、以下哪种调查的报告单位与调查单位是一致的( )。 A、工业普查 B、工业设备调查 C、职工调查 D、未安装设备调查 5、某市进行工业企业生产设备普查,要求在7月1日至7月10日全部调查完毕,则这一时间规定是( )。 A、调查时间 B、调查期限 C、标准时间 D、登记期限 6、某连续变量分为5组:第一组为40——50,第二组为50——60,第三组为60——70,第四组为70——80,第五组为80以上,则() A、50在第一组,70在第四组 B、60在第三组,80在第五组 C、70在第四组,80在第五组 D、80在第四组,50在第二组 7、已知某局所属12个工业企业的职工人数和工资总额,要求计算该局职工的平均工资,应该采用( ) A、简单算术平均法 B、加权算术平均法 C、加权调和平均法 D、几何平均法 8、用水平法检查长期计划完成程度,应规定( ) A、计划期初应达到的水平 B、计划期末应达到的水平 C、计划期中应达到的水平 D、整个计划期应达到的水平 9、某地区有10万人,共有80个医院。平均每个医院要服务1250人,这个指标是()。 A、平均指标 B、强度相对指标 C、总量指标 D、发展水平指标 10、时间序列中,每个指标数值可以相加的是()。 A、相对数时间序列 B、时期数列 C、间断时点数列 D、平均数时间序列 11、根据时间序列用最小平方法配合二次曲线,所依据的样本资料的特点是()。 A、时间序列中各期的逐期增长量大体相等 B、各期的二级增长量大体相等 C、各期的环比发展速度大体相等 D、各期同比增长量的大体相 12、红星机械厂计划规定,今年甲产品的单位产品成本比去年降低4%,实际执行的结果降低了5%,则该产品单位成本降低计划完成程度的算式为()。

哈夫曼树建立、哈夫曼编码算法的实现

#include /*2009.10.25白鹿原*/ #include /*哈夫曼树建立、哈夫曼编码算法的实现*/ #include typedef char* HuffmanCode;/*动态分配数组,存储哈夫曼编码*/ typedef struct { unsigned int weight ; /* 用来存放各个结点的权值*/ unsigned int parent, LChild,RChild ; /*指向双亲、孩子结点的指针*/ }HTNode, * HuffmanTree; /*动态分配数组,存储哈夫曼树*/ void select(HuffmanTree *ht,int n, int *s1, int *s2) { int i; int min; for(i=1; i<=n; i++) { if((*ht)[i].parent == 0) { min = i; i = n+1; } } for(i=1; i<=n; i++) { if((*ht)[i].parent == 0) { if((*ht)[i].weight < (*ht)[min].weight) min = i; } } *s1 = min; for(i=1; i<=n; i++) { if((*ht)[i].parent == 0 && i!=(*s1)) { min = i; i = n+1; } } for(i=1; i<=n; i++) { if((*ht)[i].parent == 0 && i!=(*s1)) {

if((*ht)[i].weight < (*ht)[min].weight) min = i; } } *s2 = min; } void CrtHuffmanTree(HuffmanTree *ht , int *w, int n) { /* w存放已知的n个权值,构造哈夫曼树ht */ int m,i; int s1,s2; m=2*n-1; *ht=(HuffmanTree)malloc((m+1)*sizeof(HTNode)); /*0号单元未使用*/ for(i=1;i<=n;i++) {/*1-n号放叶子结点,初始化*/ (*ht)[i].weight = w[i]; (*ht)[i].LChild = 0; (*ht)[i].parent = 0; (*ht)[i].RChild = 0; } for(i=n+1;i<=m;i++) { (*ht)[i].weight = 0; (*ht)[i].LChild = 0; (*ht)[i].parent = 0; (*ht)[i].RChild = 0; } /*非叶子结点初始化*/ /* ------------初始化完毕!对应算法步骤1---------*/ for(i=n+1;i<=m;i++) /*创建非叶子结点,建哈夫曼树*/ { /*在(*ht)[1]~(*ht)[i-1]的范围内选择两个parent为0且weight最小的结点,其序号分别赋值给s1、s2返回*/ select(ht,i-1,&s1,&s2); (*ht)[s1].parent=i; (*ht)[s2].parent=i; (*ht)[i].LChild=s1; (*ht)[i].RChild=s2; (*ht)[i].weight=(*ht)[s1].weight+(*ht)[s2].weight; } }/*哈夫曼树建立完毕*/ void outputHuffman(HuffmanTree HT, int m) { if(m!=0) {

大一c语言期末试题及参考答案word版本

2004级信息学院《C语言设计》考试试题 一、判断下列语句或程序的对错。 10分√ 1 int x=y=z=’0’; (×) y,z没有定义 2 #include ; (×)不能有分号,#开头的结尾均不能有分号; 3 printf(“%s\n”,”c language”); (√) 4 float a[100]; int *p=a; (×)数据类型不匹配 5 char str[20]; 6 int data[4]={0,1,2,3,4}; (×)五个元素,但是只有四个单元 7 float x=1.45e+310L; (×)数值越界 8 int xyz-1=2; (×) 9 int x=‘\xae’ ; (√) 10 int *p,a[2][3] ; p=a ; (×)数据类型不匹配 二计算下列表达式的值 10分 设 unsigned int a=10,b=17,c=5,d=3; float f ; (1)f=b/c ( 3.0 ) (2)!(a+b)+c-1&&b+c/2 ( 1 ) (3)(a^b)+(c>>1+d) ( 0x1b ) (4)a+=b%=a=b ( 17 ) (5)a=2,b=a*++b ( 2 ) 三程序改错 10分 (1)求两个浮点数的平方和及平方差 #include float calculate (float x,float y,float *sub);添加函数原型声明 main () { float a,b; float add_reasult, sub_result; scanf (“%f,%f”,a,b); add_result=calculate(a,b,&sub_result); printf( “a*a+b*b=%d,a*a-b*b=%d\n”,add_result,sub_result); } float calculate (float x,float y,float *sub) 添加函数类型 { float *temp; 应该直接定义为变量float temp; sub=a*a-b*b ; *sub=a*a-b*b;

统计学期末试卷与答案

2014统计学试卷与答案 一、填空题(每空1分,计10分) 1、统计指标包括 、计算方法、空间限制、时间限制、具体数值和计量单位6个要素。 2、无论采用何种调查方法进行调查,首先都要制定 。 3、质量指标是反映 的指标。 4、8名队员的身高(单位:CM )由低到高排序为: 181,182,182,183,184,185,186,186,身高的中位数是 CM 。 5、假定中国和美国的国民年龄方差相同,现在各自重复随机抽样获取1%的公民来分别估计两个国家国民的平均年龄,其他条件相同的情况下,哪个国家国民平均年龄的估计误差会较小一些 。 6、变量之间完全相关,则其相关系数为 。 7、若逐期增长量每年相等且为正数,则各年的环比发展速度是年年 。(上升,不变,下降)。 8、回归分析中OLS (普通最小二乘法)的原理是 。 9、编制综合指数的特点是 。 10、拉氏指数是把同度量因素的时间固定在 的一种综合指数形式。 二、判断题(每题1分,计10分,请填入“√”或“?”) (× )1、数量指标根据数量标志计算而来,质量指标根据品质标志计算而来; ( ×)2、普查是全面调查,抽样调查是非全面调查,所以普查比抽样调查准确; ( × )3、凡是离散型变量都适合编制单项式数列; ( × )4、任何变量数列都存在众数; ( √)5、如果o e m m x <<,则变量分布为左偏; ( ×)6、判定系数越大,估计标准误就越大; ( ×)7、正相关是指两个变量的数量变动方向都是上升的; ( √ )8、统计的本质就是关于为何统计,统计什么和如何统计的思想; ( × )9、两个总量指标时间数列相对比得到的时间数列一定是相对数时间数列; ( √ )10、同度量因素在起到同度量的同时,还具有一定的权数作用。 三、单项选择题(每题1分,计10分)

实验四 哈夫曼树与哈夫曼编码

实验四哈夫曼树与哈夫曼编码 一、实验内容 [问题描述] 已知n个字符在原文中出现的频率,求它们的哈夫曼编码。[基本要求] 1. 初始化:从键盘读入n个字符,以及它们的权值,建立Huffman 树。(具体算法可参见教材P147的算法6.12) 2. 编码:根据建立的Huffman树,求每个字符的Huffman 编码。 对给定的待编码字符序列进行编码。 二、概要设计 算法设计: 要是实现哈夫曼树的操作,首先创建一个哈夫曼树,在创建哈夫曼树的时候,对哈夫曼树的叶子和非叶子结点进行初始化,而在建立哈夫曼树时,最难的该是选择权值最小的两个顶点,然后两个结点的权值和作为新的权值,再选择两个权值最小的作为新的两个结点创建一个小的二叉树的子树;创建哈夫曼树后,进行编码,在编码过程中,先找到根,然后遍历,左孩子用0标记,右孩子用1标记,最后将编码好的哈夫曼树进行输出,就可以知道哈夫曼树的编码了。 流程图:

算法:

模块: 在分析了实验要求和算法分析之后,将程序分为四个功能函数,分别如下: 首先建立一个哈夫曼树和哈夫曼编码的存储表示: typedef struct { int weight; int parent,lchild,rchild; char elem; }HTNode,*HuffmanTree;//动态分配数组存储赫夫曼树 typedef char **HuffmanCode;//动态分配数组存储赫夫曼编码表CrtHuffmanTree(HuffmanTree *ht , int *w, int n):w存放n个字符的权值,构造哈夫曼树HT。先将叶子初始化,再将非叶子结点初始化,然后构造哈夫曼树。 构造哈夫曼树: for(i=n+1;i<=m;++i) {//在HT[1……i]选择parent为0且weight最小的两个Select(HT,i-1,&s1,&s2);

南京邮电大学C语言期末试卷及答案

模拟试卷A 一、单选题 1、C语言中运算对象一定不能是double类型的运算符是___ 。 A、%= B、/ C、= D、<= 2、能正确表达数学逻辑关系"0b) c=0; else c=1; 等价于___。 A、c=(a>b)?1:0; B、c=a>b; C、c=a<=b; D、以上均不是 7、有如下定义语句:int a, b=5, *p=&a; 则能完成a=b赋值功能的语句是___。 A、a=*p; B、*p=*&b; C、a=&b; D、*p =&*p; 8、设int *ptr, x, array[5]={5,4,3,2,1}; ptr=array; 能使x的值为3的语句是___。 A、x=array[3]; B、x=*(array+3); C、x=*(ptr+2); D、array+=2; x=*array; 9、有函数原型为void f(int,int *);主函数中有变量定义:int a,*p=&a,b[10]; 则下列几种调用错误的是___。

c语言期末测试题附答案)

课程代码:A100002 座位号: 《计算机技术基础(C 语言)》试卷A 姓名: 学号: 专业: 学院: 班级: 20 年 月 日 第 一、 单项选择题(本大题共 15 小题,每题只有一个正确答案,答对 一题得 2 分,共 30 分) 1、以下关于C 语言标识符的描述中,正确的是 【 】。 A )标识符可以由汉字组成 B )标识符只能以字母开头 C )关键字可以作为用户标识符 D )Area 与area 是不同的标识符 2、使下列程序段输出“123,456,78”,键盘输入数据,正确的输入是【 】。 int i,j,k; scanf(“%d,%3d%d”,&i,&j,&k ); printf(“%d,%d,%d \n”,i,j,k); 3、判断char 类型的变量c1是否为数字字符的正确表达式为 【 】。 A) (c1>=0)&&(c1<=9) B) (c1>=’0’)&&(c1<=’9’) C) ’0’<=c1<=’9’ D) (c1>=’0’)||(c1<=’9’) 4、若有语句int a=1,b=2,c=3;则以下值为0的表达式是 【 】。 A )’a’&&’b’ B )a<=b C )((a>b)||(b0;i--);后,变量i 的值为 【 】。 A )10 B )9 C )0 D )1 8、若有int *p1, *p2,k; 不正确的语句是 【 】

相关文档
最新文档