admin 管理员组

文章数量: 1086019


2025年1月1日发(作者:configure原理)

绪论单元测试

1. 以下对C语言程序的描述,正确的是( )。

A:C语言程序首先执行main函数前的语句

B:C语言程序从定义的第一个函数开始执行

C:C语言程序总是从main函数开始执行

D:C语言程序从包含的第一个头文件开始执行

答案:C

2. C语言属于( )语言。

A:机器语言

B:面对对象语言

C:高级语言

D:汇编语言

答案:C

3. 以下对C语言程序工作过程的描述,错误的是( )。

A:程序编译链接为可执行文件后存储在磁盘中

B:程序执行时将按照程序指定的逻辑从存储器中获取指令,并逐条执行

C:程序中的指令、数据均以二进制形式存储在存储器中

D:执行程序时通过解释器,逐行边解释为机器可理解的指令边执行这些指令

答案:D

4. 以下关于计算机语言的描述,错误的是( )。

A:计算机可以直接使用机器语言

B:计算机可以不需要解析直接使用高级语言

C:汇编语言中使用了助记符来帮助开发人员开发

D:计算机高级语言(如C语言)更具有可读性,开发效率进一步提升

答案:B

5. C语言的功能和用途有( )。

A:编写嵌入式系统

B:开发其他计算机高级语言

C:编写操作系统底层调度算法

D:直接与硬件交互

答案:ABCD

6. C语言程序中包含( )。

A:定义的变量

B:main函数

C:头文件

D:助记符

答案:ABCD

7. C语言程序中可以没有main函数,也可以执行。( )

A:错

B:对

答案:A

第一章测试

1. 以下不是算法的特征是( )

A:简洁性

B:可行性

C:确切性

D:有穷性

答案:A

2. 以下不是评价一个算法的指标( )

A:时间复杂度

B:空间复杂度

C:健壮性

D:问题的规模

答案:D

3. 以下哪种图形表示选择结构( )

A:

B:

C:

D:

答案:A

4. 变量n初始为1,以下代码中哪个n最终可以为10( )

A:while(n<=10){n=n+1}

B:while(int i=10; i>=0; i–){n=ni}

C:while(int i=0; i

=10; i++){n=ni}

D:while(n<10){n=n+1;}

答案:D

5. 实现x和y的值交换,能够实现此功能的是( )

A:x=y;

B:x=y; y=x; x=x;

C:x=y; y=x;

D:int t; t=x; x=y; y=t;

答案:D

6. 结构程序化设计不应该使用( )

A:灵活、简洁的goto结构

B:自顶向下,逐步细化的方法

C:三种基本结构:顺序结构、选择结构、循环结构的编码方法

D:模块化设计

答案:A

7. 程序的基本结构包括( )

A:顺序结构

B:逻辑结构

C:选择结构

D:循环结构

答案:ACD

8. 结构化程序设计方法包括( )

A:逐步细化

B:自顶向下

C:模块化设计

D:结构化编码

答案:ABCD

9. 算法有且只有一个输入和输出( )

A:对

B:错

答案:B

10. 描述算法可用自然语言、传统流程图、N-S流程图来描述( )

A:错

B:对

答案:B

第二章测试

1. 下列定义变量的语句中正确的是:( )

A:int int123

B:float US$

C:double int

D:char For

答案:A

2. C语言中最简单的数据类型包括:( )

A:整型、实型、字符型

B:整型、实型、逻辑型、字符型

C:整型、字符型、逻辑型

D:整型、实型、逻辑型

答案:A

3. main(){int a=8,b=4;printf(“%d”, b=b/a);}上述程序的输出结果是( )

A:4

B:0

C:不确定值

D:1

答案:B

4. a=125.534;a=(int)125.521%4;设a为int型变量,执行上述赋值语句后,a

的取值分别是( )

A:125.534,2

B:125,21

C:125,31

D:125,1

答案:D

5. int b=3; ++b;则b的值为( )

A:2

B:4

C:3

D:5

答案:B

6. 下列说法不正确的是( )

A:在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句

中有效

B:主函数main中定义的变量在整个文件或程序中有效

C:形式参数是局部变量

D:不同函数中,可以使用相同名字的变量

答案:B

7. 以下属于不合法赋值语句的是( )

A:x+y;

B:c=int(a+b);

C:x=y=200;

D:–d;

答案:AB

8. 以下选项是不合法常量的是( )

答案:AC

9. ¥temp是合法的变量名称( )

A:对

B:错

答案:B

10. 编译系统把浮点型常量都按双精度处理,分配16个字节( )

A:错

B:对

答案:A

第三章测试

1. main() {int a=1, b=2, c=3;if(a<c) {b=a;c=b;a=c;} else {a=0;}printf(“a=%d”, a);}

上述程序的输出是( )

A:1

B:2

2.

3.

4.

5.

6.

7.

8.

C:3

D:0

答案:A

以下一组运算符中,优先级最低的运算符是( )

A:-

B:!=

C:*

D:>

答案:B

#include<stdio.h>int main(){ int a=1,b=2,c=3,d=4,m=2,n=2; (m=a<

b)||(n=c>d); printf(“%d:2 2

B:1 2

C:0 1

D:1 0

答案:B

若int i=0,j=1,k=2 k= i++ && j++;则此时的k为多少( )

A:1

B:2

C:3

D:0

答案:D

设a=1,b=2,c=3,d=4,则表达式:a>b?a:c<d?c:d的结果为( )

A:2

B:1

C:4

D:3

答案:D

以下不能作为switch语句中的条件的是( )

A:3

B:1

C:1+1

D:‘A’

答案:C

以下 if语句形式正确的有( )

A:if(表达式){若干语句;}if {若干语句;}else{若干语句;}

B:if(表达式){若干语句;}

C:if(表达式){若干语句;}else{若干语句;}

D:if(表达式){若干语句;}else if{若干语句;}

答案:BC

以下对逻辑运算符两侧的运算对象的数据类型描述不正确的是( )

A:只能是0或非0整数

B:可以是整数或字符型数据

C:只能是0或者1

D:可以是任何类型的整数

答案:AC

9. 条件运算符?和:是一对运算符,不能分开单独使用。( )

A:错

B:对

答案:B

10. 在switch语句中,每一个的case常量表达式的值可以相同。( )

A:对

B:错

答案:B

第四章测试

1. 下面有关for循环的错误描述有( )

A:for循环是先执行循环体语句,后判定表达式

B:在for循环中,可以用break语句跳出循环体

C:for循环语句中,可以包含多条语句,但要用花括号括起来

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

答案:A

2. 以下叙述正确的是( )

A:continue语句的作用是结束整个循环的执行

B:从多层循环嵌套中退出时,只能使用goto语句

C:在循环体内使用break语句或continue语句作用相同

D:只能在循环体内和switch语句体内使用break语句

答案:D

3. int k=0;while(k=0) k=k-1;对上述程序段叙述正确的是( )

A:循环体一次也不执行

B:循环体被执行

C:while循环执行10次

D:无限循环

答案:A

4. for(i=3;i;i–)for(j=0;j<2;j++)for(k=0;k<=2;k++){……}若i,j已定义成int型,

则上述程序段中内循环体的总执行次数是( )

A:18

B:30

C:36

D:27

答案:A

5. int a=10,b=0;do{b+=2;a-=2+b;}while(a>=0);上述程序段中,循环体的执行次

数是( )

A:2

6.

7.

8.

9.

10.

B:5

C:4

D:3

答案:D

main(){for(int i=1;i<=5;i++){if(i%2) printf(““);else

continue;printf(”#“);}printf(”$n");}

上述程序的输出结果是(

A:*#*#*#$

B:##$

C:##$

D:###$

答案:A

在C语言中,以下说法错误的是( )

A:do-while构成的循环必须用break才能退出

B:do-while构成的循环,当while中的表达式值为零时结束循环

C:不能使用do-while构成循环

D:do-while构成的循环,当while中的表达式值为非零时结束循环

答案:ACD

for(t=1;t<=100;t++){scanf(“%d”,&x);if(x<0) continue;printf(“%d”,t);}对上

述程序段,描述错误的是( )

A:最多允许输出100个非负整数

B:当x>=0时,什么也不输出

C:当x<0时,整个循环结束

D:printf函数永远也不执行

答案:BCD

do-while语句构成的循环不能用其他语句构成的循环来代替。( )

A:错

B:对

答案:A

while的循环控制条件比do-while的循环控制条件严格。( )

A:错

B:对

答案:A

第五章测试

1. int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; 若有上述数组说明,则数值最大的和

最小的元素下标分别是( )

A:0,12

B:11,0

C:1,12

D:1,11

答案:B

2. int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};若有上述数组说明,则int i=10; a[a[i]]

元素数值是( )

A:5

B:6

C:9

D:10

答案:B

3. 假定int类型变量占用两个字节,其有定义int x[10]={0,2,4};,则数组x在

内存中所占字节数是( )

A:20

B:3

C:6

D:10

答案:A

4. 若有说明:int a[][3]={{1,2,3},{4,5},{6,7}}; 则数组a的第一维的大小为( )

A:2

B:4

C:3

D:5

答案:C

5. 以下定义语句中,错误的是( )

A:int a[]={1,2};

B:char a[5]={0};

C:int n=5, a[n];

D:char s[10]=“test”;

答案:C

6. int x[3][3]={1,2,3,4,5,6,7,8,9};for (int i=0;i<3;i++) printf(“%d”,x[i][2-i]);上述

程序段的输出结果是:( )

A:1 5 9

B:1 4 7

C:3 5 7

D:3 6 9

答案:C

7. 下面初始化正确的是( )

答案:ABCD

8. 下面二维数组初始化正确的是( )

A:int arr[3][4] = {{1,2},{4,5}};

B:int arr[][4] = {{2,3},{4,5}};

C:int arr[3][4] = {{1,2,3,4}};

D:int arr[3][] = {1,2,3,4};

答案:ABC

9. 字符串比较的规则是: 将两个字符串自左至右逐个字符相比(按ASCII码值大

小比较),直到出现不同的字符或遇到′0′为止。( )

A:错

B:对

答案:B

10. scanf函数中的输入项如果是字符数组名,不需要再加地址符&。( )

A:对

B:错

答案:A

第六章测试

1. 未指定存储类别的变量,其默认的隐含存储类别为( )。

A:register

B:auto

C:static

D:extern

答案:B

2. 将数组名作为函数调用时的实参时,传递给形参的是( )。

A:数组元素的个数

B:数组的首地址

C:数组的第一个元素

D:数组所有元素

答案:B

3. 对C语言中函数的描述正确的是( )。

A:可以嵌套调用,不可以递归调用

B:可以递归调用和嵌套调用要看

C:嵌套调用和递归调用均可以

D:可以嵌套定义

答案:C

4. C语言在函数调用时,以下说法正确的是( )。

A:实参数量可以多于形参数量

B:形参在函数调用后仍然在内存中,直到程序运行结束才释放空间

C:形参可以不指定具体的类型,由实参确定类型

D:实参和形参的类型需要保持一致

答案:D

5. 以下对C语言函数的返回值说法中,正确的是( )。

A:函数中不能有多个return语句

B:返回值类型由函数定义的类型决定

C:返回值类型可以临时确定

D:对于void函数,函数中可以出现return

答案:B

6. 当数组名作为函数参数传递时,下面说法正确的是( )。

A:形参必须指定大小,否则会溢出的情况

7.

8.

9.

10.

B:形参可以不指定大小

C:形参不是地址变量

D:形参接收到的是数组的第一个元素值

答案:B

以下对C语言函数的理解正确的有( )

A:C语言函数定义和调用的越多,运行时间开销呈指数型增长

B:C语言函数的使用可以模块化各个功能组件,方便调用

C:C语言是过程性语言,使用函数可以增强可读性和维护性

D:C语言的执行总是从main函数开始的,且一定在main函数中结束

答案:BCD

以下对C语言存储方式的描述正确的有( )。

A:函数形式参数存储在动态存储区,在调用函数前提前分配空间

B:全局变量在程序执行过程中是静态分配和释放的

C:全局变量全部存放在静态存储区中

D:由于编译器可以预先知道函数的执行流程,局部变量可以提前存在静态存

储区中

答案:BC

在函数内定义的变量是局部变量,只在函数内有效,在函数外定义的变量是

全局变量。( )

A:对

B:错

答案:A

在不同函数中,可以定义具有相同名称的临时变量。( )

A:对

B:错

答案:A

第七章测试

1. 一个变量的指针,指的是该变量的( )

A:地址

B:助记符

C:变量名

D:值

答案:A

2. int a=2, *p= 则下列函数调用中错误的是( )

A:printf(“%d”, p);

B:scanf(“%d”, &a);

C:printf(“%d”, a);

D:scanf(“%d”, p);

答案:A

3. int p, a=10, b=1; p= a=p+b;执行该段程序结束后,a的值为( )

A:11

B:编译出错

C:10

D:12

答案:A

4. 以下语句中,对字符串操作正确的语句是( )

A:char s; scanf(“%s”, &s);

B:char s=”ABCDE”;

C:char s[5]={“ABCDE”};

D:char s[5]={‘a’,’b’,’c’,’d’,’e’,’’};

答案:B

5. int a[5]={1,2,3,4,5}; int p=&a[2];

则下面对

p

的操作错误的是(

A:int q=a; q=q+p;

B:p+1

C:++p

D:p-1

答案:A

6. void fun(int p1, int p2) {int p; p=p1; p1=p2; p2=p;}该段函数的作用为( )

A:交换p1

p2的地址

B:语法正确,但无法交换p1

p2的值

C:交换p1

p2的值

D:语法错误

答案:C

7. char *p1 = “Hello,word!”; char p2[] = “Hello,world!”;对p1和p2的描述错误

的有( )

A:p2没有包含结束标志符’’

B:p1是指针指向字符串,所以sizeof(p1)=13

C:p1由于是字符指针变量,所以sizeof(p1)=4

D:p2是字符数组,sizeof(p2)=13

答案:AB

8. 以下指针变量定义和引用正确的有( )

A:int i, p=

B:int p=&i, i;

C:int p, i;

D:int i=5; void p=

答案:AC

9. 指针可以实现对数据的间接访问。( )

A:错

B:对

答案:B

10. 指针的类型可以不跟其所指向的变量的数据类型一致。( )

A:对

B:错

答案:B


本文标签: 函数 语句 循环 变量