智慧树知到《C语言程序设计(山东联盟)》章节测试答案
智慧树知到《C语言程序设计(山东联盟)》章节测试答案
第一章单元测试
1、在C语言中,下面标识符非法的是()。
A.abc3
B.sum&
C.()name
D.SUM
正确答案:sum&
2、C语言源程序要正确地运行,必须要有()。
A.自定义函数
B.Printf函数
C.scanf函数
D.main函数
正确答案:main函数
3、一个C 语言程序是由()。
A.若干过程组成
B.函数组成
C.一个主程序和若干子程序组成
D.若干子程序组成
正确答案:函数组成
4、C语言中数据的基本类型包括()。
A.整型、实型、字符型
B.整型、实型、字符型和枚举型
C.整型、实型、字符型和指针型
D.整型、实型、字符型和结构体
正确答案:整型、实型、字符型
5、C 语言规定:在一个源程序中,main函数的位置()
A.可以任意
B.必须在系统调用的库函数的后面
C.必须在最后
D.必须在最开始
正确答案:可以任意
第二章单元测试
1、若变量a是int类型,并执行了语句:a=';A';+1.6;,则正确的叙述是()
A.a的值是字符型
B.a的值是浮点型
C.a的值是整型
D.不允许字符型和浮点型相加
正确答案:a的值是整型
2、若有定义:int a=8,b=5,c; ,执行语句c=a/b+0.4;后,c的值为()
A.2
B.1
C.1.4
D.2.0
正确答案:1
3、如果有定义:int k=8 ,x=13;表达式的值为2的是()
A.x%=(k%=5)
B.x%=k-k%5
C.(x%=k)-(k%=5)
D.x%=(k-k%5)
正确答案:(x%=k)-(k%=5)
4、已知字母';A';的ASCII码为十进制数65,变量ch1为字符型,则执行语句ch1=‘A’+‘5’-‘2';后,ch1中的值是()。
A.67
B.不确定
C.';D'
D.';C'
正确答案:';D'
5、若已定义X和Y为double型,则表达式:x=1,y=x+3/2的值是()
A.1
B.2.0
C.2
D.2.5
正确答案:2.0
6、以下关于标识符的说法错误的是()。
A.首字符必须是字母或下划线
B.不区分大小写,s和S是同一个变量
C.标识符不能与系统的关键字同名
D.标识符由字母、数字和下划线组成
正确答案:不区分大小写,s和S是同一个变量
第三章单元测试
1、函数putchar()可以输出一个()。
A.整型变量表达式值
B.字符或字符型变量值
C.实型变量值
D.字符串
正确答案:字符或字符型变量值
2、若定义x为double型变量,则能正确输入x值的语句是()
A.scanf(“%f”,&;x)
B.scanf(“%f”,x)
C.scanf(“%5.1f”,&;x)
D.scanf(“%lf”,&;x)
正确答案:scanf(“%lf”,&;x)
3、已m,n,k为int型变量,若从键盘输入:5,6,7<;回车>;,使m的值为5,n的值为6,k的值为7,则输入语句正确的是()。
A.scanf(“%d,%d,%d”,&;i,&;j,&;k)
B.scanf(“%d()%d()%d”,&;i,&;j,&;k)
C.scanf(“%2d%2d%2d”,&;i,&;j,&;k)
D.scanf(“i=%d,j=%d,k=%d”,&;i,&;j,&;k)
正确答案:scanf(“%d,%d,%d”,&;i,&;j,&;k)
4、#include<;stdio.h>;void main();{ ;int i,j;scanf(";%3d%2d";,&;i,&;j);printf(";i=%d,j=%d";,i,j);} ;如果从键盘上输入1234567<;回车>;,则程序的运行结果是().
A.i=123,j=4567
B.i=1,j=2
C.i=123,j=45
D.i=1234,j=567
正确答案:i=123,j=45
5、格式化输入函数scanf()和输出函数printf()一定是在stdio.h文件中定义的。
A.正确
B.错误
正确答案:正确
第四章单元测试
1、在结构化程序设计中,不包含下列哪种结构()
A.分支结构
B.循环结构
C.嵌套结构
D.顺序结构
正确答案:嵌套结构
2、设x=3,y=-4,z=6,写出表达式 !(x>;y)+(y!=z)||(x+y)&;&;(y-z) 的结果()
A.1
B.0
C.2
D.-1
正确答案:1
3、下关于运算符优先顺序的描述中正确的是()
A.赋值运算符<; 逻辑与运算符<; 关系运算符<; 算术运算符
B.逻辑运算符<; 关系运算符<; 算术运算符<; 赋值运算符
C.关系运算符<; 算术运算符<; 赋值运算符<; 逻辑与运算符
D.算术运算符<; 关系运算符<; 赋值运算符<; 逻辑与运算符
正确答案:赋值运算符<; 逻辑与运算符<; 关系运算符<; 算术运算符
4、C语言对嵌套if语句的规定是:else总是与()
A.缩进位置相同的if配对
B.其之前最近的if配对
C.其之前最近的且尚未配对的if配对
D.第一个if配对
正确答案:其之前最近的且尚未配对的if配对
5、当a,b,c的值分别为3,4,5时,以下各语句执行后a,b,c的值为多少()if (a>;c); {a=b; b=c; c=a;}else;{a=c; c=b; b=a;}printf(“%d,%d,%d”,a,b,c)。
A.5,4,3
B.5,4,5
C.5,5,4
D.3,4,5
正确答案:5,5,4
第五章单元测试
1、在C语言中,当循环结构的条件控制循环语句while的表达式为()时,循环可以反复执行。
A.0
B.1
C.true
D.false
正确答案:0
2、假设i和x都是int类型,则以下for循环的循环体执行次数是()for(i=0,x=0;i<;=9&;&;x!=876;i++) scanf(“%d”,&;x)。
A.循环体一次也不执行
B.最多执行9次
C.是无限循环
D.最多执行10次
正确答案:最多执行10次
3、以下程序段的执行结果是().;int i,j,m=0;for(i=1;i<;=15;i+=4);{;for(j=3;j<;=19;j+=4);m++;}printf(";%d\n";,m)。
A.12
B.25
C.20
D.15
正确答案:20
4、break语句可以中断循环,执行循环的下一条语句。
A.正确
B.错误
正确答案:正确
5、do-while语句中的循环体一般不能是复合语句。
A.正确
B.错误
正确答案:错误
第六章单元测试
1、若调用一个函数,且此函数中没有return语句,则正确的说法是()
A.返回一个不确定的值
B.函数返回若干个系统默认值
C.该函数没有返回值
D.能返回一个用户所希望的函数值
正确答案:该函数没有返回值
2、在C程序中,下面描述正确的是()
A.函数的定义和调用都不可以嵌套
B.函数的定义和函数调用都可以嵌套
C.函数的定义不可以嵌套,但函数的调用可以嵌套
D.函数的定义可以嵌套,但函数的调用不可以嵌套
正确答案:函数的定义不可以嵌套,但函数的调用可以嵌套
3、以下关于函数调用时参数的叙述中,错误的是()。
A.函数未被调用时,系统将不为形参分配内存单元
B.实参与形参的个数应相等,且实参与形参的类型必须对应一致
C.当形参是变量时,实参可以是常量、变量或表达式
D.形参可以是常量、变量或表达式
正确答案:形参可以是常量、变量或表达式
4、C程序中各函数之间可以通过多种方式传递数据,下列不能用于实现数据传递的方式是()。
A.参数的形实结合
B.同名的局部变量
C.函数返回值
D.全局变量
正确答案:同名的局部变量
5、在C语言程序设计中,关于函数的定义和调用以下描述正确的是()
A.形式参数必须是变量名
B.必须有形式参数
C.也可以没有形式参数
D.数组名不能作为形式参数
正确答案:也可以没有形式参数
第七章单元测试
1、若有说明:int a[3][4]={0};则下面正确的叙述是()。
A.只有元素a[0][0]可得到初值0
B.数组a中各元素都可得到初值,但其值不一定为0
C.此说明语句不正确
D.数组a中每个元素均可得到初值0
正确答案:数组a中每个元素均可得到初值0
2、在C语言中,一维数组的定义方式为:类型说明符数组名()。
A.[整型表达式]
B.[整型常量]
C.[整型表达式]或[整型常量]
D.[常量表达式]
正确答案:[整型常量]
3、若有定义:int a[3][4],则对数组a元素的正确引用是()
A.a(5,5)
B.a[2][3]
C.a[1,3]
D.a[10-10]
正确答案:a[2][3]
4、若有说明:int b[4][5];则数组b各元素()
A.可在程序的运行阶段得到初值0
B.可在程序的编译或运行阶段得初值0
C.可在程序的编译阶段得到初值0
D.不能得到确定的初值
正确答案:可在程序的编译阶段得到初值0
5、在C语言中,数组名的命名规则与其它变量名相同。数组名后只能用圆括号括起来的常量表达式。
A.正确
B.错误
正确答案:错误
第八章单元测试
1、以下对指针定义合法的语句是()
A.int y[5]={1,2,3,4,5},*p=&;y
B.int *p=&;x=3
C.char ch[12]=″Hello World″,*c=ch
D.char *c,c=‘x’,c=&;c
正确答案:char ch[12]=″Hello World″,*c=ch
2、若有以下定义,则p+5表示()
A.元素a[6]的地址
B.元素a[5]的值
C.元素a[6]的值
D.元素a[5]的地址
正确答案:元素a[5]的地址
3、有以下程序段 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&;a[3], b; b=p[5]; b中的值是()
A.9
B.5
C.6
D.8
正确答案:9
4、若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是()
A.p=(int*)calloc(2,sizeof(int))
B.p=(int*)malloc(2*2)
C.p=(int*)malloc(2*sizeof(int))
D.p=2*(int*)malloc(sizeof(int))
正确答案:p=2*(int*)malloc(sizeof(int))
5、以下程序的输出结果是()void fun(int *x, int *y){; printf(“%d%d”, *x, *y);; *x=3; *y=4;}int main(void){; int x=1, y=2;;fun(&;y, &;x);; printf(“%d%d”, x,y);}
A.2143
B.1234
C.1212
D.2112
正确答案:2143
第九章单元测试
1、若有以下结构体定义,则用()赋值是正确的。struct s; { ;char x;int y;}t。
A.struct s st={10}
B.s.x=10
C.t.x=10
D.s.t.x=10
正确答案:t.x=10
2、若struct student; { ;int num;int age;}stu[3]={{1001,18},{1002,19},{1003,20}};则下面语句中引用非法的是()
A.stu[2].age
B.stu[3].num
C.stu[1].age
D.stu[0].num
正确答案:stu[3].num
3、struct teacher; { int num;int age;}tea()1;struct teacher *p=tea()1;下面语句中引用非法的是()
A.p->;num
B.(*p).num
C.p=&;tea()1.age
D.tea1.age
正确答案:p=&;tea()1.age
4、如果有typedef struct student; {; int s; char t; }T;则下面的描述正确的是()
A.Student是变量名
B.可以使用T.s引用成员
C.T是结构体类型的别名
D.T是变量名
正确答案:T是结构体类型的别名
5、共同体变量每次只能使用其中一个分量。
A.正确
B.错误
正确答案:正确
6、可以对共同体变量的所有成员进行初始化。
A.正确
B.错误
正确答案:错误
7、每一个枚举元素都有一个确定的整型数值。
A.正确
B.错误
正确答案:正确