大学MOOC 程序设计基础(河北软件职业技术学院)1206149820 最新慕课完整章节测试答案
C语言是什么?
C语言基础知识-单元测试
1、单选题:
以下说法中正确的是( )。
选项:
A: C语言程序总是从第一个定义的函数开始执行
B: 在C语言程序中,要调用的函数必须在main( )函数中定义
C: C语言程序总是从main( )函数开始执行
D: C语言程序中的main( )函数必须放在程序的开始部分
答案: 【 C语言程序总是从main( )函数开始执行】
2、单选题:
下面关于编译预处理命令的说法中,正确的是( )。
选项:
A: 一条文件包含命令能包含多个文件
B: 文件包含命令不可以嵌套使用
C: 编译预处理命令是在编译之前被处理的命令
D: 编译预处理命令中的“#”可以省略
答案: 【 编译预处理命令是在编译之前被处理的命令】
3、单选题:
以下叙述错误的是( )。
选项:
A: 一个C程序可以包含多个不同名的函数
B: 一个C程序只能有一个主函数
C: C程序在书写时,有严格的缩进要求,否则不能编译通过
D: C程序的主函数必须用main作为函数名
答案: 【 C程序在书写时,有严格的缩进要求,否则不能编译通过】
4、单选题:
一个C程序有且仅有一个( )函数。
选项:
A: 库函数
B: main函数
C: 自定义函数
D: 形式函数
答案: 【 main函数】
5、单选题:
源程序要正确地运行,必须要有( )。
选项:
A: printf函数
B: 自定义的函数
C: main函数
D: 不需要函数
答案: 【 main函数】
6、单选题:
C语言源程序的基本单位是( )。
选项:
A: 过程
B: 函数
C: 子程序
D: 标识符
答案: 【 函数 】
初识C语言-课堂测验
1、单选题:
以下哪个选项不是C语言的特点?( )
选项:
A: 简洁紧凑、灵活方便
B: 运算符丰富
C: 比Java语言的移植性好
D: 生成代码质量高,程序执行效率高
答案: 【 比Java语言的移植性好】
函数的应用
函数的声明以及调用-随堂练习
1、单选题:
定义一个函数,求圆的周长。在主函数中输入圆的半径,通过调用这个函数,求出圆的周长,并将结果输出。程序如下:#include <stdio.h >#define PI 3.14double area(int);double length(int);void main(){ int r; double s; printf("input r:"); scanf("%d",&r); s=_______ ; printf("周长:%lfn",s);}double length(int r){ double i; i=2*PI*r; _________ ;}在划线处填上正确的选项( )。
选项:
A: length(s) , return i
B: 2*PI*r ,return
C: length() ,return
D: length(r) ,return i
答案: 【 length(r) ,return i】
函数的定义-随堂练习
1、单选题:
以下函数的功能是求矩形的面积____ add(int a,int b){ int c; c=a*b; return c;}在划线处填上正确的选项( )。
选项:
A: double
B: void
C: int
D: 以上都不正确
答案: 【 int】
函数的应用-单元测试
1、单选题:
下述函数定义形式正确的是( )。
选项:
A: int f(int x; int y)
B: int f(int x,y)
C: int f(int x, int y)
D: int f(x,y: int)
答案: 【 int f(int x, int y) 】
2、单选题:
以下函数值的类型是( )。fun (float x){ float y; y= 3*x-4; return y;}
选项:
A: int
B: 不确定
C: void
D: float
答案: 【 int 】
3、单选题:
以下说法正确的是( )。
选项:
A: 如果函数的类型与返回值类型不一致,以函数类型为准
B: 定义函数时,形参的类型说明可以放在函数体内
C: return后边的值不能为表达式
D: 不加类型说明的函数,一律按void来处理
答案: 【 如果函数的类型与返回值类型不一致,以函数类型为准】
4、单选题:
在定义任何一个函数时,下列选项中不可缺少的是( )。
选项:
A: 函数名之前的数据类型
B: 函数名之后的一对圆括号
C: 形式参数声明
D: 函数体中的语句
答案: 【 函数名之后的一对圆括号】
5、单选题:
在C语言中,函数的数据类型是指( )。
选项:
A: 函数返回值的数据类型
B: 函数形参的数据类型
C: 调用该函数时的实参的数据类型
D: 任意指定的数据类型
答案: 【 函数返回值的数据类型 】
6、单选题:
定义函数时,缺省函数的类型声明,则函数类型取缺省类型( )。
选项:
A: void
B: char
C: float
D: int
答案: 【 int】
7、单选题:
int fun(int k){ if (k<1) return 0; else if(k==1) return 1; else return fun(k-1)+1;}若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是( )。
选项:
A: 1
B: 2
C: 3
D: 4
答案: 【 3】
8、单选题:
#include <stdio.h>int f(int t[],int n);void main(){ int a[4]={1,2,3,4},s; s=f(a,4); printf(“%dn”,s);}int f(int t[],int n){ if(n>0) return t[n-1]+f(t,n-1); else return 0;}程序运行后的输出结果是( )。
选项:
A: 4
B: 10
C: 14
D: 6
答案: 【 10】
9、单选题:
在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则 ( )。
选项:
A: 称为函数的直接递归调用
B: 称为函数的间接递归调用
C: 称为函数的循环调用
D: C语言中不允许这样的递归调用
答案: 【 称为函数的间接递归调用】
10、单选题:
关于函数参数,说法正确的是( )。
选项:
A: 实参与其对应的形参各自占用独立的内存单元
B: 实参与其对应的形参共同占用一个内存单元
C: 只有当实参和形参同名时才占用同一个内存单元
D: 形参是虚拟的,不占用内存单元
答案: 【 实参与其对应的形参各自占用独立的内存单元】
11、单选题:
以下程序的输出结果是( )。fun(int x, int y, int z){ z=x*x+y*y;}void main(){ int a=31; fun(5,2,a); printf("%d",a);}
选项:
A: 0
B: 29
C: 31
D: 无定值
答案: 【 31】
12、单选题:
C语言规定,简单变量做实参时,它相对应形参之间的数据传递方式是( )。
选项:
A: 地址传递
B: 单向值传递
C: 由实参传给形参,再由形参传回给实参
D: 由用户指定传递方式
答案: 【 单向值传递】
13、单选题:
如果在一个函数中的复合语句中定义了一个变量,则该变量( )。
选项:
A: 只在该复合语句中有效
B: 在该函数中有效
C: 在本程序范围内均有效
D: 为非法变量
答案: 【 只在该复合语句中有效】
14、单选题:
在一个C语言源程序文件中所定义的全局变量,其作用域为( )。
选项:
A: 所在文件的全部范围
B: 所在程序的全部范围
C: 所在函数的全部范围
D: 由具体定义位置和extem说明来决定范围
答案: 【 由具体定义位置和extem说明来决定范围】
15、单选题:
以下程序运行后,输出结果是( )。func (int a,int b){ static int m=0 ,i=2; i+=m+1; m=i+a+b ; return(m);}void main() { int k=4,m=1,p; p=func(k,m); printf("%d,",p); p=func(k,m); printf("%dn",p);}
选项:
A: 8,15
B: 8,16
C: 8,17
D: 8,8
答案: 【 8,17】
16、单选题:
设有下列程序段:static char b=2;void Y(){ static float d=4;… }int a=1;void X(){ int c=3;… }关于程序段中各变量的属性,以下叙述中错误的是( )。
选项:
A: a是全局变量,函数X可以访问,函数Y不能访问
B: b是全局变量,函数X和函数Y都可以访问
C: c是动态变量,函数X可访问,函数Y不可访问
D: d是静态变量,函数X和函数Y都可以访问
答案: 【 d是静态变量,函数X和函数Y都可以访问】
17、单选题:
未指定存储类别的变量,其隐含的存储类别为( )。
选项:
A: auto
B: static
C: extern
D: register
答案: 【 auto 】
18、单选题:
在C语言中,表示静态存储类别的关键字是( )。
选项:
A: auto
B: register
C: static
D: extern
答案: 【 static】
19、单选题:
有以下程序:#include <stdio.h>int abc(int u,int v);void main (){ int a=24,b=16,c; c=abc(a,b); printf(“%dn”,c);}int abc(int u,int v){ int w; while(v) { w=u%v; u=v; v=w } return u;}输出结果是( )。
选项:
A: 6
B: 7
C: 8
D: 9
答案: 【 8】
20、单选题:
有如下程序:#include <stdio.h>int func(int a,int b){ return(a+b);}void main(){ int x=2,y=5,z=8,r; r=func(func(x,y),z); printf(“%dn”,r);}该程序的输出的结果是( )。
选项:
A: 12
B: 13
C: 14
D: 15
答案: 【 15】
21、单选题:
在函数调用时,以下说法正确的是( )。
选项:
A: 函数调用后必须带回返回值
B: 实际参数和形式参数可以同名
C: 函数间的数据传递不可以使用全局变量
D: 主调函数和被调函数总是在同一个文件里
答案: 【 实际参数和形式参数可以同名】
22、单选题:
已知函数f的定义如下:int f(int a,int b){if(a<b) return(a,b);else return(b,a);}则该函数使用f(2,3)进行调用时返回的值是 ( )。
选项:
A: 2
B: 3
C: 2和3
D: 3和2
答案: 【 3】
23、单选题:
以下函数调用语句中实参的个数为( )。exce((v1,v2),(v3,v4,v5),v6);
选项:
A: 3
B: 4
C: 5
D: 6
答案: 【 3】
24、单选题:
有以下函数定义:void fun(int n, double x) { …… }若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是( )。
选项:
A: fun(int y,double m);
B: k=fun(10,12.5);
C: fun(x,n);
D: void fun(n,x);
答案: 【 fun(x,n);】
25、单选题:
在C语言程序中,以下描述正确的是( )。
选项:
A: 函数的定义可以嵌套,但函数的调用不可以嵌套
B: 函数的定义不可以嵌套,但函数的调用可以嵌套
C: 函数的定义和函数的调用均不可以嵌套
D: 函数的定义和函数的调用均可以嵌套
答案: 【 函数的定义不可以嵌套,但函数的调用可以嵌套】
函数类型以及函数使用的一般过程-课堂测验
1、单选题:
定义一个函数,输出n个“*”,在主函数中调用它3次。程序如下:#include <stdio.h >void display(int);void main(){ display(6); display(7); display(8);}void display(______){ int i; for(i=1;i< n;i++) printf(" * "); printf("n");}在划线处填上正确的选项( )。
选项:
A: int n
B: n
C: 不用填写任何内容
D: double n
答案: 【 int n】
函数调用参数传递与函数调用方式-随堂测验
1、单选题:
#include <stdio.h >void fun(int p){ int d=2; p=d++; printf("%d",p);}main(){ int a=1; fun(a); printf("%dn",a);}程序运行结果为( )。
选项:
A: 11
B: 21
C: 22
D: 以上结果都不正确
答案: 【 21】
局部变量与全局变量-随堂测试
1、单选题:
有以下程序#include <stdio.h >int a=5;void fun(int b){ int a=10; a+=b; printf("%d",a);}void main(){ int c=20; fun(c); a+=c; printf("%dn",a);}以上程序运行后的输出结果是( )。
选项:
A: 525
B: 1545
C: 2530
D: 3025
答案: 【 3025】
递归函数-随堂测验
1、单选题:
#include <stdio.h >fun(int x){ if(x/2>0) fun(x/2); printf("%d ",x);}void main(){ fun(6); printf("n");}以上程序运行后的输出结果为( )。
选项:
A: 6 3 1
B: 1 3 6
C: 6 5 4
D: 4 5 6
答案: 【 1 3 6】
静态变量-随堂测验
1、单选题:
有以下程序:#include <stdio.h >int fun(){ static int x=1; x+=1; return x;}void main(){ int i,s=1; for(i=1;i<=5;i++) s+=fun(); printf("%dn",s);}程序运行后的输出结果是( )。
选项:
A: 21
B: 11
C: 15
D: 以上结果都不正确
答案: 【 21】
循环结构程序设计
break和continue语句-随堂练习
1、单选题:
以下程序实现以下功能:从键盘任意输入一些非0整数,计算所有正数的和并统计正数的个数。(0是结束标志)#include <stdio.h>void main(){int x,sum=0,count=0;while(1){ printf("input x:"); scanf("%d",&x); if(x==0) _________; if(x<0) _________; sum+=x; count++;}printf("正数的个数:%dt和:%dn",count,sum);}在划线处填上正确的选项( )。
选项:
A: break , continue
B: continue ,break
C: break ,break
D: continue ,continue
答案: 【 break , continue】
do-while循环-随堂测验
1、单选题:
宰相的麦子:相传古印度宰相达依尔,是国际象棋的发明者。有一次,国王因为他的贡献要奖励他,问他想要什么。达依尔说:“只要在国际象棋棋盘上(共64格)摆上这么些麦子就行了:第一格一粒,第二格两粒,……,后面一格的麦子总是前一格麦子数的两倍,摆满整个棋盘,我就感恩不尽了。”国王一想,这还不容易,刚想答应,如果你这时在国王旁边站着,你会不会劝国王别答应,为什么?(12500粒麦子有一斤,亩产1500斤)以下为解决上述问题的程序:#include <stdio.h>void main(){ double ml=1,zml=1,ms; ////ml:每一格的麦子数,zml:总的麦子数,ms:需要多少亩地 int i=1; do{ ___________ ; ___________ ; i++; }while( i<=64 ) ms=zml/12500/1500; printf("需要%e亩地的麦子!n",ms);}在划线处填上正确的选项( )。
选项:
A: zml+=ml , ml=2*ml
B: zml=ml , ml=2*ml
C: ml=2*ml , zml+=ml
D: ml=2*ml , zml=ml
答案: 【 ml=2*ml , zml+=ml】
2、单选题:
以下程序求1-2+3-4……-100=?#include <stdio.h>void main(){ int s=0,i=1,flag=1; do{ _______________ ; _______________ ; i++; } while( i<=100 ) printf("结果:%dn",s);}在划线处填上正确的选项( )。
选项:
A: s+=i*flag ,flag=-flag
B: flag=-flag ,s+=i*flag
C: s+=i*flag ,flag++
D: s+=i ,flag=-flag
答案: 【 s+=i*flag ,flag=-flag】
for循环-随堂测验
1、单选题:
以下程序解决猴子吃桃问题。问题描述:猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,就只剩一个桃子了。求第1天共摘多少个桃子。#include <stdio.h>void main(){ int d,s=1; for(d=10;d>1; _____) { ___________ ; } printf("第一天的桃子数:%dn",s);}
选项:
A: d++ ,s=(s-1)*2
B: d-- , s=(s+1)*2
C: d-- ,s=s*2
D: d+2 ,s=(s-1)*2
答案: 【 d-- , s=(s+1)*2】
2、单选题:
编写程序求100-500之间所有能被13整除或者能被7整除的自然数并输出,要求每行输出6个数。#include <stdio.h>void main(){ int i,count=0; for(i=100; i<500; i++) { if( ) { printf("%dt",i); count++; if( ) printf("n"); } }}在划线处填上正确的选项( )。
选项:
A: (i%13==0)&&(i%7==0),count%5=0
B: (i%13==0)||(i%7==0),count%6=0
C: (i%13==0)&&(i%7==0),count%5==0
D: (i%13==0)||(i%7==0) ,count%6==0
答案: 【 (i%13==0)||(i%7==0) ,count%6==0】
while循环-随堂测验
1、单选题:
以下程序要解决水仙花数问题。所谓水仙花数,是指一个三位数abc,如果满足a^3+b^3+c^3=abc,则abc是水仙花数。#include <stdio.h>void main(){ int x=100,a,b,c; while( x<1000 ) a= ;//个位 b=x/10%10;//十位 c=x/100;//百位 if( )printf("%d是水仙花数n",x); x++; }}在划线处填上正确的选项( )。
选项:
A: x/10 ,a*a*a+b*b*b+c*c*c==x
B: x%10 ,a*a*a+b*b*b+c*c*c==x
C: x%10 ,a*a*a+b*b*b+c*c*c=x
D: x/10 ,x=a*a*a+b*b*b+c*c*c
答案: 【 x%10 ,a*a*a+b*b*b+c*c*c==x】
循环嵌套-随堂练习
1、单选题:
打印乘法口诀表的程序如下:#include <stdio.h>void main(){ int i,j; for(i=1;i<10;i++) { for(j=1; _______ ; j++) {
