当前位置:文档之家› C语言数组编程题

C语言数组编程题

C语言数组编程题
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)构成。按照升序排列并输出。再输入一个数,按原来的规律将其插入并输出。

页脚内容1

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. 读入一个正整数n(1<=n<=6),再读入n阶矩阵,计算该矩阵除副对角线、最后一行、最后一列

页脚内容2

以外的所有元素之和(副对角线为矩阵的右上角至左下角的连线)。

23. 输入一个正整数n,输入n个数,生成一个n*n的矩阵,矩阵中第1行是输入的n个数,以后每一行都是上一行循环左移一个元素。

输入输出示例:

Input n:5

Input number:2 5 8 4 9

The matrix is:

2 5 8 4 9

5 8 4 9 2

8 4 9 2 5

4 9 2

5 8

9 2 5 8 4

24. 输出可大可小的正方形图案,最外层是第一层,要求每层上用的数字与层数相同。

输入输出示例:

Input n:3

The matrix is:

1 1 1 1 1

页脚内容3

1 2 2 2 1

1 2 3 2 1

1 2 2 2 1

1 1 1 1 1

25. 实现选择排序算法。

26. 实现希尔排序算法。

27. 实现快速排序算法。

28. 实现堆排序算法。

29. 实现归并排序算法。

30. 实现基数排序算法。

31. 输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组

三.实验步骤:

四. 实验结果分析:

页脚内容4

C语言程序设计实验报告(数组)

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]="forever",s2[50]="more"; 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=forever, s2=more 6运行结果 7出现问题及解决方法 在输入程序时,少写了半边引号,调试时发现存在错误,找到了错误并加以改正。无论什么事,细心都是必不可少的,认真是解决问题的关键。 8实验心得 通过本次实验,对于函数的定义和声明,数组以及循环语句有了进一步的认识,掌握了字符数组和字符串函数的使用,以及与数组有关的常用算法。此次实验不是调用strlen()和strcat()函数,而是通过自己设计程序来进行字符串的连接以及计量字符串的长度,由此我学会了如何去理清自己的思路来设计程序。

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)构成。按照升序排列并输出。再输入一个数,按原来的规律将其插入并输出。 页脚内容1

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. 读入一个正整数n(1<=n<=6),再读入n阶矩阵,计算该矩阵除副对角线、最后一行、最后一列 页脚内容2

C语言必背的典型程序设计题目-数组函数答案

数组部分必须会编写的程序(参考答案)1、使用选择法、冒泡法对10个数进行排序,并输出排序前后的数列。 //选择法 #include void main() { int a[10]={12,45,7,8,96,4,10,48,2,46},n=10,i,j,t,temp; printf("Before sort:"); for(i=0;i<10;i++) { printf("%4d",a[i]); } printf("\n"); //排序 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("Aftere sorted:"); for(i=0;i<10;i++) { printf("%4d",a[i]); } printf("\n"); } //冒泡法 #include void main() { int a[10]={12,45,7,8,96,4,10,48,2,46},n=10,I,j,t; printf(“Before sort:”); for(i=0;i<10;i++) { printf("%4d",a[i]); } 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(“Aftere sorted:”); for(i=0;i<10;i++)

C语言程序设计数组(说课稿)

C语言程序设计——数组(说课稿) 南京浦口中等专业学校—陈松一、课程目标 《C语言程序设计》是中职对口单招计算机专业理论考试和技能考试中一门重要的课程。要求学生掌握计算机编程语言的基本知识,初步掌握程序设计的基本思想,具有基本的C程序设计能力,能比较熟练地阅读、理解和编制简单的C程序。 二、学情分析 本课程是针对综合高中对口单招班高二年级计算机专业的学生,学生已学习了计算机基础和计算机原理课程,对专业知识有了一定的了解。但班级学生参差不齐,不少学生学习习惯较差,基础较薄弱。教师必须首先弄清学生对专业课学习的障碍及原因,再根据教学原理制定出相应的对策,培养学生学习的积极,提高解决实际问题的能力。 三、教材与参考书 本课程使用的教材是《C语言编程基础》(第2版)电子工业出版社。此教材分为两部分,第一部分是基础知识模块,第二部分是选用模块。对口单招学生只学习第一部分内容,第二部分内容单招计算机专业的考纲中是不要求的。 辅导练习: 1、C语言阶段综合测试卷集。 2、自己编写的每次课的学生工作页。

四、教材分析 1、单元内容 数组单元是C语言的一个重要章节,本单元教学内容有: (1)一维数组的定义、引用和初始化、一维数组应用。 (2)二维数组的定义、引用和初始化、二维数组应用。 (3)字符串与字符数组、字符串的输入输出、字符串处理函数、字符数组应用。 2、单元设计 (1)本单元每次课都编写了学生工作页,让学生根据任务去学习本单元内容。 (2)本单元加强了上机实习的课时数,着重培养学生上机实践能力,提高他们的程序设计能力。

3、教学目标 ?知识目标: (1)了解一维数组、二维数值型数组的定义和使用方法。 (2)掌握对数组的初始化。 (3)掌握字符串的输入、输出和处理。 (4)熟练掌握使用数组进行程序设计的方法。 (5)理解程序设计中的几种常见算法的基本思路。 ?技能目标: (1)学生能正确的定义数组;能正确的引用数组和初始化数组;能使用数组进行程序设计。 (2)培养学生的分析、思考能力,提高解决问题的能力。 ?情感目标: (1)通过上机实习调试程序,在学习中培养学生理论联系实际,使学生对编程更加感兴趣。 (2)培养学生认真学习的态度,激发学生学习C语言的兴趣。 4、单元重、难点 ?重点: 数组的定义、引用和初始化。 ?难点: 数组的应用及常见算法的基本思路。

C语言程序设计实验报告-数组

一、实验项目名称 数组 二、实验目的 1.掌握数组的基本概念,包括:数组的定义、数组的类型、数组的初始化、数组的赋值、数组元素下标的范围、数组元素的正确以及引用数组元素的输入/输出。 2.掌握字符数组与字符串的使用方法。理解字符数组与其它数组的区别、理解字符串及其特点。掌握常用的字符串处理库函数的用法并清楚对字符串的简单处理。 3.掌握与数组相关的算法,包括排序算法和查找算法等。 三、实验内容 进行有关数组的程序设计。 具体内容: 1.编程实现:对任意一个一维数组,从中找出数组元素的最大值和最小值。 要求: (1)数组为整型数组(10个元素)。 (2)使用scanf函数实现数组元素的输入。在输入前给出必要的提示。 (3)输出时给出必要的说明,首先输出原始的10个元素,换行后输出最大值以及最大值在数组中的位置、最小值以及最小值在数组中的位置。 (4)如果现改为20个元素的数组,怎样修改程序?修改程序后,运行程序进行检查。如果需要数组元素不断改变,应怎样修改程序? 2.编程实现:在给定的字符串中查找满足条件的第一个字符。 要求: (1)字符串采用初始化的方式处理。 (2)通过scanf函数读入一个任意字符。 (3)在字符串中查找该字符,如果存在该字符,输出该字符在字符串中的位置以及相应的说明。如果不存在该字符,则要给出相应的信息。 3.编程实现:首先任意输入一个大于2且小于10的整数n,再输入一个由n决定的二维整型数组(n ?n),形成n ?n阶矩阵,将矩阵中最大元素所在的行和最小元素所在的行对调后,再输出该矩阵(注意:数组不允许动态定义)。 例如:原始数据:n=4 结果数据: 1 2 3 4 8 11 14 16 3 5 9 10 3 5 9 10 8 11 14 16 1 2 3 4 15 2 7 6 15 2 7 6 要求: (1)本题中所涉及到的循环都采用for语句。 (2)在输入/输出时进行必要的说明。

C语言实验五、数组程序设计解答

C语言实验五、数组程序设计解答 实验五数组应用,二, 一、实验目的 1(掌握二维数组的定义和初始化。 2(掌握二维数组元素的引用及其应用。 3(掌握字符数组的定义和初始化。 4(掌握字符数组元素的引用及其应用。二、实验内容 1([目的]掌握二维数组的输出方法。 [题目内容]已知有二维数组a的定义:int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};编程序~以三行四列的形式输 出a数组。 [输入]无 [输出] 1 2 3 4 5 6 7 8 9 10 11 12 [提示] 利用二重for循环结构与printf()。 #include void main() { int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; int i,j; printf("二维数组:\n"); for(i=0;i<3;i++) { for(j=0;j<4;j++)

printf("%6d",a[i][j]); printf("\n"); } } 2([目的]掌握二维数组的输入、输出方法。 [题目内容]已知有一个3行2列的二维数组: 89 76 67 98 54 78 编程序~从键盘输入数据存储在二维数组中~并以3行2列的形式输出。 [输入]89~76~67~98~54~78 [输出] 89 76 67 98 54 78 [提示] 利用二重for循环结构与scanf()、printf()及%4d格式输出。 #include void main() { int a[3][2]; int i,j; printf("请输入3行2列二维数组:\n"); for(i=0;i<3;i++) for(j=0;j<2;j++) scanf("%d",&a[i][j]);

c语言程序设计数组

实验九数组 实验目的 ●掌握一维数组和二维数组的定义、初始化赋值、元素引用的方法。 ●掌握与数组有关的算法(特别是排序和查找算法)。 实验内容 请注意,在实验过程中请将所有程序中的“丁家雄”改成丁家雄!!! 1.调试下列错误程序,使之具有如下功能: 输入12个100以内的整数,按每行3个数输出这些整数,每个整数占4列且左对齐,最后一行输出12个整数的平均值(结果只显示2位小数)。 程序: #include //下一句是声明宏定义N,是没错的,以后会讲, //这里我们理解为下面程序中的所有N都会被自动修改成12 //使用这种形式的目的是使程序中的数组的大小的维护更容易 #define N 12

int main() { int i, a[N], av=0; printf("*** 这是丁家雄_9_1的运行结果:***\n"); printf("请输入%d个数,用空格分隔:\n",N); //逐个输入N个整数,依次存入数组a for (i = 0; i #define N 12 int main() { int i, a[N]; double av=0; printf("*** 这是丁家雄_9_1的运行结果:***\n"); printf("请输入%d个数,用空格分隔:\n",N); //逐个输入N个整数,依次存入数组a for (i = 0; i

c语言编程有关数组的几道例题

实验四一维数组、二维数组 一、实验目的与要求 1、熟练掌握一维数组、二维数组的定义、赋值和输入输出的方法。 2、掌握与数组有关的算法。 二、实验内容 1、(1)输入N个整数,使用冒泡排序,将数据由大到小输出。 #include "" #include<> void swap2(int*,int*); void bubble(int a[],int n); int main(void) { int n,a[8]; int i; printf("Enter n(n<=8):"); scanf("%d",&n); printf("Enter a[%d]:", n); for(i=0;i

printf("After sorted,a[%d]=", n); for(i=0;ia[j+1]) swap2(&a[j],&a[j+1]); /*交换*/ } void swap2(int *px,int *py) { int t; t=*px; *px=*py; *py=t; }

单向冒泡排序法: //输入10个整数,按从大到小输出// #include<> void main() { int i,j,t,a[10]; printf("请输入10个整数\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); for(j=1;j<10;j++) //10个数要来回做(10-1)趟次// for(i=1;i<11-j;i++) //第j趟要做(10-j)次比较// if(a[i]>a[i-1]) //每做完一趟,就会将数组中较小的一个数沉淀下来,较大的数不断往上冒// {t=a[i];a[i]=a[i-1];a[i-1]=t;} printf("按从大到小排序输出结果是:\n"); for(i=0;i<10;i++) printf("%-3d",a[i]); printf("\n"); } 双向冒泡排序法: //输入10个整数,按从大到小输出// #include<>

C语言课程设计-数组游戏

C语言课程设计-数组游戏

前言 计算机对社会发展所具有的广泛而深远的影响。人类文化的内涵是随着社会发展而进化的。在现代信息社会中,计算机已不仅仅是一种工具,而且是一种文化。信息技术对人类社会进行的全方位渗透,已经形成一种新的文化形态——信息时代的计算机文化。计算机知识成为当代知识分子结构中不可缺少的重要部分。 设计是一门重要的计算机基础课程,通过学习,学生不仅要掌握高级程序设计语言的知识,更重要的是在实践中逐步掌握程序设计的思想和方法,培养问题求解和语言的应用能力。此次上机实习,不但要使同学们的程序设计能力上一台阶,同时要提高与程序设计和软件开发有关的各种综合能力。 通过这次对C语言的进一步学习,为我们日后学习单片机安打下了基础。在机电一体化日趋明显的当下,掌握一门计算机语言是多么的重要,这必将为我们机电学院学生日后的发展产生深远的影响。 由于课时和上机时间的仓促,所以我对很多内容还来不及消化,对上机演练十分陌生,还有一些知识遗忘,因而这次程序设计的实习实际上是对我的一次集中的强化练习。虽然其时间短,任务重,但我们的确达到了此次课程设计的目的。 本次实习得到樊**老师的指导和帮助,至此表示感谢!

目录 第一部分题目要求 (1) 第二部分程序设计思路 (2) 1.需求分析 2 2.程序总体设计 2 3.程序详细设计 2 第三部分程序代码 (6) 第四部分设计数据和运行结果 (10) 4.1 运用举例的数据进行验证 (10) 4.2 自行设计数据进行验证 (11) 第五部分所遇问题及解决方案 (13) 5.1 数字的输入问题 (13) 5.2 switch和break的用法 (13) 5.3数组排序问题 (14) 5.4 标记数组的使用 (14) 5.5 最后结果的输出 (14) 第六部分总结与感受 (15)

C语言程序设计习题 数 组

数组 1:输入10个整数,分别输出这10个数,再计算并输出它们的和。 2:输入10个不同的整数,将它们存入数组a中,再输入1个数x,然后在数组中查找x。如果找到,则输出相应的下标,否则输出“not found”. 3:输入1个正整数n(1 main() { int sum=0; int a[10]; for(int i=0;i<=9;i++) scanf("%d",&a[i]); for(int i=0;i<=9;i++) { sum+=a[i];printf("%d ",a[i]); } printf("sum=%d\n",sum); } 2: #include main() { int x=0;int a[10]; for(int i=0;i<=9;i++) scanf("%d",&a[i]); printf("please input a number for looking for="); scanf("%d",&x); for(int i=0;i<=9;i++) { if(x==a[i]) { printf("Find the number %d,it's location is no.%d\n",x,i+1);break; } if(i==9) printf("Not find!\n"); }

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