C语言编程新思路 知到智慧树答案2024 z9403


第一章 单元测试

 

1、
 关于一个C语言程序执行的起点和终点,以下选项正确的是 ( )。

A: main  任意
B: main  最后一个
C: main  main
D: 第一个  最后一个
答案:  main  main

2、
 C语句的程序一行写不下时,可以 (    )。

A: 用逗号换行
B: 用分号换行
C: 用回车换行
D: 用任意空格换行
答案:  用回车换行

3、
 以下叙述不正确的是  ( )。

A: C程序中,语句之间必须用分号分隔
B: 一个C程序,可以由多个函数组成
C: C程序中,可以不必包含主函数
D: C程序中,多行语句可以写在一行上
答案:  C程序中,可以不必包含主函数

4、
 C语言规定,在一个源程序中,main函数的位置  ( )。

A: 必须在系统调用库函数的后面
B: 可以任意
C: 必须在最后
D: 必须在最开始
答案:  可以任意

5、
 以下叙述正确的是 (     )。

A: 在C程序中,注释说明只能位于一条语句的后面。
B: C语言本身没有输入输出语句
C: C程序的每行中只能写一个语句
D: 在对C语言进行编译的过程中,不能发现注释中的错误
答案:  在对C语言进行编译的过程中,不能发现注释中的错误

6、
 函数的主体部分需要用一对  (    )括起来。

A: [ ]
B: ( )
C: < >
D: { }
答案:  { }

7、
 以下叙述错误的是  (   )。

A: 一个C程序编译成功后在连接时发现错误,需要编辑修改,然后不必重新编译和连接即可直接运行。
B: C语言是一种函数型语言,每个C语言程序都是由若干个函数组成
C: 对于计算机而言,程序是指完成某一特定任务的一组指令序列
D: 机器语言和汇编语言都是低级语言
答案:  一个C程序编译成功后在连接时发现错误,需要编辑修改,然后不必重新编译和连接即可直接运行。

8、
 计算机能够直接识别和执行的计算机语言   (     )。

A: 高级语言
B: 机器语言
C: C语言
D: 汇编语言
答案:  机器语言

9、
 对C程序的注释说明信息必须写在  ( )之间。

A: <和>
B: /*和*/
C: { 和 }
D: ’和’
答案:  /*和*/

10、
 用C语言编写的源程序,必须翻译成用二进制指令表示的目标程序,才能被计算机识别,这个过程称为   (    )。

A: 编译
B: 解释
C: 汇编
D: 编辑
答案:  编译

11、
 关于C语言的特点,以下叙述错误的是  ( )。

A: C语言不能直接对硬件进行操作
B: C语言一共只有32个关键字,9种控制语句,程序书写自由
C: C语言共有34种运算符,表达式类型多样化
D: C语言程序可以方便的在不同的计算机间和各种操作系统中实现程序的移植
答案:  C语言不能直接对硬件进行操作

12、
 C语言程序的基本构成单位是  (  )。

A: 语句
B: 函数
C: 表达式
D: 运算符
答案:  函数

13、
 能够在编译过程中被检查出来,并给出提示信息的是   (   )。

A: 语法错误
B:逻辑错误 
C: 注释错误
D: 运行错误
答案:  语法错误

14、
 以下叙述错误的是  (   )。

A: C程序的单行注释语句以“//”开始
B: C语言的注释语句不影响编译结果
C: C语言程序中只要出现在“/*”和“*/”之间的就一定是注释内容
D: C语言的注释有两种类型:单行注释和多行注释
答案:  C语言程序中只要出现在“/*”和“*/”之间的就一定是注释内容

15、
 C语言源程序文件的后缀名是  (  )。

A: .exe
B: .vbp
C: .c
D: .obj
答案:  .c

16、
 C语言编译程序是  (    )。

A: 将C源程序编译成目标程序
B: 厂家提供的应用软件
C: 一组机器语言指令
D: C程序的机器语言版本
答案:  将C源程序编译成目标程序

17、
 C语言源程序文件经过编译后的目标文件后缀名是  (     )。

A: .obj
B: .exe
C: .vbp
D: .c
答案:  .obj

18、
 C语言源程序编译、连接后的可执行文件后缀名是  (    )。

A:.obj  
B: .bak
C:.exe
D: .c
答案: .exe

第二章 单元测试

1、
 下面4个选项中,均是不合法的用户标识符的选项的是( )。

A: Date    sum    do
B: b+a    if    float
C: char    pao    _123
D: _abc    Temp    Int
答案:  b+a    if    float

2、
 下面4个选项中均是合法常量的选项是( )。

A: “w”  034    0xa3  ‘m’
B: 058  12e−3  3.6    ‘d’
C: 4.45    076    5.33E1.5   “how”
D:−12.8   0x98   43.56e2   ‘n’ 
答案: −12.8   0x98   43.56e2   ‘n’ 

3、
 以下叙述不正确的是( )。

A: 若a和b类型相同,在计算了赋值表达式a=b后,a得到b的值,而b的值不变
B: 在C语言中,area和AREA是两个不同的变量名
C: 在C语言中,%运算符的优先级高于/ 运算符
D: 在C语言中,可以使用二进制整数
答案:  在C语言中,可以使用二进制整数

4、
 在C语言中,要求运算对象必须是整型的运算符是 ( )。

A: *
B: %
C: /
D: +
答案:  %

5、
 若有说明语句:char ch=’x41′; 则变量ch包含( )个字符。

A: 2
B: 3
C: 1
D: 说明不合法,ch的值不确定
答案:  1

6、
 若有定义:int a=7; float x=2.5,y=4.5; 则表达式x+a%3*(x+y)/2的值是 ( )。

A: 0.000000
B: 5.500000
C: 6.000000
D: 2.500000
答案:  6.000000

7、
 设变量a是整型,f是实型,i是双精度型,则表达式10+’a’+i*f值的数据类型为( )。

A: float
B: 不确定
C: double
D: int
答案:  double

8、
 以下叙述正确的是 ( )。

A: 在C语言中,%是只能用于整数运算的运算符
B: 若a是实型变量,则在C语言中不允许用其他类型的数据对其赋值
C: 在C语言中,一行只能写一条语句
D: 在C语言中,无论是整数还是实数,都能被准确无误地表示
答案:  在C语言中,%是只能用于整数运算的运算符

9、
 在C语言中,int型数据在内存中的存储形式是( )。

A: ASCII码
B: 原码
C: 补码
D: 反码
答案:  补码

10、
 下列选项中可作为C语言的合法整数的是 ( )。

A: 101011B
B: 0x4b5
C: 03845
D: a2
答案:  0x4b5

11、
 字符型数据在内存中是以 ( )形式存储的。

A: 原码
B: ASCII码
C:补码 
D: BCD码
答案:  ASCII码

12、
 下列叙述正确的是( )。

A: 赋值表达式的左边只能是变量名
B: 不同类型的变量所占内存单元是相同的
C: 字符串常量”China!”在存储时,系统为其分配6个字节的空间
D: C语言中,变量可以不经定义而直接使用
答案:  赋值表达式的左边只能是变量名

13、
 #include <stdio.h>

int main()

{  char ch;

 int i;

       i=65;

       ch=”a”;

       printf(“%c,%c,%d,%d n”,i,ch,i,ch);

       return 0;

}这段程序的运行结果是( )。

A: 编译错误,无法运行
B: a,A, 97,65
C: a,A, 65,97
D:  A,a,65,97
答案:  编译错误,无法运行

14、
 设整型变量a=2,则执行下列语句后,实型变量b的值不是0.5的是( )。

A: b=1/(float)a
B: b=1/(a*1.0)
C: b=1.0/a
D: b=(float)(1/a)
答案:  b=(float)(1/a)

15、
 #include <stdio.h>

int main()

{   int a=b=5,c;

         c=a+b;

         printf(“c=%dn”,c);

}这段程序的运行结果是( )。

A: 编译错误,无法运行
B: 10
C: 不确定
D: 0
答案:  编译错误,无法运行

16、
 C语言的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( )。

A: 可以是这三种字符中的任一种
B: 必须是字母
C: 必须为字母或者下划线
D: 必须是下划线
答案:  必须为字母或者下划线

17、
 如果在一个C语言表达式中有多个运算符,则运算时应该( )。

A: 只考虑结合性
B: 只考虑优先级
C: 先考虑优先级,然后考虑结合性
D: 先考虑结合性,然后考虑优先级
答案:  先考虑优先级,然后考虑结合性

18、
 已知字符A的ASCII值是65,若定义int  i; 则执行语句i=’A’+3; 后,正确的叙述是 ( )。

A: i的值是字符E
B: 语句不合法
C: 语句可以执行,但没有计算结果
D: i的值是字符A的ASCII值加上3,即68
答案:  i的值是字符A的ASCII值加上3,即68

19、
 在C语言中常量’n’和常量”ABC”在内存中占用的字节数分别是( )。

A: 1    4
B: 2    4
C: 2    3
D: 1    3
答案:  1    4

第三章 单元测试

1、
 若a、b、c、d都是int类型变量且初值为0,以下选项中不正确的赋值语句是 (     )。

A: a=b=c=d=100;
B: d=d-1;
C: a*b;
D: d=(c=30)+b;
答案:  a*b;

2、
 以下选项中不是C语句的是  (   )。

A: {int i;printf(“%dn”,i);}
B:  a=5,c=10
C:  ;
D:  { ; }
答案:   a=5,c=10

3、
 

以下程序的输出结果是 (    )。

#include   “stdio.h”

int main()

{   int x=100, y=30;

printf(“%dn”,y=x/y);

return(0);

}

A: 1
B: 不确定的值
C: 0
D: 3
答案:  3

4、
 若变量已正确说明为int类型,要给a、b、c输入数据,以下正确的输入语句是  (    )。

A: scanf(“%d%d%d”,a,b,c);
B: read(a,b,c);
C: 

scanf(“%d%d%d”,&a,&b,&c);

D: get(“%d%d%d”,a,b,c);
答案:  

scanf(“%d%d%d”,&a,&b,&c);

5、
 以下程序段的输出结果是(     )

#include <stdio.h>

int main(void)

{   int i;      float x;  double y;

      y=x=i=10/4;

      printf(“y=%.2f,x=%.2f,i=%dn”,y,x,i);

    return(0);

}

A: y=2.50, x=2.00, i=2
B: y=2.00,x=2.00,i=2
C: y=2.50,x=2.50,i=2
D: y=2.00, x=2.50, i=2
答案:  y=2.00,x=2.00,i=2

6、
 若变量已正确定义,要将a和b中的数进行交换,下面不正确的语句组是  (     )。

A: t=b; b=a; a=t;
B: a=a+b, b=a-b, a=a-b;
C: a=t; t=b; b=a;
D: t=a, a=b, b=t;
答案:  a=t; t=b; b=a;

7、
 以下程序的输出结果是 (    )。

    #include <stdio.h>

    int main(void)

{   int  a=4,b=8;

printf(“a=%%d,b=%%dn”,a,b);     /* 注意转义字符的作用 */

return(0);

}

A: a=2,b=5
B: a=%%d,b=%%d 
C:a=%d,b=%d 
D: a=%2,b=%5  
答案: a=%d,b=%d 

8、
 已知字母A的ASCII值为十进制数65,下面程序的输出是  (     )。

#include “stdio.h”

int main(void)

{   char ch1,ch2;

ch1=’A’+’5’−’3′;

ch2=’A’+’6’−’3′;

printf(“%d,%cn”,ch1,ch2);

return(0);  

}

A: 67,D
B: C,D
C:67,C 
D: B,C
答案:  67,D

9、
 若从终端输入以下数据,要给变量c赋以340.25,则正确的输入语句是(   )。

A: scanf(%f”,&c) 
B: scanf(%.2f”, &c);
C: scanf(%6.2f”, &c);
D: scanf(%4f”, &c);
答案:  scanf(%f”,&c) 

10、
 以下程序运行时输入:25<回车>,执行后输出的结果是 (      )。

#include <stdio.h>

int main(void)

{   char ch1,ch2;

int n1;

ch1=getchar();

ch2=getchar();

n1=ch2-ch1;

printf(“%d”,n1);

return(0);

}

A: 编译错误
B: 3
C: -3
D: 25
答案:  3

11、
 有以下程序

#include<stdio.h>

int main(void)

{   char c1,c2,c3,c4,c5,c6;

    scanf(“%c%c%c%c”,&c1,&c2,&c3,&c4);

    c5=getchar();

    c6=getchar();

    putchar(c1);   

putchar(c2);

    printf(“%c%cn”,c5,c6);

    return(0);

}

程序运行后,若从键盘输入(从第一列开始)

abc<回车>

def<回车>则输出结果是(   )。

A: abef
B: abcd
C: abde
D: cdef
答案:  abde

12、
 以下程序段的输出结果是(     )。

#include <stdio.h>

int main(void)

{   char c1=’a’,c2=’c’;

printf(“%d,%cn”,c2-c1,c2-c1+’B’);

return(0);

}

A: 类型不一致,出错
B: 2,D
C: 2,b
D: 3,B
答案:  2,D

13、
 若变量已正确定义为float类型,要通过语句scanf(“%f%f%f”,&a,&b,&c);给a赋值10.0,b赋值20.0,c赋值30.0,不正确的输入形式是(   )。

A: 10,20,30
B: 10

 20

 30

C: 10.0

 20.0 30.0

D: 10,20

 30

答案:  10,20,30

14、
 以下程序的输出结果是( )。

#include <stdio.h>

int main(void)

{   int a,b;

      a=10;

      b=20;

      printf(“a=%dnb=%dn”,a,b);

    return(0);

}

A: 10

 20

B: a=10,b=20
C: a=10

b=20

D: 10,20
答案:  a=10

b=20

15、
  若变量已正确说明,要求用以下语句给a赋值2.0,给c1赋值字符#,给b赋值4.0,则不正确的输入形式是(   )。scanf(“%f%c%f”, &a, &c1, &b);

A: 2#  4 
B: 2.0#4.0    ‘
C: 2.0# 4.0  ,
D: 2.0  #  4.0   ’
答案:  2.0  #  4.0   ’

16、
  以下说法错误的是 (        )。

A: 若float x=5;可以对变量x进行%操作,如x%2的值是1。
B: 赋值表达式的功能是将赋值运算符右侧的值赋给其左侧的变量。
C: 

复合语句是用一对花括号括起来的若干条语句,从语法作用上讲一条复合语句视为一条语句。

D: 长整型(long int)变量,使用scanf函数输入时,需使用%ld格式符。
答案:  若float x=5;可以对变量x进行%操作,如x%2的值是1。

17、

 

结构化程序设计由三种基本结构组成,下面哪个选项不属于三种基本结构 (         )。

A:回溯
B:循环
C:顺序
D:选择    
答案: 回溯

18、
下面程序段功能是先输入一个整数,然后将输入的整数输出,请指出哪部分有错(     )。  #include  <stdio.h>  // 1

int main(void)

{   int i;  // 2

      scanf(“%d”, i); // 3

      printf(“i=%dn “,i); // 4

    return(0);

}

A: 1
B: 4
C: 2
D: 3
答案:  3

19、
 设int a=10,b; ,执行下列语句后,b的值不是2的是(   )。

A: b=a-8
B: b=a%4
C:  b=a/4
D: b=a/4.0
答案:  b=a/4.0

20、
 putchar() 函数可以向终端输出一个(    )。

A: 整型
B: 字符
C: 字符串
D: 实数
答案:  字符

第四章 单元测试

1、
 表示关系x≤y≤z的c语言表达式为(   )。

A: (x<=y)&&(y<=z)
B: (x<=y)AND(y<=z)
C: (x<=y<=z)
D: (x<=y)&(y<=z)
答案:  (x<=y)&&(y<=z)

2、
 若a=5;b=6;c=7;d=8;m=2;n=2;则执行 (m=a>b)&&(n=c>d)后,m和n的值分别为( )。

A:  2 ,2
B: 0,2
C: 2.0
D: 0,0
答案:  0,2

3、
 在以下一组运算符中,优先级最高的运算符是(    )。

A: <=
B: =
C: %
D: &&
答案:  %

4、
 若有int x,a,b;则下面if语句中,(       )是错误的。

A: if (a<>b)  x=x+1;
B: if (a-b)  x=x+1;
C: if (a=b)  x=x+1;
D: if ( x )  x=x+1;
答案:  if (a<>b)  x=x+1;

5、
 下列表达式中,(    )不满足“当x的值为偶数时值为真,为奇数时值为假”的要求。

A: (x/2*2-x)==0
B: !(x%2)
C: x%2==0
D: !x%2!=0
答案:  !x%2!=0

6、
 关于以下程序,正确的说法是(   )。

#include <stdio.h>

int main(void)

{int x=0,y=0,z=0;

 if(x=y+z)

   printf(“***”);

 else

   printf(“###”);

return(0);

}

A: 有语法错误,不能通过编译
B: 输出:###
C: 输出:***
D: 可以编译,但不能通过连接,所以不能运行
答案:  输出:###

7、
 下列程序的输出结果是(   )。

#include <stdio.h>

int main(void)

{

  float x=4,y=1;

  if(x<0) y=0;

  else if(x<10) y=1/x;

           else y=10;

  printf(“%fn”,y);

  return(0);

}

A: 10.000000
B: 0.000000
C: 1.000000
D: 0.250000
答案:  0.250000

8、
 执行以下程序时,若输入3和4,则输出结果是(     )。

#include <stdio.h>

int main(void)

{

    int  a,b,s;

    scanf(“%d%d”,&a,&b);

    s=a;

    if(a<b)

s=b;

    s=s*s;

    printf(“%dn”,s);

    return(0);

}

A: 20
B: 18
C: 16
D: 14
答案:  16

9、
 下列程序的输出结果是(      )。

#include <stdio.h>

int main(void)

{

int x=1,a=0,b=0;

switch(x)

{

case 0: b=b+1;

case 1: a=a+1;

case 2: a=a+1;b=b+1;

}

printf(“a=%d,b=%dn”,a,b);

return(0);

}   

A: a=1,b=0
B: a=2,b=1
C: a=2,b=2
D: a=1,b=1
答案:  a=2,b=1

10、
若有定义:int a=3,b=2,c=1; 并有表达式:①a%b、②a>b>c、③b&&c+1、④c+=1,则表达式值相等的是(   )。

A:③和④
B:①和②
C:①和③
D:②和③
答案: ①和③

11、
当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是(   )。   if(a<b)
     if(c<d)   x=1;     else         if(a<c)             if(b<d)  x=2;             else  x=3;         else   x=6;   else  x=7;          

A:4
B:1
C:3
D:2
答案: 2

12、
在下面的条件语句中(其中S1和S2表示C语言语句),只有一个在功能上与其他3个语句不等价(        )。

A: if(a!=0) S1;  else  S2;
B:

 if(a)  S1; else  S2;

C: if(a==0)  S2;  else  S1;
D: if(a==0)  S1;  else  S2;
答案:  if(a==0)  S1;  else  S2;

13、
若有int a=3,b; 则执行下面程序段后b的值是(        )  if(a>0)  b=1;  else  b=-1;  b=b+1;

A:1
B:0
C:-1
D:2
答案: 2

14、
假定所有变量均已正确定义,下面程序段执行后的x的值是(       )。 a=b=0;  x=35; if(!a) x=x-1; if(b) x=3; else x=4;

A:3
B:4
C:35
D:34
答案: 4

15、
若有说明语句int i=4, j=5, k=6; float f; 则执行f=( i>k)?i:(j<k)?j:k;语句后,f的值为(      )。

A:4.0
B:5.0

C:7.0
D:6.0
答案: 5.0

16、
下述程序的输出结果是(   )

#include <stdio.h>

int main (void)

{  int a=0,b=0,c=0;

   if((a+1)>0 ||(b>0))

     c=c+1;

   printf(“%d,%d,%d”,a,b,c);

      return(0);        }

A:0,0,0
B:1,1,1
C:1,0,1
D:0,0,1

答案: 0,0,1

17、
若x=0,则执行下面程序段后,屏幕上会显示(       )。  if(x=0) printf(“***”); else  printf(“&&&”);

A:&&&***
B:***

***

C:***&&&
D:&&&
答案: &&&

18、

若有int a=10,b=20,c=30; ,执行下面程序段后a、b、c的值分别是()。 if(a>b)      c=a;  a=b;   b=c;

A:20、10、30
B:20、30、30

C:10、20、30

D:20、10、10
答案: 20、30、30

19、
下列程序的输出结果是(       )。 #include <stdio.h> int main(void) { int k=8;   switch(k)   {  case 7:k+=1;      case 8:k+=1;      case 9:k+=1;break;      default:k+=1;   }   printf(“%dn”,k);   return(0);  }

A:8
B:11
C:9
D:10
答案: 10

20、
若有float  x;  int  a,b; ,下面四条switch语句中正确的有(         )条。

switch(x)

{     case  x=1.0: printf(“Y”);                       case  x=2.0: printf(“N”);   }

switch(a)

 {     case  a=1: printf(“Y”);                         case  a=2: printf(“N”);     }

switch(b)

 {     case  b==1: printf(“Y”);                        case  b==2: printf(“N”);   }

switch(x)

{     case  1.0: printf(“Y”);                       case  2.0: printf(“N”);      }

A:1
B:2
C:3
D:4
答案: 1

第五章 单元测试

1、
 以下程序段中while循环执行的次数是(  )。

          int k=0;

  while(k=1) k++;

A: 有语法错不能执行
B: 一次也不执行
C: 无限次
D: 执行一次
答案:  无限次

2、
以下描述中正确的是(  )。

A:在do-while循环中,循环体至少执行一次
B:do-while循环中,根据情况可以省略while
C:do-while循环中由do开始,用while 结束,在while (表达式)后面不能写分号

D:由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
答案: 在do-while循环中,循环体至少执行一次

3、
在C语言中有关for循环,以下正确的说法是(   )。

A:在 for循环不能break跳出循环体
B:for循环是先执行循环体语句,后判断表达式
C:for循环的循环体语句中,可以包含多条语句,但必须用大括号括起来
D:for循环只能用于循环次数已经确定的情况
答案: for循环的循环体语句中,可以包含多条语句,但必须用大括号括起来

4、

以下下面程序的运行结果是(   )。

#include <stdio.h>

int main()

{  int a=1,b=2,c=2,t;

while(a<b<c)

{t=a;a=b;b=t;

 c–;

}

printf(“%d,%d,%d”,a,b,c);

}

A:2,1,0
B:1,2,0
C:2,1,1
D:1,2,1
答案: 1,2,0

5、

若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是(   )。

for (i=5;i;i–)

for (j=0;j<4;j++){…}

A:24
B:20
C:25
D:30
答案: 20

6、

下面程序的输出结果是(   )。

#include <stdio.h>

int main()

{  int  i,j;

  for(i=0,j=10;i<j;i+=2,j–)

      ;

printf(“%d %d”,i,j);

}

A:10  5
B:8  6
C:6  7
D:4  8
答案: 8  6

7、
下面关于switch语句和break语句的结论中,说法正确的是(   )。

A:在switch语句中,必须使用break语句
B:break语句是switch语句的一部分
C:在switch语句中,可以根据需要使用或者不使用break语句
D:break语句是for语句的一部分
答案: 在switch语句中,可以根据需要使用或者不使用break语句

8、
以下不是死循环的语句是(   )。

A:for( ;(c=getchar())!=’n’;)

printf(“%c”,c);

B:while(1) {x++;}
C:for(;;x+=i)
D:for(i=10;;i–)

sum+=i;

答案: for( ;(c=getchar())!=’n’;)

printf(“%c”,c);

9、
与语句头while(!x)等价的语句头是(   )。

A:while(x!=1)
B:while(x==0)
C:while(x!=0)
D:while(~x)
答案: while(x==0)

10、
在while(x)语句中的x与下列条件表达式等价的是(   )。

A:x!=0
B:x=1
C:x!=1
D:x==0
答案: x!=0

11、

下面程序的功能是:在输入的一批正数中求最大者,输入0结束循环,选择(   )填空。

#include <stdio.h>

int main ( )

{  int a,max=0;

  scanf(“%d”,&a);

  while (        )

  {   if (max<a) max=a ;

      scanf (“%d”,&a);

  }

  printf(“%d”,max);

}

A:!a==1
B:!a
C:a==0
D:a
答案: a

12、

 下面程序的功能是从键盘输入一行字符,从中统计大写字母和小写字母的个数,选择(   ) 填空。

#include <stdio.h>

int main ( )

{  int m=0,n=0;

  char c;

  while ((         ) != ‘n’)

  {   if (c>=’A’ && c<=’Z’) m++;

      if (c>=’a’ && c<=’z’) n++;

  }

  printf(“m=%d,n=%dn”,m,n);

}

A:c==getchar( )

B:getchar( )
C:scanf(“%c”,&c)
D:c=getchar( )
答案: c=getchar( )

13、

下面程序的输出结果是 (   )。

#include <stdio.h>

int main ( )

{  int k=0,m=0,i,j;

  for (i=0; i<2; i++)

  {   for (j=0; j<3; j++)

      k++ ;

      k-=j ;

  }

  m = i+j ;

  printf(“k=%d,m=%d”,k,m) ;

}

A:k=0,m=5
B:k=1,m=3
C:k=1,m=5
D:k=0,m=3
答案: k=0,m=5

14、

下面程序的输出结果是(   )。

#include <stdio.h>

int main ( )

{  char c=’A’;

  int k=0;

  do

  { switch (c++)

      {case ‘A’: k++; break;

       case ‘B’: k–;

       case ‘C’: k+=2; break;

       case ‘D’: k%=2; continue;

       case ‘E’: k*=10; break;

       default: k/=3;

      }

      k++;

  } while (c<‘G’);

  printf (“k=%d”,k);

}

A:k=3
B:k=0

C:k=4

D:k=2

答案: k=4

15、

下面程序的运行结果是(   )。

#include <stdio.h>

int main()

{  int i;

  for(i=1;i<=5;i++)

{  if(i%2) printf(“*”);

  else    continue;

printf(“#”);

}

  printf(“$n”);

}

A:***$
B:*#*#*$
C:*#*#*#$
D:*#*#$
答案: *#*#*#$

16、

下面程序段的运行结果是 (   )。

int x=3;

do { printf(” %dn”,x -=2);} while(!(–x));

A:是死循环
B:输出的是3和0
C:输出的是 1
D:输出的是1和-2
答案: 输出的是1和-2

17、

下面程序段的运行结果是(   )。

x=y=0;

while(x<15)

y++,x+=++y;

printf(“%d,%d”,y,x);

A:20,7
B:6,12
C:8,20
D:20,8
答案: 20,8

18、

下面程序的功能是将从键盘输入的一对数,由小到大排序输出。当输入一对相等数时结束循环,请选择(   )填空:

#indude <Stdio.h>

int main()

{int a,b,t;

scanf(“%d%d”,&a,&b);

while( 1 )

{if(a>b)

{t=a;a=b;b=t;}

printf(“%d,%d”,a,b);

scahf(“%d%d”,&a,&b);人

}

A:a= =b
B:a!=b
C:!a=b
D:a=b
答案: a!=b

19、
对for(表达式1;;表达式3)可理解为(   )。

A:for(表达式1;1;表达式3)
B:for(表达式1;表达式1;表达式3)
C:for(表达式1;表达式3;表达式3)
D:for(表达式1; 0;表达式3)
答案: for(表达式1;1;表达式3)

20、

若i为整型变量,则以下循环执行次数是(   )。for (i=2;i==0;) printf(“%d”,i– );

A:1 次
B:2次
C:0次
D:无限次
答案: 0次

第六章 单元测试

1、
 在C语言中,引用数组元素时,其数组下标的数据类型允许是(  )。

A: 任何类型的表达式
B: 整型表达式
C: 整型常量
D: 整型常量或整型表达式
答案:  整型常量或整型表达式

2、
 以下程序的输出结果是(  )。

int main( )

{ int a[5]={1,2,3};

printf(“%dn”,a[3]); }

A: 0
B: 1
C: 随机值
D: 3
答案:  0

3、
以下程序的输出结果是(  )。
int main( ){ int i, k,a[10]={1,5,3,4,2,8,9,6,7,0};
 for (i=0,k=0; i<10; i++) if(a[k]<a[i]) k=i; printf(“%d”,k);}

A:8
B:5
C:7
D:6
答案: 6

4、
以下程序的输出结果(  )。
int main( ){int i,j,s=0,a[2][3]={1,2,3,4,5,6};for (i=0; i<2; i++) for (j=0; j<3; j++) s=s+a[i][j];printf(“%d”,s);}

A:21
B:15
C:20
D:10

答案: 21

5、
有以下程序运行后的输出结果是(  )。int main( ){int aa[4][4]={{1,2,3,4},
{5,6,7,8},{3,9,10,2},{4,2,9,6}}; int i,s=0;for(i=0;i<4;i++)s+=aa[i][1];printf(“%d ”,s);}

A:20
B:11

C:19
D:13
答案: 19

6、
数组定义为 int a[3][2]={1,3,4,6,8,10},数组元素(       )的值为6。

A: a[2][2]
B:a[1][1] 
C:a[3][2]
D:a[2][1] 
答案: a[1][1] 

7、
定义 int a[10][11],则数组a有(     )个元素。

A:11
B:110
C:90
D:132
答案: 110

8、
以下不能对二维数组a进行正确初始化的语句是(    ) 。

A:int a[][3]={{1,2},{0}};
B:int a[2][3]={0};
C:int a[2][3]={{1,2},{3,4},{5,6}};
D:int a[][3]={1,2,3,4,5,6};
答案: int a[2][3]={{1,2},{3,4},{5,6}};

9、
若有定义语句:int a[3][5];,按在内存中的存放顺序,a数组的第8个元素是(   )。

A:a[1][4]
B:a[1][2]
C:a[0][4]
D:a[0][3]
答案: a[1][2]

10、
若有定义 int a[10];则对a数组元素的正确应用是 (   )。

A:a(10)
B:a[10.0]
C:a[1+2]
D:a[10]
答案: a[1+2]

11、
以下能对一维数组a进行正确初始化的语句是( )。

A:int a[10]=(0,0,0,0,0)
B: int a[10]=10*1;
C:int a[]={0}; 
D:int a[10]={}
答案: int a[]={0}; 

12、
以下对二维数组a的正确说明是( )。

A:double a[1][4];  
B:floatf a(3,4);  
C:float a(3)(4);
D:int a[3][]; 
答案: double a[1][4];  

13、
若有说明: int a[3][4]={0};则下面正确的叙述是 (   )。

A:数组a中每个元素均可得到初值0 
B:数组a中各元素都可得到初值,但其值不一定为0。
C:只有元素a[0][0]可得到初值0 
D:此说明语句不正确。
答案: 数组a中每个元素均可得到初值0 

14、
若有定义:int s[3][4]={{1,2},{0},{3,4,5}};则s[2][1]的值为(  )。

A:4
B:1
C:0
D:3

答案: 4

15、
若有定义int a[2][3];则合法引用数组元素的是(  )。

A:a[0][1/2] 
B:a[2][3]
C:a[1][3]
D:a[1][2]
答案: a[1][2]

16、
在以下数组定义中,错误的是(  )。

A:int a[][2]={1,2,3,4};
B:int a[2][]={1,2,3,4,5};
C:int a[2][2]={{1,2},{3}}
D:int a[][2]={{0},{1}};
答案: int a[2][]={1,2,3,4,5};

17、

以下程序段执行后p的值是(  )。int a[3][3]={3,2,1,3,2,1,3,2,1}; int j,k,p=1;for(j=0;j<2;j++)for(k=j;k<3;k++)p*=a[j][k];

A:108

B:2
C:18
D:12
答案: 12

18、

以下程序段执行后p的值是(   )。 int a[3][3]={3,2,1,3,2,1,3,2,1}; int j,k,p=1;for(j=0;j<2;j++)for(k=j;k<4;k++)p*=a[j][k];

A:12
B:2
C:18

D:108

答案: 108

19、

以下程序段运行后s的值是(   )。 int a[3][3]={1,2,3,4,5,1,2,3,4};int i,j,s=1;for(i=0;i<3;i++)for(j=i+1;j<3;j++)s+=a[i][j];

A:240
B:7
C:6

D:120
答案: 7

20、

下面程序段的运行结果是(  )。 int m[]={5,8,7,6,9,2},i=1;for(i=0;i<6;i++) {if(i % 2 !=0) m[i]+=10; }for(i=0;i<6;i++) printf("%d ",m[i]);

A:5 18 7 16 9 12
B:15 8 17 6 19 2
C:15 18 17 16 19 12
D:5 8 7 6 9 2
答案: 5 18 7 16 9 12


下方是付费阅读内容:本平台商品均为虚拟商品,无法用作二次销售,不支持退换货,请在购买前确认您需要购买的资料准确无误后再购买,望知悉!

暂无优惠



完整答案需点击上方按钮支付5元购买,所有答案均为章节测试答案,无期末答案。购买后上方矩形框将出现已付费的隐藏内容。



不知道怎么购买?点此查看购买教程!


点关注,不迷路,微信扫一扫下方二维码

关注我们的公众号:阿布查查  随时查看答案,网课轻松过


为了方便下次阅读,建议在浏览器添加书签收藏本网页

电脑浏览器添加/查看书签方法

1.按键盘的ctrl键+D键,收藏本页面

2.下次如何查看收藏的网页?

点击浏览器右上角-【工具】或者【收藏夹】查看收藏的网页


手机浏览器添加/查看书签方法

一、百度APP添加/查看书签方法

1.点击底部五角星收藏本网页

2.下次如何查看收藏的网页?

点击右上角【┇】-再点击【收藏中心】查看

二、其他手机浏览器添加/查看书签方法

1.点击【设置】-【添加书签】收藏本网页

2.下次如何查看收藏的网页?

点击【设置】-【书签/历史】查看收藏的网页

阿布查查 » C语言编程新思路 知到智慧树答案2024 z9403
+
账户
更新
搜索
帮助
主页