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

国家计算机二级c语言考试模拟题

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

  在国家的计算机二级c语言考试中,我们常常会遇到哪些题目呢?下面是学习啦小编给大家整理的计算机二级c语言考试模拟题及答案,供大家参阅!

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

  一、基本操作题

  请补充函数proc(),该函数的功能是计算下面公式SN的值:

  SN=1+1/3十4/5+...+2N-1/SN-1

  例如,当N=20时,SN=29.031674。

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

  请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。

  试题程序:

  #include

  #include

  #include

  double proc(int n)

  {

  double s=1.0,sl=0.0;

  int k;

  for(【1】;k<=n;k++)

  {

  sl=S;

  【2】

  }

  return 【3】 ;

  )

  void main()

  {

  int k=0:

  double sum;

  system("CLS");

  printf("\nPlease input N=");

  scanf("%d",&k);

  sum=proc(k);

  printf("\nS=%If",sum);

  )

  二、程序改错题

  下列给定程序中,函数proc()的功能是根据整型形参n,计算如下公式的值:

  Y=1-1/(22)+1/(33)-1/(44)+…+(-1)(n+1)/(nn)

  例如,n中的值为l0,则应输出0.817962。

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

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

  试题程序:

  #include

  #include

  #include

  double proc(int n)

  {

  double y=1.0;

  f|****found****

  int J=1; .

  int i;

  for(i=2;i<=n;i++)

  {

  j=-l*j;//****found****

  y+=1/(i*i);

  )

  return(y);

  )

  void main()

  {

  int n=10:

  system("CLS"):

  printf("\nThe result is%lf\n",proc(n));

  )

  三、程序设计题

  编写一个函数,从传人的M个字符中找出最长的一个字符串,并通过形参指针max传回该串地址(用****作为结束输入的标志)。

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

  请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填人所编写的若干语句。

  试题程序:

  #include

  #include

  #include

  char*proc(char(*a)[81],int num)

  {

  )

  void main()

  {

  char ss[l0][81],*max;

  int n,i=0;

  printf("输入若干个字符串:");

  gets(ss[i]);

  puts(ss[i]);

  while(!strcmp(ss[i],"****")= =0)

  {

  i++:

  gets(ssEi]);

  puts(ss[i]);

  )

  n=i:

  max=proe(SS,n);

  printf("\nmax=%s\n",max);

  }

  计算机二级c语言考试模拟题答案

  一、基本操作题程序填空题

  【1】k=2【2】s+=(2*k一1)/sl【3】s

  【解析】由题目中所给公式可知,多项武的第一项为1。变量s中存放多项式的和,其初始值为l。因此,循环从第二项开始,因此,【1】处填“k=2”;变量sl中存放各项表达武的值,由公式可知,【2】处填“s+=(2*k-1)/sl”;题目中要求将多项式的和返回到主函数当中,因此,【3】处填“s”。

  二、程序改错题

  (1)错误:int j=1;正确:double j=1.0;

  (2)错误:y+=1/(i*i); 正确:y+=j/(i*i);

  【解析】由函数proc()可知,变量j的作用是控制每一项符号的变化,并且作为运算的分子,应改为double型变量。因此,“int j=1;”应改为“double j=1.0;”。变量y中存放多项式的值,多项式中的每一项符号由变量j决定。因此,“y+=1/(i*i);”应改为“y+=j/(i*i);”。

  三、程序设计题

  char*proc(char(*a)[81],int M)

  {

  char*max;

  int i=0:

  max=a[O]:

  for(i=0;i  if(strlen(max)  max=a[i];

  return max; //返回最长字符串的地址

  }

  【解析】本题首先要定义一个字符指针用于保存最长的字符串,并使其初始值指向第一个字符串;再循环遍历字符串数组,通过if语句比较字符串的长度,并把最长的字符串地址赋给字符指针;最后返回最长字符串的地址。


看了“国家计算机二级c语言考试模拟题”

20952