收藏 分享(赏)

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

上传人:精品资料 文档编号:10980933 上传时间:2020-01-29 格式:DOC 页数:20 大小:297.50KB
下载 相关 举报
计算机二级c语言上机百题题库.doc_第1页
第1页 / 共20页
计算机二级c语言上机百题题库.doc_第2页
第2页 / 共20页
计算机二级c语言上机百题题库.doc_第3页
第3页 / 共20页
计算机二级c语言上机百题题库.doc_第4页
第4页 / 共20页
计算机二级c语言上机百题题库.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

1、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 (x=eps) /*通过循环语句判断公式中某项是否在精度范围之内*/pi+=one;

2、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 *p,*q;p=s;q=t;while(*p+!=0) /*判断是否到了字符串s的结尾*/first

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

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;k=aver)b*n.s=ai.s; /*将高于等于平均分的学生数据放在另一数组b中*/for (j=0;j=l) while (p!=0)aver=aver+p-s; /*从链表首结点开始,累计成绩之和*/p=p-next; /*p后移一个结

5、点*/aver=aver/N; /*求成绩的平均值aver*/return aver; /*返回结果*/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

6、fun(int *s, int t, int *k),用来求出数组的最大元素在数组中的下标, 用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; i#include #define M 100void fun ( int m, int *a , i

7、nt *n )int i,count=0; /*count用于计数*/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(char *s, char t)int i

8、,slenth,n=0;slenth=strlen(s); /*通过strlen函数求字符串s的长度*/for(i=1;i1 double sum=0.0; /*将sum定义为双精度型变量,并给其赋初值为0.0*/if(n0 /* 循环计数*/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*/re

9、turn(sn);23请编写函数fun,其功能是:计算并输出给定10个数的方差: 1 10 0.5S= (Xk-X)2 10 k=1 1 10其中X= Xk10 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;i#include double fun

10、(int n)int i,j=0; /*定义两个整型变量*/double s=0; /*定义变量s为双精度型*/for (i=3;i#include double fun(int n)int i; /*定义一个整形变量*/double fac=1.0; /*定义变量fac、sum为双精度型*/double sum=1.0;if (n1ppi = min;32编写一个函数,从传入的num个字符串找出最长的一个字符串,并通过形参指针max传回该串地址。(注意:用*作为结束输入的标志。)fun(char(*a)81,int num,char *max) int i;*max=a0;/*将第一个字符串

11、赋值给max指针*/for (i=1;istrlen(*max) *max=ai;/*假如字符串ai的长度比指针max中的字符串的长度长,则将ai字符串赋值给max指针*/33编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。例如,假定输入的字符串为:asd asasdfg asd as zx67 ask mklo,子字符串为:as,则应输出6。int fun(char *str,char *substr)unsigned int i=0;int j,k=0,add;while (i=a) pp*tt-97+; /*统计字符串中各个字母出现的次数*/ 40函数fun的

12、功能是:将两个两位数的正整数a、b合并形成一个整数放在c中,合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的个位和百位上。例如,当a=45,b=12。调用该函数后,c=4251。void fun(int a, int b, long *c)int a_up,a_low,b_up,b_low;/*a_up、a_low、b_up和b_low分别存放指针c的千位、十位、百位和个位数上的数字*/a_up=a/10;a_low=a%10;b_up=b/10;b_low=b%10;*c=a_up*1000+b_low*100+a_low*10+b_up;41请

13、编写一个函数void fun(int m,int k,int xx),该函数的功能是:将大于整数m且紧靠m的k个素数存入xx所指的数组中。例如,若输入17,5,则应输出:19,23,29,31,37。void fun(int m, int k, int xx)int i, j ,total=0;int *p_xx=xx;for(i=m+1;i+)for(j=2;jm0.s)m=s0.s=m0.s;strcpy(s0.num,m0.num);/*将m指针中的学生学号复制给s数组中的学号变量*/44编写函数fun,函数的功能是:根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。例如:若n

14、的值为11时,则函数值为:1.833333float fun(int n) int i;float s=1.0,h=1;for (i=2;in。m!P = n!(m-n)!例如:m=12,n=8时,运行结果为495.000000。float fun(int m,int n)int i;float s=1,f=1,h=1;float x;for (i=m;i=1;i-) s=s*i; /*求出m的阶乘*/for (i=n;i=1;i-) f=f*i; /*求出n的阶乘*/for (i=m-n;i=1;i-) h=h*i;/*求出m-n的阶乘*/x=s/(f*h);return (x);47 编写

15、函数fun,它的功能是:利用以下所示的简单迭代方法求方程:cos(x)-x=0的一个实根。Xn+1=cos(Xn)迭代步骤如下:(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。float fun()double x1,x0;x1=0.0;x0=x1;x1=cos(x0);while (fabs(x0-x1)0.000001)/*假如双精度型

16、(x0-x1)的绝对值大于0.000001,则继续循环,否则退出循环*/x0=x1;x1=cos(x0);return(float)x0);48函数fun的功能是:将s所指字符串中ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。例如,若s所指字符串中的内容为:“ABCDEFG12345“,其中字符B的ASCII码值为偶数、字符2的ASCII码值为偶数、都应当删除,其它依次类推。最后t所指的数组中的内容是:“ACEG135“。void fun(char *s, char t)int i,slenth,n=0;slenth=strlen(s); /*统计字符串s中字符的个

17、数*/*判断字符si其值的ASCII码值是否为偶数,如果是,则继续下一个字符的判断,否则将字符si复制到t数组中*/for(i=0;im)m=x1+x2;x1=x2;x2=m;return m; 52 函数fun的功能是:将s所指字符串中除了下标为奇数、同时ASCII值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。例如,若s所指字符串中的内容为:“ABCDEFG12345“,其中字符A的ASCII码值虽为奇数,但所在元素的下标为偶数,因此必需删除;而字符1的ASCII码值为奇数,所在数组中的下标也为奇数,因此不应当删除,其它依此类推。最后t所指的数组

18、中的内容应是:“135“。void fun(char *s, char t)int i,slenth,n=0;slenth=strlen(s); /*统计字符串s中字符的个数*/*将字符串s中所有下标和ASCII值同时为奇数的字符复制到数组t中*/for(i=1;ippk) x=ppi; ppi=ppj; ppj=x; /*对进行符合条件的整数进行从小到大的排序*/58请编写一个函数fun,它的功能是:求出一个2M整型二维数组中最大元素的值,并将此值返回调用函数。fun (int aM)int i,j,base;base=a00; /*将二维数组的第一个元素赋给变量base,该变量是存放数组中

19、最大元素的值*/for(i=0;i=a max=c-s; /*假定首结点为最大值*/while (c-next!=0)c=c-next; /*c后移一个结点*/if (maxs) max=c-s; /*找出最大值并将其赋给变量max*/return max; /*返回最大值*/71程序定义了NN的二维数组,并在主函数中自动赋值。请编写函数fun,函数的功能是:使数组右上三角元素中的值乘以m。例如:若m的值为2,a 数组中的值为| 1 9 7 | | 2 18 14|a = | 2 3 8 | 则返回主程序后a数组中的值应为 | 2 6 16| 4 5 6 | | 4 5 12|void fun

20、( int aN, int m) int i,j; /*定义两个整型变量,用于控制二维数组行、列下标的变化*/for(i=0; i=i; j-) /*内嵌的for()来控制二维数组列的变化*/aij*=m; /*对数组上半三角元素中的值全部乘以m*/72请编写一个函数,用来删除字符串中的所有空格。例如,输入“asd af aa z67“, 则输出为 “asdafaaz67“。void fun(char *str)int i,j;for(i=0;*(str+i);i+)if(*(str+i)=32) /*判断当前位置上的字符是否为空格(空格的ASCII码值为32)*/ for(j=i+1;*(s

21、tr+j);j+)*(str+j-1)=*(str+j); /*删除空格*/*(str+j-1)=0; /*以字符串结束标志“0“结束循环*/i=0;73请编写函数fun,函数的功能是:将M行N列的二维数组中的数据按行的顺序依次放到一维数组中,一维数组中数据的个数存放在形参n所指的存储单元中。例如,二维数组中的数据为:33 33 33 3344 44 44 4455 55 55 55则一维数组中的内容应是:33 33 33 33 44 44 44 44 55 55 55 55。void fun(int (*s)10, int *b, int *n, int mm, int nn)int x,y

22、; /*定义两个整型变量,用于控制数组下标的变化*/for(x=0;x10?10:*(a+i)/10+;81请编写函数fun,函数的功能是:统计一行字符串中单词的个数作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格隔开,一行的开始没有空格。int fun( char *s)int i=1,j=0;/*i用来记录是否遇到过了空格,j用来记录单词数*/while(*s)if(i=1) i=0; /*当i=1且当前s所指向的是字符,则j自增加1,同时将i设为0*/if(*s=32) i=1; /*用i来判断是否遇到了空格,假如遇到了空格则i=1*/s+; /

23、*检测是否是空格,如果是空格则指针变量s向后移动一位*/return j; /*返回统计结果*/82 请编写函数fun,它的功能是:求出ss所指字符串中指定字符的个数,并返回此值。例如,若输入字符串:123412132,输入字符为:1,则输出:3。int fun(char *ss,char c)int times=0,i,len;len=strlen(ss);for(i=0;in) /*判断字符串尾连续的*号个数是否大于n*/ for (k=0;kmax) max=ai.s; /*从所有的学生数据中找出最高的分值*/for (i=0;i100) printf(“Input n(n1/如果是数字

24、字符,则数字字符个数加一s+;/将s指向下一个字符 return n;/返回数字字符个数102请编写函数fun,函数的功能是查找x在s所指数组中下标的位置作为函数值返回,若x不存在,则返回-1。int fun( int *s, int x)int i;for(i=0;iN;i+)if(si=x)return i;return -1;103请编写函数fun,其功能是将形参s所指的字符串放入形参a所指的字符数组中,使a中存放同样的字符串。说明:不得使用系统提供的字符串函数。void fun( char *a , char *s)int i=0;while(*s!=0)/判断s所指向的字符是否为字符串结束字符ai=*s;/如果s未指向字符串结束字符,则将s所指字符放入字符数组a中s+;/将s指向下一个字符i+;/将字符数组的下标后移一位ai=0;/添加字符串结束标志

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报