计划总结网 > 考试 > 计算机考试 > 计算机等级考试 > 计算机二级考试 > C语言程序设计 >

计算机二级考试c语言考试试题

时间: 伟文2 C语言程序设计

  在计算机C语言的二级考试中,有哪些类型的考试试题呢?下面是学习啦小编给大家整理的计算机二级考试c语言程序填空题及答案和例题精讲,供大家参阅!

  计算机二级考试c语言考试程序填空题及答案

  下列给定程序中,函数fun的功能是:从形参ss所指字符串数组中,删除所有串长超过k的字符串,函数返回剩余字符串的个数。ss所指字符串数组中共有N个字符串,且串长小于M。

  请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。

  注意:部分源程序给出如下。

  不得增行或删行,也不得更改程序的结构!

  试题程序:

  参考解析:

  【参考答案】

  (1)N (2)k (3)SS[i]

  【考点分析】

  本题考查:for循环语句;if语句条件表达式;字符串复制函数strcpy的使用。

  【解题思路】

  填空l:for循环语句的作用是遍历字符串数组中的每一个字符串,所以循环变量i的循环条件是i

  填空2:题目要求删除串长度大于k的字符串,所以if条件语句的条件表达式是len<=k。

  填空3:通过字符串复制函数将串长不大于k的字符串另存,并记录个数。

  【解题宝典】

  字符串复制函数strcpy,其格式为:

  strcpy(字符数组名1,字符数组名2)

  功能:把字符数组2中的字符串复制到字符数组l中。字符串结束标识‘\0’也一同复制。字符数组名2,也可以是一个字符串常量,这时相当于把一个字符串赋予一个字符数组。

  计算机二级考试c语言例题精讲一

  人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入 结构体数组std中,且编号唯一。函数fun的功能是:找出指定编号人员的数据, 作为函数值返回,由主函数输出,若指定编号不存在,返回数据中的编号为空串。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

  注意:源程序存放在考生文件夹下的BLANK1.C中。

  不得增行或删行,也不得更改程序的结构!

  给定源程序:

  #include

  #include

  #define N 8

  typedef struct

  { char num[10];

  int year,month,day ;

  }STU;

  ___1___ fun(STU *std, char *num)

  { int i; STU a={"",9999,99,99};

  for (i=0; i

  if( strcmp(___2___,num)==0 )

  return (___3___);

  return a;

  }

  main()

  { STU std[N]={ {"111111",1984,2,15},{"222222",1983,9,21},{"333333",1984,9,1},

  {"444444",1983,7,15},{"555555",1984,9,28},{"666666",1983,11,15},

  {"777777",1983,6,22},{"888888",1984,8,19}};

  STU p; char n[10]="666666";

  p=fun(std,n);

  if(p.num[0]==0)

  printf("\nNot found !\n");

  else

  { printf("\nSucceed !\n ");

  printf("%s %d-%d-%d\n",p.num,p.year,p.month,p.day);

  }

  }

  解题思路:

  本题是要求从给定的人员数据中找出编号相同的记录数据。

  第一处:从返回值来看,是返回一个结构型的值,所以应填:STU。

  第二处:判断结构变量中的编号num是否相等,所以应填:stu[i].num。

  第三处:返回编号相等的记录值,所以应填:std[i]。

  计算机二级考试c语言例题精讲二

  给定程序MODI1.C中函数fun的功能是:从s所指字符串中,找出与t所指字符串相同的子串的个数作为函数值返回。

  例如,当s所指字符串中的内容为:"abcdabfab",t所指字符串的内容为:

  "ab",则函数返回整数3。

  请改正程序中的错误,使它能得出正确的结果。

  注意:不要改动main 函数,不得增行或删行,也不得更改程序的结构!

  给定源程序:

  #include

  #include

  int fun (char *s, char *t)

  {

  int n; char *p , *r;

  n = 0;

  while ( *s )

  { p = s; r = t;

  while ( *r )

  if ( *r == *p ) {

  r++; p++

  }

  else break;

  if ( r == '\0' )

  n++;

  s++;

  }

  return n;

  }

  main()

  {

  char s[100], t[100]; int m;

  printf("\nPlease enter string S:"); scanf("%s", s);

  printf("\nPlease enter substring t:"); scanf("%s", t);

  m = fun( s, t);

  printf("\nThe result is: m = %d\n", m);

  }

  解题思路:

  第一处:语句后缺少分号。

  第二处:判断r的当前字符是否是字符串结束符,所以应改为:if(*r==0)。


看了“计算机二级考试c语言考试试题”

20854