《计算机二级C上机编程题型.doc》由会员分享,可在线阅读,更多相关《计算机二级C上机编程题型.doc(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1返回指定学生数据,指定学号在主函数中输出。若没找到指定学号在结构体变量中给学号置空串,给成绩置-1,作为函数值返回int i;STREC t=0,-1;for(i=0;i=a&si=z&si-1= )k+;return k;5编写函数fun,函数的功能是求出小于或等于lim的所有素数并放在aa数组中,函数返回所求出的素数的个数。函数fun中给出的语句公供参考int x,i,k=0;for(x=1;x=lim;x+)for(i=2;ix;i+)if(x%i=0)break;if(i=x)aak+=x;return k;6计算s=根号下ln1+.ln(m),s作为函数值返回double s=0;
2、int i;for(i=1;i=m;i+)s=s+log(i);return sqrt(s);7删除一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。int i,k=1;for(i=0;i=a&ssi=z)ssi=ssi-32;9求出数组周边元素平均值病作为函数值返回给主函数中的sdouble sum=0;int i,j;for(i=0;iN;i+)for(j=0;jN;j+)sum=sum+wij;if(i=0|i=N-1|j=0|j=N-1)return sum/(4*N-4);10对变量h中的值保留两位小数,病对第三位四舍五入(h中的
3、数值为正数)return (long) (h*100+0.5)/100.011将M行N列的二维数组中的数据,按列顺序依次放到一个字符串中int i,j,k=0;for(j=0;jN;j+)for(i=0;iN;i+)bk+=sij;bk=0;12移动字符串中的内容,移动规则:把第一个到第m个移到最后,把后面移到前面int i,j;char t;for(i=1;i=m;i+)t=w0;for(j=1;wj!=0;j+)wj-1=wj;wj-1=t;13若有n个整数,要求把下标从0到p平移到最后int i,j,t;for(i=0;i=p;i+)t=w0;for(j=1;j=n;j+)wj-1=wj
4、;wj-1=t;14计算并输出给定10个数方差double sum=0,t=0;int i;for(i=0;i10;i+)t=t+xi;t=t/10;for(i=0;i10;i+)sum=sum+(xi-t)*(xi-t);return sqrt(sum/10);15求出二维数组周边元素之和,作为函数值返回。二维数组中的数值在主函数中赋予int i,j,sum=0;for(i=0;iM;i+)for(j=0;jN;j+)if(i=0|i=M-1|j=0|j=N-1)sum=sum+aij;return sum;16将放在字符串中的m个字符串按顺序合并成一个新的字符串int i,j,k=0;fo
5、r(i=0;iM;i+)for(j=0;aij!=0;j+)bk+=aij;bk=0;17把分数最低的学生数据放在B所指的数组中,注意:分数最低的学生可能不止一个,返回人数int i,k=0,min;min=a0.s;for(i=1;iai.s) min=ai.s;for(i=0;i=0.000001);return x1;19将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。int i,j,k=0;for(j=0;jnn;j+)for(i=0;imm;i+)bk+=sij;*n=k;1 20将二维数组按列的顺序放到一维数组int i,j,k=0;for(j=0;jnn;j+)for
6、(i=0;imm;i+)bk+=sij;*n=k;21将两个两位数的正整数a.b合并形成一个整数放c中。合并的方式是:a的十位和个位放c的千位和十位。b的十位*c=a/10*1000+b/10*100+a%10*10+b%10;22请编写一个函数 void fun()统计a到z26个字母各自出现次数,并写入PP中int i;for(i=0;i=a&tti=z)pptti-a+;23找出成绩最低的学生记录,通过形参返回主函数int i,k,min;min=a0.s;k=0;for(i=1;iai.s)min=ai.s;k=i;*s=ak;24求一个2xM二维数组最大元素值,并将此值返回调用函数i
7、nt i,j,max=a00;for(i=0;i2;i+)for(j=0;jM;j+)if(maxaij) max=aij;return max;25使数组左下三角元素中的值乘nint i,j;for(i=0;iN;i+)for(j=0;j=j)aij=aij*n;26M行N列二维数组按行顺序放在一维数组中,一维数组中数据个数放在形参n所指的存储单元中int i,j,k=0;for(i=0;imm;i+)for(j=0;jnn;j+)bk+=sij;*n=k;27计算输出n包括n以内能被5或9整除的所有自然数的倒数之和double s=0;int i;for(i=1;i=n;i+)if(i%5
8、=0|i%9=0)s=s+1.0/i;return s;28判断字符串是否回文?若是,函数返回1,主函数中输出:YES否侧返回0,主函数中输出NO。int i,len=0;while(strlen!=0)len+;for(i=0;ilen/2;i+)if(stri!=strlen-1-i) break;if(i=len/2) return 1;else return 0;30求1到1000内能被7或11整除但不能同时被7和11整除的所有整数并将他们放在a所指ude数组中。int i,k=0;for(i=1;inext;max=p-s;while(p!=NULL)if(p-smax) max=p
9、-s;p=p-nextreturn max;32只删除字符串前和后的星号,串中字母之间的星号不能删除.形参n给出的字符串的长度,形参h给出的字符串中前导星号的个数,int i,k=0;for(i=h;in-e;i+)ak+=ai;ak=0;33把制定分数范围内的学生数据放在b所指的数组中,分数范围内的学生个数由函数值返回int i,k=0;for(i=0;i=l&ai.s=h)bk+=ai;return k;34计算n门课程平均分,计算结果作为函数值返回float s=0;int i=0;for(i=0;in;i+)s=s+ai;return s/n;36除了尾部的星之外,将字符串中其他星号全
10、部删除,形参P已指向字符串中最后的一个字母。int i,k=0;for(i=0;i=0.000001)t=t*(0.5-n+1)*x/n;s=s+t;n+;return s;38sn=1+(0.5x+0.5(0.5-1)除2!)x平方double t=1,s=1;int n=1;while(fabs(t)=0.000001)t=t*(0.5-n+1)*x/n;s=s+t;n+;return s;39把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生个数通过形参n返回double sum=0;int i,k=0;for(i=0;iN;i+)sum=sum+ai.s;for(i=0
11、;i=sum/N) bk+=ai;*n=k;return sum/N;41将字符串中的前导星号全部移到字符串的尾部int i;char t;while(a0=*)t=a0;for(i=1;ai!=0;i+)ai-1=ai;ai-1=t;42找出一维数组元素中最大的值和它所在的下标,最大的值和他所在的下表通过形参传回。int i;*max=a0;*d=0;for(i=1;in;i+)if(*maxai) *max=ai;*d=i;43把地狱平均分的学生数据放在b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回int i,k=0;double s=0;for(i=0;iN;i
12、+)s=s+ai.s;s=s/N;for(i=0;iN;i+)if(ai.sn)for(i=p-n;ai!=0;i+)ak+=ai;ak=0;45除了字符串前导的星号之外,将串中其他的星号全部删除。int i,k=0;while(ak=*)k+;for(i=k;ai!=0;i+if(ai!=0;i+)ak+=ai;ak=0;47将所有大于1小于整数m的非素数放入xx所指数组中,非素数的个数通过k传回int x,i,n=0;for(x=2;xm;x+)for(i=2;ix;i+)if(x%i=0) break;if(i!=x) xxn+=x;*k=n;48求出1到m内(含m)能被7或11整除的所
13、有的整数放在数组a中,通过n返回这些数的个数int i,k=0;for(i=1;i=m;i+)if(i%7=0|i%11=0)ak+=i;*n=k;49s=1+x+x n次方除以n!double s=1,t=1;int i=1;for(i=1;i=n;i+)t=t*x/i;s=s+t;return s;51计算并输出下列级数和:s=1除以1乘以2+1除以2乘以3+.+1除以n(n+1)double s=0;int i;for(i=1;i=n;i+)s=s+1.0/(i*(i+1);return s;52 根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。s=1加上1除以(1+2)+1
14、除以(1+2+3).加上1除以(1+2+3+4+.+n)float s=0,t=0;int i;for(i=1;i=n;i+)t=t+i;s=s+1.0/t;return s;53计算并输出给定数组(长度为9)中每相邻两个元素之平均值的平方根之和double s=0;int i;for(i=0;i8;i+)s=s+sqrt(xi+xi+1)/2);return s;54删除一个字符串中指定下标的字符。其中,a指向原字符串,删除指定字符后的字符串存放在b所指的数组中,n中存放指定的下标。int i,k=0;for(i=0;ai!=0;i+)if(i!=n) bk+=ai;bk=0;55求小于形参
15、n同时能被3与7整除的所有自然数之和的平方根,并作为函数值返回double s=0;int i;for(i=1;in;i+)if(i%3=0&i%7=0)s=s+i;return sqrt(s);56根据以下公式求p的值,结果由函数值带回。m与n为两个正整数且要求m大于n。p=m!除以n!(m-n)!int i;float t1=1,t2=1,t3=1;for(i=1;i=m;i+)t1=t1*i;if(i=n) t2=t1;if(i=m-n) t3=t1;57删除字符串中的全部前导星号,中间和尾部的星号不删除int i=0,k=0;while(ai=*)i+;for(i=i;ai!=0;i+
16、)ak+=ai;ak=0;58求出数组最大元素下标并存在k所指定的存储单元中int i,max;max=s0;*k=0;for(i=1;it;i+)if(maxsi)max=si;*k=i;59将s所指字符串中下标为偶数的删除,串中剩余字符形成的新串放在t所指数组中。int i,k=0;for(i=0;si!0;i+)if(i%2!=0) tk+=si;tk=0;61计算病输出给定整数n所有因子之和。规定n的值不大于1000int i,s=0;for(i=2;in;i+)if(n%i=0) s=s+i;return s;62将大于形参m紧靠m的k个素数存入xxint x,i,n=0;for(x
17、=m+1; ;x+)for(i=2;ix;i+)if(x%i=0) break;if(i=x) xxn+=x;if(n=k) break;63、二维数组是数坐下半三角的元素中的值全部为0int i,j;for (i=0;=N;i+) for (j=0;j=j) aij=0;64删除字符串中所有空格int i,k=0;for(i=0;stri!=0;i+)if(stri!= ) strk+=stri;strk=0;65长度为7除首尾其余5个按ASC降序排列int i,j;char t;for(i=1;inum-2;i+)for(j=i+1;jnum-1;j+)if(si=n) return s;
18、else return t;67删除所有星号,在编写时,不得使用c语言提供的字符串函数int i,k=0;for(i=0;ai!=0;i+)if(ai!=*) ak+=ai;ak=0;68s所指将字符串除了下标为偶数同时ACS值也为偶数外其余删除;串中剩余字符所形成的一个新字符串放在t所指的数组中int i,k=0;for(i=0;si!=0;i+)if(i%2=0&si%2=0)tk+=si;tk=0;69从s所指字符串中删除指定字符。统一字母大小写按不同字符处理int i,k=0;for(i=0;si!=0;i+)if(si!=c) sk+=si;sk=0;70按分数高低排列学生的记录,高
19、分在前int i,j;STREC t;for(i=0;iN-1;i+)for(j=i+1;jN;j+)if(ai.saj.s)t=ai;ai=aj;aj=t;71秋能整除x且不是偶数的各整数从小到大放在pp数组中,除数的个数通过形参n返回int i,k=0;for(i=1;i=x;i+)if(x%i=0&i%2!=0)ppk+=i;*n=k;72低于平均分的人数返回低于平均分的分数放在below数组中inti,k=0;double sum=0;for(i=0;im;i+)sum=sum+scorei;for(i=0;im;i+)if(scoreisum/m) belowk+=scorei;re
20、turn k;73实现b=a+a,即把矩阵A加A的转制存在B中。计算结果在main函数中输出int i,j;for(i=0;i3;i+)for(j=0;j3;j+)bij=aij+aji;75计算3到n之间含所有素数平方根之和double s=0;int x,i;for(x=3;x=n;x+)for(i=2;ix;i+)if(x%i=0) break;if(i=x) s=s+sqrt(x);return s;76分数最高的学生数据放在h所指数组中int i,k=0,max;max=a0.s;for(i=1;iN;i+) if(maxai.s) max=ai.s;for(i=0;iN;i+) i
21、f(ai.s=max) bk+=ai;return k;77求平均分放在aveint i;double sum=0;for(i=0;iN;i+)sum=sum+(*a).si;(*a).ave=sum/N;79从num个字符串中找出最长的一个,病通过形参指针max传回该地址if(maxlenstrlen(ai)maxlen=strlen(ai;k=i;)80 3行3列矩阵转制int i,j,t;for(i=0;i3;i+)for(j=i+1;j3;j+)t=arrayij;arrayij=arrayji;arrayji=t;81将s所指字符串中下标为偶数同时ASCLL值为奇数的字符删除,s中剩
22、余的字符形成的新串放在t所指的数组中int i,k=0;for(i=0;si!=0;i+)if(i%2!=0|si%2=0)tk+=si;tk=0;82函数功能是把s所指字符串中的内容逆置int i,len=strlen(s);char t;for(i=0;i=eps)t=t*n/(2*n+1);s=s+t;n+;return 2*s;86除了字符串前导和尾部的星号之外,将传中其他星号全部删除。形参h已指向字符串中第一个字母,形参p已指向字符串中最后一个字母int i,k=h-a;for(i=h-a;ip-a;i+)if(ai!=*) ak+=ai;for(i=p-a;ai!=0;i+)ak+
23、=ai;ak=0;87将一个数字字符串转换为一个整数long s=0,i,f;if(p0=-) i=1;f=-1;else if(p0=+) i=1;f=1;else i=0;f=1;while(pi!=0)s=s*10+pi-0;i+;return f*s;88实现两个字符串的连接,即把P2所指的字符串连接到p1所指的字符串后面int n=0,k=0;while(p1n!=0)n+;while(p2k!=0)p1n=p2k;k+;n+;p1n=0;90s=1+(1+根号2)double s=0.t=0;int i;for(i=1;i=n;i+)t=t+sqrt(i);s=s+t;return
24、 s;91求出SS字符串中。指定字符个数,并返回此值int i,k=0;for(i=0;ssi!=0;i+)if(ssi=c) k+;return k;92s=1+1乘2分之一double s=0,t=1;int i;for(i=1;i10)t=t/10;j=j*10;return w%j;94sn=1-二分之一+三分之一double s=0;int i;for(i=1;i=n;i+)s=s+1.0/(2*i-1)-1.0/(2*i);return s;95sn=1+1!分之一+2!分之一double s=1,t=1;int i;for(i=1;i=n;i+)t=t*i;s=s+1.0/t;r
25、eturn s;96tt指向一个M行N列的二维数组,求二维数组每列最小元素,并一次放入pp所指的一维数组中int i,j,min;for(j=0;jN;j+)min=tt0j;for(i=1;ittij)min=ttij;ppj=min;97N名同学的成绩以在主函数中放入一个带有节点的链表结果中,h指向链表的头结点。功能是:求出平均分 由函数值返回double sum=0;STREC *p=h-next;while(p!=NULL) sum=sum+p-s; p=p-next;return sum/N;98使字符串中尾部的星号不得多余n个;若多于n个,侧删除多余的星号;若少于或等于n个,侧什么也不做,字符串中间和前面的星号不删除int len,k=0;while(alen!=0)len+;len=len-1;while(alen=*)k+;len-;if(kn) alen+n+1=0;99求fibonacci数列大于t的最小的一个数,结果由函数返回int a=0,b=1,c=a+b;while(c=t)a=b;b=c;c=a+b;return c;100该函数可以统计一个长度为2的字符串在另一个的出现次数。int i,k=0;for(i=0;stri!=0;i+)if(stri=substr0&stri+=substr1)k+;return k;