c语言函数作业答案,c语言编程题库及答案

C语言答案 求大神 解答

题号:1

成都创新互联公司是一家专业提供上蔡企业网站建设,专注与成都网站制作、成都做网站、HTML5建站、小程序制作等业务。10年已为上蔡众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。

以下正确的说法是( )

选项:

a、用户若需要调用标准库函数,调用前必须重新定义

b、用户可以重新定义标准库函数,若如此,该函数将失去原有意义

c、用户系统根本不允许用户重新定义标准库函数

d、用户若需要调用库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动寻找该文件

本题答案为d,无论是标准库函数还是什么函数,都是函数,都允许用户重新定义和使用,使用的时候只需要用#include 包括进来就可以了,也就是预编译命令。其中#include就是预编译命令。

题号:2

以下正确的函数定义形式是( )

选项:

a、double fun(int x,int y)

b、double fun(int x

c、int y)

d、double fun(int x,int y)

e、doubel fun(int x

f、int y)

函数的定义规则是这样的: (函数参数用逗号隔开){函数体}

函数声明的规则是这样的: (函数参数用逗号隔开);

综上所述,该题没有正确答案,唯一接近正确答案的为ad。

题号:3

以下不正确的说法为( )

选项:

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

b、形式参数是局部变量

c、在函数内定义的变量只在本函数范围内有效

d、在函数内的复合语句中定义的变量在本函数范围内有效

C中有一个关键字为extern,专门把局部变量转为全局变量,所以C是错误的。

本题答案为C

题号:4

建立函数的目的之一,以下正确的说法是( )

选项:

a、提高程序的执行效率

b、提高程序的可读性

c、减少程序的篇幅

d、减少程序文件所占内存

本题答案为a,

函数的增加,

b会使得程序的可读性增加,这个可以理解,模块化了,当然可读性增加了

c,多次调用一个函数即可,不用重复的写代码,这个也可以理解

d,重复的代码既然少了,整个程序的大小自然也小了,当然减少了程序文件所占的内存

至于a的效率提高了,这个不对,因为函数多了,会频繁的进行压栈出栈的操作,加大cpu的工作负荷,整个程序的效率变低了。

题号:5

C语言规定,函数返回值的类型是由( )所决定。

选项:

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

b、调用该函数时的主调函数类型

c、调用该函数是系统临时指定

d、在定义该函数时所指定的函数类型

这个可以参考第二题,函数的定义规则,当然是由定义的时候确定的了。

本题答案为d。

题号:6

凡是函数中未指定存储类别的局部变量,其隐含的存储类别为( )

选项:

a、auto

b、static

c、extern

d、register

这个题目容易,没有指定当然是自动指定的了。

本题答案为a。

另外一个小知识,我们平常看到的int a,b,c;实际上省略了auto,全部应该是 auto int a,b,c;

题号:7

以下程序的运行结果是( )void sub (int x,int y,int *z){*z=y-x;}main(){int a,b,c;sub

(10,5,a);sub(7,a,b);sub(a,b,c);printf("%4d,%4d,%4d",a,b,c);}

选项:

a、5, 2, 3

b、 -5, -12, -7

c、 -5, -12, -17

d、 5, -2, -7

void sub (int x,int y,int *z)

{

*z=y-x;

}

main()

{

int a,b,c;

sub(10,5,a); 执行完这句a的值为-5;

sub(7,a,b);执行完这句b的值为-12;

sub(a,b,c);执行完这句c的值为-7

printf("%4d,%4d,%4d",a,b,c);

}

答案为b;

题号:8

若用数组名作为函数调用的实参,传递给形参的是( )

选项:

a、数组的首地址

b、数组第一个元素的值

c、数组中全部元素的值

d、数组元素的个数

本题答案为a

数组名为数组的首地址,也是数组第一个元素的值的地址。数组名是一个地址。

题号:9

若使用一位数组名作为函数实参,则以下正确的说法是( )

选项:

a、必须在主调函数中说明此数组的大小

b、实参数组类型与形参数组类型可以不匹配

c、在被调函数中,不需要考虑形参数组的大小

d、实参数组名与形参数组名必须一致

本题答案为a,

必须在主调函数中定义该数组的大小。也就是该数组大小应该被提前设定好。

int a[10]可以作为参数,int a[x]不可以作为参数。

题号:10

如果在一个复合语句中定义了一个变量,则有关该变量正确的说法是( )

选项:

a、只在该复合语句中有效

b、只在该函数中有效

c、在本程序范围内均有效

d、为非法变量

答案为

c语言函数习题

1、 函数调用:strcat(strcpy(str1,str2),str3)的功能是________。

C) 将串str2复制到串str1中后再将串str3连接到串str1之后

2、 若有以下调用语句,则正确的fun函数首部是

main()

{ ∶

int a;float x;

fun(x,a);

}

B) void fun(float a,int x)

3、 有如下程序

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); }

该程序的输出结果是__________。

D) 15

4、 函数pi的功能是根据以下近似公式求π值:

(π*π)/6=1+1/(2*2)+1/(3*3)+……+1/(n*n)

请你在下面程序中的划线部分填入________,完成求π的功能。

#include "math.h"

double pi(long n)

{ double s=0.0; long i;

for(i=1;i=n;i++) s=s+________;

return (sqrt(6*s)); }

A) 1.0/i/i

5、 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递

方式是________。

B) 单向值传递

6、 对于C语言的函数,下列叙述中正确的是________。

A) 函数的定义不能嵌套,但函数调用可以嵌套 (这答案有待斟酌)

7、 函数f的功能是:测定字符串的长度,空白处应填入________。

int f(char s[ ])

{ int i=0;

while(s[i]!='\0') i++;

return (________); }

main( )

{ printf("%d\n",f("goodbye!")); }

B) i

8、 若主调用函数类型为double,被调用函数定义中没有进行函数类型

说明,而return语句中的表达式类型为float型,则被调函数返回

值的类型是________。

C) double 型

9、 以下叙述中,错误的是________。

D) 形参可以是常量、变量或表达式

10、 以下叙述中,不正确的是________。

B) 在main函数体内定义的变量是全局变量

C语言函数问题,选择题,答案及选择理由,求详细解释。

A return 'A';

这个是可以的,因为char 类型在c语言里是可以与int 计算的。

B return 3.14;

这个是不可以的,答案就选B.

3.14是浮点常量。不是int,类型不匹配。

C return 0

这个是可以的,0 符合int类型数据输出。

D return (int)3.14;

这个也是可以的,int对3.14 进行了强制类型转化,把浮点类型转为int类型

求解两个C语言函数编程题 答案

求5个字符串的回文个数

#include stdio.h

#include string.h

int main()

{

char a[5][20];

int i,j,k=0,huiwen=0,n=0;

printf("请输入你要判断的字符串!\n");

for(i=0;i5;++i)

scanf("%s",a[i]);

for(j=0;j5;++j)

{

k=0;

for(i=0,n=strlen(a[j]);in/2;++i)

{

if(a[j][i]!=a[j][n-1-i])

{

k++;

break;

}

}

if(k==0)

huiwen++;

}

printf("有%d回文\n",huiwen);

return 0;

}

求数组的最大和次最大 和最大公约数

#include stdio.h

#define N 10

int main()

{

void max(int *a);

void gongyueshu(void);

int a[N];

int i,n;

printf("\t\t1 [求数组最大值和次最大值]\t2 [求公约数]\n");

scanf("%d",n);

switch(n)

{

case 1:{

printf("请输入10个数字sn");

for(i=0;iN;++i)

scanf("%d",a+i);

max(a);//该函数是求最大值和次最大值

}

case 2:{

printf("请输入两个数求最大公约数 ");

gongyueshu();//该函数是求最大公约数

}

return 0;

}

}

void max(int *a)

{

int t,i,j,k;

for(i=1;iN;++i)

{

for(j=0;jN-i;++j)

if(a[j]a[j+1])

{

t=a[j];

a[j]=a[j+1];

a[j+1]=t;

}

}

printf("最大值是 %d 次最大值是 %d\n",a[0],a[1]);

}

void gongyueshu(void)

{

int i,j,k,r,t;

scanf("%d",i);

scanf("%d",j);

if(ij)

{

t=i;

i=j;

j=t;

}

while(j!=0)

{

r=i%j;

i=j;

j=r;

}

printf("公约数是%d\n",i);

}


分享题目:c语言函数作业答案,c语言编程题库及答案
文章路径:http://pwwzsj.com/article/dsishcd.html