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

?2022年湖北專升本C語言選擇結(jié)構(gòu)程序設(shè)計模擬題

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

摘要:本文是2022年湖北專升本C語言選擇結(jié)構(gòu)程序設(shè)計模擬題,共有52道選擇題和15道填空題,供大家參考。具體詳細(xì)內(nèi)容見下文。

一、單項選擇題

1.邏輯運算符兩側(cè)運算對象的數(shù)據(jù)類型是( D)。

A) 只能是 0 或 1

B) 只能是 0 或非 0 正數(shù)

C) 只能是整型或字符型數(shù)據(jù)

D) 可以是任何類型的數(shù)據(jù)

2.已知 x=43, ch='A', y=0;則表達(dá)式(x>=y&&ch<'B'&&!y)的值是( C)。

A) 0

B) 語法錯

C) 1

D) “假”

3.已知 int x=10, y=20, z=30; 以下語句執(zhí)行后 x, y, z 的值是( B )。

if(x>y)

z=x;x=y;y=z;

A) x=10,y=20,z=30

B) x=20,y=30,z=30

C) x=20,y=30,z=10

D) x=20,y=30,z=20

4.執(zhí)行下列語句后 a 的值為(),b 的值為( C )。

int a, b, c;

a=b=c=1;

++a|| ++b && ++c;

A) 錯誤 1

B) 2 2

C) 2 1

D) 1 1

5.若希望當(dāng) A 的值為奇數(shù)時,表達(dá)式的值為“真”,A 的值為偶數(shù)時,表達(dá)式的值為“假”,則以下不能滿足要求的表達(dá)式是( C )。

A) A%2==1

B) !(A%2==0)

C) !(A%2)

D) A%2

6.設(shè)有:int a=1,b=2,c=3,d=4,m=2,n=2; 執(zhí)行(m=a>b)&&(n=c>d)后 n 的值是( B )。

A) 0

B) 2

C) 3

D) 4

7.判斷 char 型變量 cl 是否為小寫字母的正確表達(dá)式是( D)。

A)‘a(chǎn)’<=cl<=‘z’

B) (cl>=a)&&(cl<=z)

C) (‘a(chǎn)’>=cl)||(‘z’<=cl) 

D) (cl>=‘a(chǎn)’)&&(cl<=‘z’)

8.以下不正確的 if 語句形式是( C)。

A) if(x>y&&x!=y);

B) if(x==y) x+=y;

C) if(x!=y) scanf(“%d”,&x) else scanf(“%d”,&y)

D) if(x<y) p="" {x++;y++;}

9.請閱讀以下程序:

main()

{

int a=5,b=0,c=0;

if(a=b+c) printf(“***\n”);

else

printf(“$$$\n”);

}

以上程序( D)。

A) 有語法錯不能通過編譯

B) 可以通過編譯但不能通過連接

C) 輸出***

D) 輸出$$$

10.當(dāng) a=1,b=3,c=5,d=4 時,執(zhí)行完下面一段程序后 x 的值是(B)。

if(a<b)

if(c<d) x=1

else

if(a<c)

if(b<d) x=2

else x=3;

else x=6;

else x=7;

A) 1

B) 2

C) 3

D) 6

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

main()

{int a=100,x=10,y=20,ok1=5,ok2=0;

if(x<y)< p="">

if(y!=10)

if(!ok1)

a=1;

else

if(ok2) a=10;

a=-1;

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

}

A) 1

B) 10

C) -1

D) 值不確定

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

main()

{int x=2,y=-1,z=2;

if(x<y)< p="">

if(y<0) z=0;

else

z+=1;

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

}

A) 3

B) 2

C) 1

D) 0

13.為了避免在嵌套的條件語句 if - else 中產(chǎn)生二義性,C 語言規(guī)定:else 子句總是與( B )配對。

A) 縮排位置相同的 if

B) 其之前最近的 if

C) 其之后最近的 if

D) 同一行上的

14.若有條件表達(dá)式 (exp)?a++:b--,則以下表達(dá)式中能完全等價于表達(dá)式(exp)的是( B )。

A) (exp==0)

B) (exp!=0)

C) (exp==1)

D) (exp!=1)

15.若運行時給變量 x 輸入 12,則以下程序的運行結(jié)果是( A)。

main()

{int x,y;

scanf(“%d”,&x);

y=x>12?x+10:x-12;

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

}

A) 0

B) 22

C) 12

D) 10

16.語句:printf("%d",(a=2)&&(b= -2));的輸出結(jié)果是( D)。

A) 無輸出

B) 結(jié)果不確定

C) -1

D) 1

17.當(dāng) c 的值不為 0 時,在下列選項中能正確將 c 的值賦給變量 a、b 的是( C)。

A) c=b=a;

B) (a=c)||(b=c);

C) (a=c)&&(b=c);

D) a=c=b;

18.能正確表示 a 和 b 同時為正或同時為負(fù)的表達(dá)式是(D )。

A) (a>=0||b>=0)&&(a<0||b<0)

B) (a>=0&&b>=0)&&(a<0&&b<0)

C) (a+b>0)&&(a+b<=0)

D) a*b>0

19.能正確表示邏輯關(guān)系:“a≥10 或 a≤0”的 C 語言表達(dá)式是( D)。

A) a>=10 or a<=0

B) a>=0|a<=10

C) a>=10&&a<=0

D) a>=10||a<=0

20.有如下程序段

int a=14,b=15,x;

char c=‘A’;

x=(a&&b)&&(c<‘B’);

執(zhí)行該程序段后,x 的值為( D)。

A) ture

B) false

C) 0

D) 1

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

A)-1 1

B)0 1

C)1 0

D)0 0

main( )

{ int a=-1,b=1,k;

if((++a<0)&&!(b--<=0))

printf("%d %d\n",a,b);

else

printf("%d %d\n",b,a);

}

22.與 y=(x>0?1:x<0?-1:0);的功能相同的 if 語句是(A)。

A) if(x>0) y=1;

else if(x<0) y=-1;

else y=0;

else y=0;

B) if(x)

if(x>0)y=1;

else if(x<0)y=-1;

C) y=-1

if(x) if(x>=0)

if(x>0)y=1; if(x>0)y=1;

else if(x==0)y=0; else y=-1;

else y=-1;

D) y=0;

23.閱讀以下程序:

main()

{int x;

scanf("%d", &x);

if(x--<5) printf("%d", x);

else printf("%d", x++);

}

程序運行后,如果從鍵盤上輸人 5,則輸出結(jié)果是( B)。

A)3

B) 4

C) 5

D) 6

24.假定 w、x、y、z、m 均為 int 型變量,有如下程序段:

w=1; x=2; y=3; z=4;

m=(w<x)?w:x;m=(m<y)?m:y;m=(m<z)?m:z;

則該程序運行后,m 的值是( D )。

A) 4

B) 3

C) 2

D) 1

25.有如下程序

main( )

{ float x=2.0,y;

if(x<0.0) y=0.0;

else if(x<10.0) y=1.0/x;

else y=1.0;

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

}

該程序的輸出結(jié)果是( C )。

A) 0.000000

B) 0.250000

C) 0.500000

D) 1.000000

26.有如下程序

main( )

{ int a=2,b=-1,c=2;

if(a)if(b<0) c=0;

else c++;

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

}

該程序的輸出結(jié)果是( A )。

A) 0

B) 1

C) 2

D) 3

27.若有定義: float w; int a, b; 則合法的 switch 語句是( C)。

A) switch(w)

{case 1.0: printf("*\n");

case 2.0: printf("**\n");

} 無 default 語句

B switch(x)

{case 1,2: printf("*\n");

case 3: printf("**\n");

}

C) switch(b)

{case 1: printf("*\n");

default: printf("\n");

case 1+2: printf("**\n");

}

D) switch(a+b);

{case 1: printf("*\n");

case 2: printf("**\n");

default: printf("\n");

}

28.若 a、b、c1、c2、x、y 均是整型變量,正確的 switch 語句是( D )。

A) swich(a+b);

{case 1:y=a+b; break;

case 0:y=a-b; break;

}

B) switch(a*a+b*b)

{case 3:

case 1:y=a+b;break;

case 3:y=b-a;break; }

C) switch a

{case c1 :y=a-b;break;

case c2: x=a*d; break;

default:x=a+b; 

}

D) switch(a-b)

{default:y=a*b;break;

case 3:case 4:x=a+b;break;

case 10:case 11:y=a-b;break;

}

29.有如下程序

main( )

{int x=1,a=0,b=0;

switch(x)

{

case 0: b++;

case 1: a++;

case 2: a++;b++;

}

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

該程序的輸出結(jié)果是( A )。

A) a=2,b=1

B) a=1,b=1

C) a=1,b=0 

D) a=2,b=2

30.當(dāng)輸入 19、2、21 時,以下程序的輸出結(jié)果是( A)。

main( )

{int a,b,c,max;

printf(“please input three numbers a,b,c:\n”);

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

max=a;

if(max<b)

max=b;

if(max<c)

max=c;

printf(“max is:%d\n”,max); }

A) max is:21 B) max is:19 C) max is:42 D) max is:40

31.若輸入 B,以下程序的輸出結(jié)果是(C)。

main( )

{char grade;

scanf(“%c”,&grade);

switch(grade)

{

case‘A’:printf(“>=85.”);

case‘B’:

case‘C’:printf(“>=60.”);

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

default: printf(“error.”);

}}

A) >=85.

B) >=60.

C) >=60.<60.error.

D) error.

32.當(dāng)執(zhí)行以下語句后的輸出結(jié)果是(D)。

int x=3, y=0;

printf(“%d,%d”, -1>x> -10&&1<x

A) 0 3

B) 3 0

C) 3 3

D) 1 1

33.執(zhí)行 x=5>1+2&&2||2*4<4-!0 后,x 的值為( C)。

A) -1

B) 0

C) 1

D) 5

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

main( )

{int a,b,c,x,y,z;

a=10;b=2;

c=!(a%b);

x=!(a/b);

y=(a=0);

z=(a=0);

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

}

A) c=0,x=1,y=1,z=0

B) c=5,x=0,y=1,z=0

C) c=1,x=0,y=0,z=1

D) c=10,x=2,y=0,z=1

35.下列運算符中,不屬于關(guān)系運算符的是( D)。

A) <

B) >=

C) ==

D) !

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

main( )

{int a,b,d=241;

a=d/100%9;

b=(-1)&&(-1);

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

}

A) 6,1

B) 2,1

C) 6,0

D) 2,0

37.設(shè) ch 是 char 型變量,其值為 A,且有下面的表達(dá)式:

ch=(ch>=‘A’&&ch<=‘Z’)?(ch+32):ch

上面表達(dá)式的值是( B)。

A) A

B) a

C) Z

D) z

38.若 k 是 int 型變量,且有下面的程序片段:

k= -3;

if(k<=0) printf(“####”)

else printf(“&&&&”)

上面程序片段的輸出結(jié)果是( D )。

A) #### B) &&&&

C) ####&&&& D) 有語法錯誤,無輸出結(jié)果

39.請讀程序:

main()

{

float x, y;

scanf(“%f”, &x);

if(x<0.0) y=0.0;

else if((x<5.0)&&(x!=2.0))

y=1.0/(x+2.0);

else if(x<10.0) y=1.0/x;

else y=10.0;

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

}

若運行時從鍵盤上輸入 2.0(表示回車),則上面程序的輸出結(jié)果是(C )。

A) 0.000000 B) 0.250000 C) 0.500000 D) 1.000000

40.請讀程序:

main()

{ int x=1, y=0, a=0, b=0;

switch(x)

{

case 1:

switch(y)

{case 0:a++;break;

case 1:b++;break;

}

case 2:

a++; b++; break;

}

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

}

上面程序的輸出結(jié)果是( A)。

A) a=2,b=1

B) a=1,b=1

C) a=1,b=0 D) a=2,b=2

41.為表示關(guān)系 x≥y≥z,應(yīng)使用 C 語言表達(dá)式( A)。

A) (x>=y)&&(y>=z)

B) (x>=y)AND(y>=z)

C) (x>=y>=z)

D) (x>=y)||(y>=z)

42.若要求在 if 后一對圓括號中表示 a 不等于 0 的關(guān)系,則能正確表示這一關(guān)系的表達(dá)式為( D)。

A) a<>0

B) !a

C) a=0

D) a

43.兩次運行下面的程序,如果從鍵盤上分別輸入 6 和 4,則輸出結(jié)果是( A )。

main()

{

int x;

scanf(“%d”, &x);

if(x++>5) printf(“%d”, x);

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

}

A) 7 和 5

B) 6 和 3

C) 7 和 4

D) 6 和 4

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

main()

{

int a= -1, b=4, k;

k=(++a<0)&&!(b--<=0);

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

}

A) 104

B) 103

C) 003

D) 004

45.設(shè) a 為整型變量,不能正確表達(dá)數(shù)學(xué)關(guān)系 10<a<15的C語言表達(dá)式是(A)。

A) 10<a<15

B) a==11||a==12||a==13||a==14

C) a>10&&a<15

D) !(a

46.假定所有變量均已正確說明,下列程序段運行后 x 的值是( B)。

a=b=c=0;x=35;

if(!a) x--;

else if(b) ; if(c) x=3;

else x=4;

A) 34

B) 4

C) 35

D) 3

47.設(shè) a=1, b=2, c=3, d=4,則表達(dá)式 a

A) 4

B) 3

C) 2

D) 1

48.當(dāng) a=1, b=3, c=5, d=4 時,執(zhí)行下面一段程序后,x 的值為( B)。

if(a<b)

if(c<b) x=1

else

if(a<c)

if(b<d) x=2

else x=3;

else x=6;

else x=7;

A) 1

B) 2

C) 3

D) 6

49.在執(zhí)行以下程序時,為了使輸出結(jié)果為 t=4,則給 a 和 b 輸入的值應(yīng)滿足的條件是( C)。

main()

{

int s, t, a, b;

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

s=1;t=1;

if(a>0) s=s+1;

if(a>b) t=s+t;

else if(a==b) t=5;

else t=2*s;

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

}

A) a>b

B) a<b<0

C) 0<a<b

D) 0>a>b

50.設(shè) int x=1, y=1;表達(dá)式(!x||y--)的值是( B)。

A) 0

B) 1

C) 2

D) -1

51.若變量 a、i 已正確定義,且 i 已正確賦值,合法的語句是( B )。

A) a==1 B) ++i;

C) a=a++=5;

D) a=int(i);

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

main()

{

int a=2, b=-1, c=2;

if(a<b)

if(b<0) c=0;

else c++;

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

}

A) 0

B) 1

C) 2

D) 3

二、填空題

1.若從鍵盤輸入 58,則以下程序輸出的結(jié)果是585858。

main()

{ int a;

scanf(“%d”,&a);

if(a>50) printf(“%d”,a);

if(a>40) printf(“%d”,a);

if(a>30) printf(“%d”,a);

}

2.下面程序的運行結(jié)果是-1。

main()

{

int a=2, b=3, c;

c=a;

if(a>b)

c=1;

else if(a==b) c=0;

else c=-1;

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

}

3.以下程序?qū)崿F(xiàn):輸入三個整數(shù),按從大到小的順序進行輸出。請?zhí)羁铡?/p>

main()

{

int x, y, z, c;

scanf(“%d %d %d”, &x, &y, &z);

if( y>x ){ c=x; x=y; y=c;}

if( z>x ){ c=x; x=z; z=c;}

if( z>y ){ c=y; y=z; z=c;}

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

}

4.如果運行時輸入字符 Q,則下面程序的運行結(jié)果是 Q。

main()

{

char ch;

scanf(“%c”, &ch);

ch=(ch>=‘A’&& ch<=‘Z’)? (ch+32):ch;

ch=(ch>=‘a(chǎn)’&& ch<=‘z’)? (ch-32):ch;

printf(“%c”, ch);

}

5.若 x 為 int 類型,請以最簡單的形式寫出與邏輯表達(dá)式!x 等價的 C 語言關(guān)系表達(dá)式x==0。

6.表示“整數(shù) x 的絕對值大于 5”時值為“真”的 C 語言表達(dá)式是 x>5||x<-5。

7.下列程序段的輸出結(jié)果是 passwarn。

int n='c';

switch(n++)

{ default: printf("error");break;

case 'a':case 'A':case 'b':case 'B':printf("good");break;

case 'c':case 'C':printf("pass");

case 'd':case 'D':printf("warn");

}

8.以下程序?qū)蓚€數(shù)從小到大輸出。

main()

{

float a, b, t;

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

if(a>b)

{ t=a;

a=b;

b=t;

}

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

}

9.若輸入 8642,以下程序的輸出結(jié)果為 place=4,每位數(shù)字為:8,6,4,2。

main()

{

long int num;

int gw, sw, bw, qw, ww, place;

printf(“請輸入一個 0~99999 之間的整數(shù):”);

scanf(“%ld”, &num);

if(num>9999) place=5;

else if(num>999) place=4;

else if(num>99) place=3;

else if(num>9) place=2;

else place=1;

printf(“place=%d,”, place);

printf(“每位數(shù)字為: ”);

ww=num/10000;

qw=(num-ww*10000)/1000;

bw=(num-ww*10000-qw*1000)/100;

sw=(num-ww*10000-qw*1000-bw*100)/10;

gw=num-ww*10000-qw*1000-bw*100-sw*10;

switch(place)

{case 5: printf(“%d, %d, %d, %d, %d”, ww, qw, bw, sw, gw); break;

case 4: printf(“%d, %d, %d, %d”, qw, bw, sw, gw); break;

case 3: printf(“%d, %d, %d”, bw, sw, gw); break;

case 2: printf(“%d, %d”, sw, gw); break;

case 1: printf(“%d”, gw); break;

} }

10.若輸入1988,程序運行的結(jié)果為1988 年是閏年;若輸入1989,則結(jié)果為1989 年不是閏年

main()

{int year, leap;

scanf(“%d”, &year);

if(year%4) leap=0;

else if(year%100) leap=1;

else if(year%400) leap=0;

else leap=1;

if(leap) printf(“%d 年是閏年。\n”, year);

else printf(“%d 年不是閏年。\n”, year);

}

11.用以下程序把大寫字母 A~Z 轉(zhuǎn)換成對應(yīng)的小寫字母 a ~ z,其他字符不轉(zhuǎn)換。

main()

{char ch;

scanf ( "%c",&ch);

ch=( ch>='A'&&ch<='Z')?ch+32:ch;

printf(“char=%c\n”,ch);

}

12.條件“20<x<30 或x<-100"的C語言表達(dá)式是x>20&&x<30||x<=-100。

13.若已知 a=10, b=20, 則表達(dá)式!a<b 的值為1

14 . 若 已 定 義 int a=25, b=14, c=19; 以 下 三 目 運 算 符 ( ?: ) 所 構(gòu) 成 的 語 句 的 執(zhí) 行 結(jié) 果是###a=26,b=13,c=19。

a++<=25&&b--<=2&&c++?printf(“***a=%d, b=%d, c=%d\n”, a, b, c): printf(“###a=%d, b=%d,

c=%d\n”, a, b, c);

15.以下兩條 if 語句可合并成一條 if 語句為

if(a>b){y=2;printf("****y=%d\n",y);}

else

{x=1;printf("####x=%d\n",x);} 。

if(a<=b) x=1;

else y=2;

if(a>b) printf(“**** y=%d\n”, y);

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

更多資料

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

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

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

更多課程

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

1節(jié)課

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

1節(jié)課

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

1節(jié)課

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

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

去領(lǐng)取

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

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

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

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

    下載