样卷

以下程序运行时输出到屏幕的结果中第一行是____,第二行是____。

1)

 

#include<stdio.h>
int main()
{
    int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i,j;
    for(i=0;i<12;i++)
    {
        j=s[i];//i为样本s的个数
        c[j]++;//c[j]=c[j]+1。从c[j]初始化0开始,每出现一次j,c[j]自增1
}
for(i=1;i<5;i++)
    printf("%d;%d\n",i,c[i]);
    return 0;
}

 

2)

#include<stdio.h>
int fun(int x)
{
    static int c,y;//函数fun(2)第一次调用,静态变量c的值自动初始化为0
    if(c==0)
        y=1;
    else
        y=y+x;
    c++;
    return y;
}
    int main()
{
        int i;
        for(i=0;i<2;i++)
            printf("%d\n",fun(2));
        return 0;
}

 

3)

#include<stdio.h>
void fun(int*a,int b)//被调函数
{
    while(b>0)
    {
    *a+=b;
    b--;
    }
}
int main()//主调函数main()将变量y的值传递给fun()函数,函数fun()的执行不会影响变量y的值的变化
{
    int x=0,y=3;
    fun(&x,y);
    printf("%d\n%d",x,y);
    return 0;
}

 

4)

以下程序运行时输出到屏幕的结果是___。//这题最简单啦

#include<stdio.h>
int f(int x)
{
    if(x==0||x==1)
        return 3;
    return x*x-f(x-2);
}
int main()
{
    printf("%d\n",f(3));
    return 0;
}

 

5)

以下程序运行时输出到屏幕的结果中第一行是___,第二行是___,第三行是___。算法提示:将Fibonacci数列(1,1,2,3,5,8,13...)前6个数填入a数组

#include<stdio.h>
#define N 3
int main()
{
    int i,j,a[N][N]={1},f1=0,f2=1,temp;//a[0][0]赋值为1,数组其他元素都赋值为0
    for(i=1;i<N;i++)
        for(j=0;j<=i;j++)
        {
            if(i<=i)
            {
                a[i][j]=f1+f2;
                temp=f1;
                f1=f2;
                f2=f1+temp;
            }
        }
    for(i=0;i<N;i++)
    {
        for(j=0;j<N;j++)
            printf("%5d",a[i][j]);
        printf("\n");
    }
    return 0;
}

 

三、操作题

1

#include<stdio.h>
#include<conio.h>
int leap(int year)
{
    int y;
    y=year%4==0&&year%100!=0||year%400==0;
    return y;
}
void month_day(int year,int yearday,int*month,int*day)//*month,*day
{
    int k,p;
    int tab[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}};
    p=leap(year);
    for(k=1;yearday>tab[p][k];k++)
        yearday=yearday-tab[p][k];
    *month=k;
    *day=yearday;
}
int main()
{
    int year,days,month,day;
    printf("Input year and days!\n");
    scanf("%d,%d",&year,&days);
    if(leap(year)==1&&days<=366||leap(year)==0&&days<=365)
    {
        month_day(year,days,&month,&day);//&month,&day
        printf("\n%d/%d/%d",year,month,day);
    }
else
    puts("days is wrong!");
    getch();
    return 0;
}

 

2、改错

#include<stdio.h>
#include<conio.h>
#include<ctype.h>
/*函数wordsearch返回找到的回文单词个数并取得回文单词*/
int wordsearch(char a[],char b[][10])
{
    int i,j,k,m,n,t,c=0,d;//c为回文单词个数,其它为循环临时变量
    for(i=0;a[i];i++)//循环查找整个字符串//
    {
        for(j=i,k=i;isalpha(a[k]);k++);//循环得到一个单词,函数isalpha判断a[k]是否为字母
        m=j;//记录单词起始位置
        n=k-1;//记录单次结束位置
        /*循环判断该单词前后字符是否相等*/
        while(toupper(a[m])==toupper(a[n])&&m<=n)
        {
            m++;
            n--;
        }
        if(m>n)
        {
            for(d=0,t=j;t<k;t++)
                b[c][d++]=a[t];
            b[c][d]='\0';
            c++;
        }
        i=k;
    }
        return c;
}
    int main()
    {
s        char s1[]="Dad left home at noon.";
        char s2[10][10];
        int i,j;
        puts(s1);
        j=wordsearch(s1,s2);
        printf("found %d words\n",j);
        for(i=0;i<j;i++)
            puts(s2[i]);
        getch();
        return 0;
    }

 

3、编程

#include<stdio.h>
#define N 5
int judge(int a[N][N])
{
    int i,j,b[N+N+2]={0},*p1,*p2;
    for(i=0;i<N;i++)
    {
        for(j=0;j<N;j++)
            b[i]+=a[i][j];
    }
    for(j=0;j<N;j++)
    {
        for(i=0;i<N;i++)
            b[N+j]=a[i][j];
    }
    for(i=0;i<N;i++)
            b[N+j]=a[i][j];
    for(i=0;i<N;i++)
            b[N+1+j]=a[i][N-1-j];
    p1=b;
    p2=b+N+N+1;
    while(p1<p2)
    {
        if(*p1!=*(p1+1))
            return 0;
        else
            p1++;
    }
    return 1;
}
int main()
{
    int i,j,x[N][N]={{17,24,1,8,15},{23,5,7,14,16},{4,6,13,20,22},{10,12,19,21,3},{11,18,25,2,9}};
    FILE*fp;
    fp=fopen("myf2.out","w");
    for(i=0;i<N;i++)
    {
        for(i<0;i<N;i++)
        {
            printf("%4d",x[i][j]);
            fprintf(fp,"%4d",x[i][j]);
        }
        printf("\n");fprintf(fp,"\n");
    }
    if(judge(x))
    {
        fprintf(fp,"yes");
        printf("yes");
    }
    else
    {
        printf("no");
        fprintf(fp,"no");
    }
    fprintf(fp,"\nMy exam number is:0112400123");
    fclose(fp);
    return 0;
}

 

posted on 2020-09-26 15:07  维特根斯坦  阅读(157)  评论(0)    收藏  举报