C语言练习.docx

上传人:b****8 文档编号:9989646 上传时间:2023-02-07 格式:DOCX 页数:39 大小:34.43KB
下载 相关 举报
C语言练习.docx_第1页
第1页 / 共39页
C语言练习.docx_第2页
第2页 / 共39页
C语言练习.docx_第3页
第3页 / 共39页
C语言练习.docx_第4页
第4页 / 共39页
C语言练习.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

C语言练习.docx

《C语言练习.docx》由会员分享,可在线阅读,更多相关《C语言练习.docx(39页珍藏版)》请在冰豆网上搜索。

C语言练习.docx

C语言练习

一、选择题

    

(1)若有语句:

char *line[5];,以下叙述中正确的是

     A)定义line是一个数组,每个数组元素是一个基类型为char的指针变量

     B)定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组

     C)定义line是一个指针数组,语句中的*号称为间址运算符

     D)定义line是一个指向字符型函数的指针

    

(2)有以下程序

     #include   

     main()

     {char p[]={'a','b','c'}, q[10]={'a','b','c'};

      printf("%d%d\n",strlen(p),strlen(q));

     }

    以下叙述中正确的是

     A)在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3

     B)由于p数组中没有字符串结束符,长度不能确定;但q数组中字符串长度为3

     C)由于q数组中没有字符串结束符,长度不能确定;但p数组中字符串长度为3

     D)由于p和q数组中都没有字符串结束符,故长度都不能确定

    (3)有以下程序,其中函数f的功能是将多个字符串按字典顺序排序

     #include   

     voidf(char *p[],int n)

     {char *t;   int i,j;

      for(i=0;i

        for(j=i+1;j

          if(strcmp(p[i],p[j])>0){t=p[i]; p[i]=p[j]; p[j]=t; }

     }

     main()

     {char *p[5]={"abc","aabdfg","abbd","dcdbe","cd"};

      f(p,5);

      printf("%d\n",strlen(p[1]));

     }

    程序运行后的输出结果是

     A)2   B)3   C)6   D)4

    (4)有定义语句:

int b;char c[10]; ,则正确的输入语句是_____

    A)scanf("%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 a[5]={0,1,2,3,4,5};

    B)char a[]={0,1,2,3,4,5};

    C)char a={'A','B','C'};

    D)int a[5]="0123";

    (6)已有定义:

chara[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是_____

    A)数组a和b的长度相同

    B)a数组长度小于b数组长度

    C)a数组长度大于b数组长度

    D)上述说法都不对

    (7)以下语句或语句组中,能正确进行字符串赋值的是    

    A)char *sp; *sp="right!

";

    B)chars[10]; s="right!

";

    C)char s[10]; *s="right!

";

    D)char *sp="right!

";

    (8)有以下程序

    main()

    {

      char s[]="159",*p;

      p=s;

      printf("%c",*p++);

      printf("%c",*p++);

    }

    程序运行后的输出结果是 

    A)15

    B)16

    C)12

    D)59

    (9)有以下函数

    fun(char *a,char *b)

    {

      while((*a!

='\0')&&(*b!

='\0')&&(*a==*b))

      {  a++;  b++;}

      return (*a-*b);

    }

    该函数的功能是                                  

    A)计算a和b所指字符串的长度之差

    B)将b所指字符串复制到a所指字符串中

    C)将b所指字符串连接到a所指字符串后面

    D)比较a和b所指字符串的大小

    (10)有以下程序

    point(char *p)

    {

      p+=3;

    }

    main()

    {  char b[4]={'a','b','c','d'},*p=b;

       point(p);   printf("%c\n",*p);

    }

    程序运行后的输出结果是          

    A)a

    B)b

    C)c

    D)d

    (11)s12和s2已正确定义并分别指向两个字符串。

若要求:

当s1所指串大于s2所指串时,执行语句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()

    {charstr[][10]={"China","Beijing"},*p=str;

     printf("%s\n",p+10);

    }

    程序运行后的输出结果是

    A)China   B)Bejing  C)ng   D)ing

     (13)有以下程序

    main()

    {chars[]="ABCD",*p;

     for(p=s+1;p

    }

    程序运行后的输出结果是

    A)ABCD     B)A     C)B     D)BCD

      BCD           B          C         CD

      CD             C          D          D

      D              D

    (14)有以下程序

    main()

    {chars[]"Yes\n/No",*ps=s;

     puts(ps+4);

     *(ps+4)=0;

     puts(s);

    }

    程序运行后的输出结果是(选项D中的第一行是空行)

    A)n/No   B)/No   C)n/NO   D)

      Yes           Yes        Yes            /No

      /No                            /No     Yes

    (15)有以下定义

    #include

    chara[10],*b=a;

    不能给数组a输入字符串的语句是

    A)gets(A)   B)gets(a[0])  C)gets(&a[0]); D)gets(B);

     (16)有以下程序

    main()

    {char*p[10]={“abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”};

     printf(“%d\n”,strlen(p[4]));

    }

    执行后输出结果是

    A)2    B)3    C)4    D)5

    (17)以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是

    A)chars[10]=”abcdefg”;  B)chart[]=”abcdefg”,*s=t;

    C)chars[10];s=”abcdefg”;  D)chars[10];strcpy(s,”abcdefg”);

    (18)下列选项中正确的语句组是

    A)char s[8]; s={"Beijing"}; B)char *s; s={"Beijing"};

    C)char s[8]; s="Beijing";   D)char *s; s="Beijing";

    (19)以下程序中函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址

    #include  

    #include  

    char *scmp(char *s1, char  *s2)

    { if(strcmp(s1,s2<0)

    return(s1);

    else  return(s2);

    }

    main()

    { int I;   char   string[20], str[3][20];

    for(i=0;i<3;i++) gets(str[i]);

    strcpy(string,scmp(str[0],str[1]));/*库函数strcpy对字符串进行复制*/

    strcpy(string,scmp(string,str[2]));

    printf("%s\n",string);

    }

    运行时依次输入:

abcd、abba和abc三个字符串,则输出结果为

    A)abcd        B)abba         C)abc             D)abca

    (20)有以下程序

    #include  

    main()

    {char  str[][20]={"Hello","Beijing"},*p=str;

    printf("%d\n",strlin(p+20));

    }

    程序运行后的输出结果是

    A)0           B)5           C)7             D)20

    (21)已定义以下函数

    fun(char *p2, char  *p1)

    {  while((*p2=*p1)!

=‘\0’){p1++;p2++;} }

    函数的功能是

    A)将p1所指字符串复制到p2所指内存空间

    B)将p1所指字符串的地址赋给指针p2

    C)对p1和p2两个指针所指字符串进行比较

    D)检查p1和p2两个指针所指字符串中是否有‘\0’

    (22)有以下程序

    main()

    { char  *s[]={"one","two","three"},*p;

     p=s[1];

     printf("%c,%s\n",*(p+1),s[0]);

    }

    执行后输出结果是

    A)n,two    B)t,one   C)w,one   D)o,two

    (23)阅读以下函数

    fun(char *s1,char *s2)

    {  int  i=0;

    while(s1[i]==s2[i]&&s2[i]!

=‘\0’)i++;

    return(s1[i]==&&s2{i}!

==‘\0’);

    }

    此函数的功能是

    A)将s2所指字符串赋给s1

    B)比较s1和s2所指字符串的大小,若s1比s2的大,函数值为1,否则函数值为0

    C)比较s1和s2所指字符串是否相等,若相等,函数值为1,否则函数值为0

    D)比较s1和s2所指字符串的长度,若s1比s2的长,函数值为1,否则函数值为0

    (24)有以下程序

    main()

    {  char str[]="xyz",*ps=str;

    while(*ps)ps++;

    for(ps--;ps-str>=0;ps--) puts(ps);

    }

    执行后的输出结果是

    A)yz   B)z   C)z   D)x

    xyz     yz     yz     xy

    xyz     xyz

    (25)有以下程序

    #include

    main()

    {char*p=“abcde\Ofghjik\0”;

    printf(“%d\n”,strlen(p));

    }

    程序运行后的输出结果是

    A)12   B)15   C)6   D)5

    (26)有以下程序

    voidss(char*s,chart)

    {while(*s)

    {if(*s==t)*s=t-‘a’+’A’;

     s++;

    }

    }

    main()

    {charstr1[100]=“abcddfefdbd”,c=’d’;

    ss(str1,c);  printf(“%s\n”,str1);

    }

    程序运行后的输出结果是

    A)ABCDDEFEDBD       B)abcDDfefDbD

    C)abcAAfefAbA     D)Abcddfefdbd

    (27)以下程序的输出结果是

    char cchar(char ch)

    {

    if(ch>=‘A’&&ch<=‘Z') ch=ch-‘A'+‘a';

    return ch;

    }

    main()

    { char  s[]="ABC+abc=defDEF",*p=s;

    while(*p)

    {*p=cchar(*p);

    p++;

    }

    printf("%s\n",s);

    }

    A)abc+ABC=DEFdef         B)abc+abc=defdef

    C)abcaABCDEFdef          D)abcabcdefdef

    (28)以下程序段的输出结果是

    char  s[]="\\141\141abc\t";

    printf ("%d\n",strlen(s));

    A)9        B)12          C)13        D)14

    (29)以下程序的输出结果是

    main()

    { char  cf[3][5]={"AAAA","BBB","CC"};

    printf("\"%s\"\n",ch[1]);

    }

    A)"AAAA"     B)"BBB"    C)"BBBCC"   D)"CC"

    (30)以下程序的输出结果是

    #include 

    #include 

    main() 

    { char b1[8]="abcdefg",b2[8],*pb=b1+3;

    while(--pb>=b1) strcpy(b2,pb);

    printf("%d\n",strlen(b2));

    }

    A)8   B)3   C)1     D)7

    (31)以下定义语句中,错误的是

    A)int a[]={1,2};    B)char *a[3];

    C)chars[10]=”test”;  D)int n=5,a[n];

    (32)以下选项中,不能正确赋值的是

    A)char s1[10];s1=“Ctest”;

    B)char s2[]={‘C’,‘t’,‘e’,‘s’,‘t’};

    C)char s3[20]=“Ctest”;

    D)char *s4=“Ctest\n”

    (33)以下程序的输出结果是

    A)ABCD   B)ABCD    C)EFG    D)EFGH

    FGH      EFG      JK      IJKL

    KL      IJ      O

           M

    main()

    {char  w[][10]={“ABCD”,”EFGH”,”IJKL”,”MNOP”},k;

     for(k=1;k<3;k++)  printf(“%s\n”,w[k]);

    }

    (34)当执行下面的程序时,如果输入ABC,则输出结果是

    A)ABC6789     B)ABC67  C)12345ABC6    D)ABC456789

    #include “stdio.h”

    #include “string.h”

    main()

    {char ss[10]=“1,2,3,4,5”;

     gets(ss);strcat(ss,“6789”); printf(“%s\n”,ss);

    }

    (35)有如下程序

    main()

    {   char    s[]=”ABCD”,  *P;

    for(p=s+l;p

    }

    该程序的输出结果是

    A)ABCD           B)A              C)B             D)BCD

    BCD               B                 C                CD

    CD                C                 D                D

    D                 D

    (36)有如下程序

    main()

    {   char    ch[2][5]={“6937”,”8254”},*p[2];

    int     i,j,s=0;

    for(i=0;i<2;i++)    p[i]=ch[i];

    for(i=0;i<2;i++)

    for(j=0;p[i][j]>’\0’;j+=2)

    s=10*s+p[i][j]-‘0’;

    printf(“%d\n”,s);

    }

    该程序的输出结果是

    A)69825          B)63825          C)6385          D)693825

    (37)设有数组定义:

chararray[]="China";则数组array所占的空间为

        A)4个字节     B)5个字节       C)6个字节      D)7个字节

    (38)设已有定义:

char*st="howareyou";下列程序段中正确的是

        A)char a[11],*p; strcpy(p=a+1,&st[4]);

        B)char a[11];     strcpy(++a,st);

        C)char a[11];     strcpy(a,st);

        D)char a[],*p;   strcpy(p=&a[1],st+2);

    (39)下列程序执行后的输出结果是

        A)you&ne      B)you           C)me           D)err

        mai()

        {char arr[2][4];

          strcpy(arr,"you"); strcpy(arr[1],"me");

          arr[0][3]='&';

          printf("%s\n",arr);

        }

    (40)执行下列程序时输入:

123<空格>456<空格>789<回车>,输出结果是

        A)123,456,789                   B)1,456,789

        C)1,23,456,789                  D)1,23,456

        main()

        { char s[100]; int c,i;

           scanf("%c",&c); scanf("%d",&i); scanf("%s",s);

           printf("%c,%d,%s\n",c,i,s);

        }

    (41)下列描述中不正确的是

      A)字符型数组中可以存放字符串

      B)可以对字符型数组进行整体输入、输出

      C)可以对整型数组进行整体输入、输出

      D)不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值

    (42)以下程序的输出结果是

      A)123456780   B)123 456 780 C)12345678 D)147

      main( )

      {  char   ch[3][4]={"123","456","78"},*p[3]; int  i;

          for(i=0;i<3;i++)   p[i]

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1