教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 学前教育 >

电1C语言实验报告(4)

来源:网络收集 时间:2026-08-03
导读: 《计算方法与程序设计实验》 {k=8-i-j; /*************found**************/ if(k>=1k printf(\ } printf(\ Key:第一个错误:for(i=0;i 第二个错误:if(k>=1k =0k #include \main() {int i,j,k,m,p,q,n=0; for(i=1

《计算方法与程序设计实验》

{k=8-i-j;

/*************found**************/ if(k>=1&&k<=6) { sum=sum+1;

printf(\ }

printf(\

Key:第一个错误:for(i=0;i<=3;i++) 应改为:for(i=1;i<=3;i++) 因必须要有红球和白球。

第二个错误:if(k>=1&&k<=6) 应改为:if(k>=0&&k<=6) 因可以没有黑球 sum= 15 4.一个素数(设为p)依次从最高位去掉一位,二位,三位,……,若得到的各数仍都是素数(注:除1和它本身外,不能被其它整数整除的正整数称为素数,1不是素数,2是素数),且数p的各位数字均不为零,则称该数p为逆向超级素数。例如,617,17,7都是素数,因此617是逆向超级素数,尽管503,03,3都是素数,但它不是逆向超级素数,因为它包含有零。试求[100,999]之内的所有逆向超级素数的个数。

#include \main()

{int i,j,k,m,p,q,n=0; for(i=100;i<=999;i++) {for(j=2;j

if(j>=i) /*三位数是素数时*/ {k=i0; /*去掉百位数字*/ if(k>=10) /*十位数字不是0时*/ {for(m=2;m

if(m>=k) /*两位数是素数时*/ {p=i; /*p为个位数字*/ if(p>1)

{for(q=2;q

if(q>=p)n++,printf(\printf(\

Key:39

5.求[2,400]中相差为10的相邻素数对的对数。

#include \main()

{int i,j,k,m,p,q,n=0; for(i=2;i<=400;i++) {for(j=2;j

11

《计算方法与程序设计实验》

if(j>=i) /*i是素数时*/ {for(k=i+1;k

if(k%m==0)break;/*k不是素数时终止if语句的内层循环*/ if(m>=k)break;} /*k是素数时终止if语句的外层循环*/ if(k>=i+10) /*[i+1,i+9]不是素数时*/ {for(q=2;q

if(k%q==0)break; if(q>=k) /*i+10是素数时*/ n++;}}}

printf(\Key:5

6.求[1,21]范围内的梅森尼数 #include \ main()

{long n,k=2,m,p,q; for(n=2;n<=21;n++) { k=k*2; p=k-1;

m=sqrt(p); for(q=2;q<=m;q++) if(p%q==0) break;

if(q>m) printf(\

Key: 2 3 5 7 13 17 19

7.求1000以内的亲密数对 main()

{int a,b,n,m,q,p; for(a=1;a<1000;a++) {n=0;

for(q=1;q<=a/2;q++) if(a%q==0) n+=q; for(b=a;b<=1000;b++) { m=0;

for(p=1;p<=b/2;p++) if(b%p==0) m+=p;

if(a==m&&b==n) printf(\学生练习:

1. 计算Y=X/1!-X^3/3!+X^5/5!-X^7/7!+……前20项的值(已知:X=2)。精确到小数点后第二位。 2. 若一个自然数恰好是它的平方的末后几位数,则称此数为自同构数(或守形数)。如5和76都是自同构数,因为它们的平方分别是25和5776。求[100,99999]内所有自同构数之和。(提示:若

12

《计算方法与程序设计实验》

x是m位同构数,则x的平方除以10的m次方的余数就是x) 教学方法

【实验总结】通过做这个实验,我学会使用穷举算法(百钱百鸡问题)和迭代算法(二分法求方程的根);综合使用三种基本结构解决逆向超级素数和相邻素数问题,提高了编程的能力。

实验名称:实验6 数组及其应用

实验时间:第11周周三 实验地点:5423

【实验目的】掌握一维数组和二维数组的定义、初始化、赋值和输入输出操作;掌握与数组有关

的算法,如排序和查找等。

【实验内容】

1.分析下列程序的功能,写出运行结果。 #include \#define N 10 main()

{ int i,j,temp, a[N+1];

int count=0; /* 计数器,记录是第几趟排序*/ printf(\for (i=1;i<=N;i++) scanf(\printf(\for(i=1;i<=N;i++)

{ count++; /*每排序一趟,计数器加1*/ for(j=1;j<=N-i;j++)

if(a[j]>a[j+1]) /*若第一个数大于第二个数则交换*/ { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } printf(\打印是第几趟排序*/

for(j=1;j<=N;j++) printf(\打印本趟排序的结果*/ printf(\}

printf(\

for(i=1;i<=N;i++) printf(\打印排序的最终结果*/ printf(\

Key:冒泡法排序,并输出每趟排序的结果

2.以下程序的功能是用筛选法求1~100之间的所有素数,请分析并写出运行结果。 #include \#define SIZE 100 main()

{ int sieve[SIZE+1],prime[SIZE]; /*定义两个数组*/ int i,j,count=0;

sieve[0]=1; /*将1筛除*/ for(i=1;i

for(i=j;i<=SIZE;i=i+j) sieve[i-1]=1; count++; }

13

《计算方法与程序设计实验》

for(i=1;i<=count;i++) {printf(\

if(i==0)printf(\ /*每13个一行输出素数*/ Key: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97

分析:先设全为素数,若sieve[i-1]为0,则i是素数,i的2倍…为非素数,sieve[2*i-1]=1。 3.由N个有序整数组成的数列已放在一维数组中,下列给定程序中函数fun的功能是:利用折半查找法查找整数m在数组中的位置。若找到,返回其下标值;否则,返回-1。

折半查找的基本算法是:每次查找前先确定数组中待查的范围low和high(lowhigh,查找结束。请改正程序中的错误,使它能得出正确的结果。

#include #define N 10 main()

{ int i,a[N]={-3,4,7,9,13,45,67,89,100,180 },k=-1,m; int low=0,high=N-1,mid; printf(\数组中的数据如下:\ for(i=0;i/************found************/ else If(m > a[mid]) low=mid+1;

/************found************/ else {k=mid;continue;} }

if(k>=0) printf(\

else printf(\

Key:第一个错误:else If(m > a[mid]) 应改为:else if(m > a[mid]) 因C语言关键字必须小写。

第二个错误:else {k=mid;continue;} 应改为:else {k=mid;break;} 因找到就可终止循环。 4.有一个3*4矩阵,找出 …… 此处隐藏:1430字,全部文档内容请下载后查看。喜欢就下载吧 ……

电1C语言实验报告(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/595017.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)