首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 计算机考试 > 等级考试 > 二级考试 >

2013计算机二级C语言练习题五(附答案)

2013-03-04 

  (31)有下面程序段

  #include "stdio.h"

  #include "string.h"

  main()

  { char a[3][20]={{"china"},{"isa"},{"bigcountry!"}};

  char k[100]={0},*p=k;

  int i;

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

  { p=strcat(p,a[i]);}

  i=strlen(p);

  printf("%d\n",i);}

  则程序段的输出结果是

  A)18 B)19 C)20 D)21

  (32)若有定义: char *st= "how are you "; ,下列程序段中正确的是

  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);

  (33)有以下程序

  #include

  int fun(char s[])

  { int n=0;

  while(*s<=′9′&&*s>=′0′) {n=10*n+*s-′0′;s++;}

  return(n);

  }

  main()

  { char s[10]={′6′,′1′,′*′,′4′,′*′,′9′,′*′,′0′,′*′};

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

  }

  程序的运行结果是

  A)9 B)61490 C)61 D)5

  (34)设有定义:char p[]={′1′,′2′,′3′},*q=p;,以下不能计算出一个char型数据所占字节数的表达式是

  A)sizeof(p) B)sizeof(char) C)sizeof(*q) D)sizeof(p[0])

  (35)有以下函数

  int aaa(char *s)

  { char *t=s;

  while(*t++);

  t--;

  return(t-s);

  }

  以下关于aaa函数的功能的叙述正确的是

  A)求字符串s的长度 B)比较两个串的大小 C)将串s复制到串t D)求字符串s所占字节数

  参考答案

  (31)B 【解析】字符串连接函数strcat的调用形式如下:strcat(s1,s2)。此函数将s2所指字符串的内容连接到s1所指的字符串后面,并自动覆盖s1串末尾的尾标,函数返回s1的地址值。

  (32)A 【解析】本题综合考查字符数组的赋值和strcpy函数的用法。C语言不允许用赋值表达式对字符数组赋值,如下面的语句就是非法的:str1="China",如果想把"China"这5个字符放到数组str1中,除了逐个输入外,还能使用strcpy函数,该函数的功能是将一个字符串复制到一字符数组中。例如:strcpy(str1,"China")或strcpy(str1,str2);注意,不能企图用以下语句来实行赋值(将str2的值传给str1):str1=str2;不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。

  strcpy函数的结构是:strcpy(字符数组1,字符串2)

  其中,需要注意的是,字符数组1的长度不应小于字符串2的长度,"字符数组1"必须写成数组名形式,如(str1),"字符串2"可以是字符数组名,也可以是字符串常量,不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。

  (33)C 【解析】在fun函数中,while循环的功能是:逐个取字符数组s的字符判断其是否是数字。若是则将其作为个位数字保存到变量n中,n的原数据的各个数位将相应左移一个10进制位。当指针s指向数组的第3位时,循环条件不成立,循环结束,返回n 的值,输出n的值为61。

  (34)A 【解析】在本题中,p和q同为指向字符类型数据的指针。*q 和p[0]同为字符型数据。选项B)、C)和D)都符合题目的要求;选项A)计算得出的是指针类型数据所占的内存字节数。

  (35)A 【解析】循环开始前,指针t和s都指向字符串的起始位置,然后通过while循环判断t指向的位置是否为空,同时让t向右移动一位。while循环结束时,t自减1,此时t指向的位置是字符串的结束标志'\0'处,故t-s的值是字符串的长度,并不包括结束标志。


热点排行