必胜高考网_全国高考备考和志愿填报信息平台

必勝高考網 > 計算機類 > 計算機等級 > 資訊 >

2015年計算機二級C語言測試題及解析(基本輸入輸出及流程控制)(2)

時間: 家輝2 資訊

  #include "stdio.h"

  main()

  {char c;

  c=getchar();

  while(c!='?') {putchar(c);c=getchar(); }

  }

  如果從鍵盤輸入abcde?fgh(回車)

  運行結果為:abcde

  2.

  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.

  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.

  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.

  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

  6.

  main()_

  { char grade=’C’;

  switch(grade)

  {

  case ‘A’: printf(“90-100\n”);

  case ‘B’: printf(“80-90\n”);

  case ‘C’: printf(“70-80\n”);

  case ‘D’: printf(“60-70\n”); break;

  case ‘E’: printf(“<60\n”);

  default : printf(“error!\n”);

  }

  }

  運行結果為:

  70-80

  60-70

  本題過程:

  首先從鍵盤接收一個字符’C’并將其放在變量grade中。

  執行switch語句。switch后面的條件表達式為grade,因此表達式的值即為字符’C’. 用字符’C’依次與下面的 case中的常量匹配。

  與第3個case后的常量匹配,則從其后的語句開始往下執行程序(在執行過程中不再進行匹配。)因此先執行printf(“70-80\n”);,屏幕上輸出70-80,并換行;再往下繼續執行printf(“60-70\n”),屏幕上輸出60-70,并換行;再繼續執行break, 此時跳出switch語句。

  7.

  main()

  { int y=9;

  for(;y>0;y- -)

  if(y%3==0)

  { printf(%d”,- -y);

  }

  }

  運行結果為:

  852

  詳見教材p53,自增自減符號

  此題 表達式1被省略,表達式2(循環條件)為y>0,表達式3為y--

  初值y為9,循環條件(即表達式2)y>0成立,進入循環體

  第1次循環

  執行if語句。9%3==0,if語句的條件表達式成立,執行printf(%d”,- -y),即y先自減1變為8,然后在輸出,因此屏幕上輸出8

  轉向表達式3,執行y--,y=y-1=8-1=7。循環條件y>0成立,進入第2次循環

  第2次循環

  執行if語句。7%3不為0,if語句的條件表達式不成立,不執行printf(%d”,- -y)

  轉向表達式3,執行y--,y=y-1=7-1=6。循環條件y>0成立,進入第3次循環

  第3次循環

  執行if語句。6%3==0,if語句的條件表達式成立,執行printf(%d”,- -y),即y先自減1變為5,然后在輸出,因此屏幕上輸出5

  轉向表達式3,執行y--,y=y-1=5-1=4。循環條件y>0成立,進入第4次循環

  第4次循環

  執行if語句。4%3不為0,if語句的條件表達式不成立,不執行printf(%d”,- -y)

  轉向表達式3,執行y--,y=4-1=3。循環條件y>0成立,進入第5次循環

  第5次循環

  執行if語句。3%3==0,if語句的條件表達式成立,執行printf(%d”,- -y),即y先自減1變為2,然后在輸出,因此屏幕上輸出2

  轉向表達式3,執行y--,y=y-1=2-1=1。循環條件y>0成立,進入第5次循環

  第6次循環

  執行if語句。1%3不為0,if語句的條件表達式不成立,不執行printf(%d”,- -y)

  轉向表達式3,執行y--,y=1-1=0。循環條件y>0不成立,循環結束。

  8.

  main()

  { int i,sum=0;i=1;

  do{ sum=sum+i; i++; }while(i<=10);

  printf(“%d”,sum);

  }

  運行結果為: 55

  9.

  #define N 4

  main()

  { int i;

  int x1=1,x2=2;

  printf("\n");

  for(i=1;i<=N;i++)

  { printf("%4d%4d",x1,x2);

  if(i%2==0)

  printf("\n");

  x1=x1+x2;

  x2=x2+x1;

  }

  }

  運行結果為:

  1 2 3 5

  8 132134

  此題 首先為整型變量賦初值x1=1,x2=2

  表達式1為i=1,表達式2(循環條件)為i<=N即i<=4,表達式3為i++

  循環變量初值i為1,循環條件(即表達式2)i<=4成立,進入第1次循環

  第1次循環

  執行printf("%4d%4d",x1,x2);因此屏幕上輸出12

  執行if語句。1%2不為0,if語句的條件表達式不成立,不執行printf("\n");

  執行x1=x1+x2=1+2=3;此時x1中的值已變為3

  執行x2=x2+x1=2+3=5。

  轉向表達式3,執行i++,i為2。循環條件i<=4成立,進入第2次循環

  第2次循環

  執行printf("%4d%4d",x1,x2);因此屏幕上輸出35

  執行if語句。2%2==0,if語句的條件表達式成立,執行printf("\n");換行

  執行x1=x1+x2=3+5=8;此時x1中的值已變為8

  執行x2=x2+x1=5+8=13。

  轉向表達式3,執行i++,i為3。循環條件i<=4成立,進入第3次循環

  第3次循環

  執行printf("%4d%4d",x1,x2);因此屏幕上輸出813

  執行if語句。3%2不為0,if語句的條件表達式不成立,不執行printf("\n");

  執行x1=x1+x2=8+13=21;此時x1中的值已變為21

  執行x2=x2+x1=21+13=34。

  轉向表達式3,執行i++,i為4。循環條件i<=4成立,進入第4次循環

  第2次循環

  執行printf("%4d%4d",x1,x2);因此屏幕上輸出2134

  執行if語句。4%2==0,if語句的條件表達式成立,執行printf("\n");換行

  執行x1=x1+x2=21+34=55;此時x1中的值已變為55

  執行x2=x2+x1=34+55=89。

  轉向表達式3,執行i++,i為5。循環條件i<=4不成立,結束循環

  10

  main( )

  {intx, y;

  for(x=30, y=0; x>=10, y<10; x--, y++)

  x/=2, y+=2;

  printf(“x=%d,y=%d\n”,x,y);

  }

  運行結果為:

  x=0,y=12 11.

  #define N 4

  main( )

  { inti,j;

  for(i=1;i<=N;i++)

  { for(j=1;j  printf(" ");

  printf("*");

  printf("\n");

  }}

  運行結果為:

  *

  *

  *

  *

  詳見教材P41符號常量

  用宏處理指令定義符號常量N為4,在編譯過程中,遇到N即視為整數4。

  外層for循環,表達式1為i=1,表達式2(循環條件)為i<=N,表達式3為 i++

  內層for循環,表達式1為j=1,表達式2(循環條件)為j  首先計算外層循環的表達式1,i為1,使得循環條件i<=4成立,進入外層for循環體

  外層for循環第1次此時i為1

  內層循環j=1,使得循環條件j  執行printf("*");

  執行printf("\n");換行

  至此外層循環體執行完,計算外層循環的表達式3,i++,此時i為2. 使得循環條件i<=4

  成立,再次進入外層for循環體

  外層for循環第2次 此時i為2

  內層循環j=1,使得循環條件j  第1次執行內層循環體printf(" ");

  執行內層循環表達式3,j++為2,j  執行printf("*");

  執行printf("\n");換行

  至此外層循環體執行完,計算外層循環的表達式3,i++,此時i為3. 使得循環條件i<=4

  成立,進入外層for循環體

  外層for循環第3次 此時i為3

  內層循環j=1,使得循環條件j  第1次執行內層循環體printf(" ");

  執行內層循環表達式3,j++為2,j  第2次執行內層循環體printf(" ");

  執行內層循環表達式3,j++為3,j  執行printf("*");

  執行printf("\n");換行

  至此外層循環體執行完,計算外層循環的表達式3,i++,此時i為4. 使得循環條件i<=4

  成立,進入外層for循環體

  外層for循環第4次 此時i為4

  內層循環j=1,使得循環條件j  第1次執行內層循環體printf(" ");

  執行內層循環表達式3,j++為2,j  第2次執行內層循環體printf(" ");

  執行內層循環表達式3,j++為3,j  第3次執行內層循環體printf(" ");

  執行內層循環表達式3,j++為4,j  執行printf("*");

  執行printf("\n");換行

  至此外層循環體執行完,計算外層循環的表達式3,i++,此時i為5. 使得循環條件i<=4

  不成立,跳出外層for循環體

55656 主站蜘蛛池模板: 【孔氏陶粒】建筑回填陶粒-南京/合肥/武汉/郑州/重庆/成都/杭州陶粒厂家 | 气动隔膜阀_气动隔膜阀厂家_卫生级隔膜阀价格_浙江浙控阀门有限公司 | 金联宇电缆|广东金联宇电缆厂家_广东金联宇电缆实业有限公司 | 凝胶成像仪,化学发光凝胶成像系统,凝胶成像分析系统-上海培清科技有限公司 | 冻干机(冷冻干燥机)_小型|实验型|食品真空冷冻干燥机-松源 | 粉末包装机,拆包机厂家,价格-上海强牛包装机械设备有限公司 | 微妙网,专业的动画师、特效师、CG模型设计师网站! - wmiao.com 超声波电磁流量计-液位计-孔板流量计-料位计-江苏信仪自动化仪表有限公司 | 搬运设备、起重设备、吊装设备—『龙海起重成套设备』 | 临沂招聘网_人才市场_招聘信息_求职招聘找工作请认准【马头商标】 | 九州网址_专注于提供网址大全分享推广中文网站导航服务 | 冰晶石|碱性嫩黄闪蒸干燥机-有机垃圾烘干设备-草酸钙盘式干燥机-常州市宝康干燥 | 浙江上沪阀门有限公司| 道达尔润滑油-食品级润滑油-道达尔导热油-合成导热油,深圳道达尔代理商合-深圳浩方正大官网 | LED显示屏_LED屏方案设计精准报价专业安装丨四川诺显科技 | SEO网站优化,关键词排名优化,苏州网站推广-江苏森歌网络 | 机械加工_绞车配件_立式离心机_减速机-洛阳三永机械厂 | 钢衬玻璃厂家,钢衬玻璃管道 -山东东兴扬防腐设备有限公司 | 圆窗水平仪|伊莉莎冈特elesa+ganter | 广州展览制作|展台制作工厂|展览设计制作|展览展示制作|搭建制作公司 | 自清洗过滤器-全自动自清洗过反冲洗过滤器 - 中乂(北京)科技有限公司 | 河南卓美创业科技有限公司-河南卓美防雷公司-防雷接地-防雷工程-重庆避雷针-避雷器-防雷检测-避雷带-避雷针-避雷塔、机房防雷、古建筑防雷等-山西防雷公司 | 电磁铁_推拉电磁铁_机械手电磁吸盘电磁铁厂家-广州思德隆电子公司 | 充气膜专家-气膜馆-PTFE膜结构-ETFE膜结构-商业街膜结构-奥克金鼎 | 温州在线网| 水厂污泥地磅|污泥处理地磅厂家|地磅无人值守称重系统升级改造|地磅自动称重系统维修-河南成辉电子科技有限公司 | 华禹护栏|锌钢护栏_阳台护栏_护栏厂家-华禹专注阳台护栏、楼梯栏杆、百叶窗、空调架、基坑护栏、道路护栏等锌钢护栏产品的生产销售。 | 滚筒线,链板线,总装线,流水线-上海体能机电有限公司 | 预制舱-电力集装箱预制舱-模块化预制舱生产厂家-腾达电器设备 | 温州食堂承包 - 温州市尚膳餐饮管理有限公司 | 全自动定氮仪-半自动凯氏定氮仪厂家-祎鸿仪器 | 工业电炉,台车式电炉_厂家-淄博申华工业电炉有限公司 | 菏泽商标注册_菏泽版权登记_商标申请代理_菏泽商标注册去哪里 | 碳化硅,氮化硅,冰晶石,绢云母,氟化铝,白刚玉,棕刚玉,石墨,铝粉,铁粉,金属硅粉,金属铝粉,氧化铝粉,硅微粉,蓝晶石,红柱石,莫来石,粉煤灰,三聚磷酸钠,六偏磷酸钠,硫酸镁-皓泉新材料 | 干粉砂浆设备-干粉砂浆生产线-干混-石膏-保温砂浆设备生产线-腻子粉设备厂家-国恒机械 | 天津热油泵_管道泵_天津高温热油泵-天津市金丰泰机械泵业有限公司【官方网站】 | 溶氧传感器-pH传感器|哈美顿(hamilton) | 集菌仪厂家_全封闭_封闭式_智能智能集菌仪厂家-上海郓曹 | 冷油器,取样冷却器,热力除氧器-连云港振辉机械设备有限公司 | 对照品_中药对照品_标准品_对照药材_「格利普」高纯中药标准品厂家-成都格利普生物科技有限公司 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库 | 杭州高温泵_热水泵_高温油泵|昆山奥兰克泵业制造有限公司 | 沙盘模型公司_沙盘模型制作公司_建筑模型公司_工业机械模型制作厂家 |