中午好 ,今天是: 2024年11月25日
|
|
|
|
|
|
 
单元练习
第1章 C语言程序设计基本知识
第2章 算法及其描述
第3章 数据类型及表达式
第4章 结构化程序设计
第5章 数组
第6章 函数与预处理
第7章 指针
第8章 结构体、共用体和枚举类型
第9章 位运算
第10章 文件
模拟测试
模拟测试一
模拟测试二
模拟测试三
第5章 数组
发布人:
陈裕雄
一、选择题
1.执行下面的程序段后,变量k中的值为(  )。
   int  k=3, s[2];
   s[0]=k;  k=s[1]*10;
A. 不定值            B. 33           C. 30             D. 10

2.执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是(  )。
      void main()
      {   char  s[100];
          int  c, i;
          scanf("%c",&C); 
          scanf("%d",&i);
          scanf("%s",s);
          printf("%c,%d,%s \n",c,i,s);
      }
A. 123,456,789        B. 1,456,789         C. 1,23,456,789       D. 1,23,456

3.有如下程序:
void main()
{
int n[5]={0,0,0},i,k=2;
for(i=0;i<k;i++) 
         n[i]=n[i]+1;
printf("%d\n",n[k]);
}
该程序的输出结果是(  )。
A. 不确定的值        B. 2               C. 1                 D. 0

4.有如下程序
void 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\n",s);
}
该程序的输出结果是(  )。
A. 14                 B. 15                  C. 16              D. 17

5.以下程序的输出结果是(  )。
void main()

int i, x[3][3]={1,2,3,4,5,6,7,8,9};
      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,9

6.以下程序的输出结果是(  )。
main()
{ char w[][10]={ "ABCD","EFGH","IJKL","MNOP"},k;
     for(k=1;k<3;k++)   
        printf("%s\n",w[k]);
       }
A.  ABCD            B.  ABCD           C.  EFG         D.   EFGH
    FGH                 EFG                JK               IJKL
    KL                  IJ                 O    
                        M

7.下面语句中不正确的是(  )。
A. static int a[5] = {1 , 2 , 3 , 4 , 5 };           B. static int a[5] = {1 , 2 , 3 };
C. static int a[ ] = {0 , 0 , 0 , 0 , 0 };           D. static int a[5] = {0*5};

8.若有说明:int a[ ][4] = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 } , 则数组第一维的大小为(  )。
A.2                 B.3                 C.4                D.不确定的值

9.若定义static int a[2][2] = {1,2,3,4};则a数组的各数组元素分别为(  )。
A. a[0][0] = 1 , a[0][1] = 2 , a[1][0] = 3 , a[1][1] = 4
B. a[0][0] = 1 , a[0][1] = 3 , a[1][0] = 2 , a[1][1] = 4
C. a[0][0] = 4 , a[0][1] = 3 , a[1][0] = 2 , a[1][1] = 1
D. a[0][0] = 4 , a[0][1] = 2 , a[1][0] = 3 , a[1][1] = 1

10.下列语句中,不正确的是(  )。
A. static int a[2][3] = {1 , 2 , 3 , 4 , 5 , 6};
B. static int a[2][3] = {{1}, { 4 , 5}};
C. static int a[ ][3] = {{1}, {4}};
D. static int a[ ][ ] = {{1 , 2 , 3 }, {4 , 5 , 6}};

二、填空题
1. 设有数组定义为: char array [ ]="China"; 则数组 array所占的空间为(           )。
2. main()
   {  char  arr[2][4];
     strcpy(arr,"you");  strcpy(arr[1],"me");
     arr[0][3]='&';
     printf("%s\n",arr);
   }    
程序执行后的输出结果是(           )。
3. main()
{ int i,k,a[10],p[3]:
k=5;
for (i=0;i<10;i++) a[i]=i;
for (i=0;i<3;i++) p[i]=a[i*(i+1)];
for (i=0;i<3;i++) k=k+p[i]*2;
printf("%d\n",k);
}    
程序执行后的输出结果是(           )。
4.main()
{ char ch[7]={ "65ab21"};
      int i,s=0
        for(i=0;ch[i]>='0' && ch[i]<='9';i+=2)
           s=10*s+ch[i]-'0';
printf("%d\n",s);
}   
程序运行的结果是(           )。

三、程序设计题
1.从键盘上输入10个整数,并放入一个一维数组中,然后将其前5个元素与后5个元素对换,即:第1个元素和第10个元素互换,第二个元素和第9个元素互换……分别输出数组原来的值和对换后各元素的值。

2.设有如下两组数组:
A:2,8,7,6,4,28,70,25
B:79,27,32,41,57,66,78,80
编写一个程序,把上面两组数据分别读入两个数组中,然后把两个数组中对应下标的元素相加,即2+79,8+27……并把相应的结果放入第三个数组中,最后输出第三个数组的值。

3.编写程序,把下面的数据输入到一个二维数组中:
25   36   78   13
12   26   88   93
75   18   22   32
56   44   36   58
然后执行以下操作:
a.输出矩阵两条对角线上的数;
b.交换第一行和第三行的位置,然后输出。
答案:
1、选择题
(1)A (2)D (3)D (4)A (5)C     (6)D (7)D (8)B (9)A (10)D   
 
2、填空题
(1) 6个字节
(2) you&me
(3) 21
(4) 6

3、程序设计题
(1)
main()
{
   int a[9],i,temp;
   for(i=0;i<10;i++)
      scanf("%d",&a[i]);
   for(i=0;i<10;i++)
       printf("%d   ",a[i]);
   printf("\n");
   for(i=0;i<5;i++)
   {
       temp=a[i];
       a[i]=a[9-i];
       a[9-i]=temp;
    }
   for(i=0;i<10;i++)
       printf("%d   ",a[i]);
   printf("\n");


(2) 
main()
{
   int a[8]={2,8,7,6,4,28,70,25};
   int b[8]={79,27,32,41,57,66,78,80};
   int c[8],i;
   for(i=0;i<8;i++)
      c[i]=a[i]+b[i];
   for(i=0;i<8;i++)
      printf("%d\t",a[i]);
   printf("\n");
   for(i=0;i<8;i++)
      printf("%d\t",b[i]);
   printf("\n");
   for(i=0;i<8;i++)
      printf("%d\t",c[i]);
   printf("\n");


(3) 
main()
{
   int a[4][4]={{25,36,78,13},{12,26,88,93},{75,18,22,32},{56,44,36,58}};
   int dui1=0,dui2=0,i,j,temp;
   for(i=0;i<4;i++)
     for(j=0;j<4;j++)
     {
        if(i==j)
            dui1+=a[i][j];
        if(i+j==3)
            dui2+=a[i][j];
     }
   for(i=0;i<4;i++)
   {
       for(j=0;j<4;j++)
           printf("%d\t",a[i][j]);
       printf("\n");
  }
  printf("dui1=%d\tdui2=%d\n",dui1,dui2);
  for(i=0;i<4;i++)
  {
     temp=a[0][i];
     a[0][i]=a[2][i];
     a[2][i]=temp;
  }
  for(i=0;i<4;i++)
  {
   for(j=0;j<4;j++)
      printf("%d\t",a[i][j]);
   printf("\n");
  }

 

Copyright©2012,All Rights Reserved
版权所有:广东南方职业学院计算机系 设计:陈裕雄