上一题下一题
跳转到
 
 
  世界如此多姿,发展如此迅速,窥一斑未必还能知全豹。但正如万花筒一样,每一个管窥都色彩斑斓。  
 
 
  知识通道 | 学习首页 | 教师首页 | PK首页 | 知识创造首页 | 企业首页 | 登录
 
本文对应知识领域
c语言 上机编程题库(16)
作者:未知 申领版权
2010年12月12日 共有 2017 次访问 【添加到收藏夹】 【我要附加题目
受欢迎度:

    10.编写函数fun,它的功能是:利用以下所示的简单迭代方法求方程cos(x)-x=0的一个实根。 
    Xn 1=cos(Xn)
    迭代步骤如下:
    ⑴取x1初值为0.0;
    ⑵x0=x1,把x1的值赋给x0;
    ⑶x1=cos(x0),求出一个新的x1;    
    ⑷若x0-x1的绝对值小于0.000001,则执行步骤(5),否则执行步骤(2);
    ⑸所求x1就是方程cos(x)-x=O的一个实根,作为函数值返回。  
    程序将输出结果Root=0.739085。    
    ♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣
    #include <conio.h>
    #include <math.h>
    #include <stdio.h>
    float fun()
    { float x0,x1=0;
    do { x0=x1;
    x1=cos(x0);
    }while( fabs(x0-x1)>1e-006);
    return x1;
    }
    main()
    { printf("root=%f\n",fun());
    }
    11.下列程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][N]),该函数的功能是:使数组左下半三角元素中的值全部置成0。例如:a数组中的值为
    ,则返回主程序后a数组中的值应为
    ♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣
    #include<stdio.h>
    #include<conio.h>
    #include<stdlib.h>
    #define N 5
    /* 29题:该题的关键是如何表示出左下半角的元素,当从上往下到第i行时只有左边的
    i个元素要置为0(每行总是如此)。用外层for()来控制行而内嵌的for()来控制每行的
    左边元素,故而在内嵌for()中j最大只能循环到i(即表示出第i行左边的i个元素)。*
    /
    int fun(int a[][N])
    {int i,j;
    for(i=0;i<N;i )
    for(j=0;j<=i;j )
    a[i][j]=0;
    }
    main()
    {int a[N][N],i,j;
    clrscr();
    printf("*** The array ****\n");
    for(i=0;i<N;i )
    {for(j=0;j<N;j )
    {a[i][j]=rand()%10;printf("%4d",a[i][j]);}
    printf("\n");
    }
    fun(a);
    printf("The result\n");
    for(i=0;i<N;i )
    {for(j=0;j<N;j )
    printf("%4d",a[i][j]);
    printf("\n");
    }
    }
    12.下列程序定义了N×N的二维数组,并在主函数中赋值。请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数中的s。例如:若a数组中的值为
    则返回主程序后s的值应为3.375。   
    ♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣
    #include <stdio.h>
    #include <conio.h>
    #include <stdlib.h>
    #define N 5
    /* 注意不能重复计算,第一个for()循环求出第一列与最后一列的和,第二个for()循环求出第一行与最后一行(已除去两头元素),要注意第二个for()中起始为1,最后为N-2。*/
    double fun (int w[][N])
    { int i,t=0;
    double s=0;
    for(i=0;i<N;i )
    {s =w[i][0] w[i][N-1]; t =2;}
    for(i=1;i<N-1;i )
    {s =w[0][i] w[N-1][i]; t =2;}
    s=s/t;
    return s;
    }
    main()
    { int a[N][N]={0,1,2,7,9,1,9,7,4,5,2,3,8,3,1,4,5,6,8,2,5,9,1,4,1};
    int i,j;
    double s;
    clrscr();
    printf("***** The array *****\n");
    for(i=0;i<N;i )
    {for(j=0;j<N;j )
    printf("%4d",a[i][j]);
    printf("\n");
    }
    s=fun(a);
    printf("***** The result *****\n");
    printf("The sum is %lf\n",s);
    }
    13.请编一个函数void fun(int tt[M][N],int pp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。二维数组中的数已在主函数中赋予。
    ♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣
    #include "conio.h"
    #include "stdio.h"
    #define M 3
    #define N 4
    /*注:该题用for(i=0;i<N;i )来控制一列一列地找,而内嵌循环for(j=0;j<M;
    j )用于控制同列内元素的比较。多重循环的嵌套总是最里层循环变化最快,即外层循
    环改变一个值,内层循环就要循环完一次,对于多重循环一定要好好去体会和理解,在
    多数题目中都要用到多重循环(一般为二重)。*/
    void fun(int tt[M][N],int pp[N])
    { int i, j;
    for(i=0;i<N;i )
    { pp=tt[0][i];
    for(j=0;j<M;j )
    if(tt[j][i]<pp[i]) pp[i]=tt[j][i];
    }
    }
    main()
    { int t[M][N]={ {22,45,56,30},
    {19,33,45,38},
    {20,22,66,40}};
    int p[N],i,j,k;
    clrscr();
    printf("the original data is:\n");
    for(i=0;i<M;i )
    {for(j=0;j<N;j )
    printf("%6d",t[i][j]);
    printf("\n");
    }
    fun(t,p);
    printf("\nthe result is:\n");
    for(k=0;k<N;k )
    printf("%4d",p[k]);
    printf("\n");
    }
    
    14.请编写函数fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。    
    例如:若二维数组中的值为  1  3  5  7  9 则函数值为61。
    2  9  9  9  4
    6  9  9  9  8
    1  3  5  7  0
    ♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣
    #include <conio.h>
    #include <stdio.h>
    #define M 4
    #define N 5
    /*注:该题的第一个for()循环是计算矩阵的最上一行和最下一行的总和,第二个for()是计算除两头元素以外的最左一列和最右一列的元素的和,最后sun就是周边元素的和。*/
    int fun(int a[M][N])
    {int sum=0,i;
    for(i=0;i<N;i )
    sum =a[0][i] a[M-1][i];
    for(i=1;i<M-1;i );
    sum =a[i][0] a[i][N-1];
    return sum ;
    }
    main()
    { int aa[M][N]={{1,3,5,7,9},
    {2,9,9,9,4},
    {6,9,9,9,8},
    {1,3,5,7,0}};
    int i,j,y;
    clrscr();
    printf("The original data is :\n");
    for(i=0;i<M;i )
    {for(j=0;j<N;j ) printf("%6d",aa[i][j]);
    printf("\n");
    }
    y=fun(aa);
    printf("\nThe sum: %d\n",y);
    printf("\n");
    }
    

 

相关新闻

每一个程序员要遵守的一些优秀编程风格
《VB程序设计基础》选择题
设计模式之Iterator
设计模式之Visitor
设计模式之Interpreter(解释器)
设计模式之Mediator(中介者)
设计模式之Strategy(策略)
设计模式之State
设计模式之Command
设计模式之Chain of Responsibility(职责链)

您可能对这些感兴趣  

第7讲 综合分析BIM在运用与推广中的障碍问题
考核学生质量的困难
日本福岛核电站事故初步分析
论科技异化与科技人化
中国科技计划项目管理现状与对策
财政科技资金的审计重点和内容
软科学研究机构在政府决策中的功效、困境及对策研究
打造超级DOS系统(下)
DOS命令基础应用(6)
打造超级DOS系统(上)

题目筛选器
日期:
类型:
状态:
得分: <=
分类:
作者:
职业:
关键字:
搜索

 
 
 
  焦点事件
 
  知识体系
 
  职业列表
 
 
  最热文章
 
 
  最多引用文章
 
 
  最新文章
 
 
 
 
网站介绍 | 广告服务 | 招聘信息 | 保护隐私权 | 免责条款 | 法律顾问 | 意见反馈
版权所有 不得转载
沪ICP备 10203777 号 联系电话:021-54428255
  帮助提示    
《我的太学》是一种全新的应用,您在操作中遇到疑问或者问题,请拨打电话13564659895,15921448526。
《我的太学》