大学C语言考试复习复习
发布时间:2024-11-25
发布时间:2024-11-25
C语言考试有用的资料 是同学手打的 大家看看
《实训六 程序设计测试》答案注释
【声明】由于水平极其有限,不可能保证我所编写的下列源代码中不产生垃圾代码或是其算法是最优的,以及代码所对应的注释语句不出任何差错。所以,如若发现有疑问之处指出并告诉我,保证知识内容的正确性。宁可有不知道,也绝不出现乱答。
【注意】此试题只包含前六章的知识内容。希望它可以帮助大家一起复习好C,将考试中知识的主体部分拿下。在使用此份资料学习时,建议将我给的源代码及其注释复制粘贴到编辑器中进行对照的学习。1)输入1个整数x,计算并显示x3和x,要求输入有提示信息,平方
根显示到小数点后2位(即保留2位小数)。
源代码:
#include<stdio.h> // ⑴
#include<math.h> // ⑵
int main(void) // ⑶
{ // ⑷
int x; // ⑸
double p,f; // ⑹
printf("请输入整数x的值:"); // ⑺
scanf("%d",&x); // ⑻
f=pow(x,3); // ⑼
p=sqrt(x); // ⑽
printf("%d的三次方值为:%.2lf\n%d的平方根为:%.2lf\n",x,f,x,p); // ⑾
return 0; // ⑿
} // ⒀
【注意:上面源代码中符号“//”是C++中所采用的注释符号,我为图省事就用此。但在考试若要使用到代码注释,请务必使用“/* */”。】
C语言考试有用的资料 是同学手打的 大家看看
⑴ 我们现在所学的程序中必将是先用#include<stdio.h>开头,其中stdio.h是C语言中一个 .h 头文件。所以我们必须要先对编译器说“我要使用C的库函数编译”后方可使用后面的如printf(“ ”)函数等。
⑵ math。h就是表示“我要用到数学函数”。如果在写代码的过程中使用了像⑼、⑽此类不需自定义的函数时必须要在开头添加此语句。
⑶这是一句极其重要的一句。它表示“我开始写了,这是我的主函数,它是空的”。要明白,一个函数有且仅有一个主函数。
⑷和⒀ 所有的代码被读取时都将是在一个大括号开始,在所对应的另一半大括号结束。 ⑸ int 定义一个整型变量,x就是所被定义的变量。记住,只有使用像-5、0、1、2这类数据才可以用int定义。它的数据范围是-32767~32767,被定义的整数若超过这个范围将导致程序异常。
⑹ double定义两个双精度浮点型变量p,f。对应的有个float,它定义的是单精度浮点型变量。区别就是double在内存中占8个字节的储存空间,而float占4个。也就是double的有效数字多于(两倍之多呢)float。建议,在不知道用他俩谁时就用double定义。程序不会有任何错误,就是浪费内存而已。
⑺和⑻ printf和scanf输出和输入函数谁是谁,千万不要以为得配套使用。其中在scanf函数使用时千万不要丢了逗号后面的取地址符&。
⑼和⑽ 他俩就是我们调用的数学函数。pow(x,y)是求x的y次幂。sqrt(x)是求x的平方根。这些简单的最好记住。
⑾ 注意括号中的,在引号中的有%d、%.2lf、%d、%.2lf。但凡是要“显示”的数据是整形变量,那么就是%d,若是单(双)精度浮点型变量就用%lf(或是%f)。“.2”表示数据需要精确到几位小数。若是“2”,则表示数据显示时其左端“空留”两个字节的位置后再将该数据显示出,若是“-3”则表示显示出该数据后右端“空留”3个字节的位置。若需要保留的小数位数大于所要求的右端空留字节位数,则电脑会按照需要保留小数的位数进行显示。那么电脑是怎么知道这四个数据依次是谁呢?所以就在引号后我们依次用逗号隔开,依次对应的写出了这四个变量的名称,即 x,f,x,p。
⑿ 这个return语句我们到目前我们“看起来”有两个功能:一是返回0值告诉电脑程序运行正常;二就是返回自定义函数值。
⒀ 程序读到这儿,发现了另一个对应的大括号,ok,任务完成,源代码读完了。千万要注意,括号一定要配对使用,不要多括漏括。否则编译器会报很多的错误,其实你只是这一个问题而已。
最后,再对这整段代码说一下:写代码时千万不要“自作多情”的把每条语句都顶格写。你会发现当你写完一条语句回车后光标会自动放到合适的位置,编译器这样做是为了让你写的代码更加清楚,增强可读性,便于找问题。还有就是当我们在调试代码时一定要先查看第一个错误,不管有多少行的错误显示。因为很肯能你所有的问题就是源于你的第一条问题而产生的。
2)输入一个直角三角形的两个直角边的边长,求斜边的长度和三角形面积(保留 2位小数)。
源代码:
#include<stdio.h> //.h头文件,我们现写的所有代码这个必须有//
#include<math.h> //调用数学函数,为下面使用求平方根做好铺垫//
int main(void) //这是主函数,void表示空白,那int main(void)也可以写为int main()//
C语言考试有用的资料 是同学手打的 大家看看
{ //开始读代码了//
double a,b,c,s; //定义了a,b,c,s四个双精度浮点型变量//
printf("请输入两个直角边长值:"); //调用输出函数,在屏幕上显示“请输入两个直角边长值:”//
scanf("%lf%lf",&a,&b); //调用输入函数,键入两个数,分别在&a和&b地址中存放//
c=sqrt(a*a+b*b); //调用求平方根函数sqrt(x),其中x=a*a+b*b//
s=a*b/2; //运算s的值//
printf("斜边长为:%.2lf\n面积为:%.2lf\n",c,s); //再次调用此函数,输出所要的结果//
return 0; //返回值0,告诉编译器一切很顺利//
} //代码读完了//
3) 编写一个计算摄氏(C)到华氏(F)转换的函数。计算公式:9F=C 32(保留2位小数) 5
源代码:
#include<stdio.h>
int main(void)
{
double c,F;
double fahr(double c); //这句是声明一个自定义函数,它在括号内,是一句语言,后面是要";"的//
printf("请输入所要转换的摄氏度值:");
scanf("%lf",&c);
F=fahr(c); //程序读到这儿发现了一个前面定义了的函数,便会停下来,去找到这个自定义函数fahr(c)去读值//
printf("该摄氏度对应的华氏温度值为:%.2lf\n",F);
return 0;
}
double fahr(double c) //"告诉"程序我自定义的函数是干嘛的,它不在大括号内,其后面不需要";",千万注意到这一点//
{ //这里自定义的函数其"格式"要求和上面写的第一个子函数一样,像什么变量定义啥的五脏六腑都得有,和前面要调用它的子函数地位一致//
double f;
f=9/5*c+32; //f值的计算式//
return f; //这里其实和上面第一个子函数中的return 0没啥区别,它是返回0值告诉程序读的很顺利;而这里是要子函数在最后去
} //返回值f,作为我们自定义函数的值,告诉编译器,当你读到函数fahr(c)时它的值等于f。也就是F==f//
C语言考试有用的资料 是同学手打的 大家看看
1)键盘输入1个数,判断它是否13的倍数。
源代码:
#include<stdio.h>
int main(void)
{
int x,n;
printf("请输入一个数字:");
scanf("%d",&x);
n=x % 13; //%是求余的运算,一般在判断是否能被某一个数整除时使用//
if(n==0) //if语句,其括号内的可是“==”(这是改错题最爱出的地方),表示当n等于0时,执行括号后面的语句段,直到遇见";"结束//
printf("%d是13的倍数\n",x);
else //我们可以用好几个if语句连续使用,不用非要使用else,视具体情况怎么方便怎么来用。
printf("%d不是13的倍数\n",x); //但如果有else if语句使用时,在最后就必须要有else语句垫底//
return 0;
}
2)键盘上输入1个字符,如果它是大写字母,则把它转换成小写字母输出;否则,直接输出
源程序:
#include<stdio.h>
int main(void)
{
char ch; //char可是对字符型变量进行定义,所以在赋值时必须有' '(单括号)括住//
printf("请键入一个字符:");
ch=getchar(); //但凡是题目要求在键盘上键入“一系列”字符时就使用getchar()输入函数//
if(ch>='a'&&ch<='z') //千万留意,这里必将是一个考点,"&&"和"||"的问题。认真看书上所讲的//
printf("%c\n",ch); //char定义的字符变量要使用%c,而且千万要记住必须要用单括号括住它。
else if(ch>='A'&&ch<='Z') //这些细节都是在改错题中出现的,要留心//
printf("%c\n",ch+32); //为什么当输入的字符是大写时将其加32就会输出的是小写了?因为在ASCII中大小写相差值为32//
else
printf("输入错误!\n");
return 0;
C语言考试有用的资料 是同学手打的 大家看看
3) 键盘输入2个加数,再输入答案,如果正确,显示“right”,否则显示“error”
源程序:
#include<stdio.h>
int main(void)
{
double x,y,z;
printf("请输入两个加数,形如a+b:"); //提示所要的输入什么//
scanf("%lf%lf",&x,&y); //读入数据x和y//
printf("请输入答案:"); //再次显示提示要输入什么//
scanf("%lf",&z); //输入我们自己认为的结果//
if(z==x+y) //程序进行逻辑判断了,如果我们认为的结果值z和x+y的运算值相等,那便符合if的条件从而
printf("right!\n"); //执行这段语句//
else //如果是其他的情况,就读他后面的语句就可以了,即显示error//
printf("error!\n");
return 0;
}
1)函数y=f(x)可表示为: ≤x≤1)
输入xy
源程序:
#include<stdio.h> //像此类很规整的通过条件判断求不同解的题,啥也
int main(void) //不说了,直接上if语句判断//
{
double x,y;
printf("请输入x的值:");
scanf("%lf",&x);
if(x<-1) //当发现输入x的值小于-1就读括号后面的
y=-1/x; //这句,运算其结果//
else if(x<=1) //发现x比-1大了,可小于等于1,那就符合这句括号里的判断条件, y=0; //运行这行运算//
C语言考试有用的资料 是同学手打的 大家看看
}
y=3*x-1; //即 剩余的其他情况,来执行这条语句得了// printf("%.4lf\n",y); //最后输出y的值就ok了// return 0;
2) 键盘上输入1个字符,判断它是字母、数字、空格或其它字符。
源程序:
#include<stdio.h>
int main(void)
{
char ch;
printf("请输入一个字符:");
ch=getchar(); //使用getchar()输入函数,读取键盘上输入的字符//
if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')) //这句话的使用一定要了解,不懂看书。书上有详解//
printf("所键入的字符 %c 是一个字母!\n",ch);
else if(ch>='0'&&ch<='9')
printf("所键入的字符 %c 是一个数字!\n",ch);
else if(ch==' ') //表示ch等于空格时,注意空格的表示方法,即" "。就是输入一个空格即可。还有继续保持警惕,等于是“==”
printf("所键入的字符 %c 是一个空格!\n",ch);
else
printf("所键入的字符 %c 属于其他字符!\n",ch);
return 0;
}
3)输入五级分制成绩(A—E),转换成百分制成绩输出。(要求用switch语句)
源程序:
#include<stdio.h>
int main(void)
{
char ch;
printf("请输入五级分制成绩:");
scanf("%c",&ch);
switch(ch){ //switch语句,它的关键点是括号里的一定是一
C语言考试有用的资料 是同学手打的 大家看看
个表达式!不可以像if的括号里是
case 'A': //判断语句。在case后面跟的就是这个表达式的值,即一个常量表达式。如
printf("百分之成绩为:95\n"); //case 0、case ‘b’等//
break; //这个break语句是用来当满足某一表达式的值时强制跳出switch语句这一作用,
case 'B': //它的使用要灵活掌握的,什么时候要中断switch语句,什么时候要继续读下面的
printf("百分之成绩为:85"); //语句。还有它在for循环语句中的灵活使用// break;
case 'C':
printf("百分之成绩为:75\n");
break;
case 'D':
printf("百分之成绩为:65\n");
break;
case 'E':
printf("百分之成绩为:55\n");
break;
default: //在switch语句中default是可以省略的,如果省略了,则当表达式的值与任何一个
printf("输入有误!\n"); //常量表达式的值都不相等时,就什么都不执行//
break;
}
return 0;
}
4)简单计算器。请编写一个计算表达式:data1 op data2的值。(保留3位小数)其中op为运算符+、-、*、/。例如:用户输入: 3.14*2 程序会显示结果:3.14*2=6.280。
源程序:
#include<stdio.h>
int main(void)
{
double x,y;
char op;
printf("请输入一个计算表达式,形如:data1 op data2\n");
scanf("%lf%c%lf",&x,&op,&y); //做好一一对应//
switch(op){
case'+': //注意,这个运算符号op是一个字符型,需要单引号。所以下面的都要加单
C语言考试有用的资料 是同学手打的 大家看看
括号的//
printf("%lf+%lf=%lf\n",x,y,x+y);
break; //为啥都要使用break?因为我们每发现一个符合的常量表达式,进行运算结果,输出后就可以
case'-': // 结束了。所以我只要发现符合的,运行结束后使用break语句跳出switch语句即可//
printf("%lf-%lf=%lf\n",x,y,x-y);
break;
case'*':
printf("%lf*%lf=%.3lf\n",x,y,x*y);
break;
case'/':
printf("%lf/%lf=%.3lf\n",x,y,x/y);
break;
default:
printf("输入表达式有误!\n");
break;
}
return 0;
}
5)企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高 于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I(万元),求应发放奖金总数?
源程序:
#include<stdio.h> //这道题其实没啥说的,就是一个if语句的使用。我在前面的例题中也说到了,也就不重复了。难点是
int main(void) //它所对应的每一个条件下的算法,这也不难,差不多能在菜市场买菜不被骗的数学知识就可以了
{ //还有就是你不要以为这题相当的easy。一定要自己写写才体会到其中的细节地方。//
double x;
printf("请输入当月利润值(万元):");
scanf("%lf",&x);
if(x<=10)
C语言考试有用的资料 是同学手打的 大家看看
printf("应发奖金额为%lf(万元)\n:",0.1*x);
else if(x<=20)
printf("应发奖金额为%lf(万元)\n:",(x-10)*0.075+0.1*10);
else if(x<=40)
printf("应发奖金额为%lf(万元)\n:",(x-20)*0.05+10*0.075+10*0.1);
else if(x<=60)
printf("应发奖金额为%lf(万元)\n:",(x-40)*0.03+20*0.05+10*0.075+10*0.1); else if(x<=100)
printf("应发奖金额为%lf(万元)\n:",(x-60)*0.015+20*0.03+20*0.05+10*0.075+10*0.1);
else
printf("应发奖金额为%lf(万元)\n:",(x-100)*0.01+40*0.015+20*0.03+20*0.05+10*0.075+10*0.1);
return 0;
}
1)计算s=1-1/2+1/4-1/6+1/8- 的前n项和
源程序:
#include<stdio.h> //像这种题,考的就是你对基本算法的掌握和逻辑语言使用的水平 int main(void) //所以一定要细细体会这类题的算法//
{
int n,i,flag,x;
double f,s;
printf("请输入n值:");
scanf("%d",&n);
s=1; //记住,只要你定义的变量参与了计算,但它的第一个值又不是我们由输入而赋给的,那一般是
flag=-1; //要先给赋初值的,不然它只要参与运算,就要先获得一个值去进行计算,这时的值就是一个很大的随机数//
x=2; //在这道题的算法中,我并不是把1作为首项,而是把-1/2当做第一项。这就是为什么我要s=1,x=2,
//flag=-1作为初值//
for(i=1;i<=(n-1);i++){ //看到没,只要我知道我要循环几次(因为n是我输入的已知数),就用if语句//
f=flag*1.0/x; //这是原数列首项1后面的每一项的算法,用flag进行正负变化。在这里千万不要把“*1.0”给丢了。//
s=s+f; //好了,由上一句得到第一项的值,再将它和原式子中的1相加就可以了。形成一个新的s值,也就数列的和。如此累加//
flag=-flag; //当算完第一项后要变号,这里就是把"-"变为"+"。如此反复,形成"-"、"+"、"-"、"+"的变化//
x=x+2; //这里是把每循环一次就给分母加2.这些语句的依次顺序就是你计算的逻辑顺序,如果衔接不当就会计算出错值//
C语言考试有用的资料 是同学手打的 大家看看
}
printf("数列前%d项值为:%.4lf\n",n,s); return 0;
2)从键盘输入一系列整数,以负数结束,计算并输出数据的总个数、零的个数、正数的平均值(显示到小数点后两位)。
源程序:
#include<stdio.h> //对于这种看起来真的感觉有些复杂的题目,我们先要的是在纸上画出流程,想出我要采用的算法
int main(void) //一定不要一上来就非要开始定义变量。记住在编写代码时要先写出核心算法。看最后我们用到了那些变量,它的类型是什么
{ //再一个不落得进行定义。当然千万不要忘了上题所提到的赋初值// int i,a,x,z;
double average,total,n;
i=0;
a=0;
total=0;
z=0;
printf("请输入一系列整数,以负数结束:");
scanf("%d",&x);
while(x>=0){ //当我们需要先判断条件是否满足再进入计算时,就用while语句。而它对应的有个do-while语句是先运算看结果是否满足条件。//
i++; //只要满足条件了,进入循环就给计数,每循环一次i加1//
if(x>0){ //这里是进行平均值的计算//
a++; //记录有多少个数//
n=a; //求的n值//
total=total+x; //进行累加求和//
average=total/n; //计算平均值//
}
if(x==0){ //统计0的个数
z++;
}
scanf("%d",&x); //每循环判断完一次后,输入接下来的x值//
}
printf("输入整数的个数为(其中不包含负数个数):%d\n",i);
printf("其中0的个数为:%d\n",z);
printf("这些整数的平均值为:%.2lf\n",average);
return 0;
}
C语言考试有用的资料 是同学手打的 大家看看
3)输入一个整数,判断是否为素数
源程序:
#include<stdio.h> //书上的例题,经典算法。一定要掌握它。反反复复没完没了的考这道题。//
int main(void)
{
int i,m;
printf("请输入一个数字:");
scanf("%d",&m);
for(i=2;i<=m/2;i++)
if(m%i==0) //特别提醒:这句if语句和下面的if-else语句不是一个系统的,这里的if语句是嵌套在for循环
break; //中使用的,和for连成一句.用break语句来强制跳出本是满足条件后还要进行的循环。因为没必要继续下去了//
if(i>m/2) //这里的if和下面的else才是真正的东北一家人,进行对i值大小所对应的结果输出。//
printf("%d是一个素数!\n",m);
else
printf("%d不是素数!\n",m);
return 0;
}
4)输入一个正整数,按逆序输出。
源程序:
#include<stdio.h> //同样,做这样稍微有点复杂的题先写其流程图,再把核心算法写出// int main(void)
{
int n;
void order(int n);
printf("请输入至少两位数的一个正整数:");
scanf("%d",&n);
order(n); //由于这里最后输出的是一组数字,而不是某个计算得到的数据。所以并不需要定义
//某个变量来等于自定义函数的返回值,再将其输出了。这里直接就"显示"函数的"样子"。请注意函数使用void定义的。//
return 0;
}
void order(int n) //自定义函数//
{
int m; //自定义一个整形变量//
while(n>10){ //先判断输入的整数值是否大于10,并让其进入循环中能够进行若干次
C语言考试有用的资料 是同学手打的 大家看看
求值//
if(n>10){ //n大于10的话
m=n%10; //就将其除以10求余数,所得的第一个余数就是其逆序数的第一个数字//
n=n/10; //这条语句的作用则是用来"监视"n的值是否经过不断地除以10后n只有
printf("%d",m); //一位数了,如果只剩一位了,那就无需再做除以10的运算了//
}
if(n<10){ //进入这个if语句中
m=n; //将除后的最后一位数直接在最后显示就行了// printf("%d\n",m);//这样逆序数也就排好输出了//
}
}
}
5)输入行数n,打印出如下图案
*
***
*****
*******
*********
源程序:
#include<stdio.h>
int main(void)
{
int m,n,i,j;
printf("请输入n值:");
scanf("%d",&n);
for(i=1;i<=n;i++){ //外层的for语句控制行数//
m=2*i-1; //用这句话来控制 * 的每行显示的个数,这是核心算法的计算公式//
for(j=1;j<=m;j++){ //内层的for语句则是用来输出 * 个数的//
printf("*");
}
if(j=m) //当该行输出*结束后,也就是j=m
printf("\n"); //时进行换行//
}
return 0;
C语言考试有用的资料 是同学手打的 大家看看
6)输出101~200间的素数。
源程序:
#include<stdio.h> //书上反复出的例题,练习题也没完没了的出,所以求素数问题真的很重要
#include<math.h> // 一定要掌握。具体解释细细看书上相似例题的注释,明白他的算法。此题不再累述了//
int main(void)
{
int count,i,m,n;
count=0;
for(m=101;m<=200;m++){
n=sqrt(m);
for(i=2;i<=n;i++)
if(m%i==0)break;
if(i>n)
printf("%5d",m);
}
printf("\n");
return 0;
}
7)现有1020本书,第一天卖掉一半多两本,以后每天卖掉剩下的一半多两本,直到卖完为止。计算并输出卖完所需要的天数。
源程序:
#include<stdio.h>
int main(void)
{
int n,w,s,day;
n=1; //先让n=1//
s=1024;
w=s/2-2; //让书先买一天的量//
while(w>0){ //进入循环//
s=w;
n++; //计数买了的天数//
day=n;
w=s/2-2; //只要是书的数量w大于0就让它继续卖,
} //直到w=0不符合条件跳出循环//
printf("所需的天数为:%d\n",day);
C语言考试有用的资料 是同学手打的 大家看看
}
1) 定义一个函数,功能为计算圆柱体的体积,并编写主函数,输入半径和高,调用函数求出圆柱体体积
源程序:
#include<stdio.h>
int main(void)
{
double radii,height,v;
double volume(double r,double h); //定义求体积函数//
printf("请输入圆柱体的底面圆半径及高的值:");
scanf("%lf%lf",&radii,&height); //读入实参的值//
v=volume(radii,height); //调用自定义函数的值,并将它获得的实参值递给形参// printf("圆柱体的体积为:%.4lf\n",v);
return 0;
}
double volume(double r,double h) //这里r,h就是形参。只有实参给形参传递值,不会 { //有形参的值反给了实参,也就是实参和形参的名字 double pi,resule; //可以起重名//
pi=3.1415;
resule=pi*r*r*h; //计算体积函数的值//
return resule; //返回求得的函数值给上面的调用了自定义函数的子函数//
}
2) 定义一个函数,功能为完成华氏温度到摄氏温度的转换,并编写主函数,输入华氏温度,调用函数求出摄氏温度。
源程序:
#include<stdio.h> //如果你已经明白了前面关于自定义函数的方法
int main(void) //那像这类题也就是最简单的了,也是很有可能
{ //考到的。具体到此题也没啥说的了//
double c,x;
double Fahrenheit(double x);
printf("请输入华氏温度值:");
scanf("%lf",&x);
c=Fahrenheit(x);
printf("摄氏温度值为:%.3lf\n",c);
C语言考试有用的资料 是同学手打的 大家看看
return 0;
}
double Fahrenheit(double x)
{
double f;
f=5*(x-32)/9;
return f;
}
3)定义一个Dis_Menu()函数,显示如下菜单,在编写一个主函数调用它。
1、录入
2、排序
3、查找
4、插入
5、删除
6、退出
源程序:
#include<stdio.h>
int main(void)
{
int n;
void Dis_Menu(int n);
Dis_Menu(n); //由于要显示的不是具体计算而得的值,所以就直接调用,也就没必要再搞个什么返回值了//
return 0;
}
void Dis_Menu(int n)
{
for(n=1;n<=6;n++){ //通过六次循环依次输出六行显示菜单,当然也可以采用书上P47,直接使用
if(n=1) //六个printf函数很霸道的将其输出。
printf("1、录入\n"); //不过我还是强烈建议好好看看书P47的源代码,它包含知识点很好//
if(n=2)
printf("2、排序\n");
if(n=3)
printf("3、查找\n");
if(n=4)
printf("4、插入\n");
if(n=5)
printf("5、删除\n");
C语言考试有用的资料 是同学手打的 大家看看
}
} printf("6、退出\n");
4)定义一个函数,功能为判断一个整数是否为素数,并编写主函数,输入一个数,调用函数判断它是否为素数。
源程序:
#include<stdio.h> //看见没,素数问题又来了。。。
int main(void) //最后还是建议大家认真的读懂并可以独自写出
{ //该测试题中所有的代码。因为它比实训整体上简单
int n; //很多,也就更可能被考到的。遇到实在解决不了的
void prime(int n); //一定要问问懂的同学,代码这东西错一处这整道题也就 printf("请输入一个整数:"); //差不多挂了。一定要用心像编译器一样
scanf("%d",&n); //读代码,这样你就会发现每一句所对应的逻辑顺序,
prime(n); //这在做改错题中相当的重要!
return 0;
}
void prime(int n)
{
int i;
for(i=2;i<=n/2;i++)
if(n % i ==0)break;
if(i>n/2)
printf("%d 是一个素数!\n",n);
else
printf("%d 不是素数!\n",n);
}
最后给大家一道我编的密码验证源代码,不要求大家编,只是用来“读”,看自己通过上面的学习能否明白我为什么采用这样的算法,有没有不必要的语句。看自己理解其中每一话的作用吗?!能读懂代码,是考试及格的最后的底线。
#include<stdio.h>
#define N 6
int a[N];
int main(void)
{
int i,k,q,CON,count;
int swap(int count);
q=3;