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

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

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 主站蜘蛛池模板: 凝胶成像系统(wb成像系统)百科-上海嘉鹏 | 采暖炉_取暖炉_生物质颗粒锅炉_颗粒壁炉_厂家加盟批发_烟台蓝澳采暖设备有限公司 | 12cr1mov无缝钢管切割-15crmog无缝钢管切割-40cr无缝钢管切割-42crmo无缝钢管切割-Q345B无缝钢管切割-45#无缝钢管切割 - 聊城宽达钢管有限公司 | 南京种植牙医院【官方挂号】_南京治疗种植牙医院那个好_南京看种植牙哪里好_南京茀莱堡口腔医院 尼龙PA610树脂,尼龙PA612树脂,尼龙PA1010树脂,透明尼龙-谷骐科技【官网】 | 水厂自动化|污水处理中控系统|水利信息化|智慧水务|智慧农业-山东德艾自动化科技有限公司 | app开发|app开发公司|小程序开发|物联网开发||北京网站制作|--前潮网络 | 排烟防火阀-消防排烟风机-正压送风口-厂家-价格-哪家好-德州鑫港旺通风设备有限公司 | 活性炭厂家-蜂窝活性炭-粉状/柱状/果壳/椰壳活性炭-大千净化-活性炭 | 飞歌臭氧发生器厂家_水处理臭氧发生器_十大臭氧消毒机品牌 | 涂层测厚仪_漆膜仪_光学透过率仪_十大创新厂家-果欧电子科技公司 | 找果网 | 苹果手机找回方法,苹果iPhone手机丢了找回,认准找果网! | 手板-手板模型-手板厂-手板加工-生产厂家,[东莞创域模型] | 衬氟旋塞阀-卡套旋塞阀-中升阀门首页 | 致胜管家软件服务【在线免费体验】| 油液红外光谱仪-油液监测系统-燃油嗅探仪-上海冉超光电科技有限公司 | bkzzy在职研究生网 - 在职研究生招生信息咨询平台 | 蔬菜清洗机_环速洗菜机_异物去除清洗机_蔬菜清洗机_商用洗菜机 - 环速科技有限公司 | KBX-220倾斜开关|KBW-220P/L跑偏开关|拉绳开关|DHJY-I隔爆打滑开关|溜槽堵塞开关|欠速开关|声光报警器-山东卓信有限公司 | 网络推广公司_网络营销方案策划_企业网络推广外包平台-上海澜推网络 | PCB厂|线路板厂|深圳线路板厂|软硬结合板厂|电路板生产厂家|线路板|深圳电路板厂家|铝基板厂家|深联电路-专业生产PCB研发制造 | 首页|光催化反应器_平行反应仪_光化学反应仪-北京普林塞斯科技有限公司 | 真空干燥烘箱_鼓风干燥箱 _高低温恒温恒湿试验箱_光照二氧化碳恒温培养箱-上海航佩仪器 | 雾度仪_雾度计_透光率雾度仪价格-三恩时(3nh)光电雾度仪厂家 | 电脑刺绣_绣花厂家_绣花章仔_织唛厂家-[源欣刺绣]潮牌刺绣打版定制绣花加工厂家 | 天然鹅卵石滤料厂家-锰砂滤料-石英砂滤料-巩义东枫净水 | 金属回收_废铜废铁回收_边角料回收_废不锈钢回收_废旧电缆线回收-广东益夫金属回收公司 | 跨境物流_美国卡派_中大件运输_尾程派送_海外仓一件代发 - 广州环至美供应链平台 | 周口市风机厂,周鼓风机,河南省周口市风机厂| 食品质构分析仪-氧化诱导分析仪-瞬态法导热系数仪|热冰百科 | DAIKIN电磁阀-意大利ATOS电磁阀-上海乾拓贸易有限公司 | 氧化锆纤维_1800度高温退火炉_1800度高温烧结炉-南京理工宇龙新材料股份有限公司 | 高低温试验箱-模拟高低温试验箱订制-北京普桑达仪器科技有限公司【官网】 | 铸铝门厂家,别墅大门庭院大门,别墅铸铝门铜门[十大品牌厂家]军强门业 | 高清视频编码器,4K音视频编解码器,直播编码器,流媒体服务器,深圳海威视讯技术有限公司 | ★济南领跃标识制作公司★济南标识制作,标牌制作,山东标识制作,济南标牌厂 | 东莞市超赞电子科技有限公司 全系列直插/贴片铝电解电容,电解电容,电容器 | 洛阳装修公司-洛阳整装一站式品牌-福尚云宅装饰 | 北京网站建设首页,做网站选【优站网】,专注北京网站建设,北京网站推广,天津网站建设,天津网站推广,小程序,手机APP的开发。 | 便携式表面粗糙度仪-彩屏硬度计-分体式粗糙度仪-北京凯达科仪科技有限公司 | 游泳池设计|设备|配件|药品|吸污机-东莞市太平洋康体设施有限公司 | 北京环球北美考试院【官方网站】|北京托福培训班|北京托福培训 |