c语言题目练习(2)

来源:互联网 发布:淘宝订单存在异常 编辑:程序博客网 时间:2024/06/07 07:02
1.题目:创建单链表并赋值,要求遍历能输出1~9

#include <stdio.h>

#include <stdlib.h>

 

struct List

{

int name;

struct List *next;

};

 

typedef struct List *LinkList;

 

void ListInit(LinkList *L)

{

(*L)=(LinkList)malloc(sizeof(struct List));

(*L)->next=NULL;

}

void ListInsert(LinkList *L)

{

LinkList p=(*L);

LinkList n=(LinkList)malloc(sizeof(struct List));

printf("please input the name:\n");

scanf("%d",&(n->name));

if(p->next==NULL)

{

n->next=p->next;

p->next=n;

}

else

{

n->next=p->next;

p->next=n;

}

p=p->next;

}

void ListTraverse(LinkList L)

{

LinkList p=L->next;

while(p!=NULL)

{

printf("%d  ",p->name);

p=p->next;

}

printf("\n");

}

int main()

{

void ListInit(LinkList *L);

void ListInsert(LinkList *L);

void ListTraverse(LinkList L);

int i;

LinkList L;

ListInit(&L);

for(i=0;i<9;i++)

{

ListInsert(&L);

}

ListTraverse(L);

return 0;

}




2.题目:读取一个5*5数组,然后显示每行的和与每列的和


#include <stdio.h>


int main()
{
int a[5][5]={{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5}};
int i,j;

for(i=0;i<5;i++)
{
int sum=0,sum1=0;
for(j=0;j<5;j++)
{
sum1=sum1+a[j][i];
sum=sum+a[i][j];
}
printf("the %d hang sum is:%d\n",i,sum);
printf("the %d lie sum is:%d\n",i,sum1);
}
return 0;
}




3.题目:编程判断字符串是否为回文
判断一个字符串是否是回文,例如单词‘level’


#include <stdio.h>
#include <string.h>


int main()
{
char a[20]={0};
int i,j=0,length;


printf("please input:\n");
scanf("%s",a);


length=strlen(a);
// printf("%d\n",length);


for(i=0;i<(length-1)/2;i++)
{
if(a[i]==a[length-1-i])
{
j++;
continue;
}
break;
}
if(j==(length-1)/2)
{
printf("yes!\n");
}
else
{
printf("no!\n");
}
return 0;
}


4.题目:生日蜡烛
某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。
现在算起来,他一共吹熄了236根蜡烛。
请问,他从多少岁开始过生日party的?(第七届蓝桥杯B组真题(第二题))


#include <stdio.h>


int main()
{
int x;


for(x=1;x<236;x++)
{
int sum=0,j;
for(j=x;j<236;j++)
{
sum=sum+j;
if(sum==236)
{
printf("%d\n",x);
return 0;
}
}

}
return 0;
}