编程3数组
- 格式:doc
- 大小:57.50 KB
- 文档页数:9
c语言数组编程题目含详解共5道1. 计算数组元素的和编写一个程序,计算给定数组中所有元素的和。
```c#include <stdio.h>int main() {int arr[] = {1, 2, 3, 4, 5};int n = sizeof(arr) / sizeof(arr[0]);int sum = 0;for (int i = 0; i < n; ++i) {sum += arr[i];}printf("数组元素的和: %d\n", sum);return 0;}```2. 查找数组中的最大值和最小值编写一个程序,查找给定数组中的最大值和最小值。
```c#include <stdio.h>int main() {int arr[] = {5, 2, 8, 1, 4};int n = sizeof(arr) / sizeof(arr[0]);int max = arr[0];int min = arr[0];for (int i = 1; i < n; ++i) {if (arr[i] > max) {max = arr[i];}if (arr[i] < min) {min = arr[i];}}printf("最大值: %d\n", max);printf("最小值: %d\n", min);return 0;}```3. 反转数组元素的顺序编写一个程序,反转给定数组的元素顺序。
```c#include <stdio.h>int main() {int arr[] = {1, 2, 3, 4, 5};int n = sizeof(arr) / sizeof(arr[0]);int temp;for (int i = 0; i < n / 2; ++i) {temp = arr[i];arr[i] = arr[n - i - 1];arr[n - i - 1] = temp;}printf("反转后的数组: ");for (int i = 0; i < n; ++i) {printf("%d ", arr[i]);}return 0;}```4. 删除数组中的指定元素编写一个程序,删除给定数组中的指定元素。
C语言是一种被广泛应用于系统编程和嵌入式开发的编程语言,而字符串则是C语言中非常常见的数据类型。
在C语言中,字符串可以用字符数组来表示,而定义字符串数组的方式也有几种不同的方法。
1. 直接定义字符串数组直接定义字符串数组是最简单直接的方式,可以像定义其他数组一样来定义字符串数组。
例如:```Cchar strArray1[3][10] = {"Hello", "World", "C"};```在这个例子中,我们定义了一个包含3个字符串的数组,每个字符串的最大长度为10个字符。
通过直接赋值的方式,我们可以初始化这个字符串数组。
2. 逐个赋值如果不想在定义字符串数组的同时进行初始化,也可以通过逐个赋值的方式来初始化字符串数组。
例如:```Cchar strArray2[3][10];strcpy(strArray2[0], "Hello");strcpy(strArray2[1], "World");strcpy(strArray2[2], "C");```通过逐个赋值的方式,我们可以在定义之后再对字符串数组进行赋值操作。
3. 使用指针数组除了以上两种方式之外,还可以使用指针数组来表示字符串数组。
例如:```Cchar *strArray3[3] = {"Hello", "World", "C"};```在这个例子中,我们定义了一个包含3个指针的数组,每个指针指向一个字符串常量。
通过使用指针数组的方式,我们可以更加灵活地管理字符串数组。
总结回顾:通过以上几种方式的讨论,我们可以看到在C语言中定义字符串数组有多种灵活的方式。
无论是直接定义、逐个赋值还是使用指针数组,都可以让我们在不同场景下更好地处理字符串数组。
在实际的编程过程中,我们可以根据具体情况来选择合适的方式来定义字符串数组。
c语言3维数组
其中,第一维长度表示一维数组的数量,第二维长度表示二维数组的行数,第三维长度表示二维数组的列数。
对于一个3维数组,我们可以使用三重循环来遍历其中的元素。
具体来说,我们先用一个外层循环遍历第一维,然后在内层再用两重循环遍历第二维和第三维。
代码示例如下:
int arr[2][3][4] =
{{{1,2,3,4},{5,6,7,8},{9,10,11,12}},{{13,14,15,16},{17,18,1 9,20},{21,22,23,24}}};
for(int i=0; i<2; i++){
for(int j=0; j<3; j++){
for(int k=0; k<4; k++){
printf('%d ', arr[i][j][k]);
}
printf('
');
}
printf('
');
}
在上面的代码中,我们定义了一个2×3×4的3维数组arr,并初始化了每个元素的值。
然后,我们使用三重循环来遍历这个数组,
并输出每个元素的值。
需要注意的是,3维数组在内存中是以连续的方式存储的,也就是说,每个二维数组在内存中是挨着存储的。
因此,访问3维数组的元素时,要确保使用正确的下标。
1.输出整数各位数字本题要求编写程序,对输入的一个整数,从高位开始逐位分割并输出它的各位数字。
输入格式:输入在一行中给出一个长整型范围内的非负整数。
输出格式:从高位开始逐位输出该整数的各位数字,每个数字后面有一个空格。
输入样例:123456输出样例:1 2 3 4 5 6(1)编程思路。
将一个非负整数number各位上的数字依次分离出来,其操作步骤为:1)分离出number的个位数,即number%10。
2)将number除以10,作为新的number,即新的number丢掉了个位数。
3)如果number等于0,分离完毕,结束。
否则,转第1)步,继续显示。
例如,number=1234,number%10=4,number=1234/10=123,得到数字4;number%10=3,number=123/10=12,得到数字3;number%10=2,number=12/10=1,得到数字2;number%10=1,number=1/10=0,得到数字1;结束。
将分离的各位数字依次存储到数组a中,然后逆序输出数组a中保存的各元素值即可。
(2)源程序。
#include <stdio.h>int main(){long long n;scanf("%lld",&n);int a[20]={0},cnt=0;while (n!=0){a[cnt++]=n%10;n=n/10;}if (cnt==0)printf("0 \n");else{for (int i=cnt-1;i>=0;i--)printf("%d ",a[i]);printf("\n");}return 0;}2.冒泡法排序将N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们。
C语言(数组)一、选择题1. 设有程序:main(){ int i,a[11];printf("给数组赋值:\n");for (i=0;i<=10;i++)scanf("%d",( ));... ...printf("输出数组:\n");for(i=0;i<=10;i++)printf("%d,",( ));}则在程序中的两个园括号中分别应填入:CA) &a[i]和&a[i]B) a[i]和&a[i]C) &a[i]和a[i]D) a[i]和a[i]2. 设已定义:int a[15]; 则数组a占用的内存单元数是( C ).A) 15 B) 16 C) 30 D) 323. 阅读程序:main(){ int a[2]={0},i,j,k=2;for(i=0;i<k;i++)for(j=0;j<k;j++) a[j]=a[i]+1;printf("%d\n",a[k]);}以上程序的输出结果是( D ).A) 1 B) 3 C) 2 D) 不确定的值4. 阅读程序:f(int b[],int n){ int i,r=1;for(i=0;i<=n;i++) r=r*b[i];return r;}main(){ int x,a[]={2,3,4,5,6,7,8,9};x=f(a,3);printf("%d\n",x);}以上程序的输出结果是( D ).A) 720 B) 6 C)24 D) 1205. 以下定义语句中,错误的是( B ).A) int a[ ] = {6,7,8};B) int n=5, a[n];C) char a[ ]= "string";D) char a[5 ]={'0','1','2','3','4'};6. 以下描述中正确的是( D ).A) 数组名后面的常量表达式用一对圆括弧括起来B) 数组下标从1开始C) 数组下标的数据类型可以是整型或实型D) 数组名的规定与变量名相同7. 若定义数组并初始化char a[10]={'0','1 ','2','3','4','5','6','7','8','9'};指出以下错误语句( AB ).A) scanf("%c",a[0]);B) scanf("%s",&a);C) printf("%c",a[3]);D) printf("%s",a);8.若定义数组int a[10] ,其最后一个数组元素为( C ).A) a[0]C) a[9]D) a[10]9. 若定义数组并初始化int a[10]={ 1,2,3,4},以下语句哪一个不成立( B )?A) a[8] 的值为0B) a[1] 的值为1C) a[3] 的值为4D) a[9] 的值为010. 指出以下错误语句( A ).A) int n=10,a[n];B) int n,a[10];C) int a[10]={1,2,3};D) int a[10]={1,2,3,4,5,6,7,8,9,10};11. 请读程序:main(){int n[2],i,j,k;for(i=0;i<2;i++) n[i]=0;k=2;for(i=0;i<k;i++)for(j=0;j<k;j++) n[j]=n[i]+1;printf("%d\n",n[k]);}上面程序的输出结果是( A ).A)不确定的值 B)3 C)2 D)112. 若有以下的定义和语句:int str[12]={1,2,3,4,5,6,7,8,9,10,11,12};char c='e',则数值为2的表达式是( C ).A)str['g'-c] B)str[2] C)str['d'-'c'] D)str['d'-c]13. 设有数组定义:int a[5];则下列给数组元素赋值错误的是( B ).B) scanf("%c",a[3]);C) a[3]=getchar();D) a[3]='a'+3;14. 以下数组定义中错误的是( D ).A) #define N 30int a[N+30];B) #define N 30int a[N];C) int a[30];D) int a[N];15. 在定义一个一维数组时,不能用来表示数组长度的是( D ).A)常量 B)符号常量 C)常量表达式 D) 已被赋值的变量16. 若float型变量占用4个字节,有定义float a[20]={1.1,2.1,3.1};则数组a在内存中所占的字节数是( D ).A)12 B)20 C)40 D)8017. 设已定义:int x[2][4]={1,2,3,4,5,6,7,8}; 则元素x[1][1]的正确初值是( A ).A) 6 B) 5 C) 7 D) 118. 设有定义:int a[][3]={{1,2,3},{4,5,6},{7,8,9}}; 则a[1][2]的初值为( C ).A) 2 B) 4 C) 6 D) 819. 设有:int a[4][5]; 则数组a占用的内存字节数是( C ).A) 12 B) 24 C) 40 D) 2020. 以下数组定义中,不正确的是( B ).A) int b[3][4];B) int c[3][ ]={{1,2},{1,2,3},{4,5,6,7}};C) int b[200][100]={0};D) int c[ ][3]={{1,2,3},{4,5,6}};21. 定义数组:int x[2][3]; 则数组x 的维数是( 2 ).A) 1 B) 2 C) 3 D) 622. 若定义数组并初始化int b[2][3]= { 1,2,3,4,5,6},以下语句哪一个成立( C )?A) 表达式b[1][2]的值为1B) 表达式b[1][2]的值为4C) 表达式b[1][2]的值为6D) 表达式b[1][2]的值为223. 若定义数组并初始化int a[2][3]={{1,2,3},{4,5,6}};for(i=0;i<2;i++)for(j=0;j<3;j++)printf("%d",a[i][j]);语句的结果是哪一个( C )?A) 1,2,3,4,5,6B) 1 2 3 4 5 6C) 12345624. 若定义数组并初始化int a[2][3]= {{1,2, 3},{4,5,6}};以下语句哪一个不成立( B )?A) a数组中有6个元素B) a[2][3]是a数组的最后一个元素的引用C) a数组中每个元素都为整数D) a数组是整型数组25. 定义如下变量和数组:int i;int x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是( C ).for(i=0;i<3;i++) printf("%d",x[i][2-i]);A) 1 5 9 B) 1 4 7 C) 3 5 7 D) 3 6 926. 如有以下定义:double s[][5]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14};则数值为2的元素是( C ).A) s[1][3] B) s[0][3] C) s[0][2] D) s[1][2]27. 以下程序的输出结果是( A ).main(){int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%d",s);}A) 18 B) 19 C) 20 D) 2128. 若已有char b[10][50];则该二维字符数组在内存所占字节数为( D ).A) 10 B)50 C)60 D)50029. 设有:char a[10]; 下列语句那个是正确的( D )?A) scanf("%s",a[0]);B) scanf("%s",&a);C) printf("%s",a[0])D) printf("%s",a)30. 阅读程序:main(){ char a[10];int i;for(i=1;i<=5;i++)scanf("%c",&a[i]);printf("%c",a[0]);}设从键盘输入字符串:abcde,则程序的输出结果是( C ).A) a B)空格 C)不确定D)031. 合法的数组定义是( D ).A) int a[ ] = "string";B) int a[5]={0,1,2,3,4,5};C) char a= "string";D) char a[ ]={'0','1','2','3'};32. 设有数组定义:char string[ ]="China";则数组string所占的空间为( B ).A) 5个字节B) 6个字节C) 7个字节D) 10个字节33. 定义字符数组c:char c[ ]={"c language"};数组c在内存中所占字节数是( C ).A) 9 B) 10 C) 11 D) 1234. 指出以下错误语句( C ).A) char a[10]={'0','1','2','3','4','5','6','7','8','9'};B) char a[10]={'0','1 ','2','3'};C) char a[2]= {"1","2"};D) char a[2]= {'a’,'b’};35. 若定义数组并初始化char a[10]={"hello"},该数组的元素个数是( A ).A) 10B) 5C) 6D) 736. 若定义数组并初始化char a[10]={"HELLO"},该数组的元素中 a[2]是( A ).A) 'L'B) 'E'C) 'H'D) 'O'37. 若定义数组并初始化int b[10]={ 1,2,3,4},以下哪几个语句成立( A C D)?A)b[8]的值为0B)b[1]的值为1C)b[3]的值为整数D)b[10]不是b数组中的元素38. 若定义数组int a[10];指出下列错误语句:ABCDA) a数组共有10个元素,其引用方法是:a[1],a[2]...a[10];B) a数组是整型数组,其元素自动初始化为0;C) a数组最后一个元素的引用方法是a[10];D) a数组第一个元素的引用方法是a[1];二、判断题1.数组是数目固定的若干变量的有序集合,数组中各元素的类型可以不同。
程序设计(C)作业三(有答案)第3次作业答案(红字为答案)1. 下列叙述中错误的是()A. 对于double 类型数组,不可直接用数组名对数组进行整体输入或输出B. 数组名代表数组所占存储区的首地址,其值不可变C. 在程序执行过程中,当数组元素下标超出定义的下标范围时,系统将给出“下标”越界的错误提示D. 可以通过赋初值的方式确定数组元素个数提示:请从数组下标的合法取值范围来考虑。
2. 已有定义char a[] = “xyz”,b[]={ ‘x’, ‘y’, ‘z’} ,以下叙述正确的是()A. 数组a 和 b 的长度相同B. 数组 a 的长度小于数组 b 的长度C. 数组a 的长度大于数组 b 的长度D. 上述说法均不正确提示:此题考察字符数组长度和字符串长度之间的关系。
3. 以下能正确定义一维数组的选项是()A. int num[];B. #define N 100 int num[N]C. int num[0..100];D. int N = 100; int num[N];提示:此题考察一维数组的维数界定问题。
4. 下列程序的输出结果是()#includevoid main(){char a[] = {‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f ’, ‘g’, ‘h’, ‘\0 ’}; int i, j;i = sizeof(a); j = strlen(a);printf( “%d, %d\n”, i,j); }A. 9,9B. 8, 9C. 1, 8D. 9,8提示:此题考察字符数组长度和字符串长度之间的关系。
5. 以下不能正确定义二维数组的选项是()A. int a[2][] = {{1, 2}, {3, 4}};B. int a[][2] = {1, 2, 3, 4};C. int a[2][2] = {{1}, {2}};D. int a[2][2] = {{1}, 2, 3};提示:此题考察二维数组初始化的规定。
c程序设计第三版习题参考解答(全) C程序设计第三版习题参考解答本文为《C程序设计第三版习题参考解答》的全文内容。
为了更好地适应题目要求,文章将按照解答问题的方式进行分段,每个问题对应一个小节。
以下是各个问题的解答:第一章:C概述和程序设计基本原则1. 什么是计算机程序?计算机程序是一系列指令的集合,用于告诉计算机执行特定的任务。
它由一系列语句组成,每条语句都包含了计算机可以理解和执行的命令。
2. C语言的起源和发展历程是什么?C语言是由贝尔实验室的Dennis Ritchie于20世纪70年代初开发的一种通用高级编程语言。
C语言基于早期的B语言进行了扩展和改进,成为了应用广泛且高效的编程语言。
3. 编译和解释有什么区别?编译是将源代码一次性转换为机器语言的过程。
它将整个源代码文件编译成可执行文件,然后可以直接在计算机上运行。
解释是逐行解析源代码并立即执行的过程。
解释器逐行读取源代码并将其转换为机器代码,然后立即执行转换后的代码。
4. C程序的一般结构是什么样的?C程序的一般结构包括预处理指令、函数声明、全局变量声明、main函数以及其他函数的定义。
预处理指令用于包含头文件、定义宏等。
函数声明用于声明函数的名称和参数。
全局变量声明用于声明全局变量。
main函数是C程序的入口点,也是程序执行的起始位置。
第二章:C基本语法和数据类型1. C中的注释有哪些类型?在C中,注释分为单行注释和多行注释。
单行注释以"//"开头,多行注释以/*开头,以*/结尾。
2. 什么是变量?变量是在程序中用来存储数据的存储区域。
每个变量都有一个名称和一个数据类型,可以通过变量名来引用它所存储的数据。
3. C语言中的常量有哪些类型?C语言中的常量分为整型常量、实型常量、字符常量和字符串常量。
整型常量表示整数值,实型常量表示实数值,字符常量表示单个字符,字符串常量表示一串字符。
4. C语言中的运算符有哪些类型?C语言中的运算符包括算术运算符、关系运算符、逻辑运算符、赋值运算符、自增自减运算符等。
习题3 参考答案一、选择题3.1 C 分析:本题考查程序和数组的基本概念。
3.2 A 分析:字符串比较大小是以第1个不相同字符的大小为标准的,跟长度没有关系,B选项不正确;字符串比较大小除了使用库函数strcn3()以外,就只能靠自己写代码来实现了,而不能通过关系运算符来比较大小。
因为字符串在表达式中相当于const char*,即常字符指针,代表的是字符串的首地址,关系运算符会将两个字符串的首地址值比较大小,这是毫无意义的。
C选项不正确。
C语言中只有字符串常量而没有字符串变量,D选项描述不正确;空串的长度为0,而以空格打头的字符串的长度至少为1,因此A选项是正确。
3.3 A 分析:如果第一维的长度没有指定,则定义的同时需要完成初始化,否则不知道分配多大的内存空间给它,所以选项B、C错误;二维数组a[2][3]中只有两个元素,都是一维数组,一维下标最大只能是a[1],所以选项D错误;若完成初始化的二维数组,第一维的长度没有指定,则第一维的大小按如下规则确定:若初值个数能被第二维大小整除,所得的商就是第一维的大小,若不能整除,则所得的商加1作为第一维的大小,所以选项A相当于:double a[1][3] = {6};其中a[0][0]=6,其他元素赋值0,选项A正确,答案为A。
3.4 D 分析:本题考察的知识点是:字符串常量。
在C语言中,字符串常量是以双引号括起来的字符序列。
因此B选项和C选项不正确。
字符序列中可包含一些转义字符,转义字符都是以"\"开头的。
A选项中包含了三个"\",前两个(\\)代表了一个"\"字符,后面一个和"""一起(\")被看作一个""",所以该字符串缺少一个结束的""",因此不正确。
D选项的两个"""之间没有任何字符,代表的是一个空串,是合法的字符串常量,因此D选项正确。
c语言字符串数组定义的几种方式摘要:一、字符串数组定义1.方式一:使用字符串数组名和下标访问字符串元素2.方式二:使用字符串数组名和下标访问字符串元素3.方式三:使用字符串指针访问字符串数组元素正文:C 语言中,字符串数组是一种存储多个字符串数据的数组。
在实际编程中,我们可以通过不同的方式定义和访问字符串数组。
下面将详细介绍C 语言中字符串数组的定义方式。
1.方式一:使用字符串数组名和下标访问字符串元素这种方法是最常用的字符串数组定义方式。
我们可以直接声明一个字符串数组,并通过下标访问数组中的字符串元素。
例如:```c#include <stdio.h>int main() {char str_array[3][20] = {"Hello", "World", "I am AI"};int i;for (i = 0; i < 3; i++) {printf("%s", str_array[i]);return 0;}```2.方式二:使用字符串数组名和下标访问字符串元素与方式一类似,我们也可以使用字符串数组名和下标来访问字符串数组元素。
但这种方法在声明数组时,需要将字符串的首地址赋值给数组名。
例如:```c#include <stdio.h>int main() {char *str_array[3] = {"Hello", "World", "I am AI"};int i;for (i = 0; i < 3; i++) {printf("%s", str_array[i]);}return 0;}```3.方式三:使用字符串指针访问字符串数组元素这种方法是通过定义一个字符串指针数组来访问字符串数组元素。
实验三数组编程(设计性实验)一、实验目的1.进一步理解和掌握Java语言中数组的概念;2.掌握数组在方法中的使用,包括把数组传递给方法和从方法中返回数组,并能使用数组进行程序设计。
二、实验教学要求1.性质:必做实验实验类型:设计性2.时间要求:在讲完“数组”之后安排,需要6学时。
2.对学生的要求:编写好程序。
3.对教师的要求:预做本实验。
4.对实验室的要求:在windows环境中装有Java开发工具(如J2SE5.0版),以及IE6.0以上版本。
二、实验原理创建Java数组需要下面三个步骤:①声明数组声明数组的语法格式有如下两种:数组元素类型数组名[ ];数组元素类型[ ] 数组名;如int a[ ];int[ ] a;②创建数组空间声明数组仅仅指定了数组的名字和数组元素的类型,要想真正使用数组还需要为它分配内存空间,即创建数组空间。
在创建数组空间时,必须指明数组的长度,以确定空间的精确大小。
语法格式为:数组名=new 数组元素类型[数组元素的个数];如:int a[ ];a=new int[10];以上两步可组合在一起,用一条语句完成:int a[ ]=new int[10];用new运算符为数组分配内存空间的同时,数组的每个元素都会被自动赋予一个默认值。
整型为0,浮点型为0.0,字符型为'\0',布尔型为false,引用型为null。
③初始化数组元素如果是基本数据类型,那么这个步骤可以自行省略。
也可以在创建数组空间的时候,同时将初始值给出。
如:int a[ ]={1,2,3,4}; //int[] a=new int[]{1,2,3,4}在Java语言中,一个数组就是一个对象。
每个数组都有一个属性length,用来指明数组的长度。
数组元素的类型可以是基本数据类型,也可以是类类型,因此可以使用数组来包含一系列的对象。
student ——类名student s[ ]=new student[50];创建元素需使用如下形式的代码段:for(int i=0;i<s.length;++i){s[i]=new student( );}三、实验实例1.数据排序。
输出数组任意3个元素相乘的总数
在编程中,我们常常需要处理数组数据。
本题要求输出数组中任意3个元素相乘的总数,下面我们将用Python来实现这个功能。
首先,我们需要导入一个列表,用于存储数组数据。
接着,我们遍历整个数组,找出任意3个元素相乘的总数。
最后,我们将结果输出。
以下是一个简单的Python代码示例:
```python
# 导入列表
arr = [1, 2, 3, 4, 5, 6]
# 遍历数组
for i in range(len(arr)):
for j in range(i+1, len(arr)):
for k in range(j+1, len(arr)):
# 计算任意3个元素相乘的总数
product = arr[i] * arr[j] * arr[k]
# 输出结果
print(f"数组中任意3个元素相乘的总数为:{product}") ```
这段代码首先导入了列表`arr`,然后使用三个嵌套的循环来遍历数组。
在内部循环中,我们计算了任意三个相邻元素的乘积,并将其输出。
这个程序可以扩展到处理更大的数组,只需将数组元素替换为实际的数据即可。
同时,你还可以根据需求修改输出格式,使其更加美观和易于阅读。
总之,通过这个示例,你可以学会如何在Python中遍历数组并计算任意3个元素相乘的总数。
python3 数组判空
在Python 3 中,你可以使用以下方法来判断数组是否为空:
1. 使用`len()`函数:
使用`len()`函数可以获取数组的长度,然后判断长度是否为0。
```python
my_array = [1, 2, 3]
if len(my_array) == 0:
print("数组为空")
else:
print("数组不为空")
```
2. 直接在条件语句中判断:
直接在条件语句中判断数组是否为空,空数组在布尔上下文中被视为`False`,非空数组被视为`True`。
```python
my_array = []
if not my_array:
print("数组为空")
else:
print("数组不为空")
```
或者
```python
if my_array:
print("数组不为空")
else:
print("数组为空")
```
这种方法通常更加Pythonic。
无论你选择哪种方法,都可以有效地判断数组是否为空。
1.平均分program zh(inpout,output); vara:array[1..50] of integer; s,v,c:real;i:integer;beginfor i:=1 to 50 do beginread(a[i]);s:=s+a[i];end;v:=s/50;for i:=1 to 5 do beginc:=a[i]-v;writeln(c:0:2); end;end.2.查找program zh(inpout,output); vara:array[1..50] of integer; s,v,c:real;i:integer;beginfor i:=1 to 50 do beginread(a[i]);s:=s+a[i];end;v:=s/50;for i:=1 to 5 do beginc:=a[i]-v;writeln(c:0:2);end;end.3.插入program zh(input,output);vara:array[1..1000] of longint;n,x,j,i:longint;beginread(n);for i:=1 to n do a[i]:=i;read(x);i:=1;while (i<=n) and (a[i]<x) do i:=i+1; for j:=n downto i doa[j+1]:=a[j];a[i]:=x;n:=n+1;for i:=1 to n doif i=1 then write(a[i])else write(' ',a[i]); writeln;end.4.删除program zh(input,output);vara:array[1..1000] of longint;n,x,j,i:longint;beginread(n);for i:=1 to n do a[i]:=i;read(x);i:=1;while (i<=n) and (a[i]<>x) do i:=i+1; for j:=i to n do a[j]:=a[j+1];n:=n-1;for i:=1 to n doif i=1 then write(a[i])else write(' ',a[i]); end.5.选择排序program zh(input,output);vara:array[1..1000] of longint;n,i,j,temp:longint;beginread(n);randomize;for i:=1 to n doread(a[i]);for i:=1 to n-1 dofor j:=i+1 to n doif a[i]>a[j] then begintemp:=a[i];a[i]:=a[j];a[j]:=tempend;for i:=1 to n doif i=1 then write(a[i])else write(' ',a[i]); end.program zh(input,output);vara:array[1..1000] of longint; n,i,j,temp,k:longint;beginread(n);for i:=1 to n do read(a[i]);for i:=1 to n-1 do begink:=i;for j:=i+1 to n doif a[j]<a[k] then k:=j;if k<>i then begintemp:=a[i];a[i]:=a[k];a[k]:=temp;end;end;for i:=1 to n doif i=1 then write(a[i])else write(' ',a[i]); end.6.冒泡排序program zh(input,output);vara:array[1..1000] of integer; n,i,j,t:integer;beginread(n);for i:=1 to n do read(a[i]);for i:=1 to n-1 do beginfor j:=1 to n-i do beginif a[j]>a[j+1] then begint:=a[j];a[j]:=a[j+1];a[j+1]:=t;end;continue;end;end;for i:=1 to n do writeln(a[i]); end.7.约瑟夫问题program zh(input,output);var p:array[1..1000] of integer;i,j,k,m,n,s,s1,w:integer;beginread(m,n);s1:=1;for i:=1 to n do p[i]:=i;for i:=n downto 2 dobegins1:=(s1+m-1) mod i;if s1=0 then s1:=i;w:=p[s1];for j:=s1 to i-1 do p[j]:=p[j+1];p[i]:=w;end;for i:=n downto 1 dobeginwrite(p[i]:4);if (n+1-i) mod 10=0 then writeln;end;end.program zh(input,output);vara:array[1..1000] of integer; m,n,i,k,j,w:integer;beginread(m,n);for i:=1 to n-1 do a[i]:=i+1;a[n]:=1;k:=n;for i:=1 to n do beginfor j:=1 to m do beginw:=k;k:=a[k];end;a[w]:=a[k];write(k,' ');end;end.program zh(input,output);varp:array[1..1000] of longint; m,n,i,j,s:longint;beginread(n,m);for i:=1 to n do p[i]:=1;j:=0; for i:=n downto 1 do begins:=0;while s<>m do beginj:=j+1;if j>n then j:=1;s:=s+p[j];end;writeln(j,' ');p[j]:=0;end;for i:=1 to n doif p[i]=1 then write (i); end.12 43 5 6program zh(input,output);vara:array[1..100,1..100] of integer; n,m,i,j:integer;beginread(n);m:=1;for i:=1 to n do beginfor j:=i to n do begina[j,i]:=m;m:=m+1;end;end;for i:=1 to n do beginfor j:=1 to i do write (' ',a[i,j]);writeln;end;end.(循环方法)program dew(input,output);varn,x,j,i:integer;beginread(n);for i:=1 to n do beginx:=i;for j:=1 to i do beginwrite(x:3);x:=x+n-j;end;writeln;end;end.杨辉三角图program dtx1(input,output);vara:array[1..10000,1..10000]of longint; i,j,n:longint;beginread(n);a[1,1]:=1;for i:=2 to n dobegina[i,1]:=1;a[i,i]:=1;for j:=2 to i-1 doa[i,j]:=a[i-1,j-1]+a[i-1,j];end;writeln('yanghui');for i:=1 to n dobeginwrite('':40-3*i);for j:=1 to i do write(a[i,j]:6);writeln;end;end.8.插入排序program zh(input,output);vara:array[0..1000] of integer;n,i,j:integer;beginread(n);for i:=1 to n do read(a[i]);for i:=2 to n do begina[0]:=a[i];j:=i-1;while (j>1) and (a[j]>a[0]) do begina[j+1]:=a[j];j:=j-1;end;a[j+1]:=a[0];end;for i:=1 to n doif i=1 then write(a[i])else write(' ',a[i]);end.。