C语言上机题目——数组程序设计

合集下载

C语言专题编程练习——数组

C语言专题编程练习——数组

编程练习4 ——数组1. 随机数数组输出。

要求:产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。

输出结果:2. 求数组最大值、最小值、总和、平均数。

要求:产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。

求该数组的最大值、最小值、总和和平均值并输出。

输出结果:3. 冒泡法排序。

要求:产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。

按照升序排列并输出。

输出结果:4. 选择法排序。

输出结果:同上5. 比较法排序。

输出结果:同上6. 数组逆序输出要求:产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。

编程将逆序数组输出。

输出结果:7. 数组插数。

要求:产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。

按照升序排列并输出。

再输入一个数,按照原来的规律将其插入并输出。

输出结果:8. 用数组输出Fibonacci数列的前40项。

要求:每行输出5个元素,每个元素10位。

输出结果:(略)9. 用筛选法求100以内的素数。

输出结果:10. 数组查找。

要求:产生一个由15个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。

按照升序排列并输出。

再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,输出找不到。

11. 二维数组行列互换。

要求:将一个二维数组(3行4列)的行和列互换(转置),存到另一个二维数组(4行3列)中并输出。

输出结果:12. 编程输出杨辉三角(要求输出10行)。

输出结果:13. 编程输入5阶魔方阵。

输出结果:14. 找出一个二维数组中的鞍点。

要求:即该位置上的元素在该行最大,在该列最小。

可能没有鞍点。

输出结果:15. 输入一行字符,统计大写字母、小写字母、数字、空格以及其他字符个数。

输出结果:16. 编写程序实现strcat函数功能。

输出结果:17. 编写程序实现strcpy函数功能。

C语言程序设计(第3版)何钦铭 颜 晖 第7章 数组

C语言程序设计(第3版)何钦铭 颜 晖 第7章  数组

第7章数组【练习7-1】将例7—3 程序中的break 语句去掉,输出结果有变化吗?假设输入数据不变,输出什么?解答:当去掉break 语句后,一旦找到数据将不跳出循环,而是继续往下找值为x 的元素,因此程序输出会有变化。

当输入数据仍为2 9 8 1 9 时,输出将是index is 1 index is 4。

【练习7—2】将数组中的数逆序存放.输入一个正整数n(1<n<=10),再输入n个整数,存入数组a中,输出最大值及其对应的最小下标,下标从0开始.试编写相应程序。

解答:#include<stdio。

h〉int main(void){int i,n,temp;int a[10];printf("Input n:");scanf(”%d",&n);printf(”Input %d integer:",n);for(i=0;i<n;i++)scanf(”%d”,&a[i]);printf(”After reversed:");for(i=0;i〈n/2;i++){temp=a[i];a[i]=a[n—1—i];a[n-1—i]=temp;}for(i=0;i〈n;i++)printf("%d ”,a[i]);return 0;}【练习7-3】求最大值及其下标.输入一个正整数n(1〈n<=10),再输入n个整数,存入数组a中,将先数组a中的这n个数逆序存放,在按顺序输出数组a中的n各元素.试编写相应程序.解答:#include〈stdio.h>int main(void){int i,index,n;int a[10];printf("Enter n:”);scanf(”%d",&n);printf(”Enter %d integrs:”,n);for(i=0;i〈n;i++)scanf("%d",&a[i]);for(i=n—1;i〉=0;i++)printf("%d ”,a[i]);return 0;}【练习7-4】找出不是两个数组共有的元素。

C语言数组编程题及解答

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以内的所有完数。

程序源代码:#include <stdio.h>int main(){int k[10];int i,j,n,s;for(j=2;j<1000;j++){n=-1;s=j;for(i=1;i<j;i++){if ((j%i)==0){n++;s=s-i;k[n]=i;}}if(s==0) //说明是完数{printf("%d is a wanshu:",j);for(i=0;i<=n;i++)printf("%d ",k[i]);printf("\n");}}return 1;}【程序3】题目:用选择法对10个数进行从大到小排序1.程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,下次类推,即用第二个元素与后8个进行比较,并进行交换。

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

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

数组部分必须会编写的程序(参考答案)1、使用选择法、冒泡法对10个数进行排序,并输出排序前后的数列。

//选择法#include<stdio.h>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<stdio.h>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;j<i;j++)if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;}}printf(“Aftere sorted:”);for(i=0;i<10;i++){printf("%4d",a[i]);}prtintf(“\n”);}2、已知数组a中的元素已按由小到大顺序排列,以下程序的功能是将输入的一个数插入数组a中,插入后,数组a中的元素仍然由小到大顺序排列。

C语言-数组-实验题目及答案

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位评委参与评分工作。

c语言数组编程题目

c语言数组编程题目

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语言程序设计第六章数组习题及答案

1.以下对一维整型数组a的定义,正确的是_。

(2分)A.int a(10) ;B.int n = 10 , a[n] ;C.int n ;scanf( "%d" , &n ) ;int a[n] ;D.int a[10] ;2.若有定义:int a[10] ;,则对a数组元素的正确引用是_。

(2分)A.a[10]B.a[3.5]C.a(5)D.a[10-10]3.对定义int a[10] = {6 , 7 , 8 , 9 , 10} ; 的正确理解是_。

(2分)A.将5个初值依次赋给a[1]--a[5]B.将5个初值依次赋给a[0]--a[4]C.将5个初值依次赋给a[6]--a[10]D.因为数组长度与初值个数不相同,所以此语句不正确4..若有定义:int a[3][4]; , 则对a数组元素的正确引用是_。

(2分)A.a[3][4]B.a[1,3]C.a[1+1][0]D.a(2)(1)5.以下对二维数组a初始化正确的语句是_。

(2分)A.int a[2][ ]={{0 , 1 , 2}, {3 , 4 , 5}};B.int a[ ][3]={{0, 1, 2}, {3, 4, 5}};C.int a[2][4]={{0, 1 , 2}, {3 , 4}, {5}};D.int a[ ][3]={{0, 1, 2}, { }, {3, 4}};6.对二维数组a进行如下初始化:int a[ ][3]={0 , 1 , 2 , 3 , 4 , 5};则a[1][1]的值是_。

(2分)A.0B.3C.4D.17.下面程序段的运行结果是_。

(2分)#include<stdio.h>int main( ){int i , x[3][3] = {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9} ;for( i = 0 ; i < 3 ; i++ )printf( "%2d" , x[i][2-i] ) ;return 0 ;}A.1 5 9B.1 4 7C.3 5 7D.3 6 98.以下对数组s的初始化,错误的是_。

C语言程序设计数组

C语言程序设计数组
第七章 数组
课程名称:C语言程序设计 课型与教法:讲授,经过程序扩展,进行对比学习 课时:2课时 讲课题目:
第7章 数组 基本教材:C语言程序设计(高等教育出版社)廖雷主编 教学目旳与要求:经过本章旳学习使学生了解数组旳意义和 基本概念,掌握数组旳定义和元素旳引用,掌握数组在实际 问题处理中旳应用。 教学难点:二维数组概念旳了解 教学要点:数组旳定义和元素旳引用、数据旳排序
例 int data[5a][;1]=7p8r.0in; tf(“%d”,a);
()
data[5]必=1p须0ri;nt/f/f(没o“r%p有(jrl=fi错n\n0t”;f误(j,<a“提[%120]醒d);;\j,t+使”,+a用)[j]时);要注意 () 5
第七章 数组
一维数组
一维数组旳初始化
int a[N]={7,3,2,5,9,1,6,10,4,8}; for(i=0;i<N-1;i++)
for(j=N-1;j>i;j--) if(a[j-1]>a[j]) { k=a[j-1]; a[j-1]=a[j]; a[j]=k; }
printf(“\n”); for(i=0;i<N;i++)
❖数组元素旳存储顺序
原二因维:数内组存例:是按i一nt行维a[序3旳]优[4]先; float b[2][5];
元素个数=行数*列数
例:int a[3]i[n2t]a[3,4];
a[0][0] a[0][1]
0 () a[0][0]
1
a[0][1]
2
a[1][0]
a[1][0] a[1][1] a[2][0] a[2][1]
一维数组旳引用

c语言一维数组上机考试题目

c语言一维数组上机考试题目

c语言一维数组上机考试题目
以下是一些关于C语言一维数组的常见上机考试题目:
1. 编写一个程序,输入一个整数n,求出1到n之间所有偶数的和。

2. 编写一个程序,输入一个整数n,求出1到n之间所有数字的阶乘之和。

3. 编写一个程序,输入一个整数n,求出1到n之间所有数字的立方之和。

4. 编写一个程序,输入一个整数n,求出1到n之间所有数字的平方之和。

5. 编写一个程序,输入一个整数n,求出1到n之间所有数字的倒数之和。

6. 编写一个程序,输入一个整数n,求出1到n之间所有数字的绝对值之和。

7. 编写一个程序,输入一个整数n,求出1到n之间所有数字的因子之和。

8. 编写一个程序,输入一个整数n,求出1到n之间所有数字的质因子之和。

9. 编写一个程序,输入一个整数n,求出1到n之间所有数字的奇数因子之和。

10. 编写一个程序,输入一个整数n,求出1到n之间所有数字的因子个数之和。

以上题目只是示例,实际上关于C语言一维数组的上机考试题目还有很多其他类型。

考生应该掌握一维数组的基本概念和操作,并且能够灵活运用数组来解决问题。

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

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)培养学生的分析、思考能力,提高解决问题的能力。

C语言程序设计ppt数组

C语言程序设计ppt数组
存储类型阐明符:extern、static 类型修饰符:const、volatile 数组名:是一种标识符,是一种地址常量,用以表
达数组中打头元素旳地址
2024/10/10
6
8.2.1 一维数组旳申明
例8.1 具有基本数据类型旳一维数组旳申明
#define SIZE 10 int array[5]; double d[5],e[SIZE]; char name[SIZE*5];
13. double even;
21. course_even[i]=course_su
/*分别为全部课程旳总分、平均分 m[i]/5.0;
*/
22. sum+=course_sum[i];
14. int i;
23.
} /* 计算各门课平总分 */
24. even=sum/(3.0*SIZE);
2024/10/10
2024/10/10
17
例8.10
8. int course_sum[3]={0,0,0}; 15. for(i=0;i<5;i++){
9. double course_even[3];
16. course_sum[0]+=math[i];
/组**分/ 别为各门课程总分、平均分数17. course_sum[1]+=physics[i];
用若干个数字序号(下标)来区别各数组元素
例如定义float score[30],可表述30位学生成绩 用数组具有什么好处?
2024/10/10
3
8.1 数组概述
问题
计算全班30位同学某门课程旳平均成绩
处理措施
设置30个float型变量来统计成绩 设置一种有30个float型元素旳数组来统计成绩

C语言上机实验例题

C语言上机实验例题

实验一 C语言的运行环境、运行过程和表达式的使用一、目的与要求1、了解Dos、Windows环境下C语言的运行环境,了解所用的计算机系统的基本操作方法,学会独立使用该系统。

2、了解在该系统上如何编辑、编译、连接和运行一个C程序。

3、通过运行简单的C程序,初步了解C源程序的特点。

4、掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符。

5、学会使用C的有关算术运算符,以及包含这些运算符的表达式二、实验例题【例1】编程实现在屏幕上显示如下三行文字Hello, world !Wolcome to the C language world!Everyone has been waiting for.在Turbo C的集成环境下,键入如下源文件。

敲Alt+F组合键打开File菜单,File菜单中Write to或save as选项可将默认noname.c文件名改为任意文件名。

程序example.c如下:main(){printf("Hello,World!\n");printf("Wolcome to the C language world!\n");printf("Everyone has been waiting for.\n");}然后用Ctrl+F9执行example.c,用Alt+F5查看结果,即在屏幕上显示题目要求的三行文字。

按回车键重新返回Turbo C的编辑环境。

注意,在运行程序之前最好先存盘。

【例2】输入并运行程序,写出运行结果。

main(){int a,b,sum;a=123;b=456;sum=a+b;printf(“sum is %d\n”,sum);}运行方法同上,最后结果为:sum is 579。

【例3】输入并运行程序,写出运行结果。

main(){int a,b,c;int max(int,int);scanf(“%d,%d”,&a,&b);c=max(a,b);printf(“max=%d”,c);}int max(int x,int y){int z;if (x>y) z=x;else z=y;return(z);}这个程序的功能是对于任意输入的两个整数,输出较大的那个数。

c语言课程设计数组

c语言课程设计数组

c语言课程设计数组一、教学目标本章节的教学目标是使学生掌握C语言中数组的概念、声明、初始化、访问以及数组排序等基本操作。

1.理解数组的概念和作用。

2.掌握数组的声明和初始化。

3.学会使用循环语句访问数组元素。

4.掌握数组的排序算法。

5.能够正确声明和使用一维数组。

6.能够对一维数组进行排序。

7.能够使用循环语句遍历数组并打印元素。

情感态度价值观目标:1.培养学生的逻辑思维能力。

2.培养学生的问题解决能力。

3.培养学生的团队合作意识。

二、教学内容本章节的教学内容主要包括数组的概念、声明、初始化、访问以及数组排序。

1.数组的概念和作用。

2.数组的声明和初始化,包括一维数组和多维数组。

3.数组的访问,包括使用循环语句遍历数组并打印元素。

4.数组的排序算法,包括冒泡排序和选择排序。

三、教学方法为了达到本章节的教学目标,将采用以下教学方法:1.讲授法:用于讲解数组的概念、声明、初始化、访问以及数组排序的基本原理。

2.案例分析法:通过分析实际案例,让学生更好地理解数组的应用。

3.实验法:让学生通过编写程序实践数组的操作,提高学生的实际编程能力。

四、教学资源为了支持本章节的教学内容和教学方法的实施,将准备以下教学资源:1.教材:《C语言程序设计》。

2.参考书:《C语言编程思想》。

3.多媒体资料:PPT课件、视频教程。

4.实验设备:计算机、编程环境。

五、教学评估为了全面、公正地评估学生在数组学习方面的掌握情况,将采用以下评估方式:1.平时表现:通过课堂提问、讨论和实验操作等环节,评估学生的参与度和理解程度。

2.作业:布置与数组相关的编程作业,评估学生对数组操作的掌握情况。

3.考试:包括期中考试和期末考试,题目将涵盖数组的概念、声明、初始化、访问以及数组排序等知识点。

4.平时表现:积极参与课堂活动,回答问题准确,讨论中能提出自己的见解。

5.作业:编程作业要求正确实现数组相关功能,代码规范,注释清晰。

6.考试:满分100分,60分为及格。

C语言上机程序设计题库及答案

C语言上机程序设计题库及答案

C语言上机程序设计题库【程序设计】功能:根据整型形参m,计算如下公式的值:y=sin(m)*10。

【参考代码】double y=0;y=sin(m)*10;return(y);功能:若x、y为奇数,求x到y之间的奇数和;若x、y为偶数,则求x到y之间的偶数和。

【参考代码】int i,s=0;for(i=x;i<=y;i+=2)s=s+i;return s;功能:编写程序,实现矩阵(3行3列)的转置(即行列互换)【参考代码】int i,j,t;for(i=0; i < 3; i++)for(j=0; j < i; j++){ t=array[i][j];array[i][j]=array[j][i];array[j][i]=t; }功能:求一个四位数的各位数字的立方和。

【参考代码】int d,s=0;while (n>0){d=n%10;s+=d*d*d;n/=10;}return s;功能:请编一个函数void fun(int tt[M][N],int pp[N]), tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。

二维数组中的数已在主函数中赋予。

【参考代码】int i,j;for(j=0;j<N;j++){pp[j]=tt[0][j];for(i=1;i<M;i++)if(tt[i][j]<pp[j])pp[j]=tt[i][j];}功能:求一组数中大于平均值的数的个数。

【参考代码】int i,k=0;float s=0,ave;for(i=0;i<n;i++)s+=a[i];ave=s/n;printf("%f ",ave);for(i=0;i<n;i++)if(a[i]>ave)k++;return k;题目:分别统计字符串中字母、数字、空格和其他字符出现的次数(字符长度小于80)。

11《C语言程序设计》教案第四章数组(1)—一维数组

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语言程序设计习题及解答ch9数组

二级c语言程序设计习题及解答ch9数组

第九章数组一、选择题[9.1] 假设已定义:int a[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0<=i<=9,那么对a数组元素的引用不正确的选项是A)a[p-a] B) *(&a[i]) C) p[i] D) *(*(a+i))【解析】A:p开场是数组a首地址,只要p++那么再减去a的首地址a[p-a]就能取到所有元素,B:&a[i]循环取其地址,*(&a[i]) 是该地址中所存储的元素C:p就是指针变量,相当于a[i],D:*(a+i) 那么正确[9.2] 以下程序段数组所有元素输入数据,应在下划线填入的是A) a+(i++) B) &a[i+1] C) a+i D) &a[++i]main(){ int a[10],i=0;while(i<10) scanf("%d",_);}【解析】因为要遍历,所以排除B.C,因为D先加1再取值,丢了a[0][9.3] 以下程序的输出结果是A) 3 B) 4 C) 1 D) 2main(){ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf("%d\n",*(p+2)); }【解析】*p=a;p指向首地址,*(p+2))往后移动两个元素,指向3[9.4] 以下程序的输出结果是A) 不确定的值 B) 3 C) 2 D) 1main(){ int n[2]={0},i,j,k=2;for(i=0;i<k;i++)for(j=0;j<k;j++)n[j]=n[i]+1;printf("%d\n",n[k]);}[9.5] 以下程序的输出结果是A)17 B)18 C)19 D)20main(){ int a[]={2,4,6,8,10},y=1,x,*p;p=&a[1];for(x=0;x<3;x++) y+=*(p+x);printf("%d\n",y);}【解析】p=&a[1]那么p指向元素为4,y+=*(p+x);相当于y=1+4+6+8=19[9.6] 以下程序的输出结果是A) 6 B) 8 C) 4 D) 2main(){ int a[]={2,4,6,8},*p=a,i;for(i=0;i<4;i++) a[i]=*p++;printf("%d\n",a[2]);}【解析】p=a,相当于重新把a中的容赋给a本身,所以a[2]=6[9.7] 以下程序的输出结果是A) 720 B) 120 C) 24 D) 6f(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);}【解析】调用x=f(a,3);for循环4次,将前四个元素相乘,即得r=2*3*4*5;[9.8] 以下程序中假设第一个printf语句输出的是194,那么第二个printf语句的输出结果是A) 212 B) 204 C) 1a4 D) 1a6 12main(){ int a[]={1,2,3,4,5,6,7,8,9,0},*p;p=a;printf("%x\n",p);printf("%x\n",p+9); }【解析】因为开场p的地址为194,p+9是指指针向后移动9个元素,而不是9个字节,每个int占2个字节,所以共移动18个字节,1个字节占一个存储单位,%x\n"是16进制,将18转化成16进制是12,所以194+12=2a6[9.9] 以下程序的输出结果是A) 0987654321 B) 4321098765 C) 5678901234 D) 0987651234fun(int *s,int n1,int n2){ int i,j,t;i=n1; j=n2;while(i<j){ t=*(s+i); *(s+i)=*(s+j); *(s+j)=t;i++; j--; }}main(){ int a[10]={1,2,3,4,5,6,7,8,9,0},i,*p=a;fun(p,0,3); fun(p,4,9); fun(p,0,9);for(i=0;i<10;i++) printf("%d",*(a+i));}【解析】为了使大家清晰地看出fun(int *s,int n1,int n2)的作用,我自己完善了程序如下:#include <stdio.h>#include <stdlib.h>fun(int *s,int n1,int n2){ int i,j,t;i=n1; j=n2;while(i<j){ t=*(s+i); *(s+i)=*(s+j); *(s+j)=t;i++; j--; }}main(){ int a[10]={1,2,3,4,5,6,7,8,9,0},i,*p=a;fun(p,0,3);for(i=0;i<10;i++) printf("%d",*(a+i)); printf("\n");fun(p,4,9);for(i=0;i<10;i++) printf("%d",*(a+i));printf("\n");fun(p,0,9);for(i=0;i<10;i++) printf("%d",*(a+i));printf("\n");}结果如下:其实,fun(p,0,3);就是将a中的前4个元素倒序,fun(p,4,9); 就是将a中的第5个到第10个倒序,最后fun(p,0,9);全部元素倒序。

C语言--数组上机题目

C语言--数组上机题目

验证传值和传地址的区别:
程序一:传值
void swap(int a,int b)
{ int t;
t=a; a=b; b=t;
}
main()
{ int x=10,y=20;
printf(“%d,%d\n”,x,y);
swap(x,y);
printf(“%d,%d\n”,x,y);
}
程序二:传地址
void swap(int *a,int *b)
{ int t;
t=*a; *a=*b; *b=t;
}
main()
{ int x=10,y=20;
printf(“%d,%d\n”,x,y);
swap(&x,&y);
printf(“%d,%d\n”,x,y);
}
上机练习1、定义一个数组,存放着10个整型数,编程对这10个数进行排序,输出排序结果。

上机练习2:有10个学生的成绩存在数组中,请统计大于等于平均成绩的人数。

上机练习3:有10个学生的成绩存在数组中,请统计最高分,最低分,并将最高分和最低分学生的下标输出到屏幕上。

上机练习4:现在一个数组存放10个整型数据(可以有相同),要求用户输入一个数,然后把数组中与其输入相同的数删除。

c语言程序设计题目及答案

c语言程序设计题目及答案
则返回值为 1,否则为 0。调 用该函数求出 15~300 之
间能同时被 3 和 5 整除的数的 个数。 #include <stdio.h> void wwjt();
int sum(int n) { if(n%3==0&&n%5==0) return(1); return(0);} 第 10 题 题号:16 功能:编写函数 fun 求 1!+2!+3!+ …… +n!的和,在 main 函
近似值例如:当误差为 0.0001 时,函数值为 0.618056。 #include <stdio.h> #include "math.h" void wwjt();
float fun() {
float f1=1,f2=1,f3; float r1=2,r2; do {r2=r1; r1=f1/f2; f3=f1+f2; f1=f2; f2=f3; }while(fabs(r1-r2)>1e-4); return r1; } 第 7 题 题号:394 功能:产生 20 个[30,120]上的随机 整数放入二维数组
功能:请编一个函数 void fun(int tt[M][N],int pp[N]),
tt 指向一个 M 行 N 列的二维数 组,求出二维数组每列
中最大元素,并依次放入 pp 所指一维数组中。二维
数组中的数已在主函数中赋予。
#include<conio.h> #include<stdio.h> #define M 3 #define N 4 void wwjt();
}
第 8 题 题号:337 功能:将两个两位数的正整数 a、b 合并形成一个整数放在

C语言程序设计实验数组

C语言程序设计实验数组

实验4:数组一、实验目的1.掌握一维数组和二维数组的定义、赋值和输入输出的方法;2.掌握字符数组和字符串函数的使用;3.掌握与数组有关的算法(特别是排序算法)。

二、实验内容编写程序,实现如下功能:1.对N个自然数进行从大到小排序(N可定义为任意大于1的常数,如:#define N 15),并找出其中的质数。

质数(prime number)又称素数,定义为在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。

2.打印杨辉三角(打印N行,N为6到10间的常数)11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1::::::并通过程序计算:第10行第5列是多少?第50行第25列呢?(提示:无需输出所有行,将要求计算的结果用printf函数打印到屏幕上即可)3.有一行电文,已按下面规律译成密码:A→Z a→zB→Y b→yC→X c→x: :即第1个字母变成第26个字母,第i个字母变成第(26-i+1)个字母;非字母字符不变。

要求编程将密码译回原文,并打印出密码和原文。

(注意:为提高程序可读性,不要直接使用字符的ASCII码。

)三、实验结果记录第1题上机调试后的最终代码及上机调试结果(截图):程序代码:程序结果:第2题上机调试后的最终代码及上机调试结果(截图):程序代码:程序结果:第3题上机调试后的最终代码及上机调试结果(截图):程序代码:程序结果:四、实验小结:经过本次实验我对一维数组以及二维数组有了更加深刻的掌握,加深了我对字符串数组的认识,除此之外,我学会了在数据较大时用double防止数据溢出,同时更加熟悉了选择排序和冒泡排序的算法。

C语言上机操作指导实验五数组(1) 实验八函数(2)

C语言上机操作指导实验五数组(1) 实验八函数(2)

第 4页,共 14页
《C 程序设计》实验及课程设计项目报告
下标= a 2
0
1 8
2 16
3 14
4 1 10
5 8
6
7 16
8 4
9 20
10 6
部分源代码: k=0; if ( a[k]<a[1] ) 真 k=1; 执行 k=0; if ( a[k]<a[2] ) 假 for ( i=1; i<10; i++ ) k=2; 不执行 if ( a[k]<a[i] ) if ( a[k]<a[3] ) 真 k=i; k=3; 执行 相关知识:①删除数组元素的概念;②移动数组元素的算法;③求最大值位置的算法。 7. 以下 sy30.c 程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输 出低于平均分的学生成绩,用输入负数结束输入。请填空: #include <stdio.h> void main( ) { float x[1000], sum=0.0, ave, a; int n=0, i; printf ("Enter mark : \n") ; scanf("%f", &a); while (a>=0.0 && n<1000) { sum+= ; x[n]= ; n++; scanf("%f", &a); } ave= ; printf ("Output : \n"); printf ("ave = %f\n", ave); for (i=0; i<n; i++) if ( ) printf("%f\n", x[i]); } 8.打印如下杨辉三角形 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 编程点拨: 杨辉三角形有如下特点: 1 只有下半三角形有确定的值; 2 第一列和对角线上的元素值都是 1; 3 其它元素值均是前一行同一列元素与前一行前一列元素之和。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程实验报告
课程名称
计算机程序设计
班级
实验日期
姓名
学号
实验成绩
实验名称
实验4:数组程序设计







1.掌握一维数组和二维数组的定义、赋值和输入输出的方法。
2.掌握字符数组和字符串函数的使用。
3.掌握与数组有关的算法(特别是排序算法)。
实验
环境
Visual C++ 6.0




1.输入10个整数,另输入一整数x,输入该整数x在该组中出现的次数。
printf("%c",a[i]);
i++;
}
printf("\n");
return 0;
}
4.
#include<stdio.h>
#define N 3
int main()
{
int a[N][N];
int i,j,max=0,x,y;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
输入:10 20 20 10 30 30 30 15 20 15
20
输出:20出现3次
2.输入一组整数,输入0结束,统计正数和负数的个数分别为多少。假设这组数不超过20个。
输入:1 2 -3 4 -5 6 7 -8 -9 0
输出:5: 4
输入:1 2 3 4 5 6 7 8 9 0
输出:9: 0
3.去掉一句英文句子中的所有空格。
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
if(max<a[i][j])
max=a[i][j];
x=i;
y=j;
}
printf("%d:%d:%d\n",max,x,y);
return 0;
}


1.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[10],b,i,j=0;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
scanf("%d",&b);
for(i=0;i<10;i++)
if(a[i]==b)
j++;
else if(a[i]<0) k++;
i++;
}
printf("%d:%d\n",j,k);
return 0;
}
3.
#include<stdio.h>
#define N 200
int main()
{
char a[N];
int i=0;
gets(a);
while(a[i]!='\0')
{
if(a[i]!=' ')
printf("%d出现%d次\n",b,j);
return 0;
}
2.
#include<stdio.h>
int main()
{
int a[20],i=0,j=0,k=0;
do
{
scanf("%d",&a[i]);
i++;
}while(a[i-1]!=0);
i=0;
while(a[i]!=0)
{
if(a[i]>0) j++;
输入:I am a student.
输出:Iamastudent.
4.找出一个二维数组中,最大的数是多少,其坐标是多少。按照(值:行号,列号)输出。
输入:4 7 6
3 2 1
5 8 9
输出
















对数组的定义,必须充分考虑到数组的长度。
二维数组输出时应注意输出时的格式。
相关文档
最新文档