=y&&chy)z=x;x=y;y=z;A) x=10,y=20,z=30B) x=20,y=30,z=30C)" />
2022年湖北專升本C語言選擇結(jié)構(gòu)程序設(shè)計模擬題
一、單項選擇題
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;則表達式(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.若希望當 A 的值為奇數(shù)時,表達式的值為“真”,A 的值為偶數(shù)時,表達式的值為“假”,則以下不能滿足要求的表達式是( 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)。
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 9.請閱讀以下程序: main() { int a=5,b=0,c=0; if(a=b+c) printf(“***\n”); else printf(“$$$\n”); } 以上程序( D)。 A) 有語法錯不能通過編譯 B) 可以通過編譯但不能通過連接 C) 輸出*** D) 輸出$$$ 10.當 a=1,b=3,c=5,d=4 時,執(zhí)行完下面一段程序后 x 的值是(B)。 if(a if(c else if(a if(b 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 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 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.若有條件表達式 (exp)?a++:b--,則以下表達式中能完全等價于表達式(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.當 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 同時為正或同時為負的表達式是(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)。 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 則該程序運行后,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.當輸入 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 max=b; if(max 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.當執(zhí)行以下語句后的輸出結(jié)果是(D)。 int x=3, y=0; printf(“%d,%d”, -1>x> -10&&1 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,且有下面的表達式: ch=(ch>=‘A’&&ch<=‘Z’)?(ch+32):ch 上面表達式的值是( 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 語言表達式( 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)。 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 為整型變量,不能正確表達數(shù)學關(guān)系 10 A) 10 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,則表達式 a A) 4 B) 3 C) 2 D) 1 48.當 a=1, b=3, c=5, d=4 時,執(zhí)行下面一段程序后,x 的值為( B)。 if(a if(c else if(a if(b 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 C) 0 D) 0>a>b 50.設(shè) int x=1, y=1;表達式(!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 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 類型,請以最簡單的形式寫出與邏輯表達式!x 等價的 C 語言關(guān)系表達式x==0。 6.表示“整數(shù) x 的絕對值大于 5”時值為“真”的 C 語言表達式是 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 13.若已知 a=10, b=20, 則表達式!a1。 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); 以上就是關(guān)于2022年湖北專升本C語言選擇結(jié)構(gòu)程序設(shè)計模擬題的全部內(nèi)容了,如果你還有專升本相關(guān)的疑惑(如專升本報名、考試動態(tài)、院校招生簡章、統(tǒng)考動態(tài)、湖南專升本院校、歷年真題、考試大綱、專升本等相關(guān)信息),可以在文章下方留下你的聯(lián)系方式,老師會第一時間聯(lián)系到你,為你答疑解惑哦! 部分內(nèi)容來源于網(wǎng)絡(luò)轉(zhuǎn)載、學生投稿,如有侵權(quán)或?qū)Ρ菊居腥魏我庖?、建議或者投訴,請聯(lián)系郵箱(1296178999@qq.com)反饋。
未經(jīng)本站授權(quán),不得轉(zhuǎn)載、摘編、復制或者建立鏡像, 如有違反,本站將追究法律責任!