1、程序填空题
给定的程序的功能是调用fun函数建立班级通讯录。通讯录中记录
每位学生的编号、姓名和电话号码班级的人数和学生的信息从键盘
读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进
制中。
填空:(1)STYPE (2)FILE (3)fp 改错:(1) for(i=0;i<=sl;i++) (2) t[2*sl]='\0'或t[sl+sl]='\0'
编程:
*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b% 10);
2、程序填空题
给定程序的功能是:从键盘输入若干文本(每行不超过80个字符),写到文件myfile4.txt中,用-1作为字符串输出输入的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数ReadText 和Writetext实现。
填空:(1) *fw (2) str (3) str
改错:(1) void fun(long s,long *t)(2) s1=s1*10;
编程:int i,j=0,min=a[0].s;
for(i=0;i { if(a[i].s { j=0;b[j++]=a[i];min=a[i].s; } else if(min==a[i].s) b[j++]=a[i]; } return j; 3、程序填空题 给定程序中,函数fun的功能是:讲自然数1~10以及它们的平方根写到名为myfile3.txt的文本中,然后再按顺序读出显示在屏幕上。 填空:(1)fp(2)fclose(fp)(3)myfile3.txt 改错:(1)for(i=j+1;i 编程:*c=(b%10)*1000+(a%10)*100+(b/10)*10+a/ 10; 4、程序填空题 给定程序中,函数fun的功能是:找出形参s所指字符串出现频率最高的字母(不区分大小写),并统计出其出现的次数,例如,形参s所指的字符串为:abcAbsmaxiess,程序执行后的输出结果为: letter 'a':3 times letter 's':3 times 填空:(1)"r" (2 )fs (3)ft 改错:(1)if (d%2==0) (2 )s/=10; 编程: int i = 0, j = 0; while(s[i]) { if(i % 2 == 0 && s[i] % 2 == 0) t[j++] = s[i]; i++; } t[j] = 0; 5、程序填空题 给定程序中已经建立一个带有头结点的单向链表,链表中的各结点数据域中的数据递增有序链接,函数fun的功能是:把形参x 的值放入一个新结点并插入到链表中,插入后各结点数据域的值仍保持递增有序。 填空:(1)x (2)p (3)s 改错:(1)long k=1; (2)num/=10; 编程:int i; float aver=0.0; for(i=0;i aver=aver/n; return aver; 6、程序填空题 给定程序中已建立一个带有头结点的单向 链表,在main函数中将多次调用fun函数,每调用一次fun函数,输出链表尾部节点中的数据,并释放该节点,使链表缩短。 填空:(1) next (2) t->data (3) t 改错:(1) void fun(char *a) (2) print("%c",*a); 编程:int i; char *p=s,*q=t; int n=0,m=0; while(*p) /*计算串s的长度n,其中p为临时指针*/ { n++; p++; } while(*q) /*计算串t的长度m,其中q为临时指针*/ { m++; q++; } if(n>=m) /*比较m和n的值,设置p指向较大的指针*/ p=s; else p=t; return p; 7、程序填空题 给定程序中建立一个带有头结点的单向链表,链表中的各节点按数据域递增有序链接。函数fun的功能是:删除链表中数据域值相同的节点,使之只保留一个。 填空:(1) q (2) next (3) next 改错:(1) 缺分号(2) p = i; 编程:*n=0; int i; for(i=1;i<=m;i++) if(i%7==0||i%11==0) a[*n++]=i; 8、程序填空题 给定的程序中,函数fun的功能是:在带有头结点的单向链表中,查找数据域中值为ch的结点。找到后通过函数值返回该结点在 链表所处的顺序号;如不存在值为ch的结点,函数返回0值。 填空:(1)0或NULL (2)n (3)head,ch 改错:(1) for(i=0,t=0;p[i];i++) (2) c[t]='\0'; 编程: int i; for(i=1;i { If( (ss[i]>='a'&&ss[i]<='z') ss[i]-=32; 9、程序填空题 给定程序中,函数fun的功能是:统计出带有头结点的单向链表中节点的个数,存放在形参n所指的存储单元中。 填空:(1) *n (2) next (3) head 改错:(1) a=NULL; (2) if(*r==*p) 编程: int i,j=0; for(i=0;i if(s[i]%2==0) t[j++]=s[i]; t[j]='\0'; 10、程序填空题 给定程序中,函数fun的功能是:计算出带有头结点的单向链表中各节点数据域中值之和作为函数值返回。 填空:(1) data (2) next (3) head 改错:(1) while(*r) (2) *a=*r;a++;r++; 编程:int i,j=0; for((i=0;i t[j++]=s[i]; t[j]='\0'; 11、程序填空题 给定程序中,函数fun的功能是:求ss所指字符串数组中长度最短的字符串所在的行下标,作为函数数值返回,并把其串长放在形参n所指变量中。Ss所指字符串数组中共有M个字符串,且串长 填空:(1)M (2)< (3)k 改错:(1)if(('a'<=tt[i])&&(tt[i]<='z')) (2)tt[i]-=32; 编程:int i,j; int t=0; for(i=2;i {j=2; while(j {if(i%j==0) {xx[t]=i; t++; break; } j++; } *k=t; 12、程序填空题 给定程序中,函数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; 13.程序填空题 给定程序中,函数fun的功能是:在形参s 所指字符串中的每个数字字符之后插入一个*号。例如,形参s所指的字符串为:def35adh3kjsdf7.执行结果为:def3*5adh3*kjsdf7*。 填空:(1)&& (2)0 (3)s[j] 改错(1)for(i=2;i<=m;i++) (2)y+=1.0/(i*i); 编程题:int c[3][3]; for(i=0,i<3;i++) for(j=0;j<3;j++) {c[i][j]=a[j][i]; b[i][j]=a[i][j]+c[i][j];} 14、程序填空题 给定的程序中,函数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; 15、程序填空题 给定的程序中,函数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++; } 16、程序填空题 在给定程序中,函数fun的功能是:对形参s所指字符串下标喂奇数的字符按ASCII 码大小递增排序,并将排序后下标为奇数的字符取出,存入形参p所指字符数组中形成一个新串。 例如,形参s所指的字符串为baawrskjghzlicda,执行后p所指字符数组中的字符串应为:aachjlsw。 填空:(1) t=i (2) i (3) 0 改错:(1) while(fabs(t)>=num) (2) t=s/n; 编程:int p,m=0; for(p=0;p if(p!=n) {b[m]=a[p];m++;} b[m]='\0'; 17、程序填空题 给定程序中,函数fun的功能是:在形参s 所指字符串中寻找与参数c相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则函数不做任何处理。 例如:s所指字符字符串为:baacda,c中得字符为:a,执行后所指字符串为:baaaacdaa。 填空:(1) 0或'\0' (2) 0 (3) c 改错:(1) double sum=0.0; (2) sum/=c; 编程:int k; float str=1.0,sum=1.0; for(k=2;k<=n;k++) { sum=sum+k; str=str+1/sum; } return str; 18、程序填空题 给定程序中,函数fun的功能是:N×N矩阵,根据给定的m(m<=N)值,将每行元素中的值均右移m个位置,左边值为0.例如,N=3,m=2,有下列矩阵 1 2 3 4 5 6 7 8 9 程序执行结果为 0 0 1 0 0 4 0 0 7 填空:(1) i++ (2) m (3) m 改错:(1) while((high>=2)&&(n<10)) (2) 缺分号 编程:float x1=0.0,x0; do { x0=x1; x1=cos(x0); }while(fabs(x0-x1)>0.000001); return x1; 19、程序填空题 给定程序中,函数fun的功能是:将N*N 矩阵中元素的值按列右移1个位置,右边被移出矩阵的元素绕回左边。例如,N=3,有下列矩阵 1 2 3 4 5 6 7 8 9 计算结果为 3 1 2 6 4 5 9 7 8 填空:(1)N (2)N-1 (3)0 改错:(1)s=s+(n+1.0)/n; (2)return t; 编程:int f0=0,f1=1,f; do {f=f0+f1; f0=f1; f1=f; }while(f return f; 20、程序填空题 给定程序中,函数fun的功能是:由NxN 矩阵,将矩阵的外围元素顺时针旋转。 操作顺序是:首先将第一行元素的值存入临时数组r, 然后使第一列成为第一行, 最后一行成为第一列,最后一列成为最后一行,临时数组中的元素成为最后一列 列。例如:而N=3,有以下矩阵: 1 2 3 4 5 6 7 8 9 计算结果为 7 4 1 8 5 2 9 6 3 填空:(1)0 (2)j-- (3)j 改错:(1)double f(double x) (2)缺分号 编程:double s=0.0; int i; for(i=1;i<=m;i++) s=s+log(1.0*i); s=sqrt(s); return s; 21、程序填空题 给定程序中,函数fun功能是:找出100至x(x想<999)之间各位上的数字之和为15的所有整数,然后输出;符合条件的整数个数作为函数值返回。 例如,当n值为500时,个各位数字之和为15的整数有 159,168,177,186,195,249,258,267,276,285,29 4,339,348,357,366,375,384,393,429,438,447,4 56,465,474,483,492,共有26个。 填空:(1) 0 (2) x (3) t++ 改错:(1) int i,s1; (2) t[i]=s[s1-1-i]; 编程:*c=(b/10)*1000+(a/10)*100+(b%10)*10+a% 10; 22、程序填空题 给定的程序中,函数fun的功能是:找出100~999之间(含有100和999)所有整数各位上的数字之和为x(x为以正整数)的整数,然后输出;符合条件的整数个数作为函数值返回。 例如:当x值为5时,100~999之间各位上数字之和为5的整数有:104,113,122,131,140,203,212,230,302,311,320,401,41 0,500.共有15个。当x的值为27时,各位数字之和为27的整数是:999。只有1个。 填空:(1)999 (2)t/10 (3)x 改错:(1) void fun(long s,long *t) (2)while(s>0) 编程:STREC tmp; int i,j; for (i=0;i for (j=i+1;j if(a[i],s {tmp=a[i]; a[i]=a[j]; a[j]=tmp; 23、程序填空题 给定程序中,函数fun的功能是:将形参n 中,各位上为偶数的数取出,并按原位从高位到低位的顺序组成一个新的数,并作为函数值返回。 例如,从主函数输入一个整数:27638496,函数返回值为:26845. 填空:(1)1 (2)s (3)i*10 改错:(1)int fun(int n,int xx[][M]) (2)printf("%d",xx[i][j]); 编程:*c=(a/10)*1000+(b%10)*100+(a%10)*10+(b/ 10); 24 程序填空题 给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新的数,并作为函数返回. 例如,输入一个整数:27638496,函数返回值为:64862. 填空: (1) 0 (2) 10*x (3) n/10 改错: (1) *t=0; (2) if (d%2!=0) 编程: char *p=p1; while (*p) p++; while(*p2) {*p++=*p2++; *p=0; } 25.程序填空(与教材18题对应)) 给定的程序中,函数fun的功能是:将形参n 所指变量中,各位上为 偶数的数去除..剩下的数按原来从高位的顺序组成一个新的数,并 通过形参兆时指针n传回所指变量. 例如:输入一个数:27638496,新的数:739. 填空(1) 10 (2) 0 (3) x 改错(1) if (n = = 0) (2)缺分号 编程: long s=0, t; int i=0,j,n=strlen(p),k,s1; if (p[0]==' -') i++; for (j=i;j<=n-1;j++) {t=p[j]-'0'; s1=10; for (k=j;k t*=s1; s+=t;} if (p[0]=='-') return –s; else return s; 26,程序填空题 给定程序中,函数fun的功能是:计算下式前n项的和作为函数值返回。 S=(1*3)/(2*2)+(3*5)/(4*4)+(5*7)/(6*6)+……+(2n-1)(2n+1)/(2n*2n)例如:当形参n的值为10时,函数返回9.612558. 填空:(1)0 (2)n (3)(t*t) 改错:(1)for(i=0;str[i];i++) (2) for(i=0; str[i];i++) 编程:double s; float n,t,pi; t=1;pi=0;n=1.0;s=1.0; while((fabs(s))>=eps) {pi+=s; t=n/(2*n+1); s*=t; n++;} pi=pi*2; return pi; 27、程序填空题(与22题对应) 给定程序中,函数fun的功能是:计算下式前n项的和 S=(1*3)/(2*2)-(3*5)/(4*4)+(5*7)/(6*6)-…+(-1)^(n-1)*(2n-1)(2n+1)/(2n*2n) 作为函数植返回。 例如,当形参n的值为10时,函数返回:-0.204491 填空:(1)1 (2)2*i (3) (-1) 改错:(1)缺分号(2)if (m= =k) 编程:int i; *max=a[0]; *d=0;