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

    7.请编写一个函数int fun(int *s,int t,int *k),用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。
    例如,输入如下整数:876 675 896 101 301 401 980 431 451 777则输出结果为:6,980。
    ♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣
    #include<conio.h>
    #include  <stdio.h>
    int fun(int *s,int t,int *k)
    { int i , max ;
    max=s[0];
    for ( i=0; i<t; i )
    if(s[i]>max)
    { max=s[i];
    *k=i; }
    }
    main()
    {int a[10]={876,675,896,101,301,401,980,431,451,777},k;
    clrscr()  ;
    fun(a,10,&k);
    printf("%d,%d\n",k,a[k]);
    }
    
    8.编写函数fun,函数的功能是:根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。
    s=1 1/(1 2) 1/(1 2 3) ....... 1/(1 2 3 4 ...... n) 例如:若n的值为11时,函数的值为1.833333。
    ♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣
    #include <stdio.h>
    float fun(int n)
    { int i,s;
    s=0;
    for(i=0,i<=n,i ){
    s=s 1/chsdc(i);
    }  
    return(s);
    }
    long chsdc(int n)
    { int i,s;
    s=0; 
    for(i=0,i<n,i ){
    s=s i;
    }
    return(s);
    } 
    main()
    {  int n; float s;
    printf("\nPlease enter N:"); scanf("%d", &n);
    s = fun(n);
    printf("the result is: %f\n", s);
    NONO();
    }
    
    NONO (  )
    {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
    FILE *fp, *wf ;
    int i, n ;
    float s;
    
    fp = fopen("K:\\k1\\24000322\\in.dat","r") ;
    wf = fopen("K:\\k1\\24000322\\out.dat","w") ;
    for(i = 0 ; i < 10 ; i ) {
    fscanf(fp, "%d", &n) ;
    s = fun(n) ;
    fprintf(wf, "%f\n", s) ;
    }
    fclose(fp) ;
    fclose(wf) ;
    }
    
    9.编写函数fun,它的功能是:根据以下公式求P的值,结果由函数值带回。m与n为两个正整数且要求m>n。p=m!/n!(m-n)!。例如:m=12,n=8时,运行结果为495.000000。
    ♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣
    #include <conio.h>
    #include <stdio.h>
    float fun( int m, int n)
    {  int i,j,k;
    long int  t=1,s=1,p=1;
    float q;
    for(i=1; i<=m; i )  t*=i;
    for(j=1; j<=n; j )  s*=j;
    for(k=1; k<=m-n; k ) p*=k;
    q=(float)t/s/p;
    return q;
    }
    main()
    { printf("\np=%lf\n", fun(12,8));
    }
    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");
    }
    
    15.请编写一个函数 unsigned fun(unsigned w),w是一个大于10的无符号整数,若w是n(n≥2)位的整数,则函数求出w的后n-1位的数作为函数值返回。
    例如:w值为5923,则函数返回923;若w值为923,则函数返回23。
    ♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣♣
    #include <conio.h>
    #include <stdio.h>
    /* 注:由于unsigned型整数在0-65535这间,只要它大于10000则对10000求余即得出后面4位,否则如果大于1000则对1000求余得出后3位数,这样一层一层往小的判断。由于return的作用除了返回值以外,还有当执行到return时就跳出该程序,所以可以连续的用if()语句。 */
    unsigned fun( unsigned w )
    { if(w>=10000) return w%10000;
    if(w>=1000) return w%1000;
    if(w>=100) return w%100;
    return w%10;
    }
    main()
    { unsigned x;
    printf( "enter a unsigned integer number :" );
    scanf( "%u",&x);
    if(x<10) printf("data error!");
    else printf ("the result :%u\n", fun(x));
    
    

 

相关新闻

肢体语言塑造你自己
太学操作系统—建立题目及问卷
每一个程序员要遵守的一些优秀编程风格
杂谈语言(之六)——文字改革(下):一失足成千古恨的文字改革
杂谈语言(之五)——文字改革(上):半吊子的改革最糟糕!
杂谈语言(之四)——续谈广东话的口头语(2)
杂谈语言(之四)——续谈广东话的口头语(1)
杂谈语言(之三)——那些深受古汉语影响的语言(方言)
杂谈语言(之二)——语言学习的边际成本递减效应
《VB程序设计基础》选择题

您可能对这些感兴趣  

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

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

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