2021知到答案 程序设计基础(C语言)(山东联盟) 智慧树网课章节测试答案

第一章 章节测试

1、选择题:以下叙述中正确的是。
选项:
A:用C程序实现的算法可以没有输出但必须要有输入
B:C程序实现的算法可以没有输入但必须要有输出
C:用C程序实现的算法必须要有输入和输出操作
D:用C程序实现的算法可以既没有输入也没有输出
答案: 【C程序实现的算法可以没有输入但必须要有输出
2、选择题:

以下不能定义为用户标识符的是( 

选项:
A:Main
B:_10 
C:_scanf
D:printf
答案: 【printf
3、选择题:

按照C语言规定的用户标识符命名规则,不能出现在标识符中的是(   )。

选项:
A:连接符
B:小写字母 
C:数字字符
D:下划线
答案: 【连接符
4、选择题:

以下C语言用户标识符中,不合法的是(  )。

选项:
A:_1
B:a_b
C:AaBc
D:a–b
答案: 【a–b
5、选择题:

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

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

6、选择题:

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

选项:
A:可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行
B:C语言程序将从源程序中第一个函数开始执行
C:C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束
D:main可作为用户标识符,用以命名任意一个函数作为主函数
答案: 【C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束
7、选择题:

C语言源程序名的后缀是(    )。
选项:
A:.cpp

 
B:.c
C:.exe 
D:.obj 
答案: 【.c
8、选择题:

以下叙述中错误的是( )。
选项:
A:一个C程序中可以包含多个不同名的函数
B:C程序在书写时,有严格的缩进要求,否则不能编译通过
C:一个C程序只能有一个主函数
D:C程序的主函数必须用main作为函数名
答案: 【C程序在书写时,有严格的缩进要求,否则不能编译通过

9、选择题:下列关于C语言用户标识符的叙述中正确的是(  )。
选项:
A:用户标识符中不可以出现中划线,但可以出现下划线
B:用户标识符中可以出现下划线,但不能放在用户标识符的开头
C:
用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头
D:用户标识符中可以出现下划线和中划线(减号)
答案: 【用户标识符中不可以出现中划线,但可以出现下划线
10、选择题:下列4个选项中,(  )是合法的用户自定义标识符。
选项:
A:float 
B:
_isw
C:b
D:2a    
答案: 【
_isw

第二章 章节测试

1、选择题:下列选项中,(  )可以将x、y定义成double类型变量,并赋同一初值3.14。
选项:
A:double x=y=3.14;
B:double x, y=3.14;
C:double x=3.14, y=3.14;
D:double x, y=2*3.14;
答案: 【double x=3.14, y=3.14;  
2、选择题:若变量已正确定义并赋值,表达式(  )不符合C语言语法。
选项:
A:3.142
B:a*b/c
C:2, b
D:a/b/c
答案: 【3.142
3、选择题:下列表达式中值为0的是(  )。
选项:
A:3/5
B:3/5.0
C:3.0/5
D:35
答案: 【3/5
4、选择题:以下选项中,(  )是不正确的字符常量。
选项:
A:a
B:‘5 
C:‘103
D:A
答案: 【a
5、选择题:以下选项中不正确的整型常量是(    )。
选项:
A:82L
B:1,900
C:253U
D:100
答案: 【1,900
6、选择题:以下正确的字符串常量是( )。
选项:
A:‘123456 ‘
B:q1234ty
C:HELLO
D:“5111”
答案: 【“5111”
7、选择题:假设在程序中a,b,c均被定义成整型,并且已赋大于1的值,则下列能正确表示代数式 图片2.png 的表达式是(   )。
选项:
A:1/(a*b*c)
B:1/a*b*c 
C:1.0/a/b/c
D:1/a/b/(float)c
答案: 【1.0/a/b/c
8、选择题:

以下能正确定义且赋初值的语句是(  )。

选项:
A:int n1=n2=10; 
B:float f=f+1.1;
C:char ch=’A’;
D:double x=12.3E2.5;
答案: 【char ch=’A’;
9、选择题:设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,32+z)后,x的值为 (   )。
选项:
A:32
B:16
C:4
D:48
答案: 【48
10、选择题:C语言中,运算对象必须是整型数的运算符是(   )。
选项:
A:%
B:/
C:*
D:和/
答案: 【%
11、选择题:

有以下程序

main()

{

 char a1=M,a2=m;

 printf(“%c”,(a1,a2)); 

}

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

选项:
A:格式说明符不足,编译出错
B:程序运行时产生出错信息
C:程序输出小写字母m
D:程序输出大写字母M 
答案: 【程序输出小写字母m
12、选择题:

在C语言中,下列属于构造类型的是(   )。
选项:
A:字符型 
B:整型
C:实型
D:数组类型
答案: 【数组类型

13、选择题:设d为字符型变量,下列表达式不正确的是(   )。
选项:
A:d=a
B:d=3
C:d=99
D:d=a
答案: 【d=a
14、选择题:若x和y都为float型变量,且x=3.6, y=5.8 执行下列语句后输出结果为(   )。
选项:
A:输出符号不够,输出不正确值
B:5.800000 
C:3.600000,5.800000
D:3.600000  
答案: 【5.800000 
15、选择题:表达式(double)(20/3)的值为(    )。
选项:
A:6
B:2
C:3
D:6.0
答案: 【6.0
16、选择题:

表达式3.6-5/2+1.2+5%2的值是(  )。
选项:
A:4.3
B:4.8
C:3.8

D:3.3
答案: 【3.8

17、选择题:表达式sizeof(hello)的值为(    )。
选项:
A:4
B:7
C:5
D:6
答案: 【6

18、选择题:设整型变量a值为9,则下列表达式中使b的值不为4的表达式(    )。
选项:
A:b=a/2   
B:b=a-5
C:b=8-(3,a-5) 
D:b=a%2  
答案: 【b=a%2  
19、选择题:已知ch是字符型变量,下面不正确的赋值语句是(   )。
选项:
A:ch=7+9
B:ch=’m’
C:ch=‘a+b’
D:ch=‘7’+‘9’
答案: 【ch=‘a+b’
20、选择题:

有以下定义语句,编译时会出现编译错误的是  )。
选项:
A:char a=’-‘;
B:char a=’a’;
C:char a=’aa’; 
D:char a=’0′;
答案: 【char a=’aa’; 

第三章 章节测试

1、选择题:若变量已正确定义并赋值,下面符合C语言语法的表达式是(   )。
选项:
A:a=a+7=c+b
B:int 18.53
C:a:=b+1
D:a=b=c+2
答案: 【a=b=c+2】[$]
2、选择题:设变量已正确定义并赋值,表达式(  )不符合C语言语法。
选项:
A:a=b=5
B:a=4,3
C:++a
D:int(3.14)
答案: 【int(3.14) 
3、选择题:下列关于自增运算符++和自减运算符的叙述中正确的是(  )。
选项:
A:它们的运算对象可以是int型变量,但不能是double型变量和float型变量
B:它们的运算对象可以是char型变量和int型变量,但不能是float型变量
C:它们的运算对象可以是任何类型的变量和常量
D:它们的运算对象可以是char型变量、int型变量和float型变量
答案: 【它们的运算对象可以是char型变量、int型变量和float型变量
4、选择题:若变量a、i已正确定义,且i已正确赋值,则合法的语句是(   )。
选项:
A:++i;
B:a+2=
C:a=int(i);
D:a=a++=5;
答案: 【++i;
5、选择题:设x为int型变量,则执行以下语句后,x的值为(    )。

x=10;  

x+=x-=x+x;
选项:
A:-20
B:10
C:0
D:20
答案: 【-20

6、选择题:以下叙述中正确的是(   )。
选项:
A:使用putchar函数时,必须在之前包含头文件stdio.h
B:在C语言中,整数可以以十二进制、八进制或十六进制的形式输出
C:调用printf函数时,必须要有输出项
D:调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码
答案: 【使用putchar函数时,必须在之前包含头文件stdio.h
7、选择题:以下程序的输出结果是(    )。

#include “stdio.h”
main()   int a=10;   a=(3*5,a+4);    printf(“a=%d”, a);}
选项:
A:a=18
B:a=19
C:a=14
D:a=15
答案: 【a=14

8、选择题:以下不能输出字符A的语句是(注:字符A的ASCIl码值为65,字符a的ASCIl码值为97)( )。
选项:
A:printf(“%c”, ‘B’-1);
B:printf(“%d”, ‘A’);
C:printf(“%c”,’a’-32);
D:printf(“%c”, 65);
答案: 【printf(“%d”, ‘A’); 
9、选择题:若有以下定义和语句:

char c1=c,c2=g;

printf(%d,%c,c2c1,c2a+A);

则输出结果是(  )。  
选项:
A:4,G
B:输出项与对应的格式控制不一致,输出结果不确定
C:5,G 
D:3,G
答案: 【4,G

10、选择题:以下程序段的输出结果是(  )。   float m=34.567;   printf(“%3.2f”,m);  
选项:
A:提示出错、无结果
B:34.57
C:34.5
D:34.567
答案: 【34.57
11、选择题:以下程序的输出结果是(  )。    #include “stdio.h”    main( )    {        char c=’z’;       printf(“%c”,c-25);    }
选项:
A:a
B:Z
C:y
D:z-25
答案: 【a
12、选择题:以下程序的输出结果是(    )。    #include “stdio.h”    main( )    {         int  k=27;       printf(“%d,%o,%x”,k,k,k);    }
选项:
A:27,0x1b,033
B:27,33,1b
C:27,033,0x1b
D:27,27,27
答案: 【27,33,1b
13、选择题:

以下程序的输出结果是(    )。    #include “stdio.h”    main( )    {  double d=3.2;  int x,y; x=1.2; y=(x+3.8)/5.0; printf(“%d “, d*y);    }
选项:
A:3.07
B:3
C:0
D:3.2
答案: 【0

14、选择题:

下列程序执行后的输出结果是(小数点后只写1位)(    )。    #include “stdio.h”    main( )    {  double d;  float f;  long k;  int i; i=f=k=d=20.0/3; printf(“%d %ld %.1f %.1f “, i,k,f,d);    }
选项:
A:6 6 6.7 6.7
B:6 6 6.0 6.0
C:6 6 6.7 6.0
D:6 6 6.0 6.7  
答案: 【6 6 6.0 6.7  

15、选择题:

x、y、z被定义为double型变量,若从键盘上给x、y、z输入数据,则正确的输入语句是(  )。  
选项:
A:scanf(“%lf%lf%lf”,&x,&y,&z);
B:scanf(“%d%d%d”,&x,&y,&z);
C:scanf(“%.2lf%.2lf%.2lf”,&x,&y,&z);
D:scanf(“%f%f%f”,&x,&y,&z);
答案: 【scanf(“%lf%lf%lf”,&x,&y,&z);

16、选择题:设i是int型变量,f是float型变量,若要通过语句“scanf(“i=%d,f=%f”,&i,&f);”给i赋值100,f赋值765.12,则正确的输入为( )。 
选项:
A:100 765.12
B:i=100f=765.12
C:100,765.12
D:i=100,f=765.12
答案: 【i=100,f=765.12
17、选择题:

设有以下定义

int a=0;

double b=1.25;

char c=’A’;

#define d 2

则下面语句中错误的是(  )。

选项:
A:a++;
B:c++;
C:b++; 
D:d++; 
答案: 【d++; 
18、选择题:

有以下程序    #include “stdio.h”    main()    { int a,b,d=25;  a=d/10%9;  b=a-1;  printf(“%d,%d”,a,b);    }  程序运行后的输出结果是(  )。  
选项:
A:2,0
B:6,1 
C:2,1 
D:6,0 
答案: 【2,1 

19、选择题:

有以下程序    #include “stdio.h”     main()    { char c1=’1′,c2=’2′; c1=getchar();  c2=getchar();  putchar(c1); putchar(c2);    } 当运行时输入:ab<回车> 后,以下叙述正确的是(  )。
选项:
A:程序将等待用户输入第2个字符
B:变量c1被赋予字符a,c2被赋予字符b
C:变量c1被赋予字符a,c2中将无确定值
D:变量c1被赋予字符a,c2中仍是原有字符2
答案: 【变量c1被赋予字符a,c2被赋予字符b

20、选择题:

下列程序的输出结果是16.00,请在程序中填空。    #include “stdio.h”    main( )    {         int a=9,b=2;      float x=________ , y=1.1,z;      z=a/2+b*x/y+1/2;      printf(“%5.2f”, z );    }
选项:
A:7.7
B:5.5
C:6.05
D:6.6
答案: 【6.6

第四章 章节测试

1、选择题:

x=3,y=z=4,则下列表达式的值分别为(  )。

 (1)z>=y>=x?1:0

 (2)z>=y&& y>=x
选项:
A: 1  1
B: 0  0
C: 1  0
D: 0  1
答案: 【 0  1

2、选择题:

在嵌套使用if语句时,C语言规定else总是(  

选项:
A:和之前与其最近的且不带elseif配对  
B:和之前与其具有相同缩进位置的if配对
C:和之前与其最近的if配对
D:和之前的第一个if配对
答案: 【和之前与其最近的且不带elseif配对  
3、选择题:判断字符型变量ch为大写字母的表达式是(  )。
选项:
A:ch>=A)&&(ch<=Z) 
B:ch>=A||(ch<=Z
C:ch>=A)AND(ch<=Z
D:    ’A<=ch<=Z 
答案: 【ch>=A)&&(ch<=Z) 
4、选择题:逻辑运算符的运算对象的数据类型(   
选项:
A:只能是.T..F.
B:只能是0
C:只能是整型或字符型 
D:任何类型的数据
答案: 【任何类型的数据
5、选择题:

以下是if语句的基本形式:  if(表达式) 语句  

 

其中表达式(   )。

选项:
A:可以是任意合法的表达式
B:必须是逻辑表达式  
C:必须是关系表达式
D:必须是逻辑表达式或关系表达式  
答案: 【可以是任意合法的表达式
6、选择题:下列条件语句中功能与其他语句不同的是     
选项:
A:if(a==0) printf(“%d”,y); else printf(“%d”,x);
B:if(a==0) printf(“%d”,x); else printf(“%d”,y);
C:if(a) printf(“%d”,x); else printf(“%d”,y);
D:if (a!=0) printf(“%d”,x); else printf(“%d”,y);
答案: 【if(a==0) printf(“%d”,x); else printf(“%d”,y);
7、选择题:以下程序段中与语句“k=a>b?(b>c?1:0):0功能等价的是(  )。
选项:
A:if((a>b)&&(b>c))
     k=1;
else  
    k=0;  
 
B:f((a>b)||(b>c))
      k=1;
 else  
     k=0;
 
C:if(a>b)  k=1;
        else if(b>c)  k=1; 
               else k=0;
 
D:if(a<=b) 
     k=0;    
else 
    if(b<=c)  k=1;
 
答案: 【if((a>b)&&(b>c))
     k=1;
else  
    k=0;  
 

8、选择题:

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

#include “stdio.h”

main( )

{

 int x=40,y=4,z=4;

 x=y==z;

 printf(“%d “,x);

 x=x==(y-z);

 printf(“%d “,x);

}
选项:
A:1  0
B:4  0
C:4  1
D:1  1
答案: 【1  0

9、选择题:下列各语句序列中,能够将变量us中的较大值赋值到变量t中的是(   )。
选项:
A:t=s ; if(u>s)t=u;
B:t=u ; if(u>s)t=s;
C:if(u>s)t=u ; t=s;
D:if(u>s)t=s ; else t=u;  
答案: 【t=s ; if(u>s)t=u;
10、选择题:

以下程序执行后的输出结果是(     )。#include “stdio.h”main( ){int a=5,b=4,c=3,d=2;    if(a>b>c)    printf(“%d”,d);    else if ((c-1>=d)==1)    printf(“%d”,d+1);    else    printf(“%d”,d+2);  }
选项:
A:2
B:编译时有错误,无结果
C:4
D:3
答案: 【3

11、选择题:

以下程序执行后的输出结果是(      )。#include “stdio.h”main( ){   char x=’d’;   x=(x>=’a’&&x<=’z’)?(x-32):x;   printf(“%c”, x);
选项:
A:d
B:D
C:a
D:z
答案: 【D

12、选择题:

若有定义:float x=1.5; int a=1, b=3, c=2;,则正确的switch语句是(   )。
选项:
A:switch((int)x);

{
  case 1: printf(“*”);
  case 2: printf(“**”);
}
 
B:switch(a+b)

{

  case 1: printf(“*”);

  case 1+2: printf(“**”);

}

 
 
C:switch(x)  
{
 case 1.0: printf(“*”);
 case 2.0: printf(“**”);

 
D:switch(a+b)

{

  case 1: printf(“*”);

  case c: printf(“**”);

}

答案: 【switch(a+b)

{

  case 1: printf(“*”);

  case 1+2: printf(“**”);

}

 
 

13、选择题:

以下程序的输出结果是(   )。#include “stdio.h”main(){   int a=2,b=2,c;   c=a>=b;   printf(“c=%d”,c);}
选项:
A:c=2
B:c=0
C:c=1
D:不确定
答案: 【c=1

14、选择题:

下列程序执行后的输出结果是(  )。#include “stdio.h”main( ){  int n=0,m=1,x=2; if(!n) x-=1; if(m) x-=2; if(x) x-=3; printf(“%d”,x);}
选项:
A:-1
B:-3

C:-4
D:1
答案: 【-4
15、选择题:

以下程序执行后的输出结果是(  )。#include “stdio.h”main( ){    int p,a=5;  if(p=a!=0)    printf(“%d”,p);  else   printf(“%d”,p+2);}
选项:
A:1
B:3
C:5

D:0
答案: 【1
16、选择题:

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

#include “stdio.h”

main( )

{

  int a=2,b=3,c ;

  c=a;

  if(a>b) c=1;

  else if(a==b)

       c=0;

     else  

              c=-1;

  printf(“%d”,c);


选项:
A:0
B:-1
C:2
D:1
答案: 【-1

17、选择题:

有以下程序

#include “stdio.h”

main( )

{

int x;

scanf(“%d”,&x);

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

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

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

}

若程序运行时从键盘输入12<回车>,则输出结果为   
选项:
A:17
B:12
C:7
D:12   17
答案: 【12   17

18、选择题:若有表达式(p)?(–x):(++y),则其中与w等价的表达式是(  )。
选项:
A:p!=1
B:p==0
C:p!=0
D:p==1
答案: 【p!=0
19、选择题:

有以下程序

#include “stdio.h”

main( )

{

 int a, b, c;

 a=10; b=50; c=30;

 if (a>b) a=b, b=c; c=a;

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

}

程序的输出结果是(   )。
选项:
A:a=50 b=30 c=50

B:a=10 b=30 c=10 
C:a=10 b=50 c=30
D:a=10 b=50 c=10 
答案: 【a=10 b=50 c=10 
20、选择题:

有以下程序

#include “stdio.h”

main( )

{

 int x=1, y=2, z=3;

 if(x>y)

   if(y<z)

     printf(“%2d”, z+1);

   else

     printf(“%2d”, y+1);

 printf(“%2d”, x+1);

}   

程序的运行结果是(   )。  

选项:
A:1
B:4  2
C:3  2
D:2
答案: 【2

第五章 章节测试

1、选择题:

以下叙述中正确的是(    )。
选项:
A:do-while语句构成的循环只能用break语句退出。
B:用do-while语句构成的循环,在while后的表达式为非零时结束循环。
C:do-while语句构成的循环不能用其他语句构成的循环来代替。
D:用do-while语句构成的循环,在while后的表达式为零时结束循环。
答案: 【用do-while语句构成的循环,在while后的表达式为零时结束循环。

2、选择题:

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

#include “stdio.h”

main( )

{

  int x=0,y=5,z=3;

  while(z>0&&x<5)

   {y=y-1;z–; x++;}

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

 } 
选项:
A:5,2,5
B:3,2,0 
C:3,2,-1
D:4,3,-1
答案: 【3,2,0 

3、选择题:

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

#include “stdio.h”

main( )

{

int i;

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

    switch(i)

    {  case 1:printf(“%d “,i);

        case 2: printf(“%d “,i);break;

      default: printf(“%d “,i);

      }

}
选项:
A:0 1 1
B:0 1 2
C:1 2 0

D:0 1 1 2
答案: 【0 1 1 2
4、选择题:

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

#include “stdio.h”

main( )

{int i=0,s=0;

  do {

      if(i%2) {i++;continue;}

      i=i+2;

      s+=i;

     }while(i<7);

  printf(“%d”,s);

}  

选项:
A:28 
B:12
C:21
D:20
答案: 【20
5、选择题:下面的程序运行后,输出的结果是(    )。#include “stdio.h”main( ){  int x=3;  do  {   printf (“%d”, x-=2);  }   while (!(–x));}
选项:
A:1和-2 
B:3和0
C:
D:死循环
答案: 【1和-2 
6、选择题:

下面的程序运行后,输出的结果是(    )。#include “stdio.h”main( ){   int n=5,s=0;   while(n)   {     s+=n;     n–;    }    printf(“%d”,s);}
选项:
A:0
B:5
C:15 
D:10
答案: 【15 

7、选择题:

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

#include “stdio.h”

main( )

{ int i,s=0;

  for(i=1;i<10;i+=2) s+=i+1;

  printf(“%d”,s);

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

8、选择题:

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

#include “stdio.h”

main( )

{ int i,n=0;

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

   { do  

      { if(i%3) continue;

         n++;

      } while(!i);

      n++;

    }

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

 }
选项:
A:n=3 
B:n=2
C:n=4
D:n=5
答案: 【n=4

9、选择题:下面程序的功能是输出以下形式的图案,应在下划线处填入的是(  )。****
************

#include “stdio.h”

main( )

{ int i,j;

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

  { 

   for(j=1;j<=       ;j++)   printf(“*”);

   printf(“”);

  }

 }
选项:
A:i+2
B:i
C:2*i-1
D:2*i+1
答案: 【2*i-1

10、选择题:以下程序运行后的输出结果是(   )。

#include “stdio.h”

main( )

{  int i=0,s=0;

   for ( ; ; )

    { if(i==3||i==5) continue;           if (i==6) break;           i++;           s+=i;          }         printf(“%d”,s);      }
选项:
A:

程序进入死循环
B:
21
C:10
D:
13
答案: 【
程序进入死循环

11、选择题:

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

#include “stdio.h”

main( )

 {  

  int i;

  for(i=’A’;i<‘I’;i++,i++)

 printf(“%c”,i+32);

  printf(” “);

 }  
选项:
A:abcdefgh
B:aceg
C:acegi 
D:编译不通过,无输出
答案: 【aceg

12、选择题:

运行以下程序后,如果从键盘上输入“65 ,14<Enter>”,则输出结果为(   )。

#include “stdio.h”

main( )

{  int m, n;

   printf(“Enter m,n;”);  

   scanf(“%d,%d”,&m,&n);

   while (m!=n)

   { while (m>n)m-=n;

     while (n>m)n-=m;

   }

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

}
选项:
A:m=1
B:m=2
C:m=3 
D:m=0
答案: 【m=1

13、选择题:

若变量已正确定义,要求程序段完成求6!的计算,不能完成此操作的程序段是(  )。
选项:
A:i=1;p=1;do{p*=i; i++; }while(i<=6);
B:for(i=1,p=1;i<=6;i++) p*=i;
C:for(i=1;i<=6;i++){ p=1; p*=i;}
D:i=1;p=1;while(i<=6){p*=i; i++;}
答案: 【for(i=1;i<=6;i++){ p=1; p*=i;}

14、选择题:

设x和y均为int型变量,则执行以下的循环后,y值为(  )。

for(y=1,x=1;y<=50;y++)

{ if(x==10)  break;

  if(x%2==1)

   { x+=5; continue;}

   x-=3;

}
选项:
A:
B:6  
C:4
D:7
答案: 【6  

15、选择题:

设j为int型变量,则下面for循环语句的执行结果是(   )。

 for( j=10;j>3;j–)

 {  if(j%3) j–;

    –j;–j;

    printf(“%d  “,j);

 }
选项:
A: 6  2
B: 7  3
C: 6  3 
D: 7  4  
答案: 【 7  4  

16、选择题:

有以下程序

#include “stdio.h”

main()

{  

 int a=1,b;

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

 {  

    if(a%2==1){a+=3;continue; }

    a-=2;

  }  

  printf(“%d”,a);

}

程序运行后的输出结果是(  )。
选项:
A:3
B:0
C:4
D:2
答案: 【0

17、选择题:

有以下程序段

 int n,t=0,s=0;

 scanf(“%d”,&n);

 do

 {s=s+t;t=t-2;}

 while(t!=n);

为使此程序段不陷入死循环,从键盘输入的数据应该是(    )。
选项:
A:任意负奇数 
B:任意正偶数
C:任意负偶数
D:任意正奇数
答案: 【任意负偶数

18、选择题:要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是(  )。
选项:
A:while((ch=getchar())==′N′) printf(“%c”,ch);
B:while((ch=getchar())!=′N′) printf(“%c”,ch);
C:while(ch=getchar()==′N′) printf(“%c”,ch);  
D:while(ch=getchar()!=′N′) printf(“%c”,ch);
答案: 【while((ch=getchar())!=′N′) printf(“%c”,ch);
19、选择题:有以下程序

#include <stdio.h>

main()

{ int i, j, n=0;

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

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

printf(“%d”, n);

}    程序的运行结果是( )。
选项:
A:6
B:3
C:
D:
答案: 【6

20、选择题:有以下程序

#include <stdio.h>

main()

{

 int i=5;

 do

 {

   if (i%3==1)

   if (i%5==2)

   { printf(“*%d”, i); break;}

   i++;

 }

 while(i!=0);

 printf(“”);

}   程序的运行结果是(  )。
选项:
A:*3*5
B:*2*6
C:*5
D:*7 
答案: 【*7 

第六章 章节测试

1、选择题:

若有以下说明:

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

 char c=’a’,d,g;

则数值为4的表达式是(  )。

选项:
A:a[‘d’-c]
B:a[‘d’-‘c’]  
C:a[4] 
D:a[g-c] 
答案: 【a[‘d’-c]
2、选择题:

若有定义语句:int m[]={5,4,3,2,1},i=4;,则下面对m 数组元素的引用中错误的是(  
选项:
A:m[–i]  
B:m[m[i]]
C:m[2*2] 
D:m[m[0]]
答案: 【m[m[0]]

3、选择题:

以下对一维整型数组a的正确说明是(  )。

选项:
A:int n=10,a[n];
B:int a[ ];
C:int n; scanf(“%d”, &n); int a[n];
D:#define SIZE 10 
int a[SIZE];
答案: 【#define SIZE 10 
int a[SIZE];

4、选择题:

若要定义一个具有5个元素的整型数组,以下错误的定义语句是(  )。

选项:
A:int c[2+3]; 
B:int i=5, d[i];
C:int b[]={0,0,0,0,0}; 
D:int a[5]={0};
答案: 【int i=5, d[i];
5、选择题:

给出以下定义

char x[]=”abcdefg”;

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

则正确的叙述为()

选项:
A:数组X的长度大于数组Y的长度 
B:数组x和数组Y的长度相同
C:数组X和数组Y等价 
D:数组X的长度小于数组Y的长度
答案: 【数组X的长度大于数组Y的长度 
6、选择题:

下列字符串赋值语句中,不能正确把字符串C program赋给数组的语句是( )。

选项:
A:char a[]={‘C’, ‘ ‘, ‘p’, ‘r’, ‘o’, ‘g’, ‘r’, ‘a’, ‘m’ , ‘’};
B:char a[10]; strcpy(a, “C program”);
C:char a[10]; a= “C program”;
D:char a[10]={“C program”};
答案: 【char a[10]; a= “C program”;
7、选择题:

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

char c[5]={ ‘a’, ‘b’, ‘’, ‘c’, ‘’};

printf(“%s”, c);
选项:
A:ab c
B:‘a’ ‘b’
C:abc 
D:ab
答案: 【ab

8、选择题:

若有如下定义和语句:

          char s[12]= “a book!”;

          printf(“%d”, strlen(s) );

则输出结果是(  )。
选项:
A:7
B:9
C:8
D:12
答案: 【7

9、选择题:以下定义数组的语句中错误的是(  )。
选项:
A:int num[][4]={1, 2, 3, 4, 5, 6};
B:int num[][3]={{1, 2}, 3, 4, 5, 6};
C:int num[]={1, 2, 3, 4, 5, 6};
D:int num[2][4]={{1, 2}, {3, 4}, {5, 6}};
答案: 【int num[2][4]={{1, 2}, {3, 4}, {5, 6}};
10、选择题:执行下面的程序段后,变量k中的值为(    )。int k=3, b[10]={1};b[0]=k; k=b[1]*10;
选项:
A:
B:30 
C:10
D:不定值 
答案: 【
11、选择题:以下程序的输出结果是(    )。#include “stdio.h”main( ){   int  n[5]={0},i,k=3; for(i=0;i<k;i++)  n[i]=n[i]+1; printf(“%dn “,n[k]);}
选项:
A:不确定的值
B:1
C:
D:0
答案: 【0
12、选择题:以下程序的输出结果是(    )。

#include “stdio.h”

main( ){   int  a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;  for(i=1;i<3;i++)    for(j=0;j<=i;j++) s+=a[i][j];

  printf(“%d”,s);}
选项:
A:20
B:21
C:19  
D:18
答案: 【18

13、选择题:

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

#include “stdio.h”

main( )

{ char a[]=”abcdefg”, b[10]=”abcdefg”;

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

}
选项:
A:8 8
B:10 10
C:7 7
D:8 10
答案: 【8 10

14、选择题:

当执行下面的程序且输入ABC时,输出的结果是(    )。

#include <stdio.h>

#include <string.h>

main( )

{  char ss[10]=”123456789″;

   gets(ss);  printf(“%s”,ss);

}

选项:
A:ABC456789
B:ABC9
C:123456ABC
D:ABC
答案: 【ABC
15、选择题:

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

#include “stdio.h”

main( )

 { char  ch[20]={“7856ab21”};

   int i,s=0;

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

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

    printf(“%dn”,s);

 }

选项:
A:7856
B:752
C:75
D:785
答案: 【75
16、选择题:

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

#include “stdio.h”

main( )

 { char ch[2][5]={“789″,”256”};

    int i,j,s=0;

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

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

          s=10*s+ch[i][j]-‘0’;

      printf(“%dn”,s);

 }

   
选项:
A:7825
B:789
C:7889256
D:72
答案: 【7825

17、选择题:

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

#include<stdio.h>

main()

{ int i,k,a[10],p[3];

  k=5;

  for (i=0;i<10;i++)  a[i]=i;

  for (i=0;i<3;i++)  p[i]=a[i*(i+1)];

  for (i=0;i<3;i++)  k+=p[i]*2;

  printf(“%dn”,k);

}
选项:
A:20
B:21
C:22
D:23
答案: 【21

18、选择题:

有以下程序

#include<stdio.h>

main()

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

 for(i=0; i<3; i++) printf(“%d “, t[2-i][i]);

}

程序执行后的输出结果是(  )。 
选项:
A:3 5 7 
B:7 5 3
C:3 6 9 
D:7 5 1
答案: 【3 5 7 

19、选择题:设有定义语句:int a[][3]={{0},{1},{2}};,则数组元素a[1][2]的值为(  )。
选项:
A:不确定
B:1
C:2
D:0
答案: 【0
20、选择题:

有以下程序

#include<stdio.h>

#include<string.h>

main()

{ char s[]=”12345″;

 printf(“%d,%d”, strlen(s),sizeof(s));

}

执行后输出结果是(  )。

选项:
A:6,6
B:赋初值的字符串有错 
C:6,7
D:5,6
答案: 【5,6

第七章 章节测试

1、选择题: 下列各函数首部中,正确的是(    )。
选项:
A:void play(var :Integer, var b:Integer)
B:void play(int a, b)
C:void play(int a, int b)
D:Sub play(a as integer, b as integer)
答案: 【void play(int a, int b)
2、选择题:在C语言中,函数值类型的定义可以是默认类型,此时函数值的默认类型是(  )。
选项:
A:float    
B:void   
C:double
D:int 
答案: 【int 
3、选择题:在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是(   )。
选项:
A:地址传递
B:传递方式由用户指定
C:由实参传给形参,再由形参传回实参
D:单向值传递
答案: 【单向值传递
4、选择题:在C语言程序中,有关函数的叙述正确的有(   )。
选项:
A:函数的定义和调用均可以嵌套
B:函数的定义可以嵌套,但函数的调用不可以嵌套
C:函数的定义不可以嵌套,但函数的调用可以嵌套
D:函数的定义和调用均不可以嵌套
答案: 【函数的定义不可以嵌套,但函数的调用可以嵌套
5、选择题:以下叙述中不正确的是(  )。
选项:
A:函数中的形式参数是局部变量
B:在不同的函数中可以使用相同名字的变量
C:在一个函数内定义的变量只在本函数范围内有效
D:在一个函数内的复合语句中定义的变量在本函数范围内有效
答案: 【在一个函数内的复合语句中定义的变量在本函数范围内有效
6、选择题:有如下函数调用语句:func(recl, rec2+rec3, (rec4,rec5)); 该函数调用语句中,含有的实参个数是(  )。
选项:
A:4
B:有语法错误
C:5
D:3
答案: 【3
7、选择题:以下叙述中正确的是(  )。   
选项:
A:函数的形参都属于全局变量
B:全局变量的作用域一定比局部变量的作用域范围大
C:未在定义语句中赋初值的auto变量和static变量的初值都是随机值
D:静态(static)类别变量的生存期贯穿于整个程序的运行期间
答案: 【静态(static)类别变量的生存期贯穿于整个程序的运行期间
8、选择题:

以下程序的运行结果是(    )。#include “stdio.h”main( )
{  int a=24,b=16,c;   c=abc(a,b);   printf(“%d”,c);}int abc(int u,int v)  int w; while(v)  { w=u%v;u=v;v=w; } return u;}
选项:
A:9
B:8
C:6
D:7
答案: 【8

9、选择题:

以下程序的运行结果是(   )。#include “stdio.h”int f1(int x,int y){   return x>y? x : y; }int f2(int x,int y){   return x>y? y 😡 ; }main( ){      int a=4,b=3,c=5,d,e,f;  d=f1(a,b); d=f1(d,c);   e=f2(a,b); e=f2(e,c);  f=a+b+c-d-e;   printf(“%d,%d,%d”,d,f,e);}
选项:
A:5,3,4
B:3,5,4
C:3,4,5
D:5,4,3
答案: 【5,4,3

10、选择题:

以下程序的运行结果是(    )。#include “stdio.h”void f(int x,int y){ int t; if(x<y){ t=x; x=y; y=t; }}main( ){ int a=5,b=6,c=7;  f(a,b); f(a,c); f(b,c); printf(“%d,%d,%d”,a,b,c);}
选项:
A:7,5,6 
B:5,6,7
C:7,6,5
D:5,7,6 
答案: 【5,6,7

11、选择题:

以下程序的运行结果是(    )。#include “stdio.h”int f( ){    static int i=0; int s=1; s+=i; i++;
  return s;
}main( ){ int i,a=0; for(i=0;i<5;i++) a+=f( ); printf(“%d”,a);}
选项:
A:15
B:24
C:20
D:25
答案: 【15

12、选择题:

以下程序的运行结果是(    )。#include “stdio.h”int func(int a,int b){return(a+b);}main( ){  int x=2,y=5,z=7,r;  r=func(func(x,y),z);  printf(“%d”,r);}

选项:
A:13
B:12
C:14
D:15
答案: 【14
13、选择题:

以下程序的运行结果是(  )。#include “stdio.h”f(int a){   int b=0;  static int c = 3;  b++; c++;  return(a+b+c);}main( ) int a=2,i; for(i=0;i<3;i++) printf(“%4d”,f(a));}
选项:
A: 7  7  7
B:7  8  9
C:7  10  13
D:7  9  11
答案: 【7  8  9

14、选择题:

以下程序的运行结果是(    )。#include “stdio.h”int a, b;void fun( ){ a=100; b=200; }main( )  int a=5, b=7;  fun( );  printf(“%d %d “, a,b);}
选项:
A:200 100
B:100 200
C:7  5
D:5  7
答案: 【5  7

15、选择题:

以下程序的运行结果是(    )。#include “stdio.h”int x=3;main( ){ int i; void nore( ); for(i=1;i<x;i++) nore( );}void nore( ){ static int x=1; x*=x+1; printf(“%d “,x);
选项:
A:2 2
B:2 6
C:3 3
D:2 5
答案: 【2 6

16、选择题:

以下程序执行后的输出结果是(    )。#include “stdio.h”void swap (int c0,int c1){ int t; t=c0;c0=c1;c1=t;}main( ){ int b[2]={7,8}; swap(b[0],b[1]); printf(“%d  %d”,b[0],b[1]);}
选项:
A:8  7
B:7  7
C:7  8
D:8  8
答案: 【7  8

17、选择题:

以下程序执行后的输出结果是(    )。#include “stdio.h”void func1(int i);void func2(int i);char st[]=”hello,friend!”;void func1(int i){     printf(“%c”,st[i]);   if(i<3){i+=2;func2(i);}}void func2(int i){      printf(“%c”,st[i]);   if(i<3){i+=2;func1(i);}}main( )    int i=0;     func1(i);    printf(“”);}
选项:
A:hello
B:hel  
C:Hlm
D:hlo 
答案: 【hlo 

18、选择题:

以下函数值的类型是(  )。

fun(double x)

 double y;

 y=3*x-4;

 return y;

}
选项:
A:void
B:double
C:int
D:不确定
答案: 【int 

19、选择题:下面程序的输出结果是()。

#include “stdio.h”int m=6;int fun( int x, int y)   int m=3;   return( x*y-m); }
main( ){ int a=9, b=8; printf(“%d”, fun(a, b)/m);}

选项:
A:11
B:24
C:12

D:32
答案: 【11
20、选择题:若有以下程序,执行后输出结果是(  )。

#include “stdio.h”int f(int x, int y){return ((y-x)*x);}main(){ int a=3, b=4, c=5, d; d=f(f(3, 4), f(3, 5)); printf(“%d”, d);}
选项:
A:11
B:8

C:10
D:9
答案: 【9】[/$]

《2021知到答案 程序设计基础(C语言)(山东联盟) 智慧树网课章节测试答案》由本站整理发布,如若转载,请注明出处:http://www.qinzicha.com/zhihuishu/256254.html