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

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

(46) 下面能正确进行字符串赋值操作的语句是

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

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

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

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

  (47) 以下程序运行后,如果从键盘上输入ABCDE<回车>,则输出结果为

  A) 8

  B) 7

  C) 6

  D) 5

以下是引用片段:
  #include
  #include
  func 
  { int num=0;
  while(*(str+num)!='\0') num++;
  return(num);
  }
  main()
  { char str[10],*p=str;
  gets(p); printf("%d\n",func(p));
  }

  (48) 下面程序运行的结果是

  A) 2ba56

  B) 6521

  C) 6

  D) 62

以下是引用片段:
  main()
  { char ch[7]={65ab21"};
  int i,s=0
  for(i=0;ch[i]>='0' && ch[i]<='9';i+=2)
  s=10*s+ch[i]-'0';
  printf("%d\n",s);
  }

  (49) 运行下面的程序,如果从键盘上输入:

  ab<回车>

  c <回车>

  def<回车>

  则输出结果为

  A) a B) a C) ab D) abcdef

  b b c

  c c d

  d d

  e

  f

以下是引用片段:
  #include
  #define N 6
  main()
  { char c[N];
  int i=0;
  for( ;i 
  for( i=0;i 
  }

  (50) 以下程序运行后,输出结果是

  A) 8

  B) 7

  C) 6

  D) 5

以下是引用片段:
  #include
  ss(char *s)
  { char *p=s;
  while(*p) p++;
  return(p-s);
  }
  main()
  { char *a="abded";
  int i;
  i=ss(a);
  printf("%d\n",i);
  }

(51) 以下程序运行后,输出结果是

  A) 6385

  B) 22

  C) 33

  D) 693825

以下是引用片段:
  main()
  { char ch[2][5]={'693","825"},*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' && p[i][j]<='9';j+=2)
  s=10*s+p[i][j]-'0';
  printf("%d\n",s);
  }

  (52) 以下程序运行后,输出结果是

  A) 1234567

  B) 7654321

  C) 1711717

  D) 7177171

以下是引用片段:
  #inchude 
  #inchude 
  fun(char *w, int n)
  { char t, *s1,*s2;
  s1=w: s2=w+n-1;
  while(s1 
  { t=*s1++;
  *s1=*s2--;
  *s2=t;
  }
  }
  main()
  { char *p;
  p="1234567";
  fun(p,strlen(p));
  puts(p);
  }

  (53) 以下程序运行后,如果从键盘上输入:

  book <回车>

  book <空格><回车>

  则输出的结果是

  A) *8

  B) #9

  C) #6

  D) *9

以下是引用片段:
  #include
  main()
  { char a1[80],a2[80],*s1=a1, *s2=a2;
  gets(s1); gets(s2);
  if(! strcmp(s1,s2)) printf("*");
  esle printf("#");
  printf("%d/n",strlen(strcat(s1,s2)));
  }

  (54) 给出以下定义:

  char x[ ]="abcdefg";

  char y[ ]={'a','b','c','d','e','f','g'};

  则正确的叙述为

  A) 数组X和数组Y等价

  B) 数组x和数组Y的长度相同

  C) 数组X的长度大于数组Y的长度

  D) 数组X的长度小于数组Y的长度

  (55) 有以下程序

以下是引用片段:
  main()
  { char a[]="programming", b[]="language";
  char *p1,*p2;
  int i;
  p1=a; p2=b;
  for(i=0;i<7;i++)
  if(*(p1+i)==*(p2+i)) printf("%c",*(p1+i));
  }

  输出结果是

  A) gm

  B) rg

  C) or

  D) ga

(56) 若有以下定义:

  char s[20]="programming",*ps=s;

  则不能代表字符o的表达式是

  A) ps+2

  B)s[2]

  C) ps[2]

  D)ps+=2,*ps

  (57) 若有以下定义和语句:

  char *s1="12345",*s2="1234";

  printf("%d\n",strlen(strcpy(s1,s2)));

  则输出结果是

  A) 4

  B)5

  C)9

  D)10

  (58) 下面程序的输出是

以下是引用片段:
  main()
  { char *s="121";
  int k=0, a=0, b=0;
  do {k++;
  if(k%2==0) {a=a+s[k]-'0';
  continue;}
  b=b+s[k]-'0';
  a=a+s[k]-'0';
  }
  while (s[k+1]);
  printf("k=%d a=%d b=%d\n",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

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

以下是引用片段:
  #include
  #include
  main()
  { char w[][10]={"ABCD","EFGH","IJKL","MNOP"},K;
  for (k=1;k<3;k++)
  printf("%s\n",&w[k][k]);
  }

  A)ABCD                          B)ABCD
   FGH                                 EFG
   KL                                     IJ
   M
  C)EFG                            D)FGH
   JK                                 KL
   O

  (60) 若有以下程序片段:

  char str[]="ab\n\012\\\"";

  printf(%d",strlen(str));

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

  A)3

  B)4

  C)6

  D)12

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

评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。

考试全流程