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

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

(21) 下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其它元素不变。请填空。

以下是引用片段:
  #include 
  #include 
  main()
  { char a[]="clanguage",t;
  int i, j, k;
  k=strlen(a);
  for(i=0; i<=k-2; i+=2)
  for(j=i+2; j<=k; [27] )
  if( [28] )
  { t=a[i]; a[i]=a[j]; a[j]=t; }
  puts(a);
  printf("\n");
  }

  (22) 以下程序的功能是:将无符号八进制数字构成的字符串转换为十进制整数。例如,输入的字符串为:556,则输出十进制整数366。请填空。

以下是引用片段:
  #include 
  main()
  { char *p, s[6];
  int n;
  p=s;
  gets(p);
  n=*p-'0';
  while( [29] !='\0')n=n*8+*p-'0';
  printf("%d \n",n);
  }

  (23) 下列程序的输出结果是 【30】 。

以下是引用片段:
  #include
  main( )
  { char b[30],*chp;
  strcpy(&b[0],"CH");
  strcpy(&b[1],"DEF");
  strcpy(&b[2],"ABC");
  printf("%s \n",b);
  }

  (24) 下列程序中字符串中各单词之间有一个空格,则程序的输出结果是 【31】 。

以下是引用片段:
  #include
  main( )
  { char strl[]="How do you do", *p1=strl;
  strcpy(strl+strlen(strl)/2,"es she");
  printf("%s \n",pl);
  }

  (25) 若想通过以下输入语句使a中存放字符串1234,b中存放字符5,则输入数据的形式应该是【32】

  :

  .

  char a[10],b;

  scanf("a=%s b=%c",a,&b);

  :

  .(26) 下面程序的输出结果是 【33】

以下是引用片段:
  char b[]="ABCD";
  main()
  { char *chp;
  for(chp=b; *chp: chp+=2) printf("%s",chp);
  printf("\n");

  (27) 以下程序输出的是 【34】

以下是引用片段:
  main( )
  { int i=3, j=2;
  char *a="DCBA";
  printf("%c%c\n",a[i],a[j]);
  }

  (28) 函数fun的功能是:使一个字符串按逆序存放,请填空

以下是引用片段:
  void fun (char str[])
  { char m; int i,j;
  for(i=0,j=strlen(str);i<【35】;i++,j--)
  { m=str[i];
  str[i]=【36】;
  str[j-1]=m;
  }
  printf("%s\n",str);
  }

  (29) 以下程序的功能是:从键盘上输入一行字符,存入一个字符数组中,然后输出该字符串,请填空。

以下是引用片段:
  #include"ctype.h"
  #include"stdio.h"
  main()
  { char str[81],*sptr;
  int i;
  for(i=0;i<80;i++)
  { str[i]=getchar();
  if(str[i]=='\n') break;
  }
  str[i]=【37】;
  sptr=str;
  while(*sptr) putchar(*sptr【38】);
  }

  (30) 以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差。例如:输入的两个字符串分别为abcdef和abceef,则输出为-1。请填空。

以下是引用片段:
  #include
  main()
  { char str[100],str2[100],c;
  int i,s;
  printf("\n input string 1:\n"); gest(str1);
  printf("\n input string 2:\n"); gest(str2);
  i=0;
  while((strl[i]==str2[i]&&(str1[i]!=【39】))
  i++;
  s=【40】;
  printf("%d\n",s);
  }

  (31) 以下程序可以把从键盘上输入的十进制数(long型)以二到十六进制形式输出,请填空。

以下是引用片段:
  #include.
  main()
  { char b[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C'
  ,'D','E','F'};
  int c[64],d,i=0,base;
  long n;
  printf("enter a number:\n"); scanf("%ld",&n);
  printf("enter new base:\n"); scanf("%d",&base);
  do
  { c[i]=【41】;
  i++; n=n/base;
  } while(n!=0);
  printf("transmite new base:\n");
  for(--i;i>=0;--i)
  { d=c[i];
  printf("%c",b【42】;
  }
  }

  (32) 函数mycmp (char*s,chat *t)的功能是比较字符串s和t的大小,当s等于t 时返回0,否则返回s和t的第一个不同字符的ASCOII码的差值,即当s>t时返回正值, 当s等于t 时返回0,否则返回s和t的第一个不同字符的ASCOII码的差值,即当s>t时返回正值, 当s<t时返回负值,请填空。

以下是引用片段:
  mycmp(char *s,char *t)
  { while(*s==*t)
  {if(*s=='\0') return 0;
  ++s; ++t;}
  return (【43】); }

  (33) 下列程序的输出结果是【44】

以下是引用片段:
  main()
  { char b[]="ABCDEFG";
  char *chp=&b[7];
  while(--chp>&b[0]) putchar(*chp);
  putchar('\n'); }

  (34) 阅读程序:

以下是引用片段:
  #include "string.h"
  #include "stdio.h"
  strle(char a[],char b[])
  { int num=0,n=0;
  while(*(a+num)!='\0'),num++;
  while(b[n]){ *(a+num)=b[n];num++;n++;}
  return (num);}
  main()
  { char str1[81],str2[81],*p1=str1,*p2=str2;
  gets(p1); gets(p2);
  printf("%d\n",strle(p1,p2)); }

  运行上面程序,如果从键盘上输入字符串qwerty和字符串abcd则程序的输出结果是 【45】 。

  (35) 阅读程序:

以下是引用片段:
  main()
  { char str1[]="how do you do" ,str2[10];
  char *p1=str1,*p2=str2;
  scanf("%s",p2); printf("%s",p2); printf("%s\n",p1); }

  运行上面的程序,输入字符串HOW DO YOU DO 则程序的输出结果是【46】 。

(36) 已知函数isalpha(ch)的功能是判断自变量ch是否是字母,若是,函数值为1,否则为0。下面程序的输出是 【47】 。

以下是引用片段:
  #include
  #include
  void fun4( char str[])
  { int i,j;
  for(i=0, j=0; str[i]; i++)
  if(isalpha(str[i])) str[j++]=str[i];
  str[j]='\0';}
  main()
  { char ss[80]="It is!";
  fun4(ss);
  printf( '%s\n", ss);}

  (37) 下面invert函数的功能是将一个字符串str的内容颠倒过来。请填空。

以下是引用片段:
  #include 
  void invert(char str[])
  { int i,j, 【48】 ;
  for(i=0,j=strlen(str) 【49】 ; i 
  { k=str[i]; str[i]=str[j]; str[j]=k;}
  }

  (38) 下面程序的输出结果是 【50】 。

以下是引用片段:
  #include
  main()
  { static char b[]="Goodbye";
  char *chp=&b[7];
  while( --chp >=&b[0]) putchar( *chp);
  putchar('\n');
  }

  (39) 下面程序的输出结果是 【51】 。

以下是引用片段:
  #include
  void fun( char *a1, char *a2, int n)
  { int k;
  for( k=0; k 
  a2[k]=( a1[k]-'A'-3+26)%26+'A';
  a2[n]='\0';
  }
  main()
  { char s1[5]="ABCD", s2[5];
  fun( s1, s2, 4);
  puts( s2);
  }

  (40) 下面程序的输出结果是 【52】 。

以下是引用片段:
  #include 
  main()
  { char *p[]={ "BOOL", "OPK", "H", "SP"};
  int i;
  for(i=3; i>=0; i--,i--) printf( "%c", *p[i]);
  printf("\n");
  }

(41) 设有下列程序:

以下是引用片段:
  #include
  #include
  main()
  { int i;
  char str[10], temp[10];
  gets(temp);
  for (i=0; i<4; i++)
  { gets(str);
  if (strcmp(temp,str)<0) strcpy(temp,str);
  }
  printf("%s\n",temp);
  }

  上述程序运行后,如果从键盘上输入(在此代表回车符):

  C++

  BASIC

  QuickC

  Ada

  Pascal

  则程序的输出结果是 【53】 。

  答案:

  一、选择题:

  01) A 02) B 03) D 04) B 05) B

  06) C 07) D 08) A 09) 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) 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 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) C 53) B 54) C 55) D

  56) A 57) A 58) C 59) D 60) C

  61) C 62) B 63) D 64) C 65) A

  66) D 67) C 68) C 69) D 70) D

  71) A 72) D 73) A 74) D 75) A

  76) C 77) B 78) B 79) C 80) A

  81) B 82) D 83) C 84) A 85) B

  86) A 87) A 88) B 89) A 90) C

  91) A 92) C

  二、填空题:

  (1) *t

  (2) bcdefgha

  (3) abcfg

  (4) abcbcc

  (5) str+strlen(str)-1

  (6) t==0或!t

  (7) huiwen(str)

  (8) gae

  (9) *2*4*6*8*

  (10) *t++

  (11) efgh

  (12) cdeab

  (13) s[i]>='0' && s[i]< ='9'

  (14) s[i]<'0'||s[i]>'9' 或 !(s[i]>='0'&&s[i]<='9')

  (15) '\0'或 0 或 NULL

  (16) *t 或 t[0]

  (17) *s-*t 或 *s-t[0] 或 s[0]-*t 或 s[0]-t[0]

  (18) efgh

  (19) abc

  (20) *(str+i)str[i]

  (21) i

  (22) 9876

  876

  (23) s[i++]

  (24) Hello

  (25) '\0'或0

  (26) n++或n+=1或n=n+1

  (27) j+=2

  (28) a[i]>a[j]

  (29) *(++p)

  (30) CDABC

  (31) How des she

  (32) a=1234 b=5 A或a=1234b=5

  (33) ABCDCD

  (34) AB

  (35) strlen(str )/2

  (36) str[j-1]或*(str+j-1)

  (37) '\0' 或0

  (38) ++

  (39) '\0'或0

  (40) strl[i]-str2[i]

  (41) n%base

  (42) [d]

  (43) *s=*t

  (44) GFEDCB

  (45) 10

  (46) HOW how do you do (说明:HOW 和how之间有无空格均可)

  (47) It is

  (48) k

  (49) -1

  (50) eybdooG

  (51) XYZA

  (52) SO

  (53) QuickC

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

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

考试全流程