c语言在线答疑,求高人指导~~~谢谢了~~~

作者&投稿:纪恒 (若有异议请与网页底部的电邮联系)
跪求大神帮我解答C语言的判断题,谢谢了~

假 真 假 真 假
假 真 真 真 真

测试结果:【2个用独立函数写的,用一个程序实现】
判断回文数,请输入n:
123321
是回文数
请输入2个字符串!
Louzhu
Hello
LouzhuHello
请按任意键继续. . .

正确的代码:
#include "stdio.h"
#include "stdlib.h"
#include "string.h"

int isHuiWen(int n)
{
int sum=0;
int temp=n;
while(n!=0)
{
sum=sum*10+n%10;
n=n/10;
}
if(sum==temp)
{
return 1;
}
else
{
return 0;
}
}

int strProcess(char a[],char b[])
{
if(strcmp(a,b)!=0)
{
if(strlen(a)>=strlen(b))
{
strcat(a,b);
return 1;
}
else
{
strcat(b,a);
return 2;
}
}
return 0;
}

main()
{
int n=0;
char s1[100],s2[100];
printf("判断回文数,请输入n:
");
scanf("%d",&n);
if(isHuiWen(n))
printf("是回文数
");
else
printf("不是回文数
");

printf("请输入2个字符串!
");
scanf("%s",s1);
fflush(stdin);
scanf("%s",s2);
int k=strProcess(s1,s2);
if(k==0)
{
printf("字符串相等:
");

}
else if(k==1)
{
printf("%s",s1);
}
else
{
printf("%s",s2);
}
system("pause");
}

第一个:你定义的是char,其表示范围是-128到127;你的0345是八进制数,换算成十进制是229,原码是11100101,反码是10011010,补码是10011011,其表示的就是-27的二进制数在计算机里面的存储。

第二个:((ch=getchar())=='g') ,这个条件判断中的ch=getchar()这个表达式的值在你输入a的时候,不等于'g',循环终止。所以是0次。

第三个:putchar(n%10+'0');n=321,n%10+'0'=’1‘;if((i=n/10)!=0) printd(i)中,i=n/10 的值是32,后面递归调用函数本身。3次函数调用输出的字符分别是'3','2','1'。

第四个:抱歉,你给的答案是错误的。输出结果应该是abcabcabcbcabcc;原因如下:二维数组里面存的是abc,abc,abc这9个字符。循环3次输出分别从第一个,第五个,第九个字符输出。

第五个:这个是函数的递归调用。第一次输入a,并递归到下一层输入b,再递归到下一层输入#
条件符合退出递归,输出当前层的c,即#,退回上一层输出当前c,即b,再退回上一层输出当前c,即a。这就是ab##ba。

第六个:这个是由于define中的M+M没有加()。表达式经编译器编译后就是M+M*M+M*5,就是55。如果在define中加上括号,即(M+M),表达式就是(M+M)*(M+M)*5了。

第七个:你在swap中交换的是指针的值,不是指针指向的空间的值。所以没有交换成功。就是原来的12和15。

完了。。我真是闲的呵呵。。。。大半夜睡不着觉。。。。

唉 没给红分就想解这么多怪怪题 谁叫我人好呢 没办法
1.c是用八进制表示的,那么十进制的话就是229,c的ASCII等于229,可是ASCII只表示到到128啊,所以应该模128,但是我不知道模的时候为什么不取正数101,而取了-27,也许是补码问题.
2.getchar()只接受一个字符,你都把条件定义为遇到‘g’才执行,很显然,第一次循环都因条件不满足直接跳过了,后面的哪还有机会啊。
3.putchar(n%10+'0');这里先求出个位数并输出,if((i=n/10)!=0) printd(i);这里求出除了个位之前的所有数,然后以这些数位参数继续递归 输出最后一位,直到为0,也就是之前的数全部输出。
4.这个跟地址有很大关系了,输出结果不是abb吧应该为:abcabcabcbcabcc
for(i=0;i<3;i++) strcpy(x[i],ch);这个语句把数组x赋值为abcabcabc, printf("%s",&x[i][i]);第一次循环时从数组第【0】【0】个地址处开始输出:abcabcabc,第二次循环时从数组第【1】【1】个地址处开始输出:bcabc,第三次从数组第【2】【2】个地址处开始输出:c 所以最后输出应该为:abcabcabcbcabcc
5.这是个递归调用问题,当你输入的不是‘#’就递归,一层一层地递归,但是别忘了后面还有个putchar(c)一直保存着你当前的输入,当你条件不满足时退出递归,程序又会一层层输出原来保存的值 所以自然会对称输出。
6.这是因为你在M+M这没打上括号,所以最后执行为:M+M*M+M*5 先乘除后加减,所以就会输出55了
7.你虽然传了地址,交换了地址,但是并没有交换值啊,就像两个人手中分别拿着两个盒子,盒子里面装有不同的东西,你现在把他们的盒子交换了,但是里面的东西还是一样的啊,所以你应该这样写:
void swap(int *a, int *b)
{ int t ;
t=*a; *a=*b; *b=t;
}
这样才是交换了合子里面的东西

为什么是-27呢?
因为0345转化成二进制是111001101,负数在计算机存储是高位不变,反码+1,你把111001101减一取反,保持高位不变就是-27了。
第6题 每次getchar只是读取一个字符,无论你输入多少个字符按回车,这个函数只是读取一个,所以ch=‘a’怎么可能会有循环呢?
15题
printd是个递归函数,每次if(i !=0)就调用下,这样每次打印出3 2 1 。这个函数谁写的,还是错误的,函数都没申明。而且参数都错了,一塌糊涂写的,
晚上只是帮你解决这么多,有事情明天再说,我睡觉了,晚安


C语言的编程题,在线求编程解答,谢谢,有两题的
include <stdio.h>main(){ int m,n; double sum=0; double x=1; int i=1; scanf("%d%d",&m,&n); for(i=1;i<m;i++) sum=sum+i; for(i=1;i<=n;i++) x=x*i; sum=sum+m\/x; printf("%n",sum); }#include <stdio.h>main(...

易语言5.11,不能删除文件,求高手解答,在线等。。。
下载后直接放到易语言根目录里就可以了。2. 你把易语言破解补丁解压到你安装的易语言文件夹里,然后打开patch.exe,它就会把原来不能编译的e.exe替换为可以编译的e.exe,就这么简单。如果你的易语言破解补丁不能用,那可以把电子邮件写上,我给你发过来。如果还不明白可以和我在线交谈。

c语言!!在线等 ,跪求!!
下面程序段的运行结果是__A__。a=1; b=2; c=2;while (a<b<c) { t=a; a=b; b=t; c-- ; } printf("%d,%d,%d",a, b, c);A) 1, 2, 0 设有下面的程序段:char s[ ]= "china"; char *p; p=s;则下列叙述正确的是___B__。B) *p与s[0]相等 已有...

高分求《C语言》2010年秋学期在线作业一、二的答案
《C语言》2010年秋学期在线作业(一)——主要考查前四章的内容 试卷总分:100 测试时间:-- • 单选题 一、单选题(共 20 道试题,共 100 分。)V A. long B1. 以下选项中合法的用户标识是(B)。. _2Test C. 3Dmax D. A.dat 满分:5 分 2. 假定x和y为double型,则...

汇编语言 INT 20H和INT 21H有什么区别?高分在线求助
int 20h 程序终止 本中断只适用于ms-dos,建议不要使用int 20h终止程序,应当利用dos功能调用4ch来适当地终止程序。本中断入口参数:CS=程序PSP的段地址 返回:无 int 21h dos功能调用 含有近100个功能,提供了应用程序所需要的大多数服务,包括打开文件、关闭文件、读文件、写文件、读键盘输入、写显示...

c语言的题目,求详细解释啊,在线等!
答案是 japan korea 理由:str[3][6]是一个二维数组,可以看成是 以str[6]为元素的数组,大小为3。str[1] 就是 字符串“japan”str[1][5]就是"japan"的第六个字符,也就是“\\0”,即字符串结束符 赋值语句把这个位置的字符改成了空格‘ ’ ,所以当读取字符串str[1]的时候,计算机一直...

C语言 求高手求改错用递归计算编写一个函数:f(x,n)=x-x^+……+(-1...
\/\/您好感觉您的code问题有点儿多,自己写了一份\/\/感觉要不您看下我的code,看能否明白吧,可以对照着你的code看\/\/有不明白的地方,咱们可以交流#include<stdio.h>#include<math.h>double tar_func(double x, int n){if(n == 0){return 0;}else{return pow(-1.0, n-1) * pow(x, n...

高中最好的十个网课平台排名
4. 优胜网络课堂 优胜网络课堂的教学思路是以全新的方式让原本枯燥乏味的学习变得生动起来,所以平台一直以来采取的都是视频学习+练习+在线答疑的模式,使用直观、深入浅出的视频为主要教学资源,提高学生的学习效率。5. 猿辅导 猿辅导创立于2012年,通过多年来的发展,猿辅导有了飞跃性的突破,猿辅导在线...

C语言,求助大神,在线等
i++) \/*求 1-(LEN-1) 之间每个数的真因数之和*\/ numberFactorsSum[i] = factorsSum(i); for(i=1; i<LEN; i++) for(j=i+1; j<LEN; j++) \/*判断 i 和 j 是否为相亲数数*\/ if(numberFactorsSum[i] == j && numberFactorsSum[j] == i) printf("%d %d...

英语翻译求高手真心需求在线等 真心需求 求求求 作业要交的
As a result of the difference of historical figures, customs, living environment, religious belief and so forth, there is a great cultural difference between east and west, and as the “Global Village” becoming to reality gradually, a wave of cross-culture study is triggered with ...

玉树县13091312302: c语言在线答疑,求高人指导~~~谢谢了~~~ -
茌良可朋: 第一个:你定义的是char,其表示范围是-128到127;你的0345是八进制数,换算成十进制是229,原码是11100101,反码是10011010,补码是10011011,其表示的就是-27的二进制数在计算机里面的存储.第二个:((ch=getchar())=='g...

玉树县13091312302: 一道C语言,请教高人指导
茌良可朋: #include <stdio.h> char *strcat1(char s[],char t[]) /*字符数组实现*/ { int i,j; for(i=0;s[i];i++); for(j=0;s[i]=t[j];i++,j++); return s; } char *strcat2(char *s,char *t) /*字符指针实现*/ { char *p; for(p=s;*p;p++); for(;*p=*t;p++,t++); return s; } void main() { char s[100],t[...

玉树县13091312302: 一段C语言程序 请高人指点 -
茌良可朋: main() { ine x,y,z; x=y=z=-1; ++x&&++y‖++z; printf("x=%d\ty=%d\tz=%d\n",x,y,z); //x=0 y=0 z=-1 z=y=z=-1; ++x‖++y&&++z; printf("x=%d\ty=%d\tz=%d\n",x,y,z); x=1 y=-1 z=-1 x=y=z=-1; ++x&&++y&&++z; printf("x=%d\ty=%d\tz=%d\n",x,y,z); //x=0 y=0 z=0

玉树县13091312302: 新人学弟,刚学C语言跪求高人指点.
茌良可朋: 这是自加减运算 自加减运算符(++/--)在变量前面的时候,变量先进行自加减 ,然后在进行运算 比如i=1+(++j).这句话等同于 j=j+1;i=1+j.也就是J+1对i的结果有影响 而i=1+(j++) 这句话等同于 i=1+j;j=j+1;.也就是虽然j也加了1,但是这个加1对原来的运算没有影响

玉树县13091312302: C语言编程,两个数选最大值,组建错误,求高人指点!!!(C初学者) -
茌良可朋: int max(int , int ) 函数的max函数的定义后面多个不该有的分号,另外你的截图没有把出错的行显示出来,所以图是没有什么实质性作用的哦 int main() { int max(int x,int y); /* 函数原型的声明要放在调用该函数的函数定义部分的前面 */ int a,b,c; ...

玉树县13091312302: 我是一位C语言的初学者,有个问题,请哪位高人指点一下. mian() {float a1=123.456; printf("%d",a1); }
茌良可朋: main() {float a1=123.456; printf("%f",a1);}

玉树县13091312302: 求C语言大神指导 -
茌良可朋: 应该在return 0前面加上 getch();就可以看到程序运行结果了

玉树县13091312302: 求c语言大神指导 -
茌良可朋: 弟弟呀,初学吧,这个很简单啊,公式都提供了 public static void main(String[] args) { int n=3; float sum=1; for(int i=0;i<n;i++) { sum=sum*(2*(n*n))/((2*n-1)*(2*n+1)); if(n-1>1) n=n-1; } System.out.printf("%8.6f",2*sum); }你看一下,是不是你要的答案

玉树县13091312302: c语言求指导.求答案 -
茌良可朋: 主体代码,细节自己改,星期的计算是简化公式,日历不能直接推算1573以前的星期.#include <stdio.h> int month[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int main() { int year, days, firstDay, i, j; scanf("%d", &year);firstDay = (year *...

玉树县13091312302: 请高人指点C语言问题 -
茌良可朋: #include<iostream>#include<cmath> using namespace std; float fun(double i) { float PI=0; for(double j=1;j<=i;j++) { PI+=4*float((1/(2*j-1))*pow(-1,j+1)); } return PI; } void main() { float PI=0; double i=1; cout<<"n=20 "<<"π="<<fun(20)<<endl; cout...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网