ImageVerifierCode 换一换
格式:DOCX , 页数:65 ,大小:57.71KB ,
资源ID:9717399      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9717399.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(计算机二级c语言上机百题题库.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

计算机二级c语言上机百题题库.docx

1、计算机二级c语言上机百题题库1假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导和尾部的*号之外,将串中其它*号全部删除。形参h已指向字符串中第一个字母,形参p已指向字符串中最后一个字母。在编写函数时,不得使用C语言提供的字符串函数。 例如,字符串中的内容为:*A*BC*DEF*G*,删除后,字符串中的内容应当是:*ABCDEFG*。在编写函数时,不得使用C语言提供的字符串函数。void fun(char *a,char *h,char *p)char b81,*x; int i=0,j=0; x=a; while (xh) bj=*x;x+;j+; while

2、(h=eps) /*通过循环语句判断公式中某项是否在精度范围之内*/ pi+=one; n+; up=up*n; down=down*(2*n+1); one=(double)up/(double)down; return pi*2;3请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。 例如,输入beijing shanghai (为回车键) 函数将返回shanghai。char *fun ( char *s, char *t) int first=0,second=0; char

3、 *p,*q; p=s; q=t; while(*p+!=0) /*判断是否到了字符串s的结尾*/ first+; while(*q+!=0) /*判断是否到了字符串t的结尾*/ second+; if(first=second) /*判断两个字符串的长度是否相等*/ return s; /*若上述条件成立,则返回第一个字符串*/ else if (firstsecond) /*返回较长的字符串*/ return s; else return t; 4 规定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:使字符串最前面连续的*号不得多于n个;若多于n个,则删除多余的*号;若少于或

4、等于n个,则什么也不做,字符串中间和尾部的*号不删除。 例如,字符串中的内容为:*A*BC*DEF*G*,若n的值为4,删除后,字符串中的内容应当是:*A*BC*DEF*G*;若n的值为8,则字符串中的内容仍为:*A*BC*DEF*G*。n的值在主函数中输入。在编写函数时,不得使用C语言提供的字符串函数。void fun(char *a,int n) char b81; int i=0,j=0,s=0,k; while (ai=*) s+;i+; if (sn) for (k=0;kn;k+) bj=*;j+; while (ai) bj=ai;j+;i+; bj=0; i=0;j=0; wh

5、ile (bj) ai=bj;i+;j+; ai=0; 5 请编写一个函数fun,它的功能是:计算n门课程的平均分,计算结果作为函数值返回。 例如:若有5门课程的成绩是:90.5,72,80,61.5,55,则函数的值为:71.80。float fun ( float *a , int n ) int i; float average; double sum=0; for(i=0;in;i+) sum+=ai; /*对数组中的各个元素求和*/ average=(float)sum/n; /*计算平均值*/ return average; /*返回平均值*/6 某学生的记录由学号、8门课程成绩和

6、平均分组成,学号和8门课程的成绩已在主函数中给出。请编写函数fun,它的功能是:求出该学生的平均分放在记录的ave成员中。请自己定义正确的形参。 例如,学生的成绩是:85.5,76,69.5,85,91,72,64.5,87.5,他的平均分应当是:78.875。void fun(STREC *p) int i; double aver=0; /*将平均分赋初值0*/ for (i=0;iN;i+) aver=aver+(*p).si; /*求和*/ (*p).ave=aver/N; /*计算平均值*/7 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun

7、,它的功能是:把高于等于平均分的学生数据放在h所指的数组中,高于等于平均分的学生人数通过形参传回,平均分通过函数值返回。double fun(STREC *a,STREC *b,int *n) int i,j; double aver=0; *n=0; for (i=0;iN;i+) aver=aver+ai.s; /*求和*/ aver=aver/N; /*计算平均分*/ for (i=0;i=aver) b*n.s=ai.s; /*将高于等于平均分的学生数据放在另一数组b中*/ for (j=0;j10;j+) b*n.numj=ai.numj; *n=*n+1; /*统计高于等于平均分的

8、学生人数*/ return (aver); /*返回平均分*/8 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:按分数的高低排列学生的记录,高分在前。void fun(STREC a)int i,j,p,t,k; char h; for (i=0;iN;i+) p=i; for (j=i+1;jN;j+) /*按分数从高到低进行排序*/ if (ap.saj.s) p=j; if (p!=i) t=ap.s;ap.s=ai.s;ai.s=t; for (k=0;k10;k+) h=ap.numk; ap.numk=ai.numk; ai

9、.numk=h; 9 函数fun的功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上。 例如,当a=45,b=12。调用该函数后,c=2415。void fun(int a, int b, long *c) int a_up,a_low,b_up,b_low; a_up=a/10; /*求正整数a的十位数*/ a_low=a%10; /*求正整数a的个位数*/ b_up=b/10; /*求正整数b的十位数*/ b_low=b%10; /*求正整数b的个位数*/ *c=b_low*

10、1000+a_up*100+b_up*10+a_low; /*将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上*/10 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:函数返回指定学号的学生数据,指定的学号在主函数中输入。若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回。(用于字符串比较的函数是strcmp)。STREC fun(STREC *a,char *b) int i,f=0; STREC p; /*定义结构体变量*/ p=a0; for (i=0;iN;i+)

11、 if (strcmp(ai.num,b)=0) p=ai;f=1; /*通过字符串比较函数将指定的学号与每一个学生的学号进行比较,若相同,则返回指定的学生数据*/ if (f=0) /*判断是否找到指定学号*/ p.num0=0; /*若没找到指定学号,在结构体变量中给学号置空串*/ p.s=-1; /*若没找到指定学号,在结构体变量中给成绩置-1*/ return p; /*返回学号和成绩*/11 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把指定分数范围内的学生数据放在h所指的数组中,分数范围内的学生人数由函数值返回。 例如,输

12、入的分数是60 69,则应当把分数在60到69的学生数据进行输出,包含60分和69分的学生数据。主函数中将把60放在low中,把69放在heigh中。int fun(STREC *a,STREC *b,int l,int h) int i,j=0,k,f=0; for (i=0;i=l) & (ai.s=h) /*判断该学生的分数是否在范围之内*/ for (k=0;knext; while (p!=0) aver=aver+p-s; /*从链表首结点开始,累计成绩之和*/ p=p-next; /*p后移一个结点*/ aver=aver/N; /*求成绩的平均值aver*/ return av

13、er; /*返回结果*/13 请编写一个函数unsigned fun(unsigned w),w是一个大于10的无符号整数,若w是n(n2)位的整数,函数求出w的低n-1位的数作为函数值返回。 例如:w值为5923,则函数返回923;w值为923,则函数返回23。unsigned fun( unsigned w ) if(w=10000) return w%10000; if(w=1000) return w%1000; if(w=100) return w%100; return w%10;14 请编写一个函数 int fun(int *s, int t, int *k),用来求出数组的最大

14、元素在数组中的下标, 用k返回。 例如, 输入如下整数: 876 675 896 101 301 401 980 431 451 777 则输出结果为: 6, 980int fun(int *s, int t, int *k) int max_integer=0; /*定义变量max_integer,用以存放数组s中的最大元素*/ int i=0; max_integer = s0; /*假定第一个数组元素为最大*/ for(i=0; it; i=i+1) /*建立循环,查找出数组s中的最大元素*/ /*将查找到的最大元素的下标赋给k,并传回主函数*/ if(max_integersi) ma

15、x_integer=si; *k=i; return *k;15 请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串-1234,则函数把它转换为整数值 -1234。long fun ( char *p) long n=0; int flag=0;/*通过循环语句移动指针,取出指针所在位置上的字符*/ while(*p!=0) if(*p=-) /*判断其是否为负号*/ flag=1; else if (*p=+) /*判断其是否为正号*/ flag=0; else /*判断其是否为数字字符*/ n=n*10+(*

16、p-0); /*将数字字符转化为相应的数值*/ p+; if (flag=1) n=-n; return n;16 请编写一个函数fun,它的功能是:求出1到m之内(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。例如,若传送给m的值为50,则程序输出: 7 11 14 21 22 28 33 35 42 44 49#include #include #define M 100void fun ( int m, int *a , int *n ) int i,count=0; /*count用于计数*/ for(i=1;i=m;i+) /*使用循环语句使循环变量依次从1递

17、增到m*/ if(i%7=0 | i%11=0) /*判断变量i是否能被7或者11整除*/ acount+=i; /*将符合条件的值存放入数组a中*/ *n=count; /*返回能被7或者11整除的数的个数*/17请编写一个函数fun,它的功能是:找出一维整型数组元素中最大的值和它所在的下标, 最大的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名, n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。void fun(int a, int n , int *max, int *d ) int i,base,subscript; base

18、=a0; /*假定第一个元素的值最大*/ subscript=0; /*subscript用于存放数组下标*/ for(i=1;ibase) /*将数组中的其他元素与变量base作比较,如果大于它则交换两者的值*/ subscript=i; base=ai; *max=base; /*将最大值元素的值赋给*max*/ *d=subscript; /*将最大值元素的下标赋给*d*/18 函数fun的功能是:将s所指字符串中下标为偶数的字符删除,串中剩余字符形成的新串放在t所指数组中。 例如,当s所指字符串中的内容为:ABCDEFGHIJK, 在t所指数组中的内容应是:BDFHJ。void fun

19、(char *s, char t) int i,slenth,n=0; slenth=strlen(s); /*通过strlen函数求字符串s的长度*/ for(i=1;islenth;i+=2) /*循环语句将数组下标为奇数的元素的值存入数组t中*/ tn+=si; tn=0;19 请编写函数fun,其功能是:计算并输出给定数组(长度为9)中每相邻两个元素之平均值的平方根之和。 例如,给定数组中的9个元素依次为12.0、34.0、4.0、23.0、34.0、45.0、18.0、3.0、11.0,输出应为:s=35.951014。double fun(double x9)int i ;doub

20、le avg=0.0,sum=0.0; /*将变量avg、sum定义为双精度型,并给其赋初值为0.0*/for (i=0;i1&n=100)for(i=1;i=n;i+)sum+=1.0/(2*i-1)-1.0/(2*i); /*计算出1.0/(2*i-1)-1.0/(2*i)相应的每一个多项式的值,同时累加到变量sum中*/return sum; /*返回计算结果*/21 请编写函数fun,它的功能是:计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。 例如,在主函数中从键盘给n输入20后,输出为:s=0.583333。 注意:要求n的值不大于100。#include doub

21、le fun(int n)int i; double sum=0.0; /*将sum定义为双精度型变量,并给其赋初值为0.0*/if(n0&n=100)for (i=1;i=n;i+) if(i%5=0|i%9=0) /*判断i是否能被5或者9整除*/ sum+=1.0/i; /*累加自然数的倒数之和,放入变量sum中*/return sum; /*返回结果*/22 请编写函数fun,其功能是:计算并输出当x0.97时下列多项式的值,直到|S(n)-S(n-1)|0.000001为止。 例如,在主函数中从键盘给x输入0.21后,输出为:s=1.100000。#include #include

22、可以通过while循环求出各项表达式的值,然后进行累加。double fun(double x) int n=1; /* 循环计数*/ double sn=1; /* 累计数*/ double xn=1,xn1=0; /*x的n值,以及x的n-1值;*/ while(fabs(xn-xn1)=0.000001)/*绝对值是否合格*/ xn=xn*x*(0.5-n+1)/n; /*表达式分解以后xn=(xn-1)*x*(0.5-n+1)/n*/ n+=1; sn+=xn; /*sn累加上xn*/ return(sn);23请编写函数fun,其功能是:计算并输出给定10个数的方差: 1 10 0.

23、5S= (Xk-X)2 10 k=1 1 10其中X= Xk 10 k=1 例如,给定的10个数为95.0、89.0、76.0、65.0、88.0、72.0、85.0、81.0、90.0、56.0,输出为s=11.730729。#include #include double fun(double x10) int i; /*定义变量*/double avg=0.0;double sum=0.0;double abs=0.0;double fc;for (i=0;i10;i+) /*循环开始*/sum+=xi; /*计算已结定的10个数之和,并将其值赋给变量sum中*/avg=sum/10;

24、/*计算已结定的10个数的平均值,并将其值赋给变量avg*/for (i=0;i10;i+) /*循环开始*/abs+=(xi-avg)*(xi-avg); /*计算(Xk-X)的平方和,并将其值赋给变量abc*/fc=sqrt(abs/10) ; /*sqrt(abs/10)函数是计算abs/10的平方根*/return fc; /*返回结果*/24 请编写函数fun,其功能是:计算并输出3到n之间所有素数的平方根之和。 例如,在主函数中从键盘给n输入100后, 输出为:sum=148.874270。 注意:要求n的值大于2但不大于100。#include #include double f

25、un(int n) int i,j=0; /*定义两个整型变量*/ double s=0; /*定义变量s为双精度型*/ for (i=3;i=n;i+) for (j=2;ji;j+) if (i%j=0) break; /*如果i能被j整除就说明i不是素数,继而退出循环体*/ if (j=i) s=s+sqrt(i); /*sqrt(i)函数是计算i的平方根*/ return s; /*返回结果*/25请编写函数fun,其功能是:计算并输出S=1+(1+20.5)+(1+20.5+30.5)+(1+20.5+30.5+n0.5) 例如,在主函数中从键盘给n输入20后,输出为:s=534.188884。 注意:要求n的值大于1但不大于100。#include #include double fun(int n)int i; /*定义一个整形变量*/double fac=1.0; /*定义变量fac、sum为双精度型*/double sum=1.0;if (n1&n=100)for(i=2;i=n;i+)fac+=sqrt(i);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1