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

2024-12-25 09:11:52
推荐回答(5个)
回答1:

1.有以下程序
#include
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);
}
当执行程序时,按下列方式输入数据(从第一列开始,代表回车,注意:回车也是一种字符)
12 次处将1赋给变量a,2赋给变量b,回车赋给变量c,回车有换行作用
34 次处将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
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
main()
{ int m,n;
scanf("%d%d",&m,&n );
while (m!=n)
{ while(m>n)m=m-n;
while(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

回答2:

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)

请采纳,不懂的继续留言

回答3:

*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
main()
{ int m,n;
scanf("%d%d",&m,&n );
while (m!=n)
{ while(m>n)m=m-n;
while(m}
printf("%d\n,m);

回答4:

1、B 经过代码测试

回答5:

1 C