c语言面试题2道(华为) C++面试题

1、一个学生的信息是:姓名,学号,性别,年龄等信息,用一个链表,把这些学生信息连在一起, 给出一个age, 在些链表中删除学生年龄等于age的学生信息。
#include /"stdio.h/"
#include /"conio.h/"
struct stu{
    char name[20];
    char sex;
    int no;
    int age;
    struct stu * next;
}*linklist;
struct stu *creatlist(int n)
{
    int i;
    //h为头结点,p为前一结点,s为当前结点
    struct stu *h,*p,*s;
    h = (struct stu *)malloc(sizeof(struct stu));
    h->next = NULL;
    p=h;
    for(i=0;inext = s;
        printf(/"Please input the information of the student: name sex no age /n/");
        scanf(/"%s %c %d %d/",s->name,&s->sex,&s->no,&s->age);
        s->next = NULL;
        p = s;
    }
    printf(/"Create successful!/");
    return(h);
}
void deletelist(struct stu *s,int a)
{
struct stu *p;
while(s->age!=a)
{
  p = s;
  s = s->next;
}
if(s==NULL)
  printf(/"The record is not exist./");
else
{
  p->next = s->next;
  printf(/"Delete successful!/");
}
}
void display(struct stu *s)
{
s = s->next;
    while(s!=NULL)
    {
        printf(/"%s %c %d %d/n/",s->name,s->sex,s->no,s->age);
        s = s->next;
    }
}
int main()
{
    struct stu *s;
int n,age;
printf(/"Please input the length of seqlist:/n/");
scanf(/"%d/",&n);
    s = creatlist(n);
    display(s);
printf(/"Please input the age:/n/");
scanf(/"%d/",&age);
deletelist(s,age);
display(s);
    return 0;
}
2、实现一个函数,把一个字符串中的字符从小写转为大写。
#include /"stdio.h/"
#include /"conio.h/"
void uppers(char *s,char *us)
{
    for(;*s!='/0';s++,us++)
    {
        if(*s>='a'&&*s<='z')
            *us = *s-32;
        else
            *us = *s;
    }
    *us = '/0';
}
int main()
{
    char *s,*us;
    char ss[20];
    printf(/"Please input a string:/n/");
    scanf(/"%s/",ss);
    s = ss;
    uppers(s,us);
    printf(/"The result is:/n%s/n/",us);
    getch();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值