第5周选择结构程序设计

随堂测试

1、单选题:
‏下列符合c语法的if语句是:‎
选项:
A: if 3>5 then printf("Ok!");
B: if 3>5 printf("Ok!")
C: if (3>5) then printf("Ok!");
D: if (3>5) printf("Ok!");
答案: 【 if (3>5) printf("Ok!");

2、单选题:
‌在c语言中,叙述正确的是:‍
选项:
A: if语句可以不以 分号;结尾
B: if语句必须要有else
C: if后面小括号里可以加分号;
D: if语句不一定要有else
答案: 【 if语句不一定要有else

3、单选题:
‌下列符合c语法的if语句是:‍
选项:
A: if (3>5;) printf("Ok!");
B: if (3>5) then printf("Ok!");
C: if (3>5) printf("Ok!")
D: if (3>5) printf("Ok!");
答案: 【 if (3>5) printf("Ok!");

随堂测试5.1关系运算符和关系表达式

1、单选题:
​下列运算符中优先级最高的是:‍
选项:
A: =
B: +
C: ++
D: <
答案: 【 ++

2、单选题:
‌下列运算符中优先级最低的是:‏
选项:
A: =
B: +
C: ++
D: >
答案: 【 =

3、单选题:
‎下列运算符中结合方向与其他不同的是:‎
选项:
A: =
B: +
C: <=
D: >
答案: 【 =

随堂测试5.2

1、单选题:
‎下列运算符中优先级最高的是:​
选项:
A: =
B: +
C: *
D: &&
答案: 【 *

2、单选题:
‏下列运算符中优先级最低的是:‍
选项:
A: ==
B: +
C: ++
D: ||
答案: 【 ||

3、单选题:
‍下列运算符中结合方向与其他不同的是:‍
选项:
A: !
B: &&
C: ||
D: +
答案: 【 !

随堂测试5.4switch语句

1、单选题:
‌在c语言中,叙述正确的是:‌
选项:
A: switch语句可以没有default分支
B: switch语句必须有default分支
C: switch语句每个分支必须执行
D: case与冒号之间可以是条件表达式
答案: 【 switch语句可以没有default分支

2、判断题:
‌case与冒号之间可以是浮点类型数据‌
选项:
A: 正确
B: 错误
答案: 【 错误

3、判断题:
‏switch语句每个分支必须执行‍
选项:
A: 正确
B: 错误
答案: 【 错误

随堂测试5.5条件运算符和条件表达式

1、单选题:
‎下列运算符中优先级最低的是:‍
选项:
A: == 
B: + 
C: ++ 
D: ? :
答案: 【 ? :

2、单选题:
‍下列运算符中结合方向与其他不同的是:‏
选项:
A: ? :
B: + 
C: && 
D:  ||
答案: 【 ? :

3、判断题:
‏条件运算符符可以嵌套使用。‍
选项:
A: 正确
B: 错误
答案: 【 正确

随堂测试5.6选择结构程序举例

1、单选题:
‏以下代码输出结果是:​‏if(3>2>1)printf("ok");​‏else printf("no");​‏​
选项:
A: ok
B: no
C: 不确定
D: 代码错误,不能输出
答案: 【 no

2、单选题:
‎以下代码输出结果是:​‎int x=10,y=20,z=30;​‎if(x||(y=50)>z)printf("y=%d",y);​‎else printf("y=%d",y);​‎​
选项:
A: y=20
B: y=50
C: 不确定
D: 代码错误,不能输出
答案: 【 y=20

3、单选题:
‏以下代码输出结果是:‌‏char x='f';‌‏if('A'<x<'Z')printf("ok");‌‏else printf("no");‌‏‌
选项:
A: ok
B: no
C: 不确定
D: 代码错误,不能输出
答案: 【 ok

第6周循环结构程序设计

第1次单元测验

1、单选题:
‎下列程序的输出结果是__ 。‌‎int main()‌‎{‌‎    int t=98765,x;‌‎    while(t!=0)‌‎    {‌‎       x=t%10;‌‎       printf("%d",x);‌‎       t/=10;‌‎     }‌‎     return 0;‌‎}‌
选项:
A: 98765
B: 56789
C: 57689
D: 程序不停机
答案: 【 56789

2、单选题:
‏下列程序的输出结果是__ 。‍‏int main()‍‏{‍‏    int t=98765,x;‍‏    do‍‏    {‍‏        x=t%10;‍‏        printf("%d",x);‍‏        t/=10;‍‏     }while(t!=0);‍‏     return 0;‍‏}‍
选项:
A: 98765
B: 56789
C: 57689
D: 程序不停机
答案: 【 56789

3、单选题:
‏以下哪个循环和其他三条循环不等价(假设循环体都是一样的)?‌
选项:
A: for(i=0;i<10;i++ ) {...}
B: for(i=0;i<10;++i ) {...}
C: for(i=0;i++<10;  ) {...}
D: for(i=0;i<=9;i++ ) {...}
答案: 【 for(i=0;i++<10;  ) {...}

4、单选题:
‎下列程序段的输出结果是__‌‎int k=12;‌‎for(;k>8;k--);‌‎if(k%2==0) printf("%d",k);‌
选项:
A: 1210
B: 12
C: 8
D: 无限循环
答案: 【 8

5、单选题:
‌以下代码段的输出是__‍‌int i,b,k=0;‍‌for(i=1;i<=5;i++ )‍‌{‍‌  b=i%2;‍‌  while(b-->=0) k++;‍‌}‍‌printf("%d,%d", k,b);‍
选项:
A: 3,-1
B: 8,-1
C: 3,0
D: 8,-2
答案: 【 8,-2

6、单选题:
‍下列程序段的输出结果是__‍‍int a,b,m;‍‍for(a=5;a>=1;a--)‍‍{ ‍‍  m=0;‍‍  for(b=a;b<=5;b++)‍‍    m=m+a*b;‍‍}‍‍printf("%dn",m);‍
选项:
A: 30
B: 15
C: 20
D: 10 
答案: 【 15

7、单选题:
‎下面代码段的输出是__‌‎int c=5,k;‌‎for(k=1;k<3;k++)‌‎  switch(k)‌‎  {‌‎    default:c+=k;‌‎    case 2: c++;break;‌‎    case 4: c+=2;break;‌‎  }‌‎printf("%dn",c);‌
选项:
A: 10
B: 8
C: 6
D: 12
答案: 【 8

8、单选题:
‌关于双重循环的执行过程,以下说法正确的是__。‌
选项:
A: 外层循环的循环体执行一次,内层循环执行一遍。
B: 外层循环的循环体执行一次,内层循环执行一次。
C: 外层循环的循环体执行一遍,内层循环执行一次。
D: 外层循环的循环体执行一遍,内层循环执行一遍。
答案: 【 外层循环的循环体执行一次,内层循环执行一遍。

9、单选题:
​9、计算1!+2!+3!+4!+5!编程如下,程序中下划线处应填写__。‎​#include <stdio.h>‎​void main( )‎​{‎​int i;‎​int t=__,s=__;‎​for(i=1;i<6;i++)‎​{‎​  t=t*i;‎​  s=s+t;‎​}‎​printf("1!+2!+3!+4!+5!=%dn",s);‎​}‎
选项:
A: 0 0
B: 1 0
C: 0 1
D: 1 1
答案: 【 1 0

10、单选题:
‍下面代码段的输出是__‏‍int k,m;‏‍for(k=0;k<10;k++ )‏‍{‏‍  m=k*k;‏‍  if(m>50) break;‏‍}‏‍printf("%d,%dn",k,m);‏
选项:
A: 8,64
B: 9,81
C: 10,64
D: 10,81
答案: 【 8,64

11、单选题:
‏下面代码段的输出是__‎‏int k,m;‎‏for(k=0;k<10;k++ )‎‏{‎‏  if(m>50) continue;‎‏  m=k*k;‎‏}‎‏printf("%d,%dn",k,m);‎
选项:
A: 8,64
B: 9,81
C: 10,64
D: 10,81
答案: 【 10,64

12、单选题:
‏假设有定义:‎‏int k;‎‏下面程序段编译运行的情况是___。‎‏for (k=1; k; k++)  ‎‏    printf ("%d ", k);‎
选项:
A: 能运行, 是死循环
B: 能运行, 正常结束
C: 编译错误
D: 以上说法都不对
答案: 【 能运行, 是死循环

13、单选题:
‌for(表达式1;;表达式3)可理解为____。‎
选项:
A: for(表达式1;0;表达式3)
B: for(表达式1; 表达式1;表达式3)
C: for(表达式1; 表达式3;表达式3)
D: for(表达式1;1;表达式3)
答案: 【 for(表达式1;1;表达式3)

14、单选题:
​以下哪个for语句是错误的__​
选项:
A: for(i=0;j<10;j++);
B: for(i=0;j=0;i<10;i++);
C: for(i=0;i<10;i--);
D: for(;;);
答案: 【 for(i=0;j=0;i<10;i++);

15、单选题:
‌while(x%3) a++;中的表达式x%3等价于____‎
选项:
A: x%3!=0
B: x%3==1
C: x%3==2
D: x%3==0
答案: 【 x%3!=0

16、单选题:
‌while (!x&&!y)中的循环条件表达式等价于__‎
选项:
A: !(x!=0||y!=0)
B: x=0 && y=0
C: !(x==0 && y==0)
D: !(x==0 || y==0)
答案: 【 x=0 && y=0

17、单选题:
​在代码:while(!e)中,!e等价于__​
选项:
A: e != 1
B: e == 1
C: e!=0
D: e == 0
答案: 【 e == 0

18、单选题:
‌对于以下代码:‍‌int i;‍‌for(i=0;i<10;i++)‍‌    printf("%d",i);‍‌for循环结束后,i的值是__‍
选项:
A: i不再存在了
B: 11
C: 10
D: 9
答案: 【 10

19、单选题:
‎以下代码片段的输出是__​‎int i,j=4;​‎for(i=j; i<=2*j; i++ )​‎{​‎    switch ( i/j )​‎   {​‎      case 0:​‎      case 1: printf("*"); break;​‎      case 2: printf("#");​‎    }​‎}​
选项:
A: ****#
B: ***#
C: *#
D: ****##
答案: 【 ****#

20、单选题:
‎对于以下代码:‎‎int i=6;‎‎do{‎‎  printf("%d", i--);‎‎}while(0);‎‎正确的是__‎
选项:
A: 打印不出东西
B: 打印出5
C: 因为while(0),无法编译
D: 打印出6
答案: 【 打印出6

21、单选题:
​对于以下代码:​​int i=6;​​do{​​  printf("%d", i--);​​}while(i--);​​正确的是__​
选项:
A: 输出642
B: 输出6420
C: 输出6420-2
D: 输出6420-2-4...,程序无法停机
答案: 【 输出6420-2-4...,程序无法停机

22、单选题:
‏对于以下代码:‍‏int i=6;‍‏do{‍‏  printf("%d", i--);‍‏}while(i);‍‏最后一个输出的值是__‍
选项:
A: 0
B: 1
C: 2
D: 3
答案: 【 1

23、单选题:
‏以下代码片段的输出是__‏‏int i,j=4;‏‏for(i=j; i<=2*j; i++ )‏‏{‏‏    switch ( i%j )‏‏   {‏‏      case 0:‏‏      case 1: printf("*"); break;‏‏      case 2: printf("#");‏‏    }‏‏}‏
选项:
A: ****#
B: ***#
C: **#*
D: ****##
答案: 【 **#*

24、单选题:
​在代码:while(e)中,e等价于__‍
选项:
A: e != 1
B: e == 1
C: e!=0
D: e == 0
答案: 【 e!=0

25、单选题:
‍在代码:while(e==0)中,e等价于__‍
选项:
A: e != 1
B: e == 1
C: e!=0
D: !e 
答案: 【 !e 

26、单选题:
​在代码:while(e||0)中,e等价于__‌
选项:
A: e != 1
B: e == 1
C: e!=0
D: e == 0
答案: 【 e!=0

27、单选题:
‍在代码:while(e&&1)中,e等价于__​
选项:
A: e != 1
B: e == 1
C: e!=0
D: e == 0
答案: 【 e!=0

28、单选题:
‍在代码:while(e||1)中,e等价于__‏
选项:
A: e取任何值
B: e == 1
C: e!=0
D: e == 0
答案: 【 e取任何值

29、单选题:
‌若int k;while(k%4)中,使循环条件不成立的是__‏
选项:
A: k=0
B: k=1
C: k=2
D: k=3
答案: 【 k=0

30、单选题:
‌设有程序段int  k=5;‎‌  while(k=0)  k=k-1;则下面描述中正确的是__‎
选项:
A: while循环执行5次 
B: 循环是无限循环  
C: 循环体语句一次也不执行
D: 循环体语句执行一次
答案: 【 循环体语句一次也不执行

31、单选题:
‍设有程序段int  k=5;‍‍  do  k=k-1; while(k=0);则下面描述中正确的是___‍
选项:
A: while循环执行5次 
B: 循环是无限循环
C: 循环体语句一次也不执行
D: 循环体语句执行一次
答案: 【 循环体语句执行一次

32、单选题:
​有以下程序段‌​int  x=0,s=0;‌​while(!x!=0)  s+=++x;‌​printf("%d",s);则‌
选项:
A: 运行程序段后输出0 
B: 运行程序段后输出1
C: 程序段中的控制表达式是非法的
D: 程序段执行无限次
答案: 【 运行程序段后输出1

33、单选题:
‍下面程序段的运行结果是‌‍int a,b,c;‌‍a=1;b= 2;c=2;  ‌‍while(--b,c--,a--) ‌‍printf("%d,%d,%d",a,b,c);‌
选项:
A: 1,2,0
B: 2,1,0
C: 1,2,1
D: 0,1,1
答案: 【 0,1,1

34、单选题:
‏下面程序段的运行结果是:  ‎‏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
答案: 【 8,20

35、单选题:
‍下面程序段的运行结果是‌‍int n=0;  ‌‍while(n++<=2);printf("%d",n);‌
选项:
A: 2
B: 3
C: 4
D: 有语法错  
答案: 【 4

36、单选题:
‎下面程序的功能是将从键盘输入的一对数,由小到大排序输出。当输入一对相等数时结束循‎‎环,请选择填空:‎‎int  a,b,t;  ‎‎scanf("%d%d",&a,&b);‎‎while( ___  )  ‎‎{‎‎   if(a>b)  ‎‎ {t=a;a=b;b=t;}    ‎‎   printf("%d,%d",a,b);  ‎‎   scanf("%d%d",&a,&b);‎‎}‎
选项:
A: !a=b
B: a!=b
C: a==b
D: a=b
答案: 【 a!=b

37、单选题:
‌下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,‎‌并输出m、n中的较大者,请选择填空: ‎‌int  m=0,n=0; ‎‌char c;  ‎‌while((__)!='n')       ‎‌{ ‎‌   if(c>='A'&& c<='Z') m++ ;        ‎‌   if(c>='a'&& c<='z') n++; ‎‌}             ‎‌printf("%dn",m) ‎
选项:
A: scanf("%d",c)
B: getchar()
C: c=getchar()
D: scanf("%c",c)
答案: 【 c=getchar()

38、单选题:
‍下面程序的功能是将小写字母变成对应大写字母后的第二个字母。其中y变成A,z 变成B.‏‍请选择填空‏‍char c;‏‍while((c=getchar())!='n')‏‍{‏‍   if(c>= 'a'&&c<='z')    c-= 30;‏‍   if(c>'z'&&c<='z'+ 2)   ___ ; ‏‍   printf("%c",c);       ‏‍} ‏
选项:
A: c='B'
B: c='A'
C: c-=26
D: c=c+26
答案: 【 c-=26

39、单选题:
​以下描述中正确的是__​
选项:
A: 由于do一while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B: do一while循环由do开始,用while结束,在while(表达式)后面不能写分号 
C: 在do一while循环体中,一定要有能使while后表达式值变为零("假")的操作
D: do一while循环中,根据情况可以省略while
答案: 【 在do一while循环体中,一定要有能使while后表达式值变为零("假")的操作

40、单选题:
‎若有如下语句‌‎int  x=3;  ‌‎do ‌‎{ printf("%dn",x -=2);} ‌‎while(!(--x));‌‎则上面程序段__‌
选项:
A: 输出的是1
B: 输出的是1和-2
C: 输出的是3和0
D: 是死循环 
答案: 【 输出的是1和-2

41、单选题:
​下面程序的功能是计算正整数2345的各位数字平方和,请选择填空。‌​#include ‌​main()‌​{‌​   int  n,sum=0;   ‌​   n=2345;  ‌​  do‌​   { ‌​     sum=sum+(n%10)*(n%10);     ‌​     n=__; ‌​   }while(n);    ‌​printf("sum=%d",sum);}‌
选项:
A: n/1000
B: n/100
C: n/10
D: n%10
答案: 【 n/10

42、单选题:
​下面程序是从键盘输入学号,然后输出学号中百位数字是3的学号,输入0时结束循环。请选择填空。  ‍​main()    ‍​{‍​  1ong  int  num;‍​  scanf("%ld",&num);‍​  do‍​  { ‍​       if(__)   printf("%ld",num);       ‍​       scanf("%ld",&num);  ‍​  }while(!num==0);‍​}‍
选项:
A: num%100/10==3
B: num/100%10==3
C: num%10/10==3
D: num/10%10==3
答案: 【 num/100%10==3

43、单选题:
‍下面程序的运行结果是__​‍main()​‍{​‍   int  y=10;​‍   do{y--;}while(--y);​‍   printf("%dn",y--);  ​‍​‍}​
选项:
A: -1
B: 1
C: 8
D: 0
答案: 【 0

44、单选题:
‎下面有关for循环的正确描述是__​
选项:
A: for循环只能用于循环次数已经确定的情况
B: for循环是先执行循环体语句,后判断表达式
C: 在for循环中,不能用break语句跳出循环体
D: for循环的循环体语句中, 可以包含多条语句,但必须用花括号括起来
答案: 【 for循环的循环体语句中, 可以包含多条语句,但必须用花括号括起来

45、单选题:
‌若i为整型变量,则以下循环执行次数是__  ​‌for  (i=2;i==0;)  printf("%d",i-- );​
选项:
A: 无限次
B: 0次
C: 1次 
D: 2次
答案: 【 0次

46、单选题:
‌以下不是无限循环的语句为: ‏
选项:
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;
答案: 【

剩余75%内容付费后可查看

发表评论

电子邮件地址不会被公开。 必填项已用*标注