当前位置:文档之家› 实验七 一维数组的应用

实验七 一维数组的应用

实验七  一维数组的应用
实验七  一维数组的应用

实验七一维数组的应用

实验时间:2010年11月19日

【实验目的】

1、掌握一维数组的定义、赋值和输入、输出的方法;

2、能用循环处理数组,用数组存储数据;

3、掌握与数组应用有关的算法(例如求最大值、最小值算法,冒泡法排序算法、选择法排序算法等)。

【实验内容】

1、一维数组的定义、赋值、输入和输出;

2、用循环处理数组,数组元素的引用;

3、数组的应用:求最大值、最小值问题,冒泡法排序,选择法排序。

【实验步骤】

一、在E或F盘上建立以自己的学号命名的文件夹。

二、上机验证题

1、分析以下程序,写出运行结果。

/* 文件名:ex7_1.c */

#include

#define N 10

main ( )

{

int k;

float a[N],av,s;

s=0.0;

printf("请输入10个数:\n");

for (k=0; k

scanf("%f",&a[k]);

s=s+a[k];

}

av=s/N; /* 求N个数的平均值并输出 */

printf("average=%.2f\n",av);

for (k=0; k

if (a[k]>av)

printf("%.0f\t",a[k]);

}

2、分析以下程序,写出运行结果

/* 文件名:ex7_2.c */

#include

main ( )

{

int a[10],i,max,min,maxpos,minpos;

printf("请输入10个整数:\n");

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

{

scanf("%d",&a[i]);

}

max=min=a[0];

maxpos=minpos=0;

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

{

if(max

{

max=a[i];

maxpos=i+1;

}

else if(min>a[i])

{

min=a[i];

minpos=i+1;

}

}

printf("max=%d,pos=%d\n",max,maxpos);

printf("min=%d,pos=%d\n",min,minpos);

}

3、分析以下程序,写出运行结果。

/* 文件名:ex7_3.c */

#include

main ( )

{

char str[20];

int i,num;

gets(str);

if(str[0]!=' ')

{

num=1;

}

else

{

num=0;

}

for(i=1;str[i]!='\0';i++)

{

if(str[i]!=' ' && str[i-1]==' ')

{

num++;

}

}

printf("num=%d\n",num);

}

三、编程题:

1、在键盘上输入N个整数,试编制程序使该数组中的数按照从大到小的次序排列。源程序以ex7_4.c保存在自己的文件夹内。(可以用冒泡法排序,也可以用选择法排序)

2、青年歌手参加歌曲大奖赛,有10个评委对她的进行打分,试编程求这位选手的平均得分(去掉一个最高分和一个最低分)。源程序以ex7_5.c保存在自己的文件夹内。

3、已知5名学生的学号和4门课的成绩,试求个人平均成绩和各门课的平均成绩。源程序以ex7_6.c保存在自己的文件夹内。

【实验小结】

应知:

1、数组的概念及数组元素的引用;

2、数组的地址及数组元素的存储形式;

3、冒泡法排序和选择法排序的基本思想。

应会:

1、一维数组的定义、赋值、输入与输出;

2、用循环结构处理数组的方法;

3、一维数组应用有关的算法(求最大值、最小值问题,冒泡法排序,选择法排序)。

【实验思考】

1、何谓数组?它有何特点?如何定义说明和使用?

2、数组元素的赋值、输入与输出,通常采取什么方法?

3、冒泡法排序和选择法排序的基本思想是什么?

实验项目一:数组

《C语言程序设计》实验报告 实验项目一:数组

2)将上述程序的第四行改成scanf(“%s”,&str);,重新运行上述程序,观察输出结果有什么不同,为什么? 重新运行的结果: 分析: 前者能输入字符串,而后者只能输入字符,相当于只输入了how 3)如果用%c格式输入输出字符串,程序应怎样修改? 根据用%c格式输入输出字符的特点,修改后的程序为: #include int main() {int i; char str[11]={'h','o','w','','a','r','e','','y','o','u'}; for(i=0;i<=10;i++) printf("%c",str[i]); printf("\n"); return0; } 3.改错 有一个3×4的矩阵,要求输出其中值最大的元素的值,以及它的行号和列号。 #include #define M3 #define N4 int main() { int max,i,j,r,c; r=0;c=0; int a[M][N]={{323,94,-10,218},{3,9,10,-83},{45,16,44,-99}}; max=a[0][0]; for(i=0;i

if(a[i][j]>max) {max=a[i][j]; r=i; c=j;} printf("max=%d,行=%d,列=%d\n",max,r,c); return0; } 4.改错 下面是用来将数组a中元素按升序排序后输出的源程序。分析源程序中存在的问题,并对源程序进行修改,使之能争取完成任务。 #include int main() { int a[10]={27,13,5,32,23,3,17,43,55,39}; int i; int sort(int[],int); sort(a,10); for(i=0;i<10;i++) printf("%6d",a[i]); printf("\n"); return0; } int sort(int b[],int n) {int i,j,t; for(i=0;i

上机实验8 二维数组&字符数组--参考答案

上机实验八二维数组与字符数组—参考答案 一.目的要求 1.掌握二维数组的基本概念,如何定义二维数组,如何初始化二维数组。 2.掌握二维数组的基本操作:引用数组元素、行(列)求和,行(列)最大最小值,整个数组的输入输出等。 3.掌握与二维数组有关的算法,如找最大最小值(或位置)、矩阵转置等。 4.掌握字符串与字符数组的基本应用方法 5.掌握字符串有关的算法,如字符转换、查询、统计和进制转换等 二.实验内容 【实验题1】程序填空:输入一个4×4矩阵,求出主对角线上的元素之和sum1、副对角线上的元素之和sum2,并输出结果。 提示:每一行只有一个主对角线元素a[i][i](特征:i==j),也仅有一个副对角线元素a[i][n-i-1](特征:i+j==n-1,即j=n-1-i) 源程序: #include void main() { int i,j,sum1=0,sum2=0, a[4][4]; printf("Input a 4*4 matrix:\n"); for(i=0; i<4; i++) //输入矩阵元素 for( j=0; j<4; j++) scanf("%d", &a[i][j]); for(i=0; i<4; i++ ){ //计算sum1和sum2 sum1 +=a[i][i]; sum2 +=a[i][3-i]; } printf("sum1=%d, sum2=%d\n", sum1,sum2); //输出结果 } 运行程序,并输入数据: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 运行结果:sum1= 34, sum2= 34 【实验题2】程序填空:打印杨辉三角形前10行: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 …………………… 算法提示:分析一个10行的杨辉三角,需要一个10×10的二维矩阵a,则: 1)杨辉三角为下三角矩阵,只需要求出第i行(i=0,1,2,…,9)前i+1个元素,即a[i][j]!=0 (j=0…i). 2)每行的第0列元素均为1,即a[i][0]=1; 3)每行的主对角线元素也均为1,即a[i][i]=1; 4)从第2行开始,每行夹在第0列元素与主对角线元素之间的元素a[i][j]( i=2,3,…,9, j=1,..,i-1 ) 等于其左上方元素a[i-1][j-1]与正上方元素a[i-1][j]之和,即a[i][j]=a[i-1][j-1]+a[i-1][j]; 5)输出该矩阵的下三角,即得出杨辉三角的前10行。

Active+Diretory+全攻略--组策略

组策略与OU中的组没有关系,不要混淆了。系统管理员可利用组策略来管理AD数据库中的计算机与用户。例如:用户桌面环境、计算机启动/关机所执行脚本文件,用户登录/注销所执行的脚本文件、文件重定向、软件安装等。 一、组策略的基本概念 1、组策略的设置数据保存在AD数据库中,因此必须在域控制器上设置组策略。 2、组策略只能够管理计算机与用户。也就是说组策略是无法管理打印机、共享文件夹等其它对象。 3、组策略不能应用到组,只能够应用到站点、域或组织单位(SDOU) 4、组策略不适用于WINDOWS9X/NT的计算机,所以应用到这些计算机上无效。 5、组策略不会影响未加入域的计算机和用户,对于这些计算机和用户,应使用本地安全策略来管理。注意一下:本地安全策略与组策略很相似,但功能较少,仅能管理本机上的计算机设置与用户设置。 GPO的特性: 组策略的设置数据都是保存在“组策略对象“(GPO)中,GP O具有以下特性:

1、GPO利用ACL记录权限设置,可以修改个别GPO的A CL,指定哪些人对该GPO拥有何种权限。 2、用户只要有足够的权限,便能够添加或删除GPO,但无法复制GPO。当AD域刚建好时,默认仅有一个GPO--DEFA OLT DOMAIN POLICY。这个GPO可用来管理域中所有的计算机与用户。若要设置应用于组织单位的组策略,通常会再另行建立GPO,以方便管理。 GPO的内容: GPO有两大类策略:1、计算机设置:包含所有与计算机有关的策略设置,这些策略只会应用到计算机帐户。 2、用户设置:包含所有与用户有关的策略设置,这些策略只会应用到用户帐户。 下面来看下

(2)组策略的配置及使用

一、实验名称 组策略的配置及使用 二、实验类型 验证性实验 三、实验目的 通过对服务器进行本地安全策略的配置,使学生掌握组策略的概念,配置组策略的方法,及使用组策略配置用户、配置计算机及配置软件的具体实例操作。 四、实验内容 (1)通过控制台访问组策略 (2)对用户设置密码策略 (3)对用户设置登录策略 (4)退出系统时清除最近打开的文件的历史 五、相关知识 1、组策略对象的类型 组策略对象有两种类型:本地和非本地。 本地组策略对象:对于每台运行Windows 2000以上操作系统的计算机,无论该计算机是否连接在网络上,或者是否是Active directory环境的一部分,它都存储着一个本地组策略对象。然而,若计算机处在Active directory的网络中,那么非本地组策略对象将覆盖本地组策略对象,从而将本地组策略对象对系统的影响降到最小。在非网络环境中,或非Active directory中,由于本地组策略对象的设置并没有被非本地组策略对象覆盖,所以仍然可以发挥作用。 非本地组策略对象:非本地组策略对象是与Active directory对象联系起来使用的。非本地组策略对象也可以应用于用户或计算机。如果要使用非本地组策略对象,那么必须在网络中安装一台域控制器。根据Active directory服务的属性,系统会分层次地应用非本地组策略对象中的策略。 2、组策略模板 组策略模板(GPT)是域控制器上SYSVOL文件夹中的一个目录层次结构。该文件夹是一个共享文件夹,其中存储着域中公共文件的服务器拷贝,这些拷贝来自域中所有的域控制器。当创建一个组策略对象时,服务器会创建一个相应的组策略模板文件夹层次结构。组策略模板包含了所有的组策略设置和信息,包括管理模板、安全设置、软件安装、脚本和文件夹重

实验八数组应用一答案

实验八数组应用(一)答案 一、实验目的 1. 掌握一维数组的定义和使用; 2. 了解二维数组的定义和使用。 二、实验学时数 2学时 三、实验步骤 (一)阅读程序 1.#include main() { int a[]={1,2,3,4,5},i,j,s=0; j = 1; for ( i = 4 ; i>=0 ; i--) { s = s+ a[i] * j ; j = j * 10 ; } printf(" s= %d \n" , s ); 2. #include main() { int k ; int a[3][3] = {9,8,7,6,5,4,3,2,1} ; for (k =0;k < 3;k++ ) printf("%d \n",a[k][2-k]); }

3. main() { int i , j ,x =0 ,y = 0 , m ; int a[3][3] = { 1, -2 , 0 , 4 , -5 , 6 , 2 , 4 }; m = a [0][0] ; for (i=0 ;i < 3 ;i++) for (j = 0 ; j<3 ; j++ ) if ( a[ i] [ j ] >m ) { m = a[ i ][ j ] ; x = i ; y = j ; } printf(“ ( % d , % d ) = % d \n“ , x , y,m ); (二)完成程序 要求:依据题目要求,分析已给出的语句,填写空白。但是不要增行或删行,改动程序的结构。 1.下面程序的功能是将十进制整数转换成二进制,请在_______上填写正确内容。 #include main() { int k=0,n,j,num[16]={0}; printf("输入要转换的十进制数\n"); scanf("%d",&n); printf ("%d转换为二进制数:\n",n); do { num[k]=_n%2_; n=n/2;k++; } while(n!=0); for(k=15;k>=0;k--) printf("%d",num[k]);

实验5 数组1答案

实验数组1 实验目的: 1、进一步掌握循环结构的程序设计 2、掌握在循环结构里面使用break、continue 3、掌握一维数组的定义与使用 实验内容: 一、观察下列代码(有语法问题自己解决) 1、利用无限循环输入数据,直到条件满足利用break跳出循环: #include using namespace std; int main( ) { int x,sum=0; while(1) { cin >> x; if(x <= 0) break; sum += x; } return 0; } 2、利用continue语句实现输出1-100之间的偶数: #include using namespace std; int main() { for (int i = 0;i <= 100; i++) { if (i % 2 != 0) continue; cout << i << ' '; } return 0; } 二、编码训练 1、利用break语句写一程序:循环从键盘输入数据并累加起来,直到输入的数为零时结束循环,打印累加结果。(参考前面第1题) #include using namespace std; int main( )

{ int x,sum=0; while(1) { cin >> x; sum += x; if(x == 0) break; } cout << "The sum is " << sum << endl; return 0; } 2、利用continue语句写一程序:输出1-20之间不能被3整除的数。(参考前面第2题) #include using namespace std; int main() { for (int i = 1;i <= 20; i++) { if (i % 3 == 0) continue; cout << i << ' '; } return 0; } 3、实现求6位学生c++的平均成绩。(参考案例书的P47案例1) #include using namespace std; int main() { double score[6]; double avg = 0,sum = 0; for (int i = 0;i <= 5; i++) { cin >> score[i]; sum = sum + score[i]; } avg = sum/6; cout << "平均成绩是:" << avg; return 0; } 4、利用一维数组编写一个程序:从键盘上输入10个float类型的数据,找出它们的最大值和最小值,并输出(定义两个变量分别保存最大值和最小值)。(参考案例书的P47案例1)#include using namespace std; int main() { float numb[10]; float min = 0.0,max = 0.0; int i; for (i = 0;i <= 9; i++) { cin >> numb[i]; } min = numb[0]; max = numb[0]; for (i = 1;i <= 9; i++) { if (numb[i] >= max ) max = numb[i];

上机实验八 二维数组_字符数组

上机实验八二维数组与字符数组 一.目的要求 1.掌握二维数组的基本概念,如何定义二维数组,如何初始化二维数组。 2.掌握二维数组的基本操作:引用数组元素、行(列)求和,行(列)最大最小值,整个数组的输入输出等。 3.掌握与二维数组有关的算法,如找最大最小值(或位置)、矩阵转置等。 4.掌握字符串与字符数组的基本应用方法 5.掌握字符串有关的算法,如字符转换、查询、统计和进制转换等 二.实验内容 第1题、程序填空:输入一个4×4矩阵,求出主对角线上的元素之和sum1、副对角线上的元素之和sum2,并输出结果。 提示:每一行只有一个主对角线元素a[i][i](特征:i==j),也仅有一个副对角线元素a[i][n-i-1](特征:i+j==n-1,即j=n-1-i) 源程序: #include void main() { int i,j,sum1=0,sum2=0, a[4][4]; printf("Input a 4*4 matrix:\n"); for() //输入矩阵元素 for() scanf("%d", &a[i][j]); for(i=0; i<4; i++ ){ //计算sum1和sum2 sum1 +=; sum2 +=; } printf("sum1=%d, sum2=%d\n", sum1,sum2); //输出结果 } 运行程序,并输入数据: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 运行结果:sum1= , sum2= 第2题、程序填空:打印杨辉三角形前10行: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 …………………… 算法提示:分析一个10行的杨辉三角,需要一个10×10的二维矩阵a,则: 1)杨辉三角为下三角矩阵,只需要求出第i行(i=0,1,2,…,9)前i+1个元素,即a[i][j]!=0 (j=0…i). 2)每行的第0列元素均为1,即a[i][0]=1; 3)每行的主对角线元素也均为1,即a[i][i]=1; 4)从第2行开始,每行夹在第0列元素与主对角线元素之间的元素a[i][j]( i=2,3,…,9, j=1,..,i-1 ) 等于其左上方元素a[i-1][j-1]与正上方元素a[i-1][j]之和,即a[i][j]=a[i-1][j-1]+a[i-1][j]; 5)输出该矩阵的下三角,即得出杨辉三角的前10行。

实验5-数组答案

VB程序设计实验五 实验目的 ●掌握一维数组和二维数组的操作 ●学习跟数组相关的控件:列表框和组合框 复习 1.列表框 列表框(ListBox)控件允许用户查看和选择列表中的多个元素。 表5-11 列表框的常用属性和事件 2.组合列表框(ComboBox)整合了列表框和文本框的功能,以一个文本框控件(TextBox) 右边加上一个向下箭头的样式显示。有Simple(简单组合框)、DropDown(下拉组合框)和DropDownList(下拉列表框)。其中,Simple选项不显示下拉箭头,而是在控件的旁边显示一个滚动条;DropDown风格(默认值)在单击向下箭头时显示一个下拉列表,且在ComboBox中输入一个值;DropDownList显示一个下拉列表,但不允许用户在ComboBox中输入。 表5-13 组合列表框的常用属性和事件

(1) Items.Count属性:列表框或组合框中项目数量。最后一项的序号为Items.Count-1,该属性只能在程序中设置或引用。 (2) Text属性:被选定的选项的文本内容。该属性只能在程序中设置或引用。 注意:ListBox1.Items(ListBox1.SelectedIndex)等于ListBox1.Text。 (3) Items.Add方法 把一个选项加入列表框,格式:对象.Items.Add(选项);如:ListBox1.Items.Add("周海涛") (4) Insert方法 在指定位置插入一个项目。格式:对象.Items.Insert(序号, 添加项内容) (5)Items.Remove方法 从列表框中删除指定的项。格式:对象. Items.Remove (选项)。 例如:ListBox1.Items.Remove ("华成") (6)Items.RemoveAt方法 格式:对象.RemoveAt(Index) 从列表框中删除指定的项。Index表示被删除项目在列表框中的位置,从0开始。 例如:ListBox1.Items.RemoveAT(4) (7) Items.Clear方法 格式:对象.Items.Clear 用于清除列表框所有项目,例如:ListBox1.Items.Clear 4.单选按钮、复选框和框架 1)单选按钮(RadioButton) 单选按钮以组的形式出现,允许选择其中一项。 ?Text属性:按钮上显示的文本 ?TextAlign属性:文本对齐方式 ?Checked属性:表示单选按钮的状态,True ——被选定,False ——未被选定?Click事件:单击后,使Checked属性为True ?CheckedChanged事件:当某个单选按钮的状态被发生变化,该事件随之被触发。2)复选框(CheckBox) 与RadioButton具有相同属性和事件,之外还有: ?CheckState属性:表示复选框状态,Unchecked——未选定,Checked——被选定,Indeterminate——灰色 3)框架(GroupBox分组框) ?Text属性:标题文本 ?Enabled属性:框架和其中的控件

组策略终极应用技巧

组策略终极应用技巧 出处:中国IT实验室责任编辑:ANSON2006-03-17 15:39:34 关闭缩略图的缓存(Windows XP/2003) Windows XP/20003系统系统具有缩略图的功能,为加快那些被频繁浏览的缩略图显示速度,系统还会将这些显示过的图片置于缓存中,以便下次打开时直接读取缓存中的信息,从而达到快速显示的目的。若你不希望系统进行缓存的话,则可利用组策略轻松地关闭缓存功能。由于不进行缓存处理,反而会大大加快第一次浏览的速度。方法如下:打开“组策略控制台→用户配置→管理模板→Windows组件→Windows资源管理器”中的“关闭缩略图的缓存”并启用此策略。提示:若你的电脑是一个网络中的共享工作站,为了数据安全,建议你启用该设置以关闭缩略图视图缓存,因为缩略图视图缓存可以被任何人读取。

屏蔽系统自带的CD刻录功能(Windows XP/2003) Windows XP/2003系统自带CD刻录功能,若你有刻录机连接在电脑上,在Windows 资源管理器中可以直接将数据犹如复制一样写到CD-R上。这样虽然方便,但是会影响系统性能和资源管理器的执行速度,再加之大部分用户都习惯了运用专用刻录软件进行刻录,所以我们建议无论电脑上有无刻录机,都可以利用组策略来屏蔽此功。方法如下:打开“组策略控制台→用户配置→管理模板→Windows组件→Windows资源管理器”中的“删除CD刻录功能”并启用此策略。提示:该设置不会阻止用户使用第三方应用程序来刻录或修改CD-R。 限制IE浏览器的保存功能(Windows 2000/XP/2003)

当多人共用一台计算机时,为了保持硬盘的整洁,对浏览器的保存功能进行限制使用是很有必要。那么怎样才能实现呢?具体步骤如下:打开“组策略控制台→用户配置→管理模板→Windows组件→Internet Explorer→浏览器菜单”,然后将右侧窗格中的“…文件?菜单:禁用…另存为...?菜单项”、“…文件?菜单:禁用另存为网页菜单项”、“…查看?菜单:禁用…源文件?菜单项”和“禁用上下文菜单”等策略项目全部启用即可。如果不希望别人对IE 浏览器的设置随意更改,可以将“…工具?菜单:禁用…Internet选项...?”策略启用。此外,如果个人需要的话,还可以在该窗格中禁用其他项目。 禁止修改IE浏览器的主页(Windows 2000/XP/2003) 在IE浏览器中可以设置默认主页,如果不希望他人对自己设定的IE浏览器主页进

实验八 一维数组与二维数组

实验8:一维数组与二维数组 实验名称:一维数组与二维数组成绩: 实验日期:年月日实验报告日期:年月日 一、实验目的 1、理解一维数组和二维数组的概念 2、掌握一维数组和二维数组的定义、初始、数组元素引用。 3、掌握一维数组和二维数组的输入/输出。 4、掌握与数组有关的算法。 二、实验内容 1、编制程序,求Fibonachi数列的前10项。 提示:Fibonachi的第1,2项分别为1,1。其后任何一项满足a i=a i-2+a i-1。 2、编写找出1-100之间能被7或11整除的所有整数,存放在数组a中,并统计其个数。要求 以每行排列5个数据的形式输出a数组中的数据。 3、设有4x4的方阵,其中的元素由键盘输入。求出(1)主对角线上元素之和;(2)辅对角线 上元素之积;(3)方阵中最大的元素。 提示:主对角线元素行、列下标相同;辅对角线元素行、列下标之和等于方阵的最大行号(或最大列号)-下标、行列号基于0。 三、实验要求 1、编制源程序,对于程序3输入测试数据。 2、在Turbo C下完成程序的编辑、编译、运行。查看、分析程序结果。 四、实验步骤、过程 1、编辑、编译、运行程序题1。 2、编辑、编译、运行程序题2。

3、编辑、编译、运行程序题3。测试数据: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 五、源程序清单、测试数据、结果。 六、实验出现的问题、实验结果分析 (1)数组下标范围容易搞错,容易产生越界错误。 (2)利用 scanf()输入数据时取地址符号(&)容易忘记。 七、实验小结和思考 典型算法需要在理解的基础上记忆。

语言程序设计实验答案数组指针与字符串

实验06 数组、指针与字符串(4学时) (第6章数组、指针与字符串) 一、实验目的 二、实验任务 6_1(习题6-25)编写并测试3×3矩阵转置函数,使用数组保存3×3矩阵。 6_2(习题6-26)使用动态内存分配生成动态数组来重新完成上题(n阶方阵),使用指针实现函数的功能。 6_3 编程实现两字符串的连接。要求使用字符数组保存字符串,不要使用系统函数。

6_4 使用string类声明字符串对象,重新实现上一小题。 6_5(习题6-27)声明一个Employee类。 其中包括姓名、街道地址、城市和邮编等属性,以及change_name()和display()等函数。display()显示姓名、街道地址、城市和邮编等属性,change_name()改变对象的姓名属性,实现并测试这个类。 6_6(习题6-27)声明包含5个元素的对象数组,每个元素都是Employee 类型的对象。 6_7 修改实验4中的people(人员)类。 具有的属性如下:姓名char name[11]、编号char number[7]、性别char sex[3]、生日birthday、身份证号char id[16]。其中“出生日期”声明为一个“日期”类内嵌子对象。 用成员函数实现对人员信息的录入和显示。 要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、聚集。 在测试程序中声明people类的对象数组,录入数据并显示。 三、实验步骤 1.(编程,习题6-25)编写矩阵转置函数,输入参数为3×3整型数组。 使用循环语句实现矩阵元素的行列对调,注意在循环语句中究竟需要对哪些元素进行操作,编写main()函数实现输入输出。程序名:。 参考运行结果:

数组实验报告

C语言程序设计实验报告(数组) 1实验目的 (1)熟练掌握一维数组,二维数组的定义,初始化和输入、输出方法; (2)熟练掌握字符数组和字符串函数的使用; (3)掌握与数组有关的常用算法(查找、排序等)。 2实验内容 编写函数catStr(char str1[],char str2[])用于进行两个字符串的连接,编写函数lenStr(char str[])用于统计一个字符串的长度,并在主函数中调用。 要求: 1、不允许用strcat()和strlen()字符处理库函数; 2、在主函数以直接初始化的方式输入两个字符串str1和str2.调用函数 strlen()计算并返回两个字符串的长度; 3、调用函数catstr()连接两个字符串(将str2连接在str1后面); 4、调用函数lenstr()计算并返回连接后字符串的长度; 5、在主函数中输入两个原始的字符串及几个字符串的长度,以及处理后字 符串及其长度。

3算法描述流程图

4源程序 #include #include void catStr(char str1[],char str2[]) { int i,j; for (i=0;str1[i]!='\0';i++); for(j=0;str2[j]!='\0';j++) str1[i+j]=str2[j]; str1[i+j]='\0'; } lenStr(char m[] ) {int i;

for (i=0;m[i]!='\0';i++); printf("%d",i); } void main() {char s1[50]="biotechnology",s2[50]="translator"; printf("s1=%s,s2=%s",s1,s2); printf("\ns1的长度:"); lenStr(s1); printf("\ns2的长度:"); lenStr(s2); catStr(s1,s2); printf("\n连接后的字符:"); printf("%s\n",s1); printf("连接后字符的长度:"); lenStr(s1); printf("\n"); } 5测试数据 s1=biotechnology, s2=translator 6运行结果 7出现问题及解决方法 (1)不允许用strcat()和strlen()字符处理库函数;调用函数strlen()计算并返回两个字符串的长度;调用函数catstr()连接两个字符串(将str2连接在str1后面);调用函数lenstr()计算并返回连接后字符串的长度;三个调用给设计增加了难度,一时难以入手:查阅资料后得到解决。 (2)在输入程序时,少写了冒号以及半边引号,调试时发现存在错误,找到了错误并加以改正。无论什么事,细心都是必不可少的,认真是解决问题的关键。

实验五 数组的应用(1)

实验五数组的应用(1) 一、实验目的: 1、掌握静态数组的定义和使用方法。 2、用数组解决实际问题。 二、实验准备: 1、计算机基本操作练习。 2、VisualBasic软件使用预习。 3、设计出下面问题的程序。 三、实验步骤及内容: 1、静态数组的声明,语法格式如下: Dim 数组名[(各维下标)] [As 数据类型],… 例如:Dim num(6) As Integer 定义了一个包含()个元素的数组,从()到()。 静态数组的上下标必须是(),如果希望数组下标下界默认从1开始,则可在窗体的“通用|声明”部分使用: ________________________________语句来改变默认值。 2、Array函数的使用。 Dim a() As Variant A = Array(154,135,121) 请说明以上语句的作用,()。 Lbound函数和Ubound函数可以分别返回数组的指示维数的最小、最大可用下标。 3、应用一维静态全局数组求10个100以内的最大值、最小值、平均值和方差。程序运行界面如图所示。

4、利用数组排序。按“生成随机数”按钮,在第一个文本框中生成10个10~99之间的随机数,然后按“按大小排序”按钮,将这10个数按从大到小的顺序排列放在第二个文本框中。设计界面及运行结果如图1和图2 所示:

图1 设计界面 图2 运行界面 要求: 提示: (1)设计窗体,添加控件:两个文本框(Text)、两 个按钮(Command)。 (2)如表1 所示设置窗体控件属性。 (4)自行编辑代码。 窗体通用声明代码如下: Option Base 1 Dim a() As Integer 窗体控件代码自行编辑。 Private Sub Command1_Click()

域组策略应用详解

Win2003域之组策略应用 目前大部分的公司都去购买MS的OS产品,刚推出不久的VISTA,以及即将面视的WINDOWS SERVER 2008,大家都已习惯了WINS的操作界面,不过在企业当中看中的是MS的AD的应用,而在AD中,能起到关键作用的就是"组策略",利用组策略管理域中的计算机和用户工作环境,实现软件分发等一系列功能,快速便捷的帮助管理员完成烦琐的工作. 但要了解组策略的使用,不是了解它的具体有哪些选项,而是要掌握它的应用规则! 那么我们开始学习组策略吧: 1.理解组策略作用: 组策略又称Group Policy 组策略可以管理计算机和用户 组策略可以管理用户的工作环境、登录注销时执行的脚本、文件夹重定向、软件安装等 使用组策略可以: a)对域设置组策略影响整个域的工作环境,对OU设置组策略影响本OU下的工作环境 b)降低布置用户和计算机环境的总费用 因为只须设置一次,相应的用户或计算机即可全部使用规定的设置 减少用户不正确配置环境的可能性 c)推行公司使用计算机规范 桌面环境规范 安全策略 总结: a)集中化管理 b)管理用户环境 c)降低管理用户的开销 d)强制执行企业策略 总之组策略给企业和管理员带了高效率,地成本.原来做同样的工作需要10个管理员要忙10天都不能完成的事情,如果使用组策略1个管理员在一天的工作日就把事情全搞定,而且还有时间做下来喝咖啡.听起来好像不太可能,而事实得到了证明,但那你需要掌握组策略的应用规则.

2.组策略的结构 组策略的具体设置数据保存在GPO中 创建完AD后系统默认的2个GPO:默认域策略和默认域控制器策略 GPO所链接的对象:S(站点)D(域)OU(组织单位),当然也可以应用在"本地" GPO控制的对象:SDOU中的计算机和用户 GPO的组件存储在2个位置: GPC(组策略容器)与GPT(组策略模板) GPC:GPC是包含GPO属性和版本信息的活动目录对象 GPT:GPT在域控制器的共享系统卷(SYSVOL)中,是一种文件夹层次结构

浙师大 C语言 实验8二维数组 答案

上机实验八二维数组与字符数组 学号: 姓名: 一.目的要求 1.掌握二维数组的基本概念,如何定义二维数组,如何初始化二维数组。 2.掌握二维数组的基本操作:引用数组元素、行(列)求和,行(列)最大最小值,整个数组的输入输出等。 3.掌握与二维数组有关的算法,如找最大最小值(或位置)、矩阵转置等。 4.掌握字符串与字符数组的基本应用方法 5.掌握字符串有关的算法,如字符转换、查询、统计和进制转换等 二.实验内容 【实验题1】程序填空:输入一个4×4矩阵,求出主对角线上的元素之和sum1、副对角线上的元素之和sum2,并输出结果。 提示:每一行只有一个主对角线元素a[i][i](特征:i==j),也仅有一个副对角线元素a[i][n-i-1](特征:i+j==n-1,即j=n-1-i) 源程序: 运行程序,并输入数据: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 运行结果:sum1= 34 , sum2=34 【实验题2】程序填空:打印杨辉三角形前10行: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 …………………… 算法提示:分析一个10行的杨辉三角,需要一个10×10的二维矩阵a,则: 1)杨辉三角为下三角矩阵,只需要求出第i行(i=0,1,2,...,9)前i+1个元素,即a[i][j]!=0 (j=0,1,...i). 2)每行的第0列元素均为1,即a[i][0]=1; (i=0,1,2, (9)

3)每行的主对角线元素也均为1,即a[i][i]=1; (i=0,1,2, (9) 4)从第2行开始,每行夹在第0列元素与主对角线元素之间的元素a[i][j]( i=2,3,…,9, j=1,..,i-1 ) 等于其左上方元素a[i-1][j-1]与正上方元素a[i-1][j]之和,即a[i][j]=a[i-1][j-1]+a[i-1][j];(j=1,…,i-1) 5)输出该矩阵的下三角,即得出杨辉三角的前10行。 源程序: 问:如果删除Line 12,程序运行结果有何不同? 答:不换行,不能排列成三角形 【实验题3】程序填空:二-十进制转换:输入一个8位二进制字符串b(由字符’1’和’0’组成),输出对应的十进制整数。例如,输入二进制字符串, 输出十进制整数145 算法提示: 1、由于二进制字符串b的长度固定为8,因此定义字符数组char b[8]即可,每个元素对应一个二 进制位; 2、循环1:输入二进制字符, 输入的每一个字符先暂存在字符变量ch中,检查ch是否是’0’或’1’, 是则存入数组b,并令数组下标i增1,不是则跳过该字符。 3、循环2: 二-十进制转换:从前往后,带权累加数组b各元素对应的数值b[i]-‘0’:d= d×2+ b[i]-‘0’ 源程序:

组策略配置及实践技巧

组策略对象可以应用到的容器包括:站点、域、和OU中。 默认的域策略、域控制器策略尽量不要去修改。 默认的域策略会影响到所有的域内的用户,计算机以及DC,默认的域控制器策略只会影响到域内的所有的域控制器。 组策略(group policy)对象包括组策略容器(GPC)和组策略模板(GPT) 组策略是AD集中管理的工具。GPC存放在AD用户和计算机中。存放位置如下:高级功能-选择域-system-policies对应的UID中,单击属性可以查看版本号等信息,CPT存放于sysvol\域名\polilcies\ID number下的文件夹下,包含计算机和用户的配置,以及版本号。 多个GPO可以链接到一个容器,一个GPO可以链接到多个容器。 计算机如何知道组策略是否更改过?如何获取适合自己的组策略? 计算机在登录时首先查看GPlink(adsiedit.msc中域-属性-属性编辑器),查看ID和对应的版本号是否更改过,以便登录的时候实施对应的组策略。 计算机和用户如果要应用组策略对象的设定: 计算机和用户必须位于GPO有链接的SDOU容器内。 必须对GPO要有读取和应用组策略的权限。 组策略对象冲突时: 1:计算机策略覆盖用户策略。 2:不同层次的策略产生冲突时,子容器上的GPO优先级高 3:同一容器上多个GPO产生冲突时,处于GPO列表最高位置的GPO优先级最高。(按照链接的组策略对象的顺序执行) 总体原册:后执行的优先级高。 变更组策略管理顺序:阻止继承,强制。设为强制的GPO优先级最高。阻止继承:就是在父策略的对象不在子策略中实施。不要轻易设置强制和阻止继承。方便排错。 安全策略:删除默认的authenticated user组,按照GPO设定创建安全组,为安全组分配权限。 问题:如何实现OU内的GPO只对OU内特定人员生效?(GPO只对财务部OU和销售部OU的经理生效) 使用安全过滤;在AD用户和计算机上新建一个安全组,将需要生效的成员(经理)添加进来,在所要生效的GPO中右击属性-委派-高级,删除默认的authenticated user组,将新建的安全组添加进来,权限中设置读取和应用组策略权限即可。(尽量不要使用,方便排错) 如何使其他用户具有编辑组策略的权限? 在所设置的组策略上点击添加,将用户添加进来,给予相应的权限,给定的用户即可编辑对应的组策略。 如何设置域中用户具有修改域的所有组策略(不包含给定权限的用户自己编辑的组策略)的权限?单击AD用户和计算机,单击group policy creator owners-属性,将需要添加的成员添加进来即可。 如何设置域中GPO的链接的权限?(将设置的组策略对象链接到相应的容器中的权限) 在AD用户和计算机上单击域,右击委派控制-添加,将要添加的用户添加进来,然后给予相应的权限即可。 如何查看当前系统新增的组策略功能? GPedit中单击管理模板-查看-筛选器选项,勾选相应选项即可查看。 组策略结果集RSoP的用处? MMC中添加策略的结果集即可以打开RSoP 可以选择记录模式和计划模式,记录模式显示当期应用的组策略结果,计划模式显示模拟的即将应用的组策略结果,单击更改查询切换,进行查询。

实验四 数组(详细模板)

实验四数组 一、实验目的及要求 1.掌握一维数组和二维数组的定义、赋值和输入输出的方法; 2.掌握字符数组和字符串函数的使用; 3.掌握与数组有关的算法(特别是排序算法)。 二、实验学时 6学时 三、实验任务 1.调试下列c50101.c程序,使之具有如下功能:输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。写出调试过程。 #inclue #define N 10 voidmain( ) { inti,a[N],av; for(i=0;i void main( ) {inti, a[5], sum = 0;

scanf("%d,%d,%d,%d,%d", a ); for (i = 0; i<= 4; i ++) sum += a[i]; printf("sum = %d \n", sum); } 该程序中有哪些错误?如何修改?写出正确运行后的结果。 相关知识:数组元素的输入和输出只能逐个元素操作,而不能以数组名作整体操作。 3.有一个3行4列的距阵,现要求编程求出其中最大的那个元素的值,以及它所在的行号与列号。程序c50103.c的初始说明和输出语句如下所示,请补充完成该程序。 #include voidmain( ) { inti, j, row, colum, max; static int a[3][4] = {{1,2,3,4}, {9,8,7,6}, {-10,10,-5,2}}; …… printf(" Max = %d, Row = %d, Colum = %d \n", max, row, colum); } 编程点拨: ①初始化row、colum及max。 ②使用for循环的双重循环逐行把元素值与max值进行比较,比较结果如 果元素值比max值大,则改变max值,同时改变row和colum的值。 ③最后输出max,row和colum的值。 相关知识:①二维数组的定义和初始化;②使用二重循环对二维数组元素的访问; ③求最值时相关变量初值的设定。 4.数组中已存互不相同的10个整数,从键盘输入一个整数,输出与该值相同的数组元素下标。 编程点拨:输入要查找的变量x的值;使用循环将输入的数和数组元素逐个进行比较,若找到,则提前退出循环;根据循环是正常结束还是提前结束来判断是否找到x。 c50104.c部分源代码: #include voidmain( ) { inti, x, a[10]={1,2,3,4,5,6,7,8,9,10}; /*输入x变量的值*/ for ( i=0; i<10; i++ ) printf("%4d",a[i]); printf("\n"); /* 循环查找与x相等的元素*/ if ( ) printf("%d\n",i); /* 输出查找结论,输出下标值*/ elseprintf("Not found %d\n",x); } 5.编写程序,任意输入10个整数的数列,先将整数按照从大到小的顺序进行排序,然后输入一个整数插入到数列中,使数列保持从大到小的顺序。 编程点拨: ①定义数组时多开辟一个存储单元; ②找合适的插入位置;

window实验手册组策略规划

w i n d o w实验手册组策 略规划 WTD standardization office【WTD 5AB- WTDK 08- WTD 2C】

教学时 间 第五周2008-3-18 教学课 时 3 教案序 号 12-14 教学目标1、掌握如何建立和管理OU 2、学会在win2003中应用组策略 教学过程: 一、OU(组织单元)的管理 1、OU的概念 域是最小的管理单位,在活动目录中,域一般对应公司,而OU则对应于公司中的部门。OU是活动目录中的容器,可以在OU中建立用户、组等其他对象,也可以在OU中建立OU。 2、建立OU及子对象 (1)注意图标。 (2)建立步骤:在需要创建的空白处右击,选择“新建”——“组织单元”,在对话框内输入OU名称即可。 (3)在OU中可以放用户、组、打印机、共享文件夹、子OU等。 实验一:OU的管理 1、在下中新建“教师”和“学生”两个OU,再在“教师”OU下新建“普通教师”OU。 2、“教师”OU中包括t1,t2账户,“学生”OU中包括s1,s2账户,“普通教师”OU中包括c1,c2账户。

二、组策略概述 1、组策略的概念 (1)组策略是一种在用户或计算机集合上强制使用一些配置的方法,使用组策略可以给同组的计算机或者用户强加一套统一的标准,包括管理模板设置、Windows设置、软件设置。 (2)组策略配置包含在一个组策略对象(GPO)中,该对象又与选定的活动目录服务容器(如站点、域、组织单元OU等)相关联,不会影响没有加入域的计算机和用户。 (3)组策略配置类型有:计算机配置和用户配置。 (4)组策略分为:本地安全策略和活动目录的组策略。 本地安全策略适用于本地用户和组,我们所讲的是活动目录的组策略,活动目录安装好以后就自动建立了两个组策略(域控制器安全策略和域安全策略)。 2、组策略的应用顺序 (1)本地组策略 (2)域组策略 (3)域控制器组策略 (4)组织单元组策略 三、组策略对象的管理 我们可以通过Active Directory用户和计算机建立链接到域和OU的策略,Active Directory站点和服务建立链接到站点的策略。 1、创建组策略 步骤:右击-属性-“组策略”选项卡-“新建”按钮 2、设置组策略 步骤:右击-属性-“组策略”选项卡-“编辑”按钮

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