数组重点程序题目 文档
C语言数组编程题
实验4 数组一.实验目的:1.掌握一维数组的定义、赋值和输入输出的方法;2.掌握字符数组定义、初始化、赋值的方法;3.了解常见的字符串函数功能及其使用方法;4.掌握二维数组的定义与引用。
二.实验内容:1.编写程序,输入10个整数存入一维数组,统计输出其中的正数、负数和零的个数。
2.编写程序,输入10个整数存入一维数组,再按逆序重新存放后再输出。
3.编写程序,输入10个整数存入一维数组,对其进行升序排序后输出。
4.编写程序,求二维数组中元素的最大值和最小值。
5.编写程序,求一个4×4矩阵中所有元素之和。
6.编写程序:从键盘上输入一字符串,统计输出该字符串中的字母字符、数字字符、空格以及其他字符的个数。
7.编写程序:从键盘上输入一字符串,并判断是否形成回文(即正序和逆序一样,如“abcd dcba”)。
8. 产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。
9. 产生一个由10个元素组成的一维数组,数组元素由随机数(0-99)构成。
按照升序排列并输出。
再输入一个数,按原来的规律将其插入并输出。
页脚内容110. 产生一个由10个元素组成的一维数组,数组元素由随机数(0-99)构成。
按照升序排列并输出。
再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,则输出找不到。
11. 找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。
可能没有鞍点。
12. 编程输出杨辉三角。
(要求输出10行)(杨辉三角:每行端点与结尾的数为1.每个数等于它上方两数之和。
每行数字左右对称,由1开始逐渐变大)13. 输入一行字符,统计大写字母、小写字母、数字、空格以及其它字符个数。
14. 编写程序,将两个字符串连接起来,不用strcat。
15. 编写程序实现strcpy函数功能。
16. 编程实现strlen函数功能。
17. 编程求2-4+6-8…-100+102的值。
18. 假设某人有100,000现金。
C语言数组典型例题分析与解答
数组练习解答1 定义一个名为a的单精度实型一维数组,长度为4,所有元素的初值均为0的数定义语句是________________【分析】按照一般数据定义语句的格式,可以直接写出方法一(参看答案);考虑到所有元素均赋初值时可以省略数组长度,可以写出方法二(参看答案);考虑到不省略数组长度,给部分元素赋初值时,所有未赋初值的元素均有空值(对数值型数组来说,初值为0),可以写出方法三(参看答案);考虑到选用静态型,不赋初值所有元素也自动赋予。
空值(对数值型数组来说,初值为0),可以写出方法四(参看答案)。
【答案】方法一:float a[4]={0.0,0.0,0.0,0.0};方法二:float a[]={ 0.0,0.0,0.0,0.0};方法三:float a[4]= {0.0};方法四:static float [4];2 下列数组定义语句中,错误的是()①char x[1]='a';②auto char x[1]={0};③static char x[l];④char x[l];【分析】显然答案①中给字符型数组赋初值的格式不对(不能直接赋予字符常量,必须用花括号括住),所以备选答案①是符合题意的答案。
【答案】①3 用"冒泡排序法"对n个数据排序,需要进行n一1 步。
其中第k步的任务是:自下而上,相邻两数比较,小者调上;该操作反复执行n-k次。
现在假设有4个数据:4、l、3、2要排序,假定4为上、2为下,则利用"冒泡排序法"执行第2步后的结果是_________________。
【分析】开始排序前的排列执行第1步后的排列执行第2步后的排列4 1 11 4 23 2 42 3 3【答案】l、2、4、34 用"选择排序法"对n个数据排序,需要进行n-1步。
其中第k步的任务是:在第k个数据到第n个数据中寻找最小数,和第k个数据交换。
数组选择试题及答案
数组选择试题及答案一、选择题1. 在C语言中,数组的索引是从哪个数字开始的?A. 0B. 1C. 2D. 3答案:A2. 下面哪个选项是正确的数组声明?A. int arr[5] = {1, 2, 3};B. int arr[5] = {1, 2, 3, 4, 5, 6};C. int arr[] = {1, 2, 3};D. int arr[5] = {1, 2};答案:C3. 如果有一个数组`int arr[10] = {0};`,那么数组中所有元素的初始值是多少?A. 1B. 0C. -1D. 未定义答案:B4. 以下哪个循环可以用来遍历数组?A. for (int i = 0; i < 10; i++) { ... }B. for (int i = 10; i > 0; i--) { ... }C. for (int i = 0; i <= 10; i++) { ... }D. for (int i = 0; i < 10; i += 2) { ... }答案:A5. 在C语言中,如何获取数组的长度?A. sizeof(arr) / sizeof(arr[0])B. sizeof(arr) * sizeof(arr[0])C. sizeof(arr) / sizeof(int)D. sizeof(arr) / sizeof(char)答案:A二、填空题1. 在C语言中,定义一个整型数组并初始化为前5个自然数,可以使用以下语句:`int arr[] = {______, ______, ______, ______,______};`答案:0, 1, 2, 3, 42. 如果有一个数组`int arr[5] = {10, 20, 30, 40, 50};`,那么`arr[2]`的值是______。
答案:303. 在C语言中,数组的内存是______的。
答案:连续4. 定义一个数组`int arr[3] = {0, 1, 2};`,数组的最后一个元素的索引是______。
C语言数组编程题
实验4 数组一.实验目的:1.掌握一维数组的定义、赋值和输入输出的方法;2.掌握字符数组定义、初始化、赋值的方法;3.了解常见的字符串函数功能及其使用方法;4.掌握二维数组的定义与引用。
二.实验内容:1.编写程序,输入10个整数存入一维数组,统计输出其中的正数、负数和零的个数。
2.编写程序,输入10个整数存入一维数组,再按逆序重新存放后再输出。
3.编写程序,输入10个整数存入一维数组,对其进行升序排序后输出。
4.编写程序,求二维数组中元素的最大值和最小值。
5.编写程序,求一个4×4矩阵中所有元素之和。
6.编写程序:从键盘上输入一字符串,统计输出该字符串中的字母字符、数字字符、空格以及其他字符的个数。
7.编写程序:从键盘上输入一字符串,并判断是否形成回文(即正序和逆序一样,如“abcd dcba”)。
8. 产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。
9. 产生一个由10个元素组成的一维数组,数组元素由随机数(0-99)构成。
按照升序排列并输出。
再输入一个数,按原来的规律将其插入并输出。
10. 产生一个由10个元素组成的一维数组,数组元素由随机数(0-99)构成。
按照升序排列并输出。
再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,则输出找不到。
11. 找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。
可能没有鞍点。
12. 编程输出杨辉三角。
(要求输出10行)(杨辉三角:每行端点与结尾的数为1.每个数等于它上方两数之和。
每行数字左右对称,由1开始逐渐变大)13. 输入一行字符,统计大写字母、小写字母、数字、空格以及其它字符个数。
14. 编写程序,将两个字符串连接起来,不用strcat。
15. 编写程序实现strcpy函数功能。
16. 编程实现strlen函数功能。
17. 编程求2-4+6-8…-100+102的值。
18. 假设某人有100,000现金。
数组选择试题及答案解析
数组选择试题及答案解析一、选择题1. 下列关于数组的描述中,错误的是:A. 数组是一种基本的数据结构,可以存储相同类型的多个元素B. 数组在内存中是连续存储的C. 数组的大小在定义后可以改变D. 数组可以通过索引来访问元素2. 假设有一个整型数组 int[] arr = {1, 2, 3, 4, 5}; 以下哪个表达式是正确的:A. arr[0] = 10B. arr[5] = 6C. arr[-1] = 0D. arr[5]3. 在Java中,以下哪个方法可以用来获取数组的长度:A. length()B. size()C. count()D. total()4. 假设有一个数组 int[] numbers = new int[5]; 以下哪个操作是合法的:A. numbers[5] = 10B. numbers[-1] = 0C. numbers[4] = 100D. numbers[0] = 55. 在C语言中,以下哪个数组声明是正确的:A. int arr[] = {1, 2, 3};B. int arr[3] = {1, 2, 3};C. int arr[3] = 1, 2, 3;D. int arr = {1, 2, 3};二、答案解析1. 答案:C解析:数组的大小在定义后是不可变的,这是数组的一个基本特性。
2. 答案:A解析:数组索引从0开始,arr[0]是第一个元素,可以赋值为10。
3. 答案:A解析:在Java中,数组的长度通过length属性获取。
4. 答案:C解析:数组索引从0到数组长度减一,所以索引4是合法的,可以赋值为100。
5. 答案:A解析:在C语言中,数组的声明可以不指定大小,编译器会根据初始化列表的长度自动计算数组的大小。
选项A是正确的声明方式。
C语言编程练习之数组
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语言题库数组(2021年整理精品文档)
(完整版)C语言题库数组编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整版)C语言题库数组)的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整版)C语言题库数组的全部内容。
数组一、选择题1、假定int 类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组X在内存中所占字节数是(B).A 3B 6C 10D 202、执行下面的程序段后,变量k 中的值为(A).int k=3, s[2];s[0]=k; k=s[1]*10;A 不定值B 33C 30D 103、设有数组定义: char array []="China”; 则数组array 所占的空间为(C)。
A 4 个字节B 5 个字节C 6 个字节有0/的结束标志D 7 个字节4、下列描述中不正确的是 CA 字符型数组中可以存放字符串B 可以对字符型数组进行整体输入、输出C 可以对整型数组进行整体输入、输出D 不能在赋值语句中通过赋值运算符”=”对字符型数组进行整体赋值5、给出以下定义char x[]=”abcdefg”;char y[ ]={’a’,'b’,’c','d’,'e','f’,’g'};则正确的叙述为 CA 数组X 和数组Y 等价B 数组x 和数组Y 的长度相同C 数组X 的长度大于数组Y 的长度D 数组X 的长度小于数组Y 的长度6、下述对C 语言字符数组的描术中错误的是 CA 字符数组可以存放字符串B 字符数组中的字符串可以整体输入、输出C 可以在赋值语句中通过赋值运算符”=”对字符数组整体赋值D 不可以用关系运算符对字符数组中的字符串进行比较7、定义如下变量和数组int i;int x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是 Cfor(i=0;i<3;i++) printf(”%d",x[i][2—i]);A 1 5 9B 1 4 7C 3 5 7D 3 6 98、以下一维数组a 的正确定义是(D)A int a(10);B float n=10,a[n];C int n;scanf(”%d”,&n);float a[n];D #define size 10; long a[size];9、合法的数组定义是 DA int a[]="string";B int a[5]={0,1,2,3,4,5};C vhst s="string";D char a[]={0,1,2,3,4,5};10、以下关于数组的描述正确的是CA 数组的大小是固定的,但可以有不同的类型的数组元素;B 数组的大小是可变的,但所有数组元素的类型必须相同;C 数组的大小是固定的,但所有数组元素的类型必须相同;D 数组的大小是可变的,但可以有不同的类型的数组元素;11、在定义int a[10];之后,对a 的引用正确的是 AA a[9]B a[6.3]C a(6)D a[10]12、以下对一维数组a 进行不正确初始化的是 AA int a[10]=(0,0,0,0);B int a[10]={};C int a[]={0};D int a[10]={10*2};13、以下对二维数组a 进行正确初始化的是 BA int a[2][3]={{1,2},{3,4},{5,6}};B int a[][3]={1,2,3,4,5,6};C int a[2][]={1,2,3,4,5,6};D int a[2][]={{1,2},{3,4}};14、以下对字符数组进行不正确初始化的是 AA static char word[]=’cool\0’;B static char word[]={‘c’,’o’,’o’,’l’};C static char word[]={“cool\0”};D static char word[]="cool\0”;15、在定义int a[5][4];之后,对数组元素的引用正确的是 CA a[2][4]B a[5][0]C a[0][0]D a[0,0]16、下列选项中,能正确定义数组的语句是 DA int num[0。
C语言数组编程题及解答
C语言数组编程题及解答【程序1】用筛选法求100之内的素数筛选法又称筛法,是求不超过自然数N(N>1)的所有质数的一种方法。
据说是古希腊的埃拉托斯特尼(Eratosthenes,约公元前274~194年)发明的,又称埃拉托斯特尼筛子。
具体做法是:先把N个自然数按次序排列起来。
1不是质数,也不是合数,要划去。
第二个数2是质数留下来,而把2后面所有能被2整除的数都划去。
2后面第一个没划去的数是3,把3留下,再把3后面所有能被3整除的数都划去。
3后面第一个没划去的数是5,把5留下,再把5后面所有能被5整除的数都划去。
这样一直做下去,就会把不超过N的全部合数都筛掉,留下的就是不超过N的全部质数。
因为希腊人是把数写在涂腊的板上,每要划去一个数,就在上面记以小点,寻求质数的工作完毕后,这许多小点就像一个筛子,所以就把埃拉托斯特尼的方法叫做“埃拉托斯特尼筛”,简称“筛法”。
#include <stdio.h>#include <math.h>void main(){int i,j;int a[100];for(i=0;i<100;i++)a[i]=i+1;for(i=1;i<100;i++){if(a[i]==0)continue;for(j=i+1;j<100;j++)if(a[j]%a[i]==0)a[j]=0;}for(j=1;j<100;j++) //j从1开始,去除a[0](其值为1),因为1既不是质数,也不是合数if(a[j]!=0)printf("%d,",a[j]);printf("\n");}【程序2】题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。
例如6=1+2+3.编程找出1000以内的所有完数。
2.程序源代码:#include <stdio.h>#define N 10int main(){int i,j,max,tem,a[N];/*input data*/printf("please input ten num:\n"); for(i=0;i<N;i++){printf("a[%d]=",i);scanf("%d",&a[i]);}printf("\n");printf("Before sorted \n");for(i=0;i<N;i++)printf("%5d",a[i]);printf("\n");/*sort ten num*/for(i=0;i<N-1;i++){max=i;for(j=i+1;j<N;j++)if(a[max]<a[j]) max=j;if (max!=i){tem=a[i];a[i]=a[max];a[max]=tem;}}/*output data*/printf("After sorted \n");for(i=0;i<N;i++)printf("%5d",a[i]);printf("\n");return 1;}==================================== ==========================【程序4】题目:求一个3*3矩阵对角线元素之和1.程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。
C语言数组编程题
实验4 数组一.实验目的:1.掌握一维数组的定义、赋值和输入输出的方法;2.掌握字符数组定义、初始化、赋值的方法;3.了解常见的字符串函数功能及其使用方法;4.掌握二维数组的定义与引用..二.实验内容:1.编写程序;输入10个整数存入一维数组;统计输出其中的正数、负数和零的个数..2.编写程序;输入10个整数存入一维数组;再按逆序重新存放后再输出..3.编写程序;输入10个整数存入一维数组;对其进行升序排序后输出..4.编写程序;求二维数组中元素的最大值和最小值..5.编写程序;求一个4×4矩阵中所有元素之和..6.编写程序:从键盘上输入一字符串;统计输出该字符串中的字母字符、数字字符、空格以及其他字符的个数..7.编写程序:从键盘上输入一字符串;并判断是否形成回文即正序和逆序一样;如“abcd dcba”..8. 产生一个由10个元素组成的一维数组并输出;数组元素由随机数0-99构成..9. 产生一个由10个元素组成的一维数组;数组元素由随机数0-99构成..按照升序排列并输出..再输入一个数;按原来的规律将其插入并输出..10. 产生一个由10个元素组成的一维数组;数组元素由随机数0-99构成..按照升序排列并输出..再输入一个数;要求找出该数是数组中的第几个元素;如果不在数组中;则输出找不到..11. 找出一个二维数组中的鞍点;即该位置上的元素在该行最大;在该列最小..可能没有鞍点..12. 编程输出杨辉三角..要求输出10行杨辉三角:每行端点与结尾的数为1.每个数等于它上方两数之和..每行数字左右对称;由1开始逐渐变大13. 输入一行字符;统计大写字母、小写字母、数字、空格以及其它字符个数..14. 编写程序;将两个字符串连接起来;不用strcat..15. 编写程序实现strcpy函数功能..16. 编程实现strlen函数功能..17. 编程求2-4+6-8…-100+102的值..18. 假设某人有100;000现金..每经过一次路口需要进行一次交费..交费规则为当他现金大于50;000时每次需要交5%如果现金小于等于50;000时每次交5;000..请写一程序计算此人可以经过多少次这个路口..19. 输入若干个正整数;以0结束;将其中大于平均值且个位为5的数排序后输出..按由大到小的顺序排序20. 输入一个字符串;将其中ASCII码值为基数的字符排序后输出..按由小到大的顺序21. 输入一个以回车结束的字符串少于80个字符;滤去所有的非16进制字符后;组成一个新字符串16进制形式;然后将其转换为10进制数后输出..22. 读入一个正整数n1<=n<=6;再读入n阶矩阵;计算该矩阵除副对角线、最后一行、最后一列以外的所有元素之和副对角线为矩阵的右上角至左下角的连线..23. 输入一个正整数n;输入n个数;生成一个nn的矩阵;矩阵中第1行是输入的n个数;以后每一行都是上一行循环左移一个元素..输入输出示例:Input n:5Input number:2 5 8 4 9The matrix is:2 5 8 4 95 8 4 9 28 4 9 2 54 9 25 89 2 5 8 424. 输出可大可小的正方形图案;最外层是第一层;要求每层上用的数字与层数相同..输入输出示例:Input n:3The matrix is:1 1 1 1 11 2 2 2 11 2 3 2 11 2 2 2 11 1 1 1 125. 实现选择排序算法..26. 实现希尔排序算法..27. 实现快速排序算法..28. 实现堆排序算法..29. 实现归并排序算法..30. 实现基数排序算法..31. 输入数组;最大的与第一个元素交换;最小的与最后一个元素交换;输出数组三.实验步骤:四. 实验结果分析:。
C语言数组编程题
实验4 数组一.实验目的:1.掌握一维数组的定义、赋值和输入输出的方法;2.掌握字符数组定义、初始化、赋值的方法;3.了解常见的字符串函数功能及其使用方法;4.掌握二维数组的定义与引用。
二.实验内容:1.编写程序,输入10个整数存入一维数组,统计输出其中的正数、负数和零的个数。
2.编写程序,输入10个整数存入一维数组,再按逆序重新存放后再输出。
3.编写程序,输入10个整数存入一维数组,对其进行升序排序后输出。
4.编写程序,求二维数组中元素的最大值和最小值。
5.编写程序,求一个4×4矩阵中所有元素之和。
6.编写程序:从键盘上输入一字符串,统计输出该字符串中的字母字符、数字字符、空格以及其他字符的个数。
7.编写程序:从键盘上输入一字符串,并判断是否形成回文(即正序和逆序一样,如“abcd dcba”)。
8. 产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。
9. 产生一个由10个元素组成的一维数组,数组元素由随机数(0-99)构成。
按照升序排列并输出。
再输入一个数,按原来的规律将其插入并输出。
10. 产生一个由10个元素组成的一维数组,数组元素由随机数(0-99)构成。
按照升序排列并输出。
再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,则输出找不到。
11. 找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。
可能没有鞍点。
12. 编程输出杨辉三角。
(要求输出10行)(杨辉三角:每行端点与结尾的数为1.每个数等于它上方两数之和。
每行数字左右对称,由1开始逐渐变大)13. 输入一行字符,统计大写字母、小写字母、数字、空格以及其它字符个数。
14. 编写程序,将两个字符串连接起来,不用strcat。
15. 编写程序实现strcpy函数功能。
16. 编程实现strlen函数功能。
17. 编程求2-4+6-8…-100+102的值。
18. 假设某人有100,000现金。
C语言数组编程题
实验4 数组一.实验目的:1.掌握一维数组的定义、赋值和输入输出的方法;2.掌握字符数组定义、初始化、赋值的方法;3.了解常见的字符串函数功能及其使用方法;4.掌握二维数组的定义与引用。
二.实验内容:1.编写程序,输入10个整数存入一维数组,统计输出其中的正数、负数和零的个数。
2.编写程序,输入10个整数存入一维数组,再按逆序重新存放后再输出。
3.编写程序,输入10个整数存入一维数组,对其进行升序排序后输出。
4.编写程序,求二维数组中元素的最大值和最小值。
5.编写程序,求一个4×4矩阵中所有元素之和。
6.编写程序:从键盘上输入一字符串,统计输出该字符串中的字母字符、数字字符、空格以及其他字符的个数。
7.编写程序:从键盘上输入一字符串,并判断是否形成回文(即正序和逆序一样,如“abcd dcba”)。
8. 产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。
9. 产生一个由10个元素组成的一维数组,数组元素由随机数(0-99)构成。
按照升序排列并输出。
再输入一个数,按原来的规律将其插入并输出。
10. 产生一个由10个元素组成的一维数组,数组元素由随机数(0-99)构成。
按照升序排列并输出。
再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,则输出找不到。
11. 找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。
可能没有鞍点。
12. 编程输出杨辉三角。
(要求输出10行)(杨辉三角:每行端点与结尾的数为1.每个数等于它上方两数之和。
每行数字左右对称,由1开始逐渐变大)13. 输入一行字符,统计大写字母、小写字母、数字、空格以及其它字符个数。
14. 编写程序,将两个字符串连接起来,不用strcat。
15. 编写程序实现strcpy函数功能。
16. 编程实现strlen函数功能。
17. 编程求2-4+6-8…-100+102的值。
18. 假设某人有100,000现金。
C语言-数组-实验题目及答案
实验六数组程序设计【实验目的】1、掌握使用一维数组编程方法2、掌握使用二维数组进行程序设计【实验内容】一、上机验证程序,并分析结果要求:读懂程序,写出分析结果;上机运行程序,得到运行结果,比较之。
1、#include <stdio.h>int 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 );return 0;}二、程序改错题1.下面程序的功能,是从键盘输入一个数组〔数组长度为10〕,查找数组中正数的个数。
源代码如下,程序中存在错误,请将其改正。
#include <stdio.h>int main(){int a(10);/*定义数组*/int count,i;/* i循环变量 count 正数个数*/for(i=0;i<=10;i++){/*循环输入*/scanf("%d",a[i]);}count=1;for(i=0;i<=10;i++){/*查找正数*/if(a(i)>0)count++;}printf("数组中正数有:%d个\n",count);return 0;}三编写程序1.编写程序要求输入30个学生的单科成绩,输出高于平均分的成绩。
#include <stdio.h>#define N 30int main(){float score[N],sum=0,aver;int i;for(i=0;i<30;i++){scanf("%f",&score[i]);sum=sum+score[i];}aver=sum/30;printf("平均分为:%.2f\n",aver);for(i=0;i<N;i++)if(score[i]>aver)printf("%.2f ",score[i]);printf("\n");return 0;}2.编写程序:假设有13位评委参与评分工作。
11《C语言程序设计》教案第四章数组(1)—一维数组
min_p=j;} printf(“the min is%d,position %d”,min,min_p);
} (5)数组在内存中的存放 例如 int data[3];则在内存中的状态如下:
1000 1002
1004
data[0] data[1] data[2]
讨论、思考题、作业: 实验指导书习题
f[0]=1;f[1]=1;f[2]=f[0]+f[1];f[3]=f[2]+f[1];依次类推找出 公式为: f[i]=f[i-1]+f[i-2]; 循环语句为:for(i=2;i<20;i++) 程序代码: main()
{ int i;
static int f[20]={1,1};
/*定义 20 个元素的数组
参考资料(含参考书、文献等):
叶斌 陈世强. C 语言程序设计. 北京:科学出版社 授课类型:理论课 讨论课□ 实验课□ 练习课□ 其他□ 教学方式:传统授课 双语□ 讨论□ 示教□ 指导□ 其他□ 教学资源:多媒体 模型□ 实物□ 挂图□ 音像□ 其他□
定义了一个二维数组 b,该数组由 9 个元素构成,其中每一个数组元素都属于浮点(实
数)数据类型。
数组
b
的各 个数据元 素依次
是:b[0][0],b[0][1],b[0][2],b[1][0],b[1][1],b[1][2],b[2][0],b[2][1],b[2][2](注意:下标从 0-2)。
每个数组元素也都可以作为单个变量使用。
例如:int a[10]={0,0,0,0,0,0,0,0,0,0}; 或 int a[10];系统会对所有数
组元素自动赋 0 值。
4)在对全部数组元素赋初值时,可以不指定数组长度。
C语言必背的典型程序设计题目-数组函数-------参考答案(DOC)
C语言必背的典型程序设计题目-数组函数-------参考答案(DOC)数组部分必须会编写的程序(参考答案)1、使用选择法、冒泡法对10个数进行排序,并输出排序前后的数列。
//选择法#includevoidmain(){inta[10]={12,45,7,8,96,4,10,48,2,46},n=10,i,j,t,temp;printf(\for(i=0;i<10;i++){printf(\}printf(\//排序for(i=0;i<9;i++){t=i;for(j=i+1;j<10;j++){if(a[t]>a[j]){t=j;}}if(t!=i){temp=a[i];a[i]=a[t];a[t]=temp;}}printf(\for(i=0;i<10;i++){ printf(\}printf(\}//冒泡法#includevoidmain(){inta[10]={12,45,7,8,96,4,10,48,2,46},n=10,I,j,t;printf(“Bef oreort:”);for(i=0;i<10;i++){printf(\}prtintf(“\\n”);//排序for(i=0;i<=n-1;i++){for(j=0;ja[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}printf(“Aftereorted:”);for(i=0;i<10;i++){printf(\}prtintf(“\\n”);}2、已知数组a中的元素已按由小到大顺序排列,以下程序的功能是将输入的一个数插入数组a中,插入后,数组a中的元素仍然由小到大顺序排列。
#includevoidmain(){inta[10]={0,12,17,20,25,28,30};/某a[0]为工作单元,从a[1]开始存放数据某/int某,i,j=6;/某j为元素个数某/printf(\canf(\a[0]=某;i=j;/某从最后一个单元开始某/while(a[i]>某){a[i+1]=a[i];i--;/某将比某大的数往后移动一个位置某/}a[++i]=某;j++;/某插入某后元素总个数增加某/for(i=1;i<=j;i++)printf(\printf(\}#include#definenma某50voidmain(){inti,k,m,n,t,num[nma 某];printf(\canf(\printf(\canf(\for(i=0;ii=0;//用于记录顺序1..nk=0;//用于记录顺序1..mt=0;//用于记录出列顺序while(t}{if(num[i]==0)k++;if(k==m){t++;num[i]=t;k=0;}i++;if(i==n)i=0 ;//或者i=i%n,构成循环}for(i=0;ifor(i=0;iprintf(\printf(\4、编程打印直角杨辉三角形前六行。
二、数组题——精选推荐
⼆、数组题⼆、数组题:50删除w数组中下标为k的元素中的值。
arrout(int *w,int m){int k;for(k=0;kprintf("\n");}arrdel(int *w,int n,int k){int i;for(i=k;in--;return n;}getindex(int n){int i;do{printf("\nEnter the index[0<=i<%d]:",n);scanf("%d",&i);}while(i<0||i>n-1);return i;}51从数组xx中找出个位和百位的数字相等的所有⽆符号整数,结果保存在数组yy中,其个数由函数fun返回。
当xx[8]= {135,78,72,32,222,424,333,141,541}时,bb[6]={787,232,222,424,333,141}。
int fun(int xx[],int bb[],int num){int i,n=0;int g,b;for(i=0;ib=xx[i]/100;if(g==b) bb[n++]=xx[i];}return n;}52从键盘输⼊⼀组⽆符号整数并保存在数组xx[N]中,以整数0结束输⼊,要求这些数的最⼤位数不超过4位,编写函数从数组xx中找出个位和⼗位的数字之和⼤于5的所有⽆符号整数,结果保存在数组yy中,个数由函数fun返回。
当xx[8]={123,11,25,222,42,333,14,5451}时,bb[4]={25,42,333,5451}。
int fun(int xx[],int bb[],int num){int i,n=0;int g, s;for(i=0;is=xx[i]/10%10;if((g+s)>5)bb[n++]=xx[i];}return n;}53求⼀维数组x[N]的平均值,并对所得结果进⾏四舍五⼊(保留两位⼩数)。
数组vb练习题
数组vb练习题一、题目描述请编写一个VB程序,实现以下功能:1. 创建一个整型数组,包含10个元素;2. 给数组的每个元素赋予不同的整数值;3. 输出数组中的所有元素;4. 计算并输出数组中的最大值、最小值、平均值和总和;5. 将数组中的所有元素按照降序排列,并输出排序后的结果;6. 基于用户输入的值,在数组中查找该值,并输出其在数组中的索引位置。
二、解题思路1. 首先,我们需要创建一个整型数组,使用VB的Array类型即可。
声明数组变量时,可以指定数组元素的个数,并为数组分配空间。
2. 使用For循环,为数组的每个元素赋予不同的整数值。
在循环中,可以使用数组名加索引的方式对数组元素进行赋值。
3. 使用For Each循环,输出数组中的所有元素。
在循环中,可以使用MsgBox函数输出每个元素的值。
4. 通过遍历数组,使用变量记录最大值、最小值和总和,然后计算平均值。
最后使用MsgBox函数输出这些结果。
5. 使用由VB提供的Sort函数对数组进行降序排列。
在排序前,可以使用Copy函数创建一个副本,以保留原数组的顺序。
6. 通过遍历数组,使用If语句判断用户输入的值是否与数组元素相等。
若相等,则输出该元素在数组中的索引位置。
三、代码实现```vbSub Main()' 创建整型数组并给元素赋值Dim arr(9) As IntegerFor i = 0 To 9arr(i) = i * 10Next' 输出数组中的所有元素For Each num In arrMsgBox(num)Next' 计算最大值、最小值、平均值和总和Dim maxVal As Integer = arr(0)Dim minVal As Integer = arr(0)Dim sumVal As Integer = 0For Each num In arrIf num > maxVal ThenmaxVal = numEnd IfIf num < minVal ThenminVal = numEnd IfsumVal += numNextDim avgVal As Double = sumVal / arr.LengthMsgBox("最大值:" & maxVal & vbCrLf & "最小值:" & minVal & vbCrLf & "平均值:" & avgVal & vbCrLf & "总和:" & sumVal) ' 对数组进行降序排列Dim sortedArr() As Integer = arr.Clone()Array.Sort(sortedArr)Array.Reverse(sortedArr)MsgBox("降序排列后的数组:" & vbCrLf & String.Join(", ", sortedArr))' 查找用户输入的值在数组中的索引位置Dim target As Integer = CInt(InputBox("请输入一个整数:"))Dim index As Integer = -1For i = 0 To arr.Length - 1If arr(i) = target Thenindex = iExit ForEnd IfNextMsgBox("元素 " & target & " 在数组中的索引位置为:" & index) End Sub```四、运行结果编译并运行上述程序,在控制台依次输出以下结果:```102030405060708090最大值:90最小值:0平均值:45总和:450降序排列后的数组:90, 80, 70, 60, 50, 40, 30, 20, 10, 0请输入一个整数:30元素 30 在数组中的索引位置为:3```以上就是完成数组VB练习题的具体代码实现和运行结果。
C语言数组编程题
实验4 数组一.实验目的:1.掌握一维数组的定义、赋值和输入输出的方法;2.掌握字符数组定义、初始化、赋值的方法;3.了解常见的字符串函数功能及其使用方法;4.掌握二维数组的定义与引用。
二.实验内容:1.编写程序,输入10个整数存入一维数组,统计输出其中的正数、负数和零的个数。
2.编写程序,输入10个整数存入一维数组,再按逆序重新存放后再输出。
3.编写程序,输入10个整数存入一维数组,对其进行升序排序后输出。
4.编写程序,求二维数组中元素的最大值和最小值。
5.编写程序,求一个4×4矩阵中所有元素之和。
6.编写程序:从键盘上输入一字符串,统计输出该字符串中的字母字符、数字字符、空格以及其他字符的个数。
7.编写程序:从键盘上输入一字符串,并判断是否形成回文(即正序和逆序一样,如“abcd dcba”)。
8. 产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。
9. 产生一个由10个元素组成的一维数组,数组元素由随机数(0-99)构成。
按照升序排列并输出。
再输入一个数,按原来的规律将其插入并输出。
10. 产生一个由10个元素组成的一维数组,数组元素由随机数(0-99)构成。
按照升序排列并输出。
再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,则输出找不到。
11. 找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。
可能没有鞍点。
12. 编程输出杨辉三角。
(要求输出10行)(杨辉三角:每行端点与结尾的数为1.每个数等于它上方两数之和。
每行数字左右对称,由1开始逐渐变大)13. 输入一行字符,统计大写字母、小写字母、数字、空格以及其它字符个数。
14. 编写程序,将两个字符串连接起来,不用strcat。
15. 编写程序实现strcpy函数功能。
16. 编程实现strlen函数功能。
17. 编程求2-4+6-8…-100+102的值。
18. 假设某人有100,000现金。
数组类编程题
数组类编程题1. ⼆维数组查找在⼀个⼆维数组中(每个⼀维数组的长度相同),每⼀⾏都按照从左到右递增的顺序排序,每⼀列都按照从上到下递增的顺序排序。
请完成⼀个函数,输⼊这样的⼀个⼆维数组和⼀个整数,判断数组中是否含有该整数。
思路:1、可以考虑对每⾏进⾏⼆分查找2、以右上或左下为起点,这⾥选择右上,依次向左扫描,如果当前值⼩于target,则row++(每⾏最后⼀个是该⾏最⼤的,如果它都⼩了,这⼀⾏都⼩了),如果⼤于,则col–(同理),直⾄扫描完。
代码1:以右上为起点class Solution {public:bool Find(int target, vector<vector<int>> array){int row = array.size(), r =0;//从第⼀⾏开始,注意array.size()是指vector中的向量个数,⽽ array[i].size()是指vector[i]中的向量个数。
if(row ==0)return false;int col = array[0].size(),c = col -1;//从右上⾓开始即第⼀⾏最后⼀列while(r < row && c >=0)//判断r和c的合理范围:r是每次++,所以其范围不能超过⾏数,c每次--,所以其范围不能⼩于0{if(array[r][c]== target)return true ;//找到⽬标数字if(array[r][c]<target) r++;//每⾏的最后⼀个元素都⽐⽬标数字⼩,说明该⾏的所有元素都要⼩于⽬标数字,故访问下⼀⾏的最后⼀个元素else c--;//该⾏的最后⼀个元素⼤于⽬标数字,所以访问该⾏的倒数第⼆个元素,以此类推}return false;}};代码2:以左下为起点class Solution {public:bool Find(int target, vector<vector<int>> array){int row = array.size()-1;int col = array[0].size()-1, cl =0;if(row <0)return false;while(row >=0&& cl <= col){if(target == array[row][cl])return true;else if(target > array[row][cl]) cl++;else row--;}return false;}};//代码3:⼆分查找,其时间复杂度为nlognpublic class Solution {public boolean Find(int[][] array,int target){for(int i=0;i<array.length;i++){int low=0;int high=array[i].length-1;while(low<=high){int mid=(low+high)/2;if(target>array[i][mid])low=mid+1;else if(target<array[i][mid])high=mid-1;elsereturn true;}}return false;}}2. 调整数组顺序使奇数位于偶数前⾯输⼊⼀个整数数组,实现⼀个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。