(word完整版)计算机二级C语言编程考试题库(100题)2011年、2012年计算机100题题库1:题1m个人分数存储在score数组中,请写出函数fun,其函数is :返回低于平均分数的人作为函数值,并将低于平均分数的分数放入下面指定的函数中。 答案: int fun(int Score[],int m,int Below[]) { int i,k=0,aver=0; for(i=0;i<m;i++) aver+=score[i]; 平均值/=m; for(i=0;i<m;i++) if(score[i]<aver) { 下面[k]=score[i]; k++; } k; } 2:请为问题2的乐趣写一个函数,其功能是:找出1到100之间所有能被7或11整除,但不能同时被7和11整除的证书,并把它们放在a指向的数组,并通过n个数字返回这些数字。 答案: void fun(int *a, int *n) { int i,j=0; for(i=2;i<1000;i++) if ((i%7==0 || i==0) && i%77!=0) a[j++]=i; *n=j; } 3:对于问题3,请编写函数void fun(int x,int pp[],int *n)。 它的功能是: find 查找所有能整除的整数。约数的个数通过形参n返回。
答案: 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;i<j;i++) if(x%t[i]==0) { pp[k]=t [i]; k++; } *n=k; 4:对于问题4,请写一个函数void fun(char *tt,int pp[]),统计tt字符中从“a”到“z”这26个字母的出现次数,并放入pp 指向的数组。答案: void fun(char *tt, int pp[]) { int i; 对于 (i=0;i<26;i++) pp[i]=0; while (*tt) { (*tt) {2 / 47 专业教材(Word完整版)计算机二级C语言编程考试题库(100题) case 'a': pp[0]++;break; 案例 '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; 案例“m”:pp[12]++; 休息; case 'n': pp[12]++;break; case 'o': pp[14]++;break; case 'p': pp[15]++;break; case 'q': pp [16]++;break; case 'r': pp[17]++;break; 案例'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:对于问题5,请写一个函数void fun(int m, int k, int xx[]),这个函数的作用是:存储大于整数m且接近于m的k个素数将xx C语言编程考试题库(100题)指向的《3 / 47专业资料(Word完整版)计算机二级》数组中放入。
答案: void fun(int m, int k, int xx[]) { int g=0,I,j,flag=1; for(i=m+1;i<m*m;i++) { for(j =0;j<I;j++) { if(i%j!=0) flag=1; 否则{ 标志=0; 休息; } } if (flag==1 && j>=i) { if (k> =0) { xx[g++]=i; k——; 否则中断; } } } 6:对于问题6,请编写一个函数void fun(char a[],char[],int n)。 其功能是:删除每个字符串中下标指定的字符。 其中,a指向原始字符串,删除的字符串存储在b指向的数组中,n存储指定的下标。 4/47专业教材(Word完整版)计算机二级C语言编程题库(100题)答案:void fun(char a[],char b[], int n) { int I,j=0; for ( i=0;i<LEN;i++) if (i!=n) { b[j]=a[i]; j++; b[j]='\0'; } 7:请为第7题写一道题 函数int fun(int *s, int t, int *k)用于查找数组中最大元素的下标,并将其存储到k指向的存储单元中。
答案:void fun(int *s, int t, int *k) { int I, max; 最大值=s[0]; for(i=0;i<t;i++) if (s[i]>max) { max=s[i]; *k=I; } } 8:问题8:写函数fun。 功能为:根据如下攻击计算s,计算结果作为函数值返回; n通过形参传入。 S=1+1/(1+2)+1/(1+2+3)+…….+1/(1+2+3+4+……+n) 答案:float fun (int n) {5/47 专业教材(Word完整版)计算机二级C语言编程题库(100题) int i; 浮点数 s=1.0,t=1.0; for(i=2;i<=n;i++) { t =t+i; s=s+1/t; } s; } 9:问题9:写一个函数fun。 它的作用是根据下面的公式求p的值,并将结果通过函数值带回来。 M和n为两个正整数,并且要求m>n。 p=m!/n!(mn)! 答案:float fun(int m, int n) { float p,t=1.0; 整数我; 对于 (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;i<=mn;i++) t=t*I; p=p/t; p; } 10:问题10:写函数fun。 其功能是利用如下简单的迭代方法求出方程cos(x)-x=0根的实值。
迭代步骤如下: (1) 取x1的初始值为0.0; (2) x0=x1,将x1的值赋给每个x0; (3) x1=cos(x0),求出新的x1; (4)若x0-x1的绝对值小于0,则执行步骤(5),否则执行步骤(2); 6 / 47 专业教材(Word完整版)计算机二级C语言编程考试题库(100题)(5)所以求x1是方程cos(x)-x=0的实根,以函数值的形式返回。 程序会输出 root=0.. 答案: float fun() { float x1=0.0,x0; 做{x0=x1; x1=cos(x0); while(fabs(x0-x1)>1e-6); x1; } 11:问题11 下面的程序定义了一个n×n的二维数组,并在main函数中自动赋值。 请编写函数 fun(int a[][n])。 该函数的作用是将数组左下三角元素中的值全部设置为0。答案:int fun(int a[][N]) { int I,j; for(i=0;i<N;i++) for(j=0;j<=I;j++) a[i][j ]=0; } 12:问题12 下面的程序定义了一个n×n的二维数组,并在main函数中赋值。
请写出有趣的函数。 该函数的作用是求数组周围元素的平均值,返回给主函数中的s作为函数值。 答案: fun(int w[][N]) { int I,j,k=0; s=0.0;7/47 专业教材(Word完整版)计算机二级C语言编程题库(100题) for( j=0;j<N;j++) { s+=w[0][j]; k++; } for(j=0;j<N;j++) { s+=w[N-1][j]; k++; } for(i=1;i<=N-2;i++) { s+=w[i][0]; k++; } for(i=1;i<=N-2;i++) { s+=w [i][N-1]; k++; } s/=k; } 13: 对于第13题,请写一个函数 void fun(int tt[m][n],int pp[n]), tt 指向一个 m 对于一个有行和n列的二维函数组,求取出二维函数组每一列中最小的元素,依次放入pp指定的一维数组中。 二维数组中的数字已经在main函数中赋值了。 答案: void fun(int tt[M][N], int pp[N]) { int I,j,min; for(j=0;j<N;j++) { min=tt[0][j] ;8/47 专业教材(Word完整版)计算机二级C语言编程题库(100题) for(i=0 ;i<M;i++) { if (tt[i][j]<min) min= tt[i][j]; } pp[j]=最小值; 14:第14题请不要写函数fun,该函数的作用是求二维数组周围元素的和,并以函数值的形式返回。
二维数组中的值在main函数中赋值。 答案: int fun(int a[M][N]) { int I,j,s=0; for(j=0;j<N;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]; } s ; } 15:对于第15题,请写一个函数fun(w),w是一个大于10的无符号整数,如果w是一个n(n≥2)位的整数,则该函数查找w之后的n-1位数字作为函数值返回。 答案:fun(w) { t,s=0,s1=1,p=0;9/47 专业教材(Word完整版)计算机二级C语言编程题库(100题)t=w; while(t >10) { if(t/10) p=t; s=s+p*s1; s1=s1*10; t=t/10; } s; } 16:对于第16题,请写一个函数float fun(h),该函数的作用是为变量h中的值保留一棵2位树,并对第三位进行四舍五入(指定h中的值为正数)。
答案:float fun(float h) { long t; 浮动 s; h=h*1000; t=(h+5)/10; s=(浮点数)t/100.0; s; } 17:请写第17题一个函数fun(char *s),这个函数的作用是设置字符串中的内容。 答案: void fun(char *s) { char ch; 整数 I,m,n; 我=0; m=n=(s)-1;10/47 专业教材(Word完整版)计算机二级C语言编程考试题库(100题) while(i<(n+1)/2) { ch=s[我]; s[i]=s[m]; s[m]=ch; 我++; 米——; } 18:问题18:编写一个程序,实现矩阵(3行3列)的转置(即行和列的互换)。 答案: void fun(int array[3][3]) { int I,j,temp; for(i=0;i<3;i++) for(j=0;j<I,j++) { temp=array [i][j]; 数组[i][j]=数组[j][i]; 数组[j][i]=临时; } } 19:问题19:写函数fun。 该函数的作用是:从字符中删除指定的字符。 同一字母的大写和小写字符被视为不同的字符。
答案: void fun(char s[],int c) { int i=0; 字符*p; p=s; while(*p) { if(*p!=c)11/47 专业资料(word完整版)计算机二级C语言编程考试题库(100题){ s[i]=*p; 我++; } p++; s[i]='\0'; } 20:问题20 编写函数int fun(int lim, int aa[max]),这个函数的作用是找出所有小于等于lim的素数,放入aa数组中。 该函数返回所寻找的素数的个数。 答案: int fun(int lim, int aa[MAX]) { int k=0,I,j; for(i=lim;i>1;i--) { for(j=2;j<i;j++ ) if(i%j==0) 中断; 别的 ; if(j>=i) { aa[k]=i; k++; k++; } 21:对于第21题,请写出函数fun,长度为7个字符的字符串,除第一个和最后一个字符外,其余5个字符按照ASCII码降序排列。 答案:12 / 47 专业教材(Word完整版)计算机二级C语言编程题库(100题) void fun(char *s,int num) { char t; 整数 I,j; for(i=1;i <num-2;i++) for(j=i+1;j<num-1;j++) if(s[i]<s[j]) { t=s[i]; s[i]=s[j]; s[j]=t; } } 22:第22题n个学生的成绩在main函数中被放入一个有头节点的链表结构中,h指向链表的头节点。
请写出有趣的函数。 它的功能是:找到学生的最高分,并通过函数值返回。 答案: fun(STREC *h) { max; STREC *q=h; 最大值=h->s; 执行 { if(q->s>max) max=q->s; q=q->下一个; while(q!=0); 最大限度; } 23:对于第23题,请写一个函数fun。 该函数的作用是:判断字符串是否是回文? 如果是,函数返回1,主函数输出yes,否则返回0,主13/47专业教材(Word完整版)计算机二级C语言编程考试题库(100题)在函数中输入no。 回文是向前和向后读时相同的字符串。 答案: int fun(char *str) { int I,n=0;fg=1; 字符*p=str; while (*p) { n++; p++; for(i=0;i<n/2; i++) if (str[i]==str[n-1-i]); 否则 { fg=0; 休息; } fg; } 24:对于第24题,请写一个函数fun。 它的功能是: a 将字符串转换为整数(一定不能调用C语言提供的字符串转换为整数的函数)。
答案:long fun (char *p) { long s=0,t; int i=0,j,n=(p),k,s1; if(p[0]=='-') i++; for( j=I;j<=n-1;j++) {14 / 47 专业资料(word完整版)计算机二级C语言程序设计题库(100题) t=p[j]-'0'; s1=10; for(k=j;k<n-1;k++) t*=s1; s+=t; } if(p[0]=='-') –s; 否则 s; } 25:问题25请写一个有趣的函数。 它的作用是:比较两个字符串的长度(一定不能调用C语言提供的求字符串长度的函数),函数返回较长的字符串。 如果两个字符串长度相同,则返回第一个字符串。 答案: char *fun(char *s,char *t) { char *p,*t1=t,*s1=s; 整数 n=0;m=0; while (*s1) { n++; s1++; } while (*t1) { m++; t1++; 如果(n>=m) p=s; /47 专业资料(word完整版)计算机二级C语言编程题库(100题)p=t; p; } 26 : 问题 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…。
答案: fun( eps) { s; 浮点数 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++; 圆周率=圆周率*2; 圆周率; } 27:对于第27题,请写一个函数fun。 它的功能是:将1除以m 将所有能被7或11整除的整数(包括m)放入数组a中,通过n返回这些数字的个数。 答案: void fun(int m, int *a, int *n) { int I,j=0; *n=0; for(i=1;i<=m;i++) if (i%7==0 || i ==0)16/47专业教材(Word完整版)计算机二级C语言编程考试题库(100题) { a[j]=I; j++; } *n=j; } 28:第28题:请写一个fun函数。 它的作用是求一维整数数组元素中的最大值及其下标。 通过形参返回最大值及其下标。 数组元素中的值已经在main函数中赋值了。 main函数中,x为数组名,n为x中数据的个数,