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

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

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 主站蜘蛛池模板: 智能风向风速仪,风速告警仪,数字温湿仪,综合气象仪(气象五要素)-上海风云气象仪器有限公司 | 拖链电缆_柔性电缆_伺服电缆_坦克链电缆-深圳市顺电工业电缆有限公司 | 青海电动密集架_智能密集架_密集架价格-盛隆柜业青海档案密集架厂家 | 技德应用| 包头市鑫枫装饰有限公司| 环氧乙烷灭菌器_压力蒸汽灭菌器_低温等离子过氧化氢灭菌器 _低温蒸汽甲醛灭菌器_清洗工作站_医用干燥柜_灭菌耗材-环氧乙烷灭菌器_脉动真空压力蒸汽灭菌器_低温等离子灭菌设备_河南省三强医疗器械有限责任公司 | 天津力值检测-天津管道检测-天津天诚工程检测技术有限公司 | 南溪在线-南溪招聘找工作、找房子、找对象,南溪综合生活信息门户! | 北京印刷厂_北京印刷_北京印刷公司_北京印刷厂家_北京东爵盛世印刷有限公司 | 华东师范大学在职研究生招生网_在职研究生招生联展网 | 注塑_注塑加工_注塑模具_塑胶模具_注塑加工厂家_深圳环科 | 武汉天安盾电子设备有限公司 - 安盾安检,武汉安检门,武汉安检机,武汉金属探测器,武汉测温安检门,武汉X光行李安检机,武汉防爆罐,武汉车底安全检查,武汉液体探测仪,武汉安检防爆设备 | 杭州标识标牌|文化墙|展厅|导视|户内外广告|发光字|灯箱|铭阳制作公司 - 杭州标识标牌|文化墙|展厅|导视|户内外广告|发光字|灯箱|铭阳制作公司 | 风化石头制砂机_方解石制砂机_瓷砖石子制砂机_华盛铭厂家 | 铝板冲孔网,不锈钢冲孔网,圆孔冲孔网板,鳄鱼嘴-鱼眼防滑板,盾构走道板-江拓数控冲孔网厂-河北江拓丝网有限公司 | 云南外加剂,云南速凝剂,云南外加剂代加工-普洱澜湄新材料科技有限公司 | 江苏全风,高压风机,全风环保风机,全风环形高压风机,防爆高压风机厂家-江苏全风环保科技有限公司(官网) | 100_150_200_250_300_350_400公斤压力空气压缩机-舰艇航天配套厂家 | 中开泵,中开泵厂家,双吸中开泵-山东博二泵业有限公司 | 耐高温电缆厂家-远洋高温电缆| 注浆压力变送器-高温熔体传感器-矿用压力传感器|ZHYQ朝辉 | 蓝牙音频分析仪-多功能-四通道-八通道音频分析仪-东莞市奥普新音频技术有限公司 | 工业胀紧套_万向节联轴器_链条-规格齐全-型号选购-非标订做-厂家批发价格-上海乙谛精密机械有限公司 | 武汉高温老化房,恒温恒湿试验箱,冷热冲击试验箱-武汉安德信检测设备有限公司 | 中国品牌门窗网_中国十大门窗品牌_著名门窗品牌 | 通用磨耗试验机-QUV耐候试验机|久宏实业百科 | 电采暖锅炉_超低温空气源热泵_空气源热水器-鑫鲁禹电锅炉空气能热泵厂家 | 旋振筛_不锈钢旋振筛_气旋筛_旋振筛厂家—新乡市大汉振动机械有限公司 | 高低温万能试验机_拉力试验机_拉伸试验机-馥勒仪器科技(上海)有限公司 | 脉冲布袋除尘器_除尘布袋-泊头市净化除尘设备生产厂家 | 云南标线|昆明划线|道路标线|交通标线-就选云南云路施工公司-云南云路科技有限公司 | 光泽度计_测量显微镜_苏州压力仪_苏州扭力板手维修-苏州日升精密仪器有限公司 | 塑料瓶罐_食品塑料瓶_保健品塑料瓶_调味品塑料瓶–东莞市富慷塑料制品有限公司 | 扒渣机厂家_扒渣机价格_矿用扒渣机_铣挖机_撬毛台车_襄阳永力通扒渣机公司 | 【星耀裂变】_企微SCRM_任务宝_视频号分销裂变_企业微信裂变增长_私域流量_裂变营销 | 加气混凝土砌块设备,轻质砖设备,蒸养砖设备,新型墙体设备-河南省杜甫机械制造有限公司 | 免费个人pos机申请办理-移动pos机刷卡-聚合收款码办理 | NM-02立式吸污机_ZHCS-02软轴刷_二合一吸刷软轴刷-厦门地坤科技有限公司 | 焊接烟尘净化器__焊烟除尘设备_打磨工作台_喷漆废气治理设备 -催化燃烧设备 _天津路博蓝天环保科技有限公司 | 长江船运_国内海运_内贸船运_大件海运|运输_船舶运输价格_钢材船运_内河运输_风电甲板船_游艇运输_航运货代电话_上海交航船运 | 油缸定制-液压油缸厂家-无锡大鸿液压气动成套有限公司 |