必会的18个c语言入门经典程序

11 、 已知数组 a 中的元素已按由小到大顺序排列 , 以下程序的功能是将输入的一个数插入数组 a 中 , 插入后 , 数组 a 中的元素仍
然由小到大顺序排列 */
main()
{ int a[10]={0,12,17,20,25,28,30}; /*a[0] 为工作单元,从 a[1] 开始存放数据 */
int x , i, j=6; /*j 为元素个数 */
printf(“Enter a number: “);
scanf(“%d”,&x);
a[0]=x;
i=j; /* 从最后一个单元开始 */
while(a[i]>x)
{ a[i+1]=a[i]; i–; } /* 将比 x 大的数往后移动一个位置 */
a[++i]=x;
j++; /* 插入 x 后元素总个数增加 */

printf(“\n”);
}

12 、 /* 编写函数 replace(char *s,char c1,char c2) 实现将 s 所指向的字符串中所有字符 c1 用 c2 替换,字符串、字符 c1 和 c 2
均在主函数中输入,将原始字符串和替换后的字符串显示在屏幕上,并输出到文件 p10_2.out 中 */

replace(char *s,char c1,char c2)
{ while(*s!=”)
{ if (*s==c1)
*s=c2;
s++;
}
}
main()
{ FILE *fp;
char str[100],a,b;
if((fp=fopen(“p10_2.out”,”w”))==NULL)
{ printf(“cannot open the file\n”);
exit(0); }
printf(“Enter a string:\n”);
gets(str);
printf(“Enter a&&b:\n”);
scanf(“%c,%c”,&a,&b);
printf(“%s\n”,str);fprintf(fp,”%s\n”,str);
replace(str,a,b);
printf(“The new string is—-%s\n”,str);
fprintf(fp,”The new string is—-%s\n”,str);
fclose(fp);
}

13 、 /* 在一个字串 s1 中查找一子串 s2 ,若存在则返回子串在主串中的起始位置
,不存在则返回 -1 。 */
main()
{char s1[6]=”thisis”;char s2[5]=”is”;
printf(“%d\n”,search(s1,s2));
system(“pause”);
}
int search(char s1[],char s2[])
{int i=0,j,len=strlen(s2);
while(s1[i]){

if(s1[i+j]!=s2[j]) break;
if(j>=len)return i;
else i++;
}
return -1;
}

14 、 /* 用指针变量输出结构体数组元素。 */
struct student
{
int num;
char *name;
char sex;
int age;
}stu[5]={{1001,”lihua”,'F',18},{1002,”liuxing”,'M',19},{1003,”huangke”,'F',19},{1004,”fengshou”,'F',19},{1005,”Wangming”,'M',
18}};
main()
{int i;
struct student *ps;
printf(“Num \tName\t\t\tSex\tAge\t\n”);
/* 用指针变量输出结构体数组元素。 */

printf(“%d\t%-10s\t\t%c\t%d\t\n”,ps->num,ps->name,ps->sex,ps->age);
/* 用数组下标法输出结构体数组元素学号和年龄。 */

printf(“%d\t%d\t\n”,stu[i].num,stu[i].age);
}

15 、 /* 建立一个有三个结点的简单链表: */#define NULL 0
struct student
{
int num;
char *name;
int age ;
struct student *next;
};
void main()
{
struct student a,b,c,*head,*p;
a.num=1001; a.name=”lihua”; a.age=18; /* 对结点成员进行赋值 */
b.num=1002; b.name=”liuxing”; b.age=19;
c.num=1003; c.name=”huangke”; c.age=18;
head=&a; /* 建立链表, a 为头结点 */
a.next=&b;
b.next=&c;
c.next=NULL;
p=head; /* 输出链表 */
do{
printf(“%5d,%s,%3d\n”,p->num,p->name,p->age);
p=p->next;
}while(p!=NULL);
}

声明: 除非转自他站(如有侵权,请联系处理)外,本文采用 BY-NC-SA 协议进行授权 | 智乐兔
转载请注明:转自《必会的18个c语言入门经典程序
本文地址:https://www.zhiletu.com/archives-2295.html
关注公众号:智乐兔

赞赏

wechat pay微信赞赏alipay pay支付宝赞赏

Pages: 1 2 3 4 5
上一篇
下一篇

相关文章

在线留言

你必须 登录后 才能留言!

在线客服
在线客服 X

售前: 点击这里给我发消息
售后: 点击这里给我发消息

智乐兔官微