違法信息舉報(bào) 客服熱線:400-118-7898
廣告
?
專接本欄目測試廣告

?2022年湖北專升本C語言循環(huán)控制模擬題

普通專升本 責(zé)任編輯:管理員 2022-02-12

摘要:本文是2022年湖北專升本C語言循環(huán)控制模擬題,共有52道選擇題和10道填空題,供大家參考。具體詳細(xì)內(nèi)容見下文。

一、單項(xiàng)選擇題

1.下面程序段的運(yùn)行結(jié)果是( C )。

int n=0;

while(n++<=2);

printf(“%d”,n);

A) 2

B) 3

C) 4

D) 有語法錯(cuò)

2.設(shè)有程序段:

t=0;

while(printf(“*”))

{t++;

if(t<3) break;

}

下面描述正確的是( D)。

A) 其中循環(huán)控制表達(dá)式與 0 等價(jià)

B) 其中循環(huán)控制表達(dá)式與'0'等價(jià)

C) 其中循環(huán)控制表達(dá)式是不合法的

D) 以上說法都不對

3.下面程序的功能是將從鍵盤輸入的一對數(shù),由小到大排序輸出,當(dāng)輸入一對相等數(shù)時(shí)結(jié)束循環(huán),請選擇填空( B )。

#include

main()

{int a,b,t;

scanf(“%d%d”,&a,&b);

while( ___________ )

{if(a>b)

{t=a;a=b;b=t;}

printf(“%d,%d\n”,a,b);

scanf("%d%d",&a,&b);

}}

A) !a=b

B) a!=b

C) a==b

D) a=b

4.C 語言中,while 和 do-while 循環(huán)的主要區(qū)別是(A)。

A) do-while 的循環(huán)體至少無條件執(zhí)行一次

B) while 的循環(huán)控制條件比 do-while 的循環(huán)控制條件更嚴(yán)格

C) do-while 允許從外部轉(zhuǎn)到循環(huán)體內(nèi)

D) do-while 的循環(huán)體不能是復(fù)合語句

5.對以下程序段描述正確的是(C)。

x=-1;

do

{x=x*x;}

while(!x);

A) 是死循環(huán)

B) 循環(huán)執(zhí)行二次

C) 循環(huán)執(zhí)行一次

D) 有語法錯(cuò)誤

6.以下描述中正確的是( C)。

A) do-while 循環(huán)中循環(huán)體內(nèi)不能使用復(fù)合語句

B) do-while 循環(huán)由 do 開始,用 while 結(jié)束,在 while(表達(dá)式)后面不能寫分號

C) 在 do-while 循環(huán)體中,一定要有能使 while 后面表達(dá)式的值變?yōu)榱?“假”)的操作

D) do-while 循環(huán)中,根據(jù)情況可以省略 while

7.若有如下語句

int x=3;

do{ printf(“%3d”,x-=2);} while(!(--x));

則上面程序段(B)。

A) 輸出的是 1

B) 輸出的是 1 和-2

C) 輸出的是 3 和 0

D) 是死循環(huán)

8.下面有關(guān) for 循環(huán)的正確描述是( D)。

A) for 循環(huán)只能用于循環(huán)次數(shù)已經(jīng)確定的情況

B) for 循環(huán)是先執(zhí)行循環(huán)的循環(huán)體語句,后判斷表達(dá)式

C) 在 for 循環(huán)中,不能用 break 語句跳出循環(huán)體

D) for 循環(huán)的循環(huán)體語句中,可以包含多條語句,但必須用花括號括起來

9.對 for(表達(dá)式 1; ;表達(dá)式 3)可理解為(B )。

A) for(表達(dá)式 1;0;表達(dá)式 3)

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

C) for(表達(dá)式 1;表達(dá)式 1;表達(dá)式 3) D) for(表達(dá)式 1;表達(dá)式 3;表達(dá)式 3)

10.若 i 為整型變量,則以下循環(huán)執(zhí)行次數(shù)是( B)。

for(i=2;i==0;) printf(“%d”,i--);

A) 無限次 B) 0 次 C) 1 次

D) 2 次

11.以下不是無限循環(huán)的語句為( A)。

A) for(y=0,x=1;x>++y;x=i++) i=x;

B) for(;;x++=i);

C) while(1){x++;}

D) for(i=10;;i--) sum+=i;

12.下面程序段的運(yùn)行結(jié)果是( C )。

for(y=1;y<10;) y=((x=3*y,x+1),x-1);

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

A) x=27,y=27 B) x=12,y=13 C) x=15,y=14 D) x=y=27

13.執(zhí)行語句 for(i=1;i++<4;) ;后變量 i 的值是( C )。

A) 3

B) 4

C) 5

D) 不定

14.有一堆零件(100 到 200 之間),如果分成 4 個(gè)零件一組的若干組,則多 2 個(gè)零件;若分成 7 個(gè)零件一組,則多 3 個(gè)零件;若分成 9 個(gè)零件一組,則多 5 個(gè)零件。下面程序是求這堆零件總數(shù),請選擇填空( D)。

#include

main()

{int i;

for(i=100;i<200;i++)

if((i-2)%4==0)

if(!((i-3)%7))

if( ______ )

printf(“%d”,i);

}

A) i%9=5

B) i%9!=5

C) (i-5)%9!=0

D) i%9==5

15.下面程序的功能是把 316 表示為兩個(gè)加數(shù)的和,使兩個(gè)加數(shù)分別能被 13 和 11 整除,請選擇填空( B )。

#include

main()

{ int i=0,j,k;

do{i++;k=316-13*i;}while( _k%11______ );

j=k/11;

printf(“316=13*%d+11*%d”,i,j);

}

A) k/11 B) k%11 C) k/11==0

D) k%11==0

16.下面程序的運(yùn)行結(jié)果是( D)。

#include

main()

{int y=10;

do{y--;}while(--y);

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

}

A) -1

B) 1

C) 8

D) 0

17.若運(yùn)行以下程序時(shí),從鍵盤輸入 ADescriptor(表示回車),則下面程序的運(yùn)行結(jié)果是(D)。

#include

main()

{char c;

int v0=1,v1=0,v2=0;

do{

switch(c=getchar())

{case‘a(chǎn)’:case‘A’:

case‘e’:case‘E’:

case‘i’:case‘I’:

case‘o’:case‘O’:

case‘u’:case‘U’:v1+=1;

default:v0+=1;v2+=1;

}

}while(c!=’\n’);

printf(“v0=%d,v1=%d,v2=%d\n”,v0,v1,v2);

}

A) v0=7,v1=4,v2=7

B) v0=8,v1=4,v2=8

C) v0=11,v1=4,v2=11

D) v0=12,v1=4,v2=12

18.下面程序的運(yùn)行結(jié)果是(B)。

#include

main()

{int a=1,b=10;

do

{b-=a;a++;}

while(b--<0);

printf(“a=%d,b=%d\n”,a,b);

}

A) a=3,b=11

B) a=2,b=8

C) a=1,b=-1

D) a=4,b=9

19.以下程序的輸出結(jié)果是( B )。

main()

{ int num=0;

while(num<=2)

{ num++; printf(“%d\n”,num);}

}

A) 1 2 3 4

B) 1 2 3

C) 1 2

D) l

20.設(shè)有程序段

int k=10;

while(k=0) k=k-1;

則下面描述中正確的是( C)。

A) while 循環(huán)執(zhí)行 10 次

B) 循環(huán)是無限循環(huán)

C) 循環(huán)體語句一次也不執(zhí)行

D) 循環(huán)體語句執(zhí)行一次

21.設(shè)有以下程序段

int x=0,s=0;

while(!x!=0) s+=++x;

printf("%d",s);

則( B )。

A) 運(yùn)行程序段后輸出 0

B) 運(yùn)行程序段后輸出 1

C) 程序段中的控制表達(dá)式是非法的 

D) 程序段執(zhí)行無限次

22.語句 while(!E);中的表達(dá)式!E 等價(jià)于(A)。

A) E==0

B) E!=1

C) E!=0

D) E==1

23.下面程序段的運(yùn)行結(jié)果是( A)。

a=1;b=2;c=2;

while(a<b

printf("%d, %d, %d", a, b, c);

A) 1,2,0

B) 2,1,0

C) 1,2,1

D) 2,1,1

24.下面程序段的運(yùn)行結(jié)果是( D)。

x=y=0;

while(x<15) y++,x+=++y;

printf("%d, %d", y, x);

A) 20,7

B) 6,12

C) 20,8

D) 8,20

25.以下程序段的執(zhí)行結(jié)果是( B )。

int a, y;

a=10; y=0;

do

{ a+=2; y+=a;

printf("a=%d y=%d\n", a, y);

if(y>20) break;

} while(a=14);

A) a=12 y=12

B) a=12 y=12

a=14 y=16

a=16 y=28

a=16 y=20

a=18 y=24

C) a=12 y=12

D) a=12 y=12

a=14 y=26

a=14 y=44

26.t 為 int 類型,進(jìn)人下面的循環(huán)之前,t 的值為 0,則以下敘述中正確的是( B)。

while( t=l )

{……}

A) 循環(huán)控制表達(dá)式的值為 0

B) 循環(huán)控制表達(dá)式的值為 1

C) 循環(huán)控制表達(dá)式不合法

D) 以上說法都不對

27.有以下程序段

int k=0;

while(k=1) k++;

while 循環(huán)執(zhí)行的次數(shù)是(A)。

A) 無限次

B) 有語法錯(cuò),不能執(zhí)行

C) 一次也不執(zhí)行

D) 執(zhí)行 1 次

28.以下程序執(zhí)行后 sum 的值是(C)。

main()

{ int i , sum;

for(i=1;i<6;i++) sum+=i;

printf("%d\n",sum);

}

A) 15

B) 14

C) 不確定

D) 0

29.有以下程序段

int x=3;

do

{ printf("%d",x-=2); }

while (!(--x));

其輸出結(jié)果是(C)。

A) 1

B) 3 0

C) 1 -2

D) 死循環(huán)

30.若輸入 12、8,以下程序的輸出結(jié)果是( A)。

main()

{int a,b,num1,num2,temp;

scanf(“%d,%d”,&num1,&num2);

if(num1>num2)

{temp=num1;

num1=num2;

num2=temp;

}

a=num1,b=num2;

while(b!=0)

{temp=a%b;

a=b;

b=temp;

}

printf(“%d, %d”,a,num1*num2/a);

}

A) 4,24 

B) 3,24

C) 5,25

D) 4,25

31.以下程序的輸出結(jié)果是( A )。

#include

#include

main()

{int s=1;

float n=1,pi=0;

double t=1;

while(fabs(t)>=2e-6)

{pi+=t;

n+=2;

s=-s;

t=s/n;

}

pi*=4;

printf(“pi=%.6f\n”,pi);

}

A) 3.141592

B) 1

C) 2e-6

D) 0

32.以下程序的輸出結(jié)果是( B )。

main()

{int i,f1,f2;

f1=f2=1;

for(i=0;i<4;i++)

{printf(“%d %d ”,f1,f2);

f1+=f2;

f2+=f1;

}}

A) 1 2 3 4 5 6 7 8

B) 1 1 2 3 5 8 13 21

C) 1 1 3 5 7 9 11 13

D) 1 3 5 7 9 11 13 15

33.下列敘述中,正確的一條是( B )。

A) 語句“goto 12;”是合法的

B) for(;;)語句相當(dāng)于 while(1)語句

C) if(表達(dá)式)語句中,表達(dá)式的類型只限于邏輯表達(dá)式

D) break 語句可用于程序的任何地方,以終止程序的執(zhí)行

34.以下程序的輸出結(jié)果是(B)。

main()

{int a,b;

for(a=1,b=1;a<=100;a++)

{if(b>=20) break;

if(b%3==1)

{b+=3;

continue;

}

b-=5;

}

printf(“%d\n”,a);

}

A) 7

B) 8

C) 9

D) 10

35.以下的 for 循環(huán)( C)

for(x=0,y=0;(y!=123)&&(x<4);x++) ;

A) 是無限循環(huán)

B) 循環(huán)次數(shù)不定

C) 執(zhí)行 4 次

D) 執(zhí)行 3 次

36.C 語言中( D )

A) 不能使用 do-while 語句構(gòu)成的循環(huán)

B) do-while 語句構(gòu)成的循環(huán)必須用 break 語句才能退出

C) do-while 語句構(gòu)成的循環(huán),當(dāng) while 語句中的表達(dá)式值為非零時(shí)結(jié)束循環(huán)

D) do-while 語句構(gòu)成的循環(huán),當(dāng) while 語句中的表達(dá)式值為零時(shí)結(jié)束循環(huán)

37.以下程序的輸出結(jié)果是( A)。

main()

{int i;

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

{if(i%2)

printf(“*”);

else

continue;

printf(“#”);

}

printf(“$\n”);

}

A) *#*#*#$ B) #*#*#*$ C) *#*#$ D) #*#*$

38.有以下程序,從第一列開始輸入數(shù)據(jù) 2473

#include

main()

{int c;

while((c=getchar())!=’\n’)

{switch(c-‘

2’)

{case 0:

case 1:putchar(c+4);

case 2:putchar(c+4);break;

case 3:putchar(c+3);

default:putchar(c+2);break;

}}

printf(“\n”);

}

A) 668977

B) 668966

C) 6677877

D) 6688766

39.執(zhí)行以下程序片段的結(jié)果是(B)。

int x=23;

do

{printf(“%d”, x--);}

while(!x);

A) 打印出 321

B) 打印出 23

C) 不打印任何內(nèi)容

D) 陷入死循環(huán)

40.若 x 是 int 型變量,則執(zhí)行以下程序片段的結(jié)果是(D)。

for(x=3;x<6;x++) printf((x%2)?(“**%d”) : (“##%d\n”), x);

A) **3##4**5 

B) ##3**4##5

C) ##3

D) **3##4 **4##5 **5

41.有以下程序,若運(yùn)行時(shí)從鍵盤輸入 3.6 2.4

#include

#include

main()

{float x,y,z;

scanf(“%f%f”,&x,&y);

z=x/y;

while(1)

{if(fabs(z)>1.0)

{x=y;y=z;z=x/y;}

else break;

}

printf(“%f\n”, y);

}

A) 1.500000 

B) 1.600000

C) 2.000000

D) 2.400000

42.以下程序的輸出結(jié)果是( D)。

main()

{int x=10,y=10,i;

for(i=0;x>8;y=++i)

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

}

A) 10 1 9 2

B) 9 8 7 6

C) 10 9 9 0

D) 10 10 9 1

43.以下程序的輸出結(jié)果是(A)。

main()

{int n=4;

while(n--)

printf(“%d”,--n);

}

A) 2 0

B) 3 1

C) 3 2 1

D) 2 1 0

44.以下程序的輸出結(jié)果是( B)。

main()

{int i;

for(i=’A’;i<’I’;i++,i++)

printf(“%c”,i+32);

}

A) 編譯通不過,無輸出 B) aceg C) acegi D) abcdefghi

45.若 i、j 已定義為 int 型,則以下程序段中內(nèi)循環(huán)體的總的執(zhí)行次數(shù)是( A)。

for(i=5;i;i--)

for(j=0;j<4;j++){}

A) 20

B) 24

C) 25

D) 30

46.若 j 為 int 型變量,則以下 for 循環(huán)語句的執(zhí)行結(jié)果是( B)。

for(j=10;j>3;j--)

{if(j%3) j--;--j;--j;printf(“%d”,j);}

A) 6 3

B) 7 4

C) 6 2

D) 7 3

47.以下程序的執(zhí)行結(jié)果是( D )。

main()

{int i,x;

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

{x=i;

if(++x%2==0)

if(x%3==0)

if(x%7==0)

printf(“%d”,i);

}}

A) 28

B) 27

C) 42

D) 41

48.以下程序的執(zhí)行結(jié)果是( B)。

main()

{int i,j;

for(j=10;j<11;j++)

{ for(i=9;i<j;i++)

if(!(j%i)) break;

if(i>=j-1) printf(“%d”,j);

}}

A) 11

B) 10

C) 9

D) 10 11

49.在下列選項(xiàng)中,沒有構(gòu)成死循環(huán)的程序段是( C)。

A) int i=100;

while(1)

{i=i%100+1;

if(i>100) break;

}

B) for(;;);

C) int k=1000;

do{++k;} while(s);--s; 

while(k>=10000);

D) int s=36;

50.以下程序的輸出結(jié)果是( B)。

main()

{int i,j,x=0;

for(i=0;i<2;i++)

{ x++;

for(j=0;j<=3;j++)

{ if(j%2) continue;

x++;

}

x++;

}

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

}

A) x=4

B) x=8

C) x=6

D) x=12

51.運(yùn)行以下程序后,如果從鍵盤上輸入 6514

main()

{int m,n;

scanf(“%d%d”,&m,&n);

while(m!=n)

{while(m>n) m-=n;

while(n>m) n-=m;

}

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

}

A) m=3

B) m=2

C) m=1

D) m=0

52.以下程序的輸出結(jié)果是(C)。

main()

{int i,j,m=0,n=0;

for(i=0;i<2;i++)

for(j=0;j<2;j++)

if(j>=i) m=1;n++;

printf(“%d\n”, n);

}

A) 4

B) 2

C) 1

D) 0

53.以下程序執(zhí)行后 sum 的值是( C)。

main()

{ int i , sum=0;

for(i=1;i<=3;sum++) sum+=i;

printf("%d\n",sum);

}

A) 6

B) 3

C) 死循環(huán)

D) 0

二、填空題

1.以下程序運(yùn)行后的輸出結(jié)果是52。

main()

{ int i=10, j=0;

do

{ j=j+i; i--;}

while(i>2);

printf("%d\n",j);

}

2.設(shè)有以下程序:

main()

{ int n1,n2;

scanf("%d",&n2);

while(n2!=0)

{ n1=n2%10;

n2=n2/10;

printf("%d",n1);

}

}

程序運(yùn)行后,如果從鍵盤上輸入 1298,則輸出結(jié)果為 8921

3.若輸入字母 b,程序輸出結(jié)果為 b,B;若輸入字符*,程序?qū)⒃鯓?strong>等待狀態(tài)。

#include

main()

{char c1, c2;

c1=getchar();

while(c1

c1=getchar();

c2=c1-32;

printf("%c, %c\n",c1, c2);

}

4.用以下程序計(jì)算 1 到 100 的整數(shù)的累加和。

main()

{ int i=1, sum= 0;

for( ;i<=100;)

{sum+=i;

i++;

}

printf("sum=%d\n",sum);

}

5.以下程序的功能是:從鍵盤上輸入若干個(gè)學(xué)生的成績,統(tǒng)計(jì)并輸出最高成績和最低成績,當(dāng)輸入負(fù)數(shù)時(shí)結(jié)束。請?zhí)羁铡?/p>

main()

{ float x, amax, amin;

scanf(“%f”,&x);

amax=x;

amin=x;

while( x>=0)

{if(x>amax) amax=x;

if( x<amin) amin=x;

scanf(“%f”,&x);

}

printf("amax=%f\namin=%f\n",amax, amin);

}

6.設(shè) i、j、k 均為 int 型變量,則執(zhí)行完下面的 for 循環(huán)后,k 的值為10

for(i=0, j=10;i<=j; i++, j--) k=i+j;

7.下面程序的功能是:計(jì)算 1 到 10 之間的奇數(shù)之和及偶數(shù)之和,請?zhí)羁铡?/p>

main()

{ int a, b, c, i;

a=c=0;

for(i=0;i<=10;i+=2)

{a+=i;

b=i+1;

c+=b;

}

printf("偶數(shù)之和=%d\n", a);

printf("奇數(shù)之和=%d\n", c-11);

}

8.下面程序的功能是:輸出 100 以內(nèi)能被 3 整除且個(gè)位數(shù)為 6 的所有整數(shù),請?zhí)羁铡?/p>

main()

{ int i, j;

for(i=0; i<100; i++)

{j=i*10+6;

if( j%3!=0) continue;

printf(“%d”, j);

}

}

9.要使以下程序段輸出 10 個(gè)整數(shù),請?zhí)钊胍粋€(gè)整數(shù)。

for(i=0; i<=18or19; printf(“%d\n”, i+=2));

10.若輸入字符串:abcde

while((ch=getchar())= =‘e’) printf(“*”);

更多資料

廣東省專升本《大學(xué)語文》真題

云南專升本《高等數(shù)學(xué)》真題(2019年)

統(tǒng)招專升本《高等數(shù)學(xué)》真題回憶版(2021年)

更多課程

《市場營銷學(xué)》公開課—業(yè)務(wù)成長戰(zhàn)略

1節(jié)課

《基礎(chǔ)會計(jì)》公開課—會計(jì)要素-反映財(cái)務(wù)狀況的會計(jì)要素

1節(jié)課

《管理學(xué)》公開課——馬斯洛需要層次理論

1節(jié)課

溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,本網(wǎng)站提供的以上信息僅供參考,如有異議,請考生以權(quán)威部門公布的內(nèi)容為準(zhǔn)!

專升本備考資料免費(fèi)領(lǐng)取

去領(lǐng)取

資料下載
  • 統(tǒng)招專升本《大學(xué)語文》真題資料

    下載
  • 統(tǒng)招專升本《大學(xué)語文》真題回憶版(2021年)

    下載
  • 統(tǒng)招專升本《大學(xué)語文》備考資料一

    下載
  • 全國版專接本《大學(xué)語文》真題匯編

    下載