c语言问题

谁能帮忙将以下程序的计算步骤给我详细说一说。这几道题我都不会算。关健是这几个程序都读不懂所以才不会算吧。帮我详情注解一下吧!谢谢!

7. 有以下程序
void fun(char *c, int d)
{*c=*c+1; d=d+1;
printf("%c,%c,",*c,d);
}
main()
{ char a=’A’, b=’a’;
fun(&b,a); printf("%c,%c ",a,b);
}
程序运行后的输出结果是__ b, B, A, b __。
9. 有以下程序
int a=3;
main() /* */
{int s=0;
{int a=5; s+=a++; } /* */
s+=a++; printf("%d ",s); /* */
}
程序运行后的输出结果是__8__。
10. 以下程序运行后的输出结果是 3, 2, 2, 3 。
void fun(int x,int y)
{x=x+y;y=x-y;x=x-y;
printf("%d,%d,",x,y);}
main()
{int x=2,y=3;
fun(x,y);
printf("%d,%d ",x,y);
}
11. #include <stdio.h>
fun(int x)
{
if(x/2>0) fun(x/2);
printf("%d ",x);
}
main()
{
fun(5); printf("\n");
}
程序运行后的输出结果是__1 2 5 __。
12. #include <stdio.h>
main()
{ char a[20]="How are you?",b[20];
scanf("%s",b);printf("%s %s\n",a,b);
}
程序运行后的输出结果是__无__。
13. #include <stdio.h>
int a=5;
void fun(int b)
{
int a=10;
a+=b; printf("%d",a);
}
main()
{
int c=20;
fun(c); a+=c;printf("%d\n",a);
}
程序运行后的输出结果是__ 3025 __。
14. #include <stdio.h>

main()
{ int a=1,b=7;
do{
b=b/2;a+=b;
} while(b>1);
printf("%d\n",a);

}
程序运行后的输出结果是__ 5__。
15. . #include <stdio.h>
main()
{ int x=20,a;
printf("%d+ ",0<x<20);
printf("%d\n",0<x && x<20);
}
程序运行后的输出结果是_ 1+0__。

7. 有以下程序
void fun(char *c, int d)
{
//这里改变了c,d的值并打印出来,‘A’+1 = ‘B’,这个是ASCII码的
//编码规则
*c=*c+1; d=d+1;
printf("%c,%c,",*c,d);
}
main()
{
char a=’A’, b=’a’;
fun(&b,a); //b传的是指针,a传值,因此在函数返回时b值改变,而a不变
printf("%c,%c ",a,b);
}
程序运行后的输出结果是__ b, B, A, b __。

9. 有以下程序
int a=3;
main() /* */
{int s=0;
{int a=5; s+=a++; } /* ‘++’放在a后,是先计算完s+a后,a再加1,s加的是a的原值,这个算完后s=5,a = 6。但是这个a的定义只是限制在上面的{}之间,不影响下面,只有s的结果有效 */
s+=a++; printf("%d ",s); /* s加上全局变量a=3,值为8 */
}
程序运行后的输出结果是__8__。

10. 以下程序运行后的输出结果是 3, 2, 2, 3 。
void fun(int x,int y)
{
//这个函数的最终效果就是x、y的值互换
x=x+y;y=x-y;x=x-y;
printf("%d,%d,",x,y);
}
main()
{int x=2,y=3;
fun(x,y); /*函数调用,只是在fun中x,y值互换了,因此输出为3、2,但返回时并未互换,输出为2,3。C的传值调用不改变参数值*/
printf("%d,%d ",x,y);
}

11. #include <stdio.h>
fun(int x)
{
//递归函数
/*下面main函数中调用时x为5,进入if语句判断,由于x/2=2>0,条件成立,调用fun(2),再进入if判断,条件成立,调用fun(1),再进入if判断,条件不成立了,打印出此时x的值1,其后函数返回,依次打印出前面的x值,分别为2,5*、
if(x/2>0) fun(x/2);
printf("%d ",x);
}
main()
{
fun(5); printf("\n");
}
程序运行后的输出结果是__1 2 5 __。

12. #include <stdio.h>
main()
{ char a[20]="How are you?",b[20];
scanf("%s",b);//这个你得先输入啊,应该是有结果的
printf("%s %s\n",a,b);
}
程序运行后的输出结果是__无__。

13. #include <stdio.h>
int a=5;
void fun(int b)
{
//这个函数就是输出b+10的值
int a=10;//这个定义把上面的全局变量a的值屏蔽掉了
a+=b; printf("%d",a);
}
main()
{
int c=20;
fun(c); //输出20+10,就是30
a+=c; //全局变量a=5,加20,输出25
printf("%d\n",a);
}
程序运行后的输出结果是__ 3025 __。

14. #include <stdio.h>

main()
{ int a=1,b=7;
do{
b=b/2;a+=b;
} while(b>1);/*这个就是b不断除2,a不断加上b的值,直至b比1小,一算就出来了。b除第一次是3,再除一次是1,a加3再加1就是5啊*/
printf("%d\n",a);

}
程序运行后的输出结果是__ 5__。

15. . #include <stdio.h>
main()
{ int x=20,a;
printf("%d+ ",0<x<20);
/*0<x<20这个是个表达式,x等于20,先算0<x,这个是对的,即这个表达式值为1,再算(0<x)<20,也就是1<20,这个自然也成立,所以整个表达式值为1*/
printf("%d\n",0<x && x<20);
/*这个跟上面类似,但是<和&&有优先级的差异,因此是0<x,x<20这两个表达式计算完成之后再与&&,里那个表达式结果一个是1,一个是0,所以最后结果是0啊*/
}
程序运行后的输出结果是_ 1+0__。
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-01-04
举一个例子:
15思考过程:
0<x<20 在此相当于一个布尔变量,处理器判断大于0或者小于20有一个成立即为真,因此打印结果为1+,
0<x && x<20 在此也相当于一个布尔变量,处理器判断大于0并且小于20都成立才为真,因此打印结果为0,
最后输出结果为 1+0。
关键是思路,把程序执行的过程搞清楚!
第2个回答  2009-12-31
第7题:在main函数中调用fun(),这里主要是传址和传值的区别。
9题:主要是弄清楚变量的作用域的问题,也就是变量的生存周期。
10题:跟7题差不多。也是传值问题,,函数传值是传不回主函数的,,只有传地址的时候,才可以传回值。
15:0<x<20意思是(0<x)<20本回答被提问者采纳

c语言常见问题有哪些
1、书写标识符时,忽略了大小写字母的区别。2、忽略了变量的类型,进行了不合法的运算。3、将字符常量与字符串常量混淆。4、忽略了等号与双等号的区别。5、忘记加分号。6、输入变量时忘记加地址运算符。7、输入数据的方式与要求不符。8、输入字符的格式与要求不一致。9、输入输出的数据类型与所用格式...

c语言程序 哪里出错了呢 始终运行不出结果
在C语言编程中,若程序始终无法输出结果,可能是因为输入数据的类型与程序调用的数据类型不一致。以scanf函数为例,当使用 scanf("%lf%lf%lf",&a,&b,&c);进行输入时,确实将输入的数字以float类型存储至内存中。然而,程序在读取这些内存时,可能期望以double类型进行解析。这种类型不匹配会导致解析出...

c语言能解决哪些问题
C语言具有高度的可移植性,可以在多种不同的操作系统平台上运行,解决跨平台兼容性问题。无论是Windows、Linux还是Unix系统,C语言都能很好地适应并运行。这使得C语言在开发需要跨平台运行的应用时具有很大的优势。总的来说,C语言因其高效、灵活、可移植性强等特点,能解决从系统开发到算法实现,从性能...

C语言的运行出现不了的问题是什么问题??
环境问题:代码在不同的操作系统、编译器或硬件平台上可能存在差异,导致代码无法正常运行。可以检查编译器和操作系统的兼容性,或在特定的环境中运行代码。逻辑问题:代码逻辑存在问题,导致代码无法正确执行。可以检查代码逻辑是否正确,是否存在死循环、递归深度过大等问题。综上,C语言代码运行不出现象可能...

c语言常见问题有哪些?
但C语言中,“=”是赋值运算符,“==”是关系运算符。如:if (a==3)a=b;前者是进行比较,a是否和3相等,后者表示如果a和3相等,把b值赋给a。由于习惯问题,初学者往往会犯这样的错误。5.忘记加分号。分号是C语句中不可缺少的一部分,语句末尾必须有分号。a=1 b=2 编译时,编译程序在“a=...

计算机程序c语言面试常见问题
c语言作为计算机程序设计语言,是考察软件工程师应聘者技术能力的关键。计算机程序c语言面试常见问题,我们来看看。c语言 面试题 精选(笔试)单选题部分 1、C语言程序的基本单位是___A.语句 B.函数 C.程序行 D.字符 答案:B 2、C语言程序由()组成 A.子程序 B.过程 C.函数 D.主程序段程序 ...

求c语言一些常见问题,
但C语言中,“=”是赋值运算符,“==”是关系运算符。如:if (a==3) a=b;前者是进行比较,a是否和3相等,后者表示如果a和3相等,把b值赋给a。由于习惯问题,初学者往往会犯这样的错误。5.忘记加分号。分号是C语句中不可缺少的一部分,语句末尾必须有分号。a=1 b=2 编译时,编译程序在“...

c语言面试经常问到的问题有哪些?
c语言面试经常问到的问题有:1、C语言的主要特征是什么?C是一种过程语言。C语言的主要功能包括对内存的低级访问,简单的关键字集和简洁的样式。这些功能使其适用于诸如操作系统或编译器开发之类的系统编程。2、i ++和++i有什么区别?1)表达式“i ++”返回旧值,然后递增i。表达式++i递增该值...

C语言代码问题?
在C语言中,我们可以编写一个程序来找出并输出10000以内的所有亲密数对。首先,我们需要编写一个函数来计算一个整数的所有真因子之和。然后,我们可以遍历1到10000之间的所有整数,对于每个整数,检查其真因子之和是否也在1到10000的范围内,并且它们的真因子之和是否互为对方。以下是C语言代码的一个示例...

C语言基本问题有哪些?
一、C语言规定总是从main()开始执行的(这个函数也叫“主函数”)。因此,你发来的题目中的(1、6、8)叙述都是错误的,都应该选择F。\\x0d\\x0a二、第2题中,C语言对其数据在内存中所占用的实际字节数,随着程序中声明的数据类型以及数据的多少而变化,C语言本身并没有明确规定。这题应该选F...

相似回答
大家正在搜