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

2012年全国计算机等级二级C语言模拟试题及答案(7)

来源:考试吧Exam8.com) 2012-8-27 15:51:11 考试吧:中国教育培训第一门户 模拟考场
2012年全国计算机等级二级C语言模拟试题及答案。

  程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的信息。函数fun的功能是输出这位学生的信息。

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

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

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

  给定源程序:

  #include

  typedef struct

  { int num;

  char name[9];

  char sex;

  struct { int year,month,day ;} birthday;

  float score[3];

  }STU;

  void show(STU ___1___)

  { int i;

  printf("\n%d %s %c %d-%d-%d", tt.num, tt.name, tt.sex,

  tt.birthday.year, tt.birthday.month, tt.birthday.day);

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

  printf("%5.1f", ___2___);

  printf("\n");

  }

  main( )

  { STU std={ 1,"Zhanghua",'M',1961,10,8,76.5,78.0,82.0 };

  printf("\nA student data:\n");

  show(___3___);

  }

  解题思路:

  本题是利用结构体变量存储了一名学生的信息。

  第一处:tt变量在函数体fun已经使用,所以应填:tt。

  第二处:利用循环分别输出学生的成绩数据,所以应填:tt.score[i]。

  第三处:函数的调用,所以应填:std。

  ***************************************************

  给定程序MODI1.C中函数 fun 的功能是:求出数组中最大数和次最大数,并把最大数和a[0]中的数对调、次最大数和a[1]中的数对调。请改正程序中的错误,使它能得出正确的结果。

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

  给定源程序:

  #include

  #define N 20

  int fun ( int * a, int n )

  { int i, m, t, k ;

  for(i=0;i<2;i++) {

  m=0;

  for(k=i+1;k

  if(a[k]>a[m]) k=m;

  t=a[i];a[i]=a[m];a[m]=t;

  }

  }

  main( )

  { int x, b[N]={11,5,12,0,3,6,9,7,10,8}, n=10, i;

  for ( i=0; i

  fun ( b, n );

  for ( i=0; i

  }

  解题思路:

  第一处:外循环每循环一次,把当前位置i赋值给m,所以应改为:m=i;。

  第二处:通过内循环来找出最大的一个数的位置k,所以应改为:if(a[k]>a[m]) m=k;。

  ***************************************************

  请编写一个函数 unsigned fun ( unsigned w ),w 是一个大于10的无符 号整数,若 w 是 n (n ≥ 2)位的整数,函数求出w的低 n-1位的数作为函数值返回。

  例如:w 值为 5923,则函数返回 923; w 值为 923 则函数返回 23。

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

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

  给定源程序:

  #include

  unsigned fun ( unsigned w )

  {

  }

  main( )

  { unsigned x;

  printf ( "Enter a unsigned integer number : " ); scanf ( "%u", &x );

  printf ( "The original data is : %u\n", x );

  if ( x < 10 ) printf ("Data error !");

  else printf ( "The result : %u\n", fun ( x ) );

  NONO( );

  }

  解题思路:

  本题是考察考生怎样获取一个符合要求的无符号整数。本题是应用if条件语句首先判断给出的数是几位数,再模相应的值,最后得出的余数就是结果。

  参考答案:

  unsigned fun ( unsigned w )

  {

  if(w>10000) w %= 10000 ;

  else if(w>1000) w %= 1000 ;

  else if(w>100) w %= 100 ;

  else if(w>10) w %=10 ;

  return w ;

  }

1 2  下一页

  相关推荐:

  2012年计算机等级考试二级VB重点知识汇总

  2012年计算机等考四级数据库工程师备考笔记汇总

  2012年下半年计算机等级考试报名时间及入口汇总

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