首页>计算机等级考试>模拟试题>正文
09年计算机等级考试二级笔试样题:二级C笔试考前练习习题(29)

www.zige365.com 2009-6-15 14:08:05 点击:发送给好友 和学友门交流一下 收藏到我的会员中心
(1)下面的if语句与y=(x>=10)?3*x-11:(x<1)?x:2'x.1;的功能相同,请补充完整。
  If(  【1】  )
  if(  【2】  )y=2*x-1;
  else y=x;
  else y=3*x-11:
  答案:【1】x<10
  【2】x>=1
  评析:条件表达式的一般形式为:表达式l?表达式2:表达式3
  条件运算符的执行顺序:先求解表达式1,若为非0(真)则求解表达式2,此时表达式2的值就作为整个条件表达式的值;若表达式1的值为O(假),则求解表达式3,表达式3的值就是整个条件表达式的值。y。(x>。10)?3。x-1 1:(x>=1)?x:2*x-1;的功能是先求(x>=1)?x:2*x-1:的值,所的的结果再与前面的语句构成条件表达式进行求值。所以【1】应该填x<10,【2】应该填x>=1。

  (2)以下程序中用户由键盘输入一个文件名,然后输入一串字符(用拌结束输入)存放到此
  文件中,形成文本文件,并将字符的个数写到文件的尾部。请填空。
  #include
  main()
  { FILE *fp;
  char ch,fname[32];im count=0;
  printf("Input the filename:");
  scanf("%s",fname);
  if((币=fopen( 【3】 ,"w+"))==NULL)
  { print印Can't open file:%s\n",fname};exit(0);}
  printf("Enter data:in");
  while((ch=getchar())!_1≠)')
  { fputc(ch,fp);count++;}
  fprintf( 【4】 ,"\n%d\n",count);
  fclose(fp);
  }
  答案:【3】fname
  【4】fp
  评析:fopen()函数实现打开文件的功能,通常的调用方式为:FILE*fp;fp=fopen(文件名,使用文件方式),因此,第一个横线处要求填写要打开文件的名字fname。fprintf()函数的一般调用方式为:fprintf (文件指针,格式字符串,输出表列),所以第二个横线处应填写fb。

  (3)函数void fun(noat*sn,int n)的功能是:根据以下公式计算s,计算结果通过形参指针sn传回;n通过形参传入,n的值大于等于0。请补全程序。
  S=I-1/3+1/5-1/7+...+1/(2n+1)
  void fun(float*sn,int n)
  {  float s=O.O,w,f=-1.0;
  int i=0:
  for(I=0;i<=n;i++)
  { f= 【5】 *f;
  w=f/(2*i+1);
  S+=W:
  }
  【6】  =s;
  }
  答案:【5】-1或-1.0
  【6】*sn
  评析:由于在对s求和时,相诹较畹姆鸥蘸孟喾矗诤齠un中没有对数据进行取反的操作,故第一空的目的是对数据进行取反,以保证序列中相邻两项的符号不同。故第一个应填-1或-1.0。在执行完循环体后,要将求和结果通过指针参数的形式传递给调用fun的函数,故第二空应填*sn。

  (4)下面的函数strcat(strl,str2)实现将字符串str2拼接到字符串strl后面的功能。请填空使之完整。
  Char*strcat(strl,str2)
  char*strl.*str2;
  { char*t=strl;
  while( 【7】 )strl++;
  while( 【8】 );
  return(t);}
  答案:【7】*strl或*str1!='\0'或*str1!=0或*strl!=NULL
  【8】*strl++=*str2++或*strl++=*str2,*str2++
  评析:函数strcat(strl,str2)实现将字符串str2连接到字符串strl后面,所以首先要找到字符串strl的串尾,根据c语言的语法规定,一个串的串尾一定是一个隐含字符"\0",而在程序中,对字符串中字符的访问是通过两/卜指针变量来完成的,因此要找到字符串strl的串尾,要判断*strl是否为"\0",要找到字符串str2的串尾,要判断*str2是否为"\0",程序中必须可以使字符串中字符逐一顺序体现,所以在题中我们应填写"*str1"和"*strl++=*str2++"。

  (5)以下函数fun用于求两个整数a和b的最大公约数。
  fun(a'b)
  int a'b;
  {int I,J,m,n;
  if(a>b)
  {m=a;a=b; 【9】 ;}
  i=a.j=b;
  while((n= 【10】 )!=O)
  {j=i;i= 【11】 ;}
  retum(i);
  }
 答案:【9】b=m
  【10】j%i
  【11】n

本新闻共2页,当前在第1页  1  2  

我要投稿 新闻来源: 编辑: 作者:
相关新闻
09年计算机等级考试二级笔试样题:二级C笔试考前练习习
2009年计算机等级考试二级笔试样题:二级C语言程序设计
2009年计算机等级考试二级笔试样题:二级C语言程序设计
2009年计算机等级考试二级笔试样题:二级C语言程序设计
2009年计算机等级考试二级笔试样题:二级C语言程序设计