//函数调用 选择排序
#include<stdio.h>
void input(int*pa,int n)
{
int i;
printf("please input %d elements:\n",n);
for(i=0;i<n;i++)
scanf("%d",pa+i);
}
void sort(int*pa,int n)
{
int i,index,k,temp;
计算机二级编程题题库c语言for(k=0;k<n-1;k++)
{
index=k;
for(i=k+1;i<n;i++)
if(pa[i]<pa[index])
index=i;
if(index!=k)
{
temp=pa[index];
pa[index]=pa[k];
pa[k]=temp;
}
}
}
void output(const int*pa,int n)
{
int i;
for(i=0;i<n;i++)
printf("%5d",*(pa+i));
printf("\n");
}
int main()
{
int a[10],n;
do
{
printf("please input n(1<=n<=10):\n");
scanf("%d",&n);
}while(n<1||n>10);
input(a,n);
printf("the original array is:\n");
output(a,n);
printf("the sorted array is :\n");
sort(a,n);
printf("the sorted array is \n");
output(a,n);
return 0;
}
//主函数功能:用海伦公式计算三角形面积
#include<stdio.h>
#include<math.h>
int main()
{
double a,b,c,p,area;
printf("please input three edges of a triangle:\n");
scanf("%lf%lf%lf",a,b,c);
p=(a+b+c)/2;
area=sqrt(p*(p-a)*(p-b)*(p-c));
printf("area=%lf\n",area);
return 0;
}
//switch 语句从键盘输入年份和月份,计算该月份的天数并输出
#include<stdio.h>
int main()
{
int year,month,daysum;
printf("enter the year and the month:");
scanf("%d%d",&year,&month);
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 10:
case 12:
daysum=31;
checked upbreak;
case 4:
case 6:
case 9:
case 11:
daysum=30;
break;
case 2:
if((year%400==0)||(year%4==0&&year%100!=0))
{daysum=29;}
else{daysum=28;}
}
printf("%d.%d has %d days.\n",year,month,daysum);
return 0;
}
//计算阶乘
#include<stdio.h>
int main()
{
int n,i;
double fac;
printf("Enter a postive integer:\n");
scanf("%d",&n);
if(n<0)
{
n=-n;
}
i=i;
fac=1;
do
{
fac*=1;
i++;
}while(i<=n);//你是计算n的阶乘,i的循环次数当然要小于n了
printf("%d!=%f\n",n,fac);// 以十进制小数形式输出实数(包括单双精度型,
// 隐含输出六位小数,输出的数字并非全部是有效数字,单精度型一般为7位)
return 0; //双精度型实数的有效位数一般为16位
}
//函数调用问题,划线
#include<stdio.h>
void DrawLine();//注意:函数的原型声明需要分号,它也是一条语句
int main()
{
DrawLine();
printf("C is a beautiful language!\n");
DrawLine();
return 0;
}
void DrawLine()
{
int i;
for (i=1;i<=30;i++)
printf("-");
printf("\n");
return;
}
//写一个函数,判断任意一个整数是否是质数
//这里需要先讲一下判断质数的原理;对于正整数n,用2~根号n去除它,如果存在可以整除的情况则不是质数
//例如4/2可以整除故4不是质数,7/(2~根号7都没有办法整除所以7不是质数)
#inc
lude<stdio.h>
#include<math.h>
int JudgePrime(int n)
{
int i,k;
int judge;
if(n==1)
judge=0;
k=(int)sqrt(n);
for(i=2;i<=k;i++)
if(n%i==0)
judge=0;
return judge;
}
int main()
{
int m;
scanf("%d",&m);
if(m<=0)
{
printf("error input !\n");
return 0;
}
if (JudgePrime(m))
printf("%d is a prime!\n",m);
else
printf("%d is not a prime!\n",m);
return 0;
}
//求最大公约数
#include<stdio.h>
int gad (int m,int n);
int main()
{
int m,n;
scanf("%d%d",&m,&n);
printf("gad:%d\n",gad(m,n));
return 0;
}
int gad(int m,int n)
{
int r; //存余数
do{
r=m%n; //辗转相除法就是两个数相除求余
m=n; // 例如a=25 b=15 r=a%b=10 ,b/10=5 ,10%5=0
n=r;
}while(r);
return m;
}
//数组方面:杨辉三角 难点就在外行跟内行怎么区控制,这里用的是i来控制列数
#include<stdio.h>
#define N 16
int main()
{
int i,j,n=0;
int a[16][16]={0};
免费ppt模板下载免费版大全do
{
printf("请输入杨辉三角行数:\n");
scanf("%d",&n);
}while(n<1||n>16);
for(i=0;i<n;i++)
a[i][0]=1;
for(i=1;i<n;i++)
for(j=1;j<=i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=0;i<n;i++)
{
for(j=0;j<=i;j++)
printf("%5d",a[i][j]);
printf("\n");
}
return 0;
}
//一道循环语句辨析题目
#include<stdio.h>
int main()
{
int j,i,m;
for(i='a';i<='e';i++)
{
m=1; //你会发现,不管怎么循环m终究会变成1,重要的是看外层i怎么变化,以及内存的j怎么变
for(j=5;j>=0;j--) //于是马上观察到当i=101时进入最后一次内层循环,m=1+1*5+1*4+1*3+1*2+1*1算出来就是16
m+=(i-100)*j;
}
printf("m=%d",m);
return 0;
}
}
//结构体
#include<stdio.h>
#include<string.h>
struct Date
{
int year;
int month;
int day;
};
typedef struct Date Date;
struct student
{
int ID;
char name[20];
Date birthday;
char sex;
double score;
};
typedef struct student student;
int main()
{
student s1={16030124,"dabendan",{1998,3,12},'F',79};
student s2;
scanf("%d %s %d%d%d",&s2.ID,s2.name,&ar ,&h ,&s2.birthday.day,&s2.sex ,&s2.score );
printf("%d %s %d%.d%.d\n",s2.ID,s2.name,ar,h,s2.birthday.day,s2.sex ,s2.score );
printf("%d %s %d.%d.%d\n",s1.ID,s1.name,ar,s1.birthday .month ,s1.birthday .day,s1.sex ,s1.score );
return 0;
}
//21.输入半径r和高h计算圆柱体的体积和表面积,精确到小数点后三位
#include<stdio.h>
int main()
{
const double pi = 3.14159;
double r,h;
double area,volume;
printf("please input radius and hight:\n");
scanf("%lf%lf",&r,&h);
volume=pi*r*r*h;
area=2*pi*r*r+2*pi*r*h;
printf("volume =%.3f,area=%.3f",volume,area);
return 0;
}
//13.编写程序,输入一个华氏温度,输出其对应的摄氏温度,
//并四舍五入保留到小数点后两位
#include
<stdio.h>
int main()
{
float f,c;
printf("Input:\n F=");
scanf("%f",&f);
c=(5.0*(f-32))/9.0;
printf("C=%.2f\n",c);
return 0;
}
//4.输入一个长整型数,并将其转化为十六进制,以字符串形式输出,定义
/
/char s[]“0123456789ABCDEF"以帮助输出十六进制字符
#include<stdio.h>
int main()
{
char s[]="0123456789ABCDEF";
int i=0;
int c[64],base=16;
long n;
printf("Eter a number:\n");
scanf("%d",&n);
do
{
c[i]=n%base;
n=n/base;
i++;
}while(n!=0);
for(--i;i>=0;--i)
printf("%c",s[c[i]]);
return 0;
}
//解析:十进制转化为十六进制,借助A~F来表达每一位上的10~15的值,利用s字符数组,输出项用
//s[c[i]]控制,i在第一个循环结束时是从数组中元素个数,即余数的个数
#include<stdio.h>
#include<string.h>
void reverse(char*p)
{
char t;
int i,j;
int n=strlen(p);
for(i=0,j=n-1;i<j;i++,j--)
{
t=p[i];
p[i]=p[j];
p[j]=t;
}
}
int main()
{
char str[20];
printf("please input the string:");
gets(str);
printf("Before reverse:");
puts(str);
reverse(str);
printf("Aafter reverse:");
puts(str);
return 0;
}
//2.输入一个字符串,过滤掉非数字字符,将其输出
#include<stdio.h>
#include<string.h>
void change(char*p)
冒泡排序代码c语言{
char a[20];
int i=0,j;
strcpy(a,p);
for(j=0;a[j];j++)
{
if(a[j]>='0'&&a[j]<='9')
p[i++]=a[j];
}
p[i]='\0';
}
int main()
{
char str[20];
gets(str);
change(str);
puts(str);
return 0;
}
文件操作:
//编写一个 程序 将D:\\文件中的内容复制到D:\\中,复制时,
//将所有小写字母转化为大写字母
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE*fin,*fout;
char s1[]="D:\\",s2[]="D:\\";
char ch;
fin=fopen(s1,"r");
if(fin==0)
{
printf("file error\n");
exit(1);
}
fout=fopen(s2,"w");
if(fout==0)
{
printf("error file\n");
exit(1);
}
ch =fgetc(fin);
while (!feof(fin))//feof是c语言标准库函数,其功能是检测流上的文件结束符,如果文件结束,则返回非0值,否则返回0
{ //这样理解,!0就要继续循环,
if(ch>='a'&&ch<='z')
ch-=32;
fputc(ch,fout);//将字符ch写到指针fout所指向文件
ch=fgetc(fin);//从文件指针指向的文件中读取一个字符,读取
} //一个字节后,光标位置后移一个字节
fclose(fin);
fclose(fout);
contelecreturn 0;
}
//冒泡排序的
#include<stdio.h>
void change(int*px,int*py );
int main(void)
{
int a[6]={4,7,2,9,23,10};
structured behavioralint i,j;
for(i=1;i<6;i++)
for(j=0;j<6-i;j++)
if(a[j]>a[j+1])
change(&a[j],&a[j+1]);
for(i=0;i<6;i++)
printf("%3d",a[i]);
return 0;
}
void change(int*px,int*py)
{
int t;
t=*px;
*px=*py;
*py=t;
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论