2025-03-13 16:46:35 +08:00

8.2 KiB
Raw Permalink Blame History

C语言-1

/*---------------------------------------------------------
【程序设计】程序将由数字字符组成的字符串转换为10进制实数
      例如将"123.4567"转换为123.45670。

      输出如下:
	     123.45670
		   0.12345
		4567.00000
------------------------------------------------------------------------
注意部分源程序给出如下。请勿改动主函数main或其它函数中给出的内容仅在
      Program-End之间填入若干语句。不要删除标志否则不得分。
---------------------------------------------------------*/
#include<stdio.h>
#include<ctype.h>
double conver(char s[]){
    int I,i,poi;
    double F,p;
    F=I=i=poi=0;
    p=0.1; 
    /**********Program**********/
	while(s[i] != '.'){
		I*=10;
		I+=s[i]-48;
		i++;
	}
	i++;
	while(s[i] != '\0'){
		F+=(s[i]-48)*p;
		p*=0.1;
		i++;
	}



    /**********  End  **********/
    return I+F;
}
int main()
{
    char d[3][15]={"123.4567","0.12345","4567.0"};
    int i;
    for(i=0;i<3;i++)
        printf("%12.5f\n",conver(d[i]));
    return 0;
}

C语言-2

/*
-------------------------------------------------------
【程序填空】
---------------------------------------------------------
打印以下图案:
*****
 *****
  *****
   *****
    *****
*/
#include<stdio.h>
void main() 
{   
	int  i =0 , j =0 , k=0; 

	/**********Program**********/
	for(i=0;i<5;i++){
		for(j=0;j<i;j++){
			printf(" ");
		}
		for(k=0;k<5;k++){
			printf("*");
		}
		printf("\n");
	}




	/**********  End  **********/

	printf("\n");
}


C语言-3

/*-------------------------------------------------------
功能:功能:输入三角形的三边长,判断能否构成三角形,若能,利用海伦公式计
      算该三角形的面积计算结果保留3位小数。
      l=(a+b+c)/2s=sqrt(l*(l-a)*(l-b)*(l-c))
--------------------------------------------------------*/
#include <stdio.h>
#include <math.h> 
main()
{    
    float a,b,c,s,l; 
        scanf("%f,%f,%f",&a , &b , &c); 
        if(a+b<c||a+c<b||b+c<a) 
                printf("该3个数据不能构成三角形\n");
        else
        { 
/**********Program**********/
		l=(a+b+c)/2;
		s=sqrt(l*(l-a)*(l-b)*(l-c));


/**********  End  **********/                
                printf("该三角形的面积为%.3f\n",s);
        } 
    
}

C语言-4

/*-------------------------------------------------------
编写程序,打印以下图形:

   *
  ***
 *****
*******
 *****
  ***
   *
-------------------------------------------------------*/
#include <stdio.h>
#include <math.h>
main()
{
	int i,j,k;
	for(i=-3;i<=3;i++)
	{
/**********Program**********/
		for(j=0;j<abs(i);j++){
			printf(" ");
		}
		for(k=0;k<7-2*j;k++){
			printf("*");
		}
		printf("\n");


/**********  End  **********/
	}

}


C语言-5

/*-----------------------------------------------------------
功能从键盘为一维整型数组输入10个整数调用函数找出其中
      最小的数并输出。
-----------------------------------------------------------*/
#include <stdio.h>
#include<stdlib.h>
/**********Program**********/
int fun(int *a, int n){
	int min = a[0], i;
	for(i=1;i<n;i++){
		if(min > a[i]){
			min = a[i];
		}
	}
	return min;
}

/**********  End  **********/
main()
{
	int a[10],i,min;
	for(i=0;i<10;i++)
		scanf("%d",&a[i]);
	for(i=0;i<10;i++)
		printf("%3d",a[i]);
	printf("\n");
	min=fun(a,10);
	printf("min=%d\n",min);
}

C语言-6

/*------------------------------------------------------------------------------
【程序设计】编写函数rtrim用来删除字符串尾部的空格首部和中间的空格不删除。例如字符串为"    A BC DEF     "
删除后的结果是"    A BC DEF"。要求函数形参采用指针变量。
测试输入:    A BC DEF
测试输出:    A BC DEF
说明测试输入中A前有4个空格F后有5个空格
------------------------------------------------------------------------
注意部分源程序给出如下。请勿改动主函数main或其它函数中给出的内容否则不得分。
仅在Program-End之间填入若干语句。不要删除标志否则不得分。
------------------------------------------------------------------------------*/
#include <stdio.h>
#include <string.h>
void main()
{  
	void rtrim(char *p);
	char s[100];
	gets(s);   
	rtrim(s);
	puts(s);
}
void rtrim(char *p)
{
	int i;
	/**********Program**********/
	while(*p != '\0'){
		p++;
	}
	p--;//定位到结束符前的位置
	while(*p==' '){//如果当前指针位置是空格则指针向前移
		p--;
	}
	p++;//移动当前位置后一个空格位
	*p='\0'; 


	/**********  End  **********/
}

C语言-7

/*------------------------------------------------------------------------------
【程序设计】输入字符串不包含空格将字符串按字符从小到大排序然后输出字符串中除去ASCII码值能被3整除的字符。
输入输出如下:
hello world
处理后的字符串为: dehw
------------------------------------------------------------------------
注意部分源程序给出如下。请勿改动主函数main或其它函数中给出的内容否则不得分。
仅在Program-End之间填入若干语句。不要删除标志否则不得分。
------------------------------------------------------------------------------*/
#include<stdio.h> 
#include <string.h>

void main()
{
    char str[100];
    int n,i,j,t;
    gets(str);
    n=strlen(str);
    for(i=0;i<n-1;i++)
    {
        for(j=0;j<n-i-1;j++)
            if(str[j]>str[j+1])
            {
                t=str[j];str[j]=str[j+1];str[j+1]=t;
            }
    }
    printf("处理后的字符串为:");
    /**********Program**********/
	j=0;
	for(i=0;i<strlen(str);i++){
		if(str[i]%3==0){
			continue;
		}
		str[j++] = str[i];
	}
	str[j]='\0';
	puts(str);

    /**********  End  **********/
    printf("\n");

}

C语言-8

/*------------------------------------------------------------------------------
【程序设计】该程序实现的功能是求一个整数各位数字之和。使用while实现
------------------------------------------------------------------------
注意部分源程序给出如下。请勿改动主函数main或其它函数中给出的内容否则不得分。
仅在Program-End之间填入若干语句。不要删除标志否则不得分。
------------------------------------------------------------------------------*/
#include<stdio.h>

int getsum(int m)
{
	int i,s=0;

	/**********Program**********/
	while(m){
		s+=m%10;
		m/=10;
	}
	return s;
	/**********  End  **********/
}

int main()
{
	int n,sum;
	scanf("%d",&n);
	sum=getsum(n);
	printf("结果是%d\n",sum);
}

C语言-9

/*------------------------------------------------------------------------------
【程序设计】有两个降序排列的集合A和BA中无重复元素B中也无重复元素
求集合B-A的差集这些元素属于集合B但不属于集合A存放于数组c中并输出。
输入输出如下:
请输入3个整数
3 2 1
请输入5个整数
9 6 5 3 2
结果为:
9 6 5
------------------------------------------------------------------------
注意部分源程序给出如下。请勿改动主函数main或其它函数中给出的内容否则不得分。
仅在Program-End之间填入若干语句。不要删除标志否则不得分。
------------------------------------------------------------------------------*/
#include<stdio.h> 

void main()
{
	int a[3],b[5],c[5];
	int t=0,i,j=0;
	printf("请输入3个整数\n");
	for(i=0;i<3;i++){
		scanf("%d",&a[i]);
	}
	printf("请输入5个整数\n");
	for(i=0;i<5;i++){
		scanf("%d",&b[i]);
	}
	i=0;
	/**********Program**********/
	while(i<3 && j<5){
		if(a[i] < b[j]){
			c[t++]=b[j++];
		}else if(a[i] > b[j]){
			i++;
		}else{
			i++;
			j++;
		}
	}
	/**********  End  **********/
	while(j<5){
		c[t++]=b[j++];
	}
	printf("结果为:\n");
	for(i=0;i<t;i++){
		printf("%d ",c[i]);
	}
}

C语言-10

/*----------------------------------------------------------------------
【程序设计】
------------------------------------------------------------------------
随机输入一字符串不包含空格长度不超过100删除字符串中的数字字符后输出。 
例输入I will be 17 years old soon, and I will graduate from high school in June 2025
输出:
去掉数字后的字符串为I will be  years old soon, and I will graduate from high school in June
------------------------------------------------------------------------
注意部分源程序给出如下。请勿改动主函数main或其它函数中给出的内容仅在
      Program-End之间填入若干语句。
      不要删除标志否则不得分。
      不要修改或删除Program-End之外的内容否则不得分。
----------------------------------------------------------------------*/
#include<stdio.h> 
#include <string.h>
void  main()
{
    char a[100],b[100];
    int l,i,j;
    gets(a);
    l=strlen(a); 
    j=0;
    /**********Program**********/
	for(i=0;i<l;i++){
		if(a[i] > '9' || a[i] < '0'){
			b[j++] = a[i];
		}
	}
    /**********  End  **********/
    b[j]='\0';
    printf("去掉数字后的字符串为:");
    puts(b);
}