2022年湖北专升本C语言选择结构程序设计模拟题
一、单项选择题
1.逻辑运算符两侧运算对象的数据类型是( D)。
A) 只能是 0 或 1
B) 只能是 0 或非 0 正数
C) 只能是整型或字符型数据
D) 可以是任何类型的数据
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; 以下语句执行后 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.执行下列语句后 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 的值为奇数时,表达式的值为“真”,A 的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是( C )。
A) A%2==1
B) !(A%2==0)
C) !(A%2)
D) A%2
6.设有:int a=1,b=2,c=3,d=4,m=2,n=2; 执行(m=a>b)&&(n=c>d)后 n 的值是( B )。
A) 0
B) 2
C) 3
D) 4
7.判断 char 型变量 cl 是否为小写字母的正确表达式是( D)。
A)‘a’<=cl<=‘z’
B) (cl>=a)&&(cl<=z)
C) (‘a’>=cl)||(‘z’<=cl)
D) (cl>=‘a’)&&(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 时,执行完下面一段程序后 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.以下程序的输出结果是(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.以下程序的输出结果是( 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 中产生二义性,C 语言规定: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,则以下程序的运行结果是( 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));的输出结果是( D)。 A) 无输出 B) 结果不确定 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.能正确表示逻辑关系:“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’); 执行该程序段后,x 的值为( D)。 A) ture B) false C) 0 D) 1 21.以下程序的输出结果是( 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,则输出结果是( 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); } 该程序的输出结果是( 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); } 该程序的输出结果是( 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); } 该程序的输出结果是( 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 时,以下程序的输出结果是( 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,以下程序的输出结果是(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)。 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.执行 x=5>1+2&&2||2*4<4-!0 后,x 的值为( C)。 A) -1 B) 0 C) 1 D) 5 34.以下程序的输出结果为( 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.下列运算符中,不属于关系运算符的是( D)。 A) < B) >= C) == D) ! 36.以下程序的输出结果是( 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.设 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(“&&&&”) 上面程序片段的输出结果是( D )。 A) #### B) &&&& C) ####&&&& D) 有语法错误,无输出结果 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(表示回车),则上面程序的输出结果是(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); } 上面程序的输出结果是( A)。 A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=2 41.为表示关系 x≥y≥z,应使用 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 的关系,则能正确表示这一关系的表达式为( D)。 A) a<>0 B) !a C) a=0 D) a 43.两次运行下面的程序,如果从键盘上分别输入 6 和 4,则输出结果是( 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.以下程序的输出结果是( 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.设 a 为整型变量,不能正确表达数学关系 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.设 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 时,执行下面一段程序后,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.在执行以下程序时,为了使输出结果为 t=4,则给 a 和 b 输入的值应满足的条件是( 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.设 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.以下程序的输出结果为( 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,则以下程序输出的结果是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.下面程序的运行结果是-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.以下程序实现:输入三个整数,按从大到小的顺序进行输出。请填空。 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,则下面程序的运行结果是 Q。 main() { char ch; scanf(“%c”, &ch); ch=(ch>=‘A’&& ch<=‘Z’)? (ch+32):ch; ch=(ch>=‘a’&& ch<=‘z’)? (ch-32):ch; printf(“%c”, ch); } 5.若 x 为 int 类型,请以最简单的形式写出与逻辑表达式!x 等价的 C 语言关系表达式x==0。 6.表示“整数 x 的绝对值大于 5”时值为“真”的 C 语言表达式是 x>5||x<-5。 7.下列程序段的输出结果是 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.以下程序将两个数从小到大输出。 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,以下程序的输出结果为 place=4,每位数字为:8,6,4,2。 main() { long int num; int gw, sw, bw, qw, ww, place; printf(“请输入一个 0~99999 之间的整数:”); 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(“每位数字为: ”); 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,程序运行的结果为1988 年是闰年;若输入1989,则结果为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 转换成对应的小写字母 a ~ z,其他字符不转换。 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; 以 下 三 目 运 算 符 ( ?: ) 所 构 成 的 语 句 的 执 行 结 果是###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); 以上就是关于2022年湖北专升本C语言选择结构程序设计模拟题的全部内容了,如果你还有专升本相关的疑惑(如专升本报名、考试动态、院校招生简章、统考动态、湖南专升本院校、历年真题、考试大纲、专升本等相关信息),可以在文章下方留下你的联系方式,老师会第一时间联系到你,为你答疑解惑哦! 部分内容来源于网络转载、学生投稿,如有侵权或对本站有任何意见、建议或者投诉,请联系邮箱(1296178999@qq.com)反馈。
未经本站授权,不得转载、摘编、复制或者建立镜像, 如有违反,本站将追究法律责任!