全国计算机等级考试二级C语言之字符串

出处:ExamLink.com收集整理 作者:唐易龙 日期:2007年03月20日 11时09分

(76) 下面各语句行中,能正确进行赋字符串操作的语句行是

  A) char st[4][5]={"ABCDE"};

  B) char s[5]={'A','B','C','D','E'};

  C) char *s; s="ABCDE";

  D) char *s; scanf("%s",s);

  (77) 请读程序:

以下是引用片段:
  #include
  f(char *s)
  { char *p=s;
  while( *p!='\0') p++;
  return(p-s);
  }
  main()
  { printf("%d\n",f("ABCDEF"));}

  上面程序的输出结果是

  A) 3

  B) 6

  C) 8

  D) 0

  (78) 请读程序片段:

  char str[]="ABCD", *p=str;

  printf("%d\n",*(p+4));

  上面程序的输出结果是

  A) 68

  B) 0

  C) 字符"D"的地址

  D) 不确定的值

  (79) 请读程序片段(字符串内没有空格):

  printf("%d\n",strlen("ATS\n012\1\\"));

  上面程序片段的输出结果是

  A) 11

  B) 10

  C) 9

  D) 8

  (80) 请读程序:

以下是引用片段:
  #include
  #include
  main()
  { char*s1="AbCdEf", *s2="aB";
  s1++; s2++;
  printf("%d\n",strcmp(s1,s2));
  }

  上面程序的输出结果是

  A) 正数

  B) 负数

  C) 零

  D) 不确定的值

(81) 请读程序:

以下是引用片段:
  #include
  char fun(char *c)
  { if( *c<='Z' && *c>='A') *c-='A'-'a';
  return *c;
  }
  main()
  { char s[81], *p=s;
  gets(s);
  while(*p)
  {*p=fun(p); putchar(*p); p++;}
  putchar('\n');
  }

  若运行时从键盘上输入OPEN THE DOOR(表示回车),则上面程序的输出结果是

以下是引用片段:
  A) oPEN tHE door
  B) open the door
  C) OPEN THE DOOR
  D) Open The Door
  (82) 请读程序:
  #include
  #include
  void fun( char *s)
  { char a[10];
  strcpy( a, "STRING");
  s=a;
  }
  main()
  { char *p;
  fun(p);
  x=f(a, 3);
  printf("%s\n",p);
  }

  上面程序的输出结果是(└┘表示空格)

  A) STRING└┘└┘└┘└┘

  B) STRING

  C) STRING└┘└┘└┘

  D) 不确定的值

  (83) 请读程序:

以下是引用片段:
  #include
  #include
  void fun( char *w, int m)
  { char s, *p1, *p2;
  p1=w; p2=w+m-1;
  while (p1 
  { s=*p1++; *p1=*p2--; *p2=s;}
  }
  main()
  { char a[]="ABCDEFG";
  fun( a, strlen(a));
  puts(a);
  }

  上面程序的输出结果是

  A) GFEDCBA

  B) AGADAGA

  C) AGAAGAG

  D) GAGGAGA

  (84) 请选出以下语句的输出结果

  printf("%d\n",strlen("\t\"\065\xff\n"));

  A) 5

  B) 14

  C) 8

  D) 输出项不合法,无正常输出

  (85) 设有如下的程序段:

  char str[ ]="Hello";

  char *ptr;

  ptr=str;

  执行上面的程序段后,*(ptr+5)的值为

  A) 'o'

  B) '\0'

  C) 不确定的值

  D) 'o'的地址

  (86) 设有static char str[ ]="Beijing";则执行printf("%d\n", strlen(strcpy(str,"China")));后的输出结果为

  A) 5

  B) 7

  C) 12

  D) 14

  (87) 请选出以下程序段的输出结果

以下是引用片段:
  #include
  main()
  { char sl[10], s2[10], s3[10], s4[10];
  scanf("%s%s",s1,s2); gets(s3); gets(s4);
  puts(s1); puts(s2); puts(s3); puts(s4);
  }

  输入数据如下:(此处代表回车符)

  aaaa bbbb

  cccc dddd

  A) aaaa          B) aaaa           C) aaaa           D) aaaa bbbb
   bbbb                bbbb                bbbb                cccc
   cccc                cccc                dddd                dddd
   cccc                dddd                dddd                eeee

  (88) 指针s所指字符串的长度为 【88】 。

  char *s="\\"Name\\Address\n";

  A) 19

  B) 15

  C) 18

  D) 说明不合法

  (89) 以下程序的输出结果是 【89】 。

  # include

  # include

  main()

  { char str[12]={'s','t','r','i','n','g'};

  printf("%d\n",strlen(str)); }

  A) 6

  B) 7

  C) 11

  D) 12

  (90) 以下程序的输出结果为 【90】 。

以下是引用片段:
  main()
  { char *alpha[6]={"ABCD","IJKL","MNOP","QRST","UVWX"};
  char **p; int i;
  p=alpha;
  for(i=0;i<4;i + + ) printf("%s",p[i]); printf("\n"); }

  A) ABCDEFGHIJKL

  B) ABCD

  C) ABCDEFGHIJKLMNOP

  D) AEIM

  (91) 设有以下语句:

以下是引用片段:
  char str[4][12]={"aaa","bbbb","ccccc","dddddd"},
  *strp[4];
  int i;
  for(i=0;i<4;i + + )strp[i]=str[i];

  【91】 不是对字符串的正确引用,其中0≤k<4。

  A) strp

  B) str[k]

  C) strp[k]

  D) *strp

  (92) 设有以下语句:

  char str1[]="string",str2[8],*str3,*str4="string";

  则 【92】 不是对库函数strcpy的正确调用,此库函数用业复制字符串。

  A) strcpy(str1,"HELLO1"); B) strcpy(str2,"HELLO2");

  C) strcpy(str3,"HELLO3"); D) strcpy(str4,"HELLO4");

  二、填空题:

  (1)以下函数sstrcat()的功能是实现字符串的连接,即将t所指字符串复制到s所指字符串的尾部。例如:s所指字符串为abcd,t所指字符串为efgh,函数调用后s所指字符串为abcdefgh。请填空。

以下是引用片段:
  # include 
  void sstrcat(char *s, char *t)
  { int n;
  n= strlen(s);
  while (*(s+n)= 【1】 ){s++; t++;}
  }

  (2)以下程序运行后的输出结果是 【2】

以下是引用片段:
  #include 
  char *ss(char *s)
  { char *p, t;
  p=s+1; t=*s;
  while(*p) { *(p-1) = *p; p++;}
  *(p-1)=t;
  return s;
  }
  main()
  { char *p, str[10]="abcdefgh";
  p = ss(str) ;
  printf("%s\n",p);
  }

  (3)以下程序运行后的输出结果是 【3】

以下是引用片段:
  #include "string.h"
  void fun(char *s,int p,int k)
  { int i;
  for(i=p;i 
  s[i]=s[i+2];
  }
  main()
  { char s[]="abcdefg";
  fun(s,3,strlen(s));
  puts(s);
  }

  (4)以下程序运行后的输出结果是【4】

以下是引用片段:
  #include "string.h"
  main()
  {
  char ch[]="abc",x[3][4]; int i;
  for(i=0;i<3;i++) strcpy(x[i],ch);
  for(i=0;i<3;i++) printf("%s",&x[i][i]);
  printf("\n");
  }

  (5)以下程序中函数huiwen的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串:yes

  yes!,否则函数返回字符串:no!,并在主函数中输出.所谓回文即正向与反向的拼写都一样,例如:adgda.请填空.

以下是引用片段:
  #include "string.h"
  char *huiwen(char *str)
  {
  char *p1,*p2; int i,t=0;
  p1=str; p2= ①
  for(i=0;i<=strlen(str)/2;i++)
  if(*p1++!=*p2--)
  { t=1; break; }
  if( ②) return ("yes!");
  else return ("no!");
  }
  main()
  {
  char str[50];
  printf("Input:"); scanf("%s",str);
  printf("%s\n", ③ );
  }
  【5】
  【6】
  【7】

最后更新时间:2008-05-28 11:43:04
文章评论
共有 0 位网友发表了评论
用户名: 新注册) 密码: 匿名评论 [查看所有评论]

评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
您可以用以下几种方式找到此文章

考试全流程