项目一 课程准备

项目一 课程准备 单元测验

1、单选题:
‌为了实现( ),所有的对数组的读写操作都应当被检查以确保对数组的操作在正确的范围内。   A编写正确的代码  B非执行的缓冲区技术  C程序指针完整性检查  D数组边界检查‎
选项:
A: 编写正确的代码
B: 非执行的缓冲区技术
C: 程序指针完整性检查‍
D: 数组边界检查‍
答案: 【 数组边界检查‍

2、单选题:
printf()函数的格式说明符中,要输出单个字符应使用下面那个说明符‌
选项:
A: %d
B: %s
C: %f
D: %c
答案: 【 %c

3、单选题:
一个完整的C源程序是( )​
选项:
A: 要由一个主函数(或)一个以上的非主函数构成
B: 由一个且仅由一个主函数和零个以上(含零)的非主函数构成
C: 要由一个主函数和一个以上的非主函数构成
D: 由一个且只有一个主函数或多个非主函数构成
答案: 【 由一个且仅由一个主函数和零个以上(含零)的非主函数构成

4、单选题:
下列说法中正确的是( )‍
选项:
A: main函数必须出现在所有函数之前
B: main函数可以在任何地方出现
C: main函数必须出现在所有函数之后
D: main函数必须出现在固定位置
答案: 【 main函数可以在任何地方出现

5、单选题:
C语言的基本单位是( )‌
选项:
A: 程序行
B: 语句
C: 函数
D: 字符
答案: 【 函数

6、单选题:
​‎一个C语言程序中有()个主函数‎
选项:
A: 0
B: 有且只有一个
C: 2
D: 不确定
答案: 【 有且只有一个

7、填空题:
C语言程序总是从_____________函数开始,而不论其在程序中的位置。‎
答案: 【 main

8、填空题:
C语言在VC++6.0环境中的的扩展名是_____________。‏
答案: 【 .c##%_YZPRLFH_%##.C

项目七 汽车数据间接显示(指针)

任务7.1 统计某车企的汽车数量(指针和变量)随堂测验

1、单选题:
下程序的运行结果是()。 ​void ast (int x,int y,int *cp,int *dp) 
{ *cp=x+y; *dp=x-y; } 
main() 
{ int a=4,b=3,c,d; 
  ast(a,b,&c,&d); 
  printf("%d,%dn",c,d); 
}‍​
选项:
A: 7,1
B: 1,7
C: 7,-1
D: c、d未赋值,编译出错
答案: 【 7,1

2、单选题:
有以下语句: ‍    int a[5]={0,1,2,3,4,5},i; ‍    int *p=a; ‍设0≤i<5,对a数组元素不正确的引用是(   )。 ‍​‍
选项:
A: *(&a[i])
B: a[p-a] 
C: *(*(a+i))
D: p[i]
答案: 【 *(*(a+i))

3、单选题:
若有定义int *p1,*p2; 则错误的表达式是(  )。 ‏​‏
选项:
A: p1+p2 
B: p1-p2 
C: p1<p2 
D:  p1=p2
答案: 【 p1+p2 

4、单选题:
‌以下程序段运行后,表达式*(p+4)的值为(   )。 ​‌​char a[]="china"; ​ char *p; ​ p=a; ​‌​
选项:
A:  'n'
B: 'a'
C: 存放'n'的地址
D: 存放'a'的地址
答案: 【 'a'

5、单选题:
以下程序段运行后,表达式*(p++)的值为( )。 ‍  char a[5]="work"; ‍  char *p=a; ‍‎‍
选项:
A: 'w' 
B: 存放'w'的地址
C: 'o'
D: 存放'o'的地址
答案: 【 'w' 

6、单选题:
若有定义: ‍int *p,k=4; p=&k; ‍以下均代表地址的是(  )。 ‍‌‍
选项:
A: k, p
B: &k, &p
C:  &k, p 
D: k, *p
答案: 【  &k, p 

7、单选题:
下面语句错误的是(   )。 ‍‎‍
选项:
A:  int *p; *p=20;
B: char *s="abcdef"; printf("%sn",s); 
C: char *str="abcdef"; str++; 
D: char *str;str="abcdef";
答案: 【  int *p; *p=20;

8、填空题:
‍指针变量是把内存中另一个数据的(      )  作为其值的变量。​
答案: 【 地址

9、填空题:
‎ 能够直接赋值给指针变量的整数是 (  )    。‏
答案: 【 0

10、填空题:
​如果程序中已有定义:int k; 定义一个指向变量k的指针变量p的语句是(  )    。 ‌
答案: 【 int* p = &k;

任务7.2汽车一年销售额显示(指针和数组)动手练习

1、单选题:
‎若有以下定义和语句,且0≤i<10则对数组元素的错误引用是        。‏‎         int a[10]={1,2,3,4,5,6,7,8,9,10},*p,i;‏‎         p=a;‏‎‏
选项:
A: *(a+i)  
B: a[p-a]
C: p+i             
D: *(&a[i])
答案: 【 p+i             

2、单选题:
​对如下定义,以下说法中正确的是        。‎​         char *a[2]={ "abcd","ABCD"};‎​‎
选项:
A: 数组a的元素值分别为"abcd"和"ABCD"
B: a是指针变量,它指向含有两个数组元素的字符型数组
C: 数组a的两个元素分别存放的是含有4个字符的一维数组的首地址
D: 数组a的两个元素中各自存放了字符’a’、’A’的地址 
答案: 【 数组a的两个元素中各自存放了字符’a’、’A’的地址 

3、单选题:
若有以下说明:​                   int
a[10]={1,2,3,4,5,6,7,8,9,10},*p=a ;​‌​         则数值为6 的表达式是         。​
选项:
A: *p+6   
B:  *(p+6)
C: *p+=5 
D: p+5
答案: 【 *p+=5 

4、单选题:
设P1和P2 是指向同一个int型一维数组的指针变量,k 为int 型变量,则不能正‌‌‌         确执行的语句是         。‌
选项:
A: k=*P1+*P2;  
B: p2=k;
C:  P1=P2;
D: k=*P1 * (*P2);
答案: 【  P1=P2;

5、单选题:
有如下说明‎                   int
a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;‎‍‎         则数值为9 的表达式是         。‎
选项:
A: *p+9 
B: *(p+8)
C: *p+=9 
D: p+8
答案: 【 *(p+8)

6、单选题:
下面程序输出数组中的最大值,由s指针指向该元素.‏         void
main()‏         {
 int a[10]={6,7,2,9,1,10,5,8,4,3,},*p,*s;‏            for(p=a, s=a;p-a<10;p++)‏            if(【        】)s=p;‏            printf("The
max:%d",*s):‏         }‏‎‏         则在if 语句中的判断表达式应该是         。‏
选项:
A: p>s
B: *p>*s       
C: a[p]>a[s]       
D: p-a>p-s
答案: 【 *p>*s       

7、单选题:
若有以下定义和语句:‏                   int
a[10]={1 ,2,3 ,4,5 ,6,7 ,8,9 ,10},*p=a ;‏         则不能表示a 数组元素的表达式是         。‏         A.
*p         B. a[10]       
 C. *a         D. a[p-a]‏‌‏8、若有以下的定义:‏
选项:
A: *p         
B: a[10]   
C:  *a  
D:  a[p-a]
答案: 【 a[10]   

8、填空题:
以下程序的输出结果是________。‌         void
main()‌         {  int a[]={2,4,6,8,10};‌            int y=1,x,*p;‌            p=&a[1];‌            for(x=0;x<3;x++)  y+=*(p+x);‌            printf("y=%dn",y);‌‎‌         }‌
答案: 【 y=19

9、填空题:
‌以下程序的输出结果是________。​‌         void main( )           ​‌         {  int a[5]={2,4,6,8,10},*p,* *k;​‌            p=a; k=&p;​‌            printf("%d",*(p++));​‌            printf("%dn",* *k);​‌         }​‌​
答案: 【 24

任务7.3 某车企多项数据显示(指针作为函数参数)动手练习

1、单选题:
若有定义int a[2][3],*p=a;,则能表示数组元素a[1][2]地址的是(   )。 ‏‍‏
选项:
A: *(a[1]+2) 
B: a[1][2] 
C: p[5]
D: p+5
答案: 【 p+5

2、单选题:
‌若已定义: int a=5,*p; 且 p=&a;  则以下表示中不正确的是(   )。 ‎
选项:
A: &a==&(*p) 
B:  *(&p)==a 
C: &(*p)==p 
D:  *(&a)==a
答案: 【  *(&p)==a 

3、单选题:
‍若有以下程序段,则叙述正确的是(  )。‌‍‌char s[]="computer"; ‌char *p; p=s; ‌‍‌
选项:
A: s和p完全相同 
B:   数组s的长度和p所指向的字符串长度相等 
C: *p与s[0]相等 
D: 数组s中的内容和指针变量p中的内容相等
答案: 【 *p与s[0]相等 

4、单选题:
若有以下程序段,则不能正确访问数组元素a[1][2]的是(  )。 ​int (*p)[3];​int a[][3]={1,2,3,4,5,6,7,8,9};​‎​p = a; ​
选项:
A: p[1]+2 
B: p[1][2] 
C:  (*(p+1))[2] 
D: *(*(a+1)+2)
答案: 【 p[1]+2 

5、单选题:
以下程序段的运行结果是(   )。 ​    int
a[]={1,2,3,4,5,6,7},*p=a;​    int
n,sum=0;​    for(n=1;n<6;n++)
sum+=p[n++];​​​   
printf("%d",sum); ​
选项:
A: 12
B: 15
C: 16
D: 27
答案: 【 12

6、单选题:
以下程序段运行后变量s的值为(   )。 ‍ int
a[]={1,2,3,4,5,6,7};‍ int
i,s=1,*p;‍ p=&a[3];‍ for(i=0;i<3;i++)‍‎‍  
s*=*(p+i); ‍
选项:
A: 6
B: 60
C: 120
D: 210
答案: 【 120

7、单选题:
以下程序段运行后变量ans的值为(  )。 ‎  int a[]={1,2,3},b[]={3,2,1};‎ int
*p=a,*q=b;‎ int
k,ans=0;‎ for(k=0;k<3;k++)‎         
if(*(p+k)==*(q+k))‎      
ans=ans+*(p+k)*2;‎‏‎‎
选项:
A: 2
B: 4
C: 6
D: 12
答案: 【 4

8、填空题:
在如下定义中 float a[
]={100,200,300}; float *p[ ]={&a[0], &a[1],‏‏‏&a[2]}; 语句cout<<*p[2]的输出是_____ ‏
答案: 【 300

9、填空题:
‌若有说明语句char
*name="newspaper"; 则cout<<name+2的输出是wspaper,cout<<*(name+3) 的输出是___。 ‍
答案: 【 s

10、填空题:
‏int a[5]={100, 200,300, 400, 500},
*p1=&a[0];  则表达式(*p1)++的值是_______。​
答案: 【 100

11、填空题:
有如下定义中char *str[ ]={“Follow me”, “BASIC”, “Great Wall”,‎‎‎“Department”}中输出”BASIC”字符串的语句是:_______ ‎
答案: 【 cout<<str[1];

12、填空题:
执行以下语句:int a[5]={25,14,27,18},*p=a;(*p)++;‌‍‌   则 *p的值为26,再执行语句:*p++;则 * p的值为_____‌
答案: 【 15

13、填空题:
以下程序的功能是:将无符号八进制数字构成的字符串转换为十进制整数。例如,输入的字符串为:556,则输出十进制整数366。请填空。45*8‍      #include <stdio.h>‍      main( )‍{  char *p,s[6]; int n;  p=s;  gets(p);  n=*p-'0';‍         while( ________  != '') //先++ ,后*‍n=n*8+*p-'0'; ‍‍printf("%d n",n);   }‍​‍
答案: 【 *++p;

单元测验

1、单选题:
若有以下定义和语句,且0≤i<10则对数组元素的错误引用是        。​    int a[10]={1,2,3,4,5,6,7,8,9,10},*p,i;​    p=a;​‍​
选项:
A: *(a+i)
B: a[p-a]  
C:  p+i 
D:  *(&a[i])
答案: 【  p+i 

2、单选题:
对如下定义,以下说法中正确的是        。‌​‌    char *a[2]={ "abcd","ABCD"};‌
选项:
A: 数组a的元素值分别为"abcd"和"ABCD"
B: a是指针变量,它指向含有两个数组元素的字符型数组
C: 数组a的两个元素分别存放的是含有4个字符的一维数组的首地址
D: 数组a的两个元素中各自存放了字符’a’、’A’的地址
答案: 【 数组a的两个元素中各自存放了字符’a’、’A’的地址

3、单选题:
char *s="t\Name\Addressn";‌‌‌    指针s所指字符串的长度为:        。‌
选项:
A: 说明不合法 
B: 19 
C: 18 
D: 15
答案: 【 15

4、单选题:
分析下面函数,以下说法正确的是        。‍        swap(int *p1,int *p2)‍        { int *p;‍         
*p=*p1; *p1=*p2; *p2=*p;‍‍‍        }‍
选项:
A: 交换*p1和*p2的值   
B: 正确,但无法改变*p1和*p2的值
C: 交换*p1和*p2的地址 
D: 可能造成系统故障,因为使用了空指针
答案: 【 可能造成系统故障,因为使用了空指针

5、单选题:
设有说明int (*ptr)[M]; 其中ptr是          。‎
选项:
A: M个指向整型变量的指针
B: 指向M个整型变量的函数指针
C: 一个指向具有M个整型元素的一维数组的指针
D: 具有M个指针元素的一维指针数组,每个元素都只能指向整型量
答案: 【 一个指向具有M个整型元素的一维数组的指针

6、单选题:
在说明语句:int *f(); 中,标识符代表的是:         。‌
选项:
A:  一个用于指向整型数据的指针变量
B:  一个用于指向一维数组的指针
C:  一个用于指向函数的指针变量 
D: 一个返回值为指针型的函数名
答案: 【 一个返回值为指针型的函数名

7、单选题:
若int x ,*pb;
,则正确的赋值表达式是         。‍
选项:
A:  pb=&x
B: pb=x;
C: *pb=&x;
D: *pb=*x
答案: 【  pb=&x

8、单选题:
有如下程序段‌        int
*p ,a=10 ,b=1 ;‌        p=&a; a=*p+b ;‌‌‌    执行该程序段后,a 的值为         。‌
选项:
A: 12
B: 11
C: 10
D: 编译出错
答案: 【 11

9、单选题:
若有以下定义和语句:‍        double
r=99 , *p=&r ;‍        *p=r;‍‏‍    则以下正确的叙述是         。‍
选项:
A: 以上两处的*p 含义相同,都说明给指针变量p 赋值
B: 在"double r=99,*p=&r;"中,把r 的地址赋值给了p 所指的存储单元
C:  语句"*p=r;"把变量r的值赋给指针变量p
D: 语句"*p=r;"取变量r 的值放回r 中
答案: 【 语句"*p=r;"取变量r 的值放回r 中

10、单选题:
对于类型相同的两个指针变量之间,不能进行的运算是         。‌
选项:
A: <         
B: =         
C: +         
D: -
答案: 【 +         

11、单选题:
若已定义:int a[9] ,*p=a;并在以后的语句中未改变p 的值,不能表示a[1] 地‍‌‍    址的表达式是         。‍
选项:
A: p+1 
B: a+1
C: a++ 
D: ++p
答案: 【 a++ 

12、单选题:
设有如下的程序段:‌        char
str[ ]="Hello" ;‌        char
*ptr ;‌        ptr=str;‌‏‌    执行上面的程序段后 ,*(ptr+5)的值为         。‌
选项:
A: 'o' 
B: ''       
C: 不确定的值       
D: 'o'的地址
答案: 【 ''       

13、单选题:
下面各语句行中,能正确进行字符串赋值操作的语句是         。‍
选项:
A: char
ST[5]={"ABCDE"};
B:  char S[5]={'A','B','C','D','E'};
C:  char *S; S="ABCDE";
D: char *S; scanf("%S",S);
答案: 【  char *S; S="ABCDE";

14、单选题:
已有函数max(a,b),为了让函数指针变量p 指向函数max,正确的赋值方法是        。‏
选项:
A: p=max;  
B: *p=max;
C: p=max(a,b);
D:  *p=max(a,b);
答案: 【 p=max;  

15、单选题:
若有说明:int i, j=2,*p=&i;,则能完成i=j 赋值功能的语句是        。​
选项:
A: i=*p
B: p*=*&j;
C: i=&j;
D: i=**p;
答案: 【 p*=*&j;

16、填空题:
void main()‌    {
 char b[ ]="ABCDEFG";‌       char *chp=&b[7];‌       while(--chp>&b[0])‌       putchar(*chp);‌       putchar('n');‌​‌    }‌
答案: 【 GFEDCB

17、填空题:
void main( )​    {
char *s="12134211";​int v[4]={0,0,0,0} ;​      int k,i;​      for(k=0;s[k];k++)​      { switch(s[k])​        { case '1':i=0;​          case '2':i=1;​          case '3':i=2;​          case '4':i=3;​        }​        v[i]++;​      }​      for(k=0;k<4;k++) printf("%d",v[k]);​‌​    }​
答案: 【 0008

18、填空题:
void main( )‎    {
 int a[5]={2,4,6,8,10},*p,* *k;‎       p=a; k=&p;‎       printf("%d",*(p++));‎       printf("%dn",* *k);‎‎‎    }‎
答案: 【 24

19、填空题:
char cchar(char ch)​    {
if (ch>=‘A’&&ch<=‘Z')​ch=ch-‘A'+‘a';​      return ch;​    }​    void
main()​    {
char s[]="ABC+abc=defDEF",*p=s;​      while(*p)​      { *p=cchar(*p);​        p++;​      }​      printf("%sn",s);​​​    }​
答案: 【 abc+abc=defdef

20、填空题:
void main()‏    { char s[]="ABCD",*p;‏     
for(p=s+1;p<s+4;p++)  ‏        
printf("%sn",p);‏‌‏    }‏
答案: 【 BCD
CD
D

21、填空题:
#include <stdio.h>    ‍    void main()‍    {  static int a[2][3]={1,3,5,2,4,6};‍       int
*add[2][3]={*a,*a+1,*a+2,*(a+1),*(a+1)+1,*(a+1)+2};‍       int
**p,i;‍       p=add[0];‍       for(i=0;i<6;i++)‍        { printf("%d  ",**p);  p++;}‍       printf("n");‍‍‍    }‍
答案: 【 1 3 5 2 4 6

22、填空题:
void main()​    {  int
a[]={2,4,6,8,10};​       int
y=1,x,*p;​      
p=&a[1];​      
for(x=0;x<3;x++)  y+=*(p+x);​      
printf("y=%dn",y);​‌​    }​
答案: 【 y=19

23、填空题:
void ast(int x,int y,int *cp,int *dp)‏    { *cp=x+y; *dp=x-y; }‏    void main()‏    { int a,b,c,d;‏      a=4; b=3;‏      ast(a,b,&c,&d);‏      printf("%d,%dn",c,d);‏‏    }‏​‏
答案: 【 7,1

24、填空题:
‎    #include <stdio.h>‎    void main()‎    {  int
*p1,*p2,*p;‎       int
a=5,b=8;‎      
p1=&a; p2=&b;‎      
if(a<b) { p=p1; p1=p2; p2=p;}‎      
printf("%d,%dn",*p1,*p2);‎      
printf("%d,%dn",a,b);‎‏‎    }‎
答案: 【 8,5
5,8

项目三 车辆数据类型选择(选择结构)

任务3.1新能源汽车电池组的选择(单分支)随堂测验

1、单选题:
​已知定义double类型值battery_capacity,则scanf格式化字符串___.‎​‎
选项:
A:  %D
B: %lf
C:  %C
D: .%S
答案: 【 %lf

2、单选题:
​使用scanf函数需要在头文件中添加___.‏​‏
选项:
A: #include <stdio.h> 
B: #include <ctype.h>  
C: #include <float.h>
D: include <iomanip.h>
答案: 【 #include <stdio.h> 

3、单选题:
‌定义int x=5, y=6;执行下述程序后,变量y的值是___.‎‌‎
选项:
A: 1
B: 11
C: 6
D: 0
答案: 【 6

4、单选题:
‏若以定义 int=12;执行下面程序的输出结果为___.‌‏Printf(“a=%d,a=%o,a=%xn”a,a,a);‌‏‌
选项:
A: a=12,a=14,a=c
B: a=12,a=14,a=a
C:  a=12,a=16,a=c
D:  a=12,a=14,a=c
答案: 【  a=12,a=14,a=c

5、单选题:
‍执行下面程序的输出结果为___.‎void main(){
int x=11,y=16,z=20;
if(x>y){
printf("%d",z);
}
else if(y>z){
printf("%d",z);
}
else{
printf("%d",z);
}
}‍‎‍‎
选项:
A: 16
B: 20
C: 11
D: 15
答案: 【 20

任务3.2判断车辆是否存在故障(双分支)随堂测验

1、单选题:
‌两次运行下面的程序,如果从键盘上分别输入6和3,则输出结果是( )。‌‌ int x;  
scanf("%d",&x); 
if(++x>5)     
printf("%d",x); 
else          
printf("%dn",x --);‌‌‌
选项:
A: 7和5 
B: 6和3 
C: 7和4 
D: 6和4
答案: 【 7和4 

2、单选题:
已知A=7.5,B=2,C=3.6,表达式(A>B && C>A) || (A<B && !C>B)的值是( )。‍‍‍‍‍
选项:
A: 0
B: 10
C: 1
D: 5
答案: 【 0

3、单选题:
‌下边程序段 ‌‌int a=2,b=3,c=4; 
    if(c=a+b)  
printf(―OK!‖)
 else        
printf(―NO!‖); ‌‌输出结果是(  )。‌‌‌
选项:
A: OK!
B: NO
C: 程序错误
D: 以上都不对
答案: 【 OK!

4、单选题:
‌设整型变量a,b的值分别为1,0,那么a || b的结果是(   )。‎‌‎
选项:
A: 0
B: 1
C: 2
D: 都不对
答案: 【 1

5、单选题:
‏有以下程序段 int a; if (3&&2)   a=1;  else   a = 2;  执行后a=(   )。‍‏‍
选项:
A: 1    
B: 2
C: 3
D: 0
答案: 【 1    

任务3.3判断车辆的故障等级(多分支)随堂测验

1、单选题:
‎下列语句搭配正确的是( )‏‎‏
选项:
A: if ,while
B: while ,else
C: if ,else
D:  if ,else if
答案: 【 if ,else

2、单选题:
‌下面括号该填的是( )‎‌void main(){
       int Rap;
      printf("输入你的电量状态(占比数字):n");
       scanf("%d",&Rap);
       if(Rap==0)
       {
     printf("无电量,无法行驶状态。n");
       }
      else if( Rap<20)
       {
     printf("缺电状态n");
       }
     (______________________________________)
   {
     printf("正常状态n");
       }‎
选项:
A: if 
B: else
C: else if
D: do
答案: 【 else

3、单选题:
‍大于零并且小于十五时输出一档该填(  )‌‍#include "stdio.h"
void main()
{
    int speed;
    printf("输入你的车速(km):n");
    scanf("%d",&speed);
    if(speed==0)
    {
     printf("零档n");
    }
    else if(speed________)
    {
     printf("一挡n");
    }
   
     else if(speed<30)
    {
     printf("二挡n");
    }
    else if(speed<40)
    {
     printf("三挡n");
    }
    else
    {
     printf("四挡n");
    }
    
}‌
选项:
A: <15
B: >15
C: >=15
D: <=15
答案: 【 <15

4、单选题:
‍要输出:一级故障/严重故障,停机处理 则要填入(B)‍‍void main()
{
     int Fault_level;
     printf("输入你的事故等级(数字):n");
     scanf("%d",&Fault_level);
     if(Fault_level==0)
     {
     printf("正常n");
     }
       else if(Fault_level<2)
     {
     printf("一级故障/严重故障,停机处理;n");
      }
     else
    {
     printf("输入错误,请重新输入n");
    }
    }‍
选项:
A: 0
B: 1
C: 2
D: 3
答案: 【 1

5、单选题:
请输出结果( )if (5 < 4) 
{  if (6 > 5) 
putchar('1'); }
else if (4 > 3)
putchar('2'); 
else  
putchar('3');
putchar('4');
A、1  B、2  C、3  D、4
6、填空( )
void main()
 {
     char Typeofdrivinglicense[2];
    printf("输入你的车型:n");
    scanf("(____)",&Typeofdrivinglicense);‍​‍
选项:
A: %a
B: %c
C: %s
D: %f
答案: 【 %c

任务3.4 判断车辆的故障等级(switch)随堂测验

1、单选题:
‍写出下面程序的输出结果 ()‍‍#include <stdio.h> 
int main() 
{  
int x=1, y=0, a=0, b=0; 
switch(x) 
{  
case 1: 
switch(y) 

case 0: a++;  
case 1: b++; 
} 
case 2: a++; 
b++; 
} 
printf("a=%d, b=%dn", a, b) ; 
return 0; 
}‍
选项:
A: a=1, b=0 
B: a=2, b=1 
C: a=1, b=1 
D: a=2, b=2
答案: 【 a=2, b=2

2、单选题:
‍若有定义:float x=1.5;int a=1,b=3,c=2;则正确的switch语句是()‎‍‎
选项:
A:  switch(x) { case 1.0:printf("*n");case 2.0:printf("**n");}
B: switch((int)x);{ case 1:printf("*n");case 2:printf("**n");}
C: switch(a+b) { case 1:printf("*n");case 2+1:printf("**n");} 
D: switch(a+b){ case 1:printf("*n");case c:printf("**n");}
答案: 【 switch(a+b) { case 1:printf("*n");case 2+1:printf("**n");} 

3、单选题:
‍以下选项中与if (a==1) a=b; else a++; 语句功能不同的switch语句是()‌‍‌
选项:
A: switch(a==1) {case 0: a=b; break; case 1: a++; } 
B: switch(a) {case 1: a=b; break; default: a++; }
C: switch(a) { default : a++; break; case 1: a=b; } 
D: switch(a==1) {case 1: a=b; break; case 0: a++; }
答案: 【 switch(a) {case 1: a=b; break; default: a++; }

4、单选题:
‏以下关于程序段执行情况的叙述,正确的是 ()
int i,n; 
for(i=0;i<8;i++) 
{n=rand()%5; 
switch (n) 
{ case 1: 
case 3:printf("%dn",n); break; 
case 2: 
case 4:printf("%dn",n);continue;
case 0:exit(0); 
} 
printf("%dn",n); 
}‎
选项:
A: )for循环语句固定执行8次
B: 当产生的随机数n为4时结束循环操作 
C: )当产生的随机数n为1和2时不做任何操作
D: 当产生的随机数n为0时结束程序运行
答案: 【 当产生的随机数n为0时结束程序运行

5、填空题:
​2.运行结果是     a=2,b=1          。
Void 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;
      case 3: a++;b++;
                 }
                printf("a=%d,b=%dn",a,b);
              }‌
答案: 【 a=2,b=1

任务3.5 车辆故障诊断与维修(选择嵌套)随堂测验

1、单选题:
‎.以下程序的输出结果是()。‏‎main()
 {
 int a,b; 
 for(a=1,b=1;a<=100;a++)

  if(b>=10)  break; 
  if (b%3==1) 
  {  
   b+=3;  
   continue; 
  } 
 } 
 printf("%dn",a); 
}‏‎‏
选项:
A: 101
B: 3
C: 4
D: 5
答案: 【 4

2、单选题:
​C语言中不可以嵌套的是()。​​​
选项:
A:  函数调用
B:  函数定义
C: 循环语句
D: 选择语句
答案: 【  函数定义

3、单选题:
‌在嵌套使用if语句时,C语言规定else总是()。‌‌‌
选项:
A: 和之前与其具有相同缩进位置的if配对
B: 和之前与其最近的if配对
C: 和之前与其最近的且不带else的if配对
D: 和之前的第―个if配对
答案: 【 和之前与其最近的且不带else的if配对

4、单选题:
‏.为了避免嵌套的条件语句if-else的二义性,C语言规定:else与()配对。‍‏‍
选项:
A: 缩排位置相同的if 
B: 其之前最近的if
C: 其之后最近的if 
D: 同一行上的if
答案: 【 其之前最近的if

5、单选题:
​以下关于switch语句和break语句的描述中,正确的是()。‌​‌
选项:
A: 在switch语句中必须使用break语句
B: 在switch语句中,可以根据需要使用或不使用break语句
C: break语句只能用于switch语句中
D: break语句是switch语句的一部分
答案: 【 在switch语句中,可以根据需要使用或不使用break语句

6、填空题:
‌从键盘输入x的值(要

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

发表评论

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