黑龙江大学C语言程序设计试题库程序改错教学内容.docx
- 文档编号:10421224
- 上传时间:2023-02-11
- 格式:DOCX
- 页数:15
- 大小:18.11KB
黑龙江大学C语言程序设计试题库程序改错教学内容.docx
《黑龙江大学C语言程序设计试题库程序改错教学内容.docx》由会员分享,可在线阅读,更多相关《黑龙江大学C语言程序设计试题库程序改错教学内容.docx(15页珍藏版)》请在冰豆网上搜索。
黑龙江大学C语言程序设计试题库程序改错教学内容
程序改错
功能:
给定n个实数,输出平均值,并统计在平均值以下(含平
均值)的实数个数。
例如:
n=6时,输入23.5,45.67,12.1,6.4,58.9,98.4所得
平均值为40.828335,在平均值以下的实数个数应为3。
------------------------------------------------------*/
#include
intfun(floatx[],intn)
{
intj,c=0;
/**********FOUND**********/
floatj=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++;
returnc;
}
voidmain(void)
{
floatx[]={23.5,45.67,12.1,6.4,58.9,98.4};
printf("%d\n",fun(x,6));
}
答案:
1).floatxa=0;或floatxa=0.0;
2).for(j=0;j
3).for(j=0;j
功能:
编写函数fun,求两个整数的最小公倍数,然后用主
函数main()调用这个函数并输出结果,两个整数由
键盘输入。
------------------------------------------------*/
#include"stdio.h"
main()
{
unsignedintm,n,q;
printf("m,n=");
scanf("%d,%d",&m,&n);
/**********FOUND**********/
q==fun(m,n);
printf("p(%d,%d)=%d",m,n,q);
getch();
}
intfun(intm,intn)
{
inti;
/**********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 3).if(i%n==0) 功能: 利用递归方法求5! 。 ------------------------------------------------------*/ #include"stdio.h" #include"stdio.h" main() { inti; intfact(); printf("5! =%d\n",fact(5)); } intfact(j) intj; { intsum; /**********FOUND**********/ if(j=0) /**********FOUND**********/ sum=0; else sum=j*fact(j-1); /**********FOUND**********/ returnj; } 答案: 1).if(j==0) 2).sum=1; 3).returnsum; 功能: 用指针作函数参数,编程序求一维数组中的最大和最小的 元素值. ------------------------------------------------------*/ #defineN10 /***********FOUND***********/ voidmaxmin(intarr[],int*pt1,*pt2,n) { inti; /***********FOUND***********/ *pt1=*pt2=&arr[0]; for(i=1;i { /***********FOUND***********/ if(arr[i]<*pt1)*pt1=arr[i]; if(arr[i]<*pt2)*pt2=arr[i]; } } main() { intarray[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).voidmaxmin(intarr[],int*pt1,int*pt2,intn)或maxmin(intarr[],int*pt1,int*pt2,intn)或voidmaxmin(int*arr,int*pt1,int*pt2,intn) 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 4).p1=&a;p2=&b; 功能: 将长整型数中每一位上为偶数的数依次取出,构成一个新 数放在t中。 高位仍在高位,低位仍在低位。 例如: 当s中的数为: 87654时,t中的数为: 864。 ------------------------------------------------------*/ #include #include voidfun(longs,long*t) { intd; longsl=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() { longs,t; clrscr(); printf("\nPleaseenters: "); scanf("%ld",&s); fun(s,&t); printf("Theresultis: %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" doublefun(intm) { /**********FOUND**********/ doubley=0 inti; /**********FOUND**********/ for(i=1;i { /**********FOUND**********/ y=+1.0/(2*i*i); } return(y); } main() { intn; clrscr(); printf("Entern: "); scanf("%d",&n); printf("\nTheresultis%1f\n",fun(n)); getch(); } 答案: 1).doubley=0; 2).for(i=1;i<=m;i++) 3).y+=1.0/(2*i*i); 功能: 以下程序输出前六行杨辉三角形,既 1 11 121 1331 14641 ………… ………… ------------------------------------------------------*/ main() { staticinta[6][6]; inti,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() { intn,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(integern) { inti,m; m=1; for(i=2;i /**********FOUND**********/ if(n%i) { m=0; break; } /**********FOUND**********/ return(n); } main() { intj,k; clrscr(); printf("\nPleaseenteranintegernumberbetween2and10000: "); scanf("%d",&k); printf("\n\nTheprimefactor(s)of%dis(are): ",k); for(j=2;j<=k;j++) if((! (k%j))&&(IsPrime(j)))printf("\n%4d",j); printf("\n"); } 答案: 1).IsPrime(intn) 2).if(! (n%i)) 3).return(m); 功能: 请编写函数fun,对长度为8个字符的字符串,将8个字符按 降序排列。 例如: 原来的字符串为CEAedcab,排序后输出为edcbaECA。 ------------------------------------------------------*/ #include #include #include intfun(char*s,intnum) { /**********FOUND**********/ inti;j; chart; for(i=0;i /**********FOUND**********/ for(j=i;j /**********FOUND**********/ if(s[i]>s[j]) { t=s[i]; s[i]=s[j]; s[j]=t; } } main() { chars[10]; clrscr(); printf("输入8个字符的字符串: "); gets(s); fun(s,8); printf("\n%s",s); getch(); } 答案: 1).inti,j; 2).for(j=i+1;j 3).if(s[i] 功能: 计算正整数num的各位上的数字之积。 例如: 若输入: 252,则输出应该是: 20。 若输入: 202,则输出应该是: 0。 ------------------------------------------------------*/ #include #include longfun(longnum) { /**********FOUND**********/ longk=1 do { 10、如果学校开设一家DIY手工艺制品店,你希望_____k*=num%10; Beadwrks公司还组织各国的“芝自制饰品店”定期进行作品交流,体现东方女性聪慧的作品曾在其他国家大受欢迎;同样,自各国作品也曾无数次启发过中国姑娘们的灵感,这里更是创作的源泉。 /**********FOUND**********/ 图1-5购物是对消费环境的要求分布num\=10; 标题: 手工制作坊2004年3月18日/**********FOUND**********/ }while(! num); 为此,装潢美观,亮丽,富有个性化的店面环境,能引起消费者的注意,从而刺激顾客的消费欲望。 这些问题在今后经营中我们将慎重考虑的。 return(k); } 营销调研课题main() (五)DIY手工艺品的“价格弹性化”{ 1、购买“女性化”longn; (3)年龄优势clrscr(); printf("\Pleaseenteranumber: ");scanf("%ld",&n); printf("\n%ld\n",fun(n)); getch(); } 手工艺制品是我国一种传统文化的象征,它品种多样,方式新颖,制作简单,深受广大学生朋友的喜欢。 当今大学生的消费行为表现在追求新颖,追求时尚。 追求个性,表现自我的消费趋向: 购买行为有较强的感情色彩,比起男生热衷于的网络游戏,极限运动,手工艺制品更得女生的喜欢。 答案: 1).longk=1; 2).num/=10; 3).}while(num);或while(num! =0)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 黑龙江 大学 语言程序设计 试题库 程序 改错 教学内容