没有合适的资源?快使用搜索试试~ 我知道了~
C语言技能考试题目-程序改错.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 137 浏览量
2021-12-19
13:01:09
上传
评论
收藏 55KB PDF 举报
温馨提示
试读
50页
C语言技能考试题目-程序改错.pdf
资源推荐
资源详情
资源评论
题号: 1
功能:用起泡法对 10 个整数从小到大排序。
/**********FOUND**********/
void sort(int x,int n)
{ int i,j,k,t;
for(i=0;i<n-1;i++)
/**********FOUND**********/
for(j=0;j<n-i;j++)
/**********FOUND**********/
if(x[i]>x[i+1])
{t=x[j];x[j]=x[j+1];x[j+1]=t; }
}
main()
{ int i,n,a[100];
printf("please input the length of the array:");
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
/**********FOUND**********/
sort(n,a);
printf("output the sorted array:");
for(i=0;i<=n-1;i++)
printf("%5d",a[i]);
printf("");
}
答案:
1).void sort(int *x,int n) 或 void sort(int x[],int n)
2).for(j=0;j<n-1-i;j++) 或 for(j=0;n-1-i>j;j++) 或 for(j=0;j<n-(1+i);j++) 或
for(j=0;n-(1+i)>j;j++) 或 for(j=0;j<=n-2-i;j++)
3). if(x[j]>x[j+1]) 或 if(x[j+1]<x[j])
4). sort(a,n);
题号: 2
功能:在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列。
#define N 11
main()
{ int i,j,t,number,a[N]={1,2,4,6,8,9,12,15,149,156};
printf("please enter an integer to insert in the array:");
/**********FOUND**********/
scanf("%d",&number)
printf("The original array:");
for(i=0;i<N-1;i++)
printf("%5d",a[i]);
printf("");
/**********FOUND**********/
for(i=N-1;i>=0;i--)
if(number<=a[i])
/**********FOUND**********/
a[i]=a[i-1];
else
{ a[i+1]=number;
/**********FOUND**********/
exit;
}
if(number<a[0]) a[0]=number;
printf("The result array:\n");
for(i=0;i<N;i++)
printf("%5d",a[i]);
printf("\n");
}
答案:
1).scanf("%d",&number);
2).for(i=N-2;i>=0;i--) 或 for(i=N-2;0<=i;i--)
3).a[i+1]=a[i];
4).break;
题号: 3
功能:利用二维数组输出如图所示的图形。
*******
*****
***
*
***
*****
*******
#include <conio.h>
/**********FOUND**********/
#define N= 7
main()
{
char a[N][N];
int i,j,z;
clrscr();
for(i=0;i<N;i++)
for(j=0;j<N;j++)
/**********FOUND**********/
a[i][j]=;
z=0;
for(i=0;i<(N+1)/2;i++)
{
for(j=z;j<N-z;j++)
a[i][j]='*';
z=z+1;
}
/**********FOUND**********/
z=0;
for(i=(N+1)/2;i<N;i++)
{
z=z-1;
for(j=z;j<N-z;j++)
a[i][j]='*';
}
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
/**********FOUND**********/
printf("%d",a[i][j]);
printf("\n");
}
}
答案:
1).#define N 7
2).a[i][j]=' ';
3).z=z-1; 或 z--; 或 z=-1+z; 或 z=(n+1)/2-1; 或 z=(1+n)/2-1
4).printf("%c",a[i][j]);
题号: 4
功能:将若干学生的档案存放在一个文件中,并显示其内容。
struct student
{ int num;
char name[10];
int age;
};
struct student stu[3]={{001,"Li Mei",18},
{002,"Ji Hua",19},
{003,"Sun Hao",18}};
#include <stdio.h>
main()
{ /**********FOUND**********/
struct student p;
/**********FOUND**********/
cfile fp;
int i;
if((fp=fopen("stu_list","wb"))==NULL)
{ printf("cannot open file\n"); return; }
/**********FOUND**********/
for(*p=stu;p<stu+3;p++)
fwrite(p,sizeof(struct student),1,fp);
fclose(fp);
fp=fopen("stu_list","rb");
printf(" No. Name age\n");
for(i=1;i<=3;i++)
{ fread(p,sizeof(struct student),1,fp);
/**********FOUND**********/
scanf("%4d %-10s %4d\n",*p.num,p->name,(*p).age);
}
fclose(fp);
}
答案:
1).struct student *p;
2).FILE *fp;
3).for(p=stu;p<stu+3;p++) 或 for(p=stu;stu+3>p;p++) 或 for(p=stu;p<=stu+2;p++) 或
for(p=stu;stu+2>=p;p++)
4).printf("%4d %-10s %4d\n",(*p).num ,p->name,(*p).age); 或
printf("%4d %-10s %4d\n",p->num ,p->name,p->age); 或
printf("%4d %-10s %4d\n",(*p).num ,(*p).name,(*p).age); 或 printf(("%4d%-10s%4d
\n",p->num,p->name,(*p).age); 或 printf(("%4d%-10s%4d \n",(*p).num,p->name,p->.age); 或
printf(("%4d%-10s%4d \n",p->num,(*p).name,(*p).age);
题号: 11
功能:判断 m 是否为素数,若是返回 1,否则返回 0。
main()
{ int m,k=0;
for(m=1;m<100;m++)
if(fun(m)==1)
{printf("%4d",m);k++;
if(k%5==0) printf("\n");
}
}
/**********FOUND**********/
void fun( int n)
{ int i,k=1;
if(m<=1) k=0;
/**********FOUND**********/
for(i=1;i<m;i++)
/**********FOUND**********/
if(m%i=0) k=0;
/**********FOUND**********/
return m;
}
答案:
1).int fun( int m) 或 fun( int m)
2).for(i=2;i<m;i++) 或 for(i=2;m>i;i++) 或 for(i=2;i<=m-1;i++) 或 for(i=2;m-1=>i;i++)
3).if(m%i==0) k=0;
4).return k;
题号: 5
功能:求 1 到 10 的阶乘的和。
main()
{ int i;
float t,s=0;
float fac(int n);
/**********FOUND**********/
for(i=1;i<10;i++)
/**********FOUND**********/
s=fac(i);
printf("%f\n",s);
}
float fac(int n)
{/**********FOUND**********/
int y=1;
int i;
for(i=1 ;i<=n;i++)
y=y*i;
/**********FOUND**********/
return;
}
答案:
1).for(i=1;i<=10;i++) 或 for(i=1;10>=i;i++) 或 for(i=1;i<11;i++) 或 for(i=1;11>i;i++)
2).s=s+fac(i); 或 s+=fac(i); 或 s=fac(i)+s;
3).float y=1.0; 或 float y=1;
4).return y; 或 return(y); 或 return (y);
题号: 6
功能:求 1 到 20 的阶乘的和。
fun()
{ int n,j;
float s=0.0,t=1.0;
for(n=1;n<=20;n++)
{ /**********FOUND**********/
s=1;
剩余49页未读,继续阅读
资源评论
Terminalyy
- 粉丝: 0
- 资源: 3万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功