c语言典型例题及代码(2)
2013-02-15 15:08
435 查看
求各位大神指点评论啊!联系电话15839957877 QQ :592003516
例(11)1.用scanf函数输入一个年份year,计算这一年2月份的天数days,然后用输出函数printf输出days。
(1)有变量定义为整型。
(2)输入前要加提示语句。
(3)输出结果前要有必要的文字说明。说明:
(1)闰年的条件是:year能被4整除但不能被100整除,或者year能被400整除。
(2)如果year是闰年,则2月份的天数为29天,不是闰年则为28天。
#include<stdio.h>
int main()
{
int year;
printf("请输入你想计算的年份\n");
scanf("%d",&year);
if(year%4==0&&year%100!=0)
printf("%d年为闰年,二月份的天数为29天\n",year);
else if(year%400==0)
printf("%d年为闰年,二月份的天数为29天\n",year);
else
printf("%d年为平年,二月份的天数为28天\n",year);
getch();
return 0;
}
例(12)编写程序,输入奖金数a,计算并输出税率、应缴税款和实得奖金数。奖金税率
a<500 0.00 500≤a<1000
0.05 1000≤a<2000 0.08 2000≤a<5000
0.10 5000≤a 0.15 (1)
用if语句编程,自变量和函数值均为双精度类型
(2) 用scanf函数输入奖金数a,输出结果采用以下形式:
a=具体值
rate=税率值
tax=应缴税款
profit=实得奖金数
(3) 分别输入a=280,512,1000,4250,5100,运行该程序
(4) 用if-else if语句和switch语句编程,其它同上。
#include<stdio.h>
int main()
{
double a;
printf("请输入奖金数\n");
scanf("%lf",&a);
if(a<500)
{
printf("税率为0.00\n");
printf("应缴税款为:\n");
printf("%lf\n",a*0.00);
printf("实得奖金数为:%lf",a-a*0.00);
}
else if(a>=500&&a<1000)
{
printf("税率为0.05\n");
printf("应缴税款为:\n");
printf("%lf\n",a*0.05);
printf("实得奖金数为:%lf",a-a*0.05);
}
else if(a>=1000&&a<2000)
{
printf("税率为0.08\n");
printf("应缴税款为:\n");
printf("%lf\n",a*0.08);
printf("实得奖金数为:%lf",a-a*0.08);
}
else if(a>=2000&&a<5000)
{
printf("税率为0.10\n");
printf("应缴税款为:\n");
printf("%lf\n",a*0.10);
printf("实得奖金数为:%lf",a-a*0.10);
}
else
{
printf("税率为0.15\n");
printf("应缴税款为:\n");
printf("%lf\n",a*0.15);
printf("实得奖金数为:%lf",a-a*0.15);
}
getch();
return 0;
}
#include<stdio.h>
int main()
{
double a;
int m;
printf("请输入奖金数\n");
scanf("%lf",&a);
if(a<500)
m=1;
else if(a>=500&&a<1000)
m=2;
else if(a>=1000&&a<2000)
m=3;
else if(a>=2000&&a<5000)
m=4;
else if(a>5000)
m=5;
switch(m)
{
case 1:
{
printf("税率为0.00\n");
printf("应缴税款为:\n");
printf("%lf\n",a*0.00);
printf("实得奖金数为:%lf",a-a*0.00);
break;
}
case 2:
{
printf("税率为0.05\n");
printf("应缴税款为:\n");
printf("%lf\n",a*0.05);
printf("实得奖金数为:%lf",a-a*0.05);
break;
}
case 3:
{
printf("税率为0.08\n");
printf("应缴税款为:\n");
printf("%lf\n",a*0.08);
printf("实得奖金数为:%lf",a-a*0.08);
break;
}
case 4:
{
printf("税率为0.10\n");
printf("应缴税款为:\n");
printf("%lf\n",a*0.10);
printf("实得奖金数为:%lf",a-a*0.10);
break;
}
case 5:
{
printf("税率为0.15\n");
printf("应缴税款为:\n");
printf("%lf\n",a*0.15);
printf("实得奖金数为:%lf",a-a*0.15);
break;
}
}
getch();
return 0;
}
例(13).百分制转等级制输入一个成绩score,要求输出等级A、B、C、D、E,90分以上为A,80-90为B,60-69为D,其它为E。循环从键盘接收一班学生的某门课的成绩score,并根据成绩所在分数区间给该生评定等级level并输出,直到输入999时结束,求出该班该门课的平均成绩。
#include<stdio.h>
int main()
{
double n=0.0, score,sum=0.0,average;
char m;
while(1)
{
printf("请输入学生成绩\n");
scanf("%lf",&score);
if(score==999)
break;
else if(score>90)
printf("该生成绩等级为:A\n");
else if(score>=80&&score<=90)
printf("该生成绩等级为:B\n");
else if(score>=70&&score<80)
printf("该生成绩等级为:C\n");
else if(score>=60&&score<70)
printf("该生成绩等级为:D\n");
else
printf("该生成绩等级为:E\n");
sum=sum+score;
n++;
}
average=sum/n;
printf("平均成绩为:%lf",average);
getch();
return 0;
}
例(14). 编写程序:定义一个变量,一个指针,建立该变量的引用。对变量进行初始化,并将指针指向该变量,分别通过指针和引用改变该变量的值,并输出结果进行比较分析。
#include<stdio.h>
int main()
{
int a=3,*q;
q=&a;
printf("%d",*q);
getch();
return 0;
}
#include<stdio.h>
int main()
{
int a=3,*q;
q=&a;
a=4;
printf("a=%d",*q);
getch();
return 0;
}
例(15). 编写程序:任意输入10个整数放于数组中,利用指针访问数组,求出该数组中的最大数max以及最小数min。
#include<stdio.h>
int main()
{
int a[]={9,6,3,8,5,2,7,4,1,0};
int *p,max=-1,min=20,i;
p=a;
for(i=0;p+i<p+10;i++)
{
if(max<*(p+i))
max=*(p+i);
else
min=*(p+i) ;
}
printf("max=%d min=%d",max,min);
getch();
return 0;
}
例(16). 编写程序:定义字符串,删掉字符串中的数字字符。
主要算法和程序清单
#include<stdio.h>
int main()
{
char a[]="qw5ert6yu8";
char *p;
p=a;
for(;*p!='\0';p++)
{
if((*p>='a'&&*p<='z')||(*p>='A'&&*p<='Z'))
printf("%c ",*p);
}
getch();
return 0;
}
例(17). 写一函数,求一个字符串的长度。
(1) 本部分要求全部用指针完成;
(2) 在main函数中输入字符串,并输出其长度;
(3) 本题不能使用strlen()函数;方法说明:在主函数中定义一个指向字符串的指针变量pstr,并将输入的字符串的首地址赋值给pstr,然后调用求字符串长度的函数strlenth(char
*p),得到字符串的长度。在函数strlenth(char *p)中,判断*p是否为’\0’,如果不为’\0’,则进行len++的操作,直到遇到’\0’为止。然后返回len值。
#include<stdio.h>
int
length(char *p)
{
int i=0;
for(;*p!='\0';p++)
i++;
return i;
}
int main()
{
char a[]="qwertyuiop";
char *p;
p=a;
printf("length=%d",length(p));
getch();
return 0;
}
例(18). 编写一个函数,将数组中n个数按反序存放。
(1) 在主函数中输入10个数,并输出排好序的数。
(2) 编写函数invert()将10个数按反序存放。
主要算法和程序清单
#include<stdio.h>
void swap(int a[],int n)
{
int b
,i;
for(i=0;i<10;i++)
b[9-i]=a[i];
printf("交换后的数为\n");
for(i=0;i<10;i++)
printf("%d ",b[i]);
}
int main()
{
int a[10] ;
int *p,i;
p=a;
printf("请输入10个数:\n");
for(;p<(a+10);p++)
scanf("%d",p);
swap(a,10);
getch();
return 0;
}
例(19). 设一个函数,调用它时,每次实现不同的功能:(1)求两个数之和;(2)求两个数之差;(3)求两个数之积。实验步骤与要求:
(1)在主函数中输入2个数a,b,并输出a,b的和、差和乘积。
(2)分别编写函数add()、sub()、mul()计算两个数的和、差、积。
(3) 编写函数process(),分别调用函数add()、sub()、mul()。
#include<stdio.h>
double add(double *a,double *b)
{
double z;
z=*a+*b;
return z;
}
double sub(double *a,double *b)
{
double z;
z=*a-*b;
return z;
}
double mul(double *a,double *b)
{
double z;
z=(*a)*(*b);
return z;
}
int main()
{
double
a=3,b=3;
double *p,*q;
p=&a,q=&b;
printf("和=%lf\n",add(p,q));
printf("差=%lf\n",sub(p,q));
printf("积=%lf\n",mul(p,q));
getch();
return 0;
}
例(20).
从键盘输入一个字符串,,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存。输入的字符串以“!”结束。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
FILE *fp;
char a[5],ch;
int i=0;
printf("enter string:\n");
do{
ch=getchar();
a[i]=ch;
i++;
}while(ch!='!');
for(i=0;a[i]!='\0';i++)
{
if(a[i]>='a'&&a[i]<='z')
a[i]=a[i]-32;
}
if((fp=fopen("d:\\q.txt","wb+"))==NULL)
{
printf("cannot open file\n");
exit(0);
}
printf("\n the new sequence:\n");
{
fputs(a,fp);
printf("%s",a);
}
return 0;
}
例(21)求阶乘的几种方法
1循环求阶乘
#include<stdio.h>
int main()
{
int i,m=0,sum=0,x=1;
printf("请你输入一个数\n");
scanf("%d",&m);
for(i=1;i<=m;i++)
{
x=i*x;
sum=sum+x;
}
printf("%d",sum);
getch();
return 0;
}
2递归阶乘
#include<stdio.h>
int are(int n)
{
int f;
if(n<0)
printf(" you are wrong\n");
else if(n==0||n==1)
f=1;
else
f=are(n-1)*n;
return f;
}
int main()
{
int n;
printf("请输入一个数\n");
scanf("%d",&n);
printf("%d",are(n));
getch();
return 0;
}
3:静态变量求阶乘
#include<stdio.h>
int fac(int n)
{
static int f=1;
f=f*n;
return f;
}
int main()
{
int i;
for(i=1;i<=5;i++)
printf("%d\n",fac(i));
getch();
return 0;
}
例(11)1.用scanf函数输入一个年份year,计算这一年2月份的天数days,然后用输出函数printf输出days。
(1)有变量定义为整型。
(2)输入前要加提示语句。
(3)输出结果前要有必要的文字说明。说明:
(1)闰年的条件是:year能被4整除但不能被100整除,或者year能被400整除。
(2)如果year是闰年,则2月份的天数为29天,不是闰年则为28天。
#include<stdio.h>
int main()
{
int year;
printf("请输入你想计算的年份\n");
scanf("%d",&year);
if(year%4==0&&year%100!=0)
printf("%d年为闰年,二月份的天数为29天\n",year);
else if(year%400==0)
printf("%d年为闰年,二月份的天数为29天\n",year);
else
printf("%d年为平年,二月份的天数为28天\n",year);
getch();
return 0;
}
例(12)编写程序,输入奖金数a,计算并输出税率、应缴税款和实得奖金数。奖金税率
a<500 0.00 500≤a<1000
0.05 1000≤a<2000 0.08 2000≤a<5000
0.10 5000≤a 0.15 (1)
用if语句编程,自变量和函数值均为双精度类型
(2) 用scanf函数输入奖金数a,输出结果采用以下形式:
a=具体值
rate=税率值
tax=应缴税款
profit=实得奖金数
(3) 分别输入a=280,512,1000,4250,5100,运行该程序
(4) 用if-else if语句和switch语句编程,其它同上。
#include<stdio.h>
int main()
{
double a;
printf("请输入奖金数\n");
scanf("%lf",&a);
if(a<500)
{
printf("税率为0.00\n");
printf("应缴税款为:\n");
printf("%lf\n",a*0.00);
printf("实得奖金数为:%lf",a-a*0.00);
}
else if(a>=500&&a<1000)
{
printf("税率为0.05\n");
printf("应缴税款为:\n");
printf("%lf\n",a*0.05);
printf("实得奖金数为:%lf",a-a*0.05);
}
else if(a>=1000&&a<2000)
{
printf("税率为0.08\n");
printf("应缴税款为:\n");
printf("%lf\n",a*0.08);
printf("实得奖金数为:%lf",a-a*0.08);
}
else if(a>=2000&&a<5000)
{
printf("税率为0.10\n");
printf("应缴税款为:\n");
printf("%lf\n",a*0.10);
printf("实得奖金数为:%lf",a-a*0.10);
}
else
{
printf("税率为0.15\n");
printf("应缴税款为:\n");
printf("%lf\n",a*0.15);
printf("实得奖金数为:%lf",a-a*0.15);
}
getch();
return 0;
}
#include<stdio.h>
int main()
{
double a;
int m;
printf("请输入奖金数\n");
scanf("%lf",&a);
if(a<500)
m=1;
else if(a>=500&&a<1000)
m=2;
else if(a>=1000&&a<2000)
m=3;
else if(a>=2000&&a<5000)
m=4;
else if(a>5000)
m=5;
switch(m)
{
case 1:
{
printf("税率为0.00\n");
printf("应缴税款为:\n");
printf("%lf\n",a*0.00);
printf("实得奖金数为:%lf",a-a*0.00);
break;
}
case 2:
{
printf("税率为0.05\n");
printf("应缴税款为:\n");
printf("%lf\n",a*0.05);
printf("实得奖金数为:%lf",a-a*0.05);
break;
}
case 3:
{
printf("税率为0.08\n");
printf("应缴税款为:\n");
printf("%lf\n",a*0.08);
printf("实得奖金数为:%lf",a-a*0.08);
break;
}
case 4:
{
printf("税率为0.10\n");
printf("应缴税款为:\n");
printf("%lf\n",a*0.10);
printf("实得奖金数为:%lf",a-a*0.10);
break;
}
case 5:
{
printf("税率为0.15\n");
printf("应缴税款为:\n");
printf("%lf\n",a*0.15);
printf("实得奖金数为:%lf",a-a*0.15);
break;
}
}
getch();
return 0;
}
例(13).百分制转等级制输入一个成绩score,要求输出等级A、B、C、D、E,90分以上为A,80-90为B,60-69为D,其它为E。循环从键盘接收一班学生的某门课的成绩score,并根据成绩所在分数区间给该生评定等级level并输出,直到输入999时结束,求出该班该门课的平均成绩。
#include<stdio.h>
int main()
{
double n=0.0, score,sum=0.0,average;
char m;
while(1)
{
printf("请输入学生成绩\n");
scanf("%lf",&score);
if(score==999)
break;
else if(score>90)
printf("该生成绩等级为:A\n");
else if(score>=80&&score<=90)
printf("该生成绩等级为:B\n");
else if(score>=70&&score<80)
printf("该生成绩等级为:C\n");
else if(score>=60&&score<70)
printf("该生成绩等级为:D\n");
else
printf("该生成绩等级为:E\n");
sum=sum+score;
n++;
}
average=sum/n;
printf("平均成绩为:%lf",average);
getch();
return 0;
}
例(14). 编写程序:定义一个变量,一个指针,建立该变量的引用。对变量进行初始化,并将指针指向该变量,分别通过指针和引用改变该变量的值,并输出结果进行比较分析。
#include<stdio.h>
int main()
{
int a=3,*q;
q=&a;
printf("%d",*q);
getch();
return 0;
}
#include<stdio.h>
int main()
{
int a=3,*q;
q=&a;
a=4;
printf("a=%d",*q);
getch();
return 0;
}
例(15). 编写程序:任意输入10个整数放于数组中,利用指针访问数组,求出该数组中的最大数max以及最小数min。
#include<stdio.h>
int main()
{
int a[]={9,6,3,8,5,2,7,4,1,0};
int *p,max=-1,min=20,i;
p=a;
for(i=0;p+i<p+10;i++)
{
if(max<*(p+i))
max=*(p+i);
else
min=*(p+i) ;
}
printf("max=%d min=%d",max,min);
getch();
return 0;
}
例(16). 编写程序:定义字符串,删掉字符串中的数字字符。
主要算法和程序清单
#include<stdio.h>
int main()
{
char a[]="qw5ert6yu8";
char *p;
p=a;
for(;*p!='\0';p++)
{
if((*p>='a'&&*p<='z')||(*p>='A'&&*p<='Z'))
printf("%c ",*p);
}
getch();
return 0;
}
例(17). 写一函数,求一个字符串的长度。
(1) 本部分要求全部用指针完成;
(2) 在main函数中输入字符串,并输出其长度;
(3) 本题不能使用strlen()函数;方法说明:在主函数中定义一个指向字符串的指针变量pstr,并将输入的字符串的首地址赋值给pstr,然后调用求字符串长度的函数strlenth(char
*p),得到字符串的长度。在函数strlenth(char *p)中,判断*p是否为’\0’,如果不为’\0’,则进行len++的操作,直到遇到’\0’为止。然后返回len值。
#include<stdio.h>
int
length(char *p)
{
int i=0;
for(;*p!='\0';p++)
i++;
return i;
}
int main()
{
char a[]="qwertyuiop";
char *p;
p=a;
printf("length=%d",length(p));
getch();
return 0;
}
例(18). 编写一个函数,将数组中n个数按反序存放。
(1) 在主函数中输入10个数,并输出排好序的数。
(2) 编写函数invert()将10个数按反序存放。
主要算法和程序清单
#include<stdio.h>
void swap(int a[],int n)
{
int b
,i;
for(i=0;i<10;i++)
b[9-i]=a[i];
printf("交换后的数为\n");
for(i=0;i<10;i++)
printf("%d ",b[i]);
}
int main()
{
int a[10] ;
int *p,i;
p=a;
printf("请输入10个数:\n");
for(;p<(a+10);p++)
scanf("%d",p);
swap(a,10);
getch();
return 0;
}
例(19). 设一个函数,调用它时,每次实现不同的功能:(1)求两个数之和;(2)求两个数之差;(3)求两个数之积。实验步骤与要求:
(1)在主函数中输入2个数a,b,并输出a,b的和、差和乘积。
(2)分别编写函数add()、sub()、mul()计算两个数的和、差、积。
(3) 编写函数process(),分别调用函数add()、sub()、mul()。
#include<stdio.h>
double add(double *a,double *b)
{
double z;
z=*a+*b;
return z;
}
double sub(double *a,double *b)
{
double z;
z=*a-*b;
return z;
}
double mul(double *a,double *b)
{
double z;
z=(*a)*(*b);
return z;
}
int main()
{
double
a=3,b=3;
double *p,*q;
p=&a,q=&b;
printf("和=%lf\n",add(p,q));
printf("差=%lf\n",sub(p,q));
printf("积=%lf\n",mul(p,q));
getch();
return 0;
}
例(20).
从键盘输入一个字符串,,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存。输入的字符串以“!”结束。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
FILE *fp;
char a[5],ch;
int i=0;
printf("enter string:\n");
do{
ch=getchar();
a[i]=ch;
i++;
}while(ch!='!');
for(i=0;a[i]!='\0';i++)
{
if(a[i]>='a'&&a[i]<='z')
a[i]=a[i]-32;
}
if((fp=fopen("d:\\q.txt","wb+"))==NULL)
{
printf("cannot open file\n");
exit(0);
}
printf("\n the new sequence:\n");
{
fputs(a,fp);
printf("%s",a);
}
return 0;
}
例(21)求阶乘的几种方法
1循环求阶乘
#include<stdio.h>
int main()
{
int i,m=0,sum=0,x=1;
printf("请你输入一个数\n");
scanf("%d",&m);
for(i=1;i<=m;i++)
{
x=i*x;
sum=sum+x;
}
printf("%d",sum);
getch();
return 0;
}
2递归阶乘
#include<stdio.h>
int are(int n)
{
int f;
if(n<0)
printf(" you are wrong\n");
else if(n==0||n==1)
f=1;
else
f=are(n-1)*n;
return f;
}
int main()
{
int n;
printf("请输入一个数\n");
scanf("%d",&n);
printf("%d",are(n));
getch();
return 0;
}
3:静态变量求阶乘
#include<stdio.h>
int fac(int n)
{
static int f=1;
f=f*n;
return f;
}
int main()
{
int i;
for(i=1;i<=5;i++)
printf("%d\n",fac(i));
getch();
return 0;
}
相关文章推荐
- c语言典型例题及代码(1)
- C语言-典型例题
- 什么是动态规划?动态规划典型例题求解+代码
- C语言-典型例题
- android典型代码系列(十八)------把java中的jstring的类型转化成一个c语言中的char字符串
- C语言典型代码---Curl实现POST
- 线段树-基础,典型例题的完整代码
- 01背包的三种实现,典型C语言代码(附Java代码),递归实现(不推荐)
- C语言典型代码---范围内随机数生成
- C语言典型代码---系统函数生成log
- C语言典型代码---执行shell命令并判断是否成功
- C语言之字符串典型例题解析
- 三道典型C语言题(5)
- Python调用C语言代码
- 快速排序思想及C语言代码
- C语言代码-可变参数(1)求平均值
- Obj-C语言开发iOS项目使用反射减少代码工作 (转载他人)
- android典型代码系列(二)------sqlite数据库操作高级
- android典型代码系列(十五)------字节转KB_MB_GB方法
- 循环体中用“+”拼接字符串-代码典型缺陷分析(二)