883c语言程序设计,C语言程序设计B下-中国大学mooc-题库零氪

一、函数(一)

1.1 函数定义随堂测验

1、C语言是由( )构成。

A、主程序和子程序

B、主函数和子函数

C、一个主函数和若干功能函数

D、主函数和子程序

2、以下对C语言函数的有关描述中,正确的是( )。

A、调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参

B、C函数既可以嵌套定义又可以递归调用

C、函数必须有返回值,否则不能使用函数

D、C程序中有调用关系的所有函数必须放在同一个源程序文件中

3、以下说法中正确的是( )。

A、C语言程序总是从第一个的函数开始执行

B、在C语言程序中,要调用的函数必须在main()函数中定义

C、C语言程序总是从main()函数开始执行

D、C语言程序中的main()函数必须放在程序的开始部分

1.1 函数定义随堂测验

1、C语言程序中,如果变量做函数参数,则当函数调用时( )。

A、实参和形参各占一个独立的存储单元

B、实参和形参共用一个存储单元

C、可以由用户指定是否共用存储单元

D、计算机系统自动确定是否共用存储单元

2、一个函数返回值的类型是由( )决定的。

A、return语句中表达式的类型

B、在调用函数时临时指定

C、定义函数时指定的函数类型

D、调用该函数的主调函数的类型

3、在C语言的函数中,下列正确的说法是( )。

A、必须有形参

B、形参必须是变量名

C、可以有也可以没有形参

D、数组名不能作形参

1.4 函数间参数传递随堂测验

1、若函数的形参为一维数组,则下列说法中正确的是( )。

A、调用函数时的对应实参必为数组名

B、形参数组可以不指定大小

C、形参数组的元素个数必须等于实参数组的元素个数

D、形参数组的元素个数必须多于实参数组的元素个数

2、若调用一个函数,且此函数中没有return语句,则正确的说法是( )。

A、该函数没有返回值

B、该函数返回若干个系统默认值

C、该函数能返回一个用户所希望的函数值

D、该函数返回一个不确定的值

3、在函数的说明和定义时若没有指出函数的类型,则( )。

A、系统自动地认为函数的类型为整型

B、系统自动地认为函数的类型为字符型

C、系统自动地认为函数的类型为实型

D、编译时会出错

4、下面叙述中正确的是( )。

A、对于用户自己定义的函数,在使用前必须加以说明

B、说明函数时只需要说明返回类型

C、函数必须返回一个值

D、空函数不完成任何操作,所以在程序设计中没有用处

5、C语言允许函数返回值类型缺省定义,此时该函数隐含的返回值类型是( )。

A、float型

B、int 型

C、long 型

D、double型

1.1-1.4编程作业

1、求最大公约数和最小公倍数

2、排序并插入

二、函数(二)

2.1 函数递归调用随堂测验

1、在下列结论中,有一个是错误的,它是 ( )

A、C语言允许函数的递归调用

B、有些递归程序是不能用非递归算法实现的

C、C语言不允许在函数定义中再定义函数

D、递归函数就是函数中可以定义其他函数

2、如果有个递归函数是求 2*4*6*……*(2n) 的积,则递归的公式和条件可以表达为( )

A、f(n)=2*n*f(n-1) 边界条件 当 n==1 f(n)=2

B、f(n)=2*f(2*n-1) 边界条件 当 n==0 f(n)=1

C、f(n)=2*nf(2*n-1) 边界条件 当 n==1 f(n)=1

D、f(n)=2*f(2*n-1) 边界条件 当 n==0 f(n)=2

2.1 函数递归调用随堂测验

1、一段楼梯有N阶,可以一次上1阶,也可以一次上2阶,用递归函数调用实现,计算多少种走法。则递归公式和边界条件是( )

A、f[n]=f[n-1]+f[n-2] 边界条件 当n=1 f[1]=0, 当n =2 f[2]=1

B、f[n]=f[n-1]+f[n-2] 边界条件 当n=1 f[1]=1, 当n =2 f[2]=2

C、f[n]=f[n-1] 边界条件 当n=1 f[1]=1

D、f[n]= f[n-2] 边界条件 当n=2 f[2]=1

2、一只小猴子,摘了一堆水果,第一天吃了水果的一半,又多吃了一个;第二天吃了剩下水果的一半,又多吃了一个;依次类推….到第十天,发现只剩下了10个水果,请问这只猴子到底摘了多少个水果? 写成递归函数。

A、

118289.html

118289.html

B、

118289.html

C、

118289.html

D、

118289.html

2.1编程作业

1、最大公约数

2、奇数求和

三、函数(三)

3.1 变量存储属性随堂测验

1、在一个C源程序文件中,若要定义一个只允许在该源文件中所有函数使用的变量,则该变量需要使用的存储类别是( )

A、extern

B、register

C、auto

D、static

2、如果一个变量在整个程序运行期间都存在,但是仅在说明它的函数内是可见的,这个变量的存储类型应该被说明为( )

A、静态变量

B、动态变量

C、外部变量

D、内部变量

3.1 变量存储属性随堂测验

1、以下程序的输出结果是: int f(int a) { auto int b=0; static int c=3; b++;c++; return a+b+c; } main( ) {int c,a=1; for(c=1;c<3;c++) printf(“%3d ”,f(a)); }

A、5 5

B、5 6

C、6 6

D、6 7

2、以下程序的输出结果是: void fun(int *s) { static int j=0; do s[j]+=s[j+1]; while(++j<2); } main( ) { int k,a[10]={1,2,3,4,5}; for (k=1; k<3; k++) fun(a); for (k=0; k<5; k++) printf(“%d”,a[k] ); }

A、34756

B、23445

C、35745

D、12345

3.2 编译预处理随堂测验

1、以下程序的输出结果是: #define ADD(x) x+x main( ) { int m=1,n=2,k=3,sum; sum=ADD(m+n)*k; printf(“sum=%d\n”,sum); }

A、sum=9

B、sum=10

C、sum=12

D、sum=18

2、以下程序的输出结果是: #define N 1 #define M N+2 #define NUM 2*M+1 main( ) { int i; for (i=1; i<=NUM; i++) printf(“%3d ”, i ); }

A、1 2 3 4 5

B、1 2 3 4 5 6 7

C、1 2 3 4 5 6

D、程序出错

3、已知宏定义 #define N 3 #define Y(n) ((N+1)*n) 执行语句z=2*(N+Y(5+1));后,z的值是( )。

A、42

B、48

C、52

D、出错

3.1编程作业

1、巧算自然数

2、卖鸭子

3、输出各位数字之和

四、指针(一)

4.1 指针的定义、初始化和引用随堂测验

1、若有说明:int *p1, *p2,m=5,n;以下均是正确赋值语句的选项是 。

A、p1=&m; p2=&p1;

B、p1=&m; *p2=*p1

C、p1=&m; p2=p1;

D、p1=&m; *p1=*p2;

2、以下叙述中正确的是 。

A、指针定义后,可以指向同类型的任何变量。

B、指针定义后,可以指向任何类型变量。

C、指针定义后,可以用整型数据为指针初始化。

D、指针定义后,只能指向一个变量。

3、变量的指针,其含义是指该变量的 。

A、值

B、地址

C、名

D、一个标志

4.2 指针与数组随堂测验

1、如果有定义int a[30], *p=a; 则数组a中下标为i的元素的地址为 。

A、p+i*2

B、p+(i-1)*2

C、p+(i-1)

D、p+i

2、若有如下定义,则________是对数组元素的正确的引用。 int a[10] , *p=a;

A、*&a[10]

B、*&a[0]

C、*(p-11)

D、*(a+11)

3、若有定义:int x[10]={0,1,2,3,4,5,6,7,8,9},*p1;则数值不为3的表达式是 。

A、x[3]

B、p1=x+3,*p1++

C、p1=x+2,*(p1++)

D、p1=x+2,*++p1

4.2 指针与数组随堂测验

1、下面函数的功能是 。 strlen1(char *s ) { char *p=s; while(*p!=‘\0’) p++; return p-s; }

A、字符串反向

B、字符串比较

C、字符串连接

D、字符串求长度

2、已知int a[ ]={1,3,5,7},y,*p=a;为了使变量y的值为3,下列语句正确的是 。

A、y=++*p++;

B、y=++(*p++);

C、y=(++*p)++;

D、y=(*++p)++;

3、下面函数的功能是 。 void ( char *s1, char *s2) { while(*s2++=*s1++); }

A、字符串反向

B、字符串比较

C、字符串连接

D、字符串复制

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值