程序改错填空设计题库

程序改错填空设计题库
程序改错填空设计题库

目录

目录 1

改错题 1

填空题10

编程题18

按住Ctrl键,点击某目录项,当前页面自动跳转至该目录项所在的页码

改错题

改错题答题要求:

程序中有两处错误,错误都在提示行:/***********found***********/的下面一行,请考生注意。请改正程序中的错误,使它能得出正确的结果。

注意:程序中的其它地方请考生不要随意改动,不得增行或删行,也不得更改程序的结构!(注:红色的为已改过的)

1、从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。

例如,当s中的数为:7654321时,t中的数为:7531。

源文件:

#include

#include

main()

{ long s, t, sl=10;

printf("\nPlease enter s:");

scanf("%ld", &s);

/************found************/

t = s %10;

while ( s > 0)

{ s = s/100;

t = s%10 * sl + t;

/************found************/

sl = sl*10;

}

printf("The result is: %ld\n", t);

}

2、先将在字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串的后面。例如:当s中的字符串为:"ABCDE"时,则t中的字符串应为:"ABCDEEDCBA"。

源文件:

#include

#include

#include

main()

{ char s[80],t[80];

int i, sl;

printf("\nPlease enter string s:");

scanf("%s", s);

sl = strlen(s);

/************found************/

for( i=0; i

t[i] = s[i];

for (i=0; i

t[sl+i] = s[sl-i-1];

/************found************/

t[sl+i] = '\0';

printf("The result is: %s\n", t);

}

3、求两实数平方根之和,输出此和。例如:输入12和20,输出结果是:y = 7.936238。源文件:

#include

#include

main( )

{

/************found************/

double a, b, y;

printf ( "Enter a & b : ");

scanf ("%lf%lf", &a, &b );

/************found************/

y = sqrt(a)+sqrt(b) ;

printf ("y = %f \n", y );

}

4、求出a所指数组中最大数和次最大数(规定最大数和次最大数不在a[0]和a[1]中),依次和a[0]、a[1]中的数对调。例如:

数组中原有的数为:7、10、12、0、3、6、9、11、5、8

输出的结果为:12、11、7、0、3、6、9、10、5、8

源文件:

#include

#include

#define N 20

main( )

{ int a[N]={7,10,12,0,3,6,9,11,5,8}, n=10, i, k,m1,m2,max1,max2,t;

for ( i = 0; i

max1=max2= -32768; m1=m2=0;

for ( k = 0; k < n; k++ )

if ( a[k]>max1 )

{ max2 = max1; m2 = m1;

max1 = a[k]; m1 = k;

}

else if( a[k]>max2 )

{ max2 = a[k]; m2 = k; }

/************found************/

t = a[m1]; a[m1]=a[0]; a[0] = t;

/************found************/

t = a[m2]; a[m2]=a[1]; a[1] = t;

for ( i=0; i

}

5、将n个无序整数从小到大排序。

源文件:

#include

#include

#include

main()

{ int a[20]={9,3,0,4,1,2,5,6,8,10,7}, n=11;

int i, j, p, t;

printf( "\n\nBefore sorting %d numbers:\n", n );

j = 0;

for ( i = 1; i <= n; i++, j++ )

{ printf( "%4d", a[j] );

if ( !( i%10 ) ) printf( "\n" );

} printf("\n");

for ( j = 0; j

{ p = j;

/************found************/

for ( i=j+1; i<=n-1 ; i++ )

if ( a[p]>a[i] )

/************found************/

p=i;

if ( p!=j )

{ t = a[j]; a[j] = a[p]; a[p] = t; }

}

printf( "\nAfter sorting %d numbers:\n", n );

j = 0;

for ( i = 1; i <= n; i++, j++ )

{ printf( "%4d", a[j] );

if ( !( i%10 ) ) printf( "\n" );

} printf("\n");

}

6、输出200~300之间的所有素数,要求每行输出8个素数。源文件:

#include

#include

#include

main()

{ int m,j,n=0,k;

for(m=200;m<=300;m++)

{ k=sqrt(m);

for(j=2;j<=k;j++)

/************found************/

if(m%j==0) break;

if(j>k)

{ if(n%8==0) printf("\n");

/************found************/

printf("%6d",m);

n++;

}

}

}

7、打印一个如下的九九乘法表的一部分:

1 * 1 = 1

2 * 1 = 2 2 * 2 = 4

3 * 1 = 3 3 * 2 = 6 3 * 3 = 9

4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16

源文件:

#include

#include

#include

#include

main()

{ int i,j,k;

for(i=1;i<=4;i++)

/************found************/

{ for(j=1;j<=i;j++)

printf("%3d *%3d =%3d",i,j,i*j);

/************found************/

printf("\n");

}

}

8、学习优良奖的条件如下:所考5门课的总成绩在450分(含)以上;或者每门课都在88分(含)以上。输入某学生5门课的考试成绩,输出是否够学习优良奖的条件。

源文件:

#include

#include

#include

main()

{ int score,sum=0;

int i,n=0;

for(i=1;i<=5;i++)

{ scanf("%d",&score);

sum+=score;

/************found************/

If (score>=88) n++;

}

/************found************/

if(sum>=450||n==5)

printf("The student is very good!\n");

else

printf("The student is not very good!\n");

}

9、输出100~200之间既不能被3整除也不能被7整除的整数并统计这些整数的个数,要求每行输出8个数。

源文件:

#include

#include

#include

#include

main()

{ int i;

/************found************/

int n=0;

for(i=100;i<=200;i++)

{

/************found************/

if(i%3!=0&&i%7!=0)

{ if(n%8==0) printf("\n");

printf("%6d",i);

n++;

}

}

printf("\nNumbers are: %d\n",n);

}

10、打印输出以下图形

*

***

*****

*******

*********

源文件:

#include

#include

#include

#include

main()

{ int i,j;

for(i=1;i<=5;i++)

/************found************/

{ printf("\n");

for(j=1;j<=10-i;j++)

printf(" ");

/************found************/

for(j=1;j<=2*i-1;j++)

printf("*");

}

printf("\n");

}

11、打印输出以下图形(图中每两个“*”之间有一个空格)。

*

* * *

* * * * *

* * * * * * *

* * * * * * * * *

源文件:

#include

#include

#include

#include

main()

{ int i,j,k;

/************found************/

for(i=1;i<=5;i++)

{

for(j=1;j<=10-2*i;j++)

printf(" ");

for(j=1;j<=2*i-1;j++)

printf("* ");

/************found************/

printf("*");

}

}

12、求∑n!(n=20)(即求:1!+2!+3!+ ……+ 20!)

源文件:

#include

#include

#include

#include

main()

/*************found**************/

float s,t;

int n;

s=0;t=1;

/*************found**************/

for(n=0;n<20;n++)

{ t=t*(n+1);

s=s+t;

}

printf("1!+2!+3!+ … +20!=%e\n",s);

}

13、输入一个百分制成绩,打印出五级记分成绩。考试成绩在90分或90分以上为优秀,80~89分为良好,70~79为中等,60~69为及格,低于60分为不及格。

源文件:

#include

#include

#include

#include

main()

{ int score,t;

printf("Please enter a score:");

do

scanf("%d",&score);

while(score<0||score>100);

t=score/10;

/*************found**************/

switch(t)

{ case 10:

case 9:printf("Excellent!\n");break;

case 8:printf("Good!\n");break;

case 7:printf("Middle!\n");break;

case 6:printf("Pass!\n");break;

/*************found**************/

default :printf("Fail!\n");

}

}

14、求一维数组a中的最大元素及其下标。例如,当一维数组a中的元素为:34,4,2,7,3,12,5,8,5,9,程序的输出应为:The max is: 34,pos is: 0 。

源文件:

#include

#include

int max;

maxarr(int arr[ ])

{ int pos,i;

/************found************/

max = arr[0];

pos = 0;

for ( i=1; i<10; i++)

/************found************/

if (max < arr[i])

{

max = arr[i];

pos = i;

}

return (pos);

}

main()

{ int a[10]={34,4,2,7,3,12,5,8,5,9};

printf("The max is: %d ,pos is: %d\n", max , maxarr(a));

}

15、求二维数组a中的最大值和最小值。

例如,当二维数组a中的元素为:

4 4 34

37 3 12

5 6 5

程序的输出应为:The max is: 37

The min is: 3 。

源文件:

#include

#include

main()

{ int a[3][3]={4,4,34,37,3,12,5,6,5},i,j,max,min;

max = min = a[0][0];

for ( i=0; i<3; i++)

/************found************/

for ( j=0; j<3; j++)

{ if ( max < a[i][j] )

max = a[i][j];

/************found************/

if (min > a[i][j])

min = a[i][j];

}

printf("The max is: %d\n", max);

printf("The min is: %d\n", min);

}

16、求一维数组a中值为奇数的元素之和。

例如,当一维数组a中的元素为:11,4,2,7,3,12,5,34,5,9

程序的输出应为:The result is: 40。

源文件:

#include

#include

main()

{ int arr[10]={11,4,2,7,3,12,5,34,5,9},i;

/************found************/

int s=0;

for ( i=0; i<10; i++)

/************found************/

if (arr[i] % 2 == 1)

s = s + arr[i];

printf("The result is: %d\n", s);

}

17、将[m,n]之间的所有素数存放到一维数组a中,并输出这些素数。例如,如果m=2,n=20,程序的输出应为:

2 3 5 7 11 13 17 19

源文件:

#include

#include

#include

prime (int m)

{ int j,k;

k=sqrt(m);

for ( j=2; j<=k; j++)

if (m % j == 0) return (0);

return (1);

}

main()

{ int a[100],i,c=0,m,n;

printf("Enter m,n(m

scanf("%d%d",&m,&n);

/************found************/

for (i=m; i<=n; i++)

/************found************/

if(prime(i)==1)

{ a[c]=i;

printf("%4d",a[c]);

++c;

}

}

18、求一维数组a中所有元素的平均值。

例如,当二维数组a中的元素为:10,4,2,7,3,12,5,34,5,9,6,8 ,

程序的输出应为:The everage is: 8.75 。

源文件:

#include

#include

float average(int a[],int n)

/************found************/

{

int j; float aver;

/************found************/

float s=0;

for ( j=0; j

s += a[j];

aver = s / n;

return (aver);

}

main()

{ int a[12]={10,4,2,7,3,12,5,34,5,9,6,8};

printf("Theaverageis:%.2f\n",average(a,12));

}

填空题

填空题答题要求:

程序有两个空(1)、(2)需要补充完整,程序中下划线和(1)(2)需删除掉,并将程序调试出所需的结果。

注意:不要随意改动程序,不得增行或删行,也不得更改程序的结构!

1、计算正整数num的各位上的数字之和。

例如,若输入:252,则输出应该是:9。

若输入:202,则输出应该是:4。

源文件:

#include

#include

main( )

{

int num,k;

/************found************/

k=0;

printf("\Please enter a number:") ;

scanf("%d",&num) ;

do

{

/************found************/

k=k+num%10;

num/=10;

} while(num) ;

printf("\n%d\n",k) ;

}

2、从键盘上输入一个数字组成的字符串(字符串长度小于8),将该字符串转换成一个十进制数。例如:从键盘上输入2345,则程序运行的结果应当为:n=2345。

源文件:

#include "stdio.h"

main()

{ char s[10]; int i;

long int n=0;

/**************found************/

scanf("%s",s);

/**************found************/

for(i=0;s[i]!=0;i++)

n=n*10+s[i]-'0';

printf("n=%ld\n",n);

}

3、输出Fabonacci数列:1,1,2,3,5,8,……的前20项的项值,要求每行输出5个数。请填空。

源文件:

#include "stdio.h"

main()

{ long int f[20]={1,1};

int i;

/**************found************/

printf("%8ld%8ld",f[0],f[1]);

for(i=2;i<20;i++)

{

f[i]=f[i-1]+f[i-2];

/**************found************/

if(i%5==0) printf("\n");

printf("%8ld",f[i]);

}

printf("\n");

}

4、将无符号八进制数字构成的字符串转换为十进制整数。例如,输入的字符串为:556,则输出十进制整数366。

源文件:

#include

main()

{ char s[6]; int n=0,j=0;

/************found************/

scanf("%s",s);

/************found************/

while(s[j]!=0)

{ n=n*8+s[j]-'0';

j++; }

printf("%d\n",n);

}

5、计算1到100之间的奇数之和及偶数之和。请填空。

源文件:

#include

main()

{ int a,b,c,i;

/**************found************/

a=c=0;

for(i=0;i<=100;i+=2)

{ a+=i;

/**************found************/

b=i+1;

c+=b; }

printf("sum of evens is %d\n",a);

printf("sum of odds is %d\n",c-101);

}

6、计算正整数num的各位上的数字之和。

例如:若输入:252,则输出应该是:9。

若输入:202,则输出应该是:4。

源文件:

#include

#include

main( )

{ int k,num;

/************found************/

k=0;

printf("\Please enter a number:") ;

scanf("%d",&num) ;

do

{ k+=num%10 ;

/************found************/

num/=10;

} while(num) ;

printf("\n%d\n",k) ;

}

7、实现在N行M列的二维数组中,找出每一行上的最大值,且原数组值不变。

例如:如果二维数组元素的值为:

1 5 7 4

2 6 4 3

8 2 3 1

时,程序的运行结果应为:

The max value in line 0 is 7

The max value in line 1 is 6

The max value in line 2 is 8

源文件:

#include "stdio.h"

#define M 4

#define N 3

main()

{ int i,j,p,x[N][M]={1,5,7,4,2,6,4,3,8,2,3,1};

/************found************/

for(i=0;i

{ p=0;

for(j=0;j

if(x[i][p]

/************found************/

x[i][p]=x[i][j];

printf("The max value in line %d is %d\n",i,x[i][p]);

}

}

8、计算正整数num的各位上的数字之积。

例如,若输入:252,则输出应该是:20。

若输入:202,则输出应该是:0。

源文件:

#include

#include

main( )

{long int num,k;

/************found************/

k=1;

printf("\Please enter a number:") ;

scanf("%ld",&num) ;

do

{ k*=num%10 ;

/************found************/

num/=10;

} while(num) ;

printf("\n%ld\n",k) ;

}

9、把数组a(大小为100)中前n个元素中的最大值放入a的最后一个元素中,n的值由键盘输入。

源文件:

#include

main()

{ int a[100],i,n;

/************found************/

scanf("%d",&n);

for(i=0;i

scanf("%d",&a[i]);

a[99]=a[0];

for(i=1;i

if(a[99]

a[99]=a[i];

/************found************/

printf("Max is %d\n",a[99]);

}

10、从键盘上输入若干个整数,并将这些整数存放在数组x中,统计计算出平均成绩,当输入负数时结束。

例如,如果从键盘上输入:1 2 3 4 -8,则程序的输出应为:Output :

ave=2.50

源文件:

#include

main()

{float x[1000],sum=0.0,ave,a;

int n=0,i;

printf("Enter mark:\n");

scanf("%f",&a);

while(a>=0.0 && n<1000)

{

/************found************/

sum+=a;

x[n]=a;

n++;

scanf("%f",&a);

}

/************found************/

ave=sum/n;

printf("Output :\n");

printf("ave=%.2f\n",ave);

}

11、查找n在数组a中最后一次出现的位置。

例如:如果a数组中的元素为:1,5,2,5,6,8,7,4,3,0,

当n=5时,程序的输出结果为:5 is No.3 。

当n=10时,程序的输出结果应为:10 not found !。

源文件:

#include

main( )

{ int a[10]={1,5,2,5,6,8,7,4,3,0};

int i,k,n,f=0;

scanf("%d",&n);

for(i=0;i<10;i++)

/************found************/

if(a[i]==n)

{ f=1;

/************found************/

k=i;

}

if(f)

printf("%d is No. %d\n", n,k);

else

printf(" %d not found !\n",n);

}

12、统计两个正整数[m,n]之间所有不能被3整除但能被7整除的整数的个数。例如:m=1,n=1000,则程序的输出结果应为:The result is : 95。

源文件:

#include

#include

#include

main()

{int m,n,i,t,s=0;

scanf("%d,%d",&m,&n);

if( m>n )

{ t=m; m=n; n=t;}

/************found************/

for (i=m;i<=n;i++)

/************found************/

if ( i%3!=0&&i%7==0)

++s;

printf("The result is :%d\n",s );

}

13、从键盘上输入两个正整数x,y,求它们的最大公约数。

例如:如果从键盘上输入24,36,程序的输出应为:max is : 12。

源文件:

#include

#include

#include

main()

{ int x,y,t,i;

printf("Please enter two numbers:");

scanf("%d,%d",&x,&y);

if(x < y)

{t = x; x = y; y = t;}

t = x % y;

while( t )

{ x = y;

/************found************/

y=t ;

t = x % y;

}

/************found************/

printf("max is : %d",y);

}

14、求两个正整数x,y的最小公倍数。

例如:如果x=24,y=36,程序的输出应为:min is : 72。源文件:

#include

#include

#include

main()

{ int x=24,y=36,t,i;

if(x > y)

{t = x; x = y; y = t;}

/************found************/

for ( i=y; ;i++)

{

if(i%x==0 && i%y==0 )

break;

}

/************found************/

printf("min is : %d",i);

}

15、求两个正整数x,y的最大公约数和最小公倍数。例如:如果x=24,y=36,程序的输出应为:

max is : 12

min is : 72 。

源文件:

#include

#include

#include

main()

{ int x=24,y=36,t,max,min,i,n1,n2;

if(x > y)

{t = x; x = y; y = t;}

n1=x; n2=y;

t = n2 % n1;

/************found************/

while(t )

{

n2 = n1 ;

n1 = t ;

t = n2 % n1;

}

/************found************/

max = n1 ;

min = x * y / max ;

printf("max is : %d\n",max);

printf("min is : %d\n",min);

}

16、从键盘上输入一个正整数n,计算并输出n的阶乘。例如,如果从键盘上输入8,

程序的运行结果应为:The result is: 40320。

源文件:

#include

#include

#include

long fac( int n )

{ int i;

long t=1;

for( i=2;i<=n;i++)

t = t*i;

return (t);

}

main()

{ int n;

long int s;

printf("Enter an integer number:");

/************found************/

scanf("%d",&n);

s = fac(n);

/************found************/

printf("The result is : %ld\n",s);

}

编程题

编程题要求:

注意: 部分源程序存在文件PROG1.C中。

请在/*******begin********/ 与/********end*********/

之间填入你编写的若干语句。请勿改动其它位置的任何内容。main()函数中的最后一行以及main()函数后面的内容,考生不必阅读,但千万不要对这些内容作任何改动。

1、将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。例如,当a=45,b=12。调用该函数后,c=4152。

源文件:

#include

#include

long fun(int a, int b)

{ long c;

/***********begin***********/

int i,j,m,n;

i=a%10;j=a/10;m=b%10;n=b/10;

c=j*1000+n*100+i*10+m;

/***********end************/

return c;

}

main()

{ int a,b; long c;

printf("Input a, b:"); scanf("%d,%d", &a, &b);

c = fun(a, b);

printf("The result is: %ld\n", c);

NONO();

}

NONO ( )

{

FILE *rf, *wf ;

int i, a,b ; long c ;

rf = fopen("in1.dat", "r") ;

wf = fopen("out1.dat","w") ;

for(i = 0 ; i < 10 ; i++)

{ fscanf(rf, "%d,%d", &a, &b) ;

c = fun(a, b) ;

fprintf(wf, "a=%d,b=%d,c=%ld\n", a, b, c) ;

}

fclose(rf) ;

fclose(wf) ;

}

2、按下面的公式求sum的值。sum = 1 - 2 + 3 - 4 + 5 - 6 + ……+ 99 - 100 源文件:

#include "stdio.h"

#include "math.h"

#include "conio.h"

#include "stdlib.h"

main()

{ int sum;

/***********begin***********/

int i,b;sum=0;

for(i=1;i<=100;i+=2)

{b=-1*(i+1);

sum+=i+b;}

/************end************/

printf("sum=%d\n",sum);

NONO(sum);

NONO( int x)

{ FILE *f;

f=fopen("out1.dat","w");

fprintf(f,"sum=%d\n",x);

fclose(f);

}

3、按下面的公式求sum的值。

1 1 1 1

sum = 1 + —— + —— + ——+ …… + ——

2 3 4 100

源文件:

#include "stdio.h"

#include "math.h"

#include "conio.h"

#include "stdlib.h"

main()

{ double sum;

/***********begin***********/

int i;float t;sum=1;

for(i=2;i<=100;i++)

{t=1.0/i;

sum=sum+t;}

/************end************/

printf("sum=%.3f\n",sum);

NONO(sum);

}

NONO( double x)

{ FILE *f;

f=fopen("out1.dat","w");

fprintf(f,"sum=%.3f\n",x);

fclose(f);

}

4、求指定字符在字符串中出现的次数并输出。

例如,当字符串为"This Is a c Program",指定字符为'a'时则应输出:Result is: 2

源文件:

#include

#include

int fun(char str1[],char ch)

程序设计基础试题库

练习题一Visual FoxPro 基础 、选择题 1. 关系数据库管理系统应能实现的专门关系运算包括___c __________ A 显示、打印、制表B关联、更新、排序 C 选择、投影、连接D排序、索引、统计 2. 关系是指__b__。 A 属性的集合B元组的集合 C 实例的集合 D 字段的集合 3. 如果把学生看成实体,某个学生的姓名叫“杨波”,则“杨波”应看成是___b ______ 。 A)属性型B )属性值C )记录型D )记录值 4. 关系数据库系统中所使用的数据结构是 _______ d ___ 。 A)图B )树C )表格D )二维表 5. 对表进行水平方向的分割用的运算是 _______ b ___ 。 A)交B )选择C )投影D )连接 6. 下列数据库技术的术语与关系模型的术语的对应关系中_______ d _____ 是正确的。 A)实例与关系 B )字段与元组C )记录与属性 D )记录类型与关系模式 7. 下列关于数据库系统的叙述中,正确的是 _____ c _____ 。 A)数据库系统中数据的一致性是指数据类型一致 B)数据库系统只是比文件系统管理的数据更多 C)数据库系统减少了数据冗余 D数据库系统避免了数据冗余 8. 关系数据模型 ______ d ___ 。 A)只能表示实体间的1:1联系 B)只能表示实体间的1:n C只能表示实体间的m:n D 可以表示实体间的上述三种联系 9. 在一个关系中如果有这样一个属性存在,它的值能惟一地标识关系中的每一个元组,称

这个属性为 _____ a____ 。 A)关键字B )主属性C )数据项D )主属性值 10. 关系数据库管理系统中的元组是______ b ____ 。 A)关系中的垂直方向的列 B )关系中的水平方向的行 C属性或属性的组合 D )以上的答案均不正确 11. 从数据库的整体结构看,数据库系统采用的数据模型有_________ a __ 。 A)层次模型、网状模型和关系模型 B)层次模型、网状模型和环状模型 C)网状模型、链状模型和层次模型 D链状模型、关系模型和层次模型 12. 设有属性A B、C D以下表示中不是关系的是___________ d__。 A)R( A) B )R( A, B)C )R (A, B, C, D) D )R (A X B X C X D) 13. 若实体间联系是M N的,则将联系类型_________ a___ 。 A)也转换为关系模型 B)属性加入任一个关系模式中 C)属性加入N端实体类型相应的关系模式中 D)属性加入M端实体类型相应的关系模式中 14. 数据库系统的构成为数据库、计算机硬件系统、用户和________ a ____ 。 A 数据库管理系统 B 操作系统 C 数据集合 D 文件系统 15. 层次型、网状型和关系型数据库划分原则是________ c ___ 。 A 文件大小 B 记录长度 C 数据之间的联系 D 联系的复杂程度 16. 在数据库设计中用关系模型来表示实体和实体之间的联系,关系模型的结构是 _____ d ___ 。 A 封装结构 B 层次结构 C 网状结构 D 二维表结构 17. 在关系模型中,实现“关系中不允许出现相同的元组”的约束是通过__a ________ 。 A 主键 B 超键 C 外键 D 候选键 18. 层次模型不能直接表示 ______ b __ 关系。 A 1:1 B m:n C 1:m D 1:1 和1:m 19. DBAS旨的是_____ d____ 。

C语言程序改错及填空题

下列程序是建立一个包含学生有关数据的单向链表。但该程序有2个错误,错误出现在每个注释行附近,请调试改正。调试改正中,不得改变程序结构,也不得增删语句。 #define NULL 0 struct stud { long num; char name[10]; float score; struct stud *next; }; /* …………… comment …………… */ int n; struct stud create() 序中有两处错误代码,请改正.注意,不得改变程序结构。 #include <> main() { int a[8],*p=a; int i,j; int tempmin,tempcode; printf("\n input the numbers:\n"); for (i=0;i<8;i++) scanf("%d",p+i);

tempmin=*p; for (i=0;i<7;i++) { for (j=i;j<8;j++) if (j==i||*(p+j)

程序设计基础试题和答案解析二

《程序设计基础》考试试卷二 1.1966年,Bohra和Jacopini提出的三种基本程序设计结构是:________ A.if、while和for; B. switch、do-while和for; C.while、do-while和for; D.顺序结构、分支结构和循环结构。 2.算法的特征不包括:______。 A.有穷性 B.可行性 C.确定性 D.有1个或者多个输入。 3.C语言源程序的基本组成单位是______。 A.函数 B. 语句 C. 声明和语句 D. 文件 4.下列标识符中,只有______是合法的。 A.if B. 3ab C. Int D. A-4 5.下列常量中,只有______是合法的。 A.3e-0.3 B. ‘abc’ C. 02a1 D. ‘\377’ 6.下列说法中正确的是:______。 A.C语言中的for语句的三个表达式都可以省略,而且分号也可以省略。 B.宏替换比函数调用的执行速度慢。 C.实质上,C语言中的指针就是一个变量的地址。 D.C语言中的任何函数都可以由程序员命名。 7.C语言中,运算对象必须是整型的运算符是_______。 A./ B. % C. + D. - 8.以下叙述中错误的是_______。 A.C语句必须以分号结束 B.复合语句在语法上被看作一条语句 C.空语句出现在任何位置都不会影响程序运行 D.赋值表达式末尾加分号就构成赋值语句 9.以下叙述中正确的是_______。 A.调用printf函数时,必须要有输出项 B.使用putchar函数时,必须在之前包含头文件stdio.h C.在C语言中,整数可以以十二进制、八进制或十六进制的形式输出 D.调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码10.以下关于函数的叙述中正确的是_______。 A.每个函数都可以被其它函数调用(包括main函数) B.每个函数都可以被单独编译 C.每个函数都可以单独运行 D.在一个函数内部可以定义另一个函数 11.有以下程序段typedef struct NODE{ int num; struct NODE *next;

程序设计基础练习题(全答案版)

《程序设计基础——C#.NET》练习 参考答案: 一、选择题 https://www.360docs.net/doc/4313193309.html,的目的就是将____A____作为新一代操作系统的基础,对互联网的设计思想进行扩展。A.互联网 B. Windows C. C# D. 网络操作系统 2.假设变量x的值为10,要输出x值,下列正确的语句是__C__。 A.System.Console.writeline(“x”) B. System.Cosole.WriteLine(“x”) C. System.Console.WriteLine(“x={0}”,x) D. System.Console.WriteLine(“x={x}”) 3.要退出应用程序的执行,应执行下列的_A___语句。 A. Application.Exit(); B. Application.Exit; C. Application.Close(); D. Application.Close; 4.关于C#程序的书写,下列不正确的说法是__D________。 A.区分大小写 B.一行可以写多条语句 C.一条语句可以写成多行 D.一个类中只能有一个Main()方法,因此多个类中可以有多个Main()方法 5. 在C#语言中,下列能够作为变量名的是__C__。 A.if B. 3ab C. b_3a D. a-bc 7. 能正确表示逻辑关系“a≥5或a≤0”的C#语言表达方式是__D__。 A.a>=5 or a<=0 B. a>=5|a<=0 C. a>=5&&a<=0 D. a>=5||a<=0 8. 以下程序的输出结果是___C_____。 A. 5 B. 4 C. 6 D. 不确定 9. If语句后面的表达式应该是__A___。 A.逻辑表达式 B. 条件表达式 C. 算术表达式 D. 任意表达式10.有如下程序:

计算机程序设计基础习题册(含答案)

《计算机程序设计基础》 习 题 册

班级学号姓名成绩一、单选题 1.C++源程序文件的默认扩展名为A。 A) cpp B) exe C) obj D) lik 2.由C++源程序文件编译而成的目标文件的默认扩展名为C。 A) cpp B) exe C) obj D) lik 3.由C++目标文件连接而成的可执行文件的默认扩展名为B。 A) cpp B) exe C) obj D) lik 4.编写C++程序一般需经过的几个步骤依次是B。 A)编译、编辑、连接、调试 B)编辑、编译、连接、调试 C)编译、调试、编辑、连接 D)编辑、调试、编辑、连接 5.程序中主函数的名字为 A 。 A) main B) MAIN C) Main D) 任意标识符 6.下面四个选项中,均是不合法的用户标识符的选项的是C。 A) A p_o do B)float lao _A C)b-a goto int D)_123 temp INT 7.下列变量名中合法的是C。 A) B)C)Tom B) 3a66 C) _6a7b D) $ABC 8.存储以下数据,占用存储字节最多的是 D 。 A) 0 B) ‘0’ C) “0” D) 0.0 9.在C++语言中,字符型数据在内存中的存储形式是D。 A) 补码 B) 反码 C) 原码 D) ASCII码 10.若有说明语句:char c =’\072’;则变量c A。 A) 包含1个字符 B) 包含2个字符 C) 包含3个字符 D) 说明不合法,变量的值不确定 二、填空题 1.C++头文件和源程序文件的扩展名分别为.h和.cpp 。 2.C++语言规定,标识符只能由字母、数字、下划线三种字符组成,而且第一个字符必须是字母或下划线。 3.一条表达式语句必须以__分号_;___作为结束符。 4.用于从键盘上为变量输入值的标准输入流对象是___cin____;用于输出表达式值的标准输出流对象是__cout____。 5.在一个C++程序文件中,若要包含另外一个头文件或程序文件,则应使用以_#include___标识符开始的预处理命令

C语言程序改错题

第12次上机程序改错第1题 【程序改错】 -------------------------------------------------------- 功能:求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积。 例如:输入圆的半径值:19.527 输出为:s = 598.950017。 ------------------------------------------------------*/ #include #include /**********FOUND**********/ double fun( r) double fun(double r) { double s; /**********FOUND**********/ s=1/2*3.14159* r * r; s=1.0/2*3.14159*r*r; /**********FOUND**********/ return r; return s; } main() { float x;

printf ( "Enter x: "); scanf ( "%f", &x ); printf (" s = %f\n ", fun ( x ) ); } 第2题【程序改错】 功能:先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。 例如:当s中的字符串为:“ABCDE”时,则t中的字符串应为:“EDCBAABCDE”。 ------------------------------------------------------*/ #include #include #include void fun (char *s, char *t) { /**********FOUND**********/ int i; int sl,i; sl = strlen(s); for (i=0; i

计算机程序设计基础习题册含答案

《计算机程序设计基础》 计算机程序设 计基础_基础知识(一) 班级 学号 姓名 成 绩 一、 单选题 习题册

1.C++源程序文件的默认扩展名为A。 2.A) cpp B) exe C) obj D) lik 3.由C++源程序文件编译而成的目标文件的默认扩展名为C。 4.A) cpp B) exe C) obj D) lik 5.由C++目标文件连接而成的可执行文件的默认扩展名为B。 6.A) cpp B) exe C) obj D) lik 7.编写C++程序一般需经过的几个步骤依次是B。 8.A)编译、编辑、连接、调试 B)编辑、编译、连接、调试 C)编译、调试、编辑、连接 D)编辑、调试、编辑、连接9.程序中主函数的名字为 A 。 10.A) main B) MAIN C) Main D) 任意标识 符 11.下面四个选项中,均是不合法的 用户标识符的选项的是 C。 12.A) A p_o do B)float lao _A C)b-a goto int D)_123 temp INT 13.下列变量名中合法的是 C。 14.A) B)C)Tom B) 3a66 C) _6a7b D) $ABC 15.存储以下数据,占用存储字节最 多的是 D 。 16.A) 0 B) ‘0’

C) “0” D) 17.在C++语言中,字符型数据在内存中的存储形式是D。 18.A) 补码 B) 反码 C) 原码 D) ASCII码 19.若有说明语句:char c =’\072’;则变量c A。 20.A) 包含1个字符 B) 包含2个字符 C) 包含3个字符 D) 说明不合法,变量的值不确定 二、填空题 1.C++头文件和源程序文件的扩展名分别为.h和.cpp 。 2.C++语言规定,标识符只能由字母、数字、下划线三种字符组成,而且第一个字符必须是字母或下划线。 3.一条表达式语句必须以__分号_;___作为结束符。 4.用于从键盘上为变量输入值的标准输入流对象是___cin____;用于输出表达式值的标准输出流对象是__cout____。 5.在一个C++程序文件中,若要包含另外一个头文件或程序文件,则应使用以_#include___标识符开始的预处理命令 计算机程序设计基础_基础知识(二) 班级学号姓名成绩 一、单选题 1.下列哪一个是C++语言中合法的变量 C A) 8ZSe B) ±A0 C) X0_2 D) ’x0’2.已知ch是字符型变量,下面不正确的赋值语句是A 3.A) ch='a+b' B) ch='\0'

程序改错完整版---C语言

(一)功能:用选择法对数组中的n个元素按从小到大的顺序进行排序。#include "stdio.h" #define N 20 void fun(int a[], int n) { int i, j, t, k; for (j = 0 ;j < n-1 ;j++) { /**********ERROR**********/ k = j for (i = j+1;i < n; i++) /**********ERROR**********/ if(a[i] >a[k]) /**********ERROR**********/ k=j; t = a[k] ; a[k] = a[j] ; a[j] = t; } } main() { int a[N]={9,6,8,3,-1},i, m = 5; printf("排序前的数据:") ; for(i = 0;i < m;i++) printf("%d ",a[i]); printf("\n"); fun(a,m); printf("排序后的数据:") ; for(i = 0;i < m;i++) printf("%d ",a[i]); printf("\n"); } 【参考答案】 k = j; 【参考答案】 if(a[i] < a[k]) if(a[k] > a[i])

【参考答案】 k = i; (二)功能:求广义菲玻那契级数的第n项。广义菲玻那契级数的前n 项为: 1,1,1,3,5,9,17,31,…… 项值通过函数值返回 main ( )函数。 例如:若 n = 15,则应输出:The value is: 2209。 #include "conio.h" #include "stdio.h" long fun ( int n ) { long a=1, b=1, c=1, d=1, k; /**********ERROR**********/ for (k=4; k

程序设计基础试题(附答案)

程序设计基础复习题 一、单选 1、一个完整的计算机系统应该包括() A、系统软件和应用软件 B、计算机及其外部设备 C、硬件系统和软件系统 D、系统硬件和系统软件 2、“裸机”的概念是指() A、正在进行设计还没有组装好的计算机 B、已经组装好但还没有安装任何软件的计算机 C、仅安装了操作系统的计算机系统 D、安装了文字处理软件但没有安装专用数据处理系统的计算机 3、世界上第一台电子数字计算机研制成功的时间是() A、1936年 B、1946年 C、1956年 D、1970年 4、CASE的含义是() A、计算机辅助设计 B、计算机辅助制造 C、计算机辅助教学 D、计算机辅助软件工程5、当前广泛使用的微型计算机是() A、第一代 B、第二代 C、第三代 D、第四代 6、当代计算机的体系结构称为是() A、冯·诺依曼机 B、非冯·诺依曼机 C、图灵机 D、比尔盖茨机 7、硬盘是() A、输入设备 B、输出设备 C、存储设备 D、计算设备 8、下面4句话中,最准确的表述是() A、程序=算法+数据结构 B、程序是使用编程语言实现算法 C、程序的开发方法决定算法设计 D、算法是程序设计中最关键的因素

9、计算机能直接执行的语言是() A、机器语言 B、汇编语言 C、高级语言 D、目标语言 10、解释程序的功能是() A、将高级语言程序转换为目标程序 B、将汇编语言程序转换为目标程序 C、解释执行高级语言程序 D、解释执行汇编语言程序 11、下面4种程序设计语言中,不是面向对象式语言的是() A、JAVA B、Object Pascal C、Delphi D、C 12、不是C语言的基本数据类型是() A、int B、double C、char D、bool 13、在C语言中,为了求两个整数相除之后得到的余数,可以使用运算符() A、/ B、% C、* D、++ 14、数据的逻辑结构分为() A、纯属结构和非线性结构 B、顺序结构和非顺序结构 C、树型结构和图型结构 D、链式结构和顺序结构 15、用链表表示纯属表的优点是() A、便于随机存取 B、便于插入和删除操作 C、花费的存储空间较顺序存储少 D、元素的物理顺序与逻辑顺序相同 16、栈的最主要特点是() A、先进先出 B、先进后出 C、两端进出 D、一端进一端出 17、下面4句结论只有一句是错误的,它是()

(完整版)程序设计基础试题_10_答案

广州大学学年第学期考试卷 课程高级语言程序设计考试形式(开/闭卷,考试/查) 学院系专业班级学号姓名 一、填空题(每空1分,共10分) 1.C源程序的基本单位是(函数)。 2.一个C源程序中至少应包含一个(main()函数)。 3.若a和b均是int型变量,且a和b的初值均为5,则计算表达式a+=b++ 后,a的值为(10 ),b的值为( 6 )。 4.若a、b和c均是int型变量,则计算表达式a=(b=4)+(c=2)后,b值为( 4 ),c 值为( 2 )。 5.表达式8.2-2/3 的计算结果是(8 )。 6.在C语言中,整数可用三种数制表示,它们分别是(十进制)、(八进制)和(十六进制)。 二、程序计算题(每小题5分,共15分) 1. # define f(a) printf(“%d”,a) main() { int i,b[]={1,2,3,5,7,9,11,13,15},*p=5+b; for(i=3;i;i--) switch(i) { case 1: case 2: f(*p++); break;

case 3: f(*(--p)); } } 2. main() { int arr_sum(int arr[],int n); int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23}; int *p,total; int (*pt)( int arr[],int n); pt=arr_sum; p=a[0]; total=(*pt)(p,12); printf(“total=%d\n”,total); } arr_sum(int arr[],int n) { int i,sum=0; for(i=0;i

齐齐哈尔大学C语言题库 程序改错(部分)

1.【程序改错】 题目:在一个一维整型数组中找出其中最大的数及其下标。 程序中共有4条错误语句,请改正错误。 #define N 10 /**********FOUND**********/ float fun(int *a,int *b,int n) int fun(int *a,int *b,int n) { int *c,max=*a; for(c=a+1;cmax) { max=*c; /**********FOUND**********/ b=c-a;} *b=c-a;} return max; } main() { int a[N],i,max,p=0; printf("please enter 10 integers:\n"); for(i=0;i

C程序设计基础_复习题

c语言规定,任何非0的数像1 -1等都被认为是真,而0被认为是假 1>1为假 试题一、单选题 1. 已知int k,m=1;执行语句k=-m++;后,k的值是_____。【知识点:难度:正确答案:A】 A.-1 B.0 C.1 D.-2 2. 已知定义int m; float k; 正确的语句是。【知识点:难度:正确答案:D】 A.(int k)%m B.int(k)%m C.int(k%m)D.(int)k%m 3. 当k的值不为0时,在下列选项中能够将k的值赋给变量m,n的是______。【知识点:难度: 正确答案:B】 A.m=k=n B.(m=k)&&(n=m) C.(m=k)||(n=k)D.(n=m)&&(m=k) 4. 已知int x=5; 表达式6>x>1值是_____。【知识点:难度:正确答案:A】 A.0 B.1 C.5 D.表达式语法错 表达式6>x>1 ,先 判断6>x 为0,再 判断0>1,所以值 为0。 (6>x 为1 ,再判 断1>1,所以值为 0。) 5. 下列程序段执行后c值为_____。【知识点:难度:正确答案:D】 int k=7, c=0; while(--k) if (k%3) continue; else c++; A.5 B.4 C.3 D.2 6. 已知字母a的ASCII码为十进制数97,且ch为字符型变量,则执行语句ch=…a?+…D?-…A?;后,ch 中的值为_____。【知识点:难度:正确答案:C】 A.d B.c C.100 D.不确定 7. 设m,n已正确定义,执行语句{for(m=0, n=10; m,能使puts(s)语句正确输出ABCDE字符串的程序 段是______。【知识点:难度:正确答案:C】 A.char s[5] = {"ABCDE"}; puts(s) B.char s[5] = {…A?,?B?,?C?,?D?,?E?}; puts(s); C.char *s; s = "ABCDE"; puts(s); D.char *s; scanf(“%s”,s); puts(s); 《C程序设计基础及实验》

《程序设计基础》题库(50道)

《程序设计基础》题库(50道) <说明> 1、难易程度依次为:易(16道)、较易(38道)、较难(31道)、难(15道)。 2、总共抽8道题,按难易程度:易(1道)、较易(4道)、较难(2道)、难(1道); 按题型:顺序(1道)、分支(2道)、单循环(2道)、多循环(1道)、数组(1道)、字符串(1道) 3、考试要求:先画流程图再写程序,理论考试,2个半小时 一、顺序结构 1、 请定义4个整型变量,并打印输出这4个变量的加、减、乘、除后的结果。(易) 2、 将华氏温度转化成摄氏温度。公式为:C=(5/9)*(F-32),其中F 为华氏温度,C 为 摄氏温度。请根据给定的华氏温度输出对应的摄氏温度。(易) 3、 根据观察,蟋蟀的名叫频率与温度有关,具体的公式为T=(c+40)/10.其中,c 代表 蟋蟀每分钟鸣叫数,T 代表华氏温度。请根据蟋蟀每分钟的鸣叫数输出相应的华氏温度。(易) 4、 编写程序,读入0~1000的一个整数并将其各位数字之和赋给一个整数,如整数932, 各位数字之和为14. (较易) 5、 编程实现两个整数交换位置,例如:int x = 6,y = 9,交换后 x = 9,y = 6。(较易) 6、 求空间两点之间的距离。(提示:空间一点(x,y,z ),可由三个实数来描述)(较易) 7、 已知圆的半径,求圆的面积。(易) 8、 已知一个三角形的三边边长分别为a,b,c ,利用海伦公式求三角形的面积。(较难) 海伦公式: 9、 求两数平方和的算术根。(易) 10、 给定一段时间求出它的秒数。(如计算2小时 17分30秒等于多少秒)(易) 11、 某印刷厂3月1日有A4纸500盒,3月2日又买进进100盒,3月3日用掉A4 纸存量的三分之二,3月4日又买进A4纸存量的2倍,问该印刷厂3月1日到3月4日期间每天的A4纸存量分别是多少盒?(易) 12、 三个小朋友,大毛有糖果50粒,二毛有糖果43粒,三毛有糖果13粒。现在他们 三兄弟做游戏,从大毛开始,将自己的糖果三等分,三兄弟每人一份,多余的自己吃掉;然后二毛和三毛也依次这样做,问最后三兄弟各有多少糖果?(较易) 二、分支结构 13、 两个整数比较大小,输出较大值。(易) 14、 三个整数比较大小,输出最大值。(较易) 15、 求下列函数中y 的值。(较易) y=10 (x=0) y=3x+5 (x>0) y=x-2 (x<0) 16、 判断某年是否为闰年。(闰年的条件是:该年的年号能被4整除且不能被100整除, 或该年的年号能被400整除,则该年是闰年,否则不是闰年。)(较易) 17、 根据某同学的成绩,判定其成绩的等级。(90~100分为“优秀”,80~89为“良好”, 70~79为“中等”,60~69为“及格”,60分以下为“不及格”。)(较易) ))()((c p b p a p p S ---=2 c b a p ++=

C语言程序改错题

第1题【程序改错】 功能:先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。 例如:当s中的字符串为:“ABCDE”时,则t中的字符串应为:“EDCBAABCDE”。 ------------------------------------------------------*/ #include #include #include void fun (char *s, char *t) { /**********FOUND**********/ int i; sl = strlen(s); for (i=0; i

程序设计基础试题一知识讲解

山东科技大学200 —200 学年第学期 《程序设计基础》考试试卷一 班级姓名学号____________ 一、选择题(20分) 1.算法具有五个特性,以下选项中不属于算法特性的是B (A)有穷性(B)简洁性(C)可行性(D)确定性 2.以下选项中可作为C语言合法常量的是A (A)-80. (B)-080 (C)-8e1.0 (D)-80.0e 3.以下叙述中正确的是C (A)用C语言实现的算法必须要有输入和输出操作 (B)用C语言实现的算法可以没有输出但必须要有输入 (C)用C程序实现的算法可以没有输入但必须要有输出 (D)用C程序实现的算法可以既没有输入也没有输出 4.以下不能定义为用户标识符是D (A)Main (B) _0 (C) _int (D) sizeof 5.以下选项中,不能作为合法常量的是B (A)1.234e04 (B)1.234e0.4 (C)1.234e+4 (D)1.234e0 6.数字字符0的ASCII值为48,若有以下程序 main() {char a='1',b='2'; printf("%c,",b++); printf("%d\n",b-a);} 程序运行后的输出结果是C (A)3,2 (B)50,2 (C)2,2 (D)2,50

7.有以下程序 main(){ int m=12,n=34; printf("%d%d",m++,++n); printf("%d%d\n",n++,++m);}程序运行后的输出结果是A (A)12353514 (B)12353513 (C)12343514 (D)12343513 8.有以下语句:int b;char c[10];,则正确的输入语句是B A)scanf("%d%s",&b,&c); B) scanf("%d%s",&b,c); (C)scanf("%d%s",b,c); D)scanf("%d%s",b,&c); 9.有以下程序 main(){ int m,n,p; scanf("m=%dn=%dp=%d",&m,&n,&p); printf("%d%d%d\n",m,n,p); } 若想从键盘上输入数据,使变量M中的值为123,N中的值为456,P中的值为789,则正确的输入是A A)m=123n=456p=789 B)m=123 n=456 p=789 C)m=123,n=456,p=789 D)123 456 789 10.有以下程序 main(){ int a,b,d=25; a=d/10%9;b=a&&(-1); printf("%d,%d\n",a,b); } 程序运行后的输出结果是B A)6,1 B)2,1 C)6,0 D)2,0 11.有以下程序 main(){ int i=1,j=2,k=3; if(i++==1&&(++j==3||k++==3)) printf("%d %d %d\n",i,j,k);}程序运行后的输出结果是D (A)1 2 3 (B)2 3 4 (C)2 2 3 (D)2 3 3

vfP程序设计基础习题集

VFP程序设计习题 习题一 一、判断题(1分/题,共20分,对打画√,错打×) 1.建立自由表分两步:定义表结构和输入数据。 2.表间的关系分三种:一对一关系、一对多关系和多对多关系。 3.若要使用多个表,就要使用多个工作区。 4.在应用程序中可以通过使用该工作区的表的别名来标识工作区。 5.对象具有属性,而属性只能在设计阶段设置。 6.引用对象的方法分绝对引用和相对引用。 7.表单集是指两个以上的表单同时输出,并且可以通过程序或鼠标交换输出权。 8.一条命令可分几行写,在行结束处用“:”表示一行未完,转入下一行。 9.VFP主要数据容器有:表记录、变量和数组。 10.报表包括两个基本组成部分:数据源和布局。 11.如果不想使用“报表向导”或“快速报表”设计报表,可以从空白报表布局开始,然后自己添加控件。 12.表选择查询输出的去向可以是浏览、报表或表单。 13.视图与查询相类似的地方是:可以用来从一个或多个相关联的表中提取有用信息。14:视图与表相类似的地方是:可以用来更新其中的信息,并将更新结果永久保存在磁盘上。15.在“数据库设计器”中,视图的显示方式与表在分层结构中的显示方式相同,所不同的是视图名代替了表名。 16.一个视图在使用时,将作为临时表在自己的工作区中打开。 17.如果打开基于本地表的视图,则在Visual FoxPro的另一个工作区中基表被同时打开。18.在视图中更新数据与在表中更新数据类似,使用视图还可以对其基表进行更新。19.VFP中的NULL表示未知数据,便于与含有NULL值的SQL数据库一起工作。20.索引是改变表的物理顺序,排序是排列表的逻辑顺序。 二、选择题(每个选择3分,共24分) 1.统计女生人数并将结果存放于变量X中的命令是() (A).COUNT FOR .NOT. 性别=”男” TO X (B).COUNT FOR ( 性别=”女”)=.T. TO X (C).SUM FOR ( 性别<>”男”)=.T. TO X (D).SUM FOR 性别=”女” TO X 2. 在已打开的表中,要永久删除当前记录位置开始的10条记录,可用() (A)先执行DELETE NEXT 10命令,后用PACK命令 (B)先执行DELETE RECORD 10命令,后用PACK命令 (C)先执行DELETE FOR RECORD> 10命令,后用PACK命令 (D)ZAP NEXT 10 3.按数值型字段”总分”进行索引,使其按降序排列的命令是() (A)INDEX ON -总分TO WP (B)INDEX ON 总分/A TO WP (C)INDEX ON 总分TO WP (D)INDEX ON 总分/D TO WP 4.下列操作后,不改变表记录指针的命令是()

C语言改错题

题号:1 题目:在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列 /************FOUND***********/ a[i]=a[i-1]; /************FOUND***********/ exit;} 正确答案:a[i+1]=a[i]; break;} 题号:2 题目:以下程序的功能是求如下表达式: /************FOUND***********/ print("%d",n) ; /************FOUND***********/ fun(int n) 正确答案:scanf(“%d”,&n); float fun(int n) 题号:3 题目:函数fun的功能是:根据整型形参m的值,计算如下公式的值。 /**********FOUND**********/ y-=1/(i*i); /**********FOUND**********/ return m; 正确答案:y-=1.0/(i*i); return c; 题号:4 题目:以下程序把一由小到大的有序数列放在a[1]到a[n]中,a[0]用做工作单元,程序把读入的x值插入到a数组中,插入后,数组中的数仍有序。 /************FOUND***********/ { a[i]=a[i+1]; /************FOUND***********/

for(i=0;i<=n;i++) 正确答案:{ a[i+1]=a[i]; for(i=1;i<=n;i++) 题号:5 题目:函数scopy的功能是:将一个字符串前面n个子字符送到一个字符型数组中去 ,然后再加上一个'\0'。不用系统提供的函数strcpy。请改正程序中的2个错误,使它能得出正确的结果。 /**************FOUND**************/ scanf("%d",n); /**************FOUND**************/ scopy(str1,str2); 正确答案:scanf("%d",&n); scopy(str1,str2,n); 题号:6 题目:函数fun的功能是:求n!。主函数的功能是计算: x!+y!+z!的值。请改正程 序中的错误,使它能得出正确的结果。 /**********FOUND**********/ scanf("%d,%d,%d",x,y,z); /**********FOUND**********/ printf("Sum=%d\ n",sum); 正确答案:scanf("%d,%d,%d",&x,&y,&z); printf("Sum=%ld\ n",sum); 题号:7 题目:编写函数fun求整数n以内(不包括n)3的倍数之和,在main函数中由键盘输 入n值,并输出运算结果。 /**********FOUND**********/ scanf("%d",n); /**********FOUND**********/ result=fun( ); 正确答案:scanf("%d",&n); result=fun(n); 题号:8 题目:函数fun的功能是:求1到20的阶乘的和。 /**********FOUND**********/ s+t=s; /**********FOUND**********/ printf("jiecheng=%d\n",s);

程序设计基础习题

7.8 习题 1. 编制一个C 程序,从键盘输入一个正整数,如果该数为素数,则输出该素数,否则输出该数的所有因子(除去1与自身)。 2. 编制一个C 程序,从键盘输入一个正整数N ,然后计算并输出 S=12||1222N ++++ 最后计算并输出 T=1121311 1-+-+-+ ()K K 其中K S =的整数部分。 3. 编制一个C 程序,计算并输出多项式的值 S x x x n n x n n =++ -+--++--+1050505120505105230505105123..(.)!.(.)(.)!.(.)(.)! 的值,直到 |S n -S n-1|<0.000001 为止。其中x 从键盘输入。 4. 编制一个C 程序,计算下列级数和: s n =1+(2/1)+(3/2)+(5/3)+(8/5)+(13/8)+…+(a n /a n-1) 其中n ≥1,由键盘输入;s 1=1。 5. 编制一个C 程序,计算并输出下列级数之和: e x x x x n x n =+++++12323!!! 其中n 与x 从键盘输入。 6. 编制一个C 程序,输出能写成两个数平方之和的所有三位数。 7. 如果一个数恰好等于它的所有因子(包括1但不包括自身)之和,则称之为“完数”。例如,6的因子为1、2、3,且1+2+3=6,即6是一个“完数”。编制一个C 程序,计算并输出1000以内的所有“完数”之和。 8. 编制一个C 程序,从键盘输入30个实数,分别计算并输出以下5个量:所有正数之和,所有负数之和,所有数的绝对值之和,正数的个数,负数的个数。 9. 100元钱买100只鸡,母鸡3元/只,公鸡2元/只,小鸡0.5元/只。编制一个C 程序,制定买鸡方案。 10. 设A ,B ,C ,D ,E 五人,每人额头上贴了一张或黑或白的纸。五人对坐,每人都可以看到其他人额头上的纸的颜色,但都不知道自己额头上的纸的颜色。五人相互观察后开始说话: A 说:我看见有三人额头上贴的是白纸,一人额头上贴的是黑纸。 B 说:我看见其他四人额头上贴的都是黑纸。 C 说:我看见有一人额头上贴的是白纸,其他三人额头上贴的是黑纸。 D 说:我看见四人额头上贴的都是白纸。 E 什么也没说。 现在已知额头上贴黑纸的人说的都是真话,额头上贴白纸的人说的都是假话。编制一个

相关文档
最新文档