您的位置:首页 > 职场人生

c 语言的例题 数组的 经典题

2014-02-28 13:34 246 查看
数组的应用:

1.依次按照下面要求完成操作:

声明一个包含6个元素的int数组chuck,并将它初始化为从2开始的连续6个偶数。

编写语句,将chuck数组的第一个元素和最后一个元素的和赋值给变量even,并将even输出。

编写语句,显示chuck数组中第3个元素的值。

编写语句,将chuck数组中第5个元素的值改为100。

编写语句,依次显示chuck数组中所有的元素,元素间用逗号隔开。

倒序输出chuck数组中所有的元素。

另外定义一个6个元素的int数组dipsea(要求在定义时所有元素初始化为0),将chuck数组的内容赋值给

dipsea数组,然后显示dipsea数组所有元素的值,元素间用逗号隔开。

#include <stdio.h>

#include <stdlib.h>

int main(void) {

int chuck[6] = { 2, 4, 6, 8, 10, 12 };

  int i = 0;

  int even;

  chuck[4] = 100;

  printf("6个偶数元素为:\n");

  for (i = 0; i < 6; i++) {

  printf("%d,", chuck[i]);

  }

  printf("\n");

  printf("第一个元素和最后一个元素的和为:\n");

  even = chuck[0] + chuck[5];

  printf("%d\n", even);

  printf("chuck数组中第3个元素的值为:\n");

  printf("%d\n", chuck[2]);

  printf("chuck数组中第5个元素的值为:\n");

  printf("%d\n", chuck[4]);

  printf("倒序输出为:\n");

  for (i = 5; i >= 0; i--) {

  printf("%d ", chuck[i]);

  }

  printf("\n");

  int dipsea[6] = { 0, 0, 0, 0, 0, 0 };

  printf("dipsea数组所有元素的值为:\n");

  for (i = 0; i < 6; i++) {

  dipsea[i] = chuck[i];

  printf("%d ", dipsea[i]);

  }

return EXIT_SUCCESS;

}

2.编写一个程序,从键盘上接收10个整数,将它们保存到一个数组里。在输入完成后输出用户刚刚输入的

10个整数。

从键盘上再接收一个整数,将它保存到int变量number里。

从刚才第一次接收的10个整数中,查找是否有整数number,如果有则输出它在数组中的位置,否则输出没

有找到(没有找到是指数组中没有一个元素的值与number值相等,则输出没有找到)。

#include <stdio.h>

#include <stdlib.h>

int main(void) {

int arr[10];

   int i,number;

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

   fflush(stdout);

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

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

   }

   printf("数组元素为:\n");

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

   printf("%d ",arr[i]);

   }

   printf("\n");

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

    fflush(stdout);

    scanf("%d", &number);

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

     if (arr[i] == number)

     break;

     if (i >= 10){

     printf("没有找到!\n");

     }

     else{

     printf("%d在数组中得位置是:arr[%d]!", arr[i], i);

     }

return EXIT_SUCCESS;

}

3.定义一个数组days,将其初始化为今年每月的天数,编写一段程序,将每月的天数打印出来。打印形式

如下: 

   Month 1 has 31days.

#include <stdio.h>

#include <stdlib.h>

#define MONTHS 12

int main(void) {

int days[MONTHS] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

 int i;

 for (i = 0; i < MONTHS; i++) {

  printf("MONTH %d has %d days.\n", i + 1, days[i]);

 }

return EXIT_SUCCESS;

}

4.编写一段程序,要求定义一个含有5个元素的数组,实现数组接收键盘输入的数字,输入完毕后打印数组

元素,并比较得出数组中元素的最大值和最小值,并输出。

#include <stdio.h>

#include <stdlib.h>

int main(void) {

int arr[5];

  int i,max,min;

  printf("请输入五个整数:");

  fflush(stdout);

  for(i=0;i<5;i++){

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

  }

  printf("数组元素为:\n");

  for(i=0;i<5;i++){

  printf("%d ",arr[i]);

  }

  max=min=arr[0];

  for(i=0;i<=4;i++){

  if(max<arr[i]){

  max=arr[i];

  }else if(min>arr[i]){

  min=arr[i];

  }

  }

  printf("\n");

  printf("最大值为:%d\n最小值为:%d\n",max,min);

return EXIT_SUCCESS;

}

5.定义一个由整数组成的数组,求出其中奇数的个数和偶数的个数,并打印。

#include <stdio.h>

#include <stdlib.h>

int main(void) {

int arr[]={1,2,3,4,5,6,7};

int i,js=0,os=0;

int len =sizeof(arr)/sizeof(int);

printf("数组元素为:\n");

for(i=0;i<len;i++){

 if(arr[i]%2==0){

  os+=1;

 }else{

  js+=1;

 }

 printf("%d ",arr[i]);

}

printf("\n");

printf("偶数个数为:%d\n奇数个数为:%d",os,js);

return EXIT_SUCCESS;

}

6.定义一个int型的一维数组,包含10个元素,分别赋值为1~10, 然后将数组中的元素都向前移一个位置

,即a[0]=a[1],a[1]=a[2],…最后一个元素的值是原来第一个元素的值,然后输出这个数组。

#include <stdio.h>

#include <stdlib.h>

int main(void) {

int arr[]={1,2,3,4,5,6,7,8,9,10};

  int i,temp;

  printf("原数组为:\n");

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

  printf("%d ",arr[i]);

  }

  printf("\n");

  temp=arr[0];

  for(i=0;i<9;i++){

  arr[i]=arr[i+1];

  }

  arr[i]=temp;

  printf("向前移动后的数组为:\n");

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

  printf("%d ",arr[i]);

  }

return EXIT_SUCCESS;

}

7.有一个3行4列的数组,编写一段程序,求出其中的最大值,以及最大值所在的行号和列号。

#include <stdio.h>

#include <stdlib.h>

int main(void) {

int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

  int i,j,c,d,max;

  max=a[0][0];

  //循环行数

  for(i=0;i<=2;i++){

  //循环列数

  for(j=0;j<=3;j++){

  if(max<=a[i][j]){

  max=a[i][j];

  c=i;

  d=j;

  }

  }

  }

  printf("最大数为:%d\n行号为:%d\n列号为:%d",max,c+1,d+1);//下标从0开始

 

return EXIT_SUCCESS;

}

8.定义一个包含有5个元素的int数组,并且初始化为0;

从键盘上接收5个整数,依次保存到int数组中。

要求你想办法,把数组的元素值倒序过来存储。

#include <stdio.h>

#include <stdlib.h>

int main(void) {

int arr[5]={0,0,0,0,0};

  int i;

  printf("请输入五个整数:");

  fflush(stdout);

  for(i=0;i<5;i++){

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

  }

  printf("五个整数逆序输出为:\n");

  for(i=4;i>=0;i--){

  printf("%d ",arr[i]);

  }

return EXIT_SUCCESS;

}

9.

打印一个十行的杨辉三角,打印效果如图所示:

 

 

#include <stdio.h>

#include <stdlib.h>

int main(void) {

 int i, j, a[11][11];

 for (i = 1; i < 11; i++) {/*for循环i的范围从1到10*/

  a[i][i] = 1;/*对角线元素全为1*/

  a[i][1] = 1; /*每行第一列元素全为1*/ }

 printf("打印图形如下:\n");

 for (i = 3; i < 11; i++)/*for循环范围从第3行开始到第10行*/

  for (j = 2; j <= i - 1; j++)/*for循环范围从第2列开始到该行行数减一列为止*/

   a[i][j] = a[i - 1][j - 1] + a[i - 1][j];/*第i行j列等于第i-1行j-1列的

值加上第i-1行j列的值*/

 for (i = 1; i < 11; i++) {

  for (j = 1; j <= i; j++)

   printf("%-5d", a[i][j]);/*通过上面两次for循环将二维数组a中元素输出*/

   printf("\n");/*每输出完一行进行一次换行*/

 }

return EXIT_SUCCESS;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sizeof 面试 printf c