您的位置:首页 > 其它

第十一次上机实验

2013-06-14 01:23 204 查看
作业1:
下段程序循环体执行的次数是是多少,为什么

[cpp] view
plaincopy

#include <stdio.h>  

int main()  

{  

    int i=1,n=0,num = 0;  

    while (n<=2*i)   

    {   

        n=i*i;   

        i=i+1;  

        num++;  

    }   

    return 0;  

}  

次数是三次,因为num=3.。。。 n=9>2*4=8

----------------------分割线----------------------
作业2:
阅读下面程序,在???填上适当的语句,使程序完成指定的功能。并说明为什么? 
程序说明:是用公式 求π的近似值,直到最后一项的绝对值小于是10 为止。 

[cpp] view
plaincopy

#include "stdio.h"  

#include "math.h"   

main()   

{  

    int s=1;   

    float n=1,t=1,pi=0;   

    while( ??? )   

    {   

        pi=pi+ ???    ;   

        n=     ???   ;   

        s=-s;   

        t=s/n;   

    }   

    pi=pi*4;   

    printf("pi=%f\n",pi);   

}   

#include "stdio.h"
#include "math.h"
void main()
{
int s=1;
float n=1,t=1,pi=0;
while(n<10 )
{
pi=pi+t   ;
n=n+2  ;
s=-s;
t=s/n;
}
pi=pi*4;
printf("pi=%f\n",pi);
}
格里高利公式:π/4=1-1/3+1/5-1/7+...
----------------------分割线----------------------
作业3:
阅读下面程序,在???填上适当的语句,使程序完成指定的功能。并说明为什么? 
程序说明:冒泡对十个数按升序排序程序

[cpp] view
plaincopy

#include "stdio.h"  

main()   

{   

    static int a[10]={12,23,14,5,6,1,0,10,9,7};   

    int i,j,t;   

    for(j=0;j<???;j++)   

        for(i=0;i<9-j;i++)   

            if(???)   

            {   

                t=a[i];a[i]=a[i+1];a[i+1]=t;}   

            for(i=0;i<10;???)   

                printf("%5d ",???);   

}   

#include "stdio.h"
void main()
{
static int a[10]={12,23,14,5,6,1,0,10,9,7};
int i,j,t;
for(j=0;j<11;j++)
for(i=0;i<9-j;i++)
if(a[i]>a[i+1])
{
t=a[i];a[i]=a[i+1];a[i+1]=t;}
for(i=0;i<10;i++)
printf("%5d ",a[i]);
}


总共十个数据,所以j<10,因为升序,所以是a[i]>a[i+1]而不是小于,要全部按升序输出 所以是i++,a[i]

----------------------分割线----------------------
作业4:程序运行后的输出结果是什么,为什么?

[cpp] view
plaincopy

#include  <string.h>  

#include <stdio.h>  

struct STU   

{   

    char  name[10];  

    int   num;  

};  

  

void f(char *name, int  num)  

{   

    struct STU  s[2]={{"SunDan",20044},{"Penghua",20045}};  

    num = s[0].num;  

    strcpy(name, s[0].name);  

}  

main()  

{   

    struct STU  s[2]={{"YangSan",20041},{"LiSiGuo",20042}},*p;  

    p=&s[1];   f(p->name, p->num);  

    printf("%s  %d\n", p->name, p->num);  

}  

“Sundan”,20042

将主程序中的S[1]代替自定义中的S]1] 然后输出相应的name,num

----------------------分割线----------------------
作业5:程序运行后的输出结果是什么,为什么?

[cpp] view
plaincopy

#include  <string.h>  

#include <stdio.h>  

struct STU   

{ char  name[10];    int  num;    float  TotalScore;  };  

void f(struct STU  *p)  

{   

    struct STU  s[2]={{"SunDan",20044,550},{"Penghua",20045,537}}, *q=s;  

    ++p ;  ++q;  *p=*q;  

}  

main()  

{   

    struct STU  s[3]={{"YangSan",20041,703},{"LiSiGuo",20042,580}};  

    f(s);  

    printf("%s  %d  %3.0f\n", s[1].name, s[1].num, s[1].TotalScore);  

}  

“Penghua”,200445,537

程序五跟四差不多。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: