計(jì)算機(jī)c語言試題及答案【集錦】

思而思學(xué)網(wǎng)

 1.

#include "stdio.h"

main()

{char c;

c=get);

while(c!='?') {putc);c=get); }

}

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

運(yùn)行結(jié)果為:abcde

2.

#include

main()

{ char c;

while((c=get))!=’$’)

{ if(‘A’<=c&&c<=‘Z’)putc);

else if(‘a(chǎn)’<=c&&c<=‘z’)putc-32);}

}

當(dāng)輸入為abAB%cd#CD$時(shí),運(yùn)行結(jié)果為: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);

}

運(yùn)行結(jié)果為:10 5

詳見教材p120for語句

詳見教材p126~128break,continue語句

for( 表達(dá)式1;表達(dá)式2;表達(dá)式3)

{

}

(1) 先求解表達(dá)式1

(2) 求解表達(dá)式2,若其值為真,執(zhí)行循環(huán)體,然后執(zhí)行 (3). 若為假,則結(jié)束循環(huán),轉(zhuǎn)到(5)

(3) 求解表達(dá)式3

(4) 轉(zhuǎn)回上面 (2)繼續(xù)執(zhí)行

(5) 循環(huán)結(jié)束,執(zhí)行for語句下面的一個(gè)語句

break ,跳出循環(huán)體;continue,結(jié)束本次循環(huán)(第i次循環(huán)),繼續(xù)執(zhí)行下一次循環(huán)(第i+1次循環(huán))

此題 表達(dá)式1為x=1,表達(dá)式2(循環(huán)條件)為x<=10,表達(dá)式3為x++

初值x為1,y為0,循環(huán)條件(即表達(dá)式2)x<=10成立,進(jìn)入循環(huán)體

第1次循環(huán)

執(zhí)行if語句。0小于10,if語句的條件表達(dá)式不成立,不執(zhí)行break;

執(zhí)行y=y+x; y=0+1=1

轉(zhuǎn)向表達(dá)式3,執(zhí)行x++,x=x+1=1+1=2。循環(huán)條件x<=10成立,進(jìn)入第2次循環(huán)

第2次循環(huán)

執(zhí)行if語句。1小于10,if語句的條件表達(dá)式不成立,不執(zhí)行break;

執(zhí)行y=y+x; y=1+2=3

轉(zhuǎn)向表達(dá)式3,執(zhí)行x++,x=x+1=2+1=3。循環(huán)條件x<=10成立,進(jìn)入第3次循環(huán)

第3次循環(huán)

執(zhí)行if語句。3小于10,if語句的條件表達(dá)式不成立,不執(zhí)行break;

執(zhí)行y=y+x; y=3+3=6

轉(zhuǎn)向表達(dá)式3,執(zhí)行x++,x=x+1=3+1=4。循環(huán)條件x<=10成立,進(jìn)入第4次循環(huán)

第4次循環(huán)

執(zhí)行if語句。6小于10,if語句的條件表達(dá)式不成立,不執(zhí)行break;

執(zhí)行y=y+x; y=6+4=10

轉(zhuǎn)向表達(dá)式3,執(zhí)行x++,x=x+1=4+1=5。循環(huán)條件x<=10成立,進(jìn)入第5次循環(huán)

第5次循環(huán)

執(zhí)行if語句。10等于10,if語句的條件表達(dá)式成立,執(zhí)行break,跳出循環(huán)。

從break跳出至for語句的下一條語句。執(zhí)行printf(“%d %d”,y,x);

輸出當(dāng)前的y與x.結(jié)果為10 5

4.

#include

main( )

{char ch;

ch=get );

switch(ch)

{case‘A’ : printf(“%c”,’A’);

case‘B’ : printf(“%c”,’B’); break;

default: printf(“%s ”,”other”);

} }

當(dāng)從鍵盤輸入字母A時(shí),運(yùn)行結(jié)果為:AB

詳見教材p103,switch語句

switch(表達(dá)式)

{ case常量1 :語句1

case常量2 :語句2

┇┇ ┇

case常量n :語句n

default :語句n+1

}

其中表達(dá)式,常量1,…,常量n都為整型或字符型

case相當(dāng)于給出執(zhí)行程序的入口和起始位置,若找到匹配的常量,則從此處開始往下執(zhí)行程序,不再匹配常量,直至遇到break或switch結(jié)束

本題過程:

首先從鍵盤接收一個(gè)字符’A’并將其放在變量ch中。

執(zhí)行switch語句。Switch后面的條件表達(dá)式為ch,因此表達(dá)式的值即為字符’A’. 用字符’A’依次與下面的 case中的常量匹配。

與第1個(gè)case后的常量匹配,則從其后的語句開始往下執(zhí)行程序(在執(zhí)行過程中不再進(jìn)行匹配。)因此先執(zhí)行printf(“%c”,’A’),屏幕上輸出A;再往下繼續(xù)執(zhí)行printf(“%c”,’B’),屏幕上輸出B;再繼續(xù)執(zhí)行break, 此時(shí)跳出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,運(yùn)行結(jié)果為:10

本題過程:

首先用scanf函數(shù)為變量a賦值為5。

執(zhí)行switch語句。switch后面的條件表達(dá)式為a,因此表達(dá)式的值即為5. 用5依次與下面 case中的常量匹配。沒有找到匹配的常量,因此兩個(gè)case后的語句都不執(zhí)行。執(zhí)行default后面的語句b=10;將10賦給變量b。

輸出變量b,結(jié)果為10

6.

#include

main()_

{ char grade=’C’;

switch(grade)

{

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

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

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

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

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

default : printf(“error! ”);

}

}

運(yùn)行結(jié)果為:

70-80

60-70

本題過程:

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

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

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

7.

#include

main()

{ int y=9;

for(;y>0;y- -)

if(y%3==0)

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

}

}

運(yùn)行結(jié)果為:

852

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

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

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

第1次循環(huán)

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

轉(zhuǎn)向表達(dá)式3,執(zhí)行y--,y=y-1=8-1=7。循環(huán)條件y>0成立,進(jìn)入第2次循環(huán)

第2次循環(huán)

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

轉(zhuǎn)向表達(dá)式3,執(zhí)行y--,y=y-1=7-1=6。循環(huán)條件y>0成立,進(jìn)入第3次循環(huán)

第3次循環(huán)

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

轉(zhuǎn)向表達(dá)式3,執(zhí)行y--,y=y-1=5-1=4。循環(huán)條件y>0成立,進(jìn)入第4次循環(huán)

第4次循環(huán)

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

轉(zhuǎn)向表達(dá)式3,執(zhí)行y--,y=4-1=3。循環(huán)條件y>0成立,進(jìn)入第5次循環(huán)

第5次循環(huán)

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

轉(zhuǎn)向表達(dá)式3,執(zhí)行y--,y=y-1=2-1=1。循環(huán)條件y>0成立,進(jìn)入第5次循環(huán)

第6次循環(huán)

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

轉(zhuǎn)向表達(dá)式3,執(zhí)行y--,y=1-1=0。循環(huán)條件y>0不成立,循環(huán)結(jié)束。

8.

#include

main()

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

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

printf(“%d”,sum);

}

運(yùn)行結(jié)果為: 55

9.

#include

#define N 4

main()

{ int i;

int x1=1,x2=2;

printf(" ");

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

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

if(i%2==0)

printf(" ");

x1=x1+x2;

x2=x2+x1;

}

}

運(yùn)行結(jié)果為:

1 2 3 5

8 132134

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

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

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

第1次循環(huán)

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

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

執(zhí)行x1=x1+x2=1+2=3;此時(shí)x1中的值已變?yōu)?

執(zhí)行x2=x2+x1=2+3=5。

轉(zhuǎn)向表達(dá)式3,執(zhí)行i++,i為2。循環(huán)條件i<=4成立,進(jìn)入第2次循環(huán)

第2次循環(huán)

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

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

執(zhí)行x1=x1+x2=3+5=8;此時(shí)x1中的值已變?yōu)?

執(zhí)行x2=x2+x1=5+8=13。

轉(zhuǎn)向表達(dá)式3,執(zhí)行i++,i為3。循環(huán)條件i<=4成立,進(jìn)入第3次循環(huán)

第3次循環(huán)

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

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

執(zhí)行x1=x1+x2=8+13=21;此時(shí)x1中的值已變?yōu)?1

執(zhí)行x2=x2+x1=21+13=34。

轉(zhuǎn)向表達(dá)式3,執(zhí)行i++,i為4。循環(huán)條件i<=4成立,進(jìn)入第4次循環(huán)

第2次循環(huán)

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

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

執(zhí)行x1=x1+x2=21+34=55;此時(shí)x1中的值已變?yōu)?5

執(zhí)行x2=x2+x1=34+55=89。

轉(zhuǎn)向表達(dá)式3,執(zhí)行i++,i為5。循環(huán)條件i<=4不成立,結(jié)束循環(huán)

10

#include

main( )

{intx, y;

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

x/=2, y+=2;

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

}

運(yùn)行結(jié)果為:

x=0,y=12 11.

#include

#define N 4

main( )

{ inti,j;

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

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

printf("");

printf(" ");

}}

運(yùn)行結(jié)果為:

詳見教材P41符號常量

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

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

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

外層for循環(huán)第1次此時(shí)i為1

內(nèi)層循環(huán)j=1,使得循環(huán)條件j 執(zhí)行printf("");

執(zhí)行printf(" ");換行

至此外層循環(huán)體執(zhí)行完,計(jì)算外層循環(huán)的表達(dá)式3,i++,此時(shí)i為2. 使得循環(huán)條件i<=4

成立,再次進(jìn)入外層for循環(huán)體

外層for循環(huán)第2次 此時(shí)i為2

內(nèi)層循環(huán)j=1,使得循環(huán)條件j 第1次執(zhí)行內(nèi)層循環(huán)體printf(" ");

執(zhí)行內(nèi)層循環(huán)表達(dá)式3,j++為2,j 執(zhí)行printf("");

執(zhí)行printf(" ");換行

至此外層循環(huán)體執(zhí)行完,計(jì)算外層循環(huán)的表達(dá)式3,i++,此時(shí)i為3. 使得循環(huán)條件i<=4

成立,進(jìn)入外層for循環(huán)體

外層for循環(huán)第3次 此時(shí)i為3

內(nèi)層循環(huán)j=1,使得循環(huán)條件j 第1次執(zhí)行內(nèi)層循環(huán)體printf(" ");

執(zhí)行內(nèi)層循環(huán)表達(dá)式3,j++為2,j 第2次執(zhí)行內(nèi)層循環(huán)體printf(" ");

執(zhí)行內(nèi)層循環(huán)表達(dá)式3,j++為3,j 執(zhí)行printf("");

執(zhí)行printf(" ");換行

至此外層循環(huán)體執(zhí)行完,計(jì)算外層循環(huán)的表達(dá)式3,i++,此時(shí)i為4. 使得循環(huán)條件i<=4

成立,進(jìn)入外層for循環(huán)體

外層for循環(huán)第4次 此時(shí)i為4

內(nèi)層循環(huán)j=1,使得循環(huán)條件j 第1次執(zhí)行內(nèi)層循環(huán)體printf(" ");

執(zhí)行內(nèi)層循環(huán)表達(dá)式3,j++為2,j 第2次執(zhí)行內(nèi)層循環(huán)體printf(" ");

執(zhí)行內(nèi)層循環(huán)表達(dá)式3,j++為3,j 第3次執(zhí)行內(nèi)層循環(huán)體printf(" ");

執(zhí)行內(nèi)層循環(huán)表達(dá)式3,j++為4,j 執(zhí)行printf("");

執(zhí)行printf(" ");換行

至此外層循環(huán)體執(zhí)行完,計(jì)算外層循環(huán)的表達(dá)式3,i++,此時(shí)i為5. 使得循環(huán)條件i<=4

不成立,跳出外層for循環(huán)體

熱門推薦

最新文章