有一些c语言题目不会啊,请给我解答一下吧!谢谢

1.有以下程序#include<stdio.h>main(){chara,b,c,d;scanf("%c%c",&a,&b);c=getchar(0;d=getchar(... 1.有以下程序
#include <stdio.h>
main( )
{char a,b,c,d;
scanf("%c%c",&a,&b);
c=getchar(0; d=getchar();
printf("%c%c%c%c\n",a,b,c,d);
}
当执行程序时,按下列方式输入数据(从第一列开始,<CR>d代表回车,注意:回车也是一种字符)
12<CR>
34<CR>
则输入结果是
A.1234 B.12 C.12 D.12
3 34
2 。以下关于return语句的叙述中正确的是
A.一个自定义语句函数中必须有一条return语句
B.一个自定义函数中可以根据不同情况设置多条return语句
C.定义成void类型的函数中可以有带返回值的return语句
D.没有return语句的自定义函数再执行结束时不恩能够返回到调用处
3.有以下程序
#include <stdiu.h>
void fun(char *c.int d)
{
*c=*c+1;d=d+1;
printf("%c,%c,",*c,d);
}
main( )
{char b='a',a='A';
fun(&b,a); printf("%c,%c\n",b,a);
}
程序运行后的输出结果是
A.b,B,b,A B.b,B,B,A C.a,B,B,a D.a,B,a,B
4.有以下程序
#include 《stdio.h>
#define SUB(a) (a)-(a)
main()
{int a=2,b=3,c=5,d;
d=SUB(a+b)*c;
printf("%d\n",d);
}
程序运行后的输出结果是
A.0 B.-12 C.-20 D.10
5.有以下程序
#intclude <stdio.h>
main()
{ int m,n;
scanf("%d%d",&m,&n );
while (m!=n)
{ while(m>n)m=m-n;
while(m<n)n=n-m;
}
printf("%d\n,m);
}
程序运行后,当输入14 63<回车>时,输入结果是______.
ps:麻烦大家给我解答一下啊,这些题目不会做啊,请各位解释一下,说一下理由!
展开
 我来答
百度网友f8f762ac8
2012-02-22 · 超过12用户采纳过TA的回答
知道答主
回答量:60
采纳率:0%
帮助的人:38.9万
展开全部
1.有以下程序
#include <stdio.h>
main( )
{char a,b,c,d;
scanf("%c%c",&a,&b);
c=getchar(); d=getchar();
printf("%c%c%c%c\n",a,b,c,d);
}
当执行程序时,按下列方式输入数据(从第一列开始,<CR>代表回车,注意:回车也是一种字符)
12<CR> 次处将1赋给变量a,2赋给变量b,回车赋给变量c,回车有换行作用
34<CR> 次处将3赋给变量d,4和回车不做赋值操作
则输入结果是
A.1234 B.12 C.12 D.12
3 34 选择B
2 。以下关于return语句的叙述中正确的是 选择B

A.一个自定义语句函数中必须有一条return语句
B.一个自定义函数中可以根据不同情况设置多条return语句
C.定义成void类型的函数中可以有带返回值的return语句
D.没有return语句的自定义函数再执行结束时不恩能够返回到调用处
自定义函数中可以没有return语句,也可有一条或多条return语句,不管函数有没有return语句,函数在被调用后都会返回到调节器用处。void类型的函灵敏的函数体中不能出现return语句
3.有以下程序 下面的说明编号为运行顺序
#include <stdiu.h>
void fun(char *c.int d)
{
*c=*c+1;d=d+1; 3)传地址后*c等价于变量a,所以*c=*c+1也就是变量a的值加1,而变量d的值也加1(注意b的值没有变化)
printf("%c,%c,",*c,d);4)输出*c,d分别为b,B
}
main( )
{char b='a',a='A'; 1)让变量b获得字母a,变量a获得字母A
fun(&b,a); )将变量b的地址,变量a的值传递给函数fun(char *c,int d)的两个参数,形参c获得变量b的地址,形参d获得变量a的值字母A,
printf("%c,%c\n",b,a);5)输出b,a,分别为b,A
}
程序运行后的输出结果是
A.b,B,b,A B.b,B,B,A C.a,B,B,a D.a,B,a,B 选择A
4.有以下程序
#include 《stdio.h>
#define SUB(a) (a)-(a)
main()
{int a=2,b=3,c=5,d;
d=SUB(a+b)*c; SUB(a)代替为字符串 (a)-(a),所以SUB(a+b)*c代替为字符串(a+b)-(a+b)*c,根据计算(2+3)-(2+3)*5得-20
printf("%d\n",d);
}
程序运行后的输出结果是 选择C
A.0 B.-12 C.-20 D.10
5.有以下程序
#intclude <stdio.h>
main()
{ int m,n;
scanf("%d%d",&m,&n );
while (m!=n)
{ while(m>n)m=m-n;
while(m<n)n=n-m;
}
printf("%d\n",m);
}
程序运行后,当输入14 63<回车>时,输入结果是_7_____.
m!=n,进入循环后,由于条件m>n不成立,执行第二个循环,执行后n=7,m=4
再次判断m!=n,由于条件m>n成立,执行第一个循环,执行`后n=7,m=7
判断m<n不成立,判断m!=n不成立,跳出循环,输出m的值为7
谢应宸
2012-02-22 · TA获得超过2640个赞
知道大有可为答主
回答量:2731
采纳率:66%
帮助的人:2136万
展开全部
1、B
输入12后 a=1,b=2,紧接着输入了回车和34,这时候回车赋给了c,而3赋给了d

2、B
a、不必须 b、正确 c、因为是void类型,所以不允许带返回值的返回 d、返回调用处与return语句无关,而由PC指针决定

3、A
这条考的是传值与传址的概念,调用fun函数时,b传入的是地址,而a传入的是值,所以在fun结束后b的值改变了而a的值没有改变

4、-20
这条考的是宏函数,宏只负责展开,所以d=SUB(a+b)*c展开成 d=(a+b)-(a+b)*c=5-25=-20

5、7
这条用代入法计算即可
m n
14 63
14 7(63-14*4)
7 7(14-7)

请采纳,不懂的继续留言
追问
第四题:d=SUB(a+b)*c展开成 d=(a+b)-(a+b)*c这里为什么不是d=(a+b)*c-(a+b)*c呢?
追答
因为宏只负责表达式的展开,也就是说
SUB(a+b) 变成了 (a+b)-(a+b)
后面再加个*c的话就是(a+b)-(a+b)*c,不会自动补上括号的
详细参考宏的概念
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-02-24
展开全部
*c=*c+1;d=d+1;
printf("%c,%c,",*c,d);
}
main( )
{char b='a',a='A';
fun(&b,a); printf("%c,%c\n",b,a);
}
程序运行后的输出结果是
A.b,B,b,A B.b,B,B,A C.a,B,B,a D.a,B,a,B
4.有以下程序
#include 《stdio.h>
#define SUB(a) (a)-(a)
main()
{int a=2,b=3,c=5,d;
d=SUB(a+b)*c;
printf("%d\n",d);
}
程序运行后的输出结果是
A.0 B.-12 C.-20 D.10
5.有以下程序
#intclude <stdio.h>
main()
{ int m,n;
scanf("%d%d",&m,&n );
while (m!=n)
{ while(m>n)m=m-n;
while(m<n)n=n-m;
}
printf("%d\n,m);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sibin2010
2012-02-22
知道答主
回答量:44
采纳率:0%
帮助的人:21.6万
展开全部
1、B 经过代码测试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
viqjeee知识分享
2012-02-24 · 超过13用户采纳过TA的回答
知道答主
回答量:31
采纳率:0%
帮助的人:18.3万
展开全部
1 C
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式