程序填空、改错第二次练习

合集下载

计算机专业模拟试卷(程序填空和程序改错)

计算机专业模拟试卷(程序填空和程序改错)

一、程序填空1、有学生表ST,其中“编号”(N,2,0)字段值从1开始连续排列。

以下程序欲按编号1,9,17,25……的规律抽取学生参加比赛,并在屏幕上显示参赛学生的编号,请填空。

USE STDO WHILE NOT EOF()IF MOD__________??编号ENDIFSKIPENDDO2、通过键盘输入读者的借书证号,在“读者”表和“借阅”表中查找该读者及借书的有关信息。

OPEN DATABASE BOOKSDO WHILE ___________ACCEPT”请输入借书证号:” TO ZHSELECT * FROM 读者,借阅WHERE读者.借书证号=借阅.借书证号AND ;读者.借书证号=ZHWAIT“继续查询(Y/N)?”TO YNIF UPPER(Y/N)<>“Y”_______________________ENDIFENDDO_______________________3、将“借阅”表中借书日期超过一年且还没有归还的记录的“标记”字段填充“*”。

USE 借阅DO WHILE _________IF 还书日期={/} AND DA TE()—借书日期>365REPLACE ___________ENDIFSKIPENDDOUSERETURN4、一个自定义函数FX,计算F(X)=EX+3X+10的值,并编写一个主程序调用FX函数,分别计算变量X由5到10(步长为1)的函数值*FX.PRGFOR I=5 TO 10?“X=”,I,“F(X)=”,_________NEXTRETURNFUNCTION FX(X)________________RETURN F5、下列程序根据输入的学生成绩,来判断学生成绩等级,其中成绩大于或等于90分的为优秀,75-90的为良好,60-74为及格,小于60分的为不及格,请正确补充程序运行。

ClearSet talk off____________(“请输入成绩:”) to cjDo caseCase cj<60Dj=”不及格”Case cj<75Dj=”及格”Case cj<90Dj=”良好”____________Dj=”优秀”Endcase? DjSet talk on6、设表STU.DBF中有“学号、姓名、性别、出生日期、班级”等字段,程序完成根据姓名进行的查询:Set talk offUse stuStore space(6) to xmIndex on 学号to xhaccept “输入姓名:” to xmlocate for 姓名=xmdisplayelse?“查无此人”EndifWait “继续吗?”to ynIf upper(yn)=”N”ExitElseLoopEndifEnddoUseSet talk off7、请阅读下列判断一个自然数是否为质数的程序,并将程序填空完整.Set talk offInput”请输入一个大于1的自然数:” to nK=0 &&K的值为0表示所输入的自然数是质数, 为1表示不是质数j=2Do while j<nIf mod(n,j)_____________________________LoopElseK=1ExitEndifIf k=0?__________________+”是质数”Endif?”再见!!”Set talk onReturn8、定义一个二维数组X(8,9),给数组元素为该元素下标组成的数值。

c语言改错题及答案

c语言改错题及答案

c语言改错题及答案【篇一: c 语言二级上机(t 填空 ,改错 ,编程 )题库及答案】100套题目(每套题目包含 3 道题:一道程序填空题、一道程序修改题、一道程序设计题),真实考试的时候,考生输入准考证后计算机随机为你抽取一套考试,每个考生考试时只需考一套题目(包含三道题)二级 c 语言上机试题汇编※※※※※※※※※※※※※※※※※※※※※※※第01套:给定程序中,函数 fun 的功能是:将形参 n 所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针 n 传回所指变量。

例如,输入一个数:27638496 ,新的数:为739 。

请在程序的下划线处填入正确的内容并把下划线删除 , 使程序得出正确的结果。

注意:源程序存放在考生文件夹下的blank1.c中。

不得增行或删行,也不得更改程序的结构!给定源程序:#include stdio.hvoid fun(unsigned long *n){ unsigned long x=0, i; int t;i=1;while(*n)/**********found**********/{ t=*n % __1__;/**********found**********/if(t%2!= __2__){ x=x+t*i; i=i*10; }*n =*n /10;}/**********found**********/*n=__3__;}main(){ unsigned long n=-1;while(n99999999||n0){ printf(please input(0n100000000): ); scanf(%ld,n); }fun(n);printf(\nthe result is: %ld\n,n);}【参考答案】(1)10 (2) 0 (3) x解题思路:第一处: t 是通过取模的方式来得到*n 的个位数字,所以应填:10 。

c语言(if语句)练习题

c语言(if语句)练习题

一、程序填空:输入3个数分别是a 、b 、c 。

先将a 、b 中的较大致存入a 中、较小数存入b 中;再让a 与c 比较,将a 与c 中的较大数存在a 中,较小数存人c 中;最后比较b 与c ,将b 、c 中的较大数存入b 中,较小数存入c 中。

这样a 、b 、c 这3个数的序列即按从大到小排列。

#include <stdio.h>main(){int a,b,c,t;printf(“Input three integers:”);scanf(“%d,%d,%d ”, ); /*输入a ,b ,c3个整数*/if(a<b)/*交换a ,b 的值*/if(a<c)/*交换a ,c 的值*/if(b<c)/*交换b ,c 的值*/printf(“Big to small is:%d,%d,%d ”,a,b,c);}二、程序改错:下面的程序实现求解()()()2222100100x x f x x x ⎧->⎪=⎨--≤⎪⎩分析下列程序代码能否实现,如果程序中存在错误,请修改程序中的错误,然后运行修改后的程序。

#include <stdio.h>main(){int x,y;scanf(“%d ”,&x);if(x*x – 10>0);y = x*x;printf(“y= %d\n ”,y);elsey=-(x*x);printf(“y=%d\n ”,y);}三、编程题1、编写程序从键盘上输入两个整数,检查第一个数是否能被第二个数整除。

2、编写一个程序,输入某人的身高(cm)和体重(kg),按下式确定其体重是否为标准、过胖或过瘦。

(1)标准体重=身高-110;(2)超过标准体重5kg(即大于5kg)为过胖;(3)低于标准体重5kg(即小于5kg)为过瘦。

3、判断某一年是否是闰年:(1) 被4整除但不能被100整除; 或(2) 被400整除;4、编写程序计算升高:每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明,影响小孩成人后身高的因素有遗传、饮食习惯与坚持体育锻炼等。

2013年程序改错、填空、编写答案

2013年程序改错、填空、编写答案

2013年程序改错、填空、编写题的答案(一)程序改错题。

一、各数位数的取法1、b=int((x-a*1000)/100)C= int((x-a*1000-b*100)/10)2、a=int(x/1000)If a=d and b=cN=n+13、n=0C=int(mod(I,100)/10)If int(sqr(i))=sqrt(i) and int(sqr(x))=sqrt(x) N=n+14、min=9999C=int(mod(x,100)/10)Max=x5、if mod(x,6)=0 and mod(x,9)<>0S=s+x6、b=int((x-a*100)/10)If a<>8 and b<>8 and c<>87、y=b*10+a?y二、整除与余数1、IF MOD(x,5)<>0 and MOD(x,7)<>0n=n+1?n2、if mod(n,6)=0 or mod(n,8)=0S=s+sqrt(n)3、X=x*8N=n+14、 do while k<20If mod(x,4)=0 or mod(x,6)=05、FOR n=2 to a-1IF MOD(a,n)=0exit?n6、if mod(x,2)=0 and not(mod(x,3)=0 andmod(x,5)=0)S=s+x7、 max=d?d改为?max8、for d=1 to bLoop改为c=dk=a*b/c9、IF MOD(n,i)=0IF MOD(n,s)=0 and MOD(n,3)=010、IF AT("7",STR(x),2)>0s=s+x11、p=2后面加上 N=0N=1改为N=n+1三、求素数类。

1、FOR j=2 to i-1Loop改为:EXIT2、FOR j=2 to i-1K=k+13、FOR i=2 to INT(SQRT(s-1))IF flag=14、FOR i=2 to x-1IF a*a+b*b+c*c+d*d=100 and x>maxmax=x5、j=mod(i,10)*10+int(i/10)f1=1for k=2 to i-1 if mod(i,k)=0f1=0exitendifendforif f1=1f2=1for k=2 to j-1if mod(j,k)=0f2=0exitendifendforif f2=1max=iendifendifendfor?max四、数列、数组类。

C语言程序设计(第二版)答案

C语言程序设计(第二版)答案

参考答案习题二(P33)一.单选题1.C2.B3.D4.C5.A6.D7.D8.B9.B 10.D 11.D 12.C 13.C . 15. A 14题最后一句应为printf("%f\n",d*y);结果为2.2二.填空题1. 182. int float double3. 10 114. 八十六十5. %三.阅读程序题1.10,10,9,102.j=1,i=2k=3,i=3j=3,i=2k=1,i=1习题三(P52)一.单选题1.D2.C3.D4.B5.A6.B7.C8.A9.C 10.B 11. -1,37777777777,4294967295 二.填空题5. L6. -1三.阅读程序题1. 6 6 6.00 6.002. x=127,x= 127,x=177,x=7fY=123.4567 , y= 123.46 , y=123.456703. 2,14. 12345. 4,36. -6,-6四.程序设计题1.#include "stdio.h"#include "math.h"main(){float a,b,c,d,x1,x2;a=2;b=-3;c=-5;d=b*b-4*a*c;x1=(-b+sqrt(d))/(2*a);x2=(-b-sqrt(d))/(2*a);printf("x1=%.2f,x2=%.2f\n",x1,x2);}2.#include <stdio.h>main(){ float a,v,s;scanf("%f",&a);v=a*a*a;s=6*a*a;printf("v=%.2f,s=%.2f\n",v,s);}3.#include <stdio.h>main(){ int a,b,c,t;scanf("%d%d%d",&a,&b,&c);printf("a=%d,b=%d,c=%d\n",a,b,c);t=c;c=b;b=a;a=t;printf("a=%d,b=%d,c=%d\n",a,b,c);}4.#include <stdio.h>main(){ char s1,s2;s1=getchar();s2=s1-32;printf("%c\n",s2);}习题四(P70)一.单选题1.C2.D3.D4.B5.A6.D7.D8.B9.C 10.A 11.B 12.D 13.passwarnerror .14.C 15. C 16.B 17. B 18. C二.填空题1. 非0 02. k==03. n%7==0 && n%8==0 else三.阅读程序题1. a=1,b=02. c=1四.程序设计题1.#include <stdio.h>main(){ int a,b;char c;printf("INPUT A+(-*/)B\n");scanf("%d%c%d",&a,&c,&b);switch(c){case'+':printf("%d+%d=%d\n",a,b,a+b);break;case'-':printf("%d-%d=%d\n",a,b,a-b);break;case'*':printf("%d*%d=%d\n",a,b,a*b);break;case'/':printf("%d/%d=%d\n",a,b,a/b);break;default:printf("INPUT ERROR!");}}2.#include <stdio.h>main(){ float x,y;scanf("%f",&x);if(x==0||x==2)y=0;else if(x>0) y=(x+1)/(x-2);else y=(x-1)/(x-2);printf("y=%f\n",y);}3.#include <stdio.h>main(){ int g;printf("请输入学生成绩:");scanf("%d",&g);printf("g=%d:",g);switch(g/10){case 10:printf("A\n");break;case 9:printf("B\n");break;case 8:printf("C\n");break;case 7:printf("D\n");break;case 6:printf("E\n");break;default:printf("F\n");}}4.#include <stdio.h>main(){ int x,n=0;scanf("%d",&x);if(x<=0||x>=10000)printf("Data Error!\n");else{if(x<10)n=1;else if(x<100)n=2;else if(x<1000)n=3;else n=4;}printf("n=%d\n",n);}习题五(P87)一.单选题1.B2.D3.C4.C5.B6.C7.D8.C9.A 10.D 11.B 12.B 13.B 14.D 15. C 二.填空题1. for语句while语句do-while语句2. a=14,y=263. k=14,n= -14. 395. s=196. 222227. 108. 79. 810. 5,5三.改错题应改为for(i=0;i<5;i++)j++;应改为int j=0;while(j<10){j++;i=j;} 注while(j<10)后不应有分号应改为while(j<10); 注while(j<10)后分号不能少s*=i;i++;应改为{s*=i;i++;}continue 应改为break四.程序设计题1.#include <stdio.h>main(){ int i,j,s=0;for(i=1,j=1;i<=100;i++,j=j*(-1))s=s+i*j;printf("s=%d\n",s);}1.(另一做法)#include<stdio.h>main(){int i,s;for(i=1,s=0;i<=100;i++)if(i%2==0)s=s-i;else s=s+i;printf ("%d\n",s);}2.#include <stdio.h>main(){ int i,j,s1=0,s2=0;for(i=0;i<10;i++){scanf("%d",&j);if(j>0)s1=s1+j;else s2=s2+j;}printf("s1=%d,s2=%d\n",s1,s2);}3.#include<stdio.h>main(){int i,s;for(i=6,s=0;i<=96;i=i+1)if(i%10==6||i/10==6)s=s+i;printf ("%d\n",s);}4.#include<stdio.h>main(){int i,a,b,c;for(i=100;i<=999;i++){a=(i%10);b=(i/10%10);c=(i/100);if(i==a*a*a+b*b*b+c*c*c)printf ("%d\n",i);}}5.#include <stdio.h>main( ){int i,j,k=0;for (i=1;i<=4;i++){for (j=1;j<=i;j++){k++;printf("%d",k%10);}printf("\n");}}6.#include <stdio.h>main( ){int i,j,k=0;for (i=-3;i<=3;i++){if(i<0)k=-i;else k=i;for(j=1;j<=k;j++)printf(" ");for(j=1;j<=7-2*k;j++)printf("*");printf("\n");}}习题六(P111)一.单选题1.D2.B3.C4.C5.C6.D7.A8.B二.填空题1. 20 0 192. 数组名3. 越界4. 65. j==k a[j][k]=1; a[j][k]=0;三.阅读程序题1. 6 5 43 2 12.aaabbbccc ddd3.2,2,1四.程序设计题1.#include<stdio.h>main(){ int a[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; int i,j,s=0;for(i=0;i<4;i++)for(j=0;j<4;j++)if(i==j||i+j==3)s+=a[i][j];printf("%d",s);}2.#include <stdio.h>{ char a[80];int i,j=5; /*假设删除位置为5*/gets(a);for(i=j-1;a[i]!='\0';i++)a[i]=a[i+1];a[i]='\0';puts(a);}3.#include <stdio.h>#include <string.h>main(){ char a[80];int i,j=5; /*假设插入位置为5*/char s='t'; /*假设插入字符为t*/gets(a);for(i=strlen(a);i>j;i--)a[i+1]=a[i];a[j]='t';puts(a);}4.#include<stdio.h>main(){ int a[3][5]={1,3,5,7,9,2,4,6,8,10,3,5,8,7,6}; int i,j,s1[3]={0},s2[5]={0};for(i=0;i<3;i++)for(j=0;j<5;j++)s1[i]+=a[i][ j];for(i=0;i<5;i++)for(j=0;j<3;j++)s2[i]+=a[ j][i];for(i=0;i<3;i++){for(j=0;j<5;j++)printf("%6d",a[i][j]);printf (" |%6d\n",s1[i]);}for(i=0;i<33;i++) printf("-");printf("\n");for(i=0;i<5;i++) printf("%6d",s2[i]);printf("\n");}5.#include<stdio.h>{ char s[3][80];int a=0,b=0,c=0,d=0,e=0,i,j;for(i=0;i<3;i++) gets(s[i]);for(i=0;i<3;i++)for(j=0;s[i][j]!='\0';j++)if(s[i][j]>='A'&&s[i][j]<='Z')a++;else if(s[i][j]>='a'&&s[i][j]<='z')b++;else if(s[i][j]>='0'&&s[i][j]<='9')c++;else if(s[i][j]==32)d++;else e++;printf("%3d%3d%3d%3d%3d",a,b,c,d,e);}习题七(P145)一.单选题1.A2.B3.C4.A5.C6.D7.C8.B9.B 10.C 11.D 二.填空题1. 该函数内局部2. 整型3. k<=breturn y;4. x[i]return (ave);fun(a,20)5. 1;add(n-1);add(n);6. n*f(n-1)0;f(i)三.阅读程序,写出运行结果1.10,20,302.643.84. hlo5. sum=55四.程序设计题1.#include <stdio.h>main(){float add(float, float), sub(float, float);float aver(float, float),a,b;scanf("%f,%f",&a,&b);printf("add=%f, sub=%f\n ", add(a,b), sub(a,b)); printf("aver =%f", aver(a,b));}float add(float x, float y) {return(x+y);}float sub(float x, float y) {return(x-y);}float aver(float x, float y) {return((x+y)/2);} 2.#include<stdio.h>main(){ int a,b,c,abmax(int,int);scanf("%d%d%d",&a,&b,&c);printf("max=%d\n",abmax(abmax(a,b),c)); }int abmax(int a,int b){if(a>b)return a;else return b;}3.#include <stdio.h>main(){float x,fun(float, int);int n;scanf("%f%d",&x,&n);printf("%f\n", fun(x,n));}float fun(float x, int n){float y;if(n==0)y=1;else y=x*fun(x,n-1);return y;}4.#include <stdio.h>main(){long f(int);int n,k;scanf("%d",&n);for(k=1;k<=n;k++)printf("%ld,",f(k));printf("\n");}long f(int n){long y;if(n<=2)y=1;else y=f(n-1)+f(n-2); return y;}5.#include <stdio.h>#include <string.h> main(){char a[50];int n;void fun(char x[ ],int n); gets(a);n=strlen(a); fun(a,n);puts(a);}void fun(char a[ ],int n) {int k,s;for(k=0;k<n/2;k++) {s=a[k];a[k]=a[n-k-1];a[n-k-1]=s;}}5. (另一做法)#include <stdio.h>#include <string.h> main(){char a[50];int n;void fun(char x[ ],int n); gets(a);n=strlen(a); fun(a,n);puts(a);}void fun(char a[ ],int n) {int k;char b[50];for(k=0;k<n;k++)b[n-1-k]=a[k];b[k]=a[k];strcpy(a,b);}6.#include <stdio.h>#define KK 100main(){char a[KK];long sjz(char a[]);int i=0,f1=0;printf("input a data:");gets(a);for(i=0;a[i]!='\0';i++){if(a[i]>='0'&&a[i]<='9'||a[i]>='A'&&a[i]<='F'||a[i]>='a'&&a[i]<='f') continue;else {f1=1;break;}}a[i]='\0';if(f1==1)printf("Data Error!\n");else printf("result is :%d\n",sjz(a));}long sjz(char a[]){long n=0,i;;for(i=0;a[i]!='\0';i++){if(a[i]>='0'&&a[i]<='9')n=n*16+a[i]-'0';if(a[i]>='A'&&a[i]<='F')n=n*16+a[i]-'A'+10;if(a[i]>='a'&&a[i]<='f')n=n*16+a[i]-'a'+10;}return n;}6.(另一做法)#include <stdio.h>#define KK 100main(){char str[KK],c;long sjz(char a[]);int i=0,f1=0;printf("input a data:");while((c=getchar())!='\n'&&i<KK){if(c>='0'&&c<='9'||c>='A'&&c<='F'||c>='a'&&c<='f')str[i++]=c;else f1=1;}str[i]='\0';if(f1==1)printf("Data Error!\n");else printf("result is :%d\n",sjz(str));}long sjz(char a[]){long n=0,i;;for(i=0;a[i]!='\0';i++){if(a[i]>='0'&&a[i]<='9')n=n*16+a[i]-'0';if(a[i]>='A'&&a[i]<='F')n=n*16+a[i]-'A'+10;if(a[i]>='a'&&a[i]<='f')n=n*16+a[i]-'a'+10;}return n;}习题八(P181) (注:无答案的题不在本课程讲授范围内)一.单选题1.D2.A3.C4.D5.C6.B7.C8.C9.C 13.D 14.B 15.A 16.C 17.A 二.填空题1. 指向取地址2. 2 +23. 286. *(p+5)7. ABCD A三.阅读程序题1.102.103.04. 3,65. 1 2 3 4四.程序填空题1.a,b,c或者&x,&y,&z max=*b或者max=y max=*c或者max=z2. ++ =*q ++ ++4. int *a,int *b b[j]=a[i] b[i++]5. *str+=3 *str>’z’&&*str<’a’||*str>’z’ a6. else 0 t[2*j+1]五.程序设计题1.#include <stdio.h>main(){int a[10],*p,*q,t;p=a;for(q=a;q<a+10;q++)scanf("%d",q);for(q=a;q<a+10;q++)printf("%5d",*q);printf("\n");q--;for(;p<q;p++,q--){t=*p;*p=*q;*q=t;}for(p=a;p<a+10;p++)printf("%5d",*p);printf("\n");}2.#include <stdio.h>#include <string.h>void main( ){ char a[50],*p1,*p2,t,n;gets(a);n=strlen(a);p1=a; p2=a+n-1;for(; p1<p2; p1++, p2--){t=*p1; *p1=*p2; *p2=t;}puts(a);}另一做法#include <stdio.h>main(){char str[20],*p=str;gets(str);while(*p)p++;p--;while(p>=str){printf("%c",*p);p--;}printf("\n");}3.#include <stdio.h>main(){int a[10],*p,*max,*min,t;for(p=a;p<a+10;p++)scanf("%d",p); for(p=a;p<a+10;p++)printf("%5d",*p); printf("\n");max=min=a;for(p=a+1;p<a+10;p++){if(*p>*max)max=p;if(*p<*min)min=p;}t=a[0];a[0]=*min;*min=t;t=a[9];a[9]=*max;*max=t;for(p=a;p<a+10;p++)printf("%5d",*p); printf("\n");}5.#include <stdio.h>int length(char *s){int n=0;while(*s){n++;s++;}return n;}main(){char str[20];int n;gets(str);n=length(str);printf("The string length is %d\n",n);}6.#include <stdio.h>main(){char str[81],*p=str,*q,t;gets(str);printf("The origenal string:\n");puts(str);for(p=str;*(p+1);p++)for(q=p+1;*q;q++)if(*q<*p){t=*p;*p=*q;*q=t;}printf("The result string:\n");puts(str);}习题九(P222) (注:无答案的题不在本课程讲授范围内)一.单选题1.D2.A3.B4.D 8.B 9.B 10.C二.填空题1. 结构体成员结构体指针指向2. 343. 224.ex三.阅读程序题1.92.10,x3.134. 46 40 415. 06. 3839。

C程序填空改错及答案(可编辑修改word版)

C程序填空改错及答案(可编辑修改word版)
printf("%d\n",n); }
15、结果:52
#include<stdio.h> int fun(int a,int b) { int r,t;
if(a<b) { t=a; a=b; b=t; } r=a%b; while(r!=0) { a=b;
b=r; /*下行有错*/ r=a/b; // r=a%b; } /*下行有错*/ return a; // return b; } main() { int a; a=fun(780,208); printf("%d\n",a); }
#include<stdio.h> void main() {
int num,a,b,c,count=0; /*下行有错*/ while(num=101;num<1000;num++) // for(num=101;num<1000;num++) {
a=num/100; b=num%100/10; c=num%10; /*下行有错*/ if(num+c*100+b*10+a=1333) // if(num+c*100+b*10+a==1333)
if(a%b==0) sum=sum+a/b; } for(i=2;i<=9;i++) if(sum==a*i) /*下行有错 */ count+=i; //count+=1; } printf("%d\n",count); }
7、结果:495.00
#include<stdio.h> float fun(int m, int n) {

二级程序填空改错

二级程序填空改错

一:程序填空题给定程序中,函数fun 的功能是:统计出带有头结点的单向链表中节点的个数,存放在形参n 所指的存储单元中。

填空:(1) *n (2) next (3) head改错:(1) a=NULL; (2) if(*r==*p)编程:int i,j=0;for(i=0;i<strlen(s);i+=2)if(s[i]%2==0) t[j++]=s[i];t[j]='\0';二:程序填空题给定程序中,函数fun 的功能是:计算出带有头结点的单向链表中各节点数据域中值之和作为函数值返回。

填空:(1) data (2) next (3) head改错:(1) while(*r) (2) *a=*r;a++;r++;编程:int i,j=0;for((i=0;i<strlen(s);i+=2)t[j++]=s[i];t[j]='\0';三:程序填空题给定程序中,函数fun 的功能是:将s 所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的先后次序。

例如:形参s 所指的字符串为:def35adh3kjsdf7。

执行结果为:defadhkjsdf3537填空:(1) j++ (2) s[i]=t1[i] (3) j改错:(1) for(j = i + 1; j < 6; j++) (2) *(pstr + i) =*( pstr + j);编程:int cnt=0;char *p=ss;while(*p){if(*p==c)cnt++;p++;}return cnt;四:程序填空题给定的程序中,函数fun 的功能是:统计形参s 所指字符串中数字字符出现的次数,并存放在形参t 所指的变量中,最后在主函数中输出,例如,形参s 所指的字符串为abcdef35adgh3kjsdf7。

输出结果为:4。

填空:(1)s[i] (2)'9' (3) *t=n;改错: (1) t=*x;*x=y; (2) return (t);编程:int i;*n=0;for(i=7;i<1000;i++)if (((i%7)==0)||((i%11)==0)&&((i%77)!=0)a[(*n)++]=i;五程序填空题给定的程序中,函数fun 的功能是:把形参s 所指字符串中下标为奇数的字符右移到下一个奇数的位置,最右边被移出的字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动(注:字符串的长度大于等于2)例如:形参s 所指字符串为:abcdefgh,执行结果为:ahcbedgf填空:(1) 1 (2) s[k] (3) c改错:(1) long s = 0,t = 0; (2) t = t / 10;编程:char *p=tt;int i;for(i=0;i<26;i++)pp[i]=0;while(*p){if(*p>='a' &&p<='z')pp[*p-'a']+=1;p++;}六、程序填空题在给定程序中,函数fun 的功能是:对形参s 所指字符串下标喂奇数的字符按ASCII 码大小递增排序,并将排序后下标为奇数的字符取出,存入形参p 所指字符数组中形成一个新串。

c语言程序阅读填空运行结果改错题

c语言程序阅读填空运行结果改错题

三、读程序题1、float f=3.1415927;printf(“%f,%5.4f,%3.3f”,f,f,f);则程序的输出结果是3.141593,3.1416,3.142 .2、int x=6,y=7;printf(“%d,”,x++);printf(“%d\n”,++y);程序的输出结果是6,83、a=3;a+=(a<1)?a:1;printf(“%d”,a);结果是. 44、for (a=1,b=1;a<=100;a++){ if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;}程序的输出结果a的值为22 .5、int y=1,x,*p,a[ ]={2,4,6,8,10};p=&a[1];for(x=0;x<3;x++)y + = * (p + x);printf(“%d\n”,y);程序的输出结果y的值是19 .四、程序填空题1、从键盘上输入10个数,求其平均值。

main(){int i;float f,sum;for(i=1,sum=0.0;i<11;i++){ scanf(“%f”,&f);Sum+=f ;}printf(“average=%f\n”,sum/10);}2、以下程序是建立一个名为myfile的文件,并把从键盘输入的字符存入该文件,当键盘上输入结束时关闭该文件。

#include <stdio.h>main(){ FILE *fp;char c;fp= ;do{c=getchar();fputs(c,fp);}while(c!=EOF);3、以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。

请填空。

main(){ float x,amax,amin;scanf(“%f”,&x);amax=x;amin=x;while(x>=0.0 ){ if(x>amax)amax=x;if(x<=amin )amin=x;scanf(“%f”,&x);}printf(“\namax=%f\namin=%f\n”,amax,amin);}三、阅读程序题(1) 3.141593,3.1416,3.142(2)6,8(3) 4(4)22(5)19四、程序填空题1、scanf(“%f”,&f);sum+=f;2、fopen(“myfile”,w)fclose(fp);3、x>=0.0 x<=amin三、阅读程序题1、int x=6,y=7;printf(“%d,”,x++);printf(“%d\n”,++y);程序的输出结果是______.2、float f=3.1415927;printf(“%f,%5.4f,%3.3f”,f,f,f);则程序的输出结果是______.3、a=3;a+=(a<1)a:1;printf(“%d”,a);结果是______.4、main(){ int a[5]={2,4,6,8,10},*P,* *k;p=a;k=&p;printf(“%d,”,*(p++));printf(“%d\n”,* *k);程序的输出结果是______.5、main(){int a,b;for (a=1,b=1;a<=100;a++){ if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;} }程序的输出结果a的值为______.四、程序填空题1、求主次对角线之和。

C语言习题(7)

C语言习题(7)

C语言习题(第7章函数)一.选择题1.以下说法正确的是________。

A)C语言程序总是从第一个函数开始执行B)在C语言程序中,要调用的函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分2.以下正确的说法是___________。

A)用户若需要调用标准库函数,调用前必须重新定义B)用户可以重新定义标准库函数,如若此,该函数将失去原有定义C)系统不允许用户重新定义标准库函数D)用户若需要使用标准库函数,调用前不必使用预处理命令将该函数所在的头文件包含编译,系统会自动调用。

3.以下正确的函数定义是___________。

A)double fun(int x, int y); B)int fun(int x,y){ z=x+y ; return z ; } { int z ; return 3;}C)double fun (x,y) D)double fun (int x, int y){ int x, y ; double z ; { double z ; z=x+y;z=x+y ; return z ; } return z ; }4.C语言中,简单变量做实参和形参时,以下正确的说法是___________。

A)实参和与其对应的形参各占用独立的存储单元B)实参和与其对应的形参共占用一个存储单元C)只有当实参和与其对应的形参同名时才共占用相同的存储单元D)形参时虚拟的,不占用存储单元5.C语言规定,简单变量做实参时,它和对应的形参之间的数据传递方式是___________。

A)地址传递B)单向值传递D)由用户指定传递方式6.C语言规定,函数返回值的类型是由___________决定的。

A)return语句中的表达式类型B)调用该函数时的主调函数类型C)调用该函数时由系统临时D)在定义函数时所指定的函数类型7.以下正确的描述是___________。

程序改错复习题答案

程序改错复习题答案

程序改错复习题答案1. 题目:在下面的代码中找出并修正错误,使其能够正确计算并输出两个数的和。

```pythondef sum_numbers(a, b):result = a + bprint("The sum is:", result)sum_numbers(5, "3")```答案:错误在于第二个参数传递了一个字符串类型的值,而函数期望的是一个数字类型。

应将字符串 "3" 改为整数 3。

```pythondef sum_numbers(a, b):result = a + bprint("The sum is:", result)sum_numbers(5, 3)```2. 题目:修正以下代码中的错误,使其能够正确地将列表中的所有元素乘以2。

```pythonmy_list = [1, 2, 3, 4]for i in range(len(my_list)):my_list[i] = my_list[i] * 2print(my_list)```答案:代码本身没有错误,可以直接运行。

但是,更高效的方式是使用列表推导式。

```pythonmy_list = [1, 2, 3, 4]my_list = [x * 2 for x in my_list]print(my_list)```3. 题目:找出并修正以下代码中的错误,使其能够正确地计算并输出一个数的平方。

```pythondef square_number(n):return n * nprint(square_number("5"))```答案:错误在于函数调用时传递了一个字符串类型的值,而函数期望的是一个数字类型。

应将字符串 "5" 改为整数 5。

```pythondef square_number(n):return n * nprint(square_number(5))```4. 题目:修正以下代码中的错误,使其能够正确地遍历字典中的所有键值对。

程序改错与填空全部试题

程序改错与填空全部试题

程序改错、程序填空程序填空:第1题:题目:下面是计算1+1+2+2+…n+n之和的平方根的程序。

SET TALK OFFINPUT TO N*************SPACE******* 【?】FOR I=1 TO N*************SPACE*******S=【?】ENDFOR*************SPACE*******?“结果是”,【?】RETURN答案:(1)S=0 (2)s+2*I (3)SQRT(S)第2题:题目:以下程序通过键盘输入4个数字,找出其中最小的数。

SET TALK OFF*************SPACE******* 【?】INPUT “请输入第一个数字”TO XDO WHILE I<=3M=XINPUT “请输入数字”TO M *************SPACE********* ****IF 【?】M=XENDIF*************SPACE******* 【?】ENDDO?“最小的数是”,MSET TALK ON答案:(1)I=1(2)X<M(3)I=I+1 第3题:题目:以下程序的功能:t=20+21+22+ (2)SET TALK OFF*************SPACE******* 【?】*************SPACE******* 【?】TO NFOR I=0 TO N*************SPACE*******T=T+【?】ENDFOR?“T的值是:”,TSET TALK ONRETURN答案:(1)T=0(2)INPU T(3)2**I第4题:题目:复制表XSDA.DBF,生成新表XS.DBF,在新表中查找所有男同学的记录,并将男同学的记录逻辑删除。

SET TALK OFFUSE XSDA*************SPACE******* 【?】USE XSLOCA TE FOR 性别=“男”DO WHILE FOUND()*************SPACE******* 【?】*************SPACE******* 【?】ENDDOUSESET TALK ON答案:(1)COPY TO XS(2)DELETE(3)CONTINUE第5套:题目:表RSDA.D BF结构为:姓名(C,6);性别(C,2),年龄(N,2),出生日期(D,8)。

c语言程序阅读填空、运行结果、改错题

c语言程序阅读填空、运行结果、改错题

三、读程序题1、float f=3.1415927;printf(“%f,%5.4f,%3.3f”,f,f,f);则程序的输出结果是3.141593,3.1416,3.142 .2、int x=6,y=7;printf(“%d,”,x++);printf(“%d\n”,++y);程序的输出结果是6,83、a=3;a+=(a<1)?a:1;printf(“%d”,a);结果是. 44、for (a=1,b=1;a<=100;a++){ if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;}程序的输出结果a的值为22 .5、int y=1,x,*p,a[ ]={2,4,6,8,10};p=&a[1];for(x=0;x<3;x++)y + = * (p + x);printf(“%d\n”,y);四、程序填空题1、从键盘上输入10个数,求其平均值。

main(){int i;float f,sum;for(i=1,sum=0.0;i<11;i++){ scanf(“%f”,&f);Sum+=f ;}printf(“average=%f\n”,sum/10);}2、以下程序是建立一个名为myfile的文件,并把从键盘输入的字符存入该文件,当键盘上输入结束时关闭该文件。

#include <stdio.h>main(){ FILE *fp;char c;fp= ;do{c=getchar();fputs(c,fp);}while(c!=EOF);3、以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。

请填空。

main()scanf(“%f”,&x);amax=x;amin=x;while(x>=0.0 ){ if(x>amax)amax=x;if(x<=amin )amin=x;scanf(“%f”,&x);}printf(“\namax=%f\namin=%f\n”,amax,amin);} 三、阅读程序题(1)3.141593,3.1416,3.142(2)6,8(3)4(4)22(5)19四、程序填空题1、scanf(“%f”,&f);sum+=f;2、fopen(“myfile”,w)fclose(fp);3、x>=0.0 x<=amin三、阅读程序题1、int x=6,y=7;printf(“%d,”,x++);printf(“%d\n”,++y);程序的输出结果是______.2、float f=3.1415927;printf(“%f,%5.4f,%3.3f”,f,f,f);3、a=3;a+=(a<1)a:1;printf(“%d”,a);结果是______.4、main(){ int a[5]={2,4,6,8,10},*P,* *k;p=a;k=&p;printf(“%d,”,*(p++));printf(“%d\n”,* *k);程序的输出结果是______.5、main(){int a,b;for (a=1,b=1;a<=100;a++){ if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;} }程序的输出结果a的值为______.四、程序填空题1、求主次对角线之和。

c语言计算机二级填空改错编程题库105套..

c语言计算机二级填空改错编程题库105套..

第一套1. 程序填空程序通过定义学生结构体数组,存储了若干个学生的学号、姓名和三门课的成绩。

函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大排序)。

第一处struct student t;第二处for(i=0;i<n-1;i++)第三处if(strcmp(a[i]. name,a[j]. name)>0)2 程序修改/**fou nd**/q=p+i;/**fou nd**/while(q>p)3程序设计int fun(STREC *a,STREC *b,intl,i nt h){int i,j=0;for(i=0;i<N;i++)if((a[i].s>=1 &&a[i].s<=h) b[j++]=a[i]; return j;}第二套1. 程序填空给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序连接。

函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。

第一处free(q);第二处q=p->next; 第三处q=q_>next;2. 程序修改/**fou nd**/p=j;/**fou nd**/p=i;3. 程序设计void fun (i nt m,i nt *a,i nt *n){int i;*n=0;for(i=7;i<=m;i++)if((i%7==0)||(i%11==0)) a[(* n)++]=i;}第三套1. 程序填空函数fun的功能是:逆置数组元素是的值。

例如:若a所指数组中的数据依次为:1、2、3、4、5、6、7、8、9,则逆置后依次为:9、8、7、6、5、4、3、2、1。

形参n给出数组中数组中数据的个数。

第一处for(i=0;i<n/2;i++) 第二处a[i]=a[n-1-i];第三处a[n-i-1]=t;2程序修改/**fou nd**/ n=*p_ ‘0';/**fou nd**/n=n*8+*p- ‘O';3.程序设计STREC fun (STREC*a,char *b){STREC c;Int i;c.num[0]= ' \0 ';c.s=-1; for(i=0;i<N;i++) if(strcmp(a[i]. num,b)==0) {strcpy(c. nu m,a[i]. nu m);c.s=a[i].s;break;} return c;}第四套1. 程序填空Z |给定程序中,函数fun的功能是:在带有头结点的单向链表中,查找数据域中值为ch的结点。

机试程序改错和填空题型

机试程序改错和填空题型

程序改错题:gc558.c程序的功能是:将无符号八进制数字构成的字符串转换为十进制整数。

例如,输入的字符串为:556,则输出十进制整数366。

请改正程序中的错误,使它能得出正确结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include <stdio.h>main(){ char *p, s[6];int n;p=&s;gets(p);n=*p-'0';while(++p!='\0')n=n*8+*p-'0';printf("%d \n",n);}程序填空题:tk558.c的功能是:主函数调用了LineMax函数,实现在N行M列的二维数组中,找出每一行上的最大值。

请将程序补充完整,使它能得出正确的结果。

不得增行或删行,也不得更改程序的结构。

#define N 3#define M 4void LineMax(int x[N][M]){ int i,j,p;for(i=0; i<N;i++){ p=0;for(j=1; j<M;j++)if(x[i][p]<x[i][j]) (1) ;printf("The max value in line %d is %d\n", i, (2) );}}main(){ int x[N][M]={1,5,7,4,2,6,4,3,8,2,3,1};LineMax(x);}程序改错题:gc531.c的功能是:将无符号八进制数字构成的字符串转换为十进制整数。

例如,输入的字符串为:556,则输出十进制整数366。

程序有两处错误,请改正,使它能得出正确结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include <stdio.h>main(){ char *p, s[6];int n;p=&s;gets(p);n=*p-'0';while(++p!='\0')n=n*8+*p-'0';printf("%d \n",n);}程序填空题:tk531.c程序的功能是:主函数调用了LineMax函数,实现在N行M列的二维数组中,找出每一行上的最大值。

C语言程序改错及填空题

C语言程序改错及填空题

gc23.c下列程序是建立一个包含学生有关数据的单向链表。

但该程序有2个错误,错误出现在每个注释行附近,请调试改正。

调试改正中,不得改变程序结构,也不得增删语句。

#defineNULL0structstud{longnum;charname[10];floatscore;structstud*next;};/*……………comment……………*/intn;structstudcreate()////////structstud*create(void){structstud*head,*p1,*p2;n=0;p1=p2=(structstud*)malloc(sizeof(structstud));scanf("%ld,%s,%f",&p1->num,p1->name,&p1->score);/*……………comment……………*/head=NULL;while(p1!=0)//////////while(p1->num!=0){n=n+1;if(n==1)head=p1;elsep2->next=p1;p1=(structstud*)malloc(size(structstud));scanf("%ld,%s,%f",&p1->num,p1->name,&p1->score);}p2->next=NULL;return(head);}gc57.c的功能是互换给定数组中的最大数和最小数。

如将下面8个数:5,3,1,4,2,8,9,6变成:5,3,9,4,2,8,1,6程序中,最大数与最小数的互换操作通过函数调用来实现,让指针max和min分别指向最大数和最小数。

程序有二处错误,请改正。

注意:不得增行和删行,也不得修改程序的结构。

main(){inti;staticinta[8]={5,3,1,4,2,8,9,6};voidjhmaxmin();printf("Originalarray:\n");for(i=0;i<8;i++)printf("%5d",a[i]);printf("\n");jhmaxmin(a,8);printf("Arrayafterswapingmaxandmin:\n");for(i=0;i<8;i++)printf("%5d",a[i]);printf("\n");}//注意:voidjhmaxmin(p,n)intp,n;这是一种老的函数形式,现在一般这样写voidjhmaxmin(intp,intn) voidjhmaxmin(p,n)intp,n;////////int*p,n;{intt,*max,*min,*end,*q;end=p+n;max=min=p;for(q=p+1;q<end;q++){if(*q>*max)max=q;if(*q<max)min=q;////////*q<*min}t=*max;*max=*min;*min=t;}gc101.c的功能为:输入8个整数,使用指针以选择法对其进行排序(从小到大).程序中有两处错误代码,请改正.注意,不得改变程序结构。

程序填空和改错题

程序填空和改错题

一.程序填空和改错题说明:填空题:文件中“___n_____”是根据程序功能需要填充部分,请完成程序填空。

改错题:文件中/********/的下一行中有错误,请改正(注意:不得加行。

加句。

减句)1,程序功能:输入1个整数后,输出该数的位数。

(例如:输入3214 则输出4 输入-23156 则输出5)#include"stdio.h"V oid main(){int n,k=0;Scanf("%d",&n);While(___1__)k++_____2___}Printf("%d\n",k)}2、程序功能:对x=1,2,...,10,求f(x)=x*x-5*x+sin(x)的最大值。

#include <stdio.h>#include <math.h>#define f(x) x*x-5*x+sin(x)void main(){ int x; float max;______1______for(x=2;x<=10;x++)______2______printf("%f\n",max);}3、程序功能:将输入的十进制整数n通过函数DtoH转换为十六进制数,并将转换结果以字符串形式输出。

(例如:输入十进制数79,将输出十六进制4f)# include <stdio.h># include <string.h>char trans(int x){if(x<10) return '0'+x;else _______1________}int DtoH(int n,char *str){int i=0;while(n!=0){________2________n/=16;i++;}return i-1;}void main(){int i,k,n;char *str;scanf("%d",&n);k=DtoH(n,str);for (i=0;i<=k;i++) printf("%c",str[k-i]);}4、程序功能:输入一个字符串,将组成字符串的所有非英文字母的字符删除后输出。

二级C语言填空题和改错题答案

二级C语言填空题和改错题答案

西安聪智电子科技有限公司()程序填空题(也叫填空题)参考答案:1、(1)double(2)f1(3)f22、(1)struct student(2)n-1(3)a[i].name,a[j].name3、(1)0(2)x[i]/N(3)j++4、(1)k(2)N(3)a[k][i]5、(1)'0'(2)s++(3)ctod(a)+ctod(b)6、(1)0(2)n(3)(t*t)7、(1)j(2)0(3)i++8、(1)N(2)k(3)ss[i]9、(1)a(2)(3)score[i]10、(1)[M](2)N(3)011、(1)t,s(2)s[i](3)012、(1)j(2)k(3)p13、(1)999(2)t/10(3)x14、(1)48(2)s++(3)sum15、(1)h->next(2)p->next(3)>=16、(1)struct student *(2)a->score[i](3)a17、(1)s/N(2)j++(3)-118、(1)n++(2)0(3)s++19、(1)N(2)i(3)-120、(1)a[0][i](2)<(3)x,y21、(1)s(2)--(3)return 022、(1)fp(2)==(3)fp23、(1)->sno(2)->name(3)&t24、(1)x[i]/N(2)j++(3)i++25、(1)0(2)i++(3)2.*i26、(1)[N](2)i(3)i+127、(1)double(2)f1(3)f228、(1)FILE *(2)fclose(fp)(3)fp29、(1)1(2)2*i(3)(-1)30、(1)filename(2)fp(3)fp31、(1)*av(2)i(3)x[j]32、(1)FILE *(2)fp(3)ch33、(1)struct student(2)(3)a.score[i]34、(1)i(2)ps[i](3)tp35、(1)s[i](2)k(3)036、(1)3.(2)>(3)(2*i+1)37、(1)10(2)0(3)x38、(1)0(2)x(3)t++39、(1)0(2)||(3)140、(1)k(2)N-1(3)temp41、(1)N(2)break(3)n42、(1)p->next(2)q(3)p->next43、(1)next(2)0(3)r44、(1)0(2)10*x(3)n/1045、(1)N(2)substr(3)046、(1)1(2)s(3)i*1047、(1)"rb"(2)>(3)fwrite48、(1)*s(2)1(3)k[n]49、(1)*s(2)s++(3)n50、(1)NODE(2)next(3)r程序修改题(也叫改错题)答案:1、(1)char *fun(char *s,char *t)(2)ss++;(3)tt++;2、(1)q=p+i;(2)while(q>p)3、(1)double fun(int m)(2)for(i=100;i<=m;i~1+=0)4、(1)for(i = strlen( t )-1; i;i--)(2)if(t[j] > t[j + 1 ] )5、(1)void fun ( char *s, int *a, int *b )(2)++(*a);(3)++(*b);6、(1)for(i=0;str[i];i++)(2)if(substr[k+1]==0)7、(1)for(i=2;i<=m;i++)(2)y-=1.0/i/i;8、(1)int k=0;(2)while( *p || *q )9、(1)s[j++]=s[i];(2)s[j]=0;10、(1)t=1;(2)return(2*s);11、(1)if(i%k==0)(2)if(k>=i)12、(1)while(i<j)(2)if(*a)13、(1)void fun(long s,long *t)(2)while(s>0)14、(1)if ((k%13 == 0) || (k%17 == 0))(2)}15、(1)p=h->next;(2)p=p->next;16、(1)char *fun( char (*sq)[M] )(2)return sp;17、(1)#include "stdio.h"(2)upfst(char *p)18、(1)t+=s[k];(2)*aver=ave;19、(1)a2=k/10;(2)return i;20、(1)int fun(int *x,int *y)(2)t=*x;*x=*y;*y=t;21、(1)double fun (int n)(2)c=a;a+=b;b=c;22、(1)n=strlen( aa ) ;(2)ch=aa[i];23、(1)double fun(double a,double x0)(2)if(fabs(x1-x0)>0.00001)24、(1)num[k]=0;(2)switch(*s)25、(1)void fun (char *s, char *t)(2)t[2*d] = 0;26、(1)aa[i]=m%k;(2)printf("%d",aa[i-1]);27、(1)p=h->next;(2)p=p->next;28、(1)t=(STU *)calloc(sizeof(STU),m);(2)t[k]=b[j];29、(1)k++;(2)if(m==k)30、(1)p=(NODE *)malloc(sizeof(NODE));(2)return h;31、(1)float fun(int n)(2)for (i=2; i<=n; i++)32、(1)s[j++]=s[i];(2)s[j]=0;33、(1)if(p==n) return -1;(2)a[i]=a[i+1];34、(1)double fun(int n)(2)return sum;35、(1)while(*w)(2)if(*r==*p)36、(1)double fun ( int n )(2)s=s+(double)a/b;37、(1)if (n==0)(2)result *= n-- ;38、(1)int i,sl;(2)t[i]=s[sl-i-1];39、(1)t-=1.0/i;(2)return t;40、(1)void fun(int a[][M], int m)(2)a[j][k]=(k+1)*(j+1);41、(1)sum=0;(2)scanf("%d",&a[i][j]);42、(1)while(*s)(2)s++;43、(1)r=t;(2)if(*r==0)44、(1)*t=0;(2)if(d%2!=0)45、(1)fun(int x,int y, int z)(2)return j;46、(1)int fun(int n,int xx[][M])(2)printf("%d",xx[i][j]);47、(1)p=s;(2)while(*p++); (加分号)48、(1)float fun(int k)(2)return s;49、(1)int j, c=0;double xa=0.0;(将double前面的逗号改为分号)(2)if (x[j]>=xa)50、(1)if(i%2 || s[i]%2==0)(2)t[j]=0;。

二级C改错填空编程 2

二级C改错填空编程 2

二、改错题Cmody191.c修改程序,用以计算1~100之间所有的偶数之和。

#include <stdio.h>#include <math.h>void main( ){int i=1;/**/ int sum=2 /**/;while(i++,i<=100){ if(/**/ i==(i/2)*2 /**/)continue;sum+=i;}printf("Sum is %d\n",sum);getch();}Cmody192.c修改程序,将二维数组表示的方阵左下半三角(不含对角线)各元素加4,右上半三角(含对角线)各元素乘2。

#include <stdio.h>#define N 5void main(){int a[N][N],i,j;for(i=0;i<N;i++)for(j=0;j<N;j++)a[i][j]=i*5+j+11;printf("\nArray a is:\n");for(i=0;i<N;i++){for(j=0;j<N;j++)printf("%3d ",a[i][j]);printf("\n");}for(i=0;i<N;i++)/**/ for(j=0;j<=i;j++)/**/a[i][j]+=4;for(i=0;i<N;i++)/**/ for(j=i+1 ;j<N;j++) /**/a[i][j]*=2;printf("\nArray a is turned:\n");for(i=0;i<N;i++){for(j=0;j<N;j++)printf("%3d ",a[i][j]);printf("\n");}getch();}Cmody201.c修改程序,计算满足以下条件的整数n的最大值。

C改错和程序填空

C改错和程序填空

C改错和程序填空 The document was prepared on January 2, 2021三、程序综合题。

(共4题,每题4分。

估计包括程序判断改错题和程序填空题)1. 在下面程序横线处填上适当内容,一个类的头文件如下所示,num初始化值为5,程序产生对象T,且修改x为10,并使用show()函数输出x。

#include <>class T{ private:static int x;public:T(int);Void show();};_int Test::num=5;____T::T(int n){num=n;}void T::show(){cout<<num<<endl;}void main(){ T t(10);();_____}2. 在下划线处填上缺少的部分。

#include <>Class A{ int a,b;public:_A(int i=0,int j=0)____;下列程序有一处错,请改正并说明理由#include <>class A{ int X,Y;protected:int zx,zy;public:void init(int i,int j){zx=i;zy=j;}A(int i,int j,int n=0,int m=0){X=i,Y=j,zx=m,zy=n;}};void main(){ A a(25,20,3,5);(5,9);cout<<()<<endl; 类中默认X,Y为私有成员,不能直接在函数体外调用。

} 改正:将X,Y设置为公有成员即可。

4.下列程序有一处错误,指出改正并说明理由。

#include <>class A{private:int x;public:A(int i){x=i;}A(){x=0;}friend int min(A&,A&);};int min(A & a,A &b) { return >:;}void main(){ A a(3),b(5);cout<<(a,b)<<endl; } 友元函数不能直接这么调用。

程序填空与改错

程序填空与改错

'【程序填空】'-------------------------------------------------------'题目:窗体上成立了一个文本框Text1,用于显示结果。

' 单击按钮弹出输入对话框录入0-6之间的数值,' 判定输入值为礼拜几'请在【?】处填入正确的内容'-------------------------------------------------------'Private Sub Command1_Click()Dim x As Integer'**********SPACE**********x = Val(【?】("请输入礼拜几(0~6)"))'**********SPACE**********Select Case 【?】Case Is = 0= "礼拜日(Sunday)"Case Is = 1= "礼拜一(Monday)"Case Is = 2= "礼拜二(Tuesday)"Case Is = 3= "礼拜三(Wednesday)"Case Is = 4= "礼拜四(Thursday)"Case Is = 5= "礼拜五(Friday)"Case Is = 6= "礼拜六(Saturday)"'**********SPACE**********Case 【?】= "输入错误"End SelectEnd Sub'------------------------------------------------'【程序改错】'------------------------------------------------'题目:其功能是从数据文件〔〕中读出学生的成绩,保留在数组arr〔100〕中。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

程序填空和改错练习2
一、程序填空
1. 功能:输入一个学生的生日(年:y0、月:m0、日:d0),并输入当前日期(年:y1、月:m1、日:d1)。

求出该学生的年龄(实足年龄)。

#include <stdio.h>
main()
{int age,y0,y1,m0,m1,d0,d1;
printf("输入生日日期(年,月,日)");
/***********SPACE***********/
【?】("%d,%d,%d",&y0,&m0,&d0);
printf("输入当前日期(年,月,日)");
scanf("%d,%d,%d",&y1,&m1,&d1);
age=y1-y0;
/***********SPACE***********/
if(m0【?】m1)age--;
/***********SPACE***********/
if((m0【?】m1)&&(d0>d1))age--;
printf("age=%3d",age);
}
2. 题目:对二维数组a中存储的N*N矩阵做如下操作:先将每一行中值最大的元素与该行位于主对角线处的元素交换,然后对主对角线上所有元素排序使其自左上角到右下角升序排列,最后输出排序后主对角线上各元素的值。

#include<stdio.h>
#define N 5
void fun(int x[][N],int n)
{
int i,j,t,arr,col;
for(i=0;i<n;i++)
{
arr=x[i][0];col=0;
for(i=0;i<n;i++)
{
arr=x[i][0];col=0;
/***********SPACE***********/
for(j=0;j<n;j++) if(x[i][j]>=arr) {arr=x[i][j]; 【?】}
t=x[i][i]; x[i][i]=x[i][col];x[i][col]=t;
}
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
/***********SPACE***********/
if(【?】)
{ t=x[i][i]; x[i][i]=x[j][j]; x[j][j]=t;}
}
}
void main()
{
int a[N][N]={{10,25,24,13,23},{11,22,12,21,14},{20,15,19,16,18},
{17,9,4,5,3},{2,1,6,7,8}};
int i;
fun(a,N);
for(i=0;i<N;i++) printf("%4d",a[i][i]);
printf("\n");
}
3. 功能:输入字符串,再输入一个字符,将字符串中与输入字符相同的字符删除。

#include "stdio.h"
void fun(char a[],char c)
{
int i,j;
/***********SPACE***********/
for(i=j=0; 【?】;i++)
if(a[i]!=c) a[j++]=a[i];
/***********SPACE***********/
【?】;
}
main()
{
char a[20],cc;
gets(a);
/***********SPACE***********/
【?】;
/***********SPACE***********/
【?】;
puts(a);
}
二、程序改错
1. 功能:求出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 <conio.h>
#include <stdio.h>
#define N 20
int fun ( int a[], int n )
{
int k,m1,m2,max1,max2,t;
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;
}
/**********FOUND**********/
else if( a[k]>max1 )
{
max2 = a[k]; m2 = k; }
/**********FOUND**********/
t = a[0];
a[m1]=a[0];
a[m1] = t;
/**********FOUND**********/
t = a[1];
a[m2]=a[1];
a[m2] = t;
}
main( )
{
int x, b[N]={7,10,12,0,3,6,9,11,5,8}, n=10, i;
clrscr( );
for ( i = 0; i<n; i++)
printf("%d ",b[i]);
printf("\n");
fun (b, n);
for ( i=0; i<n; i++ )
printf("%d ",b[i]);
printf("\n");
getch();
}
2.题目:在主函数中main()中输入年、月、日,然后计算该天是这一年的第几天。

其中函数LeapYear()是判断某年是否为闰年。

#include <stdio.h>
#include <conio.h>
int LeapYear(int year){
/***********FOUND***********/
return ((year%4==0 && year%100) && (year%400==0));
}
int main(){
int
mon_days[2][11]={{31,28,31,30,31,30,31,31,30,31,30},{31,29,31,30,31,30,31,31,30 ,31,30}};
int year,mon,day,days;
int i;
scanf("%d %d %d",&year,&mon,&day);
days=day;
/***********FOUND***********/
for(i=0;i<mon-2;i++)
/***********FOUND***********/
days=mon_days[LeapYear(year)][i];
printf("%d\n",days);
getch();
return 0;
}
3. 功能:求100以内(包括100)的偶数之和.
#include "stdio.h"
main()
{
/**********FOUND**********/
int i,sum=1;
/**********FOUND**********/
for(i=2;i<=100;i+=1)
sum+=i;
/**********FOUND**********/
printf("Sum=%d \n";sum);
getch();
}。

相关文档
最新文档