程序填空、改错第二次练习
计算机专业模拟试卷(程序填空和程序改错)

一、程序填空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 语言二级上机(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语句)练习题

一、程序填空:输入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年程序改错、填空、编写题的答案(一)程序改错题。
一、各数位数的取法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语言程序设计(第二版)答案

参考答案习题二(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版)

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语言程序阅读填空运行结果改错题

三、读程序题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、求主次对角线之和。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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();
}。