C语言 下面程序输出结果
答案是0
int k没有初始化,所以初始值不确定,但是int类型 4个字节(范围是-2147483648~2147483647). 所以在计算k的值时候,从起始地址往下数32位, 超出32位的会被截断
如果是正数,那最后就是0,很直观
如果是负数(8个字节来看)
0xffffffffffffffff === -1
0xfffffffffffffffe === -2
0xffffffff80000000 === -2147483648
0xffffffff7fffffff === -2147483649
但整型4个字节,所以对于-2147483649,它计算0x7fffffff的大小,变成了2147483647,回到正数,最后为0
#include#includevoid fun(char *p,int n){char k,*p1,*p2;p1=p;p2=p+n-1;while(p1<p2){k=*p1;*p1=*p2;*p2=k;p1++;p2--;}}int main(){char s[]={"1234567"};fun(s,strlen(s));puts(s);return 0;}
}
用这个试一下,看能不能行,
#include<stdio.h>
int fun(int x,int y,int *cp,int *dp)
{*cp=x+y;
*dp=x-y;
}
main()
{
int a,b,c,d;
a=30;b=50;
fun(a,b,&c,&d);
printf("%d,%d,",c,d);
}
有些程序要在main 的前面加上int 或者是void 的形式
可以用下面的试一下噢
#include<stdio.h>
int fun(int x,int y,int *cp,int *dp)
{*cp=x+y;
*dp=x-y;
}
int main()
{
int a,b,c,d;
a=30;b=50;
fun(a,b,&c,&d);
printf("%d,%d,",c,d);
}
有什么地方不懂的可以来问我,我只会C语言,别的内容我还不太会噢,
同学加油 加油
这是我修改的程序,你看下:
#include "stdio.h"
void fun(int x,int y,int *cp,int*dp)
{
*cp=x+y;
*dp=x-y;
};
void main()
{
int a,b,c,d;
a=50;
b=30;
fun(a,b,&c,&d);
printf("%d %d",c,d);
};
注意int fun(int x,int y,int *cp,int*dp)
你要清楚,你用这个函数的时候是不需要返回值的,所以怎么能写int fun(int x,int y,int *cp,int*dp)除非你这样写:
int fun(int x,int y,int *cp,int*dp)
{
*cp=x+y;
*dp=x-y;
return 0;
};
一定要return一个值,哪怕他是无意义的
另外,最好在main前加上void表示你没有返回值
源代码的第9行
printf("%d,%d,\n", c,d,); 这里多了一个逗号(在d的后面)。
另外main行数前最好加一个void,这样就不会有main函数的警告了。
第九行,d后面多了个 逗号
main函数应写成void main(){}
但是最好写成:
int main()
{
return 0;
}
这是c++的标准写法。
=.=人家明明是C代码啦...你们抓住返回值说事儿,真没良心
声明的时候就要把c,d弄成指针啊...
int a,b,*c,*d;
c语言题目:下面程序段的输出结果是什么?
答案是0 int k没有初始化,所以初始值不确定,但是int类型 4个字节(范围是-2147483648~2147483647). 所以在计算k的值时候,从起始地址往下数32位, 超出32位的会被截断 如果是正数,那最后就是0,很直观 如果是负数(8个字节来看)0xffffffffffffffff === -1 0xfffffffffffffffe === -2 ...
以下程序的输出结果是 main( ) { int a=12,b=12; printf("%d %d\\n...
程序输出的结果为a=11,b=13。程序的执行过程:首先定义了a的值为12,b的值为12,然后执行我们的输出语句,我们输出的不是a和b的值,而是表达式“--a”和表达式“++b”的值,因为前缀的“++”和“--”都是先进行加一或者减一的操作,再输出。所以说“--a”输出的结果为11,“++b”输出的...
C语言,求以下程序输出结果
回答:结果是:852 因为a[9]=1 a[8]=2 a[7]=3 ... a[5]=5 ... a[2]=8 ... 你也可以在for循环里直接输出整个数组;
C语言:输入12345#后,写出下列程序的输出结果
”,此时缓冲区中的‘4’已经被读取且未输出;第三次循环开始的时候先执行c=getchar(),此时c=‘5’,因为此时getchar()==’#’不满足循环条件,所以未进行输出。你想表达的意思应该是下面这样吧:void main(){ char c;for(c=getchar(); c!='#'; c=getchar())putchar(c);return;} ...
c语言,以下程序运行后的输出结果是
c=(a+=a-=5)是一个表达式,(a=b,b+3)是另一个表达式。a=0,a=a-5=-5,a=a+a=(-5)+(-5)=-10,将值赋给c,c=-10,此时,a=-5 a=b,将b的值赋给a,a=0,执行b+3=0+3=3,这个3不对任何变量赋值。因此最终结果a=0,b=0,c=-10 输出a、b、c的值,输出0,0,-10...
C语言编辑一道程序,输出结果?
程序代码如下:直接编译,程序输出结果中任意输入三个数字,程序执行结果如下图所示:
c语言问题,下面这段程序输出为什么是ace?
1.没有空格时。首先执行c=getchar();此时c='a';然后比较getchar()!=' #';此时,getchar()=‘b’;但是c=‘a’;所以输出a 再执行c=getchar();此时c='c';然后比较getchar()!=' #';此时,getchar()=‘d’;但是c=‘c’;所以输出c。所以输出对的。2.有空格时,情况比较诡异。c是...
...printf("%s\\n", s);;下面程序段的输出结果是
输出的结果:\\Aabc 为什么输出这个,是因为:\\\\ 代表一个反斜线字符''\\'\\101 代表的是101是一个整数,在printf时就会输出这个整数的 ASCII字符,即'A'
C语言程序 输出结果,求大神详细解释
回答:#include <stdio.h>void fun(int p)\/\/注意所有符号要是在英文状态下输入{int d=2;p=d++;\/\/先把d赋值给p 所以p=2,再d自加1 printf("%d",p);\/\/输出2}main(){int a=1; fun(a); printf("%d\\n",a);\/\/这里的a并没有改变 输出1}\/\/输出结果是21
C语言问题:下面程序的运行结果是
看看程序逐步运行跟踪结果:i=1;[i=1] i<5成立,开始循环: i%2为真, printf输出[*], printf累计输出[*#]i++;[i=2] i<5成立,继续循环: i%2为假, continue;i++;[i=3] i<5成立,继续循环: i%2为真, 累计输出[*#*], 累计输出[*#*#]i++;[i=4] i<5成立,继续循环: i%2为...