程序填空、改错第二次练习

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

程序填空和改错练习2

一、程序填空

1. 功能:输入一个学生的生日(年:y0、月:m0、日:d0),并输入当前日期(年:y1、月:m1、日:d1)。求出该学生的年龄(实足年龄)。

#include

main()

{int age,y0,y1,m0,m1,d0,d1;

printf("输入生日日期(年,月,日)");

/***********SPACE***********/

【?】("%d,%d,%d",&y0,&m0,&d0);

printf("输入当前日期(年,月,日)");

scanf("%d,%d,%d",&y1,&m1,&d1);

age=y1-y0;

/***********SPACE***********/

if(m0【?】m1)age--;

/***********SPACE***********/

if((m0【?】m1)&&(d0>d1))age--;

printf("age=%3d",age);

}

2. 题目:对二维数组a中存储的N*N矩阵做如下操作:先将每一行中值最大的元素与该行位于主对角线处的元素交换,然后对主对角线上所有元素排序使其自左上角到右下角升序排列,最后输出排序后主对角线上各元素的值。

#include

#define N 5

void fun(int x[][N],int n)

{

int i,j,t,arr,col;

for(i=0;i

{

arr=x[i][0];col=0;

for(i=0;i

{

arr=x[i][0];col=0;

/***********SPACE***********/

for(j=0;j=arr) {arr=x[i][j]; 【?】}

t=x[i][i]; x[i][i]=x[i][col];x[i][col]=t;

}

for(i=0;i

for(j=i+1;j

/***********SPACE***********/

if(【?】)

{ t=x[i][i]; x[i][i]=x[j][j]; x[j][j]=t;}

}

}

void main()

{

int a[N][N]={{10,25,24,13,23},{11,22,12,21,14},{20,15,19,16,18},

{17,9,4,5,3},{2,1,6,7,8}};

int i;

fun(a,N);

for(i=0;i

printf("\n");

}

3. 功能:输入字符串,再输入一个字符,将字符串中与输入字符相同的字符删除。

#include "stdio.h"

void fun(char a[],char c)

{

int i,j;

/***********SPACE***********/

for(i=j=0; 【?】;i++)

if(a[i]!=c) a[j++]=a[i];

/***********SPACE***********/

【?】;

}

main()

{

char a[20],cc;

gets(a);

/***********SPACE***********/

【?】;

/***********SPACE***********/

【?】;

puts(a);

}

二、程序改错

1. 功能:求出a所指数组中最大数和次最大数(规定最大数和次最大数不在a[0]和a[1]中),依次和a[0]、a[1]中的数对调。

例如:数组中原有的数:7、10、12、0、3、6、9、11、5、8,

输出的结果为:12、11、7、0、3、6、9、10、5、8。

#include

#include

#define N 20

int fun ( int a[], int n )

{

int k,m1,m2,max1,max2,t;

max1=max2= -32768; m1=m2=0;

for ( k = 0; k < n; k++ )

if ( a[k]>max1 )

{

max2 = max1; m2 = m1;

max1 = a[k]; m1 = k;

}

/**********FOUND**********/

else if( a[k]>max1 )

{

max2 = a[k]; m2 = k; }

/**********FOUND**********/

t = a[0];

a[m1]=a[0];

a[m1] = t;

/**********FOUND**********/

t = a[1];

a[m2]=a[1];

a[m2] = t;

}

main( )

{

int x, b[N]={7,10,12,0,3,6,9,11,5,8}, n=10, i;

clrscr( );

for ( i = 0; i

printf("%d ",b[i]);

printf("\n");

fun (b, n);

for ( i=0; i

printf("%d ",b[i]);

printf("\n");

getch();

}

2.题目:在主函数中main()中输入年、月、日,然后计算该天是这一年的第几天。其中函数LeapYear()是判断某年是否为闰年。

#include

#include

int LeapYear(int year){

/***********FOUND***********/

return ((year%4==0 && year%100) && (year%400==0));

}

int main(){

int

相关文档
最新文档