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.14‍‏‍‏double 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++)‍‎            {‍‎‍‎    

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

发表评论

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