c语言实验word文档良心出品.docx

上传人:b****5 文档编号:7238175 上传时间:2023-01-22 格式:DOCX 页数:29 大小:22.73KB
下载 相关 举报
c语言实验word文档良心出品.docx_第1页
第1页 / 共29页
c语言实验word文档良心出品.docx_第2页
第2页 / 共29页
c语言实验word文档良心出品.docx_第3页
第3页 / 共29页
c语言实验word文档良心出品.docx_第4页
第4页 / 共29页
c语言实验word文档良心出品.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

c语言实验word文档良心出品.docx

《c语言实验word文档良心出品.docx》由会员分享,可在线阅读,更多相关《c语言实验word文档良心出品.docx(29页珍藏版)》请在冰豆网上搜索。

c语言实验word文档良心出品.docx

c语言实验word文档良心出品

//已知下面的程序是输入一个整数,判断该整数的位数,并依次输出各位数字。

请将程序补充完整。

#include

main()

{longnum;

inta[10],i=0;

scanf("%ld",&num);

while(num!

=0)

{a[i]=num%10;

num=num/10;

i++;

}

printf("thisnumberis%dweishu.\n",i);

for(i--;i>=0;i--)

printf("%d",a[i]);

}

//2.输入10名学生的C语言成绩,并将成绩排序。

#include

main()

{

intgrade[10]={78,89,56,98,74,68,23,56,68,75};

inti,j;

inttemp;

//for(i=0;i<10;i++)

//scanf("%d",&grade[i]);

for(i=0;i<10-1;i++)

for(j=i+1;j<10;j++)

if(grade[i]

{

temp=grade[i];

grade[i]=grade[j];

grade[j]=temp;

}

for(i=0;i<10;i++)

printf("%6d",grade[i]);

printf("\n");

}

//3.从键盘上输入10个整数,并放入一个一维数组中,

//然后将其逆序重新存放。

//即:

第1个元素和第10个元素互换,第2个元素和第9个元素互换……分别输出数组原来的值和兑换后各元素的值。

#include

#defineN10

main()

{

intnumber[10]={78,89,56,98,74,66,23,58,68,75};

inttemp;

inti;

for(i=0;i

{

temp=number[i];

number[i]=number[N-i-1];

number[N-i-1]=temp;

}

for(i=0;i

printf("%6d",number[i]);

printf("\n");

}

//4.计算一个4×4矩阵两个对角线之和

#include

#defineM4

#defineN4

main()

{

inta[M][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};

inti,j;

intsum=0;

for(i=0;i

for(j=0;j

{

if(i==j||i+j==M-1)

sum=sum+a[i][j];

}

printf("sum=%d\n",sum);

}

//随机产生20个[45,210]范围内的正整数,实现以下功能:

//a)求最大值、最小值和平均值。

//b)求小于平均值的数据的个数。

#include

#include

#include

#defineN20

main()

{

inta[N];

inti;

intmax,min,sum=0;

floatavg;

intcount=0;

srand(time(NULL));/*初始化随机因子*/

for(i=0;i

a[i]=rand()%(210-45+1)+45;/*生成45~210之间的整数*/

max=a[0];

min=a[0];

for(i=0;i

{

if(a[i]>max)

max=a[i];

if(a[i]

min=a[i];

sum=sum+a[i];

}

avg=(float)sum/N;

printf("生成的20个随机数为:

\n");

for(i=0;i

{

printf("%5d",a[i]);

if((i+1)%10==0)

printf("\n");

}

printf("最大值为:

%d;最小值为:

%d;平均值为:

%f;\n",max,min,avg);

for(i=0;i

{

if(a[i]

count++;

}

printf("小于平均值的数据个数为:

%d\n",count);

}

//下面程序的功能是对两个字符串进行比较,

//然后输出两个字符串中第一个不相同字符的ASCII码之差。

//例如:

输入的两个字符串分别为"abcdefg"和"abceef",则输出为-1。

#include

main()

{

charstr1[100],str2[100];

inti,s;

printf("Enterstring1:

");

gets(str1);

printf("Enterstring2:

");

gets(str2);

i=0;

while((str1[i]==str2[i]&&str1[i]!

='\0'))

i++;

s=str1[i]-str2[i];

printf("%d\n",s);

}

//编写一个程序,将字符数组s2中的全部字符复制到字符数组s1中。

//不用strcpy函数。

复制时'\0'也要复制过去,'\0'后面的字符不复制。

#include

main()

{

chars1[100],s2[100];

inti;

printf("Enterstring1:

");

gets(s1);

i=0;

while((s1[i]!

='\0'))

{s2[i]=s1[i];

i++;

}

s2[i]=s1[i];

printf("s2=%s\n",s2);

}

//输入若干个字符串(最多10个),

//求出每个字符串的长度,并打印最长字符串的内容。

//以"stop"作为输入的最后一个字符串。

//输入若干个字符串(最多10个),

//求出每个字符串的长度,并打印最长字符串的内容。

//以"stop"作为输入的最后一个字符串。

#include

#include

main()

{

charstr[10][100];

inti=0,k;

intmax_len,max_pos;

gets(str[i]);

max_len=strlen(str[i]);

max_pos=0;

while(i<10&&strcmp(str[i],"stop")!

=0){

i++;

gets(str[i]);

}

for(k=0;k

{

printf("第%d字符串长度为%d\n",k+1,strlen(str[k]));

if((int)strlen(str[k])>max_len)

{

max_len=strlen(str[k]);

max_pos=k;

}

}

printf("最长字符串的内容为:

%s\n",str[max_pos]);

}

//输入若干个字符串(最多10个),

//求出每个字符串的长度,并打印最长字符串的内容。

//以"stop"作为输入的最后一个字符串。

#include

#include

main()

{

charstr[10][100];

inti=0;

intmax_len,max_pos;

gets(str[i]);

max_len=strlen(str[i]);

max_pos=0;

while(i<10&&strcmp(str[i],"stop")!

=0)

{

printf("第%d字符串长度为%d",i+1,strlen(str[i]));

if((int)strlen(str[i])>max_len)

{

max_len=strlen(str[i]);

max_pos=i;

}

i++;

gets(str[i]);

}

printf("最长字符串的内容为:

%s",str[max_pos]);

}

实验6—4

#include

main()

{

charstr[]="AbcDEfg";

intk=0;

printf("转换前的字符串为:

%s\n",str);

while(str[k]!

='\0')

{

if(str[k]>='a'&&str[k]<='z')

str[k]=str[k]-32;

elseif(str[k]>='A'&&str[k]<='Z')

str[k]=str[k]+32;

k++;

}

printf("转换前的字符串为:

%s\n",str);

}

实验7—1—2

#include

intsub(intn)

{

return(n/10+n%10);

}

main()

{

intx,y;

scanf("%d",&x);

y=sub(sub(sub(x)));

printf("%d\n",y);

}

实验7—1—1

#include

fun(intx)

{intp;

if(x==0||x==1)return(3);

p=x-fun(x-2);

returnp;

}

main()

{printf("%d\n",fun(9));

}

//2.写一个判素数的函数intisprime(inta){……},

//在主函数输入一个整数,并调用isprime函数,输出是否为素数的信息。

#include

#include

intisprime(inta);

main()

{

intn;

scanf("%d",&n);

if(isprime(n)==1)

printf("%d是一个素数!

\n",n);

else

printf("%d不是一个素数\n!

",n);

}

intisprime(inta)

{

intk;

for(k=2;k<=sqrt(a);k++)

if(a%k==0)return0;

return1;

}

//3.用递归方法求n阶勒让德多项式的值,递归公式为:

#include

floatp(floatx,intn);

main()

{

floatx;

intn;

printf("请输入x,n:

:

\n");

scanf("%f%d",&x,&n);

printf("p(%f,%d)=%f\n",x,n,p(x,n));

}

floatp(floatx,intn)

{

if(n==0)

return1;

elseif(n==1)

returnx;

else

return((2*n-1)*x-p(x,n-1)-(n-1)*p(x,n-1))/n;

}

//4.编写一函数,计算任一输入的整数的各位数字之和。

//主函数包括输入输出和调用该函数。

#include

intsum_digit(intn);

main()

{

intnum;

printf("请输入一个整数:

\n");

scanf("%d",&num);

printf("%d的各位数字之和为%d\n",num,sum_digit(num));

}

intsum_digit(intn)

{

inttemp_sum;

temp_sum=n%10;

while(n/10!

=0)

{

n=n/10;

temp_sum=temp_sum+n%10;

}

returntemp_sum;

}

//1.编写将n个数从小到大排序的函数,

//要求该函数返回排序过程中交换的次数,并设计main函数,验证算法正确与否。

//intsort(intarr[],intn){……….}

#include

intsort(intarr[],intn);

main()

{

inta[10]={10,9,8,7,6,5,4,3,2,1};

intk;

printf("初始序列为:

\n");

for(k=0;k<10;k++)

printf("%5d",a[k]);

printf("\n");

printf("将序列按从小到大顺序排序,经过%d次变换后,序列为:

\n",sort(a,10));

for(k=0;k<10;k++)

printf("%5d",a[k]);

printf("\n");

}

intsort(intarr[],intn)

{

inti,j;

inttemp;

intcount=0;

for(i=0;i

for(j=i+1;j

{

if(arr[i]>arr[j])

{

temp=arr[i];

arr[i]=arr[j];

arr[j]=temp;

count++;

}

}

returncount;

}

//2.写一函数voidstrcat_stu(chars1[41],chars2[20]){……….},

//将两个字符串连接,并设计main函数,验证算法正确与否。

#include

#include

voidstrcat_stu(chars1[41],chars2[20])

{

intk=0,m=0;

while(s1[k]!

='\0')

k++;

while(s2[m]!

='\0')

{

s1[k]=s2[m];

m++;

k++;

}

s1[k]='\0';

}

main()

{

charstr1[41],str2[20];

strcpy(str1,"abcdefg");

strcpy(str2,"123456");

strcat_stu(str1,str2);

printf("%s\n",str1);

}

#include

f(inta)

{

intb=0;

staticintc=3;

b++;c++;

return(a+b+c);

}

实验8—3

main()

{

inta=1,i;

for(i=0;i<3;i++)

printf("%d\n",f(a));

}

//4.输入10个学生5门课的成绩,分别用函数实现下列功能:

//

(1)计算每个学生的平均分。

//

(2)计算每门课的平均分。

//(3)找出所有50个分数中最高的分数所对应的学生和课程;

//(4)计算平均分方差

#include

main()

{

floatgrade[10][5]={{78,89,76,98,87},{79,83,79,92,85},

{72,81,79,91,86},{75,84,71,95,81},

{71,84,71,92,84},{78,86,72,93,82},

{75,86,73,93,88},{76,87,73,95,83},

{79,84,75,94,89},{72,89,74,98,84},};

floataverage[10],total[10];

floataverage_course[5],total_course[5];

inti,j;

floatmax_grade;

intmax_course,max_stu;

floatf1=0,f2=0,variance;

printf("---------------计算每个学生的平均分----------------------\n");

for(i=0;i<10;i++)

{

total[i]=0;

for(j=0;j<5;j++)

{

total[i]=total[i]+grade[i][j];

}

average[i]=total[i]/5;

}

for(i=0;i<10;i++)

printf("第%d个学生的平均分为%5.2f\n",i+1,average[i]);

printf("\n----------------计算每门课的平均分-----------------------\n");

for(i=0;i<5;i++)

{

total_course[i]=0;

for(j=0;j<10;j++)

total_course[i]+=grade[j][i];

average_course[i]=total_course[i]/10;

}

for(i=0;i<5;i++)

printf("第%d门课程的平均分为%5.2f\n",i+1,average_course[i]);

printf("\n---------找出所有50个分数中最高的分数所对应的学生和课程-----------\n");

max_grade=grade[0][0];

max_stu=0;

max_course=0;

for(i=0;i<10;i++)

for(j=0;j<5;j++)

if(max_grade

{

max_grade=grade[i][j];

max_stu=i;

max_course=j;

}

printf("50个分数中第%d个学生的第%d门课程分数最高,最高分为%5.2f\n",max_stu+1,max_course+1,max_grade);

printf("\n-------------------计算平均分方差----------------------\n");

for(i=0;i<10;i++)

{

f1=f1+average[i]*average[i];

f2=f2+average[i];

}

variance=f1/10-(f2/10)*(f2/10);

printf("平均分方差为:

%8.4f\n",variance);

}

 

实验9—1—1

#include"stdio.h"

voidsub(intx,inty,int*z)

{

*z=y-x;

}

main()

{

inta,b,c;

sub(10,5,&a);

sub(7,a,&b);

sub(a,b,&c);

printf("%d,%d,%d\n",a,b,c);

}

实验9—1—2

#include"stdio.h"

main()

{

inta[]={2,4,6,8,10},y=1,x,*p;

p=&a[1];

for(x=0;x<3;x++)

y+=*(p+x);

printf("%d\n",y);

}

//定义函数voidf(floatx,int*y,float*z),

//将x的整数部分存于y所指存储单元,

//将x的小数部分存于z所指存储单元。

//并设计main函数,验证算法正确与否。

#include

voidf(floatx,int*y,float*z)

{

*y=(int)x;

*z=x-*y;

}

main()

{

floatx;

inty;floatz;

scanf("%f",&x);

f(x,&y,&z);

printf("%f的整数部分为:

%d,小数部分为:

%f\n",x,y,z);

}

//下面程序实现从10个数中找出最大值和最小值。

//请补充程序完整。

#include

intmax,min;

find_max_min(int*p,intn)

{

int*q;

max=min=*p;

for(q=p;q

if(*q>max)max=*q;

elseif(*q

}

voidmain()

{

inti,num[10]={12,45,78,485,78,25,-78,69,45,-789};

//for(i=0;i<10;i++)

//scanf("%d",&num[i]);

find_max_min(num,10);

printf("max=%d,min=%d\n",max,min);

}

//4.输入10个整数,将其中最小的数与第一个数对换,

//把最大的数与最后一个数对换。

模仿第2题使用指针实现。

//写3个函数:

①输入10个数。

②进行处理。

③输出10个数。

#include

#defineN10

voidinput_data(inta[],intn);

voidprintf_data(inta[],intn);

voiddeal_data(inta[],intn);

voidswap(int*m,int*n);

main()

{

inta[N];

input_data(a,N);

deal_data(a,N);

printf_data(a,N);

}

voidinput_data(inta[],intn)

{

inti;

for(i=0;i

scanf("%d",&a[i]);

}

voidprintf_data(inta[],intn)

{

inti;

for(i=0;i

printf("%6d",a[i]);

}

voiddeal_data(inta[],intn)

{

inti;

intmin_pos=0,max_p

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 家庭教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1