2022年上海市计算机二级考试复习资料题目答案

上传人:无*** 文档编号:117302319 上传时间:2022-07-08 格式:PDF 页数:23 大小:115.02KB
返回 下载 相关 举报
2022年上海市计算机二级考试复习资料题目答案_第1页
第1页 / 共23页
2022年上海市计算机二级考试复习资料题目答案_第2页
第2页 / 共23页
2022年上海市计算机二级考试复习资料题目答案_第3页
第3页 / 共23页
点击查看更多>>
资源描述
上海理工大学上海市计算机二级考试(C 语言)复习资料题目解答第一部份:基础知识1.B 2.C 3.C 4.B 5.D 6.A 7.A 8.C 9.C 10.A 11.C 12.A 13.B 14.B 15.C 16.B 17.D 18.B 19.A 20.C 21.C 22.B 23.B 24.C 25.D 26.B 27.B 28.D 29.C 30.C 31.D 32.C 33.C 34.B 35.C 36.D 37.C 38.B 39.C 40.B 41.C 42.B 43.C 44.B 45.B 46.A 47.D 48.D 49.D 50.D 51.A 52.C 53.(Sqrt(x)+sqrt(y)/2/(x+y)or similar 54.The 234 is namely the string234 55.B 56.D 57.D 58.B 59.C 60.D 61.B 62.D 63.A 64.D 65.C 66.B 67.C 68.D 69.C 70.C 71.A 72.A 73.B 74.B 75.C 76.C 77.C 78.A 79.D 80.B 81.D 82.D 83.C 84.D 85.B 86.D 87.B 88.D 89.B 90.C 91.C 92.B 93.B 94.B 95.N+0 96.0The x1400 moves is ex-,binary system 00010100 Bs or eight enter the 024 Qs of system 97.The first answer 65 ds or 41 hses or a the second answer 1 or not0 98.85 99.14 100.x=-60 第二部分读程序,写结果1.0,2,4,3 2.3.142 3.8 4.m/10%10*100+m/100*10+m%10 5.?uoy_era_woHHwaeyu 6.7,3 7.54656 8.A the=biggest number,b=is most the fraction 9.1 10.5,5 11.9876543210 12.1 3 5 7 9 13.j=0 m=4 The first k:4 j=1 m=4 14.The second k:5 15.Count=0,position=0(did not find out)名师归纳总结 精品学习资料 -精心整理归纳 精选学习资料 -第 1 页,共 23 页 -16.0-30 17.输出 12 14 22 24 32 34,函数 s 是用插入法对数组a 的前 n 个元素从小到大排序18.输出 2 3 5 7 11 13 函数 p 的功能是求k(包括 k)以内的质数19.输出n=91,a=0,10,21,3120.输出Feith21.输出72 56 38 4922.81818181 23.k=5 24.1 25.9 26.用递归函数实现10-2 进制转换第三部分程序改错1.#4 scanf(“%d”,&x);#10 low=m+1#11 high=m-1 2.#7 scanf(“%c”,&stri);#8 break 3.#7 x,n#13 n=0#15 x*xn(x,n-1)4.#5 t=t*x/i#15 e=ex(x)5.#4 scanf(%d”,&x);#10 low=m+1#11 high=m-1 6.#3 fun(str)#5 while(*(str+num)!=0)num+;#9 char str10,*p=str;7.#14 flag=0;#19 flag=1;i+;8.#3 func(str)#5 while(*(str+num)!=0)num+;#9 char str10,*p=str;9.#5 n=n/10;#6 while(!n);#12 scanf(“%ld”,&n);10.#10 else if(xam)low=m+1;#11 else high=m-1;11.#6 a=1.0;#8 a/=i;#9 e+=a;12.#6 char*temp;#10 if(strcmp(temp,namei)0)#12 printf(“%s n”,temp);13.#3 stri!=0#4 stri=0&stri=0&stri=9)#9 n2+;15.#5 i=eps)#13 return(2*s);19.#3 long fun(char*p)#17 num+=pi-48;或 num+=pi-0;#29 printf(“%ln”,n);/*必须有%ld*/20.#9 ajaj&aj#18 aj=bk 21.#2 void printcol(int(*p)N,int row,int col)#6 printf(“tt%dn”,*(*(p+i)+col);#14 while(colN-1);22.#2 (char*s)#4 (*p)或(*p!=0)或(*p!=0)#9 gets(x);23.#6 t=n%10;#10 n/=10;#11 while(n);或 while(n!=0);24.#4 for(j=0;jnum,&p1-score);head=NULL;while(p1-num!=0)n=n+1;if(n=1)head=p1;else p2-next=p1;p2=p1;p1=(struct st*)malloc(LEN);scanf(%u,%d,&p1-num,&p1-score);p2-next=NULL;return(head);2.对 N个数据,降序排列并输出#define N 10 main()int aN=1,5,0,3,-6,9,-8,7,2,4;int i,j,t;for(i=0;iN-1;i+)for(j=i;jN;j+)if(aiaj)t=ai;ai=aj;aj=t;for(i=0;iN;i+)printf(%3d,ai);3.有二维数组如下1 2 3 4 5 6 7 8 9 10 11 12 现要求输入某元素所在的行和列,将其后的所有元素输出,必须用指针技术编程。例如,输入2,3 表示从第二行第三列元素7 开始输出其余元素7 8 9 10 11 12 main()int a34=1,2,3,4,5,6,7,8,9,10,11,12;int*p,i,j;scanf(%d%d,&i,&j);p=&ai-1j-1;for(;p&a00+12;p+)printf(%5d,*p);4.将一个磁盘文件的数据读到一个链表中去,队列或堆栈不论。要求如下:磁盘文件放在A 盘的一级目录(即一级子文件夹)abc下,文件名是flile.dat 名师归纳总结 精品学习资料 -精心整理归纳 精选学习资料 -第 4 页,共 23 页 -链表结点的结构为struct node char val;strct node*next;工作用的指针名为 h 和 p#include#include struct node char val;struct node*next;struct node*create(FILE*fp)struct node*p,*h;char d;h=NULL;fp=fopen(a:abcfile.dat,r);while(!feof(fp)fread(&d,2,1,fp);p=(struct node*)malloc(sizeof(struct node);p-val=d;p-next=h;h=p;fclose(fp);printf(n);printlk(h);return h;printlk(struct node*h)struct node*p;printf(print link.n);p=h;while(p)printf(%c,p-val);p=p-next;main()struct node*h,*p;FILE*fp;fp=fopen(rd_data,r);if(fp=NULL)printf(read data error!n);exit(0);h=create(fp);printlk(h);exit(0);5.试写一个函数(函数名为 f),以十进制正整数n 为整型参数,函数的返回值是n 的位数(例:278 是三位数)。要求循环结构需用do_while控制结构。名师归纳总结 精品学习资料 -精心整理归纳 精选学习资料 -第 5 页,共 23 页 -int f(long n)int c=0;do c+;n=n/10;while(n);return c;main()long n;int num;scanf(%ld,&n);num=f(n);printf(%ld has%d numbersn,n,num);6将一个nn 的矩阵行列转置后输出,转置功能由函数reverse实现,试编程。#define N 3 void reverse(float xN,int n)int i,j;float t;for(i=0;in;i+)for(j=i;jn;j+)t=xij;xij=xji;xji=t;void prtable(float xN,int n)int i,j;for(i=0;in;i+)for(j=0;jn;j+)printf(%10.4f,xij);printf(n);main()int i,j;float aN=1,2,3,4,5,6,7,8,9;prtable(a,N);reverse(a,N);prtable(a,N);7.试用 do_while控制结构,计算下列级数的和s=1+3+5+.+(2i-1)+.当累加到某项s 的值大于100 时,该项及以后各项不再累加,结束循环求和。main()int s,i;s=0;i=0;do 名师归纳总结 精品学习资料 -精心整理归纳 精选学习资料 -第 6 页,共 23 页 -i+;s+=2*i-1;while(s+(2*i+1)=100);printf(sum=%d,i=%dn,s,i);8编程序用于将原字符串按某种规律变成密码:即将字母A 变成 E,B变成 F,;W变成A,X变成 B,Z变成 D,对小写字母也是如此编码,标点符号、空格维持原状。#define N 4#include decode()char c;while(c=getchar()!=n)if(c=a&c=A&cZ&cz)c=c-26;printf(%c,c);main()decode();9.编写一个带参数宏trans(F),输入一个华氏温度F,要求输出摄氏温度c。公式是cF)32(95,取 2 位小数。#define trans(F)(F-32)*5/9.0 main()float c,F;scanf(%f,&F);c=trans(F);printf(F=%.2f,c=%.2fn,F,c);10.对非线性方程f(x)=0,可用牛顿迭代公式)()(1nnnnxfxfxx求解,要求方程式用函数名 f,导函数 f 名为f1,迭代函数名为g,假设函数f 和 f 已有定义,编写出迭代函数 g(x),精度小于10-5。float g(float x)float xi;do xi=x-f(x)/f1(x);x=xi;while(fabs(f(x)=1e-5);return x;11.编写 ptstar无参数函数打印如下图形,顶端的*定位在屏幕第25 字符位置,编出完整程序,写出对ptstar的调用。名师归纳总结 精品学习资料 -精心整理归纳 精选学习资料 -第 7 页,共 23 页 -123456789012345678901234567890 *printstar()int i,j;printf(123456789012345678901234567890n);for(i=0;i4;i+)for(j=0;j=23-i;j+)printf();for(j=0;j2*i+1;j+)printf(*);printf(n);main()printstar();12.试写一个函数(函数名为f),以正整数n 为整型参数,函数的返回值是下列级数的前n项的和 1+3+5+.+(2n-1)要求用递归法计算级数的和。long f(int n)if(n=1)return 1;else return(2*n-1+f(n-1);main()long sum;int n;scanf(%d,&n);sum=f(n);printf(sum=%ldn,sum);13.本程序的主程序为:main()int b=24,12,14,32,22,34;printf(%dn,f(b,6);其中调用函数f,该函数有二个参数,依次为整型数组a 和整型数n,函数的返回值是数组的a0 到 an-1 中的最大值。试写出函数f。要求循环结构需用for 控制结构。int f(int a,int n)int i,max=-32768;for(i=0;imax)max=ai;return max;main()int b=24,12,14,32,22,34;printf(%dn,f(b,6);名师归纳总结 精品学习资料 -精心整理归纳 精选学习资料 -第 8 页,共 23 页 -14.编写 sort函数,对N个 int型数据降升序排列,该函数有2 个形参:int a和 int n,采用“冒泡法”或“选择法”可任选。void sort(int a,int n)/*选择法 */int i,j,sub,temp;for(i=0;in-1;i+)sub=i;for(j=i+1;jaj)sub=j;if(i!=sub)temp=ai;ai=asub;asub=temp;15.编写一个名为prime 的函数,以m为整型参数,判别m是否为素数。若m为素数,则返回 1;若 m不是素数,则返回0。#include int prime(int m)int i,k;k=(int)sqrt(m);for(i=2;i=k;i+)/*或 i k)return 1;/*或 i=m*/else return 0;16.编写一个名为cntatoz的函数,输入一行字符,统计其中的英文字母个数(大小写不论)。#include main()char ch;int n=0;printf(Input a string:n);while(1)ch=getchar();if(ch=n)break;if(ch=a&ch=A&ch=Z)n+;printf(Number of letters is%d.n,n);17.设有 3 名学生成绩存在如下的数组中::int score34=65,57,70,60,90,87,50,81,90,65,100,98 编程输出有成绩低于60 分的某学生所有成绩(按 C语言的规则,允许第0 行)。main()void search(float(*p)4,int n);float score34=65,57,70,60,58,87,90,81,90,99,100,98;search(score,3);名师归纳总结 精品学习资料 -精心整理归纳 精选学习资料 -第 9 页,共 23 页 -void search(float(*p)4,int n)int i,j,flag;for(j=0;jn;j+)flag=0;for(i=0;i4;i+)if(*(*(p+j)+i)60)flag=1;if(flag=1)printf(No.%d fails,his scores are:n,j+1);for(i=0;i=eps);return s;19.试用 for 控制结构,求数组aN 的前 k(k=N)个元素的最大值和最小值。将统计结果分别存于变量max和 min 中。float max,min;void mmai(int a,int k)int i;max=min=a0;for(i=1;ik,i+)if(maxai)min=ai;20.输入 10 个数,输出这10 个数中仅出现一次的数如输入:12 36 72 36 87 99 87 87 12 35 则输出:72 99 35 main()int a10,i,j;for(i=0;i 10;i+)scanf(%d,&ai);for(i=0;i 10;i+)!56x!34x!12x1s642名师归纳总结 精品学习资料 -精心整理归纳 精选学习资料 -第 10 页,共 23 页 -for(j=0;j=10)printf(%d,ai);21.试设计一个函数,它能求出两个整型数的和与积,同时,再编写一个主程序main,调用上述函数以验证该函数的功能与正确性。void test(int a,int b,int*ps,int*pt)*ps=a+b;*pt=a*b;main()int a,b,s,t;scanf(%d%d,&a,&b);test(a,b,&s,&t);printf(%d%dn,s,t);22.输入若干非0 实数,直到输入0 时停止,要求输入的实数最多不超过20 个,统计其中正数的个数,负数的个数。#include“stdio.h”main()int n,posn,negn;double a;n=posn=0;printf(“Input real numbers:n”);scanf(“%lf”,&a);while(a!=0&n0)posn+;n+;if(n=a&ch=A&ch=1.0e-7)u=u/n;e=e+u;n=n+1;printf(“e=%8.6fn”,e);25.定义一个带参数的宏,其功能是求一个数的绝对值。#define ABSX(x)(x)0?1*(x):(x)或类似26.求出 11000 之间“水仙花数”。要求的水仙花数是个三位数,它的各位数字之和等于该数本身,例如:153=13+53+53,所以 153 是个水仙花数。#include main()int i,j,k,num;for(i=1;i=9;i+)for(j=0;j=9;j+)for(k=0;k=9;k+)num=pow(i,3)+pow(j,3)+pow(k,3);if(num=i*100+j*10+k)printf(%5d,num);27.应用递归算法求某数a 的平方根。求平方根的迭代公式如下:1x=)(2100 xax#include#include double fun(double a,double x0)double x1,y;x1=(x0+a/x0)/2.0;if(fabs(x1-x0)=1e-5)y=fun(a,x1);else y=x1;return y;main()double x;printf(Enter x:);scanf(%lf,&x);printf(The square root of%lf is%lfn,x,fun(x,1.0);!1!31!21!111ne名师归纳总结 精品学习资料 -精心整理归纳 精选学习资料 -第 12 页,共 23 页 -28.将十进制正整数m转换成 k(2=k=9)进制数,并按位输出。例如,若输入8 和 2,则应输出 1000(即十进制数8 转换成二进制的表示是1000)。#include void fun(int m,int k)int aa20,i;for(i=0;m;i+)aai=m%k;m/=k;for(;i;i-)printf(%d,aai-1);main()int b,n;clrscr();printf(Please enter a number and a base:n);scanf(%d%d,&n,&b);fun(n,b);printf(n);29.求 s=aaaa-aaa-aa-a(此处 aa aa 表示 n 个 a,a 和 n 的值在 1 至 9 之间)。例如,若 a=3,n=6,则以上表达式为 s=333333-33333-3333-333-33-3,其值是:296298。a和 n 是 fun 函数的形参,表达式的值作为函数值传回main 函数。#include long fun(int a,int n)int j;long s=0,t=0;for(j=0;jn;j+)t=t*10+a;s=t;for(j=1;jn;j+)t=t/10;s=s-t;return s;main()int a,n;clrscr();printf(nPlease enter a and n:);scanf(%d%d,&a,&n);printf(The value of function is:%ldn,fun(a,n);30.编写函数 fun 的功能是:从低位开始取出长整型变量s 中偶数位上的数,依次构成一个新数放在t 中。例如,当s 中的数为7654321 时,t 中的数为642。#include void fun(long s,long*t)long s1=10;名师归纳总结 精品学习资料 -精心整理归纳 精选学习资料 -第 13 页,共 23 页 -s/=10;*t=s%10;while(s0)s=s/100;*t=s%10*s1+*t;s1=s1*10;main()long s,t;clrscr();printf(n Please s:);scanf(%ld,&s);fun(s,&t);printf(The result is:%ldn,t);31.编写函数fun 的功能是:输出M行 M列整数方阵,然后求两条对角线上的各元素之和,返回此和数。#include#define M 5 int fun(int n,int xxM)int i,j,sum=0;printf(n The%d x%d matrix:n,M,M);for(i=0;in;i+)for(j=0;jn;j+)printf(%4d,xxij);printf(n);for(i=0;in;i+)sum+=xxii+xxn-i-1i;return sum;main()int aaMM=1,2,3,4,5,4,3,2,1,0,6,7,8,9,0,9,8,7,6,5,3,4,5,6,7;clrscr();printf(n the sum of all elements on 2 diagnals is%d.,fun(M,aa);32.编程,对输入的字符串s,删除其中的所有空白字符(包括 tab 字符、回车符及换行符)。输入字符串时用“#”结束输入。#include#include#include void fun(char*p)int i,t;char c80;for(i=0,t=0;pi;i+)if(!isspace(*(p+i)ct+=pi;ct=0;strcpy(p,c);名师归纳总结 精品学习资料 -精心整理归纳 精选学习资料 -第 14 页,共 23 页 -main()char c,s80;int i=0;printf(Input a string:);c=getchar();while(c!=#)si=c;i+;c=getchar();si=0;fun(s);puts(s);33.编写函数fun 的功能是:将 s 所指字符串中最后一次出现的t1 所指字符串替换成t2所指的子串,所形成的新串放在w所指的数组中。在此处,要求 t1 和 t2 所指字符串的程度相同。例如,当 s 所指字符串中的内容为:“abcdabfabc”,t1 所指的子串中的内容为:“ab”,t2 所指子串中的内容为:“99”,结果,在w所指的数组中的内容应为:“abcdabf99c”。#include#include#include int fun(char*s,char*t1,char*t2,char*w)int i;char*p,*r,*a;strcpy(w,s);while(w)p=w;r=t1;while(*r)if(*r=*p)r+;p+;else break;if(*r=0)a=w;w+;r=t2;while(*r)*a=*r;a+;r+;main()char s100,t1100,t2100,w100;clrscr();printf(nPlease enter string s:);scanf(%s,s);printf(nPlease enter substring t1:);scanf(%s,t1);printf(nPlease enter substring t2:);scanf(%s,t2);if(strlen(t1)=strlen(t2)fun(s,t1,t2,w);printf(nThe result is:%sn,w);else printf(nError:strlen(t1)!=strlen(t2)n);34.编写函数 fun 的功能是:将 a 所指字符串中的字符和b 所指字符串中的字符按排列的顺序交叉合并到c 所指数组中,过长的剩余字符接在c 所指数组的尾部。例如,当 a 所指字符串中的内容为:“abcdefg”,b 所指字符串中的内容为“1234”时,c 所指数组中的内容应名师归纳总结 精品学习资料 -精心整理归纳 精选学习资料 -第 15 页,共 23 页 -该为“a1b2c3d4efg”;而当a 所指字符串中的内容为“1234”,b 所指字符串中的内容为“abcdefg”时,c 所指数组中的内容应该为“1a2b3c4defg”。#include#include void fun(char*a,char*b,char*c)while(*a&*b)*c=*a;c+;a+;*c=*b;c+;b+;if(*a=0)while(*b)*c=*b;c+;b+;else while(*a)*c=*a;c+;a+;*c=0;main()char s1100,s2100,t100;clrscr();printf(n Enter s1 string:);scanf(%s,s1);printf(n Enter s2 string:);scanf(%s,s2);fun(s1,s2,t);printf(n The result is:%sn,t);35.编写函数 fun 的功能是:从传入的num个字符串只能找出最长的一个字符串,并通过形参指针 max传回该串地址。(用*作为结束输入的标志)#include#include fun(char(*a)81,int num,char*max)int i,p,len;len=strlen(a0);p=0;for(i=1;inum;i+)if(lenstrlen(ai)len=strlen(ai);p=i;strcpy(*max,ap);main()char ss1081,*ps;int n,i=0;clrscr();printf(nPlease input some strings:);gets(ssi);puts(ssi);while(!strcmp(ssi,*)=0)i+;gets(ssi);名师归纳总结 精品学习资料 -精心整理归纳 精选学习资料 -第 16 页,共 23 页 -puts(ssi);n=i;fun(ss,n,&ps);printf(nmax=%s,ps);36.编写函数 fun 的功能是:将s 所指字符串的反序和正序进行连接,形成一个新串放在t所指的数组中。例如,当 s 所指字符串的内容为“ABCD”时,t 所指数组中的内容为“DCBAABCD”。#include void fun(char*s,char*t)int i,d;d=strlen(s);for(i=0;id;i+)ti=sd-1-i;for(i=0;id;i+)td+i=si;t2*d=0;main()char s100,t100;clrscr();printf(nPlease enter strnig S:);scanf(%s,s);fun(s,t);printf(n The result is:%sn,t);37.利用 gets()函数获取用户输入的字符串s1,用 s 和 s2 分别指向其首地址,通过扫描让 s2 指向最后一个字符,依次交换s1 和 s2 所指字符,直到s1s2 为止。最后输出的s字符串即为所求。编写程序。#include void main()char temp,*s,*s1,*s2;s1=(char*)malloc(sizeof(100);printf(Input string:);gets(s1);s=s2=s1;while(*s2!=0)s2+;s2-;while(s1s2)temp=*s1;*s1=*s2;*s2=temp;s1+;s2-;printf(n revers string:%s,s);38.38.编写程序,要求函数match(s,t)完成在字符串s 中寻找与t 匹配的字符,若存在名师归纳总结 精品学习资料 -精心整理归纳 精选学习资料 -第 17 页,共 23 页 -一个匹配,则返回t 在字符串中的下标;否则,返回。其中字符指针*b 始终指向s 的第一个元素。要求字符串s 的长度大于字符串t 的长度,本例中chars81,t20。#include#include int match(char*s,char*t)char*b=s,*p,*r;for(;*s!=0;s+)for(p=s,r=t;*r!=0&*p=*r;p+,r+);if(*r=0)return(s-b);return(-1);main()char s181,t120;char*s=s1,*t=t1;int i;printf(ninput source string:);gets(s);printf(ninput substring:);gets(t);i=match(s,t);printf(position is:%dn,i);39.编写程序,用于把两个链表3,12,8,9,11和1,2,3连接起来。其中 create_list用来创建链表,链表结点的数据从数组中导入,并返回链表的首结点指针。函数concatenate用来把由实参传进来的两个链表连接起来,返回第一个链表的首结点指针。函数printlink用来遍历打印链表。#include struct list int data;struct list*next;struct list*create_list(int array,int num)struct list*tmp1,*tmp2,*pointer;int i;pointer=(struct list*)malloc(sizeof(struct list);pointer-data=array0;tmp1=pointer;for(i=1;inext=NULL;tmp2-data=arrayi;tmp1-next=tmp2;tmp1=tmp1-next;return pointer;struct list*concatenate(struct list*pointer1,struct list*pointer2)struct list*tmp;名师归纳总结 精品学习资料 -精心整理归纳 精选学习资料 -第 18 页,共 23 页 -tmp=pointer1;while(tmp-next)tmp=tmp-next;tmp-next=pointer2;return pointer1;printlink(struct list*head)struct list*p;p=head;while(p)printf(%4d,p-data);p=p-next;main()int arr1=3,12,8,9,11;int arr2=1,2,3;struct list*ptr1,*ptr2,*ptr3;ptr1=create_list(arr1,5);ptr2=create_list(arr2,3);ptr3=concatenate(ptr1,ptr2);printlink(ptr3);40.函数 reverse()实现将已知链表的链接顺序颠倒的功能,即第个表元素变为最后一个表元素,第个表元素变为倒数第个表元素最后一个表元素变为第个表元素。本程序的主要难点在reverse()函数,其它的程序段为验证该函数用,采用了head 全局变量是为了简化程序中的参数传递。程序中先用指令p=q2-next;将 p 定位 q2-next 结点,再用指令q1=q2;将 q1 指向当前q2所指的结点,然后用指令q2-next=q1;进行逆向单链表的连接,如此循环至q2=NULL。#include struct node char data;struct node*next;*head;void create(struct node*q)if(head=NULL)q-next=NULL;head=q;else q-next=head;head=q;void reverse()struct node*p,*q1,*q2;q2=head;q1=NULL;while(q2!=NULL)名师归纳总结 精品学习资料 -精心整理归纳 精选学习资料 -第 19 页,共 23 页 -p=q2-next;q2-next=q1;q1=q2;q2=p;head=q1;main()char ch;struct node*p;head=NULL;while(ch=getchar()!=n)p=(struct node*)malloc(sizeof(struct node);p-data=ch;create(p);p=head;while(p!=NULL)printf(%c,p-data);p=p-next;reverse();p=head;while(p!=NULL)printf(%c,p-data);p=p-next;41.编程实现对一个文本文件中内容的反向显示。运行该程序前,必须先在c:tc目录下编辑并保存一个名为“text.txt”的文本文件(可利用记事本)。该程序先利用读方式打开该文本文件,定位到文件尾,从文件尾向前定位,定位成功则读取一个字符并显示,达到反向显示的目的。#include void main()char c;FILE*fp;if(fp=fopen(text.txt,r)=NULL)printf(Cannot open file.n);exit(1);fseek(fp,1,2);while(fseek(fp,-1L,1)!=-1)c=fgetc(fp);putchar(c);if(c=n)fseek(fp,-2L,1);else fseek(fp,-1L,1);名师归纳总结 精品学习资料 -精心整理归纳 精选学习资料 -第 20 页,共 23 页 -fclose(fp);42.编程序测试fgets()、fputs()、fopen()和 fclose()的用法,程序运行后,在磁盘的当前目录下上生成名为“test.txt”的文本文件。#include char x48=First,second,Third,Fourth;int a4=6,7,6,5;void main()int i;char y48;FILE*fp;fp=fopen(test.txt,w);for(i=0;i4;i+)fputs(xi,fp);fclose(fp);fp=fopen(test.txt,r);for(i=0;i4;i+)fgets(yi,ai,fp);fclose(fp);for(i=0;i4;i+)printf(%sn,*(y+i);43.编程序利用fread()函数和 fwrite()函数向磁盘文件进行读写操作,先用fwrite()函数向文件f1 写入小写字母,再调用dx()函数读取该文件,将其中的小写字母转换成大写字母并输出,这两个函数用于二进制数据的读写。#include void dx()int i;char b10;FILE*fp=fopen(f1,r);for(i=0;i10;i+)fread(b+i,sizeof(char),1,fp);printf(%c,bi-32);fclose(fp);main()char a10=a,b,c,d,e,f,g,h,i,j;int i;FILE*fp=fopen(f1,w);for(i=0;i10;i+=2)fwrite(a+i,sizeof(char),2,fp);fclose(fp);dx();44.用链表操作实现数制的转换,试编程。#include struct node 名师归纳总结 精品学习资料 -精心整理归纳 精选学习资料 -第 21 页,共 23 页 -int num;struct node*next;main()struct node*p,*b=NULL;int m,n,base,c;printf(Input n and base:n);scanf(%d%d,&n,&base);m=n;while(n)c=n%base;n=n/base;if(cnum=c;p-next=b;b=p;printf(Output:n);printf(%d(10)=,m);while(p)printf(%c,p-num);p=p-next;printf(%d)n,base);free(p);第五部分读程序,填写指令1.p=m=z=0;else m+2c:tcfile1.dat c:tcfile2.dat!feof(in)3p0-link=p1 或 p0-link=head p0-link=p1 p0-link=NULL 4fgetf(fp)count+或 类似功能的指令5*(x+n-1)*(x+n-1-i)*x 6n%base n/base n!=0 7ai tempaj temp 8n=(n%10)*(n%10)n=(n%100)*(n%100)9t=*y y=x*x=t 10r+bk *x 11 s+1.0/(i*i)pi(100)或 pi(某 n 值)12flag=0 i=1 d:output.dat,w 13w=*x*(x+i)=*(x+i+1)*(x+i)=w 14ai i=1 ai,fp 15low+ai0 high-16a0 a+1 a0maxother 名师归纳总结 精品学习资料 -精心整理归纳 精选学习资料 -第 22 页,共 23 页 -17str1+,str2+1 psj,psj+118i=0;in-1 j=i+1;j=j aj=bk +n 或 n+19*(src+i)srci0 20strcmp(name,all_nameiall_namei yes0=Y|yes0=y 21.head p-next p 22.p1-num!=0 head=p1(或 p2)p2-next=p1 malloc(sizeof(struct worker)p!=0 p=p-next23.char*t s d-1-i si 0 24.*aa in chaaj j+1 a 25.(*f)sin fun 上海理工大学现代化教学中心计算机基础教研室名师归纳总结 精品学习资料 -精心整理归纳 精选学习资料 -第 23 页,共 23 页 -
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!