计算机专业模拟试卷(程序填空和程序改错)
- 格式:doc
- 大小:44.50 KB
- 文档页数:2
湖南省计算机二级VB程序改错部分题库9、Visual Basic程序改错1.程序功能:求s=1+3+5+7+...直到s>2000为止。
程序中有两行有错误。
改正错误,使它能输出正确的结果。
(2025)Private Sub Form_Click()Dim i As Integer, s As Longs = 0 : i = 1Do Until s < 2000s = s + ii = i + 1LoopPrint sEnd Sub答案:s>2000 ; i+22.程序功能:计算s=2!+4!+8!。
程序中有两行有错误。
改正错误,使它能输出正确的结果。
(40346) Private Sub Command1_Click()Dim k As Integer, i As IntegerDim s As Long, t As Longs = 0i = 1Do While i <= 3t = 1k = 1While k <= 2*it = t * kk = k + 1Wends = s + twendPrint sEnd Sub答案:k<=2^i ; loop3.程序功能:计算s=2!+4!+6!+8!。
程序中有错误。
改正错误,使它能输出正确的结果。
(41066)Private Sub Command1_Click()Dim k As Integer, i As IntegerDim s As Long, t As Longs = 0 : i = 1Do While i <= 4t = 1k = 1While k <= 2^it = t * kk = k + 1Wends = s + ti = i + 1wendPrint sEnd Sub答案:k<=2*i ; loop4.程序功能:求200到400间,能被3整除但不能被7整除的数的个数。
程序中有两行有错误。
1、给定程序MODI1.C 中函数 fun 的功能是:计算n!。
例如,给n 输入5,则输出120.000000。
请改正程序中的错误,使程序能输出正确的结果。
注意:不要改动main 函数,不得增行或删行,也不得更改程序的结构! 给定源程序: #include <stdio.h> double fun ( int n ) { double result = 1.0 ; /************found************/ if n = = 0 return 1.0 ; while( n >1 && n < 170 ) /************found************/ result *= n-- return result ; } main ( ) { int n ; printf("Input N:") ; scanf("%d", &n) ; printf("\n\n%d! =%lf\n\n", n, fun(n)) ; } 解题思路: 第一处:条件语句书写格式错误,应改为:if (n==0)。
第二处:语句后缺少分号。
2、给定程序MODI1.C 中函数fun 的功能是: 依次取出字符串中所有数字字符, 形 成新的字符串, 并取代原字符串。
请改正函数fun 中指定部位的错误, 使它能得出正确的结果。
注意: 不要改动main 函数, 不得增行或删行, 也不得更改程序的结构! 给定源程序: #include <stdio.h> void fun(char *s) { int i,j; for(i=0,j=0; s[i]!='\0'; i++) if(s[i]>='0' && s[i]<='9') /**********found**********/ s[j]=s[i]; /**********found**********/ s[j]="\0"; } main() { char item[80]; printf("\nEnter a string : ");gets(item); printf("\n\nThe string is : \"%s\"\n",item); fun(item); printf("\n\nThe string of changing is : \"%s\"\n",item ); } 解题思路: 第一处: 要求是取出原字符串中所有数字字符组成一个新的字符串,程序中是使用变量j 来控制新字符串的位置,所以应改为:s[j++]=s[i];。
11、第一大类(交换类)共7道/**found**/t=*x; *x=y;/**found**/return(t);2. 程序修改(第60套)void fun(int *a,int *b)/**found**/t=*b;*b=*a;*a=t;2.程序修改(第88套)/**found**/void fun(int *x, int *y)/**found**/t=*x,*x=*y,*y=t;2、第二大类(计算类)共22道2.程序修改(第1套)求岀以下分数序列的前n 项之和。
2/1+3/2+5/3+8/5+13/8+21/13+……和值通过函数值返回main函数。
例如n=5,则应输出:。
/**foun d**/double fun (i nt n)/**foun d**/s=s+(double)a/b;2.程序修改(第6套)给定程序中函数fun的功能是:用递归算法计算列中第n 项的值。
从第一项起,斐波拉契数列为:1、1、2、3、5、8、13、21、/**found**/ switch(g)/**found**/case 1:case 2:return 1;2.程序修改(第13套)long s=0,t=0;t=t/10;2.程序修改(第21套)double f(double x)/**found**/ return s;2.程序修改(第27套)/**found**/double fun(double a,doublex0)/**found**/if(fabs(x1-x0)> 2程序修改(第29套)/**found**/#define FU(m,n) (m)/(n)return (value);2.程序修改(第33套)/**found**/for (i =2 ; i<= m; i++)/**found**/y+=1.0/ ( i* i);2.程序修改(第37套)/**found**/while((fabs(t))>=num)/**found**/t=s/n2.程序修改(第45套)/**found**//**found**/t+=i;2/**found**/result *=n__;2.程序修改(第48套)/**found**/for (i =2 ; i<= m; i++)/**found**/y+=1.0/ ( i* i);s=s +(double)(n+1)/n;/**found**/return t;2.程序修改(第52套)/**found**/int fun(int n)/**found**/if(n==1) 2.程序修改(第58套)给定程序中函数fun的功能是:求K! <k<13>,所求阶乘的值作为函数值返回。
计算机等级考试(NCRE)计算机等级考试二级模拟题2020年(123)(总分100, 做题时间120分钟)一、程序填空题1. 请补充main()函数,该函数的功能是:从键盘输入只有两个整数参与运算的一个四则运算式,然后计算出它的值。
注意数字全部为正整数。
例如,输入30*28,结果为840.000000。
注意:部分源程序如下。
请勿改动main()函数和其他函数中的任何内容,仅在main()函数的横线上填入所编写的若干表达式或语句。
试题程序:#include<stdlib.h>#include<stdio.h>void main(){int num1=0,hum2=0,flag=1,fg=1;float result;char *p,ch;char str[10];system("CLS");printf("\n Input a string\n");gets(str);p=str;while(*p){if(*p>='0'&&*p<='9'&&flag==1)num1=______;elseif(fg){ch=*p;flag=2;fg=0;}if(*p>='0'&&*p<='9'&&flag==2)num2=______;p++;}switch(______){case'+':result=num1+num2; break;case'-':result=num1-num2; break;case'*':result=num1*num2; break;case'/':result=(float)num1/num2; break;}printf("\nresuh=%f",result);}SSS_FILL二、程序改错题1. 下列给定程序中,函数proc()的功能是:将字符串str中的大写字母都改为对应的小写字母,其他字符不变。
改错题1、在考生文件夹下,给定程序MODI.C的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。
例如,当s中的数为:时,t中的数为:7531。
请修改并运行该程序,然后将源程序文件MODI.C上传。
#include <conio.h>#include <stdio.h>main( ){ long s, t, sl=10;clrscr();printf("\nPlease enter s:");scanf("%ld", &s);/************found************/t = s / 10; s%10while ( s > 0){ s = s/100;t = s%10 * sl + t;/************found************/sl = sl*100 ;}printf("The result is: %ld\n", t);}2、在考生文件夹下,给定程序MODI.C的功能是:求一维数组a中的值为偶数的元素之和。
例如,当一维数组a中的元素为:10,4,2,7,3,12,5,34,5,9 ,程序的输出应为:The result is: 62#include <conio.h>#include <stdio.h>main(){ int a[10]={10,4,2,7,3,12,5,34,5,9},i,s;clrscr();s = 0;for ( i=0; i<10; i++)/************found************/if (i % 2 == 0)s = s + a[i];/************found************/print("The result is: %d\n", s);}3、在考生文件夹下,给定程序MODI.C的功能是:求一维数组a中值为偶数的元素之和。
计算机等级考试(NCRE)计算机等级考试二级模拟题2020年(180) (总分100, 做题时间120分钟) 一、程序填空题 1. 请补充main()函数,该函数的功能是:先以只写方式打开文件“out.dat”,再把字符串str中的字符保存到这个磁盘文件中。 注意:部分源程序如下。 请勿改动main()函数和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。 试题程序: #include<stdlib.h> #include<stdio.h> #include<coriio.h> #define M 80 void main() { FILE *fp; int i=0; char ch; char str[M]="I'm a student!"; system("CLS"); if((fp=fopen(______))==NULL) { printf("cannot open out.dat\n"); exit(0); } while(str[i]) { ch=str[i]; ______; putchar(ch); i++; } ______; } SSS_FILL
二、程序改错题 1. 下列给定程序中函数proc()的功能是:计算1/n!的值。 例如,给n输入“3”,则输出“0.166667”。 请修改程序中的错误,使它能得到正确结果。 注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include<stdio.h> #include<conio.h> //****found**** int proc(int n) { double t=1.0; if(n==0) return 1.0; while(n>1&&n<170) //****found**** t*=n++; t=1/t; returnt; } void main() { int n; printf("Input N:"); scanf("%d",&n); printf("\n1/%d!=%1f\n",n,proc(n)); }
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷355一、程序填空题1 给定程序中,函数fun的功能是:找出100~999之间(含100和999)所有整数中各位上数字之和为x(x为一正整数)的整数,然后输出;符合条件的整数个数作为函数值返回。
例如,当x值为5时,100—999之间各位上数字之和为5的整数有:104、113、122、131、140、203、212、221、230、302、31 1、320、401,410、500。
共有15个。
当x值为27时,各位数字之和为27的整数是:999。
只有1个。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!#include <stdio.h>int fun (int x){ int n,sl,s2,s3,t;n=0;t=100;while (t<=— 1 ) {sl=t%10; s2= (____2____ ) %10; s3=t/100;if (sl+s2+s3==____ 3 ____){ printf ("%d",t) ;n++;}t++;}return n;}main (){ int x=—1;while (x<0){ printf ( "Please input (x>0)");scanf("%d",&x);}printf("\nThe result is: %d\n",fun(x));z}二、程序修改题2 给定程序MODI1.C中函数fun的功能是:从低位开始取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。
高位仍在高位,低位仍在低位。
例如,当s中的数为:7654321时,t中的数为:642。
请改正程序中的错误,使它能得出正确的结果。
《C语言程序设计》模拟试题五一、填空题(40分)1.计算机软件分为和;C语言适合编写.2.十进制数35=( )2 =( )8 =( )163.已知一个数[X]补=11111001,求[X]原= 及X= .4.设x=2.5,a=7,y=4.7.求下列算术表达式的值.x+a%3*(int)(x+y)%2/3= .5.将算式|3-e x ln(1+Y)|写成C语言表达式 .6.设a=5,b=9.则printf(“a=%d,b=%4d”,a,b)输出为:.7.用C语句写出累加器、累乘器、计数器.8.上机操作时,CTRL+F9键的功能是,F2键的功能是 ALT+F5键的功能是.9.下列程序段对应的数学表达式是int t,n,s=0;scanf(“%d”,&n);for(i=1;i<=n;i++){ t=1;for(j=1;j<=i;j++)t=t*j;s=s+t;}10.以下程序用“顺序查找法”查找数组a中是否存在某一关键字. 请填空.main(){int a[10]={25,57,48,38,12,92,88,48,16,25};int i,x;scanf(“%d”,&X);for(i=0;i<10;i++)if (x==a[i]){printf(“Found!The index:%d\n”a[i]);(1) ;}if (2) printf(“Can not found!”);}二、单选题(15分)1.一个C程序的执行是从.A.本程序的main()函数开始,到main函数结束.B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束.C.本程序的main()函数开始,到本程序文件的最后一个函数结束.D.本程序文件的第一个函数开始,到本程序main函数结束.2.根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式为.main(){ int a,b,c;输入语句;printf(“%c%c%c”,a,b,c);}输入形式:A B C输出形式:ABCA.scanf(“%c%c%c”,&a,&b,&c);B.scanf(“%c,%c,%c”,&a,&b,&c);C.scanf(“%c %c %c”,&a,&b,&c);D.scanf(“%c%c”,&a,&b);3.给出下列程序的运行结果.main(){int i,j,k,x=0;for(i=2;i<=5;i++)for(j=7;j>=3;j-=2)for(k=4;k<=11;k+=4)x++;printf(“x=%d”,x);}A.x=64B. x=36C.x=60D. x=244.若x,i,j和k都是int型变量,则表达式计算下面表达式后,x的值为 . x=(i=4,j=16,k=32)A. 4B. 16C.32D.525.以下不正确if语句形式是.A.if ( x>y && x!=y );B.if ( x = = y ) x + = y;C. if ( x != y ) scanf(“%d”,&x) else scanf(“%d”,&y);D.if (x<y) { x++; y++ ;}三、改错题(14分)1.从键盘输入20个整数,将大于-5与小于+5的数以2倍形式输出. main(){int x,i,y;for(i=1,i<=10,i++)scanf(“%d”,x);if (-5<x<5) printf(“%d”,y=2x);}2.求1-2+3-4+5-6+…-100的和.main(){int n,f,i=0;-1=f;dos=s+f*i;i++;f=-f;while(i>=100)printf(“%d”;s);}四、给出下列程序的运行结果(15分)1.main(){int a,b,c,s,w,t;s = w = t = 0;a= -1; b= 3; c= 5;if (c>0) s=a+b;if (a<=0){ if (b>0)if (c<=0) w=a-b;}else if (c>0) w=a-b;else t=c;printf(“%d %d %d”,s,w,t);}2. #include <stdio.h>main(){ int i=5;char a[6]=“abcd”;do{ a[i]=a[i-1];--i;}while(i>0);puts(a);}3. main(){ int i,a[50];for(i=1;i<=10;i++){i=i*i;a[i]=i;printf(“%d ”,a[i]); }}五、按给出的程序功能,在空格处,填写正确的程序语句,使程序完整。
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷350一、程序填空题1 给定程序中,函数fun的功能是:计算出形参s所指字符串中包含的单词个数,作为函数值返回。
为便于统计,规定各单词之间用空格隔开。
例如,形参s所指的字符串为:This is a C languageprogram.,函数的返回值为6。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!#include <stdio.h>int fun (char *s){ int n=0,flag=0;____1____ ; flag=1; }____3____;}return n;main (){ char str[81]; int n:printf ("\nEnter a line text:\n") ;gets (str) ;n=fun (str) ;printf("\nThere are %d words inthis text.\n\n",n) ;}二、程序修改题2 给定程序MODI1.C中函数fun的功能是:从n(形参)个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在形参aver所指的存储单元中。
例如,若输入8名学生的成绩:80.5 60 72 90.5 98 51.5 88 64则低于平均分的学生人数为:4(平均分为:75.5625)。
请改正程序中的错误,使它能统计出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include <stdio.h>#define N 20int fun (float *s,int n,float*aver){ float ave,t =0.0 ;int count = 0,k,i ;t = s[k];ave — t / n ;if (s[i] < ave) count++ ;*aver = Ave ;return count ;}main (){ float s[30],aver ;int m,i ;printf ("\nPlease enter m: ") ;scanf ( " %d", &m) ;printf ("\nPlease enter %d mark:for(i = 0 ; i < m ; i++) scanfprintf ("\nThe number ofstudents: %d \n", fun (s, m.printf (t'Ave = %f\n", aver) ;}三、程序设计题3 请编写函数fun,其功能是求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。
填空题答案第1题答案第1处填空:n>1或1<n第2处填空:n-1第3处填空:1或1l或1L第2题答案第1处填空:n==0或0==n或!n第2处填空:n==1或1==n第3处填空:fun(n-1)+fun(n-2)或fun(n-2)+fun(n-1)第3题答案第1处填空:n--或--n或n-=1或n=n-1第2处填空:s[i]=s[n]或*(s+i)=*(s+n)第3处填空:s[n]=t或*(s+n)=t第4题答案第1处填空:i<=n或n>=i第2处填空:||第3处填空:1.0或(double)1第5题答案第1处填空:r*r第2处填空:&x第3处填空:x第6题答案第1处填空:<=第2处填空:n++或n+=1或n=n+1 第3处填空:return s或return (s) 第7题答案第1处填空:n%10第2处填空:break第3处填空:break第8题答案第1处填空:&num[i]或num+i第2处填空:max<num[i]?或num[i]>max?第3处填空:num[i]!=0或0!=num[i] 第9题答案第1处填空:(*a)++或++(*a)或*a=*a+1或*a+=1第2处填空:(*b)++或++(*b)或*b=*b+1或*b+=1第3处填空:upper,lower第10题答案第1处填空:max=a第2处填空:max=b第3处填空:max=c第11题答案第1处填空:1第2处填空:s[k]或*(s+k)第3处填空:c 第12题答案第1处填空:tt[i]<='Z'或'Z'>=tt[i]第2处填空:32或'a'-'A'第3处填空:tt第13题答案第1处填空:char*fun(int n)第2处填空:2第3处填空:n%i==0或!(n%i)或0==n%i第14题答案第1处填空:*p或*p!='\0'或*p!=0第2处填空:i++或++i或i+=1或i=i+1第3处填空:'\0'或0第15题答案第1处填空:!=第2处填空:str[1]或*(str+1)第3处填空:s,c第16题答案第1处填空:n%100!=0或n%100或0!=n%100第2处填空:n%400==0或!(n%400)或0==n%400第3处填空:flag第17题答案第1处填空:n第2处填空:else第3处填空:a,b第18题答案第1处填空:*p==t或t==*p第2处填空:bb[n++]=i第3处填空:n第19题答案第1处填空:score[i]或*(score+i)第2处填空:below第3处填空:below[i]或*(below+i)第20题答案第1处填空:i第2处填空:j第3处填空:aa,&n第21题答案第1处填空:j++或++j或j+=1或j=j+1第2处填空:s[i]=t1[i]第3处填空:j第22题答案第1处填空:&&第2处填空:0第3处填空:s[j]或*(s+j)第23题答案第1处填空:int x[]或int*x第2处填空:sum+=x[i]或sum=sum+x[i]第3处填空:sum/n第24题答案第1处填空:a第2处填空:a第3处填空:b第25题答案第1处填空:n/2第2处填空:i第3处填空:a[n-i-1]第26题答案第1处填空:i=1第2处填空:&&第3处填空:--j或j-1第27题答案第1处填空:j=2第2处填空:i第3处填空:j第28题答案第1处填空:1第2处填空:s*i或i*s第3处填空:0第4处填空:s+fun(k)或fun(k)+s第29题答案第1处填空:0第2处填空:i<=x或x>=i第30题答案第1处填空:--i或i--或i-=1或i=i-1第2处填空:s[i]-'0'第3处填空:t*10+k或k+t*10或10*t+k或k+10*t第31题答案第1处填空:*(p1+i)或p1[i]或*(p1+i)!=0或p1[i]!=0第2处填空:*p2或p2[0]或*p2!=0或p2[0]!=0第3处填空:*p2++第32题答案第1处填空:sum+=x[i]或sum=sum+x[i]第2处填空:avg*1000或1000*avg第3处填空:(avg+5)/10或(5+avg)/10第33题答案第1处填空:1第2处填空:i第3处填空:a[p+i]或*(a+p+i)第34题答案第1处填空:bb[i]=0或*(bb+i)=0第2处填空:bb[5]++或++bb[5]或bb[5]=bb[5]+1或bb[5]+=1第3处填空:p++;或++p;或p+=1;或p=p+1;第35题答案第1处填空:i<*num或*num>i第2处填空:n++或++n或n+=1或n=n+1第3处填空:*num=n第36题答案第1处填空:&&第2处填空:s[i]-'0'第3处填空:n第37题答案第1处填空:xx[i]%10第2处填空:bb[n++]=xx[i]第3处填空:n第38题答案第1处填空:n/100%10第2处填空:"yes!"第3处填空:"no!"第39题答案第1处填空:"%d",&n第2处填空:str2[i]=str1[i];第3处填空:str2第40题答案第1处填空:"%s",str1第2处填空:%c第3处填空:str2第41题答案第1处填空:"%ld",&n第2处填空:n=-n;或n*=-1;第3处填空:"%ld",n第42题答案第1处填空:*p或p[0]第2处填空:default:b[10]++;第3处填空:p++;或p+=1;或p=p+1;或++p;第43题答案第1处填空:*p或*p!=0或0!=*p 第2处填空:bb[*p-'0']++或bb[*p-'0']+=1第3处填空:num[j]=bb[i]第44题答案第1处填空:0第2处填空:||第45题答案第1处填空:s1-i-1或s1-1-i第2处填空:2*s1或s1*2第46题答案第1处填空:*k第2处填空:s[i]>max或max<s[i] 第3处填空:i第47题答案第1处填空:xx[i]%10第2处填空:bb[n++]=xx[i]第3处填空:n第48题答案第1处填空:n>0或0<n第2处填空:n%10+'0'或'0'+n%10第3处填空:str[i]='\0'或str[i]=0第49题答案第1处填空:disc<0或0>disc第2处填空:sqrt第3处填空:sqrt第50题答案第1处填空:s第2处填空:*p++第3处填空:*(p)或*p或*p!=0第51题答案第1处填空:x>y或y<x第2处填空:x>z或z<x第3处填空:y>z或z<y第52题答案第1处填空:"out52.dat","w"第2处填空:fputc(ch,fp)第3处填空:fclose(fp)第53题答案第1处填空:i第2处填空:p->next=s第3处填空:p->next第54题答案第1处填空:*p1<*p2或*p2>*p1第2处填空:*p1>*p2或*p2<*p1第3处填空:'\0'或0第55题答案第1处填空:flag=1第2处填空:j%i==0或0==j%i或!(j%i)第3处填空:flag==1或1==flag第56题答案第1处填空:&&第2处填空:fputc(ch,fp1)第3处填空:fclose(fp)第57题答案第1处填空:double第2处填空:j第3处填空:1.0/t或(double)1/t第58题答案第1处填空:&n第2处填空:i=1第3处填空:f*=i或f=f*i或f=i*f第59题答案第1处填空:sum=0第2处填空:sum+=n或sum=sum+n或sum=n+sum第3处填空:ld第60题答案第1处填空:i<n或n>i第2处填空:j<n-1或n-1>j第61题答案第1处填空:bb[i]=0或*(bb+i)=0第2处填空:bb[i]+=score[i][j]或bb[i]=bb[i]+score[i][j]或bb[i]=score[i][j]+bb[i]第62题答案第1处填空:"%c",&str[i]或"%c",str+i第2处填空:str[i]!='*'或*(str+i)!='*'第3处填空:"%c",str[j]或"%c",*(str+j)第63题答案第1处填空:STU第2处填空:h第3处填空:h第64题答案第1处填空:str1[i]!=''或''!=str1[i]第2处填空:i++或++i或i+=1或i=i+1第65题答案第1处填空:bb[i][j]=1第2处填空:bb[i][j]=0第66题答案第1处填空:j>i或i<j第2处填空:bb[j]=bb[j-1]第3处填空:break第67题答案第1处填空:p=str第2处填空:p[i]++或++p[i]或p[i]+=1或p[i]=p[i]+1第3处填空:s[i]='\0'或s[i]=0第68题答案第1处填空:break第2处填空:'\0'或0第3处填空:*p++第69题答案第1处填空:<第2处填空:*p2或p2[0]第3处填空:str1第70题答案第1处填空:*(pstr+j)或pstr[j]第2处填空:pstr[j]或*(pstr+j)第3处填空:p第71题答案第1处填空:std[3]或std[]或*std第2处填空:PERSON第3处填空:std第72题答案第1处填空:N第2处填空:M第3处填空:bb[i]/N或*(bb+i)/N第73题答案第1处填空:bb[i][j]=0第2处填空:1第3处填空:j==n-1-i或j==n-i-1 第74题答案第1处填空:*std或std[0]第2处填空:std[i].age第3处填空:第75题答案第1处填空:&n第2处填空:t*i或i*t第3处填空:s+t或t+s第76题答案第1处填空:i第2处填空:s[j]=s[i]第77题答案第1处填空:N-1第2处填空:bb[n++]=aa[i]第3处填空:i,bb[i]第78题答案第1处填空:fun(char s[],int n)或fun(char*s,int n)第2处填空:j=0第3处填空:s[j]='\0'或s[j]=0第79题答案第1处填空:aa[i]%2==0或0==aa[i]%2或aa[i]%2第2处填空:i<k或k>i第80题答案第1处填空:--i或i--或i-=1或i=i-1 第2处填空:bb[j]=bb[i]第81题答案第1处填空:sum=0第2处填空:t[i][i]第3处填空:1第82题答案第1处填空:i%10第2处填空:g*g*g==i或i==g*g*g 第83题答案第1处填空:break;第2处填空:i++或++i或i+=1或i=i+1第3处填空:'\0'或0第84题答案第1处填空:&&第2处填空:i,j第85题答案第1处填空:[N]第2处填空:t[i][j]第3处填空:t[j][i]第86题答案第1处填空:N第2处填空:N-1第3处填空:0第87题答案第1处填空:&& 第2处填空:g+第88题答案第1处填空:s[i]或s[i]!=0或0!=s[i]第2处填空:s[i]==ch或ch==s[i]第3处填空:return n第89题答案第1处填空:s[i]!='\0'或s[i]或s[i]!=0第2处填空:32或'a'-'A'第3处填空:i++或++i或i+=1或i=i+1第90题答案第1处填空:STU第2处填空:std[i].num第3处填空:std[i]第91题答案第1处填空:i=1,j=0或j=0,i=1第2处填空:bb[j++]=i第3处填空:return j第92题答案第1处填空:str[i+1]或str[i+1]!='\0'或str[i+1]!=0第2处填空:str[i]=ch第93题答案第1处填空:aa[max]<aa[i]或aa[i]>aa[max]第2处填空:aa[min]>aa[i]或aa[i]<aa[min]第3处填空:aa[max]=aa[min]第94题答案第1处填空:i++或++i或i+=1或i=i+1第2处填空:s[j++]=s[i]第3处填空:s[j]='\0'或s[j]=0第95题答案第1处填空:0.0或0或(double)0第2处填空:n第3处填空:s第96题答案第1处填空:aa[k++]=t或aa[k]=t,k++或aa[k]=t;k++第2处填空:i<j或j>i第97题答案第1处填空:break第2处填空:t[i]第3处填空:u[ul]第98题答案第1处填空:s[i]!='\0'或s[i]或s[i]!=0第2处填空:25第3处填空:1第99题答案第1处填空:j%i==0或!(j%i)或0==j%i第2处填空:flag==1或flag或1==flag第3处填空:aver/n第100题答案第1处填空:k=0第2处填空:||第3处填空:s[k]='\0'或s[k]=0改错题答案第1题答案第1处:IsPrime(int n);应改为IsPrime(int n)第2处:if!(n%i)应改为if(!(n%i))第2题答案第1处:int k=1;应改为int k=0;第2处:while(*p!=*q)应改为while(*p||*q)第3题答案第1处:s[j]=s[i];应改为s[j++]=s[i];第2处:s[j]="\0";应改为s[j]='\0';第4题答案第1处:void fun(char*s,int a,int b)应改为void fun(char*s,int*a,int*b)第2处:a++;应改为(*a)++;第3处:b++;应改为(*b)++;第5题答案第1处:a[i+1]=a[i];应改为a[i]=a[i+1];第6题答案第1处:for(i=2;i<m;i++)应改为for(i=2;i<=m;i++)第2处:y-=1/(i*i);应改为y-=1.0/(i*i);第7题答案第1处:p=j应改为p=j;第2处:p=i;应改为p=j;第8题答案第1处:void fun(char*p);应改为void fun(char*p)第2处:p=q+i;应改为q=p+i;第9题答案第1处:t=s[k];应改为t+=s[k];第2处:*aver=&ave;应改为*aver=ave;第10题答案第1处:void fun(char*s,*t1,*t2,*w)应改为voidfun(char*s,char*t1,char*t2,char*w)第2处:while(r)应改为while(*r)第11题答案第1处:n=*p-'o';应改为n=*p-'0';第2处:n=n*7+*p-'o';应改为n=n*8+*p-'0';第12题答案第1处:a=NuLL;应改为a=NULL; 第2处:if(r==p)应改为if(*r==*p) 第13题答案第1处:t+=1.0/k;应改为t+=1.0/i; 第2处:应填return t;第14题答案第1处:int r;应改为double r;第2处:while(fabs(n-m)<0.001)应改为while(fabs(n-m)>0.001)第15题答案第1处:void fun(char str,char ch)应改为void fun(char*str,char ch)第2处:if(*str==ch)应改为if(*str=='\0')第3处:str[1]='0';应改为str[1]='\0';或str[1]=0;第16题答案第1处:p->next=NULL;应改为p=s; 第2处:s->data=rand()%m;应改为s->data=rand()%(m-1);第3处:return p;应改为return h; 第17题答案第1处:if((k%13=0)||(k%17=0))应改为if((k%13==0)||(k%17==0))第2处:应填}第18题答案第1处:void fun(int a,int b)应改为void fun(int*a,int*b)第2处:t=b;b=a;a=t;应改为t=*b;*b=*a;*a=t;第19题答案第1处:void fun(long s,long t)应改为void fun(long s,long*t)第2处:while(s<0)应改为while(s>0) 第20题答案第1处:void fun(int a[],int m)应改为int fun(int a[],int m)第2处:if(m>=a[mid])应改为if(m>a[mid])第21题答案第1处:p=h;应改为p=h->next;第2处:p=h->next;应改为p=p->next;第22题答案第1处:for(i=2;i<m;i++)应改为for(i=2;i<=m;i++)第2处:y+=1/(i*i);应改为y+=1.0/(i*i);第23题答案第1处:int fun(n)应改为int fun(int n)第2处:if(n=1)应改为if(n==1)第24题答案第1处:if(r==p)应改为if(*r==*p) 第2处:if(r=='\0')应改为if(*r=='\0')第25题答案第1处:if n==0应改为if(n==0)第2处:result=n--;应改为result*=n--;第26题答案第1处:应填sum=0;第2处:scanf("%d,",a[i][j]);应改为scanf("%d,",&a[i][j]);第27题答案第1处:t=0;应改为t=1.0;第2处:while(t<=eps)应改为while(t>=eps)第28题答案第1处:s=p;应改为p=s;第2处:应填p++;或++p;或p+=1;或p=p+1第3处:a[i]='0';应改为a[i]='\0';或a[i]=0;第29题答案第1处:b=a;应改为a=b;第2处:return(a);应改为return(b);第30题答案第1处:long k;应改为long k=1;第2处:num\=10;应改为num/=10;第31题答案第1处:if((tt[i]>='a')||(tt[i]<='z'))应改为if((tt[i]>='a')&&(tt[i]<='z'))第2处:tt[i]+=32;应改为tt[i]-=32;第32题答案第1处:if(i+1%5==0)应改为if((i+1)%5==0)第33题答案第1处:while(*s!='@')应改为while(*s)或while(*s!='\0')或while(*s!=0)第2处:(*s)++;应改为s++;第34题答案第1处:t=0;应改为*t=0;第2处:if(d%2==0)应改为if(d%2!=0)第35题答案第1处:if(p=='')应改为if(*p=='')第2处:*p=toupper(*(p-1));应改为*(p-1)=toupper(*(p-1));第36题答案第1处:j=1;应改为j=0;第2处:while(t!=0&&m!=0&&n!=0)应改为while(t!=0||m!=0||n!=0)第37题答案第1处:*r=t;应改为r=t;或r=&t[0];第2处:应填r=t;或r=&t[0];第38题答案第1处:t=x;x=y;应改为t=*x;*x=y;第2处:return(y);应改为return(t);或return t;第39题答案第1处:void fun(char s,char t)应改为void fun(char*s,char*t)第2处:t[2*d-1]='\0';应改为t[2*d]='\0';或t[d+i]='\0';或t[2*d]=0;或t[d+i]=0;第40题答案第1处:for(i=j+1;i<n-1;i++)应改为for(i=j+1;i<n;i++)第2处:t=i;应改为p=i;第41题答案第1处:while(p->next)应改为while(p!=NULL)第2处:p=h->next;应改为p=p->next;第42题答案第1处:if(i%2&&s[i]%2==0)应改为if(i%2||s[i]%2==0)或if(i%2!=0||s[i]%2==0)第2处:t[i]='\0';应改为t[j]='\0';或t[j]=0;第43题答案第1处:k=n;应改为k=i;第2处:b=k/10;应改为b=k%10;第44题答案第1处:fun(int**a,int m)应改为voidfun(int(*a)[M],int m)第2处:a[j][k]=k*j;应改为a[j][k]=(k+1)*(j+1);第45题答案第1处:void fun(char*s,t1,t2,w)应改为voidfun(char*s,char*t1,char*t2,char*w)第2处:while(w)应改为while(*w)第46题答案第1处:fun(int n)应改为doublefun(int n)第2处:return sum应改为returnsum;第47题答案第1处:void fun(int*a,int n);应改为void fun(int*a,int n)第2处:m=0;应改为m=i;第48题答案第1处:fun(char(*sq)[N])应改为char*fun(char(*sq)[M])第2处:return sq;应改为return sp;第49题答案第1处:*t=malloc(sizeof(STU));应改为t=(STU*)malloc(sizeof(STU)*m);第2处:t[k].num=b[j].num;应改为strcpy(t[k].num,b[j].num);第50题答案第1处:t[i]=s[s1-i];应改为t[i]=s[s1-i-1];或t[i]=s[s1-1-i];第51题答案第1处:void fun(char str[][],int m,char*pt)应改为void fun(char str[][10],int m,char*pt)第2处:pt[i]=str[k,i];应改为pt[i]=str[k][i];第52题答案第1处:int fun(double x[],int n)应改为int fun(double x[],int n){第53题答案第1处:switch(g);应改为switch(g) 第2处:case 1;应改为case 1:第54题答案第1处:double fun(char*s,char*t)应改为char*fun(char*s,char*t)第2处:(*ss)++;应改为ss++;第3处:(*tt)++;应改为tt++;第55题答案第1处:y=0;应改为y=1;第2处:d=i-a;应改为d=a-i;第56题答案第1处:void fun(char(*pstr)[6])应改为void fun(char*pstr[6])第2处:if(strcmp(*(pstr+i),pstr+j)>0)应改为if(strcmp(*(pstr+i),*(pstr+j))>0)第3处:*(pstr+i)=pstr+j;应改为*(pstr+i)=*(pstr+j);第57题答案第1处:while(i>j)应改为while(i<j)或while(j>i)第2处:c=0;应改为*c='\0';或*c=0; 第58题答案第1处:for(i=0;i<=s1;i++)应改为for(i=0;i<s1;i++)第2处:t[s1]='\0';应改为t[2*s1]='\0'; 第59题答案第1处:void fun(char*s,int num[5]);应改为void fun(char*s,int num[5]) 第2处:num[i]=0;应改为num[k]=0; 第3处:switch(s)应改为switch(*s) 第60题答案第1处:if(i%k!=0)应改为if(i%k==0)第2处:if(k<i)应改为if(k>=i)第61题答案第1处:fun(int m)应改为double fun(int m)第2处:for(i=100,i<=m,i+=100)应改为for(i=100;i<=m;i+=100) 第62题答案第1处:break应改为break;第63题答案第1处:i=1;应改为i=0;第2处:while(i<3||*p)应改为while(i<3&&*p)第3处:b[k]='';应改为b[k++]='';第64题答案第1处:c=c-32;应改为c=c+32;第2处:c=c-5;应改为c=c+5;第65题答案第1处:void fun(long s,long t)应改为void fun(long s,long*t)第2处:s1=s1*100;应改为s1=s1*10;第66题答案第1处:fun(int n)应改为doublefun(int n)第2处:b+=c;应改为b=c;第67题答案第1处:fun(double a,double x0)应改为double fun(double a,double x0)第2处:if(abs(x1-x0)>=1e-6)应改为if(fabs(x1-x0)>=1e-6)第68题答案第1处:return 1;应改为return 3;第2处:return 3;应改为return 1;第69题答案第1处:void upfst(char p)应改为void upfst(char*p)第70题答案第1处:int fun(int*b);应改为intfun(int*b)第2处:for(k=10;k<=55;k++)应改为for(k=1;k<55;k++)第3处:return k;应改为return i;第71题答案第1处:if k>1应改为if(k>1)第72题答案第1处:int fun(char*str,*substr)应改为int fun(char*str,char*substr)第2处:for(i=0,str[i],i++)应改为for(i=0;str[i];i++)第73题答案第1处:t=1.0-1/i;应改为t-=1.0/i;或t=t-1.0/i;或t-=(double)1/i;第2处:应填return t;第74题答案第1处:c=aa[i];应改为ch=aa[i];第75题答案第1处:int fun(int m,int xx[][])应改为int fun(int m,int xx[][M])第2处:printf("%4f",xx[i][j]);应改为printf("%4d",xx[i][j]);第76题答案第1处:long s1=0;应改为long s1=1;第2处:s\=10;应改为s/=10;第77题答案第1处:void fun(char a)应改为voidfun(char*a)第78题答案第1处:k++应改为k++;第2处:if(m=k)应改为if(m==k)第79题答案第1处:c[t]="\0";应改为c[t]='\0';第80题答案第1处:fun(int n)应改为doublefun(int n)第2处:s=s+(Double)a/b;应改为s=s+(double)a/b;第81题答案第1处:fun(int n)应改为doublefun(int n)第2处:for(i=2;i<n;i++)应改为for(i=2;i<=n;i++)第82题答案第1处:result*=--n;应改为result*=n--;第2处:应填return result;第83题答案第1处:void fun(int x,int y)应改为void fun(int*x,int*y)第2处:t=x;x=y;y=t;应改为t=*x;*x=*y;*y=t;第84题答案第1处:void fun(int m,int k);应改为void fun(int m,int k)第2处:aa[i]=m/k;应改为aa[i]=m%k;第3处:printf("%d",aa[i]);应改为printf("%d",aa[i-1]);第85题答案第1处:s[j]=s[i];应改为s[j++]=s[i];第2处:s[i]='\0';应改为s[j]='\0';第86题答案第1处:float*k;应改为float k;第2处:if(*s<*p)应改为if(*s>*p)第87题答案第1处:void fun(int a)应改为voidfun(int a[M])或void fun(int a[])或void fun(int*a)第2处:a[j]=a[j+1];应改为a[j]=a[j-1];第88题答案第1处:for(i=0;i<=3;i++)应改为for(i=1;i<=3;i++)第2处:if(k>=1&&k<=6)应改为if(k>=0&&k<=6)*zero=count; 第89题答案第1处:for(i=1;i<y;i++)应改为for(i=1;i<=y;i++)第2处:t=t/1000;应改为t=t%1000;第90题答案第1处:d=0;应改为d=1;第2处:s=1;应改为s=0;第3处:s=s/10;应改为d=d/10;第91题答案第1处:for(i=strlen(t);i;i--)应改为for(i=strlen(t)-1;i;i--)或for(i=strlen(t)-1;i>0;i--)第2处:if(t[j]<t[j+1])应改为if(t[j]>t[j+1])第92题答案第1处:long s=0,t=1;应改为longs=0,t=0;第2处:for(j=0;j<=n;j++)应改为for(j=0;j<n;j++)第3处:t=t%10;应改为t=t/10;第93题答案第1处:while(t>=num)应改为while(fabs(t)>=num)第2处:t=s%n;应改为t=s/n;第94题答案第1处:int sum=0.0;应改为doublesum=0.0;第2处:sum\=c;应改为sum/=c;第95题答案第1处:s=s+(n+1)/n;应改为s=s+(double)(n+1)/n;第2处:return s;应改为return t;第96题答案第1处:fun(int k)应改为doublefun(int k)第2处:return s应改为return s;第97题答案第1处:f(double x)应改为doublef(double x)第2处:return s应改为return s;第98题答案第1处:#define FU(m,n)(m/n)应改为#define FU(m,n)(m)/(n)第2处:Return(value);应改为return(value);第99题答案第1处:int i,j,k,sum;应改为inti,j=0,k,sum;第2处:if(sum%4=2)应改为if(sum%4==2)第100题答案第1处:if(t=0)应改为if(t==0)第2处:zero=count;应改为。
一、程序填空
1、有学生表ST,其中“编号”(N,2,0)
字段值从1开始连续排列。
以下程序欲
按编号1,9,17,25……的规律抽取学
生参加比赛,并在屏幕上显示参赛学生
的编号,请填空。
USE ST
DO WHILE NOT EOF()
IF MOD__________
??编号
ENDIF
SKIP
ENDDO
2、通过键盘输入读者的借书证号,在“读
者”表和“借阅”表中查找该读者及借
书的有关信息。
OPEN DATABASE BOOKS
DO WHILE ___________
ACCEPT”请输入借书证号:” TO ZH
SELECT * FROM 读者,借阅WHERE
读者.借书证号=借阅.借书证号AND ;
读者.借书证号=ZH
WAIT“继续查询(Y/N)?”TO YN
IF UPPER(Y/N)<>“Y”
_______________________
ENDIF
ENDDO
_______________________
3、将“借阅”表中借书日期超过一年且还
没有归还的记录的“标记”字段填充“*”。
USE 借阅
DO WHILE _________
IF 还书日期={/} AND DA TE()—借书日期>365
REPLACE ___________
ENDIF
SKIP
ENDDO
USE
RETURN
4、一个自定义函数FX,计算F(X)
=EX+3X+10的值,并编写一个主程序调
用FX函数,分别计算变量X由5到10
(步长为1)的函数值
*FX.PRG
FOR I=5 TO 10
?“X=”,I,“F(X)=”,_________
NEXT
RETURN
FUNCTION FX(X)
________________
RETURN F
5、下列程序根据输入的学生成绩,来判断
学生成绩等级,其中成绩大于或等于90分
的为优秀,75-90的为良好,60-74为及格,
小于60分的为不及格,请正确补充程序运
行。
Clear
Set talk off
____________(“请输入成绩:”) to cj
Do case
Case cj<60
Dj=”不及格”
Case cj<75
Dj=”及格”
Case cj<90
Dj=”良好”
____________
Dj=”优秀”
Endcase
? Dj
Set talk on
6、设表STU.DBF中有“学号、姓名、性别、
出生日期、班级”等字段,程序完成根据姓
名进行的查询:
Set talk off
Use stu
Store space(6) to xm
Index on 学号to xh
accept “输入姓名:” to xm
locate for 姓名=xm
display
else
?“查无此人”
Endif
Wait “继续吗?”to yn
If upper(yn)=”N”
Exit
Else
Loop
Endif
Enddo
Use
Set talk off
7、请阅读下列判断一个自然数是否为质数
的程序,并将程序填空完整.
Set talk off
Input”请输入一个大于1的自然数:” to n
K=0 &&K的值为0表示所输入的自然数是
质数, 为1表示不是质数
j=2
Do while j<n
If mod
(n,j)_____________________________
Loop
Else
K=1
Exit
Endif
If k=0
?__________________+”是质数”
Endif
?”再见!!”
Set talk on
Return
8、定义一个二维数组X(8,9),给数组元
素为该元素下标组成的数值。
SET TALK OFF
DIMENSION X(8,9)
FOR N=1 TO 8
FOR M=1 TO 9
________________
END FOR
END FOR
RETURN
9、在ZGDA.DBF表中查找用户指定的编号。
如果查找成功,则显示找到的记录,否则显
示一条说明信息。
试完成下面的程序。
SET TALK OFF
USE D:\ZG\ZGDA
DO WHILE .T.
CLEAR
ACCEPT”请输入编号:” TO BH
LOCATE FOR ________________
IF FOUND()
DISPLAY
ELSE
WAIT“不存在该编号”WINDOW TIMEOUT 1
ENDIF
WAIT”是否继续查找?(Y/N)”TO ANSWER WINDOW
IF UPPER(ANSWER)<>”Y”
___________________________
ENDIF
ENDDO
USE
SET TALK ON
RETURN
10、按每次显示一条记录的方式显示JSDA.DBF的所有记录。
SET TALK OFF
USE D:\ JSGL\JSDA
CLEAR
FOR N=1 TO _______
DISPLAY
SKIP
W AIT”按任意键继续” WINDOW
ENDFOR
USE
SET TALK ON
RETURN
11、输入一个正数,使用过程计算以该数为半径的圆的面积。
试完成下面的程序。
CLEAR
AM=0
INPUT“请输入一个正数:” TO X
DO AREA WITH AM,(X)
?”半径为”+ALLTRIM(STR(X,20,2))+”的
圆面积为:”+ALLTRIM(STR(AM,20,2))
RETURN
_________________ &&定义过程
PARAMETERS AR,R
AR=3.14*R*R
ENDPROC
12、计算分段函数的值:{012012
)
(≥
+
<
-
=x
x
x
x
x
f
SET TALK OFF
CLEAR
INPUT“请输入X的值:“TO X
IF_______________________
Y=2*X+1
ELSE
Y=2*X-1
ENDIF
?”f(“+ALLTRIM(STR(X))+”ALLTRIM(STR(
Y))
_________________
RETURN
二、程序改错
1、下面程序的功能是完成图书查询,用户
输入书名后,从图书表(图书.dbf)中查询
给定书目的信息。
若用户没输入书名,则要
求用户重新输入,若用户输入字符串“000
“,则结束查询。
程序中有两行错误,请将
错误语句改正后写在右边相应的横线上。
Use 图书
Do while .T. _________________
Accept”请输入书名:” to sm ________
If LEN(ALLTRIM(SM))=0 _________
EXIT ______________
ENDIF _______________
IF ALLTRIM(SM)=”000”_____________
LOOP ____________
ENDIF ____________
LOCATE ALL FOR 书名=ALLTRIM(SM)
______________________________
IF FOUND() _____________
DO WHILE .NOT. EOF( ) _____________
DISPLAY _____________
CONTINUE _____________
ENDDO _____________
ELSE _____________
?”查无此书”______________
ENDIF ______________
ENDDO _____________
RETURN
2、下面程序的功能是:输入8个字符,如
果第三到第六个字符为“OKOK”,则执行命
令文件Pass,否则重新输入,若输入超过三
次则退出程序运行。
程序中有两行错误,请
将错误语句改正后写在右边相应的横线上。
Clear
Password =SPACE(8)
I=3
Do while .T.
@10,10 SAY “输入口令:” GET PASSWORD
Read
If str(password,3,4)=”OKOK”_______
Quit &&退出循环
Else
I=I-1
If I=0
Return
Endif
Endif
Enddo
Do pass。