C语言习题(6)
章 数组
.填空题
1. C语言数组的下标总是从         开始,不可以为负数;构成数组各个元素具有相同的         
2. 在C语言中,二维数组的元素在内存中的存放顺序是         
3. 若有定义:double x[3][5],则x数组中行下标的下限为        ,列下标的限为        
4. 若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]的值为        ,a[2][1]得到的值为         
5. 若有定义int a[][4]={1,2,3,4,5,6,7,8,9},则数组a第一维的大小为         
6. 设char str[100]=Hangzhou;则数组str所在内存空间应为          字节
7. 下列程序的输出结果是            
char str[ ][10]={abcd,1234,efgh,5678};
int k=1;
printf(“%s”,str[k++]);
8. 欲将字符串S1复制到字符串S2中,其语句是                   
9. 如果在程序中调用了strcat函数,则需要预处理命令                 如果调用了gets函数,则需要预处理命令              
10. 字符串是以           为结束标志的一维字符数组。有定义:char a[]=”China”;则a数组的长度是         
11. 数组在内存中占用一段连续的存储空间,该存储空间的首地址用           表示。
12. 调用strlen(abcd\0ef\0g)的返回值为         
.选择题
1. 在C语言中,引用数组元素时,其数组下标的数据类型允许是        
A)整型常量                 B)整型表达式
C)整型常量或整型表达式     C)任何类型的表达式
2. 以下对一维整型数组a的正确说明是        
A)int a(10) ;                   B)int n=10,a[n];
C)int n;                       D)#define SIZE 10
scanf(“%d”,&n);              int a[SIZE];
   int a[n];
3. 若有定义:int a[10],则对数组a元素的正确引用是        
A)a[10]  B)a[3.5]   C)a(5)     D)a[10-10]
4. 若有定义:int a[3][4],则对数组a元素的正确引用是        
A)a[2][4]         B)a[1,3]     C)a(5)     D)a[10-10][2]
5. 以下能对二维数组a进行正确初始化的语句是        
A)int a[2][]={{1,0,1},{5,2,3}} ;
B)int a[][3]={{1,2,3},{4,5,6}} ;
C)int a[2][4]={{1,2,3},{4,5},{6}} ;
D)int a[1][4]={1,2,3,4,5c语言二维数组表示方法} ;
6. 以下不能对二维数组a进行正确初始化的语句是        
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} ;
7. 若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为         。(设a[0][0]的位置为0
A)i*m+j       B)j*m+i     C)i*m+j-1     D)i*m+j+1
8. 以下不正确的定义语句是        
A)double x[5]={2.0,4.0,6.0,8.0,10.0};
B)int y[5]={0,1,3,5,7,9} ;
C)char c1[ ]={‘1’,’2’,’3’,’4’,’5’} ;
D)char c2[ ]={‘\x10’,’\xa’,’\x8’} ;
9. 下面程序段的输出结果是        
int k,a[3][3]={1,2,3,4,5,6,7,8,9};
for (k=0;k<3;k++) printf(“%d”,a[k][2-k]);
A)3 5 7       B)3 6 9       C)1 5 9       D)1 4 7
10. 下面是对s的初始化,其中不正确的是        
A)char s[5]={“abc”};           B)char s[5]={‘a’,’b’,’c’};
C)char s[5]=” ”;                D)char s[5]=”abcdef”;
11. 下面程序段的输出结果是        
char c[5]={‘a’,’b’,’\0’,’c’,’\0’};
printf(“%s”,c);
A)’a’’b’       B)ab       C)ab c       D)abc
12. 有两个字符数组a,b,则以下正确的输入语句是        
A)gets(a,b);                 B)scanf(“%s%s”,a,b);
C)scanf(“%s%s”,&a,&b);       D)gets(“a”),gets(“b”);
13. 判断字符串a和b是否相等,应当使用        
A)if (a= =b)                 B)if (a=b)
C)if (strcpy(a,b))               D) if (strcmp(a,b)= =0)
14. 判断字符串a是否大于b,应当使用        
A)if (a>b)                   B)if (strcmp(a,b))
C)if (strcmp(b,a)>0)           D)if (strcmp(a,b)>0)
15. 下面叙述正确的是        
A)两个字符串所包含的字符个数相同时,才能比较字符串
B)字符个数多的字符串比字符个数少的字符串大
C)字符串”STOP ”与”Stop”相等
D)字符串”That”小于字符串”The”
16. 下面有关字符数组的描述中错误的是        
A)字符数组可以存放字符串
B)字符串可以整体输入,输出
C)可以在赋值语句中通过赋值运算对字符数组整体赋值
D)不可以用关系运算符对字符数组中的字符串进行比较
17. 若输入数据:abcd1234  efgh<回车>,以下程序的运行结果是        
char s[13];
scanf(%s,s);  printf(%s\n,s);
A)abcd                      B)abcd1234  efgh
C)abcd1234              D)abcd1234efgh
18. 函数strcmp(Int,int)的返回值为        
A)0            B)正数            C)负数            D)Intint
19. 当执行下面的程序时,如果输入ABC,则输出结果是        
char ss[10]=1,2,3,4,5;
gets(ss);  strcat(ss,6789);  printf(%s\n,ss);
A)ABC6789        B)ABC67        C)12345ABC6        D)ABC456789
20. 不能把字符串Hello!赋给数组b的语句是        
A)char b[]={H,e,l,l,o,!,\0};
B)char b[]=Hello!;
C)char b[10]; b[10]=Hello!;
D)char b[10]; strcpy(b,Hello!);
21. 对两个数组a和b进行如下初始化:
char a[ ]=”ABCDEF”;  char b[ ]={‘A’,’B’,’C’,’D’ ,’E’, ‘F’};
则以下叙述正确的是        
A数组a与数组b完全相同
B数组a与数组b长度相同
C数组a与数组b中都存放字符串
D数组a比数组b长度长
22. 有以下程序
char a[]={abcdefgh};
int i,j;
i=sizeof(a);  j=strlen(a);
printf(%d,%d\n,i,j);
程序运行后的输出结果是        
A)9,9        B)8,9        C)1,8        D)9,8
三.程序阅读题
1. 下列程序的输出结果是                
#include<stdio.h>
int main (  )
{ char b []="Hello you";
b[5]=0;
printf ("%s\n",b);
return 0;
}
2. 写出下面程序的运行结果                
#include<stdio.h>
int main ( )
{    int i,f[10];
    f[0]=f[1]=1;
    for(i=2;i<10;i++)
      f[i]=f[i-2]+f[i-1];
    for(i=0;i<10;i++)
      {  if(i%4= =0) printf(\n);
        printf(%3d,f[i]);      }
    return 0;
}
3. 写出下面程序的运行结果                
#include<stdio.h>
int main ( )
{     int i=5;
    char c[6]=abcd;
do {
    c[i]=c[i-1];
} while(--i>0);
printf(%c  %c\n,c[0],c[1]);
        return 0;
      }
4. 写出下面程序的运行结果                
#include<stdio.h>
int main ( )
       { int i=0;
         char a[ ]=”abm”, b[ ]=”aqid”, c[10];

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