8.2 KiB
8.2 KiB
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)/2,s=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和B,A中无重复元素,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);
}