c语言问题在线解答(c语言问题在线解答老师)

供稿:hz-xin.com     日期:2025-01-12
计算机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 是真 的...