414 lines
8.2 KiB
Markdown
414 lines
8.2 KiB
Markdown
### C语言-1
|
||
|
||
```c
|
||
/*---------------------------------------------------------
|
||
【程序设计】程序将由数字字符组成的字符串转换为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
|
||
|
||
```c
|
||
/*
|
||
-------------------------------------------------------
|
||
【程序填空】
|
||
---------------------------------------------------------
|
||
打印以下图案:
|
||
*****
|
||
*****
|
||
*****
|
||
*****
|
||
*****
|
||
*/
|
||
#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
|
||
|
||
```c
|
||
/*-------------------------------------------------------
|
||
功能:功能:输入三角形的三边长,判断能否构成三角形,若能,利用海伦公式计
|
||
算该三角形的面积,计算结果保留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
|
||
|
||
```c
|
||
/*-------------------------------------------------------
|
||
编写程序,打印以下图形:
|
||
|
||
*
|
||
***
|
||
*****
|
||
*******
|
||
*****
|
||
***
|
||
*
|
||
-------------------------------------------------------*/
|
||
#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
|
||
|
||
```c
|
||
/*-----------------------------------------------------------
|
||
功能:从键盘为一维整型数组输入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
|
||
|
||
```c
|
||
/*------------------------------------------------------------------------------
|
||
【程序设计】编写函数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
|
||
|
||
```c
|
||
/*------------------------------------------------------------------------------
|
||
【程序设计】输入字符串(不包含空格),将字符串按字符从小到大排序,然后输出字符串中除去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
|
||
|
||
```c
|
||
/*------------------------------------------------------------------------------
|
||
【程序设计】该程序实现的功能是:求一个整数各位数字之和。(使用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
|
||
|
||
```c
|
||
/*------------------------------------------------------------------------------
|
||
【程序设计】有两个降序排列的集合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
|
||
|
||
```c
|
||
/*----------------------------------------------------------------------
|
||
【程序设计】
|
||
------------------------------------------------------------------------
|
||
随机输入一字符串(不包含空格,长度不超过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);
|
||
}
|
||
```
|
||
|