2017年计算机二级考试C语言考试试题及答案

来源:文书网 2.15W

C语言是把高级语言的基本结构和语句与低级语言的实用性结合起来的工作单元。以下是关于计算机二级考试C语言考试试题及答案,欢迎大家参考!

2017年计算机二级考试C语言考试试题及答案

  单选题

1). 若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是

A.函数调用可以作为独立的语句存在

B.函数调用可以作为一个函数的实参

C.函数调用可以出现在表达式中

D.函数调用可以作为一个函数的形参

正确答案:D

2). 下列是用户自定义标识符的是

A._w1

B.3_xy

-3

正确答案:A

3). 以下叙述中不正确的是

A.在不同的函数中可以使用相同的名字的变量

B.函数中的.形式参数是局部变量

C.在一个函数内定义的变量只在本函数范围内有效

D.在一个函数内的复合语句中定义的变量在本函数范围内有效

正确答案:D

4). 以下描述错误的是

A.C程序中,函数可以直接或间接的调用自己

B.函数调用时,函数名必须与所调用的函数名字完全一致

C.函数说明语句中的类型必须与函数返回值的类型一致

D.实参数可以与形参个数不一致

正确答案:D

5). 下列说法中正确的是( )。

A.C程序书写时,不区分大小写字母

B.C程序书写时,一行只能写一个语句

C. C程序书写时,一个语句可分成几行书写

D. C程序书写时每行必须有行号

正确答案:C

答案解析:C语言严格区分大小写字母,如"A1"和"a1"被认为是两个不同的标识符,C程序的书写非常灵活,既可以一行多句,又可以一句多行,且每行不加行号。

6). 已知:char a[20]= "abc",b[20]= "defghi";则执行下列语句后的输出结果为printf("%d",strlen(strcpy(a,b)));

A.11

B.6

C.5

D.以上答案都不正确

正确答案:B

  二操作题

1: 第1题请编写函数fun,其功能是:将两个两位数的正整数a b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c的十位和千位上,b数的十位和个位数依次放在c数的个位和百位上。

答案:

void fun(int a, int b, long *c)

{

*c=(a%10)*1000+(b%10)*100+(a/10)*10+b/10;

}

2: 第2题请编写函数fun,它的功能是计算:s=(ln(1)+ln(2)+ln(3)+…+ln(m))(0.5),s作为函数值返回。

答案:

double fun(int m)

{

int I;

double s=0.0, log(double x);

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

s=s+log(i);

s=sqrt(s);

return s;

}

3: 第3题请编写函数fun,它的功能是计算下列级数和,和值由函数值返回。

S=1+x+x(2)/2!+x(3)/3!+…x(n)/n!

答案:

double fun(double x, int n)

{

double s=1.0, p=1.0;

int I,j,t;

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

{

t=1;

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

t=t*j;

p=p*x;

s=s+p/t;

}

return s;

}

4: 第4题规定输入字符串中只包含字母和*号。请编写函数fun,它的功能是:将函数字符串中的前导*号全部删除,中间和尾部的*号不删除。

答案:

void fun(char *a)

{

int i=0;

char *p=a;

while(*p&&*p==‘*’)

p++;

while(*p)

{

a[i]=*p;

i++;

p++;

}

a[i]=‘’;

}

5: 第5题假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:使字符串的前导*号不得多于n个;若多于n个,则删除多于的*号;若少于或等于n个,则什么也不做。字符串中间和尾部的*号不删除。

答案:

void fun(char *a, int n)

{

int i=0,k=0;

char *t=a;

while(*t==‘*’)

{

k++;

t++;

}

t=a;

if(k>n)

t=a+k-n;

while( *t)

{

a[i]=*t;

i++;

t++;

}

a[i]=‘’;

}

热门标签