c语言函数答案,c语言函数题目及答案

c语言函数问题,求结果

答案是22

创新互联-专业网站定制、快速模板网站建设、高性价比淮安区网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式淮安区网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖淮安区地区。费用合理售后完善,十载实体公司更值得信赖。

调用函数fun时,先计算fun(--x,--y); 再计算fun(x++,y++)

前缀 -- (或++):是先减(加)1后再将其结果代入运算

后缀 ++ (或--):是先代入数据后在对其进行加(减)1运算

故而

第一步:计算fun(--x,--y)时实际上代入的值为 fun(5,6) == 11; 即先将x和y减1后再代入

此时 x == 5, y == 6

第二步:计算fun(x++,y++)时,代入的值为fun(5,6) == 11; 即先将x和y代入运算然后再加1

此次调用后x == 6,y==7

第三步:计算fun(fun(x++,y++),fun(--x,--y)) ,此时实际上代入的值为 fun(11,11) == 22;

因此函数运行后 z 的值为 22; x 的值为6,y 的值为7

另外就是楼主最后一条打印语句出错了,应该是笔误吧:改为 printf("%d\n",z);

c语言求答案,以及解释

C main是入口

D printf 是标准库函数的函数名

A ''单引号中的必须是字符型

A char a='A',b='B'

B 0为假,其他为真

求解两个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语言,函数的调用,求解答

1、原因很简单,max2不输出的原因是,你的函数最后只是返回了i或者j的值,但没有其它操作了。

如果你想要max2输出,那么要将30行换成:

printf("%d",max2(a,b));

max2(a,b)最终得到只是个值,你完全可以把它看成是一个变量。如果这段代码还要详细点:

int s;

s=max2(a,b);

printf("%d",s);

这下看明白了吧

2、有返回值和没返回值其实很好区分,只要有你最终是否会用到return去得到一个值就是区分的方法。

3、你的max1,其实是有返回值的。补全的话在第7行后面是有一句return 0的,但是这个返回值不是你实际会用到的,它的意思只是说你的这段程序是正确的。是可执行的。

4、max3没有返回值,它虽然有输出,但是这个输出的i或者j不是这个函数的返回值,只是函数执行的一个步骤而已。max1中的printf输出也是同理

C语言函数题 为什么第二行的答案是10?

第二行执行的是printf("%d\n", f2());,算上前面的for循环,一共执行了4次f2,printf语句是先执行f2然后再输出的。

看到f2里面,其实就是两个静态变量。s初始为0,k=1;然后每次进来k都会自增,进来四次,就相当于是1+2+3+4,所有最后输出出来就是10.

你不知道第二行输出是10,是不知道静态变量是啥意思吧?静态变量你可以理解为全局变量,他只会初始化一次,也就是说,static int k = 1, s;这一句,只会在第一次进入f2的时候执行,后面再进去,是不会执行k=1的。

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语言函数答案,c语言函数题目及答案
链接URL:http://scyanting.com/article/hecjdj.html