栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言初学练习

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言初学练习

写在前面,当时练习以下程序是出于应试,以下有很多应试会考到的题目,例如,最小公倍数、日期转换、选择排序、逆序...如果有很多有应试需求的人们需要整理版的题库,我会抽时间去帮忙整理,祝大家考个好成绩。


//book.c 一本书的图书目录,本题来自C Primer Plus例题,当时觉得对于应用结构体帮助很大,照着敲了一遍。

#include                            
#include
char* s_gets(char*st,int n);
#define MAXTITL 41
#define MAXAUTL 31
struct book{
    char title[MAXTITL];
    char author[MAXAUTL];
    float value;
};

int main()
{
    struct book library;
    printf("Please enter the book title.n");
    s_gets(library.title,MAXTITL);
    printf("Now enter the author.n");
    s_gets(library.author,MAXAUTL);
    printf("Now enter the value.n");
    scanf("%f",&library.value);
    printf("%s by %s: %.2fn",library.title,library.author,library.value);
    printf("Done.n");
    return 0;
}

char* s_gets(char*st,int n)
{
    char* ret_val;
    char* find;
    ret_val=fgets(st,n,stdin);
    if(ret_val)
    {
        find=strchr(st,'n');
        if(find)
           *find='';
        else
          while(getchar()!='n')
          continue;
    }
    return ret_val;
}
*/
                                      //多本书

                                     //funds1.c Ba Jie Gou Cheng yuan as Canshu

                                   //funds3.c      传递结构

#include
int main()
{
    int i,j,k;
    for(i=1;i<100;i++)
        for(j=1;j<100;j++)
            for(k=1;k<100;k++)
            {
                if(i*15+j*9+k==300&&i+j+k==100)
                {
                    printf("%d %d %dn",i,j,k);
                }
            }
    return 0;
}



//定义动态数组,从键盘输入数组元素个数并为数组中的元素赋值,然后将数组元素从小到大排序并输出

#include
#include
int main()
{
    int *p,n,i;
    int min,j;
    scanf("%d",&n);
    p=(int*)malloc(n*sizeof(int));
    if(p==0)
    {
        printf("allocation failure!n");
        exit(1);
    }
    for(i=0;ip[j+1])
            {
                min=p[j+1];
                p[j+1]=p[j];
                p[j]=min;
            }
        }
    for(i=0;i 


 


//结构的嵌套 

#include
struct Birthday{
    int yr;
    int mo;
    int day;
};
struct Student{
    int No;
    char name[5];
    struct Birthday date;
};
int main()
{
    struct Student st[5];
    int i=0;
    for(i=0;i<5;i++)                 //注意字符串不需要用取址符 
    {
        scanf("%d %s %d %d %d",&st[i].No,st[i].name,&st[i].date.yr,&st[i].date.mo,&st[i].date.day);
    }
    printf("n");
    for(i=0;i<5;i++)
        printf("%d %s %d-%d-%dn",st[i].No,st[i].name,st[i].date.yr,st[i].date.mo,st[i].date.day);
    return 0;
}
*/
//顺序表—选择排序 

//二维数组:求一个3*3矩阵对角线元素之和

                      //d1=2(d2+1)

#include
int main()
{
    int dayn,d1,d2;
    dayn=9;
    d2=1;
    for(dayn=9;dayn>0;dayn--)
    {
        d1=(d2+1)*2;            //第一天的桃子数是第2天桃子数加1后的2倍
        d2=d1;
    }
    printf("the total is %dn",d1);
    return 0;
}


 


两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定
比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x、z比,请编程序找出
三队赛手的名单。

#include
int main()
{
    char i,j,k;               
    //i是a的对手,j是b的对手,k是c的对手
    for(i='x';i<='z';i++)
        for(j='x';j<='z';j++)
        {
            if(i!=j)
            for(k='x';k<='z';k++)
            {
                if(i!=k&&j!=k)
                {
                    if(i!='x'&&k!='x'&&k!='z')  
                        printf("order is a--%ctb--%ctc--%cn",i,j,k);
                }
            }
        }
    return 0;
}


//请从键盘输入一个整数(位数不固定),然后将该整数逆序输出并计算各位上数字的和。(要求体现计算过程)

#include
int main()
{
    long int num;
    int i,sum=0;
    scanf("%ld",&num);
    while(num!=0)
    {
        sum+=num%10;
        printf("%d",num%10);
        num=num/10;
    }
    printf("n%d",sum);
    return 0;
}



//输出100-200之间的所有质数,每行输出5个质数,最终输出该范围内质数的个数

#include
int isPrime(int x);
int main()
{
    int i=100,j=0;
    for(i=101;i<200;i++)
    {
        if(isPrime(i))
        {
            printf("%dt",i);
            j++;
            if(j%5==0) printf("n");
        }
    }
    printf("n%d",j);
    return 0;
}
int isPrime(int x)
{
    int i;
    for(i=2;i 



//定义一个数组,从键盘输入5个整数为数组中的元素赋值,然后将数组元素从小到大排序并输出
                                
//程序功能说明:输出100以内能被3整除且个位数为6的所有整数。

//输出50以内的质数,每行输出5个质数
 

#include
#include
int isPrime(int);
int main()
{
    int i,j=0;
    for(i=2;i<50;i++)
        if(isPrime(i))
        {
            printf("%dt",i);
            j++;
            if(j%5==0) printf("n");
        }
    return 0;
}
int isPrime(int x)
{
    int i;
    for(i=2;i //寻找二维数组最小值 

//找出一批正整数中的最大的偶数。

//编写子函数isPrime(判断质数),输出100以内的所有质数,每行输出10个质数;并按照由大到小的顺序输出最大的3个质数。
//难点在于  由大到小顺序输出最大的3个质数 

//从键盘输入某年某月某日,判断这一天是这一年的第几天。其中,定义结构体类型Date(成员分别是year,month,day)

//定义动态数组,从键盘输入数组元素个数并为数组中的元素赋值,然后计算数组元素中大于平均值的元素的个数并输出这些元素。

//功能:求一批数中最大值和最小值的差。

//求给定正整数m以内的素数之和。例如:当m=20时,函数值为77。

//请从键盘输入一个整数(位数不固定),然后将该整数逆序输出并计算各位上数字的和。








// 快速排序

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/938516.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号