资源描述
附加程序调试题
1、在考生文件夹的Paper子文件夹下已有Modify1.c文件。该文件中“/***** N ***** /”的下一行中有错误,请改正。(注意:不得加行、减行、加句、减句,否则后果自负)。
程序功能:运行时输入整数n,输出n各位数字之和。(例如:n=1308则输出12,n=-3204则输出9)
#include <stdio.h>
#include <math.h>
void main()
{ int n,s=0;
scanf("%d",&n);
n=fabs(n);
/******** 1 *******/
while(n>1) {
s=s+n%10;
/******** 2 ******/
n=n%10;
}
printf("%d\n",s);
}
2、在考生文件夹的Paper子文件夹下已有Modify1.c文件。该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充。(注意:不得加行、减行、加句、减句,否则后果自负)。
程序功能:调用find函数在输入的字符串中查找是否出现"the"这个单词。如果查到返回出现的次数;如果未找到返回0。
#include <stdio.h>
int find(char *str)
{char *fstr="the";
int i=0,j,n=0;
while (str[i]!='\0')
{for(______1______)
if (str[j+i]!=fstr[j]) break;
if (______2______) n++;
i++;
}
return n;
}
void main()
{ char a[80];
gets(a);
printf("%d",find(a));
}
3、在考生文件夹的Paper子文件夹下已有Modify1.c文件。该文件中“/***** N ***** /”的下一行中有错误,请改正。(注意:不得加行、减行、加句、减句,否则后果自负)。
程序功能:运行时输入n,输出n的所有质数因子。(例如:n=13860,则输出2、2、3、3、5、7、11)
#include <stdio.h>
void main()
{ int n,i;
scanf("%d",&n);
/****** 1 ******/
i=1;
while(n>1)
if(n%i==0) {
printf("%d\t",i);
n/=i;
}
else
/******** 2 *******/
n++;
}
4、在考生文件夹的Paper子文件夹下已有Modify1.c文件。该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充。(注意:不得加行、减行、加句、减句,否则后果自负)。
程序功能:调用函数f,去除数组中的负数,输入数组x[7]={1,–2,3,4,-5,6,-7 },输出结果为:1 3 4 6
#include <stdio.h>
void f(int *a,int *m)
{ int i,j;
for(i=0;i<*m;i++)
if(a[i]<0) {
for(j=i--;j<*m-1;j++) a[j]=a[j+1];
______1______
}
}
void main()
{ int i,n=7,x[7]={1,-2,3,4,-5,6,-7};
______2______
for(i=0;i<n;i++) printf("%5d",x[i]);
printf("\n");
}
5、在考生文件夹的Paper子文件夹下已有Modify1.c文件。
该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充。(注意:不得加行、减行、加句、减句,否则后果自负)。
程序功能:输入整数n(n>0),求m使得2的m次方小于或等于n,2的m+1次方大于或等于n。
#include <stdio.h>
void main()
{ int m=0,t=1,n;
while(______1______);
while(!(t<=n && t*2>=n)){
______2______
m++;
}
printf("%d\n",m);
}
6、在考生文件夹的Paper子文件夹下已有Modify1.c文件。该文件中“/***** N ***** /”的下一行中有错误,请改正。
(注意:不得加行、减行、加句、减句,否则后果自负)。
程序功能:运行时输入10个数,然后分别输出其中的最大值、最小值。
#include <stdio.h>
void main()
{ float x,max,min; int i;
/******** 1 *******/
for(i=0;i<=10;i++) {
scanf("%f",&x);
/******* 2 ********/
if(i=1) { max=x;min=x;}
if(x>max) max=x;
if(x<min) min=x;
}
printf("%f,%f\n",max,min);
}
7、在考生文件夹的Paper子文件夹下已有Modify1.c文件。该文件中“/***** N ***** /”的下一行中有错误,请改正。
(注意:不得加行、减行、加句、减句,否则后果自负)。
程序功能:将两个字符串连接起来。
#include <stdio.h>
void main()
{
char s1[80],s2[40];
int i=0,j=0;
printf("\nInput the first string:");
scanf("%s",s1);
printf("\nInput the second string:");
scanf("%s",s2);
while (s1[i] !='\0')
/****** 1 ******/
i+1;
while (s2[j] !='\0')
/****** 2 ******/
s1[++i]=s2[++j]; /* 拼接字符到s1 */
s1[i] ='\0';
printf("\nNew string: %s",s1);
}
8、在考生文件夹的Paper子文件夹下已有Modify1.c文件。该文件中“/***** N ***** /”的下一行中有错误,请改正。
(注意:不得加行、减行、加句、减句,否则后果自负)。
程序功能:用递归法将一个六位整数n转换成字符串。(例如:输入123456,应输出字符串"123456")
#include<stdio.h>
void itoa(long i,char *s)
{
if(i==0)
return;
/****** 1 ******/
*s = '1'+i%10;
itoa(i/10,s-1);
}
void main()
{
long n;
char str[7]="";
scanf("%ld",&n);
/****** 2 ******/
itoa(n,str+6);
printf("%s",str);
}
9、在考生文件夹的Paper子文件夹下已有Modify1.c文件。该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充。(注意:不得加行、减行、加句、减句,否则后果自负)。
程序功能:该程序计算四位学生的平均成绩,保存在结构中,然后列表输出这些学生的信息。
#include <stdio.h>
struct STUDENT
{
char name[16];
int math;
int english;
int computer;
int average;
};
void GetAverage(struct STUDENT *pst) /* 计算平均成绩 */
{
int sum=0;
sum = ______1______
pst->average = sum/3;
}
void main()
{
int i;
struct STUDENT st[4]={{"Jessica",98,95,90},{"Mike",80,80,90},
{"Linda",87,76,70},{"Peter",90,100,99}};
for(i=0;i<4;i++)
{
GetAverage(______2______);
}
printf("Name\tMath\tEnglish\tCompu\tAverage\n");
for(i=0;i<4;i++)
{
printf("%s\t%d\t%d\t%d\t%d\n",st[i].name,st[i].math,st[i].english,
st[i].computer,st[i].average);
}
}
10、在考生文件夹的Paper子文件夹下已有Modify1.c文件。该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充。(注意:不得加行、减行、加句、减句,否则后果自负)。
程序功能:将输入的十进制正整数n通过函数Dec2Bin转换为二进制数,并将转换结果输出。
#include <stdio.h>
void Dec2Bin(int m)
{
int bin[32],j;
for(j=0;m!=0;j++)
{
bin[j]= ______1______;
m=m/2;
}
for(;j!=0;j--)
printf("%d",______2______);
}
void main()
{
int n;
scanf("%d",&n);
Dec2Bin(n);
}
11、在考生文件夹的Paper子文件夹下已有Modify1.c文件。该文件中“/***** N ***** /”的下一行中有错误,请改正。
(注意:不得加行、减行、加句、减句,否则后果自负)。
程序功能:输入n,再输入n个点的平面坐标,然后输出那些距离坐标原点不超过5的点的坐标值。
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
void main()
{
int i,n;
/***** 1 *****/
struct axy { float x,y; } a;
scanf("%d",&n);
a=(struct axy *) malloc(n*2*sizeof(float));
for(i=0;i<n;i++)
/***** 2 *****/
scanf("%f%f",a[i].x,a[i].y);
for(i=0;i<n;i++)
if(sqrt(a[i].x*a[i].x+a[i].y*a[i].y)<=5)
printf("%f,%f\n",a[i].x,a[i].y);
}
12、在考生文件夹的Paper子文件夹下已有Modify1.c文件。该文件中“/***** N ***** /”的下一行中有错误,请改正。
(注意:不得加行、减行、加句、减句,否则后果自负)。
程序功能:用选择法对10个整数按升序排序。
#include <stdio.h>
#define N 10
void main()
{
int i,j,min,temp;
int a[N]={5,4,3,2,1,9,8,7,6,0};
printf("\nThe array is:\n"); /* 输出数组元素 */
for (i=0;i<N;i++)
printf("%5d",a[i]);
for (i=0;i<N-1;i++) /* 排序操作 */
{
min = i;
for (j=i+1; j<N; j++)
/****** 1 ******/
if (a[min]<=a[j]) min =j;
/****** 2 ******/
temp=a[min]; a[min]=a[j]; a[j]=temp; /* 数据交换 */
}
printf("\nThe sorted numbers: \n"); /* 输出排序结果 */
for (i=0;i<N;i++)
printf("%5d",a[i]);
printf("\n");
}
13、在考生文件夹的Paper子文件夹下已有Modify1.c文件。该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充。(注意:不得加行、减行、加句、减句,否则后果自负)。
程序功能:输出6~1000之间的完数(1个数的因子和等于其自身的数:6=1+2+3、 28=1+2+4+7+14,则6、28都是完数)。
#include <stdio.h>
void main()
{ int i,j,s;
for(i=6;i<=1000;i++) {
______1______
for(j=2; ______2______;j++) if(i%j==0) s+=j;
if(s==i) printf("%d\n",s);
}
}
展开阅读全文