知到智慧树 C语言程序设计 答案满分完整版章节测试

塑芒成世讹息掏讲吕笛电比祷




第一章 单元测试

1、

构成c程序的基本单位是函数,有且只有一个主函数

A:对
B:错
答案: 对

2、

c语言一行可以写多条语句

A:对
B:错
答案: 对

3、

不正确的叙述是(  )。

 

A:注释说明只能位于一条语句的后面。
B:C源程序的基本组成单元是函数。
C:C源程序可由一个或多个函数组成。
D:每条语句最后必须有一个分号。
答案: 注释说明只能位于一条语句的后面。

4、

C源程序的调试是指对源程序进行(  )。

 

A:录入与编辑。
B:编译、连接与运行。
C:查错与排错。
D:连接与运行。
答案: 编译、连接与运行。

5、

以下叙述中正确的是(  )。

A:C程序的执行总是从main函数开始的。
B:一对花括号”{}”只能作为函数体的定界符。
C:C源程序编译时注释部分的错误将被发现。
D:构成C源程序的基本单位是函数,所有函数名都可以由用户命名。
答案: C程序的执行总是从main函数开始的。

第二章 单元测试

1、

以下选项中可用作C程序合法实数的是

A:0.1e0
B:3.0e0.2
C:E9
D:9.12E
答案: 0.1e0

2、

以下程序的输出结果是

#include <stdio.h>

main()

{   int x=10,y=10;

printf(“%d %d\n”,x–,–y);     }

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

3、

若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是

A:a=(b=4)=3;
B:a=b=c+1;
C:a=(b=4)+c;
D:a=1+(b=c=4);
答案: a=(b=4)=3;

4、

写出下面程序的运行结果:

#include <stdio.h>

void main( )

{

int x,y,z;

x=y=1;

z=x++,y++,++y;

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

}

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

5、

写出下面程序的运行结果:

#include <stdio.h>

void main( )

{

int a=1,b=0;

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

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

}

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

6、

写出下面程序的运行结果:

         main()

         {  int a,b,c=9;

            a=3,b=4;

            c%= a+b;

            printf(“%d”,c)

            }

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

7、

写出下面程序的运行结果:

#include <stdio.h>

main()

{ int a=4,b,c;

  c=a+(b=2);

  a+=a-=a*a;

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

}

A:4,2,6
B:-8,2,6
C:-12,2,6
D:-24,2,6
答案: -24,2,6

8、

对于int   n=3;执行n+=n-=n*n;后n的值是9。

A:对
B:错
答案: 错

9、

在C语言中8.9e1.2是不正确的实型常量。

A:对
B:错
答案: 对

10、

对任一变量一旦被指定为某一确定类型后,该变量在程序运行时所占存储空间的多少和所能参加的运算类型便已确定了。

A:对
B:错
答案: 对

11、

若x为整型变量、j为实型变量,当执行语句:x=(int)j;后,j也变为整型变量。

A:对
B:错
答案: 错

12、

“!”的优先级可以比“/”高。

A:对
B:错
答案: 对

13、

两个char 型数据相加,其结果为char型。

A:对
B:错
答案: 错

14、

若有 int i=10,j=2;则执行完i*=j+8;后ⅰ的值为28。

A:对
B:错
答案: 错

15、

在C程序中,%是只能用于整数运算的运算符。

A:对
B:错
答案: 对

16、

以下各数均不是合法的八进制数:256、03A2、-0127。

A:对
B:错
答案: 错

17、

C语言程序中,任何英语单词均可以作标识符。

A:对
B:错
答案: 错

18、

若有宏定义:#define  M(x,y,z)  xy+z,则宏引用M(2+3,4+5,6+7)通过宏展开后的表达式应为(2+3)(4+5)+6+7。

A:对
B:错
答案: 错

19、

C语言中不区分大小写英文字母。

A:对
B:错
答案: 错

20、

程序中的变量代表内存中的一个存储单元,它的值不可以随时修改。

A:对
B:错
答案: 错

21、

0x173是正确的十六进制常数。

A:对
B:错
答案: 对

22、

逻辑表达式-5&&!8的值为1。

A:对
B:错
答案: 错

23、

下面程序的输出是__

#include<stdio.h>

int main()

{ int k=11;

  printf(“k=%d,k=%o,k=%x\n”,k,k,k);

  return 1;

}

A:k=11,k=12,k=11
B:k=11,k=13,k=13
C:k=11,k=013,k=0xb
D:k=11,k=13,k=b
答案: k=11,k=13,k=b

24、

在下列选项中,不正确的赋值语句是_.

A:++t;
B:n1=(n2=(n3=0));
C:k=i=j;
D:a=b+c=1;
答案: a=b+c=1;

25、

下面程序的输出的是___.

#include<stdio.h>

void main()

{int x=10,y=3;

 printf(“%d\n”,y=x/y);

}

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

26、

已知字母A的ASCII码为十进制的65,下面程序的输出是___.

#include<stdio.h>

void main()

{char ch1,ch2;

 ch1=’A’+’5′-‘3’;

 ch2=’A’+’6′-‘3’;

 printf(“%d,%c\n”,ch1,ch2);

}

A:67,D
B:B,C
C:C,D
D:不确定的值
答案: 67,D

27、

为表示关系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)

28、

下面程序的输出结果是_.

#include<stdio.h>

void  main()

{

 int a=-1, b=4, k;

 k=(++a<=0)&&(b–<=0);

 printf(“%d,%d,%d\n”,k,a,b);

}

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

29、

若有以下定义和语句:

    int a=010, b=0x10, c=10;

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

则输出结果是__.

A:10,10,10
B:8,16,10
C:8,10,10
D:8,8,10
答案: 8,16,10

30、

已知有double型变量x=2.5,y=4.7,整型变量a=7,

则表达式 x+a%3*(int)(x+y)%2/4 的值是__.

A:2.4
B:2.5
C:2.75
D:0
答案: 2.5

31、

假定w、x、y、z、m均为int型变量,有如下程序段:

  w=1;x=2;y=3;z=4;

   m=(w<x)?w:x;  m=(m<y)?m:y;  m=(m<z)?m:z;

则该程序段执行后,m的值是_.假定w、x、y、z、m均为int型变量,有如下程序段:

  w=1;x=2;y=3;z=4;

   m=(w<x)?w:x;  m=(m<y)?m:y;  m=(m<z)?m:z;

则该程序段执行后,m的值是_.

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

32、

有以下程序,其中k的初值为八进制数

  #include <stdio.h>

  main()

  {int k=011;

  printf(“%d\n”,k++);

  }

程序运行后的输出结果是__

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

33、

有以下程序

  #include  

  #define SUB(a) (a)-(a)

  main()

  { int a=2,b=3,c=5,d;

  d=SUB(a+b)*c;

  printf(“%d\n”,d);

  }

  程序运行后的输出结果是_

A:0
B:-12
C:-20
D:10
答案: -20

34、

有以下定义语句,编译时会出现编译错误的是_

A:char a=’a’;
B:char a=’\n’;
C:char a=’aa’;
D:char a=’\x2d’
答案: char a=’aa’;

35、

以下选项中,不正确的 C 语言浮点型常量是_ 

A:160.
B:0.12
C:2e4.2
D:0.0
答案: 2e4.2

36、

以下选项中,_是不正确的 C 语言字符型常量。

A:’a’
B:’\x41′
C:’\101′
D:”a”
答案: “a”

37、

以下合法的标识符是_

A:int
B:_a12
C:3ce
D:stu#
答案: _a12

38、

已知int  x=023,表达式++x的值是_

A:17
B:18
C:19
D:20
答案: 20

39、

已知int  x=10,表达式x+=x-=x-x的值是_

A:10
B:40
C:30
D:20
答案: 20

40、

在 C 语言中,字符型数据在计算机内存中,以字符的_形式存储。

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

41、

若变量x、i、j和k都是int型变量,则计算下面表达式后,x的值是_

x=(i=4,j=16,k=32)

A:4
B:16
C:32
D:52
答案: 32

42、

下列不正确的转义字符是_

A:’\’
B:’\’ ‘
C:’074′
D:’\0′
答案: ‘074’

43、

知到智慧树 C语言程序设计  答案满分完整版章节测试第1张

A:a/b/ce3
B:3ae/b/c
C:3ae/bc
D:a
e/c/b3
答案: 3
ae/bc

44、

要为字符型变量 a赋初值,下列语句中哪一个是正确的_

A:char a=”3″;
B:char a=‘3’;
C:char a=%;
D:char a=*;
答案: char a=‘3’;

45、

字符串”ABC”在内存占用的字节数是_

A:3
B:4
C:6
D:8
答案: 4

46、

若有说明语句:char c=’\72’;则变量c在内存占用的字节数是_

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

47、

C语言中,要求运算对象只能为整数的运算符是_

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

48、

若已定义 x 和 y为double 类型,则表达式 x=1,y=x+3/2 的值是_

A:1
B:2
C:2.0
D:2.5
答案: 2.0

49、

sizeof (double)的结果值是_

A:8
B:4
C:2
D:出错
答案: 8

50、

以下用户标识符中,合法的是_

A:int
B:nit
C:123
D:a+b
答案: nit

51、

表达式18/4*sqrt(4.0)/8值的数据类型是_

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

第三章 单元测试

1、

有以下程序

#include <stdio.h>

void main()

{

char a,b,c,d;

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

c=getchar( );

d=getchar( );

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

}

当执行程序时,按下列方式输入数据

12↙

34↙

则输出结果是

A:1234 
B:12
C:12 回车 3
D:12 回车34
答案: 12 回车 3

2、

若有定义:int a,b;,通过语句scanf(“%d;%d”,&a,&b);,能把整数3赋给变量a,5赋给变量b的输入数据是

A:3 空格5
B:3,5 
C:3分号5 
D:35
答案: 3分号5 

3、

以下不能输出字符A的语句是(注:字符A的ASCIl码值为65,字符a的ASCIl码值为97)

A:printf(“%c\n”,’a’-32);
B:printf(“%d\n”,’A’);
C:printf(“%c\n”,65);
D:printf(“%c\n”,’B’-1);
答案: printf(“%d\n”,’A’);

4、

已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,以下不能将变量c中的大写字母转换为小写字母的语句是

A:c=(c-‘A’)%26+’a’;
B:c=c+32; 
C:c=c-‘A’+’a’;
D:c=(‘A’+c)%26-‘a’;
答案: c=(‘A’+c)%26-‘a’;

5、

在C语言中,每个语句和数据定义是用______ 结束

 

A:句号
B:逗号
C:分号
D:括号
答案: 分号

6、

“putchar(70); ” 这一C语句输出的结果为( )

A:70
B:F
C:提示语法错误
D:C
答案: F

7、

C 语言标准格式输入函数 scanf() 的参数表中要使用变量的地址值。

A:对
B:错
答案: 对

8、

表达式语句和表达式没有什么区别。

A:对
B:错
答案: 错

9、

C 语言标准输入操作中 ,gets() 函数一次只可读取一个字符。

A:对
B:错
答案: 错

10、

C 语言程序中可以有多个函数 , 但只能有一个主函数。

A:对
B:错
答案: 对

11、

C 语言标准输出操作中 ,putchar() 函数可以输出显示一个字符串。

A:对
B:错
答案: 错

12、

C 语言标准格式输出函数 printf() 的参数表是由若干个表达式组成。

A:对
B:错
答案: 对

13、

C 语言标准输入操作中 ,gets() 函数一次只可读取一个字符。

A:对
B:错
答案: 错

14、

以下叙述中正确的是

A:用C程序实现的算法必须要有输入和输出操作
B:用C程序实现的算法可以没有输出但必须要有输入
C:用C程序实现的算法可以没有输入但必须要有输出
D:用C程序实现的算法可以既没有输入也没有输出
答案: 用C程序实现的算法可以没有输入但必须要有输出

15、

在C语言中,执行下面两个语句后,输出的结果为(    )。 

char c1=97, c2=98;printf(“%d %c”,c1,c2);

A:97  98
B:97  b
C:a  98
D:a  b
答案: 97  b

16、

下列语句中符合C语言语法的赋值语句是

A:a=7+b+c=a+7;
B:a=7+b++=a+7;
C:a=7+b,b++,a+7
D:a=7+b,c=a+7;
答案: a=7+b,c=a+7;

17、

在C语言语言中,退格符是 (     )

A:\n
B:\t
C:\f
D:\b
答案: \b

18、

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

A:整型变量表达式值
B:实型变量值
C:字符串
D:字符或字符型变量值
答案: 字符或字符型变量值

19、

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

A:++t
B:;
C:k=i=j;
D:{a/=b=1;b=a%2;}
答案: ++t

20、

有定义语句:int a=5,b,不能给b赋2的赋值语句是(   )。

A:b=a/2;
B:b=b+2;
C:b=2%a;
D:b=5;b=2;
答案: b=b+2;

21、

已有定义int a=-2;和输出语句printf(“%8lx”,a);以下正确的叙述是(   )。

A:整型变量的输出形式只有%d一种
B:%x是格式符的一种,它可以适用于任何一种类型的数据
C:%x是格式符的一种,其变量的值按十六进制输出,但%8lx是错误的
D:%8lx不是错误的格式符,其中数字8规定了输出字段的宽度
答案: %x是格式符的一种,其变量的值按十六进制输出,但%8lx是错误的

22、

以下语句的输出结果是 (   )。

  printf(“%d\n”,strlen(“\t\”\065\xff\n”));

A:5
B:14
C:8
D:输出项不合法,无法正常输出
答案: 5

23、

若变量已正确说明为float型,要通过语句scanf(“%f%f%f”,&a,&b,&c);给a赋予10.0,b赋予22.0,c赋予33.0,下列不正确的输入形式是(   )。

A:10<回车>22<回车>33<回车>
B:10.0,22.0,33.0<回车>
C:10.0<回车>22.0  33.0<回车>
D:10   22<回车>33<回车>
答案: 10.0,22.0,33.0<回车>

24、

使用scanf(“a=%d,b=%d”,&a,&b)为变量a,b赋值。要使a,b均为50,正确的输入是(   )。

A:a=50  b=50
B:50  50
C:a=50,b=50
D:50,50
答案: a=50,b=50

25、

调用getchar和putchar函数时,必须包含的头文件是(   )。

A:stdio.h
B:stdlib.h
C:define
D:以上都不对
答案: stdio.h

26、

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

A:调用printf函数时,必须要有输出项
B:使用putchar函数时,必须在之前包含头文件stdio.h
C:在C语言中,整数可以以十进制、八进制或十六进制的形式输出
D:使用putchar函数可以不要输出项
答案: 调用printf函数时,必须要有输出项

27、

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

A:整型变量表达式值
B:实型变量值
C:字符串
D:字符或字符型变量
答案: 字符或字符型变量

28、

用getchar()函数可以从键盘读入一个(   )。

A:整型变量表达式值
B:实型变量值
C:字符串
D:字符或字符型变量
答案: 字符或字符型变量

第四章 单元测试

1、

以下程序段的输出结果是                 

main()

{     int   i=1,j=1,k=2;

       if((j++||k++)&&i++) printf(“%d,%d,%d\n”,i,j,k);

}

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

2、

当c的值不为0时,能正确将c的值赋给变量a,b的是

A:c=b=a
B:(a=c)&&(b=c)
C:(a=c)||(b=c)
D:a=c=b
答案: (a=c)&&(b=c)

3、

以下程序的运行结果是     

main()

{  int  a=010, b=10;

   printf(“%d,%d\n” , ++a, b--);

  }

A:11, 10
B:9, 10   
C: 011, 10 
D: 011, 9
答案: 9, 10   

4、

已知int n,i=1,j=2;执行语句n=i<j?i++:j++;则i和j的值是

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

5、

#include <stdio.h>

 void main()

 { int x=1,y=0;

 if(!x) y++;

 else if(x==0)

     if (x) y+=2;

     else y+=3;

  printf(“%d\n”,y);  }

  程序运行后的输出结果是

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

6、

#include <stdio.h>

main()

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

  switch(x)

  {case 1:   switch(y)

                 {case 0:a++;break;

                  case1:b++;break;}

  case 2:a++;b++;break;

  case 3:a++;b++;break;

  default:a++;b++;}

printf(“\na=%d,b=%d”,a,b);}

A.a=1,b=0 B.a=2,b=1  C.a=1,b=1  D.a=2,b=2

以上程序的输出是 

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

7、

下面程序的输出结果是:

#include<stdio.h>

void main()

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

  if(a<b)

     if(b<0)  c=0;

      else  c+=1;

   printf(“%d”, c);

   }

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

8、

下程序功能是:将值为三位正整数的变量x中的数值按照个位、十位、百位的顺序拆分并输出,请填空。

#include<stdio.h>

void main()

{int x=256;

 printf(“%d-%d-%d”,_,x/10%10,x/100);}

A:x/10
B:x%10
C:x/10%10
D:x/100%10
答案: x%10

9、

有以下程序

  #include <stdio.h>

  void main()

  { int x;

  scanf(“%d”,&x);

  if(x>15) printf(“%d”,x-5);

  if(x>10) printf(“%d”,x);

  if(x>5) printf(“%d “,x+5);

  }

若程序运行时从键盘输入12<回车>,则输出结果为___

A:12
B:17
C:12 17
D:7
答案: 12 17

10、

有以下程序(说明:字符0的ASCII码值为48)

#include <stdio.h>

main()

{char c1,c2;

 scanf(“%d”,&c1);

 c2=c1+9;

 printf(“%c%c “,c1,c2);

}

若程序运行时从键盘输入48<回车>,则输出结果为___

A:09
B:0
C:9
D:’0′ ‘9’
答案: 09

11、

在C语言中,设有如下定义:   int  a=1,b=2,c=3,d=4,m=2,n=2;  则执行表达式:(m=a>b)&&(n=c>d)后,n的值为(   )。

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

12、

设有如下定义: int  a=2,b; 则执行b=a&&1;语句后,b的结果是(   )。

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

13、

设a=3,b=4,c=5,则表达式 !(a>b)&&!c||1的结果是(   )。

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

14、

能正确表示a 和 b同时为正或同时为负的逻辑表达式是(   )。

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:ab>0
答案: a
b>0

15、

以下程序段的输出结果是(   )。 
int a=10,b=50,c=30;
if(a>b)
a=b;
b=c;
c=a;
printf(“a=%d b=%d c=%d\n”,a,b,c);

A:a=10 b=50 c=10
B:a=10 b=30 c=10
C:a=50 b=30 c=10
D:a=50 b=30 c=50
答案: a=10 b=30 c=10

16、

有如下程序 
int main( ) 
{ float x=2.0,y; 
  if(x<0) y=0.0; 
  else if(x<10.0) y=1.0/x; 
  else y=1.0; 
  printf(“%f\n”,y);

  return 0;

该程序的输出结果是( )。

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

17、

若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为( )。

A:a<>0
B:!a
C:a=0
D:a
答案: a

18、

有如下程序段:
int x =1, y=1 ;
int m , n;
m=n=1;
switch (m)
{ case 0 : x=x2;
  case 1:

 

  {
  switch (n)
{ case 1 : x=x
2;
 case 2 : y=y2;break;
 case 3 : x++;
}
  }
case 2 : x++;y++;
case 3 : x
=2;y*=2;break;
default:x++;y++;
}
执行完成后,x和y 的值分别为( )。

A:x=6 y=6
B:x=2 y=1
C:x=2 y=2
D:x=7 y=7
答案: x=6 y=6

19、

以下程序的输出结果是( )
int main()
{ int 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;
 printf(“x=%d”,x);

 return 0;
}

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

20、

在C语言中,设x=1, y=2, 执行表达式 (x>y)?x++:++y以后x和y的值分别为(  )。

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

21、

以下程序段,运行后的输出结果是( )。

char m=’b’;

if(m++>’b’)  printf(“%c\n”,m);

else printf(“%c\n”,m–);

A:a
B:b
C:c
D:d
答案: c

22、

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

int a=13,b=21,m=0;

switch(a%3)

{

case 0:m++;break;

case 1:m++;

switch(b%2)

{

default:m++;

case 0:m++;break;

}

}

printf(“%d”,m);

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

第五章 单元测试

1、

下述for循环语句__
int i,k;
for (i=0,k=-1;k=1;i++,k++)  printf(“***”);

A:判断循环语句结束的条件非法
B:是无限循环
C:只循环一次
D:一次也不循环
答案: 是无限循环

2、

#include <stdio.h>

main( )
{ int x=0,y=5,z=3;
while(z–>0&&++x<5) y=y-1;
printf(“%d,%d,%d\n”,x,y,z);
} 程序执行后的输出结果是

A:3,2,0
B:3,2,-1
C:4,3,-1
D:5,-2,-5
答案: 3,2,-1

3、

有以下程序
main( )
{ int i,s=0;
for(i=1;i<10;i+=2) s+=i+1;
printf(“%d\n”,s);
} 程序执行后的输出结果是

A:自然数1~9的累加和
B:自然数1~10的累加和
C:自然数1~9中的奇数之和
D:自然数1~10中的偶数之和
答案: 自然数1~10中的偶数之和

4、

以下程序执行后的输出结果是()
main( )
{ int i,n=0;
for(i=2;i<5;i++)
{ do
{ if(i%3) continue;
n++;}
while(!i);
n++;}
printf(“n=%d\n”,n);} 

A:n=5
B:n=2
C:n=3
D:n=4
答案: n=4

5、

程序运行后的输出结果是

#include<stdio.h>

main()

{ int i,j,m=2;

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

  {for(j=3;j>0;j–) 

           {if(i+j>3) break;

            m=ij;} }

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

A:m=6
B:m=2
C:m=4
D:m=5
答案: m=2

6、

以下程序运行后的输出结果是

#include<stdio.h>

main()

{int a=1,b=2;

 for(;a<8;a++) { b+=a;a+=2;}

printf(“%d,%d\n”,a,b);}

A:9,18
B:8,11
C:7,11
D:10,14
答案: 10,14

7、

以下程序运行后的输出结果是
main()
{   int c=0,k;
for(k=1;k<3;k++)
switch(k)
{ default:c+=k;
case 2:c++;break;
case 4:c+=2;break; }
printf(“%d\n”,c);}

A:3
B:5
C:7
D:9
答案: 3

8、

以下程序的运行结果是
#include <stdio.h>
main()
{ int x=8;
for( ; x>0; x–)
{ if(x%3)   {printf(“%d,”,x–);

                        continue;}
printf(“%d,”,–x); } }

A:7,4,2
B:8,7,5,2
C:9,7,6,4
D:8,5,4,2
答案: 8,5,4,2

9、

下述程序的输出结果

#include<stdio.h>

main()

{int y=10;

 while(y–);

 printf(“y=%d”,y);} 

A:y=0
B:y=1
C:y=随机值
D:y=-1
答案: y=-1

10、

下面的程序 的结果是:

main()

{ int x=3;

do

   {printf(“%d\n”,x-=2);}

while(!(–x));}

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

11、

下述for语句

int i,x;

for (i=0,x=1;i<=9&&x!=876;i++)

 scanf(%d”,&x);

A:最多循环10次
B:最多循环9次
C:无限循环
D:一次也不循环
答案: 最多循环10次

12、

有以下程序

  #include <stdio.h>

main()

{int s;

scanf(“%d”,&s);

while(s>0)

{ switch(s)

{ case 1:printf(“%d”,s+5);

 case 2:printf(“%d”,s+4); break;

 case 3:printf(“%d”,s+3);

 default:printf(“%d”,s+1);break;

}

scanf(“%d”,&s);

}

}

  运行时,若输入1 2 3 4 5 0<回车>,则输出结果是

A:

6566456

B:66656
C:66666 
D:666656 
答案:

6566456

13、

下面程序段的输出结果是______.

  x=3;

   do { y=x–;

        if (!y) {printf(““);continue;}

 

        printf(“#”);

      } while(x=2);


A:##
B:##

C:死循环
D:输出错误信息
答案: 死循环

14、

下面程序的输出结果是_.

 #include<stdio.h>

 void  main( )

  { int n=4;

    while (n–) printf(“%d “,n–);

  }

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

15、

以下程序运行后的输出结果是__.

 #include<stdio.h>

 void main()

  { int i=10,j=0;

    do

    { j=j+1;  i–;

    }while(i>2);

    printf(“%d\n”,j);

  }

A:50
B:52
C:51
D:8
答案: 8

16、

下面程序的输出结果是__.

  main( )

  {

    int i,k=0, a=0, b=0;

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

{

 k++;

      if (k%2==0) {a=a+k; continue;}

      b=b+k;

      a=a+k;

    }

    printf(“k=%d a=%d b=%d\n”,k,a,b);

  }

A:k=5 a=10 b=4
B:k=3 a=6 b=4
C:k=4 a=10 b=3
D:k=4 a=10 b=4
答案: k=4 a=10 b=4

17、

下面程序的输出结果是_.

  #include<stdio.h>

  void main( )

  {int y=9;

   for(;y>0;y–)

    {if(y%3==0)

      {printf(“%d”,–y);

        continue;}

     }

  }

A:741
B:852
C:963
D:875421
答案: 852

18、

有以下程序

#include<stdio.h>

main()

{

int i,j,m=1;

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

{for(j=3;j>0;j–)

  {if(ij>3) break;

 

   m=ij;

  }

}

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

}程序运行后的输出结果是_.

A:m=1
B:m=2
C:m=4
D:m=5
答案: m=1

19、

有以下程序

 #include <stdio.h>

 main()

 { int c=0,k;

   for (k=1;k<3;k++)

   switch (k)

   { default: c+=k;

 case 2: c++;break;

 case 4: c+=2;break;

   }

   printf(“%d\n”,c);

 }

 程序运行后的输出结果是_

A:3
B:5
C:7
D:9
答案: 3

20、

for(i=1;i<9;i+=1);该循环共执行了_次。

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

21、

int a=2;while(a=0) a–;该循环共执行了_次。

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

22、

执行完循环 for(i=1;i<100;i++);后,i 的值为_

A:99
B:100
C:101
D:102
答案: 100

23、

以下 for语句中,书写错误的是_

A:for(i=1;i<5;i++)
B:i=1;for(;i<5;i++);
C:for(i=1;i<5;i++);
D:for(i=1;i<5;) i++;
答案: for(i=1;i<5;i++)

24、

 _语句,在循环条件初次判断为假,还会执行一次循环体。

A:for
B:while
C:do-while
D:以上都不是
答案: do-while

25、

有以下程序段,其运行结果是_

int i=5;

do{

if(i%3==1)

if(i%5==2)

{printf(“%d”,i);

 

break;}

i++;

}while(i!=0);


A:
26
B:
7
C:5
D:
35
答案:
7

26、

i、j已定义为 int 类型,则以下程序段中内循环体的执行次数是_

for(i=5;i;i–)  

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

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

27、

以下不构成无限循环的语句或语句组是_

A:n=10;  while(n);{n–;}
B:n=0;  while(1){n++;}
C:n=0;  do{++n;}while(n<=0);
D:for(n=0,i=1;;i++)n+=i;
答案: n=10;  while(n);{n–;}

28、

有以下程序段,其运行结果是_

Int  y=9;

for(;y>0;y–)

if(y%3==0)  printf(“%d”,–y);

A:875421
B:963
C:852
D:741
答案: 852

29、

有以下程序段,其运行结果是_

int i,j;

for(i=3;i>=1;i–)

{for(j=1;j<=2;j++)

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

printf(“\n”);}

A:2  3  4

3  4  5

B:4  3  2

5  4  3

C:2  3

3  4

4  5

D:4  5

3  4

2  3

答案: 4  5

3  4

2  3

第六章 单元测试

1、

若有以下说明:

 int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};

 char c=’a’,d,g;

则数值为4的表达式是

A:a[g-c] 
B:a[4]
C:a[‘d’-‘c’]   
D:a[‘d’-c]
答案: a[‘d’-c]

2、

以下程序运行后的输出结果是

#include<stdio.h>

main()

{int a[5]={1,2,3,4,5},b[5]={0,2,1,3,0},i,s=0;

for(i=1;i<3;i++) s=s+a[b[i]];

printf(“%d\n”,s);}

A:6
B:10
C:11
D:5
答案: 5

3、

#include<stdio.h>

main()

{int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;

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

  for(j=1;j<=1;j++) t+=b[i][b[j][i]];

 printf(“%d\n”,t);}

程序运行后的输出结果是

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

4、

若有以下定义和语句

char s1[10]=”abcd!”,s2[10]=”\n123\”;

printf(“%d,%d”,strlen(s1),strlen(s2));

则输出结果是

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

5、

#include  <stdio.h> 
main()
{  char s[]={“012xy”};

        int i,n=0;
  for(i=0;s[i]!=0;i++)
     if(s[i]>’a’&&s[i]<=’z’) n++;
  printf(“%d\n”,n); }
程序运行后的输出结果是

A:0
B:2
C:3
D:5
答案: 2

6、

以下程序的运行结果是
#include <stdio.h>
main()
{ int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;
for(i=0;i<12;i++) c[s[i]]++;
for(i=1;i<5;i++) printf(“%d”,c[i]);
printf(“\n”); }

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

7、

有以下程序

  #include <stdio.h>

  main()

  { char s[]=”012xy\08s34f4w2″;

  int i,n=0;

  for(i=0;s[i]!=0;i++)

  if(s[i]>=’0’&&s[i]<=’9′) n++;

  printf(“%d\n”,n);

  }

  程序运行后的输出结果是

A:0
B:3
C:7
D:8
答案: 3

8、

#include<stdio.h>

main()

{int i,j,a[][3]={1,2,3,4,5,6,7,8,9};

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

for(j=1;j<3;j++) printf(“%d”,a[i][j]);

printf(“ ”);}

程序运行后的输出结果是

A:5689
B:5678
C:1234
D:4567
答案: 5689

9、

#include<stdio.h>

main()

{int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};

 int b[3]={0},i;

 for(i=1;i<3;i++) b[i]=a[i][2]+a[2][i];

for(i=1;i<3;i++)printf(“%d”,b[i]);

printf(“ ”);}

程序运行后的输出结果是

A:14
B:1418
C:1428
D:18
答案: 1418

10、

以下程序用以删除字符串中所有空格,横线处需要填哪条语句

#include<stdio.h>

main()

{char[100]={“Our teacher teach c language!”};

int i,j;

for(i=j=0;s[i]!=‘’;i++)

  if(s[i]!=‘ ’) {s[j]=s[i];j++;}

s[j]=______;

printf(“%s ”,s); }

A:\0
B:’0′
C:” “
D:48
答案: \0

11、

C 语言中 , 字符串常量存放在字符数组中要有一个结束符 , 该结束符是0 。

A:对
B:错
答案: 错

12、

C语言允许用字符串的方式对数组作初始化赋值。

A:对
B:错
答案: 对

13、

在对数组全部元素赋初值时,不可以省略行数,但能省略列数

A:对
B:错
答案: 错

14、

对二维数组的正确说明是

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

15、

以下关于数组的描述正确的是

A:数组的大小是固定的,但可以有不同的类型的数组元素;
B:数组的大小是可变的,但所有数组元素的类型必须相同;
C:数组的大小是固定的,但所有数组元素的类型必须相同;
D:数组的大小是可变的,但可以有不同的类型的数组元素;
答案: 数组的大小是固定的,但所有数组元素的类型必须相同;

16、

在定义int a[10];之后,对a的引用正确的是

A:a[9] 
B:a[6.3]
C:a(6)
D:a[10]
答案: a[9] 

17、

以下对一维数组a进行不正确初始化的是

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

18、

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

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

19、

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

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

20、

对以下说明语句,理解正确的是(  )。

    int a[10]={6,7,8,9,10};

A:将5个初值依次赋给a[1]到a[5]
B:将5个初值依次赋给a[0]到a[4]
C:将5个初值依次赋给a[6]到a[10]
D:因为数组长度与初值的个数不相同,所以此语句不正确
答案: 将5个初值依次赋给a[0]到a[4]

21、

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

A:数组a的每个元素都可得到初值0
B:二维数组a的第一维大小为1
C:当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小
D:只有元素a[0][0]和a[0][1]可得到初值,其余元素均得不到确定的初值
答案: 数组a的每个元素都可得到初值0

22、

若有说明int a[3][4];则a数组元素的非法引用是( )。

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

23、

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

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

24、

设有数组定义:char arr[]=”China”;则数组arr所占空间为( )。

A:4个字节
B:5个字节
C:6个字节
D:7个字节
答案: 6个字节

25、

若有以下语句,则正确的描述是()。

   char a[]=”toyou”;

   char b[]={‘t’,’o’,’y’,’o’,’u’};

A:a数组和b数组的长度相同
B:a数组长度小于b数组长度
C:a数组长度大于b数组长度
D:a数组等价于b数组
答案: a数组长度大于b数组长度

26、

下面叙述正确的是(   )。

A:两个字符串所包含的字符个数相同时,才能比较字符串
B:字符个数多的字符串比字符个数少的字符串大
C:字符串”STOP ”与”STOP”相等
D:字符串”That”小于字符串”The”
答案: 字符串”That”小于字符串”The”

27、

在定义int a[5][4];之后,对数组元素的引用正确的是

A:a[2][4]
B:a[5][0]
C:a[0][0]
D:a[0,0]
答案: a[0][0]

28、

在执行int a[][3]={1,2,3,4,5,6};语句后,a[1][0]的值是

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

29、

在定义int a[3][4][2];后,第10个元素是( )

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

30、

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

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

31、

有字符数组a[80],b[80],则正确的输出语句是

A:puts(a,b);
B:printf(“%s,%s”,a[],b[]);
C:putchar(a,b);
D:puts(a);puts(b);
答案: puts(a);puts(b);

32、

以下不能正确进行字符串赋初值的语句是

A:char str[5]=”good!”;
B:char str[]=”good!”;
C:char *str=”good!”;
D:char str[5]={”g”,”o”,”o”,”d”};
答案: char str[5]=”good!”;

33、

已有定义:char a[]=”xyz”,b[]={”x”,”y”,”z”};,以下叙述中正确的是 ( )。

A:数组a和b的长度相同
B:a数组长度小于b数组长度
C:a数组长度大于b数组长度
D:上述说法都不对
答案: a数组长度大于b数组长度

34、

在C语言中,能实现字符串连接的函数是(   )

A:strcat()
B:strcmp()
C:strcpy() 
D:strlen()
答案: strcat()

35、

在C语言中,有:char str[]=”abcd”; printf(%d\n”,strlen(str)); 上面程序片段的输出结果是(   )

A:3
B:4
C:6
D:12
答案: 4

36、

在C语言中,不能把字符串 “Hello!” 赋给数组b的语句是(   )。

A:char b[10]={”H”,”e”,”l”,”l”,”o”,”!”};
B:char b[10];b=”Hello!”;
C:char b[10];strcpy(b,”Hello!”);
D:char b[10]=”Hello!”;
答案: char b[10];b=”Hello!”;

37、

函数调用:strcat(strcpy(str1,str2),str3)的功能是

A:将串str1复制到串str2中后再连接到串str3之后
B:将串str1连接到串str2之后再复制到串str3之后
C:将串str2复制到串str1中后再将串str3连接到串str1之后
D:将串str2连接到串str1之后再将串str1复制到串str3中
答案: 将串str2复制到串str1中后再将串str3连接到串str1之后

38、

不能把字符串:Hello!赋给数组b的语句是

A:char b[10]={‘H’,’e’,’l’,’l’,’o’,’!’,0};
B:char b[10];b=”Hello!”;
C:char b[10];strcpy(b,”Hello!”);
D:char b[10]=”Hello!”;
答案: char b[10];b=”Hello!”;


上方为免费预览版答案,如需购买完整答案,请点击下方红字

点击这里,购买完整版答案


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

添加书签方法:

1.电脑按键盘的Ctrl键+D键即可收藏本网页

2.手机浏览器可以添加书签收藏本网页

知到智慧树 C语言程序设计  答案满分完整版章节测试第2张

知到智慧树 C语言程序设计  答案满分完整版章节测试第3张


我们的公众号

打开手机微信,扫一扫下方二维码,关注微信公众号:萌面人APP

本公众号可查看各种网课答案,还可免费查看大学教材答案

点击这里,可查看公众号功能介绍

知到智慧树 C语言程序设计  答案满分完整版章节测试第4张


 

骂拣横守唤肋痹蓬宿皑前猜夕