c语言问题在线解答(c语言问题在线解答老师)
1.
答案为
1
因为s=6
所以s%2+(s+1)%2
=
6%2+7%2
=
0+1
=1,%是求余运算
2.
变量c(请注意你问题里面的大小写,因为C语言对下小写敏感)包含的个数为1.
你所指的个数应该是指字符的个数,'\010'是八进制的表示方式。
3.
有很多答案,你要的答案应该是递归函数
原型如下:
int
jiechen(int
a);
实现一:递归函数
int
jiechen(int
a)
{
if(a
==
1)
return
1;
else
return
jiechen(a-1);
//在函数定义里面调用该函数
}
实现二:循环(不知道和迭代是否一样~~~)
int
jiechen(int
a)
{
int
res;
res
=
1;
do{
res
*=
a;
}while(--a);
return
res;
}
调用函数
jiechen(100);
c语言问题在线等答案第一题首先你要明白i++(执行完后加)和++i(执行前加)还有就是do,while是先做后判断;
第1次3+1=4//运行到下一句时i=2
第2次4+2=6//运行到下一句时i=3
第3次6+3=9//运行到下一句时i=4
此时满足了else条件,自此执行到++i时,i=5
第4次9+5=14//运行到下一句时i=6
此时满足了else条件,自此执行到++i时,i=7
第5次14+7=21//运行到下一句时i=8
因为2115所以循环终止
第二题,while是先判断后做;
第1次2%3=0//执行下一句前i=2
第2次3%3=0//执行下一句前i=3
第3次4%3=1//执行下一句前i=4
第4次5%3=2//执行下一句前i=5
此时满足条件,输出i的值5
第5次6%3=0//执行下一句前i=6
第6次7%3=1//执行下一句前i=7
第7次8%3=2//执行下一句前i=8
此时满足条件,输出i的值8
第8次9%3=0//执行下一句前i=9
第9次10%3=1//执行下一句前i=10
第10次11%3=2//执行下一句前i=11
此时满足条件,输出i的值11
第11次12%3=0//执行下一句前i=12
第12次13%3=1//执行下一句前i=13
第13次14%3=2//执行下一句前i=14
此时满足条件,输出i的值14
第14次15%3=0//执行下一句前i=15
循环结束
第三题do,while是先做后判断
楼主你是这么写的a=a+s*i;s=-si;i++;
s=-si这个应该编译不会通过的,有了前面两题的经验,楼主可以自己算一算,要有耐心哦,这些题主要是考验你对do,while和while结构的区别,还有就是++i和i++的区别
C语言在线答疑
设计思路:
1/先找出每一行的最大数,记录位置到数组中。
2/找出每一列最小的数,得出位置和之前数组比对,如果相通,说明是鞍点。
在火车上,只能用手机敲代码。代码如下:
#include
typedefstructPOS{//位置坐标结构体
intM;
intN;
};
voidShow(int**rect,POSp);//显示对应的点
POSFindRowMax(int**rect,intm,intn);
POSFindColMini(int**rect,intm,intn);
intmain()
{
inti=0,j=0,flag=0;
intrectArray[3][4]={{1,2,6,4},{5,6,7,8},{9,10,11,12}};
POSrowMaxPosArray[3]={};
POScolMiniPosArray[4]={};
for(i=0;i3;i++)
{
rowMaxPosArray[i]=FindRowMax(rectArray,i,4);
}
for(i=0;i4;i++)
{
colMiniPosArray[i]=FindColMini(rectArray,3,i);
}
for(i=0;i3;i++)
{
for(j=0;j4;i++)
{
if(rowMaxPosArray[i]==colMiniPosArray[j])
{
Show(rectArray,rowMaxPosArray[i]);
flag=1;
}
}
}
if(!flag)
{
printf("不存在鞍点
");
}
return0;
}
c语言问题?详细解答一下,谢谢输出结
果:cdeab
分析:只要你理解了move函数的作用你就能明白整个过程:
第一次循环调用move(char
*str,int
n)这一函数给它的参数是
s与
s的长度(就是你输入的abcde的长度5),第一步执行temp=str[5-1]=str[4],而str[4]的值为'e',所以temp的值为'e',接着执行for(i=n-1;
i0;i--)
str[i]=str[i-1];
这个循环是把从str[1]开始的所有数组的元素都后移一位,
即str[2]成了str[1],str[3]成了str[2]等等,循环执行完后执行str[0]=temp;,也就是把e赋值给了
str[0]。所以abcde被move函数处理一次后就成了
eabcd,如果再被处理一次后就被变成deabc等等
也就是说move函数每调用一次就把相应的字符串循环右移一位
一个C语言问题,求大佬解答?以下是实现两个fraction类型变量的加减的C代码:
#includestdio.h
#includestdlib.h
structfraction{
longlongintnumerator;
unsignedlonglongintdenominator;
};
//将分数f1和f2相加,返回结果
structfractionFra_Add(structfractionf1,structfractionf2){
structfractionresult;
//检查输入的合法性
if(f1.denominator==0||f2.denominator==0){
result.numerator=0;
result.denominator=0;
returnresult;
}
//计算分数的和
result.numerator=f1.numerator*f2.denominator+f2.numerator*f1.denominator;
result.denominator=f1.denominator*f2.denominator;
returnresult;
}
//将分数f1和f2相减,返回结果
structfractionFra_Sub(structfractionf1,structfractionf2){
structfractionresult;
//检查输入的合法性
if(f1.denominator==0||f2.denominator==0){
result.numerator=0;
result.denominator=0;
returnresult;
}
//计算分数的差
result.numerator=f1.numerator*f2.denominator-f2.numerator*f1.denominator;
result.denominator=f1.denominator*f2.denominator;
returnresult;
}
intmain(void){
inti;
structfractionsum={0,1};//初始化为0
structfractionterm;
//计算数列的和
for(i=1;i=10;i++){
//计算(-1)^(i-1)/(2*i-1)
term.numerator=(i%2==0)?-1:1;
term.denominator=2*i-1;
if(i%2==0){
sum=Fra_Sub(sum,term);
}else{
sum=Fra_Add(sum,term);
}
}
//输出结果的分数值
printf("结果的分数值:%lld/%llu
",sum.numerator,sum.denominator);
//输出
c语言程序解答(在线等)?根据题意:
1、项目序号应为唯一值,用自增变量填充。
2、时间使用structtm结构体(考虑如需时间运算,可使用相关函数)。
3、自定义结构类型SIINFO,分别实现插入链表和打印链表两个功能。
4、由于这个演示程序执行完就结束程序了。所以链表我没有写free释放内存,如你后期扩充代码,自己写释放(除程序结束,malloc申请内存不会自动释放)。
下面是演示代码:
#includestdio.h
#includemalloc.h
#includetime.h
#defineMS4//最大类型个数
#defineMN20//名称最大字符长度
charstypes[MS][10]={"速度型","力量型","耐力型","对抗型"};//项目类别,自行扩展,对应修改MS常量
typedefstructSportsItemInfo//定义一个体育项目结构类型
{
?intid;//项目序号,从数据结构考虑,该项不能重复,应设为自增从0开始(实际开发,这个值由数据库分配)。
?charname[MN+1];//项目名称
?intstype;//项目类(对应stypes行下标)
?intn;//参赛人数
?structtmsDate;//竞赛时间
?structSportsItemInfo*next;
}SIINFO;
SIINFO*insert2List(SIINFO*p_sHead);//插入新数据,首次插入参数传NULL。参数:链表头节点地址(不是首节点)。成功返回头节点,失败返回NULL。
voidselectFList(SIINFO*p_sHead);//查询链表
intmain()
{
?charc;
?SIINFO*p_sHead=NULL,*stemp=NULL;
?printf("新增体育项目:
");
?while(1)
?{
???stemp=insert2List(p_sHead);
???if(!stemp)
???{
?????printf("ERROR!
");
?????return1;
???}
???p_sHead=stemp;
???printf("是否继续输入(Y/N):");
???c=0;
???while(c!='Y'c!='N')scanf("%c",c);
???if(c=='N')break;
?}
?selectFList(p_sHead);
?return0;
}
voidselectFList(SIINFO*pht)
{
?inti=0;
?if(pht)
?{
???printf("
输出链表信息:
");
???while(pht-next)
???{
?????printf("-----------项目%d---------
",++i);
?????printf("项目序号:%d
",pht-next-id);
?????printf("项目名称:%s
",pht-next-name);
?????printf("项目类别:%s
",stypes[pht-next-stype]);
?????printf("参赛人数:%d
",pht-next-n);
?????printf("参赛时间:%04d-%02d-%02d%02d:%02d:%02d
",pht-next-sDate.tm_year+1900,pht-next-sDate.tm_mon+1,pht-next-sDate.tm_mday,pht-next-sDate.tm_hour,pht-next-sDate.tm_min,pht-next-sDate.tm_sec);
?????printf("--------------------------
");
?????pht=pht-next;
???}
?}
}
SIINFO*insert2List(SIINFO*p_sHead)
{
?staticintx=0;
?staticSIINFO*p_sTail=NULL;
?inti;
?SIINFO*p_new=NULL;
?if(!p_sHead){
???p_sHead=(SIINFO*)malloc(sizeof(SIINFO));
???if(!p_sHead)
?????returnNULL;
???p_sHead-next=NULL;
???p_sTail=NULL;
?}
?p_new=(SIINFO*)malloc(sizeof(SIINFO));
?if(!p_new)
???returnNULL;
?p_new-next=NULL;
?p_new-id=x++;
?printf("--------------------------
");
?printf("项目名称:"),scanf("%s",p_new-name);
?for(i=0,printf("项目类(");iMS-1;printf("%d、%s,",i,stypes[i]),i++);
?printf("%d、%s):",i,stypes[i]);
?p_new-stype=-1;
?while(p_new-stype0||p_new-stypeMS-1)scanf("%d",p_new-stype);
?printf("参赛人数:"),scanf("%d",p_new-n);
?printf("参赛时间(输入格式:年-月-日时:分:秒):");
?scanf("%d-%d-%d%d:%d:%d",p_new-sDate.tm_year,p_new-sDate.tm_mon,p_new-sDate.tm_mday,p_new-sDate.tm_hour,p_new-sDate.tm_min,p_new-sDate.tm_sec);
?p_new-sDate.tm_mon--;//tm结构的月份是从0开始对应1月
?p_new-sDate.tm_year=p_new-sDate.tm_year-1900;//tm结构的年份是实际年份-1900
?if(!p_sHead-next)
???p_sHead-next=p_new;
?else
???p_sTail-next=p_new;
?p_sTail=p_new;
?printf("--------------------------
");
?returnp_sHead;
}
c语言的问题(代别人提问)
\/\/你的程序写的很好,只有一处错误,已经改正,可以正确运行;\/\/要必须注意的是结构体指针跟一般数组指针不一样,数组地址作为形参时,\/\/会因为在调用函数体的操作而改变,而结构体指针不会,所以要传地址引用 \/\/像我下面用的一样,我把所有的Struct student * 替换为Ptrstu就好了 \/\/希望kutpbpb的...
C语言菜鸟问题,在线给分!!!
flt;)3)12*12=144,这时候变量a是144,所以后面一步你计算错了,应该是144-144=0,最后a=0+0所以a还是0.您真慷慨,其实不用给分也会回答您的,这样的问题是举手之劳!flyinwoods:用unsigned是和操作系统无关的,所以肯定是全扩展零。只有int由于符号位的存在,才可能会有扩0和扩1这两种可能性。
c语言问题
这个问题很简单吗!问题的关键是在于这一句;h[0].p=h[1].p=h;这是一个赋值运算,它的运算顺序是从右往左。由于h代表的是数组h的数组首地址。那么h[1].p=h就将h[1]中的结构体指针p指向了数组首地址,在地址值上等同于h[0];而h[0].p=h[1].p又将h[0]中的结构体指针p指向了h[1...
一个C语言问题?
问题7:static和extern区别是什么?1、static是静态变量:编译阶段会分配内存,只能在当前文件内使用,只初始化一次;2、extern是全局变量:在C语言下默认的全局变量前都隐藏的加了该关键字,只是我们平常看到的没有这个extern关键字而已。问题8:什么是全局变量和局部变量?1、全局变量:对全局变量直接修改...
请教一下C语言问题。。。急急急。。。
第一题 GB2312编码为16位,ASCII吗为8位 CB F5; D0 B4 ; CA C7; D6 B8;这是4个汉字,都是16位 50; 43 这是两个英文,各8为 汉字都是以字母开头的4个16进制的,英文都是2个16进制的,以数字开头 http:\/\/www.knowsky.com\/resource\/gb2312tbl.htm 这个是gb2312的中文表 第二题 K...
c语言的一些问题,在线等
答:1.C语言中,函数返回类型在定义中可以省略,此时函数返回类型隐含是:int 型 。2.C源程序文件的后缀名默认为 :.c 。3.设a和b均为double型变量,且a=5.5,b=2.5,则表达式(int)a+b\/b的值是:6.000000 4.程序段float x=165.323;printf(“x=%-10.2f”,x);执行时输出的结果为...
C语言问题
第二个问题,虽然这 int a[]={1,2,3,4},y,*p=&a[3]; 是一个语句,但是在C 语言编译时,在编译一条语句的时候,如果这一条语句又可以分解为几条语句的话,也会一条一条自语句编译的,也就是说,当语句编译到 y 的时候,它已经知道了数组int a[]={1,2,3,4}的定义了,在编译到 ...
一个很小的C语言问题
0xdef-0xabc = 0x333,这个上面的几位已经说得很清楚了。输出333前面为什么没有0x呢? 0x这个是不会主动输出,你想输出的话,可以这么写:printf("0x%X\\n",x2);
询问一个C语言问题的答案
这个结果与环境有关,我这里用sizeof来表示与环境相关的方面:unsigned char类型的字节数是sizeof(unsigned char),unsigned long类型的字节数是sizeof(unsigned long)。由于指针加法是以所指类型大小为单位移动的,因此p1+5的结果是0x801000加上5*sizeof(unsigned char),p2+5的结果是0x810000加上5*...
几个简单的c语言小问题 解决一题给十分
一。 d=20 if(a) d=d-10; a=0 if条件语句为假不执行 else if(!b) 不执行 if(!c) d=15; else d=25;是 else if(!b)下的语句 也不执行 二。 x=1 y=z=x; 赋值语句 x先赋给z 再赋给y x=y==z 先判断条件语句 y==z 是真 的...