有关c语言的题目

2025-01-07 17:57:49
推荐回答(5个)
回答1:


#include
#include
#include
#include
#define N 8
struct slist
{ double s;
struct slist *next;
};
typedef struct slist STREC;

void xin();
void lian();
void yumi();
void pjf();
int menu_select();
int main()
{
for(;;){
switch(menu_select())
{ case 1:
xin();
break;

case 2:
lian();
break;
case 3:
yumi();
break;
case 4:
pjf();
break;
case 5:
printf("Goodbye!\n\n\n");
exit(0);
}

}
return 0;
}
int menu_select()
{ char s;
int cn;
printf("1、形成新的字符串\n");
printf("2、连接两个字符串\n");
printf("3、狗熊吃包谷\n");
printf("4、求学生的平均分\n");
printf("5、Goodbye!\n");
printf("Input 1-5:");
do
{ s=getchar();
cn=(int)s-48;
}while(cn<0||cn>5);
return cn;
}
void xin()
{char s[100],t[100],u[100];
int a,b,c=0,i,j;
printf("\n请输入第一个字符串:");
scanf("%s",s);
printf("\n请输入第二个字符串:");
scanf("%s",t);
a=strlen(s);
b=strlen(t);
for(i=0;i { for(j=0;j if(s[i]==t[j])
{u[c++]=s[i];
break;}
else continue;
u[c]='\0';}
printf("在两个字符串中都出现的字母是:%s\n\n\n\n",u);
}
void lian()
{ char s[100],t[100];
int a,b,i;
printf("\n请输入第一个字符串:");
scanf("%s",s);
strcpy(t,s);
a=strlen(s);
for(i=0;i
strcat(t,s);
printf("连接后的字符串是:%s\n\n\n\n",t);
}
void yumi()
{
int c=1,i,b,a,e=0;
printf("有这样一个有趣的数学题,看聪明的你能解决吗?\n狗熊到玉米地吃包谷,第一天吃了一半又拿走一个回去喂小狗熊。\n第二天又去吃了剩下的一半,走时仍然带一个回去。\n以后每天都吃前一天剩下的一半,拿走一个。\n到第十天时,狗熊到地里一看,只剩下一个包谷了。\n求地里一共有多少包谷?\n");
for(i=1;i<10;i++)

printf("\n");
printf("你算出结果来了吗?\n输入你计算的结果:");
scanf("%d",&a);
if(b!=a)
printf("哎呀,你算错了。正确结果应该是%d\n\n\n\n",b);
else
printf("你真厉害,结果就是%d\n\n\n\n",b);
}
double fun(STREC *h)
{
int n=0;
double sum=0;
double av;
STREC *p;
p=h->next;
while(p)
{
n++;
sum+=p->s;
p=p->next;
}
av=sum/n;
return av;
}
STREC *creat(double *s)
{ STREC *h,*p,*q;
int i=0;
h=p=(STREC*)malloc(sizeof(STREC));p->s=0;
while(i{ q=(STREC*)malloc(sizeof(STREC));
q->s=s[i];i++;p->next=q;p=q;
}
p->next=0;
return h;
}
outlist(STREC *h)
{ STREC *p;
p=h->next;printf("head");
do
{ printf("->%4.1f",p->s);p=p->next;
}
while(p!=0);
printf("\n\n");
}

void pjf()
{
double s[N]=,ave;
STREC *h;
h=creat(s);outlist(h);
ave=fun(h);
printf("ave=%6.3f\n",ave);

回答2:

从main函数开始
定义int型整数,x = 11 y = 19
进入fun1函数
将x,y的值复制到参数a,b
a = 11 , y = 19
fun1函数内
a = a + a; a = 22;
b = b + b; b = 38;
c = fun2(a,b) 同样,将a,b的值复制到fun2
fun2函数内
a = 22, b = 38;
c = (a*b)%3; c = (22*38) %3; c = 836 %3 %表示求余数
c = 2;
把c返回
返回c*c //4;
最后输出结果为4

回答3:

在主函数里,将11付值给x,将19付值给y
调用函数fun1,将11付值给a,将19付值给b
进行运算a与b分别自加,得a=22,b=38
调用函数fun2,将22付值给a,将38付值给b
进行运算 c=(a*b)%3 %表示取余运算
将c的值返回主函数输出
即最后输出c的值

回答4:

程序一开始自定义两个函数fun2和fun1
从主函数开始运行,prinf中fun1(x,y)对fun1函数进行了调用,
把x=11赋给fun1中的形参a,y=19赋给b,
fun1函数中先算a=a+a=22,b=b+b=38,
然后又调用了函数fun2,把a=22,b=38赋值给fun2函数中的形参a,b,
c的值(a*b)%3=(22*38)%3=836%3=2.
然后输出c的值。

回答5:

main()先调用fun1,然后fun1调用fun2,在fun2中进行运算,返回一个值,fun1再用这个值运算,再返回一个值,最后main用printf显示出来