当前位置:首页 » 编程语言 » c语言在线答疑
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言在线答疑

发布时间: 2022-04-30 04:16:15

A. c语言问题解答

图中红色框内代码

link p = NULL;不能初始化为NULL ,需要分配内存,不然在init里面输入值会奔溃。

需要改成:link p = (link)malloc(sizeof(node));

B. C语言在线答疑

帮人是不求分的,偶不同意楼上的看法。
1.m=5,n=8;是整型数据
#include<stdio.h>
main()
{
int m=5,n=8;
printf("%d%d\n",m,n);
}
2.m='a',n='B';是字符型数据
#include<stdio.h>
main()
{
char m='a',n='B';
printf("%c%c\n",m,n);
}
3.m=-43,n=278;是长整型数据
#include<stdio.h>
main()
{
long int m=-41,n=278;
printf("%d%d\n",m,n);
}
4.m=234.45,n=123.245;是实型数据
#include<stdio.h>
main()
{
float m=5,n=8;
printf("%d%d\n",m,n);
}

第二题:
#include<stdio.h>
main()
{
float gongzi,jingjin,sum;
printf("请输入该职工的工资和奖金:");
scanf("%f,%f",&gongzi,&jiangjin);
sum=gongji+jiangjin;
printf("%.2f\n",sum);
}

C. c语言程序设计问题 在线解答

scanf("%lf",&t1);
scanf输入时,float用%f,double输入用%lf,不能混用。

D. C语言答疑

正确答案为 D。
数组长度为6,那索引只能是0到5,所以A错。索引只能是整数,所以B错。索引要用方括号,所以C错。

E. C语言 在线问答

v0=13,v1=4,v2=12

F. C语言程序设计问题在线解答

#include<stdio.h>
float add(int x,y); /*函数声明*/
void main()
{int sum;
float a,b,c;
scanf("%f,%f",&a,&b); /*这里输入的时候不要忘记了逗号,或者去掉程序里的逗号*/
c=add(a,b);
printf("sum is %f\n",c);
}
float add(folat x,float y)/*float,去掉分号*/
{
float z;
z=x+y;
return z;/*printf("z=%f",z); 返回值代替打印*/
}

G. c语言程序解答(在线等)

根据题意:

1、项目序号应为唯一值,用自增变量填充。

2、时间使用struct tm结构体(考虑如需时间运算,可使用相关函数)。

3、自定义结构类型SIINFO,分别实现插入链表和打印链表两个功能。

4、由于这个演示程序执行完就结束程序了。所以链表我没有写free释放内存,如你后期扩充代码,自己写释放(除程序结束,malloc申请内存不会自动释放)。

下面是演示代码:

#include <stdio.h>

#include <malloc.h>

#include <time.h>

#define MS 4//最大类型个数

#define MN 20//名称最大字符长度

char stypes[MS][10]={"速度型","力量型","耐力型","对抗型"};//项目类别,自行扩展,对应修改MS常量

typedef struct SportsItemInfo//定义一个体育项目结构类型

{

int id;//项目序号,从数据结构考虑,该项不能重复,应设为自增从0开始(实际开发,这个值由数据库分配)。

char name[MN+1];//项目名称

int stype;//项目类(对应stypes行下标)

int n;//参赛人数

struct tm sDate;//竞赛时间

struct SportsItemInfo *next;

}SIINFO;

SIINFO *insert2List(SIINFO *p_sHead);//插入新数据,首次插入参数传NULL。参数:链表头节点地址(不是首节点)。成功返回头节点,失败返回NULL。

void selectFList(SIINFO *p_sHead);//查询链表

int main()

{

char c;

SIINFO *p_sHead=NULL,*stemp=NULL;

printf("新增体育项目: ");

while(1)

{

stemp=insert2List(p_sHead);

if(!stemp)

{

printf("ERROR! ");

return 1;

}

p_sHead=stemp;

printf("是否继续输入(Y/N):");

c=0;

while(c!='Y' && c!='N')scanf("%c",&c);

if(c=='N') break;

}

selectFList(p_sHead);

return 0;

}

void selectFList(SIINFO *pht)

{

int i=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)

{

static int x=0;

static SIINFO *p_sTail=NULL;

int i;

SIINFO *p_new=NULL;

if(!p_sHead){

p_sHead=(SIINFO*)malloc(sizeof(SIINFO));

if(!p_sHead)

return NULL;

p_sHead->next=NULL;

p_sTail=NULL;

}

p_new=(SIINFO*)malloc(sizeof(SIINFO));

if(!p_new)

return NULL;

p_new->next=NULL;

p_new->id=x++;

printf("-------------------------- ");

printf("项目名称:"),scanf("%s",p_new->name);

for(i=0,printf("项目类(");i<MS-1;printf("%d、%s,",i,stypes[i]),i++);

printf("%d、%s):",i,stypes[i]);

p_new->stype=-1;

while(p_new->stype<0 || p_new->stype>MS-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("-------------------------- ");

return p_sHead;

}

H. C语言答疑求答案谢谢

2. B
分析:
A项:第二个变量a[n][n]未赋值
C项:inta连接在一起,不能正确定义数组,且数组默认下标只能是高维下标,即a[2][]写法错误,可以写成a[][2]
D项:只对其中一部分赋值,a[2][0]和a[2][0]无赋值
3.A
A,C项char 和后面的s无空格,暂时认为是排版错误
分析:
A项数组后面是分号,s1不能正确定义。改成逗号才可以
4.C
%m.ns:输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格。
本题中未指定m,因此不会补空格,只会输出n个字符
5.C
strlen是取字符的个数,包含空格但不包含字符串的结束符。
本题中有两个空格和7个字符共9个
6.A
a[][4]表示每行4个元素, a[1][0]为第二行,即对应5值

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

第一个:你定义的是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。

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

J. C语言程序设计问题在线解答

您好,很高兴回答您的问题。
我有从事c语言程序设计教学15年的经验,也很愿意为您解答相关问题。若您有什么疑惑的话,可以与我联系,必定在您解答。或者您直接把问题列出来,我看到后会回复您的。