智慧树知到《C语言程序设计(西安理工大学)》章节测试答案
智慧树知到《C语言程序设计(西安理工大学)》章节测试答案
第一章单元测试
1、一个C程序可能出现的错误有。
A.逻辑错误
B.以上都包括
C.语法错误
D.运行错误
正确答案:以上都包括
2、C程序中一般可以包含几个函数。
A.多个
B.0个
C.至少一个
D.1个
正确答案:至少一个
3、C语言属于程序设计语言的哪个类别?
A.面向对象语言
B.汇编语言
C.高级语言
D.机器语言
正确答案:高级语言
4、没有语法错误了,程序就是正确的。
A.正确
B.错误
正确答案:错误
5、一个C程序中可以出现两个main函数。
A.正确
B.错误
正确答案:错误
第二章单元测试
1、类型修饰符unsigned不能修饰()
A.char
B.long int
C.float
D.int
正确答案:float
2、16位的二进制数可以表示的整数的范围是()
A.[-32768,32767]
B.[-32767,32767]
C.[-32768,32768]
D.[-32767,32768]
正确答案:[-32768,32767]
3、C语言中的实型数据包括()
A.int和double
B.float和double
C.int和float
D.float和char
正确答案:float和double
4、以下不合法的字符常量是()
A.';2'
B.';ab'
C.';A'
D.';\n'
正确答案:';ab'
5、在以下各组标识符中,均是合法的C语言标识符是()
A.A()4d,()student,xyz()abc,if
B.abc,A()4d,()student,xyz()abc
C.abc,a()b,union,scan
D.auto,12-a,a()b,ab5.x
正确答案:abc,A()4d,()student,xyz()abc
6、在C语言中,要求参加运算的数必须是整数的运算符是()
A.++
B./
C.%
D.*
正确答案:%
7、若有定义:char a;int b;float c;double d;则表达式a*b+d-c值的类型为()
A.double
B.char
C.float
D.int
正确答案:double
8、设有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是()
A.3.5
B.0.0
C.2.5
D.2.75
正确答案:2.5
9、若有定义:double x=1,y;执行语句y=x+3/2;,则y的值是()
A.2
B.1
C.2.0
D.2.5
正确答案:2
10、设int a=1,b=2;以下选项中不正确的语句是()
A.a/=1
B.a+=3
C.a*3=3
D.a=a+b
正确答案:a*3=3
第三章单元测试
1、算法描述可以有多种表达方法,下面()方法不可以描述算法。
A.N-S图
B.自然语言
C.机器语言
D.伪代码
正确答案:机器语言
2、执行以下程序后k的值是()int i,j=10,k=0;for(i=0;i<;=j;i++); {k=i+j;j--;}
A.9
B.11
C.10
D.8
正确答案:10
3、设int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>;b)&;&;(n=c>;d)后n的值为()
A.2
B.0
C.3
D.1
正确答案:2
4、表示y在(-∞,3]和[23,+∞)范围内为真的表达式为()
A.(y<;=3)&;&;(y>;=23)
B.(y<;3)&;&;(y>;23)
C.(y<;=3)||(y>;=23)
D.(y<;3)||(y>;23)
正确答案:(y<;=3)||(y>;=23)
5、已知int x=10,y=20,z=30;则执行以下语句后x、y、z的值是()if(x>;y); z=x; x=y; y=z。
A.x=20,y=30,z=30
B.x=20,y=30,z=20
C.x=10,y=20,z=30
D.x=20,y=30,z=10
正确答案:x=20,y=30,z=30
6、设有声明语句:int a=1,b=0;则执行以下语句后输出结果为()switch(a){; case 1:switch(b); {; case 0:printf(";**0**";);break;case 1:printf(";**1**";);break; }; case 2:printf(";**2**";);break;}
A.**0****2**
B.有语法错误
C.**0****1****2**
D.**0**
正确答案:**0****2**
7、设有以下程序,若要使程序的输出值为2,则应该从键盘给n输入的值是()void main(){; int s=0,a=1,n; scanf(";%d";,&;n); do; {s=s+1; a=a-2; }while(a!=n); printf(";%d ";,s);}
A.0
B.-1
C.-3
D.-5
正确答案:-3
8、for(i=j=0;i<;10&;&;j<;8;i++,j+=3)控制的循环体执行的次数是()
A.9
B.2
C.3
D.8
正确答案:3
9、以下程序段的输出结果是()int x=5;if(x--<;5); printf(";%d";,x);else; printf(";%d";,x++)。
A.4
B.6
C.3
D.5
正确答案:4
10、对下面程序段,描述正确的是()for(t=1;t<;=100;t++){; scanf(";%d";,&;x); if(x<;0); continue; printf(";%d ";,x);}
A.当x<;0时,整个循环结束
B.当x>;=0时,什么也不输出
C.最多允许输出100个非负整数
D.printf函数永远也不执行
正确答案:最多允许输出100个非负整数
第四章单元测试
1、包含标准库函数scanf声明的头文件是()
A.time.h
B.stdio.h
C.stdlib.h
D.math.h
正确答案:stdio.h
2、以下关于函数的叙述中正确的是()
A.C语言程序将从源程序中第一个函数开始执行
B.可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行
C.main可作为用户标识符,用以定义任意一个函数
D.C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束
正确答案:C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束
3、以下关于函数的叙述中不正确的是()
A.在C语言程序中,函数的定义不能嵌套
B.在C语言程序中,函数的调用可以嵌套
C.在C语言程序中,被调用的函数必须在main函数中定义
D.C程序是函数的集合,包括标准库函数和用户自定义函数
正确答案:在C语言程序中,被调用的函数必须在main函数中定义
4、以下不正确的说法是()
A.在函数内定义的变量只在本函数范围内可以使用
B.在主函数内定义的变量可在其余函数中通用
C.在不同函数中可以使用相同名字的变量
D.形式参数是局部变量
正确答案:在主函数内定义的变量可在其余函数中通用
5、以下正确的函数定义是()
A.double fun(int x,int y) { z=x+y; return z; }
B.double fun(int x,int y) { double z; z=x+y; return z; }
C.fun(int x,y) { int z; return z; }
D.fun(x,y){ int x,y; double z; z=x+y; return z; }
正确答案:double fun(int x,int y) { double z; z=x+y; return z; }
6、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是()
A.由用户指定传递方式
B.由实参传给形参,再由形参传回实参
C.单向值传递
D.地址传递
正确答案:单向值传递
7、下列程序的运行结果是()#include; <;stdio.h>; void fun(); int main(); {; int a=10; fun(); printf(";%5d";,a); return 0; }; void fun(); {; int a=20; printf(";%5d";,a);}
A.20 10
B.10 10
C.10 20
D.20 20
正确答案:20 10
8、下列程序的运行结果是()#include <;stdio.h>;void fun(); int a=5; int main(); {; int a=10; fun(); printf(";%5d";,a); return 0; }; void fun(); {; a=a+5; printf(";%5d";,a);}
A.10 5
B.5 10
C.5 5
D.10 10
正确答案:10 10
9、以下正确的描述是()
A.函数的定义和函数的调用均不可嵌套
B.函数的定义不可以嵌套,但函数的调用可以嵌套
C.函数的定义和函数的调用均可以嵌套
D.函数的定义可以嵌套,但函数的调用不可以嵌套
正确答案:函数的定义不可以嵌套,但函数的调用可以嵌套
10、下列程序的运行结果是()#include <;stdio.h>;int fun1(int ;x); void fun2(); int x=5; int main(); {; int x=1;x=fun1(x);printf(";%d";,x); return 0; }; int fun1(int x); {; x++; fun2(); return x; }; void fun2(); {; x++;}
A.6
B.5
C.7
D.2
正确答案:2
第五章单元测试
1、C语言中,由固定数目的同类型的变量按一定顺序排列而构成的是()。
A.队列
B.链表
C.结构体
D.数组
正确答案:数组
2、当数据已知的情况下,可以在定义数组时,对数组进行初始化,但不可()。
A.对部分元素赋初值
B.对数组元素赋同一初值
C.对全部元素赋初值
D.在方括号中写入变量表达式
正确答案:在方括号中写入变量表达式
3、数组元素下标可从()开始。
A.用户指定
B.1
C.任意自然数
D.0
正确答案:0
4、冒泡排序中,若有n个数,第一趟最多需要比较()次。
A.2(n-1)
B.n
C.n-1
D.2n
正确答案:n-1
5、利用冒泡排序得到升序排列,每一趟中从前到后遍历数组,将相邻两个数作比较,如果前面的数小于后面的数,则()。
A.将当前数据前移
B.将当前数据后移
C.交换两个数的位置
D.不做操作
正确答案:不做操作
6、若不允许函数修改数组元素,则可以用()限定符作为数组参数的前缀,这样数组元素就成为函数中的常量。
A.define
B.fix
C.include
D.const
正确答案:const
7、在定义int; m[ ][3]={1,2,3,4,5,6};后,m[1][0]的值是()。
A.1
B.5
C.2
D.4
正确答案:4
8、若给出以下定义: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的长度
9、函数调用语句为:int a[10],maxnum;…maxnum=max(a);函数定义首部应为()。
A.int max(int b)
B.double max(int b[])
C.int max(int a)
D.int max(int b[])
正确答案:int max(int b[])
10、若有定义:int; b[3][4]={0};则下述正确的是()。
A.没有元素可得初值0
B.数组b中各元素可得初值但值不一定为0
C.数组b中各元素均为0
D.此定义语句不正确
正确答案:数组b中各元素均为0
第六章单元测试
1、在16位系统中,定义以下结构体类型struct ;s{;int ;a;char ;b;float ;f;};则语句printf(";%d";,sizeof(struct ;s))的输出结果为()。
A.3
B.6
C.7
D.4
正确答案:7
2、以下选项中不能正确把cl定义成结构体变量的是()。
A.typedef struct
; {int red
;int green
;int blue
; } COLOR
;COLOR cl
B.struct color
; { int red
; int green
; int blue
; }cl
C.struct color cl
; { int red
; int green
; int blue
; }
D.struct
;{int red
;int green
;int blue
; }c1
正确答案:struct color cl
; { int red
; int green
; int blue
; }
3、当定义一个结构体变量时,系统为它分配的内存空间是()
A.结构中各成员所需内存容量之和
B.结构中第一个成员所需的内存容量
C.结构中一个成员所需的内存容量
D.结构体中占内存容量最大者所需的容量
正确答案:结构中各成员所需内存容量之和
4、根据下面的定义,能打印出字母M的语句是()。struct person { char name[9]; int age;};struct person classes[10]={";John";,17, ";Paul";,19,";Mary";,18, ";Adam";,16}。
A.printf(";%c";,classes[2].name[0])
B.printf(";%c";,classes[3].name)
C.printf(";%c";,classes[2].name[1])
D.printf(";%c";,classes[3].name[1])
正确答案:printf(";%c";,classes[2].name[0])
5、不可以作为函数参数的有()。
A.结构体数组元素
B.结构体变量整体
C.结构体数组名
D.结构体数组整体
正确答案:结构体数组整体
6、结构体变量整体作函数参数时,以下说法正确的是()。
A.以上说法都不对,不能整体作为函数参数
B.结构体变量整体不能做形参
C.实参结构体变量和形参结构体变量的类型应当一致。
D.结构体变量整体不能做实参
正确答案:实参结构体变量和形参结构体变量的类型应当一致。
7、已知字符';0';的ASCII码为十六进制的30H,下面程序的输出是()。void main(){ union { unsigned char c;unsigned int i[4];} z;z.i[0]=0x39;z.i[1]=0x36;printf(";%c";,z.c);}
A.9
B.0
C.3
D.6
正确答案:9
8、在下面的叙述中,不正确的是()。
A.枚举常量表中的元素有先后次序,可以进行比较。
B.可以在定义枚举类型时对枚举常量进行指定表示的值。
C.枚举变量只能取对应枚举类型的枚举常量表中的元素。
D.枚举常量的值可以是整数或字符串。
正确答案:枚举常量的值可以是整数或字符串。
9、设有以下语句typedef ; struct ;S{ ;int g; char ;h;} T;则下面叙述中正确的是()。
A.S是struct类型的变量
B.可以用T定义结构体变量
C.T是struct S类型的变量
D.可用S定义结构体变量
正确答案:可以用T定义结构体变量
10、以下叙述中错误的是()。
A.用typedef可以为各种类型起别名,但不能为变量起别名
B.可以用typedef将已存在的类型用一个新的名字来代表
C.可以通过typedef增加新的类型
D.用typedef定义新的类型名后,原有类型名仍有效
正确答案:可以通过typedef增加新的类型
第七章单元测试
1、系统根据()为变量分配内存单元。
A.数据
B.类型
C.名称
D.大小
正确答案:类型
2、程序编译后,对变量的访问是通过()来进行的。
A.文件
B.函数
C.变量名
D.地址
正确答案:地址
3、int a[5]={ 10,20,30,40,50 }, *p=a;printf(";%d";,*p+1);结果是()。
A.21
B.11
C.20
D.10
正确答案:11
4、若int; *p[4],则p的含义是()。
A.指针数组
B.指向整型的指针
C.整型变量
D.指向一维分数组的指针
正确答案:指针数组
5、请正确的填充语句:void main(int argc, char ()) 。
A.**argv[ ]
B.argv
C.*argv[ ]
D.argv[ ]
正确答案:*argv[ ]
6、定义p为指向函数的指针变量,应该采用()方式。
A.int; p(int x )
B.int; (*p)(int x )
C.int; *p (int *x; )
D.int; p (int *x )
正确答案:int; (*p)(int x )
7、获取指针变量所指向的值,用的运算符是()。
A.*
B.&
C.%
D.!
正确答案:*
8、int a[10], *p;则让p指向数组的首地址的是()。
A.p=a[0]
B.p=&;a[0]
C.*p=a
D.a=p
正确答案:p=&;a[0]
9、数组名是表示数组首地址的地址()。
A.结构体
B.别名
C.变量名
D.常量
正确答案:常量
10、int a[3][5], *p;p=a[0];则p++后的值代表了()。
A.第一个元素的首地址
B.第二行的首地址
C.第一行第二个元素的首地址
D.第一个元素的值
正确答案:第一行第二个元素的首地址
第八章单元测试
1、将文件分为ASCII码文件和二进制码文件两种,是从文件的()来区分的。
A.读写方式
B.存盘方式
C.编码方式
D.打开方式
正确答案:编码方式
2、文本文件在磁盘存放时,每个字符对应一个字节,用来存放()码。
A.数字
B.二进制
C.字符
D.ASCII
正确答案:ASCII
3、文件操作流程中的最后一个步骤是()文件。
A.存储
B.打开
C.关闭
D.读取
正确答案:关闭
4、文件的变量类型名是()。
A.FILE
B.char
C.int
D.file
正确答案:FILE
5、在fopen函数中,“rb”表示为输入打开一个()文件。
A.文本
B.头文件
C.目标文件
D.二进制
正确答案:二进制