分类 考试报名 培训辅导 模拟试题 准考证.成绩

2013年计算机二级C语言上机题库及答案解析(3)

填空题

  给定程序中,函数fun的功能是:在形参ss所指字符串数组中,查找含有形参substr所指子串的所有字符串并输出,若没找到则输出相应信息。ss所指字符串数组中共有N个字符串,且串长小于M。程序中库函数strstr(s1, s2)的功能是在 s1串中查找s2子串,若没有,函数值为0,若有,为非0。

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

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

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

  给定源程序:

  #include

  #include

  #define N 5

  #define M 15

  void fun(char (*ss)[M], char *substr)

  { int i,find=0;

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

  if( strstr(ss[i], __2__) != NULL )

  { find=1; puts(ss[i]); printf("\n"); }

  if (find==__3__) printf("\nDon't found!\n");

  }

  main()

  { char x[N][M]={"BASIC","C langwage","Java","QBASIC","Access"},str[M];

  int i;

  printf("\nThe original string\n\n");

  for(i=0;i  printf("\nEnter a string for search : "); gets(str);

  fun(x,str);

  }

[---分页---]

  解题思路:

  本题是根据给定的字符串数组中查找指定的字符串,如果存在,则显示。

  第一处:利用for循环,从几个字符串中进行查找,程序中已经给定了N个字符串,所以应填:N。

  第二处:查找子串,子串由形参substr传递,所以应填:substr。

  第三处:试题要求,若没有找到,函数值为0,所以应填:0。

改错题

  给定程序MODI1.C中函数fun的功能是:求三个数的最小公倍数。

  例如,给主函数中的变量x1、x2、x3分别输入15 11 2,

  则输出结果应当是:330。

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

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

  给定源程序:

  #include

  fun(int x, y, z )

  { int j,t ,n ,m;

  j = 1 ;

  t=j%x;

  m=j%y ;

  n=j%z;

  while(t!=0||m!=0||n!=0)

  { j = j+1;

  t=j%x;

  m=j%y;

  n=j%z;

  }

  return i;

  }

  main( )

  { int x1,x2,x3,j ;

  printf("Input x1 x2 x3: "); scanf("%d%d%d",&x1,&x2,&x3);

  printf("x1=%d, x2=%d, x3=%d \n",x1,x2,x3);

  j=fun(x1,x2,x3);

  printf("The minimal common multiple is : %d\n",j);

  }

[---分页---]

  解题思路:

  第一处: 函数中形参的定义不正确,应改为:fun(int x,int y, int z)。

  第二处: 程序中三个数的最小公倍数是用j处理的,所以应返回j的值。

编程题

  假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。形参n给出了字符串的长度, 形参h给出了字符串中前导*号的个数,形参e给出了字符串中最后*号的个数。在编写函数时,不得使用C语言提供的字符串函数。

  例如,字符串中的内容为:****A*BC*DEF*G*******,删除后,字符串中的内容应当是:A*BC*DEF*G。

  注意: 部分源程序在文件PROG1.C文件中。

  请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

  给定源程序:

  #include

  void fun( char *a, int n,int h,int e )

  {

  }

  main()

  { char s[81],*t,*f; int m=0, tn=0, fn=0;

  printf("Enter a string:\n");gets(s);

  t=f=s;

  while(*t){t++;m++;}

  t--;

  while(*t=='*'){t--;tn++;}

  while(*f=='*'){f++;fn++;}

  fun( s , m,fn,tn );

  printf("The string after deleted:\n");puts(s);

  NONO();

  }

[---分页---]

  解题思路:

  本题是考察对字符串的操作。

  1. 求出字符串的长度。

  2. 利用循环把字符串中字符按要求仍存放在原字符串首址开始的位置上。

  参考答案:

  void fun( char *a, int n,int h,int e )

  {

  char *p=a ;

  int j=0,len=0;

  while(*p) {p++; len++;}

  while(j  a[j]=a[h+j];

  j++;

  }

  a[j]=0;

  }


   >>学课在线网课试听.报名        >>学课在线智能题库.模拟做题       >>直播课程       >>录播课程

课程名称
课程免费试听
课程名称
课程免费试听
课程名称
课程免费试听
初级会计师

一级建造师

执业药师

中级会计师

二级建造师

护士资格证

注册会计师

一级造价工程师

健康管理师

经济师考试

监理工程师

考研辅导课

银行从业

安全工程师

自考课程

基金从业

一级消防工程师

心理咨询师

企业人力资源管理师

法律职业资格考试

公共营养师

社会工作者

消防设施操作员

保育员

教师资格证

成人高考

育婴师

公务员培训

文职培训

英语四六级

计算机软考
养老护理员
税务师培训

房产经纪人
咨询工程师

其它课程>>



重要提醒!!内容中联系方式并非本站联系方式,报名咨询的学员请与下面最新联系方式联系我们咨询报名-以免损失!
>>长期招聘兼职招生代理人员,项目合作,团报优惠咨询,有意者请联系我们 >>咨询:13312524700(可加微信)。

昆明学历中心:◆咨询电话:0871-65385921、13312528471 赖老师、钱老师(微信报名:17787865775)点击这里给我发消息


云南地州中心:◆咨询电话:0871-65385921、17787865775 冯老师、 王老师(微信报名:17787865775)点击这里给我发消息


总部报名地址: ◆昆明市-五华区教场东路莲花财富中心10楼;网课试听:ke.xuekaocn.cn   点击这里立即咨询我们



地州分校:   大理分校   丽江分校   迪庆分校   怒江分校   红河分校   临沧分校   玉溪分校   文山分校   保山分校   德宏分校   昭通分校   普洱分校   版纳分校 【各地州学员请加老师微信咨询报名,电话(微信):133-1252-4700】;2021年云南省成人高考>>立即报名



职业技能考证:心理咨询师、健康管理师、茶艺师等更多>◆咨询电话:133 1252 4700(微信)点击这里咨询我们  

公考培训咨询:◆国考云南省考公务员/事业单位面授培训,咨询电话:133 1252 4700 (微信)点击这里立即咨询我们






温馨提示:因考试政策、内容不断变化与调整,学课在线网提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!

免责声明:以上内容仅代表原创者观点,其内容未经本站证实,学课在线网对以上内容的真实性、完整性不作任何保证或承诺,转载目的在于传递更多信息,由此产生的后果与学课在线网无关;如以上转载内容不慎侵犯了您的权益,请联系我们QQ:1536696595,我们将会及时处理。




网友评论