计算机二级C语言教程章节测试字符串_第1页
计算机二级C语言教程章节测试字符串_第2页
计算机二级C语言教程章节测试字符串_第3页
计算机二级C语言教程章节测试字符串_第4页
计算机二级C语言教程章节测试字符串_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言章节测试:字符串一、选择题    (1)若有语句:char  *line5;,以下叙述中正确的是     A)定义line是一个数组,每个数组元素是一个基类型为char的指针变量     B)定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组     C)定义line是一个指针数组,语句中的*号称为间址运算符     D)定义

2、line是一个指向字符型函数的指针    (2)有以下程序     #include    <string.h>     main()      char  p='a', 'b', 'c',  q10='a', 'b', 'c'  

3、     printf("%d %dn", strlen(p), strlen(q);         以下叙述中正确的是     A)在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3     B)由于p数组中没有字符串结束符,长度不能确定;但q数组中字符串长度为3     C

4、)由于q数组中没有字符串结束符,长度不能确定;但p数组中字符串长度为3     D)由于p和q数组中都没有字符串结束符,故长度都不能确定     (3)有以下程序,其中函数f的功能是将多个字符串按字典顺序排序     #include    <string.h>     void f(char  *p, int  n)  &#

5、160;   char  *t;    int  i,j;       for(i=0; i<n-1; i+)         for(j=i+1; j<n; j+)           if(strcmp(pi,pj)>0) t=pi;  pi=pj;

6、0; pj=t;            main()      char  *p5="abc","aabdfg","abbd","dcdbe","cd"       f(p, 5);       printf(

7、"%dn", strlen(p1);         程序运行后的输出结果是     A)2   B)3   C)6   D)4    (4)有定义语句:int  b;char  c10;  ,则正确的输入语句是_    A)scanf(&

8、quot;%d%s",&b,&c);    B)scanf("%d%s",&b,c);    C)scanf("%d%s",b,c);    D)scanf("%d%s",b,&c);    (5)以下能正确定义一维数组的选项是_    A)int  a5=0,1,2,3,4,5;

9、60;   B)char  a=0,1,2,3,4,5;    C)char  a='A','B','C'    D)int  a5="0123"    (6)已有定义:char a="xyz",b='x','y','z',以下叙述中正确的是_   &#

10、160;A)数组a和b的长度相同    B)a数组长度小于b数组长度    C)a数组长度大于b数组长度    D)上述说法都不对    (7)以下语句或语句组中,能正确进行字符串赋值的是         A)char  *sp;  *sp="right!"    B)char

11、s10;  s="right!"    C)char  s10;  *s="right!"    D)char  *sp="right!"    (8)有以下程序    main()           char  s="

12、;159",*p;       p=s;       printf("%c",*p+);       printf("%c",*p+);        程序运行后的输出结果是      A)15    

13、;B)16    C)12    D)59    (9)有以下函数    fun(char  *a,char  *b)           while(*a!='0')&&(*b!='0')&&(*a=*b)    

14、      a+;   b+;       return  (*a-*b);        该函数的功能是                       

15、0;               A)计算a和b所指字符串的长度之差    B)将b所指字符串复制到a所指字符串中    C)将b所指字符串连接到a所指字符串后面    D)比较a和b所指字符串的大小    (10)有以下程序    point(char

16、60; *p)           p+=3;        main()       char  b4='a','b','c','d',*p=b;        point(p);   

17、; printf("%cn",*p);        程序运行后的输出结果是               A)a    B)b    C)c    D)d(11) s12和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指

18、串时,执行语句S;则以下选项中正确的是_    A) if(s1>s2)S;        B) if(strcmp(s1,s2)S;    C) if(strcmp(s2,s1)>0) S;    D) if(strcmp(s1,s2)>0)S;     (12) 有以下程序    main()   

19、; char str10="China","Beijing",*p=str;      printf("%sn",p+10);        程序运行后的输出结果是    A) China    B) Bejing   C) ng    D) ing   &#

20、160;  (13) 有以下程序    main()    char s="ABCD",*p;      for(p=s+1;p<s+4;p+)printf("%sn",p);        程序运行后的输出结果是    A) ABCD     

21、; B) A      C) B      D) BCD       BCD             B            C        &#

22、160;  CD       CD              C            D            D    (14) 有以下程序 &#

23、160;  main()     char s"Yesn/No",*ps=s;      puts(ps+4);      *(ps+4)=0;      puts(s);        程序运行后的输出结果是(选项D中的第一行是空行)    A)

24、n/No    B) /No    C) n/NO    D)        Yes             Yes          Yes          

25、;   /No       /No                             /No      Yes    (15) 有以下定义

26、60;   #include <stdio.h>    char a10,*b=a;    不能给数组a输入字符串的语句是    A) gets(A)    B) gets(a0)   C) gets(&a0);  D) gets(B) ;     (16) 有以下程序    m

27、ain( )     char *p10=“abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”;      printf(“%dn”,strlen(p4);        执行后输出结果是    A) 2     B) 3     C) 4     D)

28、 5    (17) 以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是    A) char s10=”abcdefg”;   B) char t=”abcdefg”,*s=t;    C) char s10;s=”abcdefg”;   D) char s10;strcpy(s,”abcdefg”);    (18) 下列选项中正确的语句组是   

29、0;A) char  s8;  s="Beijing"  B) char  *s;  s="Beijing"    C) char  s8;  s="Beijing"    D) char  *s;  s="Beijing"    (19) 以下程序中函数scmp的功能是返回形参指针s1和 s2所指字符串中较小字符串的

30、首地址    #include   <stdio.h>    #include   <string.h>    char  *scmp(char  *s1,  char   *s2)      if( strcmp (s1, s2<0)    return(s1);&#

31、160;   else   return(s2);        main ()      int  I;    char    string20,  str320;    for(i=0;i<3;i+)  gets(stri);    str

32、cpy(string,scmp(str0,str1);/*库函数strcpy对字符串进行复制*/    strcpy(string,scmp(string,str2);    printf("%sn",string);        运行时依次输入:abcd、abba和abc三个字符串,则输出结果为    A) abcd     

33、;    B) abba          C) abc              D) abca    (20) 有以下程序    #include   <string.h>    main()&

34、#160;    char   str20="Hello","Beijing", *p=str;    printf("%dn",strlin(p+20);        程序运行后的输出结果是    A) 0          

35、  B) 5            C) 7              D) 20(21) 已定义以下函数    fun(char  *p2,  char   *p1)       while(*p2=*p1)

36、!=0)p1+;p2+;       函数的功能是    A) 将p1所指字符串复制到p2所指内存空间    B) 将p1 所指字符串的地址赋给指针 p2    C) 对p1和p2两个指针所指字符串进行比较    D) 检查p1和p2两个指针所指字符串中是否有0    (22) 有以下程序    main()

37、     char   *s="one","two","three",*p;     p=s1;     printf("%c,%sn",*(p+1),s0);        执行后输出结果是    A) n,two &

38、#160;  B) t,one   C)w,one   D) o,two    (23) 阅读以下函数    fun(char  *s1,char *s2)       int   i=0;    while(s1i=s2i&& s2i!=0)i+;   

39、; return(s1i= && s2i!=0);        此函数的功能是    A) 将s2所指字符串赋给s1    B) 比较s1和s2所指字符串的大小,若s1比s2的大,函数值为1,否则函数值为0    C) 比较s1和s2所指字符串是否相等,若相等,函数值为1,否则函数值为0    D) 比较s1和s2所指字符串的长度

40、,若s1比s2的长,函数值为1,否则函数值为0    (24) 有以下程序    main()       char str="xyz",*ps=str;    while(*ps)ps+;    for(ps-;ps-str>=0;ps-) puts(ps);      

41、  执行后的输出结果是    A) yz   B) z   C) z   D) x     xyz      yz      yz       xy    xyz      xyz

42、    (25) 有以下程序    #include <string.h>    main()     char *p=“abcdeOfghjik0”;    printf(“%dn”,strlen(p);        程序运行后的输出结果是    A) 12

43、60;  B) 15   C) 6   D) 5    (26) 有以下程序    void ss(char *s,char t)     while(*s)     if(*s=t) *s=t-a+A;      s+;       &#

44、160;    main()     char str1100=“abcddfefdbd”,c=d;    ss(str1,c);   printf(“%sn”,str1);        程序运行后的输出结果是    A) ABCDDEFEDBD        B)

45、abcDDfefDbD    C) abcAAfefAbA      D) Abcddfefdbd    (27) 以下程序的输出结果是    char  cchar(char  ch)        if(ch>=A&&ch<=Z')  ch=ch-A'+a'

46、60;   return  ch;        main()      char   s="ABC+abc=defDEF",*p=s;    while(*p)     *p=cchar(*p);    p+;     

47、;   printf("%sn",s);        A) abc+ABC=DEFdef          B) abc+abc=defdef    C) abcaABCDEFdef           D) abcabcdefdef&#

48、160;   (28) 以下程序段的输出结果是    char   s="141141abct"    printf  ("%dn",strlen(s);    A) 9         B) 12        

49、60;  C) 13         D) 14    (29) 以下程序的输出结果是    main()      char   cf35="AAAA","BBB","CC"    printf(""%s"n",ch1

50、);        A) "AAAA"      B) "BBB"     C) "BBBCC"    D) "CC"    (30) 以下程序的输出结果是    #include  <stdio.h> &#

51、160;  #include  <string.h>    main()        char  b18="abcdefg",b28,*pb=b1+3;    while (-pb>=b1)  strcpy(b2,pb);    printf("%dn",strlen(b2);  

52、0;     A) 8   B) 3   C) 1      D) 7(31) 以下定义语句中,错误的是    A) int  a=1,2;     B) char  *a3;    C) char s10=”test”;   D) int  n=5,an; 

53、   (32) 以下选项中,不能正确赋值的是    A) char  s110;s1=“Ctest”;    B) char  s2=C, t, e, s, t;    C) char  s320=“Ctest”;    D) char  *s4=“Ctestn”    (33) 以下程序的输出结果是  &#

54、160; A) ABCD   B) ABCD    C) EFG    D) EFGH     FGH       EFG       JK       IJKL     KL   

55、0;   IJ       O           M    main()     char   w10= “ABCD”,”EFGH”,”IJKL”,”MNOP”,k;      for(k=1;k<3;k+)   printf(“%

56、sn”,wk);        (34) 当执行下面的程序时,如果输入ABC,则输出结果是    A) ABC6789      B) ABC67  C) 12345ABC6     D) ABC456789    #include  “stdio.h”    #include&

57、#160; “string.h”    main()     char  ss10=“1,2,3,4,5”;      gets(ss); strcat(ss, “6789”);  printf(“%sn”,ss);           (36) 有如下程序    main()  

58、;      char     ch25=“6937”,”8254”,*p2;    int      i,j,s=0;    for(i=0;i<2;i+)     pi=chi;    for(i=0;i<2;i+)    for(j=0;pi

59、j>0;j+=2)    s=10*s+pij-0;    printf(“%dn”,s);     该程序的输出结果是    A) 69825           B) 63825           C) 6385 &#

60、160;         D) 693825    (37) 设有数组定义: char array ="China" 则数组 array所占的空间为         A) 4个字节      B) 5个字节        C) 6个字节  

61、     D) 7个字节    (38) 设已有定义: char *st="how are you" 下列程序段中正确的是         A) char  a11, *p;  strcpy(p=a+1,&st4);         B) char  a11;   

62、60;  strcpy(+a, st);         C) char  a11;      strcpy(a, st);         D) char  a, *p;    strcpy(p=&a1,st+2);    (39) 下列程序执行后的输出结果是 

63、0;       A) you&ne       B) you            C) me            D) err         mai() 

64、        char  arr24;           strcpy(arr,"you");  strcpy(arr1,"me");           arr03='&'     

65、0;     printf("%s n",arr);             (40) 执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是         A) 123,456,789        

66、            B) 1,456,789         C) 1,23,456,789                   D) 1,23,456      &

67、#160;  main()           char  s100;  int  c, i;            scanf("%c",&c);  scanf("%d",&i);  scanf("%s",s);    &

68、#160;       printf("%c,%d,%s n",c,i,s);         (41) 下列描述中不正确的是       A) 字符型数组中可以存放字符串       B) 可以对字符型数组进行整体输入、输出       C) 可以对整型数组

69、进行整体输入、输出       D) 不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值    (42) 以下程序的输出结果是       A) 123456780    B) 123  456  780  C) 12345678  D) 147       main( 

70、; )          char    ch34="123","456","78", *p3;  int   i;           for(i=0;i<3;i+)    pi=chi;      &

71、#160;    for(i=0;i<3;i+)    printf("%s",pi);           (43) 以下程序的输出结果是       A)4 2 1 1    B) 0 0 0 8    C) 4 6 7 8   D) 8 8 8 8 

72、0;     main(  )           char  *s="12134211";   int v4=0,0,0,0,k,i;       for(k=0;sk;k+)         switch(sk)     &#

73、160;        case '1':i=0;               case '2':i=1;               case '3':i=2;    &

74、#160;          case '4':i=3;                      vi+;              for(k=0;k<4;k+)&

75、#160;  printf("%d ",vk);           (44) 以下程序的输出结果是       A) AfghdEFG     B) Abfhd     C) Afghd    D) Afgd       #include

76、           main(  )           char    *p1,*p2,str50="ABCDEFG";            p1="abcd";     

77、p2="efgh";            strcpy(str+1,p2+1);    strcpy(str+3,p1+3);            printf("%s",str);           (

78、45) 以下程序运行后,输出结果是    A) cde      B) 字符c的ASCII码值   C) 字符c的地址    D) 出错              main()             

79、;    char   *s="abcde"                 s+=2;                 printf("%ldn",s);   

80、0;              (46) 下面能正确进行字符串赋值操作的语句是    A) char s5="ABCDE"          B) char s5='A','B','C','D','E'   &

81、#160;C) char *s;s="ABCDEF"           D) char *s; scanf("%s",s);    (47) 以下程序运行后,如果从键盘上输入ABCDE<回车>,则输出结果为    A) 8             

82、;B) 7              C) 6              D) 5            #include<stdio.h>      

83、60;     #include<string.h>            func<char str)               int    num=0;         &#

84、160;      while(*(str+num)!='0') num+;                return(num);                      

85、;  main()             char  str10,*p=str;              gets(p);    printf("%dn",func(p);         

86、60;     (48) 下面程序运行的结果是    A) 2ba56         B) 6521           C) 6              D) 62   &#

87、160;      main()              char   ch7=65ab21"               int    i,s=0      

88、0;        for(i=0;chi>='0' && chi<='9'i+=2)                   s=10*s+chi-'0'          &

89、#160;    printf("%dn",s);               (49) 运行下面的程序,如果从键盘上输入:         ab<回车>         c <回车>   

90、60;     def<回车>    则输出结果为    A) a             B) a              C) ab      

91、0;      D) abcdef    b                  b                  c    c 

92、;                 c                  d    d             

93、;     d    e    f            #include<stdio,h>            #define   N  6       

94、     main()             char  cN;              int   i=0;              for( 

95、;    ;i<N;ci=getchar(),i+);              for( i=0;i<N;i+)  putchar(ci);   printf("n");               (50) 以下程序运行后,输出结果是

96、    A) 8             B) 7              C) 6              D) 5     

97、;      #include<stdio,h>           ss(char  *s)             char     *p=s;           

98、;   while(*p)  p+;              return(p-s);                    main()           

99、;  char   *a="abded"              int   i;              i=ss(a);            

100、;  printf("%dn",i);              (51) 以下程序运行后,输出结果是    A) 6385          B) 22             C) 33

101、             D) 693825           main()           char  ch25='693","825",*p2;      

102、60;      int  i,j,s=0;             for(i=0;i<2;i+) pi=chi;             for(i=0;i<2;i+)         

103、0;        for(j=0;pij='0'  &&  pij<='9'j+=2)                          s=10*s+pij-'0'  

104、;          printf("%dn",s);                答案:    一、选择题:     1) A 2) B 3) D 4) B 5) B

105、 6) C 7) D 8) A 9)  D  10) A    11) D 12) B 13) D 14) B 15) B 16) A 17) C 18) D 19) B 20) C    21) A 22)&

106、#160;C 23) C 24) C 25) D 26) B 27) B 28) A 29) B 30) D    31) D 32) A 33) D 34) A 35) D 36) C 37) C 38) A 39) A

107、0;40) D    41) C 42) C 43) B 44) D 45) C 46) C 47) D 48) C 49) C 50) D    51) A  (52) 以下程序运行后,输出结果是    A) 1234567  

108、     B) 7654321        C) 1711717        D) 7177171            #inchude   <stdio,h>         &#

109、160;  #inchude   <string,h>            fun(char  *w,  int n)              char   t, *s1,*s2;        

110、0;      s1=w:  s2=w+n-1;               while(s1<s2)                 t=*s1+;        

111、;          *s1=*s2-;                  *s2=t;                      

112、;                main()             char   *p;              p="1234567"   &

113、#160;          fun(p,strlen(p);              puts(p);               (53) 以下程序运行后,如果从键盘上输入:     

114、    book <回车>         book <空格><回车>         则输出的结果是    A) *8            B) #9      

115、;       C) #6             D) *9            #include<string,h>            main()  

116、60;           char   a180,a280,*s1=a1, *s2=a2;               gets(s1);   gets(s2);              

117、; if(! strcmp(s1,s2)  printf("*");               esle  printf("#");               printf("%d/n",strlen(strcat(s1,s2);

118、60;               (54) 给出以下定义:    char x ="abcdefg"    char y ='a','b','c','d','e','f','g'    则正确的叙述为

119、60;   A) 数组X和数组Y等价               B) 数组x和数组Y的长度相同    C) 数组X的长度大于数组Y的长度      D) 数组X的长度小于数组Y的长度    (55) 有以下程序       &#

120、160; main()         char   a="programming", b="language"           char   *p1,*p2;            int    i;&#

121、160;          p1=a;      p2=b;           for(i=0;i<7;i+)              if(*(p1+i)=*(p2+i)   printf(&quo

122、t;c",*(p1+i);                 输出结果是    A) gm           B) rg             C) or  

123、             D) ga    (56) 若有以下定义:          char s20="programming",*ps=s;          则不能代表字符o的表达式是    

124、A) ps+2       B)s2    C) ps2          D)ps+=2,*ps    (57) 若有以下定义和语句:    char *s1="12345",*s2="1234"     printf("%dn"

125、;,strlen(strcpy(s1,s2);    则输出结果是_    A) 4          B)5        C)9           D)10    (58) 下面程序的输出是_  

126、;      main()             char *s="121"              int  k=0, a=0, b=0;            do

127、0;      k+;            if(k%2=0) a=a+sk-'0'                 continue;           &#

128、160;       b=b+sk-'0'                  a=a+sk-'0'                     

129、;  while (sk+1);            printf("k=%d a=%d b=%dn",k,a,b);    A)k=3 a=2 b=3  B)k=3 a=3 b=2       C)k=2 a=3 b=2       D)k=2 a=2 b=3  &

130、#160; (59) 以下程序输出的结果是    #include     #include     main()     char w10="ABCD","EFGH","IJKL","MNOP",K;    for (k=1;k<3;k+)    printf(

131、"%sn",&wkk);        A)ABCD                          B)ABCD    FGH      

132、                               EFG    KL               

133、                       IJ    M    C)EFG                  

134、60;        D)FGH    JK                                KL    O   &

135、#160; (60) 若有以下程序片段:    char str="abn012""    printf(%d",strlen(str);          上面程序片段的输出结果是_    A)3            

136、;  B)4                 C)6                D)12(61) 函数调用:strcat(strcpy(str1,str2),str3)的功能是    A) 将串str1复制到串str2中后再连接到串st

137、r3之后    B) 将串str1连接到串str2之后再复制到串str3之后    C) 将串str2复制到串str1中后再将串str3连接到串str1之后    D) 将串str2连接到串str1之后再将串str1复制到串str3中    (62) 不能把字符串:Hello!赋给数组b的语句是    A) char b10='H','e','l',

138、'l','o','!'    B) char b10;b="Hello!"    C) char b10;strcpy(b,"Hello!");    D) char b10="Hello!"    (63) 下面程序的输出是    main()    

139、; int x=3,y=6,a=0;    while(x+!=(y+=o1)     a+o=1;    if(y    #include    main()     char ss10="12345"    strcat(ss,"6789");  

140、0; gets(ss);printf("%sn",ss);        A) ABC           B) ABC9          C) 123456ABC        D) ABC456789  

141、  (64) 下面程序的输出是    main()     char *a="12134211"    int v1=0,v2=0,v3=0,v4=0,k;    for(k=0;sk;k+)    switch(sk)     default:v4+;    case '

142、;1':  v1+;    case '3': v3+;    case '2':  v2+;     printf("v1=%d,v2=%d,v3=%d,v4=%dn",v1,v2,v3,v4);     A) v1=4,v2=2,v3=1,v4=1       B) v1=4,v2=9,v3=3

143、,v4=1    C) v1=5,v2=8,v3=6,v4=1      D) v1=8,v2=8,v3=8,v4=8    (65) 当执行下面程序且输入:ABC时,输出的结果是    #include<stdio.h>    #include<string.h>    main()   &#

144、160; char ss10="12345"    gets(ss);printf("%sn",ss);            A) ABC           B) ABC9           C) 123

145、456ABC        D) ABC456789    (66) 下面程序的输出是    #include<string.h>    main()     char*a="abcdefgh"    fun(a);puts(a);       fun (char * s)     int x=0,y;char c;    for(y=strlen(s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论