智慧树知到答案C语言程序设计(山东联盟)最新答案

内容查看
查看价格15

第一章 单元测试

1、单选题:
能将高级语言编写的源程序转换为目标程序的是()。
选项:
A:解释程序
B:链接程序
C:编译程序
D:编辑程序
答案: 【编译程序】

2、单选题:
C语言的注释定界符是()。
选项:
A:{ }
B:

( )

C:/* */
D:[ ]
答案: 【/* */】

3、单选题:
以下标识符中,不能作为合法的C用户定义标识符的是()。
选项:
A:void
B:_123
C:IF
D:a3_b3
答案: 【void】

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


选项:
A:子程序
B:标识符
C:过程

B、函数

C、子程序

D、标识符

D:函数
答案: 【函数】

5、单选题:
计算机能直接执行的程序是用(       )程序设计语言编写的。
选项:
A:C++
B:C语言
C:汇编语言
D:机器语言
答案: 【机器语言   】

6、单选题:
C程序中main函数的位置是(    )。
选项:
A:可以任意位置
B:必须在程序的中间位置
C:必须在程序的最后
D:必须在程序的开始
答案: 【可以任意位置】

7、单选题:
C语言程序上机调试步骤是(    )。
选项:
A:编写源程序、编译、组建、执行
B:编写源程序、组建、执行
C:编写源程序、执行
D:编写源程序、编译、执行
答案: 【编写源程序、编译、组建、执行】

8、判断题:
语句的结束标志是冒号“:”。
选项:
A:对
B:错
答案: 【错】

9、判断题:
C程序中1条语句必须写在1行。
选项:
A:错
B:对
答案: 【错】

10、多选题:
属于低级语言的是()。
选项:
A:汇编语言
B:机器语言
C:C语言
D:JAVA语言
答案: 【汇编语言;机器语言】

第二章 单元测试

1、单选题:
C语言中,最基本的数据类型是( )
选项:
A:整型,字符型,逻辑型
B:整型,实型,字符型,逻辑型
C:整型,实型,逻辑型
D:整型,实型,字符型
答案: 【整型,实型,字符型】

2、单选题:
以下不合法的整型常量是(    )。
选项:
A:

68

B:

12345

C:

147

D:

0xabc

答案: 【

0xabc

3、单选题:
以下浮点数的表示不正确的是(    )。
选项:
A:

12.E2

B:

22.3

C:

e23

D:

7.19E21

答案: 【

e23

4、判断题:
C程序中变量可以不定义而直接使用。
选项:
A:错
B:对
答案: 【错】

5、判断题:
不能将字符串赋给字符变量。
选项:
A:对
B:错
答案: 【对】

6、单选题:
以下不合法的实型常量是(    )。
选项:
A:

.5

B:

5

C:

5.0

D:

0.5

答案: 【

5

7、单选题:
以下哪个是字符数据类型关键字(    )。
选项:
A:

c

B:

char

C:

string

D:

CHAR

答案: 【

char

8、判断题:
在程序运行期间,变量可以多次被赋值。
选项:
A:错
B:对
答案: 【对】

9、单选题:
以下关于符号常量的说法正确的是(    )。
选项:
A:

可以将圆周率这个常量值定义为符号常量,定义方法为:#define  PI=3.1415926

B:

符号常量名可以不遵循C语言的标识符和命名规则

C:

符号常量是以标识符形式出现的常量,一经定义,它所代表的常量值在其作用域内不能改变

D:

使用符号常量不仅便于程序的调试和维护,还能大大提高程序的运行速度

答案: 【

符号常量是以标识符形式出现的常量,一经定义,它所代表的常量值在其作用域内不能改变

10、单选题:
以下定义变量的语句错误的是(    )。
选项:
A:

double  z1;

B:

Double  a1;

C:

int  x1;

D:

float  y1;

答案: 【

Double  a1;

11、多选题:
以下能正确定义变量并给变量赋值的是(    )。
选项:
A:

int a=5,b=5;

B:

int a,b;  a=b=6;

C:

int a=5,b;  b=5;

D:

int a=b=5;

答案: 【

int a=5,b=5;

;

int a,b;  a=b=6;

;

int a=5,b;  b=5;

12、多选题:
以下是合法C语言常量的是(    )。
选项:
A:

e-2

B:

012

C:

“a”

D:

‘a’

答案: 【

012

;

“a”

;

‘a’

13、多选题:
以下合法的C语言整型常量是(    )。
选项:
A:

160

B:

011

C:

01a

D:

-0xffff

答案: 【

160

;

011

;

-0xffff

14、单选题:
若已定义 int a=11; 执行printf(“a=%d,a=%o,a=%x”,a,a,a) ;语句后的输出结果是(   )。
选项:
A:

a=11, a=11, a=b

B:

a=11, a=13, a=c

C:

a=11, a=13, a=b

D:

a=11, a=12, a=13

答案: 【

a=11, a=13, a=b

15、单选题:
函数putchar(65) 的功能是向终端输出(   )。
选项:
A:

6

B:

有编译错误

C:

65

D:

A

答案: 【

A

16、判断题:
使用scanf()函数,在输入数据时,若遇非法输入则认为该数据输入结束。
选项:
A:对
B:错
答案: 【对】

17、判断题:
getchar( )和scanf()均为输入函数,它们之间可通用,没有任何区别。
选项:
A:对
B:错
答案: 【错】

 

第三章 单元测试

1、单选题:
若变量已正确定义,表达式 (j=3, j++) 的值是____。
选项:
A:3
B:4
C:5
D:6
答案:

2、单选题:
若” int n; float f=13.8; “,则执行”n=(int)f%3″后,n的值是( )。
选项:
A:4.33333
B:4.6
C:1
D:4
答案:

3、单选题:
若有定义“char a; int b; float c; double d;”,则表达式“a*b+d-c”值的类型为____。
选项:
A:int
B:float
C:char
D:double
答案:

4、单选题:
若x为浮点型,则表达式x=10/4为( )。
选项:
A:2.5
B:3
C:2.0
D:2
答案:

5、单选题:
假设字符变量ch中存放有小写英文字母,将其转换为相应的大写英文字母的表达式是 ( ) 。
选项:
A:ch = ch+32
B:tolower(ch)
C:ch = ch-‘a’+’A’
D:ch -= ‘a’+’A’
答案:

6、单选题:
C 语言中,要求运算对象只能为整数的运算符是( )。
选项:
A:

*

B:

%

C:

/

D:

>

答案:

7、判断题:
为了确保表达式n/2的值为float型,可写成float(n/2)。
选项:
A:错
B:对
答案:

8、单选题:
若有定义:int a=8,b=5,c;,执行语句:c=a/b+0.4;后,c的值是( )。
选项:
A:

2.0

B:

1.4

C:

1

D:

2

答案:

9、单选题:
设有i=10,在表达式j=i–,则j的值是( )。
选项:
A:

9

B:

11

C:

8

D:

10

答案:

10、单选题:
在C语言程序中,表达式5%2的结果是( )。
选项:
A:

1

B:

2.5

C:

2

D:

3

答案:

11、单选题:
若x、i、j和k都是int型变量,则计算x=(i=4,j=16,k=32)表达式后,x的值是( )。
选项:
A:

52

B:

16

C:

4

D:

32

答案:

12、判断题:
设x和y都是int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是交换x和y的值。
选项:
A:对
B:错
答案:

13、单选题:
若变量已正确定义,以下合法的赋值表达式是( )。
选项:
A:

a=a/(b=5)

B:

a=1/b=2

C:

++(a+b)

D:

y=int(a)

答案:

14、单选题:
逻辑运算符两侧运算对象的数据类型()。
选项:
A:

只能是0 或非0 正数

B:

只能是0 或1

C:

可以是任何类型的数据

D:

只能是整型或字符型数据

答案:

15、判断题:
在赋值表达式中,赋值号左边既可以是变量也可以是任意表达式。
选项:
A:错
B:对
答案:

16、单选题:
若a为int型,且其值为3,则执行完表达式:  a+=6后,a的值是( )。
选项:
A:

9

B:

3

C:

6

D:

12

答案:

17、判断题:
单目运算符、赋值运算符和条件运算符均为右结合性。
选项:
A:对
B:错
答案:

18、单选题:
能表示x为偶数的表达式是().
选项:
A:

x%2!=0

B:

x%2

C:

x%2==0

D:

x%2==1

答案:

19、单选题:
已知int i=10;表达式’3<=i<=5’的值是()
选项:
A:

19

B:

20

C:

1

D:

0

答案:

20、单选题:
能正确表示“当x 的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是( )
选项:
A:(x>=1)||(x<=10)||(x>=200)||(x<=210)
B:

能正确表示“当x 的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是( )

C:

(x>=1)||(x<=10)&&(x>=200)||(x<=210)

D:

(x>=1)&&(x<=10)||(x>=200)&&(x<=210)

答案:

第四章 单元测试

1、单选题:

以下程序运行时,输入的x值在( )范围时才会有输出结果。


选项:
A:不等于10的整数
B:小于3的整数
C:大于3且不等于10的整数
D:大于3且等于10的整数
答案:

2、单选题:
若a是基本整型变量,c是单精度实型变量,输入语句____是错误的。
选项:
A:scanf(“%d%f”, a, c);
B:scanf(“%d%f”, &a, &c);
C:scanf(“d=%d, c=%f”, &a, &c);
D:scanf(“%d,%f”, &a, &c);
答案:

3、单选题:
main()
{ int a=2,b=-1,c=2;
if(a<b)  c=0;
else   c++;
printf(“%d”,c);
}
该程序的输出结果是()
选项:
A:

0

B:

1

C:

2

D:

3

答案:

4、单选题:
有以下程序
main()
{int x=1, y=2, z=3;
if(x>y)
if(y<z)  printf(“%d”,++z);
else   printf(“%d”,++y);
printf(“%d”,x++);
}
程序的运行结果是()

选项:
A:

31

B:

1

C:

3

D:

321

答案:

5、单选题:
若x=0,y=3,z=3,以下表达式值为0的是()。
选项:
A:

y=x||z/3

B:

x<y?1:0

C:

!x

D:

x%2&&y==z

答案:

6、判断题:
在 C 程序中,运算符%仅能用于整型数的运算。
选项:
A:对
B:错
答案:

7、单选题:
有以下程序
void main()
{ int a;
scanf(“%d”,&a);
if(a<9) printf(“%d”,a);
else printf(“%d”,a–);
}程序运行时键盘输入9<回车>,则输出的结果是()
选项:
A:

8

B:

9

C:

10

D:

11

答案:

8、单选题:
为了避免嵌套的if—else 语句的二义性,C 语言规定else 总是与()组成配对关系。
选项:
A:

缩排位置相同的if

B:

在其之前未配对的最近的if

C:

同一行上的if

D:

在其之前未配对的if

答案:

9、判断题:
赋值运算符的结合性为左结合。
选项:
A:错
B:对
答案:

10、单选题:
if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是()
选项:
A:

必须是整数值

B:

必须是正数

C:

可以是任意合法的数值

D:

必须是逻辑值

答案:

第五章 单元测试

1、单选题:

设有程序段

int m=20;

while (m=0) m=m++;

以下说法正确的是()
选项:
A:while 循环执行 10 次
B:循环是无限循环
C:循环体语句一次也不执行
D:循环体语句执行一次
答案:

2、单选题:
以下叙述正确的是()。
选项:
A:

do-while语句构成的循环不能用其它语句构成的循环来代替.

B:

do-while语句构成的循环只能用break语句退出.

C:

用do-while语句构成的循环,在while后的表达式为非零时结束循环.

D:

用do-while语句构成的循环,在while后的表达式为零时结束循环

答案:

3、单选题:
在以下给出的表达式中,与 do–while(E)语句中的(E)不等价的
表达式是()。
选项:
A:

(E!=0)

B:

(!E==0)

C:

(E==0)

D:

(E>0||E<0)

答案:

4、单选题:
对 for(表达式1; ;表达式3) 可理解为()。
选项:
A:

for(表达式1;0;表达式3)

B:

for(表达式1;1;表达式3)

C:

for(表达式1;表达式3;表达式3)

D:

for(表达式1;表达式1;表达式3)

答案:

5、单选题:
从循环体内某一层跳出,继续执行循环外的语句是()。
选项:
A:

return语句

B:

break语句

C:

空语句

D:

continue语句

答案:

6、单选题:
下列程序的输出为()。
main()
{  int  y=10;
while(y–);
printf(“y=%d ”,y);
}
选项:
A:

y=1

B:

y=-1

C:

while构成无限循环

D:

y=0

答案:

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

无限次

B:

2次

C:

1次

D:

0次

答案:

8、单选题:
C语言中 while 和 do-while 循环的主要区别是()。
选项:
A:

do-while 允许从外部转到循环体内

B:

do-while 的循环体至少无条件执行一次

C:

do-while 的循环体不能是复合语句

D:

while的循环控制条件比 do-while的循环控制条件更严格

答案:

9、单选题:
有以下程序
main()
{int a=1,b=2;
while(a<6) {b+=a;a+=2;}
printf(“%d,%d”,a,b);
}程序运行后的输出结果是(  )
选项:
A:

6,1

B:

7,11

C:

7,1

D:

5,11

答案:

10、单选题:
有以下程序段
int n=0,p;
do
{
scanf(“%d”,&p);
n++;
}while(p!=12345&&n<3);
此处do-while循环的结束条件是______。
选项:
A:p的值等于12345或者n的值大于等于3
B:p的值等于12345并且n的值大于等于3
C:p的值不等于12345并且n的值小于3
D:p的值不等于12345或者n的值小于3
答案:

11、单选题:
以下程序段中的变量已正确定义
for(i=0;i<4;i=i+2)
for(k=1;k<3;k++) printf(‘*’);
程序段的输出结果是 ()
选项:
A:

*

B:

**

C:

********

D:

****

答案:

12、单选题:
以下程序的运行结果是()。
main()
{
int  i,b,k=0;
for(i=1;i<=5;i++)
{b=i%2;
while(b>0) { b–;k++;}}
printf(“k=%d,b=%d”,k,b);}
选项:
A:k=8,b=-1
B:k=8,b=-2
C:k=3,b=0
D:k=3,b=-1
答案:

13、判断题:
循环结构中的continue语句是使整个循环终止执行
选项:
A:错
B:对
答案:

14、判断题:
while和do…while循环不论什么条件下它们的结果都是相同的.
选项:
A:错
B:对
答案:

第六章 单元测试

1、单选题:
在一个被调用函数中,关于 return 语句使用的描述,错误的是( )
选项:
A:被调用函数中可以不用 return 语句
B:被调用函数中可以使用多个 return 语句
C:被调用函数中,一个 return 语句可以返回多个值给调用函数
D:被调用函数中,如果有返回值,就一定要有 return 语句
答案:

2、单选题:
以下( )函数的定义是错误的?
选项:
A:void f(int i) { }
B:void f( ) { }
C:int f( ) { return 0; }
D:void f(int i) { return i+1; }
答案:

3、单选题:
C语言中函数返回值的类型是由( )决定的。
选项:
A:return语句中的表达式类型
B:调用该函数的主调函数的类型
C:定义函数时所指定的函数类型
D:调用函数时临时决定
答案:

4、单选题:
C语言规定,必须用(  )作为主函数名。
选项:
A:

main

B:

stdio

C:

Function

D:

include

答案:

5、单选题:
下列说法正确的是(  )。
选项:
A:

main函数可以放在C程序的中间部分,但在执行C程序时是从main函数开始的

B:

main函数必须放在C程序的开头

C:

main函数必须放在C程序的最后

D:

main函数可以放在C程序的中间部分,但在执行C程序时是从程序开头执行的

答案:

6、单选题:
以下程序的输出结果是( )。
void fun(int x, int y, int z)
{ z=x*x+y*y; }

main( )
{ int a=31;
fun(5,2,a);
printf(“%d”,a);
}
选项:
A:

31

B:

无定值

C:

0

D:

29

答案:

7、单选题:
C语言规定,简单变量作实参,它与对应形参之间的数据传递方式是:(  )。
选项:
A:

地址传递

B:

单向值传递

C:

双向值传递

D:

由用户指定传递方式

答案:

8、单选题:
以下函数头定义正确的是:(  )。
选项:
A:

double  fun(int  x ,y)

B:

double  fun(int x, int y) ;

C:

double  fun(int x, int y)

D:

double  fun(int x;int y)

答案:

9、单选题:
现有如下程序
#include“stdio.h”
int fun(int x)
{ printf(“x=%d”,++x);  }

int main( )
{ fun(12+5); return 0; }
则程序的输出结果是(  )。
选项:
A:

x=12

B:

x=17

C:

x=18

D:

x=13

答案:

10、单选题:
有以下程序, 执行后输出的结果是(  )。
void f(int x,int y)
{ int t;
if(x<y){ t=x; x=y; y=t; }
}

main( )
{ int a=4,b=3,c=5;
f(a,b);
f(a,c);
f(b,c);
printf(‘%d,%d,%d’,a,b,c);}
选项:
A:

4,3,5

B:

5,3,4

C:

3,4,5

D:

5,4,3

答案:

11、单选题:
以下关于C语言程序中函数的说法正确的是:(  )。
选项:
A:

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

B:

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

C:

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

D:

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

答案:

12、判断题:
return语句在一个函数体内只能有一个。
选项:
A:对
B:错
答案:

13、判断题:
在C语言中,一个函数一般由两个部分组成,它们是函数首部和函数体。
选项:
A:错
B:对
答案:

第七章 单元测试

1、单选题:
凡是函数中未指定存储类别的局部变量,其隐含的存储类别是____。
选项:
A:extern
B:register
C:static
D:auto
答案:

2、单选题:

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

# include <stdio.h>

int f(int n)

{  static int k, s;

n–;

for(k=n; k>0; k–)

s += k;

return s;

}

int main(void)

{  int k;

k=f(3);

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

return 0;

}

选项:
A:(3,6)
B:(3,3)
C:(6,12)
D:(6,6)
答案:

3、单选题:
在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是(  )。
选项:
A:

register

B:

extern

C:

auto

D:

static

答案:

4、单选题:
以下程序的输出结果是(  )。
#define MAX(x,y) (x)>(y)?(x):(y)
main()
{
int a=5,b=2,c=3,d=3,t;
t=MAX(a+b,c+d)*10;
printf(‘%d’,t);
}
选项:
A:

7

B:

6

C:

70

D:

60

答案:

5、单选题:
变量的有效范围与其定义的位置有关,(  )的作用域在整个源程序文件中都有效。
选项:
A:

在第一个函数中定义的变量

B:

在函数中定义的静态变量

C:

在主函数中定义的变量

D:

在定义第一个函数之前所定义的变量

答案:

6、单选题:
以下关于编译预处理的叙述中错误的是(  )。
选项:
A:

预处理命令不是C语言本身的组成部分

B:

预处理命令行只能位于源程序中的所有语句之前

C:

一条有效的预处理命令必须单独占据一行

D:

预处理命令行必须以#开始

答案:

7、单选题:
如果在一个函数中的复合语句中定义了一个变量,则该变量(  )。
选项:
A:

在本程序范围内有效

B:

为非法变量

C:

只在该复合语句中有效

D:

在该函数中有效

答案:

8、判断题:
进行宏定义时,宏名必须使用大写字母表示。
选项:
A:错
B:对
答案:

9、判断题:
在C语言中,在register寄存器中存储变量比在内存中存储变量运算速度快。
选项:
A:对
B:错
答案:

第八章 单元测试

1、单选题:

下面的程序段将输出 ▁▁▁▁▁ 。

double a[] = {1, 2, 3, 4, 5};
printf(“%d”, sizeof(a));

选项:
A:0
B:48
C:40
D:5
答案:

2、单选题:

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

#include<stdio.h>

int main()

{

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

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

switch(i%2)

{

case 0:

switch(a[i]%2)

{

case 0:

a[i]++;

break;

case 1:

a[i]–;

}

break;

}

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

printf(“%2d”,a[i]);

printf(“”);

return 0;

}

选项:
A:2 0 5 0
B:0 3 0 4
C:3 3 4 4
D:3 0 4 0
答案:

3、单选题:
以下正确地定义了一维整型数组a的语句组是( )
选项:
A:int a(10) ;
B:int n; scanf(“%d”,&n); int a[n];
C:int a[SIZE];(在程序开始有#define SIZE 10)
D:int n=10,a[n];
答案:

4、单选题:
假定int类型变量占用两个字节,其有定义:int x[10]={0, 2, 4}; 则数组x在内存中所占字节数是()。
选项:
A:6
B:10
C:3
D:20
答案:

5、单选题:
在C语言中,一维数组的定义方式为:类型说明符 数组名( ).
选项:
A:

[整型常量表达式]

B:

[整型表达式]

C:

[整型变量]

D:

[整型常量]或[整型表达式]

答案:

6、单选题:
若有说明:int a[10]; ,则对a数组元素的正确引用是( ).
选项:
A:

a[10]

B:

a[3.5]

C:

a[10-10]

D:

a(5)

答案:

7、单选题:
下面关于数组的描述不正确的是( ).
选项:
A:

数组是基本数据类型

B:

数组是构造数据类型

C:

数组是相同数据类型的集合

D:

同一个数组共用一个数组名

答案:

8、单选题:
以下能对一维数组a进行正确初始化的语句形式是( ).
选项:
A:

int a[ ]={0};

B:

int a[3]=(10,5,8);

C:

int a[10]=(0,0,0,0,0);

D:

int a[10]={ };

答案:

9、单选题:
若有定义:int x[10]={1,2,4}; 则数组元素x[4]的值是( )。
选项:
A:

4

B:

1

C:

2

D:

0

答案:

10、单选题:
若有说明:int a[5]; ,则下面可以输出数组a中所有元素值的是( )。
选项:
A:

printf(“%d”,a);

B:

for(i=0;i<5;i++)   printf(“%d”, a[i]);

C:

while(b[i]!=”)  printf(“%d”, a[i]);

D:

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

答案:

11、单选题:
下列不是给数组的第一个元素赋值的语句是( ).
选项:
A:

int a[4];  scanf(“%d”,a);

B:

a[1]=2;

C:

int a[4]={1};

D:

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

答案:

12、判断题:
若有说明:int a[10]={6,7,8,9,10};则该语句不正确,因为数组长度与初值个数不相同。
选项:
A:对
B:错
答案:

13、判断题:
一般地,一维数组各元素分配在连续地内存单元之中。
选项:
A:对
B:错
答案:

第九章 单元测试

1、单选题:
有两个字符数组s1,s2,则以下正确的输入格式是( )
选项:
A:scanf(“%s%s”,&s1, &s2);
B:scanf(“%s%s”,s1, s2);
C:gets(s1,s2);
D:gets(“s1”), gets(“s2″);
答案:

2、单选题:
以下不能对二维数组a进行正确初始化的语句是( )
选项:
A:int a[ ][3]={{1,2},{0}};
B:int a[2][3]= {{1,2},{3,4},{5,6}};
C:int a[2][3]={0};
D:int a[ ][3]={1,2,3,4,5,6};
答案:

3、单选题:
以下对二维数组a的正确说明是( )
选项:
A:float a(3)(4);
B:float a(3,4);
C:float a[3][4];
D:int a[3][ ];
答案:

4、单选题:
若有说明:int a[ ][3]={1,2,3,4,5,6,7}; ,则a数组第一维的大小是( )
选项:
A:

2

B:

3

C:

4

D:

无确定值

答案:

5、单选题:
有以下程序段:int a[ ][4]={1,2,3,4,5,6,7,8,9,10,11,12}; printf(“%d”,a[1][5]); ,执行后输出的结果是(  )
选项:
A:

10

B:

编译有错误

C:

4

D:

11

答案:

6、单选题:
若有初始化语句:int a[3][4]={0}; ,则下面正确的叙述是( )。
选项:
A:

数组a中各元素都可得到初值,但其值不一定为0

B:

只有元素a[0][0]可得到初值0

C:

此初始化语句不正确

D:

数组a中每个元素均可得到初值0

答案:

7、单选题:
如有说明:int a[3][4]; ,则对a数组元素的正确引用是( )。
选项:
A:

a[1+1][0]

B:

a[3][4]

C:

a[1,3]

D:

a(2)(1)

答案:

8、单选题:
对两个数组a和b进行初始化:char a[ ]=“ABCDEF”;   char b[ ]={‘A’,’B’,’C’,’D’,’E’,’F’};   则以下叙述正确的是( )
选项:
A:

a与b长度相同

B:

a与b数组完全相同

C:

a的长度比b长

D:

a与b中都存放字符串

答案:

9、单选题:
下列能正确定义二维实型数组a的选项是( ).
选项:
A:

float a[3][ ]={{1},{0}};

B:

float a[3][4];

C:

float a[3][ ];

D:

float a(3,4);

答案:

10、单选题:
下面描述正确的是( ).
选项:
A:

字符串”That”小于字符串”The”

B:

两个字符串所包含的字符个数相同时,才比较字符串

C:

字符串”STOP□”与“STOP”相等(其中□表示1个空格)

D:

字符个数多的字符串比字符个数少的字符串大

答案:

11、单选题:
若有定义:char a[4]=”abc”, b[20]=”Hello”; ,则执行语句strcat(b,a); 后,数组b中的内容为( ).
选项:
A:

Helloabc

B:

abcHello

C:

Hello

D:

abc

答案:

12、判断题:
字符数组中的数据存储时必须以”结尾。
选项:
A:对
B:错
答案:

13、判断题:
有定义:char a[ ]=”1″; 则a数组的长度是 2。
选项:
A:错
B:对
答案:

14、多选题:
下列字符串赋值语句中,能正确把字符串C program赋给数组的语句是( )
选项:
A:

char a[10]={ “C program”};

B:char a[ ]={‘C’,’ ‘,’p’,’r’,’o’,’g’,’r’,’a’,’m’};
C:

char a[10];  strcpy(a,”C program”);

D:

char a[10]={‘C’,’ ‘,’p’,’r’,’o’,’g’,’r’,’a’,’m’,”};

答案:

15、多选题:
如有说明:int a[3][4]; ,则对a数组元素的合法引用是( )
选项:
A:

a[0][4]

B:

a[1][3]

C:

a[2][0]

D:

a[0][2]

答案:

第十章 单元测试

1、判断题:
for(j=h+1;j<=max-1;j++) printf(“%04d”,a[j]);输出结果中,若数组小于1000则前面显示前导字符0.
选项:
A:错
B:对
答案:

2、判断题:
程序能实现求20的阶乘值。int s=1;n=1;for(n=1;n<=20;n++)s=s*n;

选项:
A:对
B:错
答案:

3、判断题:
对数组下标的访问规律变化,可用数组赋指定值实现。
选项:
A:对
B:错
答案:

4、判断题:
扫雷游戏设计数据结构只能用二维数组。
选项:
A:对
B:错
答案:

5、多选题:
程序设计基本过程包括:
选项:
A:界面设计。
B:确定数据的组织形式即数据结构。
C:总体设计和详细设计
D:理解题意,分析需求。
E:代码的编写、调试、运行。
答案:

6、单选题:
一个递归算法必须包括()。
选项:
A:

递归部分

B:

循环部分

C:

终止条件和递归部分

D:

终止条件和循环部分

答案:

7、单选题:
对于递归函数f,调用f(4),其返回值为() 。
int f(int n)
{
if (n)  return f(n – 1) + n;
else return n;
}
选项:
A:

其余选项均不是

B:

0

C:

4

D:

10

答案:

8、单选题:
调用函数f(27)的输出结果是( )。
void f(int n)
{  if(n<5)
printf(“%d”, n);
else{
printf(“%d”, n%5);
f(n/5);
}
}

选项:
A:

102

B:

21

C:

201

D:

20

答案:

9、单选题:
有如下函数调用语句: func(rec1, rec2+rec3, (rec4, rec5)); 则该函数调用语句中,含有的实参个数是( )。
选项:
A:

3

B:

5

C:

4

D:

有语法错

答案:

10、单选题:
在C语言中,下列错误的说法是。
选项:
A:

函数可以递归调用

B:

对于continue语句,可以通过改变程序的结构而不使用它

C:

不允许在函数定义中再定义函数

D:

递归程序不可能用非递归算法实现

答案:

11、单选题:
对于以下递归函数 f ,调用 f(4),其返回值为( )。
int f(int n)
{ return f(n-1)+n; }
选项:
A:

其余选项均不是

B:

0

C:

10

D:

11

答案:

12、单选题:
有两个字符数组a,b,则以下正确的输入语句是().
选项:
A:

scanf(“%s%s”,a,b);

B:

gets(“a”),gets(“b”);

C:

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

D:

gets(a,b);

答案:

13、单选题:
若用数组名作为函数调用时的实参,则实际上传递给形参的是( )。
选项:
A:

数组元素的个数

B:

数组中全部元素的值

C:

数组的第一个元素值

D:

数组首地址

答案:

14、判断题:
对字符串进行输入输出操作时,只能对字符串整体进行输入输出。
选项:
A:对
B:错
答案:

15、判断题:
若有说明:int a[ ][4]={0,0}; 则表示二维数组a的第一维大小为1。
选项:
A:对
B:错
答案:

第十一章 单元测试

1、单选题:
使用指针变量访问目标变量,也称为对目标变量的()访问。
选项:
A:

一般性

B:

间接

C:

直接

D:

一次性

答案:

2、单选题:
若有说明:int  i, j = 7, *p = &i ; 则与i = j;等价的语句是( ).
选项:
A:

i=&j;

B:

i=**p;

C:

i=p;

D:

*p=*&j;

答案:

3、单选题:
int a=2,*p=&a,*q=p,则以下非法赋值语句是()。
选项:
A:

*p=*q;

B:

q=a;

C:

p=q;

D:

a=*q;

答案:

4、单选题:
若有定义“int *p,m=5,n;”,则下列选项中正确的是().
选项:
A:

p=&n;
scanf(“%d”,&p);

B:

p=&n;
*p=m;

C:

scanf(“%d”,&n);
*p=n;

D:

p=&n;
scanf(“%d”,*p);

答案:

5、单选题:
若定义:int a=5,*b=&a;则printf(“%d”,*b);的输出结果是()。
选项:
A:

无确定值

B:

a的地址

C:

6

D:

5

答案:

6、单选题:
下列关于指针概念的描述,错误的是().
选项:
A:

指针的类型是他所存放的数值的类型

B:

指针中存放的是某变量或对象的地址值

C:

指针是变量,它也具有一个内存地址值

D:

指针的值是可以改变的

答案:

7、单选题:
如果x是整型变量,则合法形式为()。
选项:
A:

&*x

B:

&(x+5)

C:

*x

D:

*&x

答案:

8、单选题:
变量的指针,其含义是指该变量的()。
选项:
A:

B:

一个标志

C:

D:

地址

答案:

9、判断题:
系统对变量的直接访问是将变量的地址放在另一个内存单元中。
选项:
A:错
B:对
答案:

10、判断题:
“int i,k, *p=&i;”中定义的“*p=&i;”等价于“int *p;p=&i;”。
选项:
A:错
B:对
答案:

第十二章 单元测试

1、单选题:
假设scanf语句执行时输入ABCDE<回车>,能使puts(s)语句正确输出ABCDE字符串的程序段是__。
选项:
A:char *s; scanf(“%s”, s); puts(s);
B:char s[5]={“ABCDE”}; puts(s);
C:char *s; s=”ABCDE”; puts(s);
D:char s[5]={‘A’, ‘B’, ‘C’, ‘D’, ‘E’}; puts(s);
答案:

2、单选题:

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

#include<stdio.h>

int main(void)

{

int x[5] = { 2, 4, 6, 8, 10 }, *p, **pp;

p = x;

pp = &p;

printf(“%d ”, *(p++));

printf(”%d”, **pp);

return 0;

}

选项:
A:2 4
B:4 6
C:2 2
D:4 4
答案:

3、单选题:
根据声明int a[10], *p=a; ,下列表达式错误的是( )。
选项:
A:a[9]
B:p[5]
C:*p++
D:a++
答案:

4、单选题:
若有定义“int a[10]={1,2,3,4,5,6,7,8,9,10},*p;”,则下列语句正确的是()。
选项:
A:

for(p=a;p<(a+10);++a)

B:

for(p=a;a<(p+10);a++)

C:

for(p=a;p<(a+10);p++)

D:

for(p=a,a=a+10;p<a;p++)

答案:

5、单选题:
若有定义“int a[10],*p=a;”,则p+5表示()。
选项:
A:

a[5]的值

B:

a[6]的值

C:

a[4]的地址

D:

a[5]的地址

答案:

6、单选题:
若有定义char a[]=”I am a boy”,*b=”I am a boy”;,则下列叙述错误的是()。
选项:
A:

b中存放的地址值可以改变

B:

a+3表示的是字符m的地址

C:

b指向其他字符串时,字符串的长度不受限制

D:

b中存放的地址就是数组a的首地址

答案:

7、单选题:
若有语句int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a,则()不是对a数组元素的正确引用(0<=i<=10)。
选项:
A:

p[i]

B:

a[p-a]

C:

*(*(a+i))

D:

*(&a[i])

答案:

8、单选题:
若有定义“int a[5],*p=a;”,能正确引用a数组元素的是()。
选项:
A:

a+2

B:

*(a+2)

C:

*(p+5)

D:

&a[5]

答案:

9、单选题:
设有定义语句“float s[10],*p1=s,*p2=s+5;”,下列表达式错误的是()。
选项:
A:

p1-p2

B:

p1<=p2

C:

p2–

D:

p1=0xffff

答案:

10、单选题:
以下程序段的输出结果是()。
char *p[ ]={“ABC”,”DEF”,”GHI”};
int j;
puts(p[1]);
选项:
A:

ABC

B:

DEF

C:

B

D:

C

答案:

11、判断题:
用指针变量可以指向一维数组中的元素,也可以指向多维数组中的元素。
选项:
A:对
B:错
答案:

12、判断题:
数组名代表数组的起始地址。
选项:
A:对
B:错
答案:

13、判断题:
有如下说明:int  a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则数值为9的表达式是 *(p+8)。
选项:
A:错
B:对
答案:

第十三章 单元测试

1、单选题:

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

#include<stdio.h>

struct s

{

int x;

int y;

} data[2] = {10, 100, 20, 200};

int main()

{

struct s *p = data + 1;

printf(“%d”, p->x);

return 0;

}

选项:
A:21
B:11
C:20
D:10
答案:

2、单选题:

有如下定义:

struct Student{

char name[10];

int age;

char gender;

}std[3], *p=std;

则以下各输入语句中错误的是:

选项:
A:scanf(“%s”,&std.name);
B:scanf(“%c”,&(p->gender));
C:scanf(“%d”,&(*p).age);
D:scanf(“%c”,&std[0].gender);
答案:

3、单选题:
有如下定义:struct  date { int year; int month;  int day; };struct  { char name[20]; char sex; struct date birthday; }person;下面正确的赋值语句是()。
选项:
A:

person.year=1980;

B:

year=1980 ;

C:

person.birthday.year=1980;

D:

birthday.year=1980 ;

答案:

4、单选题:
共用体变量在程序执行期间()。
选项:
A:

部分成员一直驻留在内存中

B:

所有成员一直驻留在内存中

C:

只有一个成员一直驻留在内存中

D:

没有成员一直驻留在内存中

答案:

5、单选题:
设有以下定义:struct sk{int a;float b;}data;int *p;若要使p指向data中的a域,正确的赋值语句是()。
选项:
A:

p=&a;

B:

p=data.a;

C:

p=&data.a;

D:

*p=data.a;

答案:

6、单选题:
对于结构体变量的引用,下列叙述正确的是()。
选项:
A:

对结构体成员可以进行各种运算,其中“.”优先级最低。

B:

只能引用结构体变量成员的地址,不能引用结构体变量的地址。

C:

如果成员本身就是一个结构体,只能对最低级的成员进行赋值等引用和运算。

D:

两个同一类型的结构体变量之间不能整体赋值。

答案:

7、单选题:
以下叙述错误的是()。
选项:
A:

可以用typedef将已存在的类型用一个新的名字代表

B:

可以通过typedef增加新的类型

C:

用typedef定义新类型后,原有类型名仍有效

D:

用typedef可以为各种类型起别名,但不能为变量起别名

答案:

8、单选题:
在一个单链表head中,若要在指针p所指结点后插入一个q指针所指结点,则执行()。
选项:
A:

p->next=q->next; p->next=q;

B:

q->next=p->next; p->next=q;

C:

q->next=p->next; p=q;

D:

p->next=q->next; q->next=p;

答案:

9、单选题:
链表不具有的特点是()。
选项:
A:

所需空间与线性长度成正比

B:

不必事先估计存储空间

C:

可随机访问任一元素

D:

插入、删除不需要移动元素

答案:

10、判断题:
“结构体名”和“结构体成员名”都是用户定义的标识符。
选项:
A:错
B:对
答案:

11、判断题:
每个“结构体成员列表”项中都可以含有多个同类型的成员名,它们之间以分号分隔。
选项:
A:对
B:错
答案:

12、判断题:
共用体变量所占内存长度是各成员所占内存长度之和。
选项:
A:错
B:对
答案:

13、多选题:
若有以下说明和语句:struct  student { int no;   char *name;  }stu, *p=&stu; 则以下引用方式正确的是()。
选项:
A:

stu->no

B:

(*p).no

C:

stu.no

D:

p->no

答案:

14、多选题:
设有说明语句:struct s { int a; float b; }type;则下面正确的叙述是()。
选项:
A:

struct s是用户定义的结构体类型

B:

a和b都是结构体成员名

C:

type是用户定义的结构体类型名

D:

struct是结构体类型的关键字

答案:

第十四章 单元测试

1、单选题:

以下语句将输出 ()。

#include <stdio.h>

printf(“%d  %d  %d”, NULL, ”, EOF);

选项:
A:NULL EOF
B:0 0 1
C:1 0 EOF
D:0 0 -1
答案:

2、单选题:
下列关于C语言数据文件的叙述中正确的是____。
选项:
A:文件由二进制数据序列组成,C语言只能读写二进制文件
B:文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
C:文件由ASCII码字符序列组成,C语言只能读写文本文件
D:文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
答案:

3、单选题:
若要打开A盘上的user子目录下的名为abc.txt的文本文件进行读写操作,下列符合此要求的函数调用是()。
选项:
A:fopen(“A:userabc.txt”,”rb”);

B:

 fopen("A:userabc.txt","w");

C:fopen(“A:userabc.txt”,”r”);

D:

fopen("A:userabc.txt","r+");

答案:

4、单选题:
C语言中,对文件的存取以()为单位。
选项:
A:

记录

B:

C:

元素

D:

字节

答案:

5、单选题:
关闭文件函数的正确调用形式是()。
选项:
A:

fclose(文件指针);

B:

fclose(*文件指针);

C:

fclose. *文件指针;

D:

fclose. 文件指针;

答案:

6、单选题:
若以”a+”方式打开一个已存在的文件,则叙述正确的是()。
选项:
A:

文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作。

B:

文件打开时,原有文件内容被删除,位置指针移到文件开头,可作重新写和读操作。

C:

其余选项说法皆不正确。

D:

文件打开时,原有文件内容被删除,只可作写操作。

答案:

7、单选题:
若要用fopen函数打开一个新的二进制文件,该文件既要能读也要能写,则文件打开方式字符串应是()。
选项:
A:

“ab+”

B:

“wb+”

C:

“rb+”

D:

“ab”

答案:

8、单选题:
直接使文件指针重新定位到文件读写的首地址的函数是() 。
选项:
A:

rewind()函数

B:

ferror()函数

C:

fseek()函数

D:

ftell()函数

答案:

9、判断题:
文本文件每个字节存放一个ASCII码,代表一个字符。
选项:
A:对
B:错
答案:

10、判断题:
定义文件指针的一般形式:FILE 指针变量名;
选项:
A:错
B:对
答案:

11、判断题:
C语言中文件缓冲区是硬盘上一块区域。
选项:
A:错
B:对
答案:

12、多选题:
下列文件使用方式及含义描述正确的是()。
选项:
A:

”r”(只读)为输入打开一个文本文件

B:

”r+”(读写)为读/写打开一个文本文件

C:

”a”(追加)向二进制文件尾增加数据

D:

”w”(只写)为输出打开一个文本文件

答案:

0
觉得这篇文章对你有用的话,就打赏一下支持文章作者

评论0

请先

站点公告

开放大学课程作业代写,有需要扫码加微信

显示验证码

社交账号快速登录