收藏 分销(赏)

黑龙江大学C语言程序设计试题库程序改错.doc

上传人:精*** 文档编号:9772359 上传时间:2025-04-07 格式:DOC 页数:14 大小:30.04KB 下载积分:8 金币
下载 相关 举报
黑龙江大学C语言程序设计试题库程序改错.doc_第1页
第1页 / 共14页
黑龙江大学C语言程序设计试题库程序改错.doc_第2页
第2页 / 共14页


点击查看更多>>
资源描述
程序改错 功能:给定n个实数,输出平均值,并统计在平均值以下(含平 均值)的实数个数。 例如:n=6时,输入23.5, 45.67, 12.1, 6.4,58.9, 98.4所得 平均值为40.828335,在平均值以下的实数个数应为3。 #include <stdio.h> int fun(float x[],int n) int j,c=0; /**********FOUND**********/ float j=0; /**********FOUND**********/ for(j=0;j<=n;j++) xa+=x[j]; xa=xa/n; printf("ave=%f\n",xa); /**********FOUND**********/ for(j=0;j<=n;j++) if(x[j]<=xa) c++; return c; void main(void) float x[]={23.5,45.67,12.1,6.4,58.9,98.4}; printf("%d\n",fun(x,6)); 答案: 1). float xa=0; 或 float xa=0.0; 2). for(j=0;j<n;j++) 或 for(j=0;n>j;j++) 或 for(j=0;n-1>=j;j++) 或 for(j=0;j<=n-1;j++) 3). for(j=0;j<n;j++) 或 for(j=0;n>j;j++) 或 for(j=0;j<=n-1;j++) 或 for(j=0;n-1>=j;j++) 功能:编写函数fun,求两个整数的最小公倍数,然后用主 函数main()调用这个函数并输出结果,两个整数由 键盘输入。 #include "stdio.h" main() unsigned int m,n,q; printf("m,n="); scanf("%d,%d",&m,&n); /**********FOUND**********/ q==fun(m,n); printf("p(%d,%d)=%d",m,n,q); getch(); int fun(int m,int n) int i; /**********FOUND**********/ if (m=n) i=m; m=n; n=i; for(i=m;i<=m*n;i+=m) /**********FOUND**********/ if(i%n==1) return(i); 答案: 1). q=fun(m,n); 2). if (m<n) 3). if(i%n==0) 功能:利用递归方法求5!。 #include"stdio.h" #include "stdio.h" main() int i; int fact(); printf("5!=%d\n",fact(5)); int fact(j) int j; int sum; /**********FOUND**********/ if(j=0) /**********FOUND**********/ sum=0; else sum=j*fact(j-1); /**********FOUND**********/ return j; 答案: 1). if(j==0) 2). sum=1; 3). return sum; 功能:用指针作函数参数,编程序求一维数组中的最大与最小的 元素值. #define N 10 /***********FOUND***********/ void maxmin(int arr[ ],int *pt1, *pt2, n) int i; /***********FOUND***********/ *pt1=*pt2=&arr[0]; for(i=1;i<n;i++) /***********FOUND***********/ if(arr[i]<*pt1) *pt1=arr[i]; if(arr[i]<*pt2) *pt2=arr[i]; main( ) int array[N]={10,7,19,29,4,0,7,35,-16,21},*p1,*p2,a,b; /***********FOUND***********/ *p1=&a;*p2=&b; maxmin(array,p1,p2,N); printf("max=%d,min=%d",a,b); 答案: 1). void maxmin(int arr[ ],int *pt1,int *pt2,int n) 或 maxmin(int arr[ ],int *pt1,int *pt2,int n) 或 void maxmin(int *arr,int *pt1,int *pt2,int n) 2). *pt1=*pt2=arr[0]; 或 *pt1=*pt2=*(arr+0); 或 *pt2=*pt1=arr[0]; 3). if(arr[i]>*pt1) *pt1=arr[i]; 或 if(*(arr+i)>*pt1)) *pt1=arr[i]; 或 if(*pt1<*(arr+i))) *pt1=arr[i]; 或 if(*pt1<arr[i]) *pt1=arr[i]; 4). p1=&a;p2=&b; 功能:将长整型数中每一位上为偶数的数依次取出,构成一个新 数放在t中。高位仍在高位,低位仍在低位。 例如:当s中的数为:87654时,t中的数为:864。 #include <conio.h> #include <stdio.h> void fun (long s, long *t) int d; long sl=1; *t = 0; while ( s > 0) d = s%10; /**********FOUND**********/ if(d%2=0) /**********FOUND**********/ *t=d* sl+ t; sl *= 10; /**********FOUND**********/ s\=10; main() long s, t; clrscr(); printf("\nPlease enter s:"); scanf("%ld", &s); fun(s, &t); printf("The result is: %ld\n", t); getch(); 答案: 1). if( d%2 == 0 ) 或 if(d%2!=1) 2). *t=d* sl+ *t; 或 *t+=d*sl; 或 *t+=sl*d; 或 *t=*t+d* sl; 或 *t=*t+sl*d; 3). s/=10; 或 s=s/10; 功能:根据整型形参m,计算如下公式的值: y=1/2+1/8+1/18+...+1/2m*m #include "stdio.h" double fun(int m) /**********FOUND**********/ double y=0 int i; /**********FOUND**********/ for(i=1; i<m; i++) /**********FOUND**********/ y=+1.0/(2*i*i); return(y); main() int n; clrscr(); printf("Enter n: "); scanf("%d", &n); printf("\nThe result is %1f\n", fun(n)); getch(); 答案: 1). double y=0; 2). for(i=1; i<=m; i++) 3). y+=1.0/(2*i*i); 功能:以下程序输出前六行杨辉三角形,既 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 main( ) static int a[6][6]; int i,j,k; /***********FOUND***********/ for(i=1;i<=6;i++) for(k=0;k<10-2*i;k++) printf(" "); for(j=0;j<=i;j++) /***********FOUND***********/ if(j==0&&j==i) a[i][j]=1; else /***********FOUND***********/ a[i][j]=a[i-1][j-1]+a[i][j-1]; printf(" "); printf("%-3d",a[i][j]); /***********FOUND***********/ printf("\t"); 答案: 1). for(i=0;i<6;i++) 或 for(i=0;i<=5;i++) 2). if(j == 0 || j == i) 3). a[i][j]=a[i-1][j]+a[i-1][j-1]; 或 a[i][j]=a[i-1][j-1]+a[i-1][j]; 4). printf("\n"); 功能:以下程序能求出1*1+2*2+......+n*n<=1000中满足条件的 最大的n。 #include "string.h" main() int n,s; /**********FOUND**********/ s==n=0; /**********FOUND**********/ while(s>1000) ++n; s+=n*n; /**********FOUND**********/ printf("n=%d\n",&n-1); getch(); 答案: 1). s=n=0; 2). while(s<=1000) 3). printf("n=%d\n",n-1); 功能:读入一个整数k(2≤k≤10000),打印它的所有质因子(即 所有为素数的因子)。 例如:若输入整数:2310,则应输出:2、3、5、7、11。 请改正程序中的语法错误,使程序能得出正确的结果。 #include "conio.h" #include "stdio.h" /**********FOUND**********/ IsPrime(integer n ) int i, m; m = 1; for ( i = 2; i < n; i++ ) /**********FOUND**********/ if ( n%i ) m = 0; break; /**********FOUND**********/ return ( n ); main( ) int j, k; clrscr(); printf( "\nPlease enter an integer number between 2 and 10000: " ); scanf( "%d", &k ); printf( "\n\nThe prime factor(s) of %d is( are ):", k ); for( j = 2; j <= k; j++ ) if((!( k%j))&&( IsPrime(j))) printf( "\n %4d", j ); printf("\n"); 答案: 1). IsPrime(int n) 2). if(!(n%i)) 3). return ( m ); 功能:请编写函数fun,对长度为8个字符的字符串,将8个字符按 降序排列。 例如:原来的字符串为CEAedcab,排序后输出为edcbaECA。 #include<stdio.h> #include<ctype.h> #include<conio.h> int fun(char *s,int num) /**********FOUND**********/ int i;j; char t; for(i=0;i<num;i++) /**********FOUND**********/ for(j=i;j<num;j++) /**********FOUND**********/ if(s[i]>s[j]) t=s[i]; s[i]=s[j]; s[j]=t; main() char s[10]; clrscr(); printf("输入8个字符的字符串:"); gets(s); fun(s,8); printf("\n%s",s); getch(); 答案: 1). int i,j; 2). for(j=i+1;j<num;j++) 3). if(s[i]<s[j]) 功能:计算正整数num的各位上的数字之积。 例如:若输入:252,则输出应该是:20。 若输入:202,则输出应该是:0。 #include <stdio.h> #include <conio.h> long fun (long num) /**********FOUND**********/ long k=1 do k*=num%10 ; /**********FOUND**********/ num\=10; /**********FOUND**********/ }while(!num) ; return (k) ; main( ) long n ; clrscr() ; printf("\Please enter a number:") ; scanf("%ld",&n) ; printf("\n%ld\n",fun(n)) ; getch(); 答案: 1). long k=1; 2). num/=10; 3). } while(num) ; 或 while(num!=0) 第 14 页
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服