2022年湖北专升本C语言选择结构程序设计模拟题

浏览次数:次 发布时间:2023-04-07

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.条件“20x>20&&x<30||x<=-100。

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)反馈。 未经本站授权,不得转载、摘编、复制或者建立镜像, 如有违反,本站将追究法律责任!


本文标签: 3+2专升本全日制专升本

上一篇:2022年湖北专升本C语言顺序程序设计模拟题                  下一篇:2022年湖北专升本C语言循环控制模拟题