c语言函数问题。高手指教

作者&投稿:线姚 (若有异议请与网页底部的电邮联系)
c语言问题,编的fopen函数总是出错,请高手指教~

1.文件路径
2.文件已经存在并不能修改

#include
void main( )
{
int m=1,n=2,t=3; //全局变量
++m; //此时m的值为2
t+=++n; //n的值为3,t的值为6
{
int n=10,t; //局部变量
t=n*2;//n的直为10,t的值为20
m+=t; //m的值为2+20=22
printf("%d,%d,%d
",m,n,t);//局部变量m、n、t的值
}
printf("%d,%d,%d
",m,n,t);
}

第一题的知识点是,逗号表达式,逗号表达式的值是最右边的那个值,这个要记住了。比如说,z=(2,3,4);z是被赋予4的。那又比如说,z=((2,3),4);z还是被赋予4的。顺便说一下,因为逗号运算符是C中优先级最低的一个,所以括号一定要写的。比如说z=2,3,4;这样的话z是被赋值为2,而3和4在编译的时候就会出现warnings,说它们没有no efforts。
所以说r=func ((x--,y++,x+y),z--);实际上是r=func ((6,7,13),8);即是r=func (13,8); 所以答案应该是21.
第二题的知识点是实参传递。我想说,如果这道题有正确的编译结果的话就是奇异的。因为,书上说得很明确,实参在进行函数调用的时候,必须有确定的值,这样才能把这些值传递给形参。所以这道题编译时不成功的,因为c的值不确定。并且,这里并没有return语句,所以就算c能够算出来也输出不了。(这是因为这里是传值,形参的改变时改变不了实参的。)如果要成功,我认为要这么写。#include <stdio.h>
int fun(int a,int b,int c)
{c=a*b;
return c;}
main()
{int c;
c=fun (2,3);printf("%d\n",c);
} 结果为6。
第三题,首先,主函数i=0时,i=0传递给子函数n,这时s=1.0不变;接着,主函数i=1时,i=1传递给子函数n,这时s=1.0+1.0+1.0/1=3.0;接着,主函数i=2时,i=2传递给子函数n,这时s=3.0+1.0+1.0/1+1.0/2=5.5,输出的时候输出%f,没有精度控制的话就默认保留6到7位数字。 结果是5.500000
第四题,嗯,我觉得你应该先自己想想,unsigned是无符号整数的意思,就是没有负数的。k*=num%10是k=k*(num%10),(num%10)是取余数的意思。do-while语句,while(num)num为0时候才跳出循环。首先,实参26传递过去,num为26,k=1*(26%10)=1*6=6;然后num=26/10=2.6,自动取2.(因为num为unsigned型);然后循环,继续,k=6*(2%10)=12;num=2/10=0.5,自动取0;这时候跳出循环,返回值为k=12,即是主函数显示12. 结果是12

1)8
2)6
3)4.5
4)312


C语言, 一个分段函数的计算 ,高手看看有什么问题, 从大于0的数开始都不...
include <stdio.h> include <math.h> void main(){ float x,y;printf("请输入x: \\n");scanf("%f",&x);printf("输入x=: %f\\n",x);if(x<0)y=5-x;else if(x==0)\/\/是等于号 就这一个问题 y=0;else if(x>0&&x<10)y=sqrt(2*x)-1;else y=3*x-11;printf("y=%f\\...

C语言free()函数的问题,高手帮帮忙
楼主你在堆上申请的空间是连续的呀!直接释放就是,free(L.r)这一局就可以了。为什么呢?L.r指针已经知道有多少空间自己指向,况且是连续的!

关于C语言被调用函数的声明问题!高手都进来看一下哈!
不同编译器处理不同的。在VC++6.0环境下,如果返回类型是int类型确实可以不声明,你的程序可以无误通过。但是建议只要用到自定义函数都声明下,于人于己都方便

C语言 函数编程 高手来 看清楚问题要求用函数而且需要3个流程图_百 ...
max 流程图 min 流程图 main 流程图 include <stdio.h>#define N 3int min(int a[], int n){ int min = a[0]; for (int i = 0; i < n; i++) { if(a[i]<min) min = a[i]; } return min;}int max(int a[], int n){ int max = a[0]; ...

简单的C语言问题,高手看看哪里有问题,谢谢了!
int fun(int *p1,int *p2){ int *t;t=*p1;p1=*p2;p2=*t;} 你的意思是交换两个数的值吧,但*t属于野指针,它指向的位置是未知的,有可能会引起程序的崩溃,还有就是可能有不正确的结果。下面是正确的程序 int fun(int *p1,int *p2){ int t;t=*p1;p1=*p2;p2=t;} ...

求高手做一道C语言题目
我写了三种方法,可以参考~~~\/ 从键盘输入3个数,输出最大值和最小值 1.用scanf函数输入三个数,且在输入前要有提示;2.使用嵌套结构出最大值,然后求出最小值,并使用printf输出 \/ \/\/方法一:你要的嵌套结构,经过判断和交换,使得a是最大值,c是最小值 include<stdio.h> int main(){ i...

C语言的几个问题,请高手指教
C语言中,Char的存储类型是:“占用一个字节的类型”(就叫字节型吧),机器数的码制是补码,存储的数值所代表的字符符合ASCII规则。2 sqrt()函数的存储类型是double型。(可查看数学函数表)3 这个没营养哦,(1)x=0 k=2 (2)x=0 k=7 (3) x=2 k=7 (4) Error!4 建议你复习数据类型一...

c语言 二维数组 递归函数问题 求高手帮助!!
include <stdio.h> include <stdlib.h> \/\/函数声明 int calculate(int (*a)[8]);int main(void){ int a[8][8] = { {1,1,1,1,1,1,1,1},{1,1,0,0,1,0,0,1},{1,0,0,1,0,0,1,1},{1,1,1,0,0,1,0,1},{1,0,1,1,1,0,0,1},{1,1,0,0,0,1,1,1},...

C语言高手,编写函数mypow,求整型变量x的y次方。(要求包括能使程序正常运...
include <stdio.h> include <stdlib.h> include <string.h> int mypow(int x,int y);void main(){ int a,b;scanf("%d,%d",&a,&b);printf("a=%d,b=%d\\n",a,b);printf("mypow(%d,%d)=%d\\n",a,b,mypow(a,b));} int mypow(int x,int y){ int i,z=1;for(i=0;i<y...

请教:c语言的问题请教各位高手,是一个欧拉公式的转换问题,函数中两个返...
用拓朴学方法证明欧拉公式 尝欧拉公式:对于任意多面体(即各面都是平面多边形并且没有洞的立体),假 设F,E和V分别表示面,棱(或边),角(或顶)的个数,那么 F-E+V=2。试一下用拓朴学方法证明关于多面体的面、棱、顶点数的欧拉公式。证明 :(1)把多面体(图中①)看成表面是薄橡皮的...

美溪区13782319782: C语言基本函数问题,求高手不吝赐教 -
骑帝创成: 主函数的返回值你给了一个int型 return() 它是一个空类型的返回值 类型不匹配 当然报错改成void main() 正好和后面的return() 匹配上要么 前面用 intmain() 后面改成 return 0;

美溪区13782319782: c语言的函数问题? -
骑帝创成: 两个表达式分别用两个递归函数来实现. 所以,题目中两个表达式的描述,就是告诉你不同情况下的函数返回值. 之后根据题意,主函数通过函数指针调用,函数指针就是指向函数的指针.把两个函数分别赋值给指针,再通过指针调用函数. ...

美溪区13782319782: 求大神解答(c语言函数) -
骑帝创成: #includeint main() { void judge(char m[100],char n[100]); char a[100],b[100]; printf("请输入一个字符串:"); gets(a); judge(a,b); puts(b); return 0; } void judge(char m[],char n[]) { int i=0,j = 0; while(m[i]!='\0') { if(m[i]=='a'||m[i]=='e'||m[i]=='i'||m[i]=='...

美溪区13782319782: c语言问题,这个函数有个地方不明白,还望高手指点啊 -
骑帝创成: 从前面不是*的地方开始向第一位置赋值 h+j 直到赋值到后面*要开始时 a[j]=0 添加结束符 把后面的*都截断了 如果不添加这个a[j]=0的话 字符串就会继续后面的* 直到 后面原来的结束符

美溪区13782319782: c语言字符串函数,请高手指点 -
骑帝创成: strcpy()和strcat()操作的都是字符串,你上述的两句代码的第二个参数'A'+'B'都是字符类型的,不能作为参数,还有疑问请继续问我,满意请采纳

美溪区13782319782: C语言编程问题 请高手赐教 -
骑帝创成: 请加点分吧,呵呵. 你在CompactIntegers(数组名)加入数组名就行了 全改了一下. ============================================= #include#define N 20 int CompactIntegers(int *); void main() { static int a[N]; int m,t; printf("input the ...

美溪区13782319782: C语言关于指针作为函数参数问题,求高手指教! -
骑帝创成: void swap(int *px, int *py) { int tmp; tmp = *px; *px = *py; *py = tmp; } pt是指针,但是你没分配内存给他,不能取值的

美溪区13782319782: 用C语言编一函数,很简单的问题!!! -
骑帝创成: 有些地方不太清楚,大概写了一个: #include <stdio.h> #include <string.h> #define ARR_SIZE(x) (sizeof(x)/sizeof(x[0])) enum { FALSE = 0, TRUE = !FALSE, }; int NUM1[] = {0,1,2,3,4,5,6,7}; char *NUM2[]={"nanjing", "shanghai", "beijing", ...

美溪区13782319782: 高分急求!C语言编程问题,求高手解答 -
骑帝创成: 1、首先第四行是定义的一个子函数,在主函数内部定义的所以后面要加分号2、设定abc三个变量是题目所需,因为比较大小两个数来比较第三个变量来保存比较结果,你也可以设定两个变量,把比较结果保存到输入值中不过就会覆盖原来的值3、Z是一个子函数变量,设定在主函数中在子函数不能使用,z的生存期只有在那个max函数中才会分配内存空间4、第18行没有出来,第16行倒是可以给你解释哈,在16行他是返回比较值保存在z当中的然后在第7行那个c就会接收到max的比较结果

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网