2.程序填空(根据题意在空白处填入适当的内容,使程序变得完整。并上机进行调试验证)
(1)程序说明:下面程序分别输出方阵中主对角线、副对角线上元素的和suml和sum2(主对角线为从矩阵的左上角至右下角的连线,副对角线为从矩阵的右上角至左下角的连线). #include\
#define SIZE 5 void main() {
int a[SIZE][SIZE],m,n,sum1,sum2; for(m=0;m
scanf(\ sum1=sum2=________; for(m=0;m
sum1=sum1+______; sum2=sum2+______; }
printf(\}
(2)程序说明:下面程序打印出如下所示的杨辉三角行(打印10行)。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 …….
#include\void main() {
int i,j,a[10][10]={{1},{1,1}}; for(i=2;i<10;i++) {
a[i][0]=1;___________; for(j=0;j
a[i][j]=a[i-1][j]+____________;
}
for(i=0;i<10;i++) {
for(j=0;j<=i;j++)
30
printf(\ ___________; } }
3.程序设计(根据题意编写程序并上机进行调试)。
(1) 设有一个3行5列的数组,编写程序从键盘输入数据,并找出二维数组中最大元素的值及其行、列下标。
(2)已知A是一个3×4矩阵,B是一个4×5矩阵,编写程序,从键盘输入矩阵A、B的值,求A×B得到的新,并输出矩阵C。
(3)设某班有20个学生,每个学生选修了三门课,编写程序,输入20个学生三门课的成绩,计算每个学生的平均成绩,最后输出每个学生三门课的成绩及平均成绩。
实验十 函数应用(一)
一、实验目的
1.掌握函数的定义、函数的说明和调用。
2.掌握函数的参数及其传递方式,函数值的正确返回。
二、实验内容
1.阅读下面程序,写出程序运行结果,并且上机进行验证。 (1)#include \
int swap(int a,int b) {
int c,s; c=a; a=b; b=c; s=a+b; return s; }
void main() {
int a,b,s; a=3;b=4; s=swap(a,b);
printf(\}
(2)#include \
31
int fun(int num) {
int k=1; do {
k*=num ; num/=10; while(num); return(k); }
void main() {
int n=26;
printf(\ }
2.程序填空(根据题意在空白处填入适当的内容,使程序变得完整。并上机进行调试验证)
(1)程序说明:下面程序将输入的十进制数n转换为b进制数,并将转换结果输出。转换的方法是:除b取余法。
#include \
void transfer(int m,int k) {
int a[20],i; for(i=0; m; i++) { a[i]= ; m/=k;
}
for(;i>=0;i--)
printf(\ }
void main() {
int b,n;
scanf(\ ; }
(2)程序说明:歌德巴赫猜想指出:任何一个充分大的偶数都可以表示为两个素数之和,例如4=2+2 6=3+3 8=3+5… 50=3+47。下面程序将4-50之间的所有偶数用两个素数之和表示,判断一个整数是否为素数用函数prime完成。
#include \ int prime(int x)
32
{
int k,flag=1;
for(k=2;k<=x/2;k++)
if( )
{
flag=0; break; }
return( ); }
void main() {
int m,n,k;
for(m=4;m<=50;m++) for(n=2;n
if(prime(n) && ) {
printf(\ break; }
}
3.程序设计(根据题意编写程序并上机进行调试)。
m(1)编写程序求组合数Cn?n!,其中n,m由键盘输入。要求设计一
m!?n?m?!个函数fac(n)求某个正整数n的阶乘。
(2)孪生素数是指两个相差为2的素数。例如3和5,5和7,11和13等。编写程序输出m对(m由键盘输入)孪生素数。要求设计函数prime用于判断某整数是否素数。
(3)找出2~1000以内的完全数。说明:完全数是一个自然数,它等于除本身以外的所有因子之和,例如:6=1+2+3,6就是一个完全数。要求定义一个函数来判断并输出
实验十一 函数应用(二)
一、实验目的
1.掌握函数的嵌套调用和递归调用 2.掌握数组做函数参数的用法
3.掌握全局变量和局部变量的用法。 4.掌握变量的存储类别。
33
二、实验内容
1.阅读下面程序,写出程序运行结果,并且上机进行验证。 (1)#include ?stdio.h? int a=3,b=5,c; int f(int b) {
c=a+b;
printf(\ }
void main() {
int a=8; f(3);
printf(\ }
(2)
#include \
void dtob(int n) {
int i;
if(n>1) { i=n%2;
dtob(n/2); }
else i=n;
printf(\
}
void main() {
int i=11;
printf(\ dtob(i);
printf(\
}
(3) #include \ int f1(int n) {
static int f=1;
f=f*n; return(f); }
void main()
34