当前位置:
文档之家› 计算机三级考试C语言上机试题
计算机三级考试C语言上机试题
程序的改进: 程序的改进: 通过证明,只需判断在 只需判断在2—sqrt(n)范围内没有一 通过证明 只需判断在 范围内没有一 个自然数k能够整除 能够整除n,就能证明n是素数 个自然数 能够整除 ,就能证明 是素数 for(k=2;k<=sqrt(n);k++) if(n%k==0) break; 例子:第10、45套 例子: 、 套
第二部分——算法的分析: 第二部分 算法的分析: 算法的分析 (1)首先输入一个需要判定的自然数 )首先输入一个需要判定的自然数n (2)接着,我们设置一个除数变量,同时也 )接着,我们设置一个除数变量, 是一个计数变量k,将其初值设置为2 是一个计数变量 ,将其初值设置为 (3)使用第一个判断框,设置循环的条件为 )使用第一个判断框, 循环中判断n 的值, “k<=n/2” ,循环中判断 mod k的值,如 的值 果不为零,继续循环;如果为零, 果不为零,继续循环;如果为零,直接跳出 循环 的值确定n是否是素数 (4)循环结束通过 的值确定 是否是素数 )循环结束通过k的值确定
算法流程图: 算法流程图
判断素数的C程序 判断素数的 程序: 程序 void IsPrime(int n) { int k; printf("输入一个正整数:"); 输入一个正整数: 输入一个正整数 scanf("%d",&n); for(k=2;k<=n/2;k++) if(n%k==0) break; if(k>n/2) printf("%d是一个素数。",n); 是一个素数。 是一个素数 else printf("%d不是一个素数。",n); 不是一个素数。 不是一个素数 }
(三)多位整数分解
假定num为一个四位正整数,如何求出各 为一个四位正整数, 假定 为一个四位正整数 位上数字 千位数字: 千位数字:num/1000 百位数字: 百位数字:num%1000/100 十位数字:num%100/10 十位数字: 个位数字: 个位数字:num%10
第2、3套 等 、 套
排序演示
程序
#include<stdio.h> #define N 10 void main() { int a[N+1],b,c,temp; printf("请输入 个数字:\n"); 请输入10个数字: 请输入 个数字 for(b=1;b<=N;b++) scanf("%d",&a[b]); for(b=1;b<=N-1;b++) for(c=1;c<=N-b;c++) if(a[c]>a[c+1]) { temp=a[c]; a[c]=a[c+1]; a[c+1]=temp; } for(b=1;b<=N;b++) printf("%d ",a[b]); putchar('\n9'); }
(二)素 数 问 题
判断一个数是否是素数的方法 (1) 算法设计 (2) 算法分析 (3) 算法流程图 (4) C程序代码 程序代码
第一部分 —— 算法设计 如果某个自然数n是素数 是素数, 如果某个自然数 是素数,那么可能存在 这样的情况——在2~n/2范围内没有一个自 这样的情况 在 范围内没有一个自 然数k能够整除 能够整除n。所以, 然数 能够整除 。所以,如果要判断自然数 n是否为一个素数,只需要让 不断的去除 是否为一个素数, 是否为一个素数 只需要让n不断的去除 以从2开始的 开始的, 结束的整数k, 以从 开始的,到n/2结束的整数 ,这是一 结束的整数 个反复执行的操作。 个反复执行的操作。如果在这个范围内的数 没有一个k能够整除 能够整除n,就说明n是一个素数 是一个素数。 没有一个 能够整除 ,就说明 是一个素数。 反之,只需要存在一个k能够整除 能够整除n, 反之,只需要存在一个 能够整除 ,就说明 n不是一个素数。 不是一个素数。 不是一个素数
计算机三级考试C 计算机三级考试 语言上机试题
(一)冒泡法排序
冒泡法顾名思义就是将一个数从下面浮上来,假设有 个数 个数, 冒泡法顾名思义就是将一个数从下面浮上来,假设有5个数, 21 56 87 6 9, , 将第五个元素的值与第四个元素的值相比, 将第五个元素的值与第四个元素的值相比,如果第五个元素 的值小于第四个元素的值,则交换着两个元素的值。 的值小于第四个元素的值,则交换着两个元素的值。 接下来,将第四个元素的值与第三个元素的值进行比较, 接下来,将第四个元素的值与第三个元素的值进行比较,按 照类似的方式,如果发现下面元素的值小于上面元素的值, 照类似的方式,如果发现下面元素的值小于上面元素的值, 则交换着两个值。 则交换着两个值。 将第三个元素的值与第二个元素的值比较,做同样的工作。 将第三个元素的值与第二个元素的值比较,做同样的工作。 在这一轮比较结束时,最小值将到达最上面, 在这一轮比较结束时,最小值将到达最上面,可以说最小值 已经浮到最上面 第二轮,从最底部的元素开始比较,直到第二个元素, 第二轮,从最底部的元素开始比较,直到第二个元素,因为 第一个已经是最小,不需要再进行比较。 第一算数值,统计, 计算数值,统计,求平均值等
(五)字符串元素的访问
字符串替换,移动, 字符串替换,移动,排序等 第56套等 套等
(六)选票问题
二维数组的使用 第60套等 套等