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

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10185558.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函数建立班级通讯录。通讯录记录每位学生的编号,姓名和电话号码。班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为答案yfile5.dat的二进制文件中。答案:1. STYPE 2. FILE 3. fp二、修改先将在字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串后面。答案:1. for(i = 0 ; i sl ; i+) 2. t2*sl = 0; 三、程序将两个两位数的正整数a,答案合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,答案数的十位和

2、个位数依次放在c数的百位和个位上。*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);第2套 一、填空从键盘输入若干行文本(每行不超过80个字符),写到文件答案yfile4.txt中,用-1作为字符串输入结束的标记。然后将文件的内容读出显示在屏幕上。文件的读写分别有自定义函数ReadText和WriteText实现。答案 :*fw str str 二、修改从低位开始取出长整形变量s中的奇数位上的数,依次构成一个新数放在t中,高位仍放在高位,低位仍放在低位。答案: long *t sl = sl*10;三、程序将两个两位数的正整数a,答案合并成一个整数放在c中。

3、合并的方式:将a数的十位和个位数依次放在c数的千位和十位上,答案数的十位和个位数依次放在c数的百位和个位上。 *c=(b/10)*1000+(a%10)*100+(b%10)*10 +(a/10);第3套 一、填空将自然数110以及它们的平方根写到名为答案yfile3txt的文本文档中,然后再顺序读出显示在屏幕上。答案: (1)fp (2)fclose(fp) (3)fname 二、修改将n个无序整数从小到大排序。答案: for(i=j+1;in;i+) p=i; 三、程序将两个两位数的正整数a,答案合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,答案数的

4、十位和个位数依次放在c数的百位和个位上 *c=(b%10)*1000+(a%10)*100+(b/10)*10+(a/10);第4套 一、填空调用函数fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回值为1,失败时返回值为0,在复制的过程中,把复制的内容输出到终端屏幕。主函数中源文件名放在变量sfname中,目标文件名放在变量tfname中答案: “r” fs ft二、修改将长整形数中每一位上为偶数的数依次取出,构成一个新数放在t中。高位仍在高位仍在低位。 答案: if(d%2=0) s /= 10; 三、程序将两个两位数的正整数a,答案合并成一个整数放在c中。合并的方式是:

5、将a数的十位和个位数依次放在c数的千位和十位上,答案数的十位和个位数依次放在c数的百位和个位上。*c=(a%10)*1000+(b/10)*100+(a/10)*10+(b%10);第5套 一、填空把形参x的值放入一个新结点并插入到链表中,插入后结点数据域的值仍保持递增有序。答案: x p s 二、修改计算正整数num的各位上的数字之积。答案:long k=1; num/=10 ; 三、程序计算n门课程的平均分,计算结果作为函数值返回。答案:int i; float ave=0.0; for(i=0; idata t二、修改将字符串中的字符按逆序输出,单补改变字符串中的内容。答案:void f

6、un (char *a) printf(%c, *a) ; 三、程序比较两个字符串的长度(不得调用c语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。答案:int i; char *p=s , *q=t; int n=0,m=0; while(*p) n+;p+; while(*q) m+;q+; if(n=m) p=s; else p=t; return p;第7套 一、填空删除链表中数据域值相同的结点,使之只保留一个答案: q next next二、修改用选择法对数组中的n个元素按从小到大的顺序进行排序。答案: p = j; p=i; 三、程序

7、求出1到答案之间(含答案)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。答案: int i ,j=0; *n=0 ; for(i=1 ; i=m; i+) if(i%7=0| i% 11 = 0) aj=i; j+; *n=j;第8套 一、填空在带有头结点的单向链表中,查找数据域中值为ch的结点。找到后通过函数值返回改结点在链表中所处的顺序号;不存在,函数返回0值答案: NULL n head ,ch 二、 修改删除p所指字符串中的所有空白字符,输入字符串是用“#”结束输入。答案: for(i=0,t=0;pi;i+) ct=0; 三、程序将ss所指字符串中所有下标为奇数位置

8、上的字母转换成大写答案: int i ; for(i=1;i=a&ssi = z) ssi - =32 ; 第9套 一、填空统计出带有头结点的单向链表中的个数,存放在形参n所指的存储单元中。答案: *n next head二、修改求出s所指字符串中最后一次出现的t所指子字符串的地址,通过函数返回值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值为NULL答案: a = NULL; if(* r =*p)三、程序将s所指字符串中除了下标问为偶数,同时ASCII值也为偶数的字符外,其余的全部删除:串中剩余字符所形成的一个新串放在t所指的数组中答案: int i, j = 0 ; for

9、(i = 0 ; i strlen(s) ; i += 2) if(si % 2 = 0) tj+ = si ; tj = 0 ; 第10套 一 填空计算出带有头结点的单向链表中各结点数据域中值之和作为函数的返回值。答案: data next head 二、修改将s所指字符串中出现的与t1所指字符串相同的字串全部替换成t2所指字符串,所形成的新串放在w所指的数组中,在此处,要求t1和t2所指字符串的长度相同。答案: while(*r) *a=*r ;a+; r+;三、程序将s所指字符串下标为偶数的字符删除,串中剩余字符形成的新串放在t所指的数组中答案: int i, j = 0 ; for(i

10、 = 1 ; i strlen(s); i+=2) tj+ = si ; tj = 0 ; 第11套 一填空找出指定编号人员的数据作为函数值返回,由主函数输出,若指定编号不存在,返回数据中的编号为空串答案: STU stdi.num stdi 二、修改从s所指字符串中,找出与t所指字符串相同的字串的个数作为函数返回值答案: r+; p+; if(*r=0 )三、程序将s所指字符串中ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中答案: int i, j = 0 ; for(i = 0 ; i strlen(s); i+) if(si % 2) tj+ = si ; tj

11、 = 0 ;第12套一、填空找出指定出生年份的人员,将数据放在形参k所指的数组,由主函数输出,有函数值返回满足指定条件的人数答案: stdi.year stdi n二、修改读入一个整数k(2k1000),打印她的所有因子答案: 分号去掉or Isprime (int n) if (!( n%i )三、设计找出成绩最高的学生记录,通过形参指针传回主函数答案: int i, max = a0.s, j = 0; for(i = 1 ; i N ; i+) if(max ai.s) j = i ; max = ai.s ; *s = aj ; 第13套 一、填空给定程序。将该学生的各科成绩都乘以一个

12、系数a答案: STU scorei &std二、修改求k!(k0) else if(k= =0)三、程序使数组左下三角元素的值乘以n答案: int i, j; for(i = 0 ; i N ; i+) for(j = 0 ; j = i; j+) aij *= n ;第14套 一、.填空将形参所指结构体数组中的三个元素按num成员进行升序排列答案: *std PERSON std二、修改将m个字符串连接起来组成一个新串,放入pt所指存储区中答案: int k,q,i; pti=strki; 三、程序使数组左下三角元素中的值全部值0答案: int i, j; for(i = 0 ; i N ;

13、 i+) for(j = 0 ; j = i; j+) aij =0;第15套 一、.填空将形参std所指结构体数组中年龄最大者的数据作为函数值返回,并在主函数中输出答案: *std stdi.age max.name二、修改实现两个整数的交换答案:void fun( int *a,int*b) t t= *b; *b= *a ; *a = t;三、程序请编写一个函数、tt指向一个M行N列的二维数组,求二维数组每列中最小元素,并以此放入pp所指一维数组中。二维数组中的数已在主函数中赋予答案: int i,j, min, k ; for(i = 0 ; i N;i+) min = tt0i ;

14、k = 0 ; for(j = 1 ; j ttji) min=ttji ; k = j ; ppi = ttki ; 第16套 一、.填空程序通过定义。输出这位学生的信息答案: tt tt.scorei std 二、修改求出数组中最大数和次大数,并把最大数和a【0】中的数对调,次最大数和a【1】中的书对调答案: m=i; if(akam )m=k; 三、程序请编写一个程序。w是一个大与10的无符号整数,若w是n为的整数,函数求出w的低n-1位的数作为函数值返回答案: unsigned t,s=0, s1=1,p=0; t=w; while(t10) if(t/10) p=t%10; s=s+

15、p*s1; s1=s1*10; t=t/10; return s;第17套 一、.填空对形参ss所指字符串数组中的M个字符串按长度由短到长进行排序。ss所指字符串数组中共有M个字符串,且串长N答案: i+1 k=j t 二、修改判断ch中字符是否与str所指串中的某个字符相同;若相同,什么也不做,若不同,则将其插在串的最后答案: void fun(char *str,char ch) if(*str != ch) str1=0;三、设计请编写一个函数把s所指字符串中的内容逆值答案: char bN ; int i = 0, j ; memset(b,0,N); for(j = strlen(s

16、) - 1 ; j = 0 ; j-) bi+ = sj ; strcpy(s,b);第18套 一、填空求出形参ss所指的字符串数组中最长字符串的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长,字符串数组中共有M个字符串答案: k len ssij 二、修改计算整数n的阶乘答案: result*=n-; return result;三、程序从s所指的字符串中删除给定字符。同一个字母的大小写按不同字符处理答案: char*p=s; int i = 0; while(*p) if(*p!= c) si+ = *p ; p+; si = 0 ; 第19套 一、.填空求出形参ss所指字符串数

17、组中最长字符串的长度,将其余字符串右边用字符*补齐,使其与最长的字符串等长。Ss所指的字符串数组中共有M个字符串答案: ssi n+j 1 二、修改将p所指字符串中每个单词的最后一个字母改成大写答案:if(*p= ) *(p-1)=toupper(*(p-1);三、程序请编写函数fun对长多为7个字符的字符串,除首,尾字符外,将其余5个字符按ASCII降序排列答案: char t ; int i, j ; for(i = 1 ; i num-2;i+) for(j=i+1;jnum-1;j+) if(sisj) t=si; si=sj; sj=t ;第20套 一、.填空求ss所指字符串数组中长

18、度最长的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。Ss所指字符串数组中共有M个字符串答案: N len *n=len 二、修改根据形参答案,计算如下公式的值答案: t +=1.0/i; return t; 三、程序编写一个函数。该函数可以统计一个长度为2的字符串在另个字符串中出现的次数答案: int cnt = 0; char *p = str, *q ; while(*p)q=strstr(p,substr); if(q=NULL)break; p=q+strlen(substr); cnt+; return cnt ; 第21套 一、.填空求ss所指字符串数组中长

19、度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中答案: M k 二、修改将tt所指字符串中的小写字母都改为对应的大写字母,其他字符不变答案:if(a=tti)&(tti=z) tti -= 32;三、程序将大于1小于整数m的非素数存入xx所指数组中非素数的个数通过k传回答案:int i,j; int t=0; for (i=2;im;i+) j =2; while (ji) if (i%j=0)xxt=i; t+;break; j+; *k=t;第22套 一、.填空将s所指字符串中的所有数字字符转移到所有非数字字符之后,并保持数字字符和非数字字符串原有的前后次序答案:

20、 j+ si=t1i j 二、修改用冒泡法对6个字符串由小到大的顺序进行排序答案: for(j=i+1 ;j6 ;j+) *(pstr + i)= *(pstr + j); 三 程序求出ss所指字符串中指定字符的个数,并返回此值答案: int cnt = 0 ; char *p= ss ; while(*p) if(*p = c) cnt+ ; p+ ; return cnt;第23套 一、.填空在形参所指字符串中的每个数字字符之后插入一个*号答案: & 0 sj 二、修改根据整形形参m,计算如下公式的值答案:for(i=2;i =m;i+) y+=1.0/(i*i); 三 程序实现B=A+A

21、,即把矩阵A加上A的转置,存放到B中答案: int c33 ; int i, j ; for(i = 0 ; i 3 ; i+) for(j = 0 ; j 3 ; j+) cij = aji ; bij = aij + cij ; 第24套 一、.填空统计形参s所指字符串中数字字符出现的次数,并存放在形参t所指的变量中,最后在主函数中输出。答案: si 9 *t=n 二、修改通过某种方式实现俩个变量值的交换,规定不予许增加语句和表达式答案: t = *x ; *x = y ; return(t) ;三、程序求出1到1000之间能被7或11整除,但不能同时被7和11整除的所有整数并将他们放在a

22、所指的数组中,通过n返回这些数的个数答案: int i ; *n = 0 ; for(i = 7 ; i 1000 ; i+) if(i % 7) = 0 | (i % 11) = 0) & (i % 77) != 0) a(*n)+ = i ;第25套 一、.填空把形参s所指字符串中下标为奇数的字符右移到下一个奇数的位置,最后边被移除字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动答案: 1 sk c二、填空求s=aaaa-.aaa-aa-a答案: long s=0, t=0; t=t/10;三、程序请编写一个函数。统计在tt所指字符串中a到z26个小写字母各自出现的次数,并依次放在

23、pp所指数组中答案: char *p = tt ; int i ; for(i = 0 ; i = a & *p =num) t=s/n;三、程序 删除一个字符串中指定下标的字符,其中,a指向原字符,删除指定字符后的字符串存在b所指的数组中,n中存放指定下标答案: int p,m=0; for(p=0;pLEN;p+) if(p!=n) bm=ap; m+; bm=0;第27套 一 填空在形参所指字符串中寻找一个字符串与参数c相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则函数不做任何处理答案: 0 0 c二 修改计算数组元素中值为正数的平均值答案: double sum=0.

24、0; sum/=c;三 设计根据以下公式s,计算结果作为函数返回值,n通过形参传入答案: int k; float str =1.0, sum=1.0; for(k=2;k=n; k+) sum =sum+k; str =str+1/sum; return str;第28套 一 填空有N*N的矩阵,根据给定的m的值,将每行元素中的值均右移m个位置,左边置为0答案: i+ m m二 修改计算并输出high以内最大的10个素数之和。High的值由主函数传给fun函数答案: while(2=high) & (n0.000001); return x1;第29.套 一 填空将N*N的矩阵中元素值按列右

25、移1个位置,右边被移出矩阵的元素绕回左边答案: N N-1 0二 修改计算并输出下列的前N项之和Sn,Sn+1大于q为止,q的值通过形参传入答案: s=s+(n+1.)/n; return t;三 设计求Fibon.数列中大于t的最小的一个数,结果由函数返回,答案: int f0 = 0, f1 = 1, f ; do f = f0 + f1 ; f0 = f1 ; f1 = f ; while(f t) ; return f ; 第30套 一.填空有N*N矩阵,将矩阵的外围元素顺时针逆转,操作顺序是:首先将第一行元素的值存入临时数组r,然后使第一列成为第一行,最后一行成为第一列,最后一列成为

26、最后一行。临时数组中的元素成为最后一列答案: 0 j- - j二 修改 计算s=f(-n)+f(-n+1)+f(0)+f(1)+f(2)+f(n)的值,答案: double f(double x) return s ;三 设计编写函数fun,他的功能是计算s=ln(1)+ln(2.).ln(m)开根号 答案: double s = 0.0 ; int i ; for(i = 1 ; i = m ; i+) s += log(1.0 * i) ; s = sqrt(s) ; return s ; 第31套 一.填空有N*N矩阵,以主对角线为对称线,对称元素相加并将结构存放在左下三角元素中,右上三

27、角元素之位0答案: N tij tji二 修改计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。其中x和y的值不等,z和y的值不等答案: (m)/(n) return (value);三 设计将字符串中的前导*号全部删除,中间和尾部的*号不删除答案: int j=0; char *p = a ; while(*p = *) p+ ; while(*p) aj+ = *p;p+; aj=0 ; 第32套 一.填空将N*N矩阵主对角线元素中的值域反向对角线对应位置上的元素中的值交换答案: t N i=0;iamid)三 设计除了尾部的*号外,将字符串中的*号全部删除,形参p以指向字符串中最后的一个字符,答案: char *q=a; int j=0; while(*q & qp) if(*q != *) aj+ = *q;q+ ; while(*p) aj+=*p+; aj=0;第33套 一.填空计算N*N矩阵的主对角线元素和反向对角线元素之和,并作为函数值返回,答

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

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