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
版权声明:本文标题:程序设计基础智慧树知到答案章节测试2023年 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1735815133a1691157.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论