|
一、简答题
1、说明算法可以采用哪几种控制结构组合。
2、c语言程序的基本单位是什么?它的结构又如何?
二、编程题(第1-3题各10分、第4-5题各15分,共60分)
1、编写程序,输出从公元2010元至2100年所有闰年的年号。每输出3个年号换一行。
2、输出所有"水仙花数"。所谓"水仙花数"是指一个三位数,其各位数字立方和等于该本身。例如:153是一个水仙花数,因为153=13+53+33。
3、编写函数fun,其功能是判断一个数是否为素数的函数,素数时返回1,否则返回0。
4、从10个元素的数组中找到最小值,然后与数组的第一个元素对调。
5、 m个人的成绩存放在整型数组score中,请编写函数fun,它的功能是:将低于平均分的人数作为函数值返回主函数,并将低于平均分的分数存放在主函数定义的数组below中。
C语言及程序设计复习题参考资料
一、简答题
1、算法的控制结构给出了算法的基本框架,不仅决定了算法中各操作的执行顺序,也直接反映了算法的设计是否符合结构化原则。一个算法一般可以用顺序、选择、循环三种基本控制结构,通过顺序或嵌套组合而成。
2、函数是c语言程序的基本模块单元。
任何函数(包括主函数main())都是由函数说明和函数体两部分组成。其一般结构如下:
[函数类型] 函数名(函数参数表)
{ 说明语句部分;
执行语句部分;}
二、编程题
1、
【参考资料】
#include “stdio.h”
main()
{ int year,I=0;
printf(“\n从2010年至公元2100年中闰年有:\n”);
for(year=2010;year<=2100;)
{
if((year%4= =0&&year%100!=0)||year%400= =0)
{
printf(“\t%d”,year);
i++;
if(i%3= =0) printf(“\n”);
}
year++;
}
}
2、【参考资料】
#include<stdio.h>
main()
{ int i,j,z,n;
for(n=100;n<1000;n++)
{
i=n/100;
j=n/10-i*10;
z=n%10;
if(i*100+j*10+z==i*i*i+j*j*j+z*z*z)
{ printf(“%5d”,n);
}
}
printf(“\n”);
getch();
}
3、【参考资料】
/*是素数返回1,否则返回0*/
int sushuis(int m)
{ int m;
int i=2,t;
for(;i<=m;i++)
if(m%i==0&&i<m) break;
if(m-i==0) t=1;
else t=0;
return t;
}
4、【参考资料】
#include<stdio.h>
main()
{ int a[10]={1,22,4,96,88,17,5,39,-7,-2};
int i,j,temp,min=0;
printf(“\n”);
for(i=0;i<=9;i++)
printf(“%d ”,a[i]);
printf(“\n”);
for(i=0;i<=9;i++)
if(a[i]<a[min]) min=i;
{
temp=a[0];
a[0]=a[min];
a[min]=temp;
}
for(i=0;i<=9;i++)
printf(“%d ”,a[i]);
printf(“\n”);
getch();
}
5、【参考资料】
#include "stdio.h"
int fun(int score[],int m,int below[]) /*计算score数组中m个元素的均值,并把小于平均值的元素逐个存放在below数组中/
{ int i,k=0,aver=0;
for(i=0;i<m;i++)
aver+=score[i]; /* 计算总分 */
aver/=m; /* 计算平均分 */
for(i=0;i<m;i++) /* 逐个判断分数值 */
if(score[i]<aver) /* 如低于平均分 */
{ below[k]=score[i]; /* 存放到以below为首地址的数组中 */
k++; /* 统计低于平均分的人数 */
}
return k; /* 返回人数 */
}
main( )
{ int i,n,below[9];
int score[9]={55,44,66,77,88,99,89,78,67};
n=fun(score,9,below); /* 调用函数,低于平均分的人数赋给n */
printf("\nbelow the average are:");
for(i=0;i<n;i++)
printf("%4d",below[i]); /* 输出below数组中n个值 */
}
|
|