c语言上机考试题库(C语言上机考试题库)c语言计算机二级考试选择题如图?全国计算机二级考试试题题库(附答案) 下列各题 A) 、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项在答题 卡相应位置上涂黑,答在试卷上不得分。 (1) 应用软件是指 A) 所有能够使用的软件 B) 能被各应用单位共同使用的某种软件 C) 所有微机上都应使用的基本软件 D) 专门为某一应用目的而编制的软件 (2) 下列述叙中错误的是 A) 计算机要经常使用不要长期闲置不用 B) 为了延长计算机的寿命,应避免频繁开关计算机 C) 在计算机附近应避免磁场干扰 D) 计算机用几小时后,应关机一会儿再用 (3) 下列字符中,ASCII码值最小的是 A) A B) a C) Z D) x (4) 用晶体管作为电子器件制成的计算机属于 A) 第一代 B) 第二代 C) 第三代 D) 第四代 (5) 下列各不同进制的四个无符号数中,最小的数是 A) ()2 B) (37)8 C) (75)10 D) (2A)16 (6) 二进制数转换成十六进制数是 A) B) C) D) (7) 下列各无符号十进制数中,能用八位二进制表示的是 A) 296 B) 333 C) 256 D) 199 (8) 计算机的软件系统可分类为 A) 程序与数据 B) 系统软件与应用软件 D) 操作系统与语言处理程序 D) 程序、数据与文档 (9) 486机中的CPU同时能处理的二进制位数为 A) 8 B) 16 C) 32 D) 64 (10) 在使用计算机的过程中,需要重新启动DOS,则要 A) 按Ctrl+Break键 B) 按^C键 C) 按Ctrl+Alt+Del键 D) 按^H键 (11) 现要从软盘启动DOS(软盘中已存有DOS系统),设有如下一些操作:①打开计算机 电源;②将该软盘插入A驱动器;③关好A驱动器门。则冷启动的操作顺序应为 A) ①→②→③ B) ③→②→① C) ②→①→③ D) ②→③→① (12) 设当前盘中某一文件路径为ACB,当前目录为A。下列命令中错误的是 A) CD.. B) RD ACB C) TYPE ACB D) TYPE CB (13) 设当前盘中的根目录下有一子目录AB,在子目录AB下有一文件。现要查看文件 的内容,应使用命令 A) TYPE AB B) TYPE AB C) TYPE D) DIR AB (14) 自动批处理文件必须放在 A) C盘根目录中 B) A盘根目录中 C) 启动盘的任一个目录中 D) 启动盘的根目录中 (15) 设当前盘当前目录为C:USERXYP,且当前盘当前目录为空,则下列命令中能正 确执行的是 A) RD C:USERXYP B) RD USERXYP C) MD USERXYPUSER D) MD USERXYPXY (16) 下列DOS命令中,合法的是 A) DISKCOMP B) TYPE C) COMP A: B: D) COMP A: A: (17) 设当前盘为C盘,所用的所有软盘已格式化,且容量相同,则下列DOS命令中错 误的是 A) DISKCOPY A: A: B) COPY A:*.* C) COPY *.* D) COPY A:*.* C: (18) 下列DOS命令中错误的是 A) TYPE PRN B) TYPE PRN C) COPY *.TXT PRN D) COPY CON PRN (19) 下列四组DOS命令中,互相等价的一组是 A) COPY A:*.* B:与DISKCOPY A: B: B) COPY +与TYPE C) COPY + 与COPY + D) TYPE *.FORCON与COPY *.FOR CON (20) 设C盘目录结构如下: 且C盘根目录下文件的内容为 CD FORTRAN CD TC 如果在A驱动器中插入一张根目录中只有扩展名为.C的若干文件(即A盘中无DOS系统 文件)的软盘片,则由C盘启动DOS系统后,第一次键入下列命令中,正确的是 A) COPY A:*.C B) COPY A:*.C TC C) COPY A:*.C FORTRAN D) CD USER (21) C语言提供的合法的数据类型关键字是 A) Double B) short C) integer D) Char (22) 在C语言中,合法的长整型常数是 A) 0L B) 4962710 C) D) (23) 表达式:10!=9的值是 A) true B) 非零值 C) 0 D) 1 (24) 合法的C语言中,合法的长整型常数是 A) 't' B) "A" C) 65 D) A (25) 若有说明和语句: int a=5; a++; 此处表达式a++的值是 A) 7 B) 6 C) 5 D) 4 (26) 在下列选项中,不正确的赋值语句是 A) ++t; B) n1=(n2=(n3=0)); C) k=i==j; D) a=b+c=1; (27) 若有说明:int i,j=7, *p=i;,则与i=j;等价的语句是 A) I= *P; B) *P=*J; C) i=j; D) i=* *p; (28) 不能把字符串:Hello!赋给数组b的语句是 A) char b[10]={'H','e','l','l','o','!'}; B) char b[10];b="Hello!"; C) char b[10];strcpy(b,"Hello!"); D) char b[10]="Hello!"; (29) 若有以下说明: int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char c='a',d,g; 则数值为4的表达式是 A)a[g-c] B)a[4] C)a['d'-'c'] D)a['d'-c] (30) 若有以下说明: int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则数值为6的表达式是 A) *p+6 B) *(p+6) C) *p+=5 D) p+5 (31) 若有以下说明: int w[3][4]o={{0,1},{2,4},{5,8}}; int(*p)[4]=w; 则数值为4的表达式是 A) *w[1]+1 B) p++,*(p+1) C) w[2][2] D) p[1][1] (32) 若程序中有下面的说明和定义 struct abc {int x;char y;} struct abc s1,s2; 则会发生的情况是 A) 编译进错 B) 程序将顺利编译`连接`执行 C) 能顺利通过编译`连接`但不能执行 D) 能顺利通过编译`但连接出错 (33) 能正确表示a≥10或a≤0的关系表达式是 A)a=10 or a=0 B)a=10│a=0 C)a=10││a=0 D)a=10 ││a=0 (34) 下面程序的输出是 main() { int x=3,y=6,a=0; while(x++!=(y+=o1)) { a+o=1; if(y #include main() { char ss[10]="12345"; strcat(ss,"6789"); gets(ss);printf("%sn",ss); } A) ABC B) ABC9 C) 123456ABC D) ABC456789 (35) 下面程序的输出是 main() { char *a=""; int v1=0,v2=0,v3=0,v4=0,k; for(k=0;s[k];k++) switch(s[k]) { default:v4++; case '1': v1++; case '3': v3++; case '2': v2++; } printf("v1=%d,v2=%d,v3=%d,v4=%dn",v1,v2,v3,v4); } A) v1=4,v2=2,v3=1,v4=1 B) v1=4,v2=9,v3=3,v4=1 C) v1=5,v2=8,v3=6,v4=1 D) v1=8,v2=8,v3=8,v4=8 (36) 下面程序的输出是 main() {int k=11;printf("k=%d,k=%o,k=%xn",k,k,k);} A)k=11,k=12,k=11 B)k=11,k=13,k=13 C)k=11,k=013,k=0xb D)k=11,k=13,k=b (37) 若有以下程序段,w和k都是整型变量: ┆ w=k; LB: if(w==0) go to LE; w--; printf("*"); goto LB; LE: ┆ 则不能与上面程序段等价的循环语句是 A)for(w=k;w!=0;w--) printf("*"); B)for(w=k;w;--w)printf("*"); C)w=k; D)w=k; while(w--!=0)printf("*");w++; do{ w--;printf("*");}while(w!=0); (38) 若有说明,double *p,a;则能通过scanf语句正确给输入项读入数据的程序段是 A)*p=a; scanf("%lf",p); B)p=(double *)malloc(8);scanf("%f",p); C) p=a;scanf("%lf",a); D)p=a; scanf("%le",p); (39) 当执行下面程序且输入:ABC时,输出的结果是 #include #include main() { char ss[10]="12345"; gets(ss);printf("%sn",ss); } A) ABC B) ABC9 C) 123456ABC D) ABC456789 (40) 若有以下的说明和语句: main() {int t[3][2], *pt[3],k; fpr(k=o; k3;k++)pt[k]=t[k]; } 则以一选项中能正确表示t数组元素地址的表达式是 A) t[3][2] B) *pt[0] C) *(pt+1) D) pt[2] (41) 下面程序输出数组中的最大值,由s指针指向该元素. main() { int a[10]={6,7,2,9,1,10,5,8,4,3,},*p,*s; flr(p=a, s=a; p-a10; p++) if(---?---)s=p; printf("The max:%d",*s): } 则在if语句中的判断表达式应该是 A) ps B) *p*s C) a[p]a[s] D) p-ap-s (42) 下面程序的输出是 #include main() { char*a="abcdefgh"; fun(a);puts(a); } fun (char * s) { int x=0,y;char c; for(y=strlen(s)-1;x A)abcdefgh B)hgfdecba C)dcbahgfe D)hgfedcba (43) 若有以下函数调用语句: fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函数调用语句 中实参的个数是 A)3 B)4 C)5 D)6 (44) 下面程序的输出是 main() { int t=1; fun(fun(t));} fun(int h) { static int a[3]={1,2,3}; int k; for(k=0;k3;k++) a[k]+=a[k]-h; for(k=1;k3;k++) printf("%d",a[k]); printf("n"); return(a[h]);} A)1,2,3, B)1,3,5, C) 1,3,5, D) 1,3,5, 1,5,9, 1,3,5, 0,4,8, -1,3,7, (45) C语言中,函数的隐含存储类别是 A)auto B)static C)extern D)无存储类别 (46) 下面程序的输出是 int w=3; main() { int w=10; printf("%dn",fun(5)*w); } C语言三级考什么?三级C语言程序设计是全国计算机等级考试(NCRE)三级网络技术,数据库技术,信息管理技术上机考试考核内容。一般每次考试题库由100道C语言程序设计题组成(俗称"南开百题")。上机考试时每个考生从百题题库中随机抽选一题,在规定的时间内完成其程序设计要求。 C语言考试题//word编辑,大小写可能有问题 一、填空题 1、一个C语言程序的语句至少应包含一个__函数____。 2、C语言源程序文件的扩展名是__ .C ____,经过编译、连接后,生成文件的扩展名是__编译后为.obj 连接后为.exe ____。 3、结构化程序由 顺序 、___选择___和___循环___三种基本结构组成。 4、C语言的执行是从__main()函数____开始执行的。 5、C源程序的语句分隔符是___;___。 6、在C语言中,用关键字__float____定义单精度实型变量。 7、表达式S=12应当读做“__把12赋值给变量S____”。 8、C语言源程序的基本单位是___函数___。 9、设int x=9,y=8;表达式x-=y+1的结果是___0___。 10、若a为整型变量,a=12,则表达式:a * =2+3的值___60___。 11、调用C语言对输入输出处理的库函数时,在# include命令行中应包含的头文件是__stdio.h___。 12、表达式9%5的结果是_4____。 13、若a为整型变量,a=12,则表达式:a+=4的值___16___。 14、在C语言中,要求运算数必须是整型的运算符是___%___。 15、在C语言中,用___非0___表示逻辑“真”值。 16、表达式10/3的结果是__3____。 17、通常一个字节包含___8___个二进制位。 18、 假设所有变量均为整型,a=2,b=5,b++则表达式a+b的值是___8___。 19、在C语言中,最基本的数据类型只有四种,它们分别是:___int___、___char___、___float___和double。 20、一个C程序有且仅有一个__main()____函数。 21、若a为整型变量,a=12,则表达式:a-=2的值__10____。 22、在C语言中,有三种逻辑运算符,它们分别是:___!___、______、___||___。 23、在C语言中,字符输入函数和字符输出函数分别是:__getchar()____和___putchar()___。 24、C程序开发的四个步骤是___编辑___、___编译___、___链接___和执行。 25、C程序的结构分别是:顺序结构、__选择结构____、__循环结构____。 26、if语句中的表达式可以是关系表达式、__逻辑表达式____、___条件表达式___。 27、__?:____是C语言中惟一一个三元运算符。 28、C语言提供的预处理命令主要包括如下三种:宏定义、__文件包含____、___条件编译___。 二、阅读程序,写出下列程序运行结果。 1、2 2、K 3、a 97 4、无结果 三、编写程序 1、编写一个C程序,输入a、b、c 3个数,输出其中最大的数。 #includestdio.h Void main() { Int a,b,c; Printf("请输入三个数"); Scanf(%d%d%d,a,b,c); If(ab) A=b; If(ac) A=c; Printf("最大的数:%d",a); } 求1—50的之和。 #includestdio.h Void mian() { Int sum=0,i; For(i=1;i=50;i++) Sum+=i; Printf("1-50之和为:%d",sum); } 从键盘输入一个大写字母,要求改用小写字母输出。 #includestdio.h Void mian() { Char c; Printf("请输入一个字母"); Scanf("%c".c); Printf("它的小写字母为%c",c+32); } 利用while语句,计算1+1/2+1/4+…+1/100的值,并显示出来。 #includestdio.h Void mian() { Float sum=0,temp; Int i =1; While(i=100) { Temp=1/i; Sum+=temp; I++ } Printf("结果为%d",sum); } 输入两个整数,输出其中的大数。 #includestdio.h Void mian() { Int a,b; Printf("请输入两个数"); Scanf("%d%d".a,b); Printf("大数是:%d"ab?a:b); } 6、利用while语句,计算1+1/3+1/5+…+1/99的值,并显示出来。 #includestdio.h Void mian() { Int i =1; Float sum=0,temp=0; While(i=99) { Temp =1/i; Sum+=temp; I=i+2; } Printf("结果为: %f",sum), } 跪求全国计算机等级考试上机题库④ 计算机等级考试题库百度网盘免费资源在线学习 ? 链接: 提取码: as3q ④ 计算机等级考试题库 未来教育vip版 2019.9 无忧考吧 最新题库 2019.3 无忧考吧 计算机题库 2018.9 无忧考吧考试题库 2018.9 未来教育 最新版 2018.3 无忧考吧版题库 2018.3 未来教育 普通版 未来教育计算机等级考试手机版3.0 vip破解版,不用注册,直接点确定.apk 一级MS Office无纸化考试模拟软件.zip 三级网络技术无纸化考试模拟软件.zip 三级数据库无纸化考试模拟软件.zip 三级嵌入式无纸化考试模拟软件.zip 二级C无纸化考试模拟软件.zip 二级C++无纸化考试模拟软件(Express).zip ? c语言上机试题1.m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。 1.int fun(int score[],int m,int below[]) {int i,k=0,aver=0; for(i-0;im;i++) aver+=score[i]; aver/=m; for(i=0,im;i++) if(score[i]aver) {below[k]=score[i]; k++;} return k;} 2.请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书,并将他们放在a所指的数组中,通过n返回这些数的个数。 2.void fun(int *a,int *n) {int i,j=0; for(i=2;i1000;i++) if((i%7==0//i%11==0))i%77!=0) a[j++]=i; *n=j;} 3.请编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。 3. void fun(int x, int pp[],int *n) {int i=1,j=0,k=0,*t=pp; for(i=0;i=x;i++) if(i%2!=0) {t[j]=i; j++;} for(i=0;ij;i++) if(x%t[i]==0) {pp[k]=t[i]; k++;} *n=k;} 4.请编写一个函数void fun(char *tt,int pp[]),统计在tt字符中"a"到"z"26各字母各自出现的次数,并依次放在pp所指的数组中。 4. void fun(char *tt,int pp[]) {int i; for(i=0;i26;i++) pp[i]=0; while (*tt) {switch(*tt) {case'a':pp[0]++;break; case'b':pp[1]++;break; case'c':pp[2]++;break; case'd':pp[3]++;break; case'e':pp[4]++;break; case'f':pp[5]++;break; case'g':pp[6]++;break; case'h':pp[7]++;break; case'i':pp[8]++;break; case'j':pp[9]++;break; case'k':pp[10]++;break; case'l':pp[11]++;break; case'm':pp[12]++;break; case'n':pp[13]++;break; case'o':pp[14]++;break; case'p':pp[15]++;break; case'q':pp[16]++;break; case'r':pp[17]++;break; case's':pp[18]++;break; case't':pp[19]++;break; case'u':pp[20]++;break; case'v':pp[21]++;break; case'w':pp[22]++;break; case'x':pp[23]++;break; case'y':pp[24]++;break; case'z':pp[25]++;break;} tt++;} } 5.请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k各素数存入xx所指的数组中。 5. void fun(int m,int k,int xx[]) {int g=0,i,j,flag=1; for(i=m+1;im*m;i++) {for(j=2;ji;j++) {if (i%j!=0) flag=1; else {flag=0; break;} } if (flag==1j=i) {if (k0) {xx[g++]=i; k--;} else break;}}} 6.请编写一个函数void fun(char a[],char[],int n),其功能是:删除以各字符串中指定下标的字符。其中,a指向原字符串,删除后的字符串存放在b所指的数组中,n中存放指定的下标。 6. void fun(char a[],char b[],int n) {int i,j=0; for (i=0;iLEN;i++) if(i!=n) {b[j]=a[i]; j++;} b[j]='\0';} 7.请编写一个函数int fun(int *s,int t,int *k),用来求除数组的最大元素在数组中的下标并存放在k所指的储存单元中。 7. void fun(int *s,int t,int*k) {int i,max; max=s[0]; for (i=0;it;i++) if (s[i]max) {max=s[i]; *k=i; }} 8.编写函数fun,功能是:根据以下攻势计算s,计算结果作为函数值返回;n通过形参传入。s=1+1/(1+2)+1/(1+2+3)+.......+1/(1+2+3+4+......+n) 8. float fun(int n) {int i; float s=1.0,t=1.0; for (i=2;i=n;i++) {t=t+i; s=s+1/t;} return s;} 9.编写一个函数fun,它的功能是:根据以下公式求P的值,结果由函数值带回。m与n为两个正整数,且要求mn。 p=m!/n!(m-n)! 9. p=m!/n!(m-n)! float fun(int m,int n) {float p,t=1.0; int i; for (i=1;i=m;i++) t=t*i; p=t; for (t=1.0,i=1;i=n;i++) t=t*i; p=p/t; for(t=1.0,i=1;im-n;i++) t=t*i; p=p/t; return p;} 10.编写函数fun,它的功能是:利用以下的简单迭代方法求方程cos(x)-x=0的一个实根。 迭代步骤如下:(1)取x1初值为0.0; (2)x0=x1,把x1的值赋各x0; (3)x1=cos(x0),求出一个新的x1; (4)若x0-x1的绝对值小于0.000001,则执行步骤(5),否则执行步骤(2); (5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。 程序将输出Root=0.739085。 10. folat fun() {float x1=0.0,x0; do {x0=x1; x1=cos(x0); } while (fabs(x0-x1)=1e-6); return x1;} 11.下列程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数 fun(int a[][N]),该函数的功能是:使数组左下半三角元素中的值全部置成0。 11. int fun(int a[][N]) {int i,j; for(i=0;iN;i++) for(j=0;ji;j++) a[i][j]=0;} 12.下列程序定义了N×N的二维数组,并在主函数中赋值。请编写函数fun,函数的功能使求出数组周边元素的平均值并作为函数值返回给主函数中的s。 12.double fun (int w[][N]) {int i,j,k=0; double s=0.0; for (j=0;jN;j++) {s+=w[0][j]; k++;} for (j=0;jN;j++) {s+=w[N-1][j]; k++;} for (i=1;i=N-2;i++) {s+=w[i][0]; k++;} return s/=k;} 13.请编写一个函数void fun(int tt[M][N],int pp[N]),tt指向一个M行N列的二维函数组,求出二维函数组每列中最小元素,并依次放入pp所指定一维数组中。二维数组中的数已在主函数中赋予。 13. void fun(int tt[M][N],int pp[N]) {int i,j,min; for (j=0;jN;j++) {min=tt[0][j]; for (i=0;iM;i++) {if (tt[i][j]min) min=tt[i][j];} pp[j]=min;}} 14.请别写函数fun,函数的功能使求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。 14. int fun (int a[M][N]) {int i,j,s=0; for (j=0;jN;j++) {s+=a[0][j]; s+=a[M-1][j];} for (i=1;i=M-2;i++) {s+=a[i][0]; s+=a[i][N-1];} return s;} 15.请编写一个函数unsigned fun(unsigned w),w使一个大于10的无符号整数,若w使n(n≥2)位的整数,则函数求出w后n-1位的数作为函数值返回。 15. unsigned fun(unsigned w) {unsigned t,s=0,s1=1,p=0; t=w; while(t10) {if(t/10) p=t%10; s=s+p*s1; s1=s1*10; t=t/10; } return s;} 16.请编写一个函数float fun(double h),函数的功能使对变量h中的值保留2位小树,并对第三位进行四舍五入(规定h中的值位正数)。 16. float fun (float h) {long t; float s; h=h*1000; t=(h+5)/10; s=(float)t/100.0; return s;} 17.请编写一个函数fun(char *s),该函数的功能使把字符串中的内容拟置。 17. void fun(char *s) {char ch; int i,m,n; i=0; m=n=strlen(s)-1; while(i(n+1)/2) {ch=s[i]; s[i]=s[m]; s[m]=ch; i++; m--;}} 18.编写程序,实现矩阵(3行3列)的转置(即行列互换)。 18. void fun(int array[3][3]) {int i,j,temp; for (i=0;i3;i++) {temp=array[i][j]; array[i][j]=array[j][i]; array[j][i]=temp; }} 19.编写函数fun,该函数的功能是:从字符中删除指定的字符,同一字母的大、小写按不同字符处理。 19. void fun(char s[],int c) {int i=0; char*p; p=s; while(*p) {if(*p!=c) {s[i]=*p; i++;} p++;} s[i]='\0';} 20.编写函数int fun(int lim,int aa[MAX]),该函数的功能是求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求的素数的个数。 20. int fun(int lim,int aa[MAX]) {int k=0,i,j; for(i=lim;i1;i--) {for(j=2;ji;j++) if(i%j==0) break; else continue; if(j=i) {aa[k]=i; k++;}} return k++;} 21.请编写函数fun,对长度位7个字符的字符串,除首尾字符外,将其余5个字符按ASCII码降序排列。 21.void fun(char *s,int num) {char t; int i,j; for (i=1;inum-2;i++) for (j=i+1;jnum-1;j++) if(s[i]s[j]) {t=s[i]; s[i]=s[j]; s[j]=t;}} 22.N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:找出学生的最高分,由函数值返回。 22. double fun (STREC *h) { double max; STREC *q=h; max=h-s; do {if(q-smax) max=q-s; q=q-next; } while(q!=0); return max;} 23.请编写函数fun,该函数的功能是:判断字符串是否为回文?若是则函数返回1,主函数中输出YES,否则返回0,主函数中输出NO。回文是指顺读和倒读都是一样的字符串。 23. int fun(char *str) {int i,n=0,fg=1; char *p=str; while (*p) {n++; p++;} for (i=0;in/2;i++) if (str[i]==str[n-1-i]); else {fg=0; break;} return fg;} 24.请编写一个函数fun,它的功能是:将一个字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。 24. long fun(char *p) {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;kn-1;k++) t*=s1; s+=t; } if(p[0]=='-') return -s; else return s;} 25.请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。 25. char *fun(char *s,char *t) {char *p,*t1=t,*s1=s; int n=0,m=0; while(*s1) {n++; s1++;} while(*t1) {m++; t1++;} if(n=m) p=s; else p=t; return p;} 26.请编写一个函数fun,它的功能是:根据以下公式求X的值(要求满足精度0.0005,即某项小于0.0005时停止迭代): X/2=1+1/3+1×2/3×5+1×2×3/3×5×7+1×2×3×4/3×5×7×9+...+1×2×3×...×n/3×5×7×(2n+1) 程序运行后,如果输入精度0.0005,则程序输出为3.14...。 26. double fun(double eps) {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.请编写一个函数fun,它的功能是:求除1到m之内(含m)能北7或11整除的所有整数放在数组a中,通过n返回这些数的个数。 27.void fun(int m,int *a,int *n) {int i,j;*n=0; for(i=1;i=m;i++) if(i%7==0//i%11==0) {a[j]=i; j++;} *n=j;} 28.请编写一个函数fun,它的功能是:找出一维整型数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n 是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。 28. void fun(int a[],int n, int *max,int *d) {int i; *max=a[0]; *d=0; for(i=0;in;i++) if(a[i]*max) {*max=a[i]; *d=i;}} 29.请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。 29. void fun(char *ss) {int i,n; n=strlen(ss); for(i=1;in;i+=2;) if(ss[i]='a'ss[i]='z') ss[i]=ss[i]-32;} 30.请编写一个函数fun,它的功能是:求除一个2×M整型二维数组中最大元素的值,并将此值返回调用函数。 30. int fun(int a[][M]) {int i,j,max; max=a[0][0]; for(i=0;i2;i++) for(j=0;jM;j++) if(a[i][j]max) max=a[i][j]; return max;} 31.请编写函数fun,其功能是:将s所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在t所指的一个数组中。 31. void fun(char *s,char t[]) {int i,j,n; n=strlen(s); for(i=0;in;i++) if(i%2==0s[i]%2==0) {t[j]=s[j]; j++;} t[j]='\0';} 32.请编写函数fun,其功能是:将s所指字符串中除了下标为奇数、同时ASCII值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的一个数组中。 32. void fun(char *s,char t[]) {int i,j=0,n; n=strlen(s); for(i=0;in;i++) if(i%2!=0s[i]%2!=0) {t[j]=s[j]; j++;} t[j]='\0';} 33.假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:使字符串中尾部的*号不得多于n个;若多于n个,则删除多于的*号;若少于或等于n个,则什么也不做,字符串中间和前面的*号不删除。 33. void fun(char *a,int n) {int i=0,k=0; char *p,*t; p=t=a; while(*t) t++; t--; while(*t--'*') {k++; t--;} t++; if(kn) {while(*ppt+n) {a[i]=*p; i++; p++;} a[i]='\0'; }} 34.学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能使:把分数最高的学生数据放在h所指的数组中,注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。 34. int fun(STREC*a,STREC *b) {int i,j=0,max; max=a[0].s; for(i=0;iN;i++) if(a[i].s==max) {*(b+j)=a[i]; j++; n++;} return n;} 35.请编写一个函数,用来删除字符串中的所有空格。 35. void fun(char *str) {int i=0; char *p=str; while(*p) {if(*p!='') {str[i]=*p; i++;} p++;} str[i]='\0';} 36.假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串中的前导*号全部移到字符串的尾部。 36. void fun(char *a) {int i=0,n=0; char *p; p=a; while (*p=='*') {n++; p++;} while (*p) {a[i]=*p; i++; p++;} while(n!=0) {a[i]='*'; i++; i--;} a[i]='\0';} 37.某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出。请编写函数fun,它的功能是:求出该学生的平均分放在记录的ave成员中。请自己定义正确的形参。 37. void fun(STREC *p) {double av=0.0; int i; for(i=0;iN;i++) av+=p-s[i]; av/=N; p-ave=av;} 38.请编写函数fun,它的功能是:求出ss所指字符串中指定字符的个数,并返回此值。 38. int fun(char *ss,char c) {int n=0; while(*ss) {if(*ss==c) n++; ss++;} return n;} 39.请编写函数fun,该函数的功能是:移动一维数组中的内容,若数组中由n个整数,要求把下标从0到p(p小于等于n-1)的数组元素平移到数组的最后。 39. void fun(int *w,int p,int n) {int b[N],i,j=0; for(i=0;i=p;i++) b[i]=w[i]; for(i=p+1;in;i++) {w[j]=w[i]; j++;} for(i=0;i=p;i++) {w[j]=b[i]; j++;}} 40.请编写函数fun,该函数的功能是移动字符串中内容,移动的规则如下:把第1到第m个字符,平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。 40.void fun(char *w,int m) {char b[N]; int i,j=0; for(i=0;im;i++) {b[j]=w[i]; j++;} for(i=0;istrlen(w)-m;i++) w[i]=w[i+m]; for(j=0;jm;j++) {w[i]=b[j]; i++;} w[i]='\0';} 41.请编写函数fun,该函数的功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。 41. void fun(char (*s)[N],char *b) {int i,j,k=0; for(j=0;jn;j++) for(i=0;iM;i++) {b[k]=*(*(s+i)+j) k++;} b[k]='\0';} 42.下列程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][N],int m),该函数的功能是:将数组右上半三角元素中的值乘以m。 42. void fun(int a[][N],int m) {int i,j; for(j=0;jN;j++) for(i=0;i=j;i++) a[i][j]=a[i][j]*m;} 43.编写一个函数,从传入的num个字符串中找出一个最长的一个字符串,并通过形参指针max传回该串地址(用****作为结束输入的标志)。 43. char *fun(char (*a)[81],int num) {int i; char *max; max=a[0]; for(i=0;inum;i++) if(strlen(max)strlen(a[i])) max=a[i]; return max;} 44.编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。 44. int fun(char *str,char *substr) {int n; char *p,*r; n=0; while(*str) {p=str; r=substr; while(*r) if(*r==*p) {r++; p++;} else break; if(*r=='\0') n++; str++;} return n;} 45.假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。形参n 给出了字符串的长度,形参h给出了字符串中前导*号的个数,形参e给出了字符串中最后的*个数。在编写时不得使用C语言给提供得字符串函数。 45.void fun(char *a,int n,int h,int e) {int i=0; char *p; for(p=a+h;pa+n-e;p++) {*(a+i)=*p; i++;} *(a+i)='\0';} 46.学生得记录由学号和成绩组称个,N名大学生得数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能时:按分数的高低排列学生的记录,高分在前。 46. void fun(STREC a[]) {int i,j; STREC t; for(i=0;iN-1;i++) for(j=i;sN;j++) if(a[i].sa[j].s) {t=a[i]; a[i]=a[j]; a[j]=t; }} 47.请编写一个函数void fun(char *ss),其功能时:将字符串ss中所有下标为奇数位置上的字母转换为大写(若位置上不是字母,则不转换)。 47. void fun(char *ss) {int i,n=0; char *p=ss; while(*p) {n++; p++;} for (i=0;in;i++) if ((ss[i]='a'ss[i]='z') ss[i]=ss[i]-32; ss[i]='\0';} 48.请编写函数fun,其功能是:将两个两位数的正整数a,b合并成一个整数放在c中。合并的方式是:将a数的十位和个位依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。 48. void fun(int a,int b,long *c) {*c=(a/10)*1000+(b/10)*100+(a%10)*10+b%10;} 49.请编写函数fun,其功能是:将s所指字符串中下标位偶数同时ASCII值为奇数的字符删除,s中剩余的字符形成的新串放在t所指的数组中。 49. void fun(char *s,char t[]) {int i,j=0,n=strlen(s); for(i=0;in;i++) if(i%2==0s[i]%2!=0) else {f[j]=s[i]; j++;} t[j]='\0';} 50.已知学生的记录是由学号和学习成绩构成,N名学生的数据已存入结构体数组中。请编写函数fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)。 50. void fun(STU a[],STU *s) {int i,max; max=a[0].s; for (i=0;iN;i++) if(a[i].smax) {max=a[i].s; *s=a[i];}} 51.请编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指的数组中,非素数的个数通过k传回。 51. void fun(int m,int *k,int xx[]) {int i,j; int t=0; for(i=2;im;i++) {j=2; while(ji) {if(i%j==0) {xx[t]=i; t++; break;} j++;} *k=t;}} 52.编写一个函数fun,它的功能是:实现两个字符串的连接(不使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串后。 52. void fun(char p1[],char p2[]) {int i=0,n=0; char *p=p1,*q=p2; while (*p) {p++; n++;} i=n; while(*p) {p1[i]=*q; q++; i++;} p1[i]='\0';} 53.请编写函数fun,该函数的功能是:实现B=A+A',即把矩阵A加上A的转置,存放在矩阵B中。计算结果在main函数中输出。 53. void fun(int a[3][3],int b[3][3]) {int i,j,at[3][3]; for(i=0;i=2;i++) for(j=0;j=2;j++) at[i][j]=a[j][i]; for(i=0;i3;i++) for(j=0;j3;j++) b[i][j]=a[i][j]+at[i][j];} 54.学生的记录由学号和成绩组称个,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把低于平均分的学生数据放在b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。 54. double fun(STREC *a, STREC *b,int *n) {double aver=0.0; int i,j=0; *n=0; for (i=0;iN;i++) aver+=a[i].s; aver/=N; for(i=0;iN;i++) if(a[i].saver) {b[j]=a[i]; (*n)++; j++; } return aver;} |