当前位置:编程学习 > C/C++ >>

C语言数组问题

1、 已知数组a的赋值情况如下所示,则执行语句a[2]++;后,a[1]和a[2]的值 分别是________。 a[0] a[1] a[2] a[3] a[4] ┌──┬──┬──┬──┬──┐ │ 10│ 20│ 30│ 40│ 50│ └──┴──┴──┴──┴──┘ A) 20和30 B) 20和31 C) 21和30 D) 21和31 2、 有如下程序 #include<stdio.h> void main() { char ch[80]="123abcdEFG*&"; int j;long s=0; puts(ch); for(j=0;ch[j]>'\0';j++) if(ch[j]>='a'&&ch[j]<='z') ch[j]=ch[j]-'b'+'B'; puts(ch); } 该程序的功能是________。 A) 测字符数组ch的长度 B) 将数字字符串ch转换成十进制数 C) 将字符数组ch中的小写字母转换成大写 D) 将字符数组ch中的大写字母转换成小写 3、 请读程序片段(字符串内没有空格字符): printf("%d\n",strlen("ATS\n012\1\\")); 上面程序片段的输出结果是________。 A) 11 B) 10 C) 9 D) 8 4、 当执行下面程序且输入:ABC时,输出的结果是________。 #include<stdio.h> #include<string.h> void main() { char ss[10]="12345"; strcat(ss,"6789"); gets(ss); printf("%s\n",ss); } A) ABC B) ABC9 C) 123456ABC D) ABC456789 5、 以下数组定义中不正确的是_____10125030240___。 A) int a[2][3]; B) int b[][3]={0,1,2,3}; C) int c[100][100]={0}; D) int a[3][]={{1,2},{1,2,3},{1,2,3,4}}; 6、 以下关于数组的描述正确的是__________。 A) 数组的大小是固定的,但可以有不同类型的数组元素。 B) 数组的大小是可变的,但所有数组元素的类型必须相同。 C) 数组的大小是固定的,所有数组元素的类型必须相同。 D) 数组的大小是可变的,可以有不同类型的数组元素。 7、 以下程序的输出结果是________ 。(设a[0][0] 是数组a中的第1个元素) #include <stdio.h> void main( ) {int a[4][5]={1,2,3,4,5,-1,-2,-3,-4,-5,1,2,3,4,5}; int i,j,i1,j1,n; n=-4; for(i=0;i<4;i++) { for(j=0;j<5;j++) if(a[i][j]==n) { i1=i;j1=j; } } printf("%d is No. %d of a\n", n,i1*5+j1+1); } A) n在数组a中第一次出现的位置 B) n在数组a中最后一次出现的位置 C) n在数组a中第一次出现的下标 D) n在数组a中最后一次出现的下标 8、 下面程序统计3个学生,每个学生4门课程的考试成绩,要求输出每个学生的平均成绩、3个学生的总成绩。正确的说法是________。 #include <stdio.h> void main( ) { int stu[3][4],i,j,t[3]; float sum=0,a[3]; for(i=0;i<3;i++) for(j=0;j<4;j++) scanf("%d",&stu[i][j]); for(i=0;i<3;i++) {t[i]=0;a[i]=0; for(j=0;j<=3;j++) {sum+=stu[i][j]; t[i]+=stu[i][j]; printf("%-6d",stu[i][j]); } a[i]=t[i]/3; printf("%-6.2f\n",a[i]); } printf("sum = %f\n",sum); } A) 数组a的每个元素中存放的是每个学生的总成绩 B) 数组t的每个元素中存放的是每个学生的平均成绩 C) 从键盘上输入成绩的顺序是按课程输入 D) 从键盘上输入成绩的顺序是按学生输入 10、 若希望下面的程序运行后输出45,程序空白处的正确选择是________。 #include <stdio.h> void main( ) { int i,j=10,a[ ]={1,3,5,7,9,11,13,15}; for( ____________ ) j+=a[i]; printf("%d\n",j); } A) i=5;i>1;i-- B) i=0;i<7;++i C) i=5;i>=1;--i D) i=2;i<6;++i
答案:1.B
2.C
3.C
4.A
5.D
6.C
7.B
8.D
10.C
其他:1、 已知数组a的赋值情况如下所示,则执行语句a[2]++;后,a[1]和a[2]的值
分别是________。
       a[0]  a[1]  a[2]  a[3]  a[4]
           ┌──┬──┬──┬──┬──┐
           │ 10│ 20│ 30│ 40│ 50│
           └──┴──┴──┴──┴──┘
 B) 20和31  

题目是数值增加,不是指针增加

2、 有如下程序
#include<stdio.h>
void main()
{ char ch[80]="123abcdEFG*&";
   int j;long s=0;
   puts(ch);
   for(j=0;ch[j]>'\0';j++)
      if(ch[j]>='a'&&ch[j]<='z') ch[j]=ch[j]-'b'+'B';
   puts(ch);  
}
该程序的功能是________。
C) 将字符数组ch中的小写字母转换成大写

大写字母和小写字母之间的差距是一定的,即  -'b'+'B'和-'a'+'A'的结果都一样
     
3、 请读程序片段(字符串内没有空格字符):
    printf("%d\n",strlen("ATS\n012\1\\"));
上面程序片段的输出结果是________。
 B) 10 

\n 和 \\ 都只能算一个字符
 
4、 当执行下面程序且输入:ABC时,输出的结果是________。
#include<stdio.h>
#include<string.h>
void main()
{ char ss[10]="12345";
   strcat(ss,"6789");
   gets(ss); printf("%s\n",ss);  
}
A) ABC     

因为ss的值被替换了
 
5、 以下数组定义中不正确的是_____10125030240___。

D) int a[3][]={{1,2},{1,2,3},{1,2,3,4}};  

C语言只有最左边的数组的长度可以不定义,多维数组的第2位开始,都必须要定义长度。

 6、 以下关于数组的描述正确的是__________。
C) 数组的大小是固定的,所有数组元素的类型必须相同。

C语言数组大小固定。但是C99标准里面允许定义变长数组。

7、 以下程序的输出结果是________ 。(设a[0][0] 是数组a中的第1个元素)
#include  <stdio.h>
void main( )
{int a[4][5]={1,2,3,4,5,-1,-2,-3,-4,-5,1,2,3,4,5};
 int  i,j,i1,j1,n;
 n=-4;
 for(i=0;i<4;i++)
  { for(j=0;j<5;j++)
      if(a[i][j]==n) { i1=i;j1=j;  }
  }   
 printf("%d  is  No. %d of  a\n", n,i1*5+j1+1);  
}
B) n在数组a中最后一次出现的位置

因为下标比位置小1,而且因为他没有在第一次检查到n以后跳出循环,那就会再次给i1 j1赋值,直到n不再出现。

8、 下面程序统计3个学生,每个学生4门课程的考试成绩,要求输出每个学生的平均成绩、3个学生的总成绩。正确的说法是________。
#include <stdio.h>
void main( )
{ int  stu[3][4],i,j,t[3];
  float  sum=0,a[3];
  for(i=0;i<3;i++)
      for(j=0;j<4;j++)  scanf("%d",&stu[i][j]);
  for(i=0;i<3;i++)
   {t[i]=0;a[i]=0;
    for(j=0;j<=3;j++)
      {sum+=stu[i][j];
       t[i]+=stu[i][j];
       printf("%-6d",stu[i][j]); }
     a[i]=t[i]/3;
     printf("%-6.2f\n",a[i]); 
   }
  printf("sum = %f\n",sum); 
}
D) 从键盘上输入成绩的顺序是按学生输入 

因为j在内层循环

10、 若希望下面的程序运行后输出45,程序空白处的正确选择是________。
#include <stdio.h>
void main( )
{ int i,j=10,a[ ]={1,3,5,7,9,11,13,15};
  for( ____________ )
    j+=a[i];
  printf("%d\n",j); 
}
C) i=5;i>=1;--i   
在这里,i--和--i 其实是一样的 1~5: BCCAD
6~10: CBDC 1~5: BCCAD
6~10: CBDC 

上一个:DEC-C++是什么?
下一个:C语言:产生随机数 求高手指导!!!

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,