C语言基础编程题

//1.ASCII码值 ->相应字符
#include <stdio.h>
int main()
{
    int asc;
    scanf("%d",&asc);
    printf("ASCII码值:%d\n",asc);
    printf("对应字符:%c\n",asc);
}
//2.读入浮点数,输出小数形式和指数形式
#include <stdio.h>
#include <math.h>
int main()
{
    float floatNumber;
    scanf("%f",&floatNumber);
    printf("The input is %f or %e\n",floatNumber,floatNumber);
}
//3.读入两个整数,计算和差积商的平均值
#include <stdio.h>
int main()
{
    int data1,data2;
    float result;
    scanf("%d %d",&data1,&data2);
    result = ((data1 + data2) + (data1 - data2) + (data1 * data2) + (data1 /(float)data2))/4.0;
    printf("这两个整数的和差积商的平均值 = %f\n",result);
}
//4.输入姓名,下一行显示输入的姓名
#include <stdio.h>
int main()
{
    char name[12];
    printf("请输入你的姓名:");
    scanf("%s",&name);
    printf("你的姓名是%s\n",name);
}
//5.求方程ax^2 + bx + c = 0的根,a b c 由键盘输入
#include <stdio.h>
#include <math.h>
int main()
{
    float a,b,c;
    printf("请输入二次方程的三个系数a b c:");
    scanf("%f%f%f",&a,&b,&c);
    printf("二次方程为:%fx^2 + %fx + %f = 0\n",a,b,c);
    float delta;
    delta = b*b-4*a*c;
    printf("delta:%f",delta);
    if(delta < 0)
    {
        printf("该二次方程无实根");
    }
    else if(delta == 0)
    {
        printf("该二次方程的唯一实根为:%f",-b/(4*a*c));
    }
    else
    {
        printf("该二次方程的有两个实根分别为:%f,%f",(-b+sqrt(delta))/(2*a),(-b-sqrt(delta))/(2*a));
    }
}
//6.输入任意四个数,按从大到小的顺序排序并输出

#include <stdio.h>
int main()
{
    int a[4];
    int tem;    //中间变量
    printf("请输入四个整数:");
    for(int i=0;i<4;i++)
    {
        scanf("%d",&a[i]);
    }
    printf("输入的顺序为:");
    for(int j=0;j<4;j++)
    {
        printf("%d ",a[j]);
    }
    printf("\n");
    printf("从大到小的顺序排列为:");
    for(int k=0;k<4;k++)
    {
        for(int m=k;m<4;m++)
        {
            if(a[m] > a[k])
            {
                //调换顺序
                tem = a[m];
                a[m] = a[k];
                a[k] = tem;
            }
        }
        printf("%d ",a[k]);
    }
    printf("\n");
}
//7.统计字符串s含有字符串t的数目
#include <stdio.h>
#include <string.h>
int main()
{
    char s[100],t[100];
    printf("请输入主字符串:\n");
    gets(s);    //等价于scanf("%s",s);    %s 表示获取的是字符串
    printf("请输入子字符串:\n");
    gets(t);    //scanf("%s",t);
    char* p = s;    //定义一个指针,记录当前位置
    int count = 0;    //记录子串出现的次数
    while((p = strstr(p,t)) != NULL)    //strstr函数:找出t字符串在p字符串中第一次出现的位置(不包括t的串结束符,如果找到返回该位置的指针。若找不到,返回NULL指针。
    {
        count ++;
        p++;
    }
    printf("字符串s含有字符串t的数目为:%d\n",count);
}
//8.编写一个递归函数,当从键盘接收一个数字后,实现其阶乘的运算

#include <stdio.h>

//阶乘运算,递归
int factorial(int a)
{
    if(a<=1)
    return 1;
    return(a*factorial(a-1));    //此处为递归
}

int main()
{
    int a,b;
    printf("输入一个数字:\n");
    scanf("%d",&a);
    b=factorial(a);
    printf("%d 的阶乘为 %d\n",a,b);
    return 0;
}
//9.求二维数组中每行的最大值或最小值

#include "stdio.h"
int main()
{
   int a[4][4]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
   int max,min;
   int i,j;
   for(i=0;i<4;i++)
   {
      max=min=a[i][0];
      for(j=1;j<4;j++)
      {
         if(a[i][j]>max)
           max=a[i][j];
         if(a[i][j]<min)
           min=a[i][j];  
      }
      printf("第%d行的最大值为:%d,最小值为:%d\n",i+1,max,min);
   }
}

//10.给定一维数组,按指定规则输出矩阵
#include "stdio.h"
int main()
{
    int a[4] = {5,6,9,10};
    int temp;    //中间变量
    int i,j;
    //从大到小排序
    for(i=0;i<4;i++)
    {
        for(j=0;j<4;j++)
        {
            if(a[j] > a[i])
            {
                temp = a[i];
                a[i] = a[j];
                a[j] = temp;
            }
        }
    }
    for(i=4;i>0;i--)
    {
        int s = i-1; //第一列数在数组中的位置
        for(j=0;j<4;j++)
        {
            printf("%d ",a[(s++)%4]);
        }
        printf("\n");
    }
}

猜你喜欢

转载自www.cnblogs.com/yysky/p/10869421.html