首页 考试吧论坛 Exam8视线 考试商城 网络课程 模拟考试 考友录 实用文档 求职招聘 论文下载
2011中考 | 2011高考 | 2012考研 | 考研培训 | 在职研 | 自学考试 | 成人高考 | 法律硕士 | MBA考试
MPA考试 | 中科院
四六级 | 职称英语 | 商务英语 | 公共英语 | 托福 | 雅思 | 专四专八 | 口译笔译 | 博思 | GRE GMAT
新概念英语 | 成人英语三级 | 申硕英语 | 攻硕英语 | 职称日语 | 日语学习 | 法语 | 德语 | 韩语
计算机等级考试 | 软件水平考试 | 职称计算机 | 微软认证 | 思科认证 | Oracle认证 | Linux认证
华为认证 | Java认证
公务员 | 报关员 | 银行从业资格 | 证券从业资格 | 期货从业资格 | 司法考试 | 法律顾问 | 导游资格
报检员 | 教师资格 | 社会工作者 | 外销员 | 国际商务师 | 跟单员 | 单证员 | 物流师 | 价格鉴证师
人力资源 | 管理咨询师考试 | 秘书资格 | 心理咨询师考试 | 出版专业资格 | 广告师职业水平
驾驶员 | 网络编辑
卫生资格 | 执业医师 | 执业药师 | 执业护士
会计从业资格考试会计证) | 经济师 | 会计职称 | 注册会计师 | 审计师 | 注册税务师
注册资产评估师 | 高级会计师 | ACCA | 统计师 | 精算师 | 理财规划师 | 国际内审师
一级建造师 | 二级建造师 | 造价工程师 | 造价员 | 咨询工程师 | 监理工程师 | 安全工程师
质量工程师 | 物业管理师 | 招标师 | 结构工程师 | 建筑师 | 房地产估价师 | 土地估价师 | 岩土师
设备监理师 | 房地产经纪人 | 投资项目管理师 | 土地登记代理人 | 环境影响评价师 | 环保工程师
城市规划师 | 公路监理师 | 公路造价师 | 安全评价师 | 电气工程师 | 注册测绘师 | 注册计量师
缤纷校园 | 实用文档 | 英语学习 | 作文大全 | 求职招聘 | 论文下载 | 访谈 | 游戏
您现在的位置: 考试吧(Exam8.com) > 计算机等级考试 > 计算机二级 > C语言 > 上机题库 > 正文

05年9月等级考试二级C语言考前上机密卷1

   1.程序填空
  
  给定程序的功能是判断字符ch是否与串str中的某个字符相同:若相同,什么也不做,若不同,则插在串的最后。
  请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果
  注意:不得增行或删行,也不得更改程序的结构!
  试题程序:
  #include <stdio.h>
  #include <string.h>
  void fun(char*str, char ch )
  {  while ( *str && *str != ch ) str++;
  if( *str  1  ch )
  { str[0] =ch;
  2  = 0;
  }
  }
  main( )
  {  char s[81], c;
  printf( "\nPlease enter a string:\n" ); gets ( s );
  printf ("\n Please enter the character to search : " );
  c = getcharO;
  fun( 3  ) ;
  printf( "\nThe result is %s\n", s);
  1.程序填空
  【答案】
  (1)!=
  (2)str[1]
  (3)s,c
  【评析】
  (1)fun函数中先设置了二个循环从字符串str中寻找字符ch,如果找到则中断循环并保留字符ch的地址,否则一直循环到串尾"。因此通过判断*str的内容即可判断是否已找到字符ch。
  (2)如果没有找到字符ch,则在while循环后str指针指向串结束符Ox00,此时应将字符ch写入这里并在下一地址写入一个串结束符Ox00,所以应该是"str[1]。O;"语句。
  (3)此句是调用fun()函数,括弧中是其实际参数。
  
  2.程序修改
  
  给定程序modi.c中,函数fun的功能是:'根据形参m的值(2≤m≤9),在m行m列的二维数组中存放如下所示的数据,由main()函数输出。
  例如,若输入2    ︳若输入4
  则输出:       ︳则输出:
      1 2     ︳     1 2 3 4
      2 4     ︳     2 4 6 8
             ︳     3 6 9 12
             ︳     4 8 12 16
  请改正程序中的错误,使它能得出正确结果。
  注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
  试题程序:
  #include <stdio.h>
  #include <conio.h>
  #define M 10
  int a[M][M]={0};
  fun(int **a, int m)
  { int j,k;
  for (j=0;j<m;j++)
  for (k=0;k<m;l~++)
  a[j][k]=k*j;
  }
  main()
  {  int i,j,n;
  clrscr0;
  printf("Enter n:");scanf("%d",&n);
  fun(a,n);
  for(i=0;i<n;i++)
  {  forO=O;j<n;j++)
  print f("%4d",a[i] [j] );
  printf("\n");
  }
  2.程序修改
  【答案】
  (1)错误:第5行fun(int**a,int m)
  正确:fun(int a[][M],Int m)
  (2)错误:第9行 a[j][k]=k*j;
  正确:a[j][k]=(k+1)*(j+1);
  【评析】
  第5行:第二个形参m是用户输入的维数,没有别的名堂,第一个形参是为了指明在函数fun()中要产生的多维数组,"**a"是不能正确表示一个多维数组的,我们应当使用"int a[M][M]"。
  第9行:循环体的内容是给m维的多维数组赋值,这个多维数组在列方向是由1开始的自然数,在行方向上是行首第一数的n倍数,显然,"a[j][k]=k*j;"不符合题意,我们应当使用"a[j][k]=(k+1)*(j+1);"。
  
  3.程序设计
  
  已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,函数的功能是:找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)。已给出函数的首部,请完成该函数。
  请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
  试题程序:
  #include <stdio.h>
  #include <string.h>
  #include <conio.h>
  #define N 10
  typedef struct ss
  { char num[10];int s;} STU;
  fun(STU a[],STU *s)
  {
  }
  main()
  {STU
  a[N]= { {"A01",81}, {"A02",89}, {"A03",66}, {"A04", 87}, {"A05",77}, {"A06",90}, {"A07",79}, {"A08",61}, {"A09",80 }, {"A10",71 }},m;
  int i;
  elrser();
  printf("***** The original data *****\n");
  for (i=0;i<N;i++) printf(!'No=%s Mark=%d\n",a[i].num,a[i].s);
  fun(a,&m);
  printf("***** THE RESULT *****\n");
  printfCThe top : %s, %d\n",m.num,m.s);
  NON0( );
  }
  NON0( )
  {\*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
  FILE *rf, *wf;
  STU a[N], m ;
  Int i;
  rf = fopen("bc09.in", "r,) ;
  wf= fopen("bc09.out", "w") ;
  for(i = 0 ; i < 10; i++) fscanf(rf, "%s %d", a[i].num, &a[i].s) ;
  fun(a, &m) ;
  fprintf (wf, "The top : %s, %d\n", m.num, re.s) ;
  fclose(rf) ;
  fclose(wf) ;
  }
  3.程序设计
  【答案】
  fun(STU a[],STU。s)
  {  int i;
  STU  *m;
  re=a;
  for(i=1;i<N;i++)/*从前往后集顺序比较a数组中的学生成绩,并使m指针始终指向成绩低的学生记录*/
  if(a[i].s>m[0].s) m=&a[i];
  s[0].s=m[0].s;
  strcpy(s[0].Num,m[0].num);/*将m指针中的学生学号复制给s数组中的学号变量*/
  }
  【评析】
  从题目的要求来看,我们应建立一个循环来寻找成绩最高的学生记录。我们给出的参考函数中定义了一个指针存放学生记录中的最高成绩。

文章搜索
版权声明:如果计算机等级考试网所转载内容不慎侵犯了您的权益,请与我们联系800@exam8.com,我们将会及时处理。如转载本计算机等级考试网内容,请注明出处。