智慧树\知到——程序设计基础(C语言)入门篇第六章到第十章测试答案

目录

第六章测试

第七章测试

第八章测试

第九章测试

第十章测试


 

第六章测试

  • 第1部分
  • 总题数: 10

1

【判断题】 (10分)

有下列程序段,程序段运行后的输出结果##2##3##4##5(    )。

int k;

for (k=2;k<6;k++,k++)

printf("##%d",k);  

 

A.

 

B.

正确

本题总得分10分

2

【判断题】 (10分)

在循环结构中break是终止循环,跳出循环体。

 

A.

 

B.

正确

本题总得分10分

3

【单选题】 (10分)

以下不构成无限循环的语句组是(       )。

 

A.

int n=0,i;

for (n=0,i=1;  ;i++)

n+=i;

 

B.

int n=0;  

while (1)

n++;

 

C.

int n=10; 

while (n); 

n--;

 

D.

int n=0

do

{++n;} 

while (n<=0); 

正确

本题总得分10分

4

【单选题】 (10分)

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

 

A.

for循环的循环体语句中,可以包含多条语句,但必须用花括号写成复合语句。

 

B.

for循环是先执行循环体语句,后判断表达式。

 

C.

for循环只能用于循环次数已经确定的情况。

 

D.

在 for循环中,不能用break跳出循环体。

正确

本题总得分10分

5

【单选题】 (10分)

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

#include  <stdio.h> 

int main() 

int  i,sum; 

   for (i=1;i<6;i++) sum+=sum;

   printf("%d",sum); 

   return 0;

 

A.

14

 

B.

0

 

C.

15

 

D.

不确定

正确

本题总得分10分

6

【单选题】 (10分)

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

#include <stdio.h>

int main( )

{

int i,j,a=0;

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

{

for (j=0;j<4;j++)

{

    if (j%2) break;

a++;

}

a++;

}

printf("%d",a);

return 0;

}

 

A.

6

 

B.

4

 

C.

5

 

D.

7

正确

本题总得分10分

7

【判断题】 (10分)

while与do-while在任何时候都可以互换。

 

A.

 

B.

正确

本题总得分10分

8

【判断题】 (10分)

下面程序可以正确求出1+2+3+。。。+n的和。()

#include <stdio.h>

int main( )

{         

int i = 1,sum = 0,n;

scanf(“%d”,&n);

while (i <= n)  

sum = sum + i;  

++i;                

printf("sum=%d",sum);

return 0;

  } 

 

A.

 

B.

正确

本题总得分10分

9

【单选题】 (10分)

以下程序中的变量已正确定义,程序段的输出结果是(       )。

for(i=0;i<4;i++,i++)

for(k=1;k<3;k++); printf("*");

 

A.

********

 

B.

**** 

 

C.

** 

 

D.

*

正确

本题总得分10分

10

【单选题】 (10分)

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

#include <stdio.h>

int main()

{

int i,j;

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

        {

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

       printf(" %d",i+j);

             printf("\n");

          }

      return 0;

}

 

A.

2 3

3 4

4 5

 

B.

4 5

3 4

2 3

 

C.

2 3 4

3 4 5

 

D.

4 3 2 

5 4 3

正确

本题总得分10分

第七章测试

  • 第1部分
  • 总题数: 10

1

【判断题】 (10分)

在C语言中,数组元素的最小下标是1 。

 

A.

 

B.

正确

本题总得分10分

2

【判断题】 (10分)

在C语言中,数组名代表首地址。

 

A.

 

B.

正确

本题总得分10分

3

【判断题】 (10分)

在C语言中,数组一般针对批量数据的处理,这些数据必须具有相同的类型()。

 

A.

 

B.

正确

本题总得分10分

4

【判断题】 (10分)

假设有一定义语句int a[][3]={1,2,3,4,5,6};那么数组的行数是不确定的。

 

A.

 

B.

正确

本题总得分10分

5

【判断题】 (10分)

有下列程序,程序运行后的输出结果是0(       )。

   #include <stdio.h>        

int main( )

{

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

 printf("%d\n",a[3]);

   return 0;

 

A.

 

B.

正确

本题总得分10分

6

【单选题】 (10分)

若有说明:int a[10]; 则对a 数组元素的正确引用是(       )。    

 

A.

a(5)

 

B.

a[3.5] 

 

C.

a[10-10] 

 

D.

a[10]

正确

本题总得分10分

7

【单选题】 (10分)

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

    int i;

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

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

printf("%d ",x[i][2-i]);

 

A.

1  5  9

 

B.

3  5  7

 

C.

1  4  7

 

D.

3  6  9

正确

本题总得分10分

8

【单选题】 (10分)

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

#include  <stdio.h>

int main()

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

printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]);

   return 0;

}

 

A.

输出值

 

B.

5430

 

C.

1470

 

D.

0650

正确

本题总得分10分

9

【单选题】 (10分)

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

#include  <stdio.h> 

int 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");

    return 0;

 }  

 

A.

4 3 3 2

 

B.

1 1 2 3 

 

C.

1 2 3 4

 

D.

2 3 4 4

正确

本题总得分10分

10

【单选题】 (10分)

若有定义:int b[3][4]={0};则下述正确的是(       )。  

 

A.

不正确的定义

 

B.

b[0][0]的值是0,其他元素值未知

 

C.

数组b中各元素均为0

 

D.

没有元素能得初值0

正确

本题总得分10分

第八章测试

  • 第1部分
  • 总题数: 10

1

【判断题】 (10分)

有如下函数调用语句:

          fun(r1,r2+r3,(r4,r5));

该函数调用语句中,含有的实参个数是3个。 

 

A.

 

B.

正确

本题总得分10分

2

【判断题】 (10分)

函数可以嵌套定义,但不能嵌套调用。

 

A.

 

B.

正确

本题总得分10分

3

【判断题】 (10分)

mian函数可以自己调用自己。

 

A.

 

B.

正确

本题总得分10分

4

【单选题】 (5分)

以下正确的函数定义是(       )。

 

A.

fun(int x,y)

  { int z; return int z; }

 

B.

fun(x,y) 

{int x,y;  z=x+y; retun z;} 

 

C.

double fun(int x,int y)

{ double z;z=x+y;return z; }

 

D.

double fun(int x,int y)

{ z=x+y; return z; } 

正确

本题总得分5分

5

【单选题】 (10分)

在C语言函数中,下面说法正确的是(       )。

 

A.

一个函数中只能有一个return语句。

 

B.

一个return语句可以返回多个值。

 

C.

一个函数中可以有多个return语句,但是最多执行其中一个return语句。

 

D.

一个函数中可以有多个return语句,可能多个return语句全部执行

正确

本题总得分10分

6

【单选题】 (10分)

在C语言函数中,以下说法正确的是(       )。

 

A.

如果形参与实参的类型不一致以实参类型为准

 

B.

如果函数值的类型与return返回值类型不一致,以函数值类型为准

 

C.

return后边的值不能为表达式

 

D.

定义函数时,形参的类型说明可以放在函数体内。

正确

本题总得分10分

7

【单选题】 (10分)

在C语言程序中,以下正确的描述是(       )。

 

A.

函数的定义和函数的调用均不可以嵌套

 

B.

函数的定义可以嵌套,但函数的调用不可以嵌套

 

C.

函数的定义不可嵌套,但函数的调用可以嵌套

 

D.

函数的定义和调用均可以嵌套

正确

本题总得分10分

8

【单选题】 (10分)

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

#include <stdio.h>

int f(int a)

{

int b=0,c=3;

       b++;c++;

       return(a+b+c);

}

int main( )

{

int a=2,i;

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

printf("%4d",f(a));

          return 0;

}

 

A.

7 10 13

 

B.

7 9 11

 

C.

7 7 7

 

D.

7 8 9 

正确

本题总得分10分

9

【单选题】 (10分)

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

#include <stdio.h>

int func(int a,int b);

int main()

{

   int k=4,m=1,p;

   p=func(k,m);

   printf("%d ",p);

   p=func(k,m);

   printf("%d\n",p);

   return 0;

}

int func(int a,int b)

{

    int m=0,i=2;

    i+=m+1;

    m=i+a+b;

return(m);

}

{

 int m=0,i=2;

i+=m+1;

m=i+a+b;

return(m);

}

 

A.

8 16

 

B.

8 20

 

C.

8 17

 

D.

8  8

正确

本题总得分10分

10

【单选题】 (10分)

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

#include <stdio.h>

int fun (int x,int y);

int main()

{

int a=4,b=5,c=6;

     printf("%d\n",fun(2*a,fun(b,c)));

return 0;

 }

int fun (int x,int y)

{

if  (x!=y) return ((x+y)/2);

     else return (x);

}

 

A.

6

 

B.

8

 

C.

3

 

D.

12

正确

本题总得分10分

第九章测试

  • 第1部分
  • 总题数: 10

1

【判断题】 (10分)

若有下列语句:

int a[4]={1,2,3,4},*p;

p=&a[2];

则*p的值是3

 

A.

 

B.

正确

本题总得分10分

2

【判断题】 (10分)

int *p;此时*是一个运算符号,表示间接访问p所指向的变量。

 

A.

 

B.

正确

本题总得分10分

3

【判断题】 (10分)

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

    int *p,n;

       n=10; p=&n; n=*p+10;

       printf("%d\n", *p);        

 

A.

 

B.

正确

本题总得分10分

4

【单选题】 (10分)

若有说明:int a=2,*p=&a,*q=p;,则以下非法的赋值语句是(       )。

 

A.

*p=*q

 

B.

a=*q

 

C.

q=a

 

D.

p=q

正确

本题总得分10分

5

【单选题】 (10分)

变量的指针是指该变量的(       )。

 

A.

 

B.

别名

 

C.

 

D.

首地址

正确

本题总得分10分

6

【单选题】 (10分)

若已定义int a=5; 下列对(1)、(2)两个语句的正确解释是(       )

(1) int *p=&a;                  (2) *p=a;

 

A.

语句(1)和语句(2)中的*p含义相同,都表示给指针变量p赋值。

 

B.

语句(1)和语句(2)语句都是把变量a的地址值赋给指针变量p。

 

C.

语句(1)是对p进行说明的同时进行初始化,使p指向a;语句(2)是将a的值赋给指针变量p。

 

D.

语句(1)是对p进行说明的同时进行初始化,使p指向a;语句(2)是将a的值赋给p指的空间。

正确

本题总得分10分

7

【单选题】 (10分)

下列程序中,主函数调用findmax函数返回数组中的最大值。在下划线处应填入的是(       )。

#include <stdio.h>

findmax( int *a, int n)

  int *p, *s;

  for (p=a, s=a; p-a<n; p++)

       if(__________) s=p;

  return (*s);

}

int main()

{

    int x[5]={12,21,13,6,18};

    printf("%d\n", findmax(x,5));

    return 0;

}

 

A.

a[p]>a[s]

 

B.

p-a>p-s   

 

C.

p>s 

 

D.

*p>*s             

正确

本题总得分10分

8

【单选题】 (10分)

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

#include <stdio.h>

void fun( int *x,int *y);

int main()

{

    int x=1,y=2;

    fun(&y,&x);

    printf("%d  %d",x,y);

    return 0;

}

void fun( int *x,int *y)

    printf("%d%d",*x,*y);

    *x=3;*y=4;

}

 

A.

121  2

 

B.

123  4

 

C.

211  2

 

D.

214  3

正确

本题总得分10分

9

【单选题】 (10分)

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

int t[]={0,1,2,3,4,5,6,7,8,9}, *p;

 p=t;

 printf("%d\n", *p+9);

 

A.

0

 

B.

10

 

C.

1

 

D.

9

正确

本题总得分10分

10

【判断题】 (10分)

若有下列语句:

int a[4]={1,2,3,4},*p;

p=a;

则*p的值是3。   

 

A.

 

B.

正确

本题总得分10分

第十章测试

  • 第1部分
  • 总题数: 10

1

【单选题】 (10分)

若给出下列定义:    

char x[]="abcdefg";

char y[]={'a','b','c','d','e','f','g'};  

则正确的叙述为(       )。 

 

A.

数组x的长度小于数组y的长度

 

B.

数组y的定义是错的 

 

C.

数组x的长度大于数组y 的长度

 

D.

数组x和数组y的长度相同

正确

本题总得分10分

2

【单选题】 (10分)

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

#include  <stdio.h>

int main()

{

    char  ch[7]={ "65ab21"};

    int  i,s=0;

    for (i=0;ch[i]>= '0'&&ch[i]<='9';i+=2)

    s=10*s+ch[i]- '0';

    printf("%d\n",s);

    return 0;

}     

 

A.

6

 

B.

12ba56

 

C.

6521

 

D.

62

正确

本题总得分10分

3

【单选题】 (10分)

设有如下的程序段:

char s[]="girl", *t; t=s;则下列叙述正确的是(       )。

 

A.

t指向s数组首元素

 

B.

数组s中的内容和指针变量t中的内容相等

 

C.

*t与 &s[0]相等

 

D.

s数组长度和t长度相等

正确

本题总得分10分

4

【单选题】 (10分)

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

char b1[8]="abcdefg", b2[8], *pb=b1+3;        

while( --pb>=b1) strcpy(b2, pb);

printf("%d", strlen(b2));

 

A.

1

 

B.

8

 

C.

3

 

D.

7

正确

本题总得分10分

5

【单选题】 (10分)

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

#include <stdio.h>

char cchar(char ch)

{         

if (ch>='A' && ch<'Z')

  ch=ch-'A'+'a';

    return  ch;

}

int main()

{

char s[]="ABC+abc=defDEF", *p=s;

while (*p)

{ *p=cchar(*p);   p++; }

puts(s);

   return 0;

}

 

A.

abc+ABC=DEFdef         

 

B.

abc+abc=defdef 

 

C.

abcaABCDEFdef

 

D.

abcabcdefdef

正确

本题总得分10分

6

【判断题】 (5分)

从存储机制上看,字符串是以'\0'为结束标志的字符串数组。()

 

A.

 

B.

正确

本题总得分5分

7

【判断题】 (10分)

语句printf(“This is a string!”)会把双引号输出。

 

A.

 

B.

正确

本题总得分10分

8

【判断题】 (10分)

下面程序的运行结果是:We,s()。

#include <stdio.h>

int main()

{      

    printf (“%s, %c \n”,  "We", *"students");

    return 0;

}

 

A.

 

B.

正确

本题总得分10分

9

【判断题】 (10分)

下面程序段是正确的。()

char  str[20];   

 str=“I love China!”

 

A.

 

B.

正确

本题总得分10分

10

【判断题】 (10分)

可以用函数strcat将两个字符串连接,也可以用+将两个字符串连接。

 

A.

 

B.

正确

本题总得分10分

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

救救孩子√

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值