招生考试网
学历| 高考 美术高考 考研 自考 成考 专升本 中考 会考 外语| 四六级 职称英语 商务英语 公共英语 日语能力 翻译资格 JTEST
资格| 公务员 报关员 银行从业 司法 导游 教师资格 报关 财会| 会计证 经济师 会计职称 注册会计 税务师 资产评估 审计师
工程| 一建 二建 造价师 造价员 咨询师 监理师 安全师 医学| 卫生资格 执业医师 执业药师 执业护士 | 教案 论文 文档
IT类| 计算机等级 计算机软考 职称计算机 高校计算机 推荐-国家公务员 事业单位招聘 军校国防生 自主招生 艺术特长生 招飞
 3773考试网 - 计算机等级考试 - 试题答案 - 正文

2014计算机二级C语言测试题及答案解析三之一

来源:2exam.com 2014-7-15 18:34:50

 1.
  #include "stdio.h" 
  main() 
  {char c; 
  c=getchar(); 
  while(c!='?') {putchar(c);c=getchar(); } 
  } 
  如果从键盘输入abcde?fgh(回车)
  运行结果为:abcde
  2.
  #include 
  main()
  { char c;
  while((c=getchar())!=’$’)
  { if(‘A’<=c&&c<=‘Z’)putchar(c);
  else if(‘a’<=c&&c<=‘z’)putchar(c-32);}
  } 
  当输入为ab*AB%cd#CD$时,运行结果为:ABABCDCD
  3. 
  #include 
  main()
  { int x, y =0;
  for(x=1;x<=10;x++)
  { if(y>=10) 
  break; 
  y=y+x;
  } 
  printf(“%d %d”,y,x);
  }
  运行结果为:10 5
  详见教材p120for语句
  详见教材p126~128break,continue语句
  for( 表达式1;表达式2;表达式3)
  {
}
  (1) 先求解表达式1 
  (2) 求解表达式2,若其值为真,执行循环体,然后执行 (3). 若为假,则结束循环,转到(5)
  (3) 求解表达式3 
  (4) 转回上面 (2)继续执行
  (5) 循环结束,执行for语句下面的一个语句 
  break ,跳出循环体;continue,结束本次循环(第i次循环),继续执行下一次循环(第i+1次循环)
  此题 表达式1为x=1,表达式2(循环条件)为x<=10,表达式3为x++
  初值x为1,y为0,循环条件(即表达式2)x<=10成立,进入循环体
  第1次循环
  执行if语句。0小于10,if语句的条件表达式不成立,不执行break;
  执行y=y+x; y=0+1=1
  转向表达式3,执行x++,x=x+1=1+1=2。循环条件x<=10成立,进入第2次循环
  第2次循环
  执行if语句。1小于10,if语句的条件表达式不成立,不执行break;
  执行y=y+x; y=1+2=3
  转向表达式3,执行x++,x=x+1=2+1=3。循环条件x<=10成立,进入第3次循环
  第3次循环
  执行if语句。3小于10,if语句的条件表达式不成立,不执行break;
  执行y=y+x; y=3+3=6
  转向表达式3,执行x++,x=x+1=3+1=4。循环条件x<=10成立,进入第4次循环
  第4次循环
  执行if语句。6小于10,if语句的条件表达式不成立,不执行break;
  执行y=y+x; y=6+4=10
  转向表达式3,执行x++,x=x+1=4+1=5。循环条件x<=10成立,进入第5次循环
  第5次循环
  执行if语句。10等于10,if语句的条件表达式成立,执行break,跳出循环。
  从break跳出至for语句的下一条语句。执行printf(“%d %d”,y,x);
  输出当前的y与x.结果为10 5
  4.
  #include
  main( )
  {char ch;
  ch=getchar( ); 
  switch(ch)
  {case‘A’ : printf(“%c”,’A’);
  case‘B’ : printf(“%c”,’B’); break;
  default: printf(“%s\n”,”other”);
  } }
  当从键盘输入字母A时,运行结果为:AB
  详见教材p103,switch语句
  switch(表达式)
  { case常量1 :语句1 
  case常量2 :语句2 
  ┇┇ ┇
  case常量n :语句n 
  default :语句n+1 
  } 
  其中表达式,常量1,…,常量n都为整型或字符型
  case相当于给出执行程序的入口和起始位置,若找到匹配的常量,则从此处开始往下执行程序,不再匹配常量,直至遇到break或switch结束
  本题过程:
  首先从键盘接收一个字符’A’并将其放在变量ch中。
  执行switch语句。Switch后面的条件表达式为ch,因此表达式的值即为字符’A’. 用字符’A’依次与下面的 case中的常量匹配。
  与第1个case后的常量匹配,则从其后的语句开始往下执行程序(在执行过程中不再进行匹配。)因此先执行printf(“%c”,’A’),屏幕上输出A;再往下继续执行printf(“%c”,’B’),屏幕上输出B;再继续执行break, 此时跳出switch语句。
  5. 
  #include 
  main( )
  { int a=1,b=0;
  scanf(“%d”,&a);
  switch(a)
  {case 1: b=1;break;
  case 2: b=2;break;
  default : b=10;}
  printf("%d ", b);
  }
  若键盘输入5,运行结果为:10
  本题过程:
  首先用scanf函数为变量a赋值为5。
  执行switch语句。switch后面的条件表达式为a,因此表达式的值即为5. 用5依次与下面 case中的常量匹配。没有找到匹配的常量,因此两个case后的语句都不执行。执行default后面的语句b=10;将10赋给变量b。
  输出变量b,结果为10


  • 上一个文章:
  • 网站版权与免责声明
    ①由于各方面情况的不断调整与变化,本网所提供的相关信息请以权威部门公布的正式信息为准.
    ②本网转载的文/图等稿件出于非商业性目的,如转载稿涉及版权及个人隐私等问题,请在两周内邮件fjksw@163.com联系.


    | 关于我们 | 联系我们 | 版权申明 | 网站导航 |
    琼ICP备12003406号