C语言程序设计(西华大学) 知到智慧树答案2024 z25099


第一章 单元测试

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

A:C语言的子程序有过程和函数两种
B:C语言编译时不检查语法
C:C语言的函数可以嵌套定义
D:C语言所有函数都是外部函数
答案: C语言的子程序有过程和函数两种

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

A:C语言中的函数不可以单独进行编译
B:C语言中的每条可执行语句最终都将被转换成二进制的机器指令
C:C源程序经编译形成的二进制代码可以直接运行
D:C语言的源程序不必通过编译就可以直接运行
答案: C语言中的每条可执行语句最终都将被转换成二进制的机器指令

3、
C语言的注释定界符是()。

A:\* *\
B:{ }
C:[ ]
D:/* */
答案: /* */

4、
C语言源程序的基本单位是()。

A:子程序
B:过程
C:函数
D:标识符
答案: 函数

5、
一个算法应该具有“确定性”等五个特性,下面对另外4个特性的描述中错误的是( )

A:可行性
B:有穷性
C:有零个或多个输出
D:有零个或多个输入
答案: 有零个或多个输出

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

A:C语言可以不用编译就能被计算机识别执行
B:C语言出现的最晚,具有其他语言的一切优点
C:C语言比其他语言高级
D:C语言以接近英语国家的自然语言和数学语言作为语言的表达形式
答案: C语言以接近英语国家的自然语言和数学语言作为语言的表达形式

7、
有一个命名为C001.C的C语言源程序,当正常执行后,在当前目录下不存在的文件是

A:C001.OBJ
B:C001.C
C:C001.EXE
D:C001.DAT
答案: C001.DAT

8、
能将高级语言编写的源程序转换为目标程序的是()。

A:编辑程序
B:解释程序
C:链接程序
D:编译程序
答案: 编译程序

9、
结构化程序由三种基本结构组成, 由这三种基本结构组成的算法( )。

A:只能完成一些简单的任务
B:只能完成部分复杂的任务
C:可以完成任何复杂的任务
D:能完成符合结构化的任务
答案: 能完成符合结构化的任务

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

A:C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
B:C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件
C:用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中
D:C语言源程序经编译后生成后缀为.obj的目标程序
答案: C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令

11、
C语言程序将从源程序中第一个函数开始执行

A:对
B:错
答案: 错

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

A:对
B:错
答案: 对

13、
在C 语言中,程序的模块化是利用函数实现的

A:对
B:错
答案: 对

14、
结构化程序设计中由三种基本结构构成的程序只能解决小规模的问题

A:对
B:错
答案: 错

15、
所有C程序都需要编译链接无误后才能进行

A:对
B:错
答案: 对

16、
C程序在运行过程中所有计算都以十进制方式进行

A:对
B:错
答案: 错

17、
C 语言具有简洁明了的特点。

A:对
B:错
答案: 对

18、
C 语言是一种具有某些低级语言特征的高级语言。

A:对
B:错
答案: 对

19、
C语言的书写格式不会影响程序的可读性。

A:对
B:错
答案: 错

第二章 单元测试

1、
以下语句中,不能实现回车换行的是()。

A:fprintf(stdout,”\n”)
B:fwrite(“\n”,1,1,stdout);
C:printf(“\n”);
D:putchar(“\n”);
答案: putchar(“\n”);

2、
以下标识符中,不能作为合法的C用户定义标识符的是()。

A:signed
B:_if
C:to
D:answer
答案: signed

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

A:_123 temp int
B:A P_0 do
C:float la0 _A
D:b-a goto int
答案: b-a goto int

4、
执行以下程序段后,输出结果和a的值是()。
int a=10; printf(“%d”,a++);

A:11和10
B:11和11
C:10和11
D:10和10
答案: 10和11

5、
下列字符序列中,是C语言保留字的是()。

A:include
B:sizeof
C:sqrt
D:scanf
答案: sizeof

6、
以下数据中,不正确的数值或字符常量是()。

A:0
B:o13
C:5L
D:9861
答案: o13

7、
若整型变量a与i已正确定义,且i已正确赋值,合法的语句是()。

A:a=a++=5;
B:++i;
C:a==1
D:a++=i;
答案: ++i;

8、
下列变量说明语句中,正确的是()。

A:char a;b;c;
B:int x,z;
C:char:a b c;
D:int x;z;
答案: int x,z;

9、
设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值( )。

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

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

A:对
B:错
答案: 对

11、
C 语言规定 : 定义符号常量时必须用大写字母。

A:对
B:错
答案: 错

12、
double 型变量在内存中占的字节数比 int 型变量在内存中占的字节数多。

A:对
B:错
答案: 对

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

A:对
B:错
答案: 错

14、
下划线是标识符中的合法字符。

A:对
B:错
答案: 对

15、
变量的类型通常指存储类型和数据类型两种。

A:对
B:错
答案: 对

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

A:对
B:错
答案: 错

17、
一个变量的数据类型被强制转换后,它将保持被强制转换后的数据类型。

A:对
B:错
答案: 错

18、
任何表达式语句都是表达式加分号组成的。

A:对
B:错
答案: 对

第三章 单元测试

1、
下列( )表达式的值为真,其中a=5;b=8;c=10;d=0

A:a*2>8+2
B:(a*2-c)||d
C:a-b<c*d< span=””>
D:a&&d
答案: a-b<c*d< span=””></c*d<></c*d<>

2、
在C语言中,要求运算数必须是整型或字符型的运算符是()。

A:||
B:&
C:&&
D:!
答案: &

3、
如果int a=2,b=3,c=0,下列描述正确的是( )

A:a||(b=c)执行后b的值为0
B:a>b!=c和a>(b!=c)的执行顺序是一样的
C:a&&b>c的结果为假
D:!a!=(b!=c)表达式的值为1
答案: !a!=(b!=c)表达式的值为1

4、
void 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”,a,b);}该程序的输出结果是(    )

A:

2,2

B:

2,1

C:

1,1

D:

1,0

答案:

2,1

5、
以下程序的运行结果是(  )。
void main()
  { int a=2, b= -1, c=2 ;
    if(a<b)
       if(b<0) c=0;
else  c+=1;
    printf(“%d”, c );
   }

A:

0

B:

2

C:

1

D:

3

答案:

2

6、
设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是( )。

A:if(a>b) c=a,a=b,b=c;
B:if(a>b) {c=a,a=b,b=c;}
C:if(a>b) c=a;a=b;b=c;
D:if(a>b) {c=a;a=b;b=c;}
答案: if(a>b) c=a;a=b;b=c;

7、
有以下程序 #include<stdio.h> void 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、
与语句:k=a>b?(b>c?1:0):0;功能相同的是( )。

A:if((a>b)&&(b>c)) k=1;
else k=0;
B:if((a>b)||(b>c) k=1;
else k=0;
C:if(a<=b) k=0;
else if(b<=c) k=1;
D:if(a>b) k=1;
else if(b>c) k=1;
else k=0;
答案: if((a>b)&&(b>c)) k=1;
else k=0;

9、
若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是( )。

A:1
B:0
C:2
D:不知道a的值,不能确定
答案: 1

10、
一个结构化程序必须同时由顺序、分支、循环三种结构组成

A:对
B:错
答案: 对

11、
逻辑表达式的值只能为1或0。

A:对
B:错
答案: 对

12、
有条件表达式:(EXP)?i++;j–,中(EXP)与EXP==1是等价的

A:对
B:错
答案: 错

13、
正确表达某个人的年龄age在10~20岁之间(不含边界)的C语言表达式是 10<age<20< span=””>

A:对
B:错
答案: 错</age<20<>

14、
在if语句的三种形式中,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。

A:对
B:错
答案: 对

15、
在switch语句中,每一个的case常量表达式的值可以相同。

A:对
B:错
答案: 错

16、
case语句后如没有break,顺序向下执行。

A:对
B:错
答案: 对

17、
C语言表达式’0’<=c<=’9’可以判断c中的字符是否为数字字符

A:对
B:错
答案: 错

18、
条件表达式不能取代一般if的语句。

A:对
B:错
答案: 错

19、
if(a=5) 是允许的。

A:对
B:错
答案: 对

第四章 单元测试

1、
C语言中while和do-while循环的主要区别是( )。

A:do-while的循环体至少无条件执行一次
B:While的循环控制条件比do-while的循环控制条件严格
C:do-while循环体不能是复合语句
D:do-while允许从外部转到循环体内
答案: do-while的循环体至少无条件执行一次

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

A:for(i=10; ; i++ ) sum+=i;
B:while(1) {x++;}
C:for(; (c=getchar())!=’\n’;) printf(“%c”, c);
D:for(;; x+= i);
答案: for(; (c=getchar())!=’\n’;) printf(“%c”, c);

3、
以下程序段的输出结果是(  )。
int i, j, m=0;
for(i=1; i<=15; i+=4)
  for(j=3; j<=19; j+= 4)
    m++;
printf(“%d”, m);

A:

15

B:

12

C:

20

D:

25

答案:

20

4、
有以下程序:#include<stdio.h>void main(){ int y=9; for(  ; y>0; y--) if(y%3==0)  printf(“%d”, --y);}程序的运行结果是(  )。

A:

852

B:

963

C:

741

D:

875421

答案:

852

5、
有以下程序:#include<stdio.h>void main() { int i,j,m=1;  for(i=1;i<3;i++)  { for(j=3;j>0;j-- )    {if(i*j>3)  break;    m*=i*j;    }  }  printf(“m=%d\n”,m);  }程序运行后的输出结果是(  )。

A:

m=4

B:

m=2

C:

m=6

D:

m=5

答案:

m=6

6、
有以下程序 #include<stdio.h>void main() { int y=10;   while(y–);  printf(“y=%d\n”,y); } 程序执行后的输出结果是 (   )。 

A:

y=0

B:

y=-1

C:

y=1

D:

while 构成无限循环

答案:

y=-1

7、
有以下程序 #include<stdio.h> void main() {int n=2,k=0;  while(k++ && n++>2);  printf(“%d %d\n”,k,n);} 程序运行后的输出结果是(   )。

A:

0 2

B:

1 3

C:

5 7

D:

1 2

答案:

1 2

8、
以下程序中的变量已正确定义for(i=0;i<4;i++,j++)  for(k=1;k<3;k++);  printf(”*”);程序段的输出结果是(   )。

A:

********

B:

****

C:

**

D:

*

答案:

*

9、
设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是( )。

A:n=0; while((ch=getchar())!=’\n’) n++;
B:n=0; while(getchar()!=’\n’) n++;
C:for(n=0; getchar()!=’\n’;n++);
D:n=0; for(ch=getchar();ch!=’\n’;n++);
答案: n=0; for(ch=getchar();ch!=’\n’;n++);

10、
有以下程序#include<stdio.h>void main(){ int i, j;  for(i=3; i>=l; 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

11、
for循环的三个表达式可以任意省略,while,do-while也是如此。

A:对
B:错
答案: 错

12、
循环体如包括有一个以上的语句,则必须用{}括起来,组成复合语句。

A:对
B:错
答案: 对

13、
break 则是结束整个循环过程,不再判断执行循环的条件是否成立。

A:对
B:错
答案: 对

14、
do-while循环至少要执行一次循环语句。

A:对
B:错
答案: 对

15、
break用于结束本次循环

A:对
B:错
答案: 错

16、
continue 不是结束本次循环,而是终止整个循环的执行。

A:对
B:错
答案: 错

17、
C语言的三种循环不可以互相嵌套。

A:对
B:错
答案: 错

18、
do-while循环的while后的分号可以省略。

A:对
B:错
答案: 错

19、
结构化程序使用goto 语句会很便捷

A:对
B:错
答案: 错

20、
已定义int i=-3; 则while(i++);是死循环

A:对
B:错
答案: 错

第五章 单元测试

1、
以下数组定义中错误的是(  )。

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

2、
有以下程序:#include<stdio.h>#define N  4void fun(int a[][N],int  b[]){ int i; for(i=0;i<N;i++)  b=a-a[N-1-i];}void main(){ int x[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}}, y[N], i; fun (x, y); for(i=0; i<N; i++)   printf(“%d,”, y);    printf(“\n”); }程序运行后的输出结果是(  )。

A:

-3,-1,1,3,


B:

-12,-3,0,0,


C:

0,1,2,3,


D:

-3,-3,-3,-3,


答案:

-3,-1,1,3,

3、
设有定义:char s[81];int i=0;,以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是(  )。

A:gets(s);
B:while((s[i++]=getchar())!=”\n”);s=”[ck8_view=5]

第三章 单元测试

1、
下列( )表达式的值为真,其中a=5;b=8;c=10;d=0

A:a*2>8+2
B:(a*2-c)||d
C:a-b<c*d< span=””>
D:a&&d
答案: a-b<c*d< span=””></c*d<></c*d<>

2、
在C语言中,要求运算数必须是整型或字符型的运算符是()。

A:||
B:&
C:&&
D:!
答案: &

3、
如果int a=2,b=3,c=0,下列描述正确的是( )

A:a||(b=c)执行后b的值为0
B:a>b!=c和a>(b!=c)的执行顺序是一样的
C:a&&b>c的结果为假
D:!a!=(b!=c)表达式的值为1
答案: !a!=(b!=c)表达式的值为1

4、
void 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”,a,b);}该程序的输出结果是(    )

A:

2,2


B:

2,1


C:

1,1


D:

1,0


答案:

2,1

5、
以下程序的运行结果是(  )。
void main()
  { int a=2, b= -1, c=2 ;
    if(a<b)
       if(b<0) c=0;
else  c+=1;
    printf(“%d”, c );
   }

A:

0


B:

2


C:

1


D:

3


答案:

2

6、
设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是( )。

A:if(a>b) c=a,a=b,b=c;
B:if(a>b) {c=a,a=b,b=c;}
C:if(a>b) c=a;a=b;b=c;
D:if(a>b) {c=a;a=b;b=c;}
答案: if(a>b) c=a;a=b;b=c;

7、
有以下程序 #include<stdio.h> void 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、
与语句:k=a>b?(b>c?1:0):0;功能相同的是( )。

A:if((a>b)&&(b>c)) k=1;
else k=0;
B:if((a>b)||(b>c) k=1;
else k=0;
C:if(a<=b) k=0;
else if(b<=c) k=1;
D:if(a>b) k=1;
else if(b>c) k=1;
else k=0;
答案: if((a>b)&&(b>c)) k=1;
else k=0;

9、
若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是( )。

A:1
B:0
C:2
D:不知道a的值,不能确定
答案: 1

10、
一个结构化程序必须同时由顺序、分支、循环三种结构组成

A:对
B:错
答案: 对

11、
逻辑表达式的值只能为1或0。

A:对
B:错
答案: 对

12、
有条件表达式:(EXP)?i++;j–,中(EXP)与EXP==1是等价的

A:对
B:错
答案: 错

13、
正确表达某个人的年龄age在10~20岁之间(不含边界)的C语言表达式是 10<age<20< span=””>

A:对
B:错
答案: 错</age<20<>

14、
在if语句的三种形式中,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。

A:对
B:错
答案: 对

15、
在switch语句中,每一个的case常量表达式的值可以相同。

A:对
B:错
答案: 错

16、
case语句后如没有break,顺序向下执行。

A:对
B:错
答案: 对

17、
C语言表达式’0’<=c<=’9’可以判断c中的字符是否为数字字符

A:对
B:错
答案: 错

18、
条件表达式不能取代一般if的语句。

A:对
B:错
答案: 错

19、
if(a=5) 是允许的。

A:对
B:错
答案: 对

第四章 单元测试

1、
C语言中while和do-while循环的主要区别是( )。

A:do-while的循环体至少无条件执行一次
B:While的循环控制条件比do-while的循环控制条件严格
C:do-while循环体不能是复合语句
D:do-while允许从外部转到循环体内
答案: do-while的循环体至少无条件执行一次

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

A:for(i=10; ; i++ ) sum+=i;
B:while(1) {x++;}
C:for(; (c=getchar())!=’\n’;) printf(“%c”, c);
D:for(;; x+= i);
答案: for(; (c=getchar())!=’\n’;) printf(“%c”, c);

3、
以下程序段的输出结果是(  )。
int i, j, m=0;
for(i=1; i<=15; i+=4)
  for(j=3; j<=19; j+= 4)
    m++;
printf(“%d”, m);

A:

15


B:

12


C:

20


D:

25


答案:

20

4、
有以下程序:#include<stdio.h>void main(){ int y=9; for(  ; y>0; y--) if(y%3==0)  printf(“%d”, --y);}程序的运行结果是(  )。

A:

852


B:

963


C:

741


D:

875421


答案:

852

5、
有以下程序:#include<stdio.h>void main() { int i,j,m=1;  for(i=1;i<3;i++)  { for(j=3;j>0;j-- )    {if(i*j>3)  break;    m*=i*j;    }  }  printf(“m=%d\n”,m);  }程序运行后的输出结果是(  )。

A:

m=4


B:

m=2


C:

m=6


D:

m=5


答案:

m=6

6、
有以下程序 #include<stdio.h>void main() { int y=10;   while(y–);  printf(“y=%d\n”,y); } 程序执行后的输出结果是 (   )。 

A:

y=0


B:

y=-1


C:

y=1


D:

while 构成无限循环


答案:

y=-1

7、
有以下程序 #include<stdio.h> void main() {int n=2,k=0;  while(k++ && n++>2);  printf(“%d %d\n”,k,n);} 程序运行后的输出结果是(   )。

A:

0 2


B:

1 3


C:

5 7


D:

1 2


答案:

1 2

8、
以下程序中的变量已正确定义for(i=0;i<4;i++,j++)  for(k=1;k<3;k++);  printf(”*”);程序段的输出结果是(   )。

A:

********


B:

****


C:

**


D:

*


答案:

*

9、
设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是( )。

A:n=0; while((ch=getchar())!=’\n’) n++;
B:n=0; while(getchar()!=’\n’) n++;
C:for(n=0; getchar()!=’\n’;n++);
D:n=0; for(ch=getchar();ch!=’\n’;n++);
答案: n=0; for(ch=getchar();ch!=’\n’;n++);

10、
有以下程序#include<stdio.h>void main(){ int i, j;  for(i=3; i>=l; 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

11、
for循环的三个表达式可以任意省略,while,do-while也是如此。

A:对
B:错
答案: 错

12、
循环体如包括有一个以上的语句,则必须用{}括起来,组成复合语句。

A:对
B:错
答案: 对

13、
break 则是结束整个循环过程,不再判断执行循环的条件是否成立。

A:对
B:错
答案: 对

14、
do-while循环至少要执行一次循环语句。

A:对
B:错
答案: 对

15、
break用于结束本次循环

A:对
B:错
答案: 错

16、
continue 不是结束本次循环,而是终止整个循环的执行。

A:对
B:错
答案: 错

17、
C语言的三种循环不可以互相嵌套。

A:对
B:错
答案: 错

18、
do-while循环的while后的分号可以省略。

A:对
B:错
答案: 错

19、
结构化程序使用goto 语句会很便捷

A:对
B:错
答案: 错

20、
已定义int i=-3; 则while(i++);是死循环

A:对
B:错
答案: 错

第五章 单元测试

1、
以下数组定义中错误的是(  )。

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

2、
有以下程序:#include<stdio.h>#define N  4void fun(int a[][N],int  b[]){ int i; for(i=0;i<N;i++)  b=a-a[N-1-i];}void main(){ int x[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}}, y[N], i; fun (x, y); for(i=0; i<N; i++)   printf(“%d,”, y);    printf(“\n”); }程序运行后的输出结果是(  )。

A:

-3,-1,1,3,


B:

-12,-3,0,0,


C:

0,1,2,3,


D:

-3,-3,-3,-3,


答案:

-3,-1,1,3,

3、
设有定义:char s[81];int i=0;,以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是(  )。

A:gets(s);
B:while((s[i++]=getchar())!=”\n”);s=”\0″;
C:scanf(“%s”,s);
D:do{ scanf(“%c”;&s);} while(s[i++]!=”\n”); s=”\0″;
答案: scanf(“%s”,s);

4、
有以下程序:#include<stdio.h>void main(){char  s[]=”012xy\08s34f4w2″; int i,n=0; for ( i=0;s!=0;i++ )   if(s >= ‘0’ && s <= ‘9’)   n++; printf(“%d\n”,n);}程序运行后的输出结果是(  )。

A:

0


B:

3


C:

7


D:

8


答案:

3

5、
下列定义数组的语句中,正确的是(  )。

A:#define N 10
int x[N];
B: int N=10;
int x[N];
C:int x[0..10];
D:int x[ ];
答案: #define N 10
int x[N];

6、
有以下程序:#include<stdio.h>void main(){ int a[]={2,3,5,4},i; for(i=0;i<4;i++)  switch(i%2)  { case 0:         switch(a%2)    { case 0:a++;break;     case 1:a–;     } break;   case 1:a=0;  }  for(i=0;i<4;i++)   printf(“%d “,a);    printf(“\n”);}程序运行后的输出结果是(  )。

A:

0 3 0 4


B:

2 0 5 0


C:

3 3 4 4


D:

3 0 4 0


答案:

3 0 4 0

7、
有以下程序:#include<stdio.h>void main(){  int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;  for(i=0; i<3; i++)   for(j=i;j<=i;j++)  t+=b[b[j]];  printf(“%d\n”,t);}程序运行后的输出结果是(  )。

A:

3


B:

4


C:

1


D:

9


答案:

4

8、
有以下程序  #include<stdio.h>  void main()  { char s[]=”012xy\08s34f4w2″;    int i,n=0;    for(i=0; s!=0; i++)      if(s>=’0’&&s<=’9′)   n++;    printf(“%d\n”,n);     }  程序运行后的输出结果是(   )。

A:

0


B:

3


C:

7


D:

8


答案:

3

9、
有以下程序段  char name[20];  int num;  scanf(“name=%s num=%d”,name;&num);  当执行上述程序段,并从键盘输入:name=Lili num=1001<回车>后,name的值为(   )。

A:

Lili


B:

name=Lili


C:

Lili num=


D:

name=Lili num=1001


答案:

Lili

10、
在C语言中能逐个地使用下标变量,也能一次引用整个数组。

A:对
B:错
答案: 错

11、
能对二维数组a进行正确初始化的语句是int a[2][ ]={{1,0,1},{5,2,3,}};

A:对
B:错
答案: 错

12、
若有定义语句:int b[3][4]; 按在内存中的存放顺序,b数组的第4个元素是a[1][3].

A:对
B:错
答案: 错

13、
能对二维数组a进行正确初始化的语句是int a[ ][3]={{1,0,1},{},{1,1}};

A:对
B:错
答案: 错

14、
在c语言中,引用数组元素时,其数组下标的数据类型允许是整型表达式

A:对
B:错
答案: 对

15、
一个数组是由连续的一块内存单元组成的,数组名就是这块连续内存单元的首地址

A:对
B:错
答案: 对

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

A:对
B:错
答案: 对

17、
用字符串方式赋值比用字符逐个赋值要多占一个字节, 用于存放字符串结束标志’\0’。

A:对
B:错
答案: 对

第六章 单元测试

1、
函数调用可以作为一个独立的语句存在

A:对
B:错
答案: 对

2、
若函数调用时的实参为变量,函数的实参和其对应的形参共占同一存储单元

A:对
B:错
答案: 错

3、
定义时,函数的形参只是形式上的存在,不占用具体存储单元

A:对
B:错
答案: 对

4、
函数可以没有参数,但是不能没有返回值

A:对
B:错
答案: 错

5、
函数定义时必须给出函数体,函数体内至少有一条语句

A:对
B:错
答案: 错

6、
C语言中,函数可以用原型说明,也可用简单说明

A:对
B:错
答案: 错

7、
函数的存储类别有外部的和静态的两种,它们的作用域分别是程序级的和文件级的

A:对
B:错
答案: 对

8、
C程序函数的形参不可以说明为static型变量

A:对
B:错
答案: 对

9、
C程序函数中定义的自动变量,系统不自动赋确定的初值

A:对
B:错
答案: 对

10、
在一个C源程序文件中所定义的全局变量,其作用域为所在程序的全部范围

A:对
B:错
答案: 错

11、
有以下程序:     #include<stdio.h>     int fun(int a, int b)     { if(b==0)  return a;          else  return(fun(–a, –b));     }     void main(){ printf(“%d\n”, fun(4,2));}程序的运行结果是(  )。

A:

1


B:

2


C:

3


D:

4


答案:

2

12、
有以下程序:#include<stdio.h>int f(int x);void main(){ int n=1,m; m=f(f(f(n)));   printf(“%d\n”,m);}int f(int x) { return x*2; }程序运行后的输出结果是(  )。

A:

8


B:

2


C:

4


D:

1


答案:

8

13、
有以下程序:#include <stdio.h>void fun(int a[],int n){ int i,t;  for(i=0;i<n/2;i++)      { t=a;a=a[n-1-i];a[n-1-i]=t; }}void main(){ int k[10]={1,2,3,4,5,6,7,8,9,10},i; fun(k,5); for(i=2; i<8; i++)   printf(“%d”,k); printf(“\n”);}程序的运行结果是(  )。

A:

321678


B:

876543


C:

1098765


D:

345678


答案:

321678

14、
有以下程序:#include<stdio.h>int fun(int x,int y){ if(x!=y)  return((x+y)/2);  else    return (x);}void main(){ int a=4,b=5,c=6;  printf( “%d\n” ,fun(2*a,fun(b,c)));}程序运行后的输出结果是(  )。

A:

6


B:

3


C:

8


D:

12


答案:

6

15、
有以下程序:#include  <stdio.h>int  fun(){ static  int  x=1; x*=2; return  x;}void main(){ int i,s=1; for( i=1; i<=3; i++ )    s*=fun(); printf(“%d\n”, s);}程序运行后的输出结果是(  )。

A:

10


B:

30


C:

0


D:

64


答案:

64

16、
有以下程序  #include<stdio.h>  int f(int x);  void main( )   { int a, b=0;     for(a=0; a<3; a++)      { b=b+f(a);           purchar(‘A’+b);          }   }  int f(int x)   {  return x*x+1;   }程序运行后的输出结果是(  )。

A:

ABE


B:

BD1


C:

BCF


D:

BCD


答案:

BD1

17、
有以下程序#include<stdio.h>#define N  3void fun(int a[][N],int b[]){ int i,j;  for(i=0;i<N;i++)   { b=a[0];     for(j=1;j<N;j++)       if(b<a[j])  b=a[j];   } } void main( ){ int x[N][N]={1,2,3,4,5,6,7,8,9}, y[N],i;  fun(x,y);  for(i=0;i<N;i++)  printf( “%d,”,y );   printf( “\n”);}    程序运行后的输出结果是(    )。

A:

2,4,8


B:

3,6,9


C:

3,5,7


D:

1,3,5


答案:

3,6,9

18、
有以下程序#include<stdio.h>int a=1,b=2;void fun1(int a, int b ){ printf(“%d %d”,a,b); }void fun2(){ a=3; b=4; }void main( ){ fun1 (5,6);    fun2();  printf(“%d %d\n”,a,b); }程序运行后的输出结果是(    )。

A:

1 2 5 6


B:

5 6 3 4


C:

5 6 1 2


D:

3 4 5 6


答案:

5 6 3 4

19、
设有如下函数定义  int fun(int k)  { if (k<1) return 0;    else if(k==1)   return 1;    else   return fun(k-1)+1;}  若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是(   )。

A:

2


B:

3


C:

4


D:

5


答案:

3

20、
有以下程序 #include<stdio.h>int fun() { static int x=1;   x+=1;    return x; }void main() { int i, s=1;  for(i=1;i<=5;i++)   s+=fun();   printf(“%d\n”,s); } 程序运行后的输出结果是 (   )。

A:

11


B:

21


C:

6


D:

120


答案:

21

21、
有以下程序  #include<stdio.h>  int f(int t[],int n);  void main( )   { int a[4]={1,2,3,4},s;     s=f(a,4);        printf(“%d\n”,s);     }  int f(int t[],int n)  { if(n>0)  return t[n-1]+f(t,n-1);    else return 0;    }  程序运行后的输出结果是(   )。

A:

4


B:

10


C:

14


D:

6


答案:

10

22、
有以下程序#include<stdio.h>int f(int x,int y)  {return((y-x)*x);}void main( ){int a=3,b=4,c=5,d; d=f(f(a,b),f(a,c)); printf(“%d\n”,d);}程序运行后的输出结果是(   )。

A:

10


B:

9


C:

8


D:

7


答案:

9

23、
有以下程序 #include<stdio.h> int f(int x) {int y;  if(x==0||x==1) return(3);     y=x*x-f(x-2);  return y;  } void main() {int z;  z=f(3);   printf(“%d\n”,z);  } 程序的运行结果是(  )。

A:

0


B:

9


C:

6


D:

8


答案:

6

24、
在C语言中,只有在使用时才占用内存单元的变量,其存储类型是( )。

A:auto和register
B:extern和register
C:auto和static
D:static和register
答案: auto和register

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

A:

1,2,3,4,5,6,7,8,9,10,


B:

1,2,6,8,10,12,7,8,9,10


C:

1,2,3,4,10,12,14,16,9,10,


D:

1,2,6,8,10,12,14,16,9,10,


答案:

1,2,6,8,10,12,7,8,9,10

26、
在函数调用过程中,如果函数funA调用了函数 funB,函数funB又调用了函数funA,则( )。

A:称为函数的直接递归调用
B:称为函数的间接递归调用
C:称为函数的循环调用
D:C语言中不允许这样的递归调用
答案: 称为函数的间接递归调用

27、
以下程序中函数f的功能是将n个字符串按由大到小的顺序进行排序。void f(char p[][10],int n) { char t[20];    int i,j;   for(i=0;i<n-1;i++)     for(j=i+1;j<n;j++)       if(strcmp(p,p[j])<0)         { strcpy(t,p); strcpy(p,p[j]); strcpy(p[j],t);} }void main() { char p[][10]={“abc”,“aabdfg”,“abbd”,“dcdbe”,“cd”};   int i; f(p,5);    printf(“%d\n”,strlen(p[0])); } 程序运行后的输出结果是(   )。

A:

6


B:

4


C:

5


D:

3


答案:

5

28、
有如下程序    void f(int x,int y)    { int t;      if(x<y)  {t=x, x=y; }    }     void main()    { int a=4,b=3,c=5;      f(a,b);       f(a,c);       f(b,c);      printf(“%d,%d,%d\n”,a,b,c);   }   执行后输出结果是(   )。

A:

3,4,5


B:

5,3,4


C:

5,4,3


D:

4,3,5


答案:

4,3,5

 


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

暂无优惠



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



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


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

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


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

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

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

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

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


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

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

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

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

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

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

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

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

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

阿布查查 » C语言程序设计(西华大学) 知到智慧树答案2024 z25099
+
账户
更新
搜索
帮助
主页