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 ‍‍‍‍#define PI 3.14‍‍‍‍double area(int);‍‍‍‍double length(int);‍‍‍‍void main(){‍‍‍‍ int r;‍‍‍‍ double l;‍‍‍‍ printf("input r:");‍‍‍‍ scanf("%d",&r);‍‍‍‍ l=_______ ;‍‍‍‍ printf("周长:%lfn",l);‍‍‍‍} ‍‍‍‍double length(int r){‍‍‍‍ double l;‍‍‍‍ l=2*PI*r;‍‍‍‍ _________ ; ‍‍‍‍}‍‍‍‍在划线处填上正确的选项( )。‍‍‍
选项:
A: length(l) , return l
B: 2*PI*r ,return
C: length() ,return
D: length(r) ,return l
答案: 【 length(r) ,return l

函数的定义-随堂练习

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 ​‌​‌void display(int);​‌​‌void main(){​‌​‌ display(6);​‌​‌ display(7);​‌​‌ display(8);​‌​‌} ​‌​‌void display(______){​‌​‌ int i;​‌​‌ for(i=1;i‌​‌ printf("n");​‌​‌}​‌​‌在划线处填上正确的选项( )。​‌​
选项:
A: int n
B: n
C: 不用填写任何内容
D: double n
答案: 【 int n

函数调用参数传递与函数调用方式-随堂测验

1、单选题:
‍#include ‏‍‏‍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‏‍‏‍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 ‏‍‏‍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 ‌​‌​int fun()‌​‌​{ ‌​‌​ static int x=1;‌​‌​ x+=1; ‌​‌​ return x;‌​‌​}‌​‌​void main()‌​‌​{ ‌​‌​ int i,s=1;‌​‌​ for(i=1;i​‌​ printf("%dn",s);‌​‌​} ‌​‌​程序运行后的输出结果是( )。‌​‌
选项:
A: 21
B: 11
C: 15
D: 以上结果都不正确
答案: 【 21

循环结构程序设计

break和continue语句-随堂练习

1、单选题:
‎以下程序实现以下功能:从键盘任意输入一些非0整数,计算所有正数的和并统计正数的个数。(0是结束标志)‎‎‎‎#include ‎‎‎‎void main(){‎‎‎‎ int x,sum=0,count=0;‎‎‎‎ while(1){‎‎‎‎ printf("input x:");‎‎‎‎ scanf("%d",&x);‎‎‎‎ if(x==0) _________;‎‎‎‎ if(x‎‎‎ 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 ‎‌‎‌void main(){‎‌‎‌ double ml=1,zml=1,ms; ////ml:每一格的麦子数,zml:总的麦子数,ms:需要多少亩地 ‎‌‎‌ int i=1;‎‌‎‌ do{‎‌‎‌ ___________ ;‎‌‎‌ ___________ ;‎‌‎‌ i++; ‎‌‎‌ }while(i‌‎‌ 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​‍​‍void main(){​‍​‍ int s=0,i=1,flag=1;​‍​‍ do{​‍​‍ _______________ ;​‍​‍ _______________ ;​‍​‍ i++; ​‍​‍ }while(i‍​‍ 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‌​‌​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‍‌‍‌void main(){‍‌‍‌ int i,count=0;‍‌‍‌ for(i=100; 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 ‎​‎​void main(){‎​‎​ int x=100,a,b,c;‎​‎​ while(x​‎​ 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 ‌‏‌‏void main(){‌‏‌‏ int i,j;‌‏‌‏

剩余75%内容付费后可查看

发表评论

电子邮件地址不会被公开。 必填项已用*标注