文章教程

全国计算机等级考试二级C语言8.7综合自测

8/22/2020 10:24:52 PM 人评论 次浏览

8.7 综合自测

一、选择题

1.以下函数值的类型是(  )。

fun(float x)

{ float y;

y= 3*x-4;

return y;

A.int B.不确定 C.void D.float

2.以下程序的输出结果是(  )。

#include <stdio.h>

int a,b;

void fun()

{ a=100;b=200;}

main()

{ int a=5,b=7;

fun();

printf("% d% d\n",a,b);

A.100200    B.57    C.200100    D.75

3.以下程序的输出结果是(  )。

#include <stdio.h>

int x=3;

main()

{ int i;

for(i=1;i<x;i++)incre();

incre()

{ static int x=1;

x*=x+1;

printf("% d",x);

A.33    B.22    C.26    D.25

4.以下程序的输出结果是(  )。

#include <stdio.h>

int f(int n)

{ if(n==1)return 1;

else return f(n-1)+1;

main()

{ int i,j=0;

for(i=1;i<3;i++)

j+ =f(i);

printf("% d\n",j);

A.4    B.3    C.2    D.1

5.以下程序的输出结果是(  )。

#include <stdio.h>

int d=1;

fun(int p)

{ int d=5;

d+ =p++;

printf("% d ",d);

main()

{ int a=3;

fun(a);

d+ =a++;

printf("% d\n",d);

A.84    B.96    C.94    D.85

6.函数调用 strcat(strcpy(str1,str2),str3)的功能是(  )。

A.将字符串str1复制到字符串str2中后再连接到字符串str3之后

B.将字符串str1连接到字符串str2之后再复制到字符串str3之后

C.将字符串str2复制到字符串str1中后再将字符串str3连接到字符串str1之后

D.将字符串str2连接到字符串str1之后再将字符串str1复制到字符串str3中

7.有以下程序:

int sub(int n)

{ if(n<5)return 0;

else if(n>12)return 3;

return 1;

if(n>5)return 2;

main()

{ int a=10;

printf("% d\n",sub(a));

该程序的输出结果是( )。

A.0    B.1    C.2    D.3

8.以下程序的输出结果是(  )。

#include <stdio.h>

int d=1;

fun(int p)

{ static int d=5;

d+ =p;

printf("% d ",d);

return(d);

main()

{ int a=3;

printf("% d\n",fun(a+fun(d)));

A.699    B.669    C.61515    D.6615

9.在一个源文件中定义的外部变量的作用域为(  )。

A.本文件的全部范围    B.本程序的全部范围

C.本函数的全部范围    D.从定义该变量的位置开始至本文件结束

10.以下叙述中,正确的是(  )。

A.全局变量的作用域一定比局部变量的作用域范围大

B.静态(static)类别变量的生存期贯穿于整个程序的运行期间

C.函数的形参都属于全局变量

D.未在定义语句中赋初值的auto变量和static变量的初值都是随机值

11.以下对C语言函数的描述中,正确的是(  )。

A.C程序由一个或一个以上的函数组成

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

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

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

12.C语言中形参的默认存储类别是(  )。

A.自动(auto)    B.静态(static)   C.寄存器(register)  D.外部(extern)

13.以下叙述中,不正确的是(  )。

A.在C语言中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参

B.在C函数中,最好使用全局变量

C.在C语言中,形式参数只是局限于所在函数

D.在C语言中,函数名的存储类别为外部

14.C语言中函数返回值的类型由(  )决定。

A.return语句中的表达式类型    B.调用函数的主调函数类型

C.调用函数时的临时类型    D.定义函数时所指定的函数类型

15.C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递是(  )。

A.地址传递    B.由实参传给形参,并由形参返回给实参

C.值传递    D.由用户指定传递方式

16.在C语言中(  )。

A.函数的定义可以嵌套,但函数的调用不可以嵌套

B.函数的定义和调用均可以嵌套

C.函数的定义和调用均不可以嵌套

D.函数的定义不可以嵌套,但函数的调用可以嵌套

17.以下函数调用语句中,含有的实参个数是(  )。

fun(x+y,(e1,e2),fun(xy,d,(a,b)));

A.3    B.4    C.6    D.8

18.以下程序的输出结果是(  )。

#include <stdio.h>

fun(int x)

{ static int a=3;

a+ =x;

return(a);

main()

{ int k=2,m=1,n;

n=fun(k);

n=fun(m);

printf("% d",n);

A.3    B.4    C.6    D.9

19.以下程序的输出结果是(  )。

#include <stdio.h>

int func(int a,int b)

{return(a+b);}

main()

{ int x=2,y=5,z=8,r;

r=func(func(x,y),z);

printf("% d\n",r);

A.12    B.13    C.14    D.15

二、操作题

下列给定程序中fun()函数的功能是:求表达式

s=aa… aa-…-aaa-aa-a

(此处aa… aa表示n个a,a和n的值在1~9)

例如,a=3,n=6,则以上表达式为:

s=333333-33333-3333-333-33-3

其值是296298。

a和n是fun()函数的形参,表达式的值作为函数值传回main()函数。

请改正程序中的错误,使它能计算出正确的结果。

注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

试题程序

#include <stdio.h>

long fun(int a,int n)

{ int j;

/*****found*****/

long s=0,t=1;

for(j=0;j<n;j++)

t=t*10+a;

s=t;

for(j=1;j<n;j++)

{ /*****found*****/

t=t% 10

s=s-t;

return(s);

main()

{ int a,n;

printf("\nPlease enter a and n:");

scanf("% d% d",&a,&n);

printf("The value of function is% ld\

n",fun(a,n));

教程类别