计算机专业模拟试卷(程序填空和程序改错)
湖南省计算机二级VB程序改错部分题库

湖南省计算机二级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-50

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];。
计算机二级上机考试(程序改错题)1

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)_真题无答案

计算机等级考试(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中的大写字母都改为对应的小写字母,其他字符不变。
C语言考试改错填空编程题题库·

改错题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)_真题无答案

计算机等级考试(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.doc
![[计算机类试卷]国家二级C语言机试(操作题)模拟试卷355.doc](https://img.taocdn.com/s3/m/92e73bfea417866fb94a8e50.png)
[计算机类试卷]国家二级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语言程序设计模拟试题5(附答案)

《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]); }}五、按给出的程序功能,在空格处,填写正确的程序语句,使程序完整。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、程序填空
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。