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

2015年计算机二级C语言测试题及答案解析(2)

来源:考试吧 2014-11-20 15:00:22 考试吧:中国教育培训第一门户 模拟考场
考试吧整理了“2015年计算机二级C语言测试题及答案解析”,提供给各位考生备考,更多考试资料请持续关注考试吧计算机等级考试频道!

  点击查看:2015年计算机二级C语言测试题及答案解析汇总

  基本输入输出及流程控制

  1.

  #include

  main()

  { int a=1,b=3,c=5;

  if (c==a+b)

  printf("yes\n");

  else

  printf("no\n");

  }

  运行结果为:no

  详见教材p89 选择结构

  详见教材p91关系符号

  详见附录D p378符号的优先级

  ==表示判断符号两边的值是否相等;=表示将符号右边的值赋给左边的变量

  本题考点是选择结构3种基本形式的第二种

  选择结构三种一般形式中的“语句”皆为复合语句,复合语句要用{ }括起来,只有当复合语句中只包括一条语句时可以省略{ },此题即如此,因此两个printf操作没有加{ }

  若c==a+b成立,则执行printf("yes\n");

  否则(即c==a+b不成立),执行printf("no\n");

  +的优先级高于==,因此先算a+b,值为4, 表达式5==4不成立,因此执行printf("no\n");即输出字符串no

  2.

  #include

  main()

  { int a=12, b= -34, c=56, min=0;

  min=a;

  if(min>b)

  min=b;

  if(min>c)

  min=c;

  printf("min=%d", min);

  }

  运行结果为: min=-34

  详见教材p89 选择结构

  本题考点是选择结构3种基本形式的第一种

  一共包含了两个选择结构(两个if语句)

  定义变量,并赋值 此时a=12, b= -34, c=56, min=0

  将a中值拷贝,赋给min,覆盖了min中的0,此时min中的值被更新为12。

  若min>b成立,则执行min=b;

  若min>c成立,则执行min=c;

  输出min中的值

  12大于-34,第一个if语句的表达式成立,因此执行min=b; 执行后min中的值被更新为-34.

  -34小于56,第二个if语句的表达式不成立,因此不执行min=c;

  最后输出min中的值,为-34.

  3.

  #include

  main()

  { int x=2,y= -1,z=5;

  if(x  if(y<0)

  z=0;

  else

  z=z+1;

  printf(“%d\n”,z);

  }

  运行结果为:5

  遇到选择结构,首先要明确条件表达式成立时执行哪些操作。本题中,第一个if语句,其后的复合语句没有大括号{ },说明复合语句中只包含一条语句,进而省略了{ }。内层的if...else...是选择结构的第二种基本形式,在结构上视为一条语句。因此内层的if...else...作为第一个if语句的复合语句。

  若表达式x  若y<0,则执行z=0;

  否则(即y>=0),执行z=z+1;

  输出z

  2>-1,表达式x  输出z中的值为5

  4.

  #include

  main()

  { float a,b,c,t;

  a=3;

  b=7;

  c=1;

  if(a>b)

  {t=a;a=b;b=t;}

  if(a>c)

  {t=a;a=c;c=t;}

  if(b>c)

  {t=b;b=c;c=t;}

  printf("%5.2f,%5.2f,%5.2f",a,b,c);

  }

  运行结果为:1.00,2.00,7.00

  详见教材p72数据的输出形式

  本题包含了3个if语句,每个if语句后的{ }都不可省略,因为每个{ }中都包含了多条语句

  若表达式a>b成立,则执行{t=a;a=b;b=t;}

  若表达式a>c成立,则执行{t=a;a=c;c=t;}

  若表达式b>c成立,则执行{t=b;b=c;c=t;}

  输出a,b,c中的值,要求输出的每个数据宽度为5个空格,小数部分保留2位,数据右对齐

  3小于7,因此表达式a>b不成立,因此不执行{t=a;a=b;b=t;}

  3大于1,因此表达式a>c成立,则执行{t=a;a=b;b=t;}。第一句,将a中的3拷贝,粘贴到t中;第二句,将c中的1拷贝,粘贴到a中,覆盖掉先前的3;第三句。将t中的3拷贝到c中,覆盖掉c中先前的1. 执行完复合语句后实现了a,c元素的值的互换,a为1,c为3,t为3,。

  7大于c中的3,因此b>c成立,执行则执行{t=b;b=c;c=t;},过程同上,执行后b为3,c为7,t为7

  此时输出a,b,c中的值为1.00,2.00,7.00

  5.

  #include< stdio .h >

  main ( )

  {floatc=3.0 , d=4.0;

  if ( c>d ) c=5.0;

  else

  if ( c==d ) c=6.0;

  elsec=7.0;

  printf ( “%.1f\n”,c ) ;

  }

  运行结果为:7.0

  此题为if...else...语句的嵌套,第二if...else...作为第一个if...else...语句else部分的复合语句。

  若表达式c>d成立,则执行c=5.0;

  否则(表达式c>d不成立)

  若表达式c==d成立,则执行c=6.0;

  否则,执行c=7.0;

  输出c中的值

  3.0小于4.0,因此表达式c>d不成立,执行第二个if…else…。

  3.0不等于4.0,因此表达式c==d不成立,执行c=7.0,将7.0赋给c, 覆盖掉c中的3.0,此时c中的值为7.0

  输出此时的c中的值

  6.

  #include

  main()

  { int m;

  scanf("%d", &m);

  if (m >= 0)

  { if (m%2 == 0) printf("%d is a positive even\n", m);

  else printf("%d is a positive odd\n", m); }

  else

  { if (m % 2 == 0)printf("%d is a negative even\n", m);

  else printf("%d is a negative odd\n", m); }

  }

  若键入-9,则运行结果为: -9 is a negative odd

  7.

  #include

  main()

  { int num=0;

  while(num<=2){ num++;printf("%d\n",num);}

  }

  运行结果为:

  1

  2

  3

  详见教材p115循环结构

  当循环条件num<=2成立的时候,执行循环体{ num++;printf("%d\n",num);}中的语句。

  循环初值num为0;

  循环条件num<=2成立

  第1次循环:执行num++;即将num中的值加1,执行后num为1;

  执行printf("%d\n",num);在屏幕上输出num中的值,即输出1,之后换行

  此时num中的值为1,循环条件num<=2成立

  第2此循环:执行num++;即将num中的值加1,执行后num为2;

  执行printf("%d\n",num);在屏幕上输出num中的值,即输出2,之后换行

  此时num中的值为2,循环条件num<=2成立

  第3此循环:执行num++;即将num中的值加1,执行后num为3;

  执行printf("%d\n",num);在屏幕上输出num中的值,即输出3,之后换行

  此时num中的值为3,循环条件num<=2不成立,结束循环。

  8.

  #include

  main( )

  { int sum=10,n=1;

  while(n<3) {sum=sum-n;n++; }

  printf(“%d,%d”,n,sum);

  }

  运行结果为:3,7

  当循环条件n<3成立的时候,执行循环体{sum=sum-n;n++; }中的语句。

  循环初值sum为10,n为1;

  循环条件n<3成立

  第1次循环:执行sum=sum-n=10-1=9;

  执行n++,即将n中的值加1,执行后n为2;

  此时n中的值为2,sum中的值为9,循环条件n<3成立,继续执行循环

  第2次循环:执行sum=sum-n=9-2=7;

  执行n++,即将n中的值加1,执行后n为3;

  输出此时n,sum中的值,即为3,7。需要注意,在printf(“%d,%d”,n,sum); 中要求输出的数据彼此间用逗号间隔,因此结果的两个数据间一定要有逗号

  9.

  #include

  main()

  { int num,c;

  scanf("%d",&num);

  do{c=num%10;printf("%d",c);}while((num/=10)>0);

  printf("\n");

  }

  从键盘输入23,则运行结果为:32

  详见教材p117循环结构;p60复合的赋值运算符

  do{ }while(表达式);

  先无条件执行循环体,再判断循环条件。注意while(表达式)后有分号

  定义整型变量num,c;

  为num赋一个整型值;

  执行{c=num%10;printf("%d",c);}直到循环条件(num/=10)>0不成立;

  输出换行

  已知为num赋值23

  第1次执行循环体

  执行c=num%10=23%10=3;

  执行printf("%d",c);输出3

  判断循环条件 num/=10等价于num=num/10; 因此num=23/10=2, 2大于0,因此循环条件(num/=10)>0成立,继续执行循环体。执行完第1次循环时,num为2,c为3

  第2次执行循环体

  执行c=2%10=2;

  执行printf("%d",c);再输出2

  判断循环条件num=2/10=0,0等于0,因此循环条件(num/=10)>0不成立。结束循环

  10

  #include

  main()

  { int s=0,a=5,n;

  scanf("%d",&n);

  do { s+=1;a=a-2; }while(a!=n);

  printf("%d,%d\n",s,a);

  }

  若输入的值1,运行结果为: 2,1

  详见教材p117循环结构;p60复合的赋值运算符

  执行{ s+=1;a=a-2; }直到循环条件a!=n不成立;

  已知为n赋值1,s为0,a为5

  第1次执行循环体

  执行s+=1;等价于s=s+1=0+1

  执行a=a-2; a=5-2=3

  判断循环条件,3不等于1,因此循环条件a!=n成立,继续执行循环体。

  执行完第1次循环时,s为1,a为3

  第2次执行循环体

  执行s+=1;等价于s=s+1=1+1=2

  执行a=a-2; a=3-2=1

  判断循环条件,1等于1,因此循环条件a!=n不成立,结束循环。

  执行完第2次循环时,s为2,a为1

  输出此时s,a中的值,结果为2,1

  相关推荐:

  各地2015上半年计算机等级考试报名时间汇总

  考试吧特别策划:2015年计算机等级考试报考指南

  2015年全国计算机等级考试无纸化考试系统操作指南

文章搜索
版权声明:如果计算机等级考试网所转载内容不慎侵犯了您的权益,请与我们联系800@exam8.com,我们将会及时处理。如转载本计算机等级考试网内容,请注明出处。
Copyright © 2004- 考试吧计算机等级考试网 All Rights Reserved 
中国科学院研究生院权威支持(北京) 电 话:010-62168566 传 真:010-62192699