本文目录一览:
有关C语言的几道题,求答案及解释
1、题目倒数第二句改为“输入字符A后”的话,ch的值是'A',getchar()是从标准输入流读取一个字符,并返回这个字符,赋值给了ch,所以ch的值就是你输入的那个字符,你输入A,它的值就是A
2、暂时还不是很明白,C和D都能在win-tc下编译通过,值都存在变量str3,和str4里面,可以通过printf("%s",strX);看,但是没有字符串没有存在指针指向的地址,不懂,指针还待学习……
3、输出为goodgood;
*sp = s表示把s数组的首地址赋予指针sp,
sp = sp + 2让指针sp往前移两个位置,也就是它现在指向了s[2],原来是指向s[0]
sp = “to”我想是把“to”赋予sp,因为sp本身也是个变量,原来存储的是s数组的地址,现在变成了“to”,如果你在后面加上
printf("%s",sp);
你会发现输出的是to,
puts(s)就是输出字符串s;
可以明显发现,后面几条语句根本没有对数组S进行操作,所以输出结果就是s初始化的值
*******************************************************************************
目前的认识就这些了
C语言 程序分析题 求详解
这个程序应该是把
十进制数
转换成
二进制数
输出
#include
//
头文件
void
main()
{
int
a,b[10],c,i=0;
//
a存储待转换的十进制数,b[10]存储转换后的二进制位,
//
c
是存储
余数
,
printf("输入一个整数\n");
scanf("%d",a);
//
输入需转换的十进制数
while(a!=0)
//
只要a不为零,就继续转换
{
c=a%2;
//
把a除以2
的余数赋值给c
a=a/2;
//
把商存入a进行下一次循环
b[i]=c;
//
把余数存到数组中作为二进制中的一位
i++;
}
for(;i0;i--)
printf("%d",
b[i-1]);
//反向输出余数,即得到二进制
例如输入4
因为4
!=
4
/
2
=
2((商=a)...........0(余数=c=b[0])
因为2
!=
2
/
2
=
1((商=a)...........0(余数=c=b[1])
因为1
!=
1
/
2
=
0((商=a)...........1(余数=c=b[2])
因为
=
结束循环输出
b[2]
b[1]
b[0]
即
100,也就是二进制的
4
两道C语言题求解,知道的谢谢解答。(请写出详细分析过程!!谢谢!满意答案与解释者给分。)
第一题D项怎么有两项啊?
反正我确定*ps是绝对不能引用字母o的,因为*ps代表字母p的首地址。
第二题
没答案
因为首先j=10,然后到下一步i=9,
!(j%i)=0,是假的,所以又进行下一步, 判断(ij-1) ,实际上是99,又是假的。此次循环结束
所以又进行上一步j=11,然后又到下一步i=9,!(j%i)=0是假的,又进行下一步,910,假的。
于是返回上一步i=10,!(j%i)=0还是假的,1010还是假的。没有任何步骤被执行。
不知你有没有打错什么字?