一、 填空题
1. 在C语言中,二维数组元素在内存中的存放顺序是      c语言二维数组表示方法 。
2. 定义了二维数组:int array[4][5],该数组所占的内存空间为______字节。
3. 假设有整型数组array[100][100],其中第66行,第66列元素array[66][66]在数组中排列的位置(位置从1开始算起) 6566    。
4. 若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[2][1]得到的初值是________。
5. 下面的程序段的运行结果是____he_____
  char x[ ]=the teacher;
  int i =0;
  while(x[++i] != ’\0’)
      if(x[i-1] = = ‘t’)  printf(%c,x[i]);
二、单项选择题
1. 下面程序( B )(每行程序前面的数字表示行号)。
1 main( )
2 {  float a[10]={0.0};
3     int i;
4     for(i=0;i<3;i++) scanf(%d,&a[i]);
5     for(i=1;i<10;i++) a[0]=a[0]+a[i];
6     printf(%f\n,a[0]);
7 }
A)没有错误            B)第2行有错误
C)第4行有错误        D)第6行有错误
2. 下面程序中有错误的行是( D )(每行程序前面的数字表示行号)。
1 main( )
2 {
3  int a[3]={1};
4  int i;
5  scanf(“%d”,&a);
6  for(i=1;i<3;i++)  a[0]=a[0]+a[i];
7  printf(“a[0]=%d\n”,a[0]);
}
A. 3        B. 6            C. 7            D. 5
3. 以下不能对二维数组a进行正确初始化的语句是(  C  )。
A. int a[2][3] = {0};
B. int a[ ][3] = {{1,2},{0}};
C. int a[2][3] = {{1,2},{3,4},{5,6}};
D. int a[ ][3] = {1,2,3,4,5,6};
4. 对两个数组a和b进行初始化
char a[ ] =“ABCDEF”;
char b[ ] = {‘A’,‘B’,‘C’,‘D’,‘E’,‘F’};
则以下叙述正确的是( D  )。
A.  a与b数组完全相同            B. a与b长度相同
C.  a和b中都存放字符串          D. a数组比b数组长度长
5.  判断字符串s1是否大于字符串s2,应当使用(  D  )。
A.  if ( s1 > s2 )              B.  if (strcmp (s1 , s2 ))
C.  if ( strcmp (s2 , s1 ) > 0 )    D.  if (strcmp (s1 , s2 ) > 0 )
6. 当运行以下程序时,从键盘输入:AhaMAAha (□代表空格,↙代表回车),则下面程序的运行结果是(    )
  #include “stdio.h”
  main( )
  {  char s[80], c = ’a’;
    int i = 0;
    scanf(“%s”,s);
    while(s[i] != ’\0’)
    { if(s[i] = = c )  s[i] = s[i] - 32;
      else if (s[i] = = c-32)  s[i] = s[i] + 32;
      i++;
    }
    puts(s);
  }
A. ahAMa    B. AhAMa    C. AhAMaahA  D. ahAMaahA
7. 下面程序段是输出两个字符串中对应相等的字符。请选择填空。
char x[]=“programming”;
char y[]=“Fortran”;
int i=0;
while(x[i]!= ‘\0’&&y[i]!= ‘\0’)
  if(x[i]==y[i])    printf(“%c”, (  A  ) );
else    i++;
A. x[i++]      B. y[++i]    C. x[i]    D.  y[i]
三、判断题
1. 有二维数组int a[100][100],数组元素a[100][100]的存储位置为10001。(
2. 为了增加程序的通用性,定义数组时,最好用变量说明其长度。如:int n; int arr[n];(  F  )
3. 字符个数多的字符串一定比字符个数少的字符串大。( F )
4. 下面程序运行的结果为“OK!”。  ( F  )
char s1[100] = {“abcde”};  char s2[100] = { “abcde” };
if(s1= = s2)  printf( “ OK! ”)  else  printf(“  No! ”);
四、填程序
1. 设数组a包括10个整型元素。下面程序的功能是求出a中各相邻两个元素的和,并将这些和存在数组b中,按每行3个元素的形式输出。请填空。
main( )
{ int a[10],b[10],i;
  for(i=0;i<10;i++)
  scanf(%d,&a[i]);
  for(   i=1  ;i<10;i++) 
          a[i]=a[i-1]+a[i];                       
for(i=1;i<10;i++)
{ printf(%3d,b[i]);
  if(i%3 == 0)  printf(\n);
}
}
2. 下面程序的功能是求出矩阵x的右上三角元素之积。其中矩阵x的行、列数和元素值均由键盘输入。请填空。
#define M 10
main( )
{  int x[M][M];
  int n,i,j;
  long s=1;
  printf(“Enter a integer(<=10):\n”);
  scanf(“%d”,&n);
  printf(“Enter %d data on each line for the array x\n”,n);
  for(  i=0;i<n;i++      )
    for(j=0;j<n;j++)
        scanf(“%d”,&x[i][j]);
  for(i=0;i<n;i++)
      for(  j=i    ;j<n;j++)
          s*=x[i][j];       
  printf(“\n%ld\n”,s);
}
五、编程题:
1. 利用顺序查法从数组a10个元素中对关键字m进行查。要求从键盘输入数组元素以及要查的数据值。(顺序查法的思路是:从第一个元素开始,从前向后依次与关键字
比较,直到到此元素或查到数组尾部时结束。若到,则查成功;若直至最后一个元素都不相等,则查失败。)
2. 从键盘输入两个字符串ab,要求不用库函数strcat把串b的前五个字符连接到串a中;如果b的长度小于5,则把b的所有元素都连接到a中。试编程。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。