2012年3月全国计算机等级考试二级C语言上机考试题库及答案[1]

上传人:cl****1 文档编号:562204569 上传时间:2022-08-31 格式:DOC 页数:13 大小:271KB
返回 下载 相关 举报
2012年3月全国计算机等级考试二级C语言上机考试题库及答案[1]_第1页
第1页 / 共13页
2012年3月全国计算机等级考试二级C语言上机考试题库及答案[1]_第2页
第2页 / 共13页
2012年3月全国计算机等级考试二级C语言上机考试题库及答案[1]_第3页
第3页 / 共13页
2012年3月全国计算机等级考试二级C语言上机考试题库及答案[1]_第4页
第4页 / 共13页
2012年3月全国计算机等级考试二级C语言上机考试题库及答案[1]_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《2012年3月全国计算机等级考试二级C语言上机考试题库及答案[1]》由会员分享,可在线阅读,更多相关《2012年3月全国计算机等级考试二级C语言上机考试题库及答案[1](13页珍藏版)》请在金锄头文库上搜索。

1、第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数的千位和十位上,答案数的十位和个位数依次放在c数的百位和个

2、位上。*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中。合并的方式:将a数的十位和个

3、位数依次放在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数的千位和十位上,答案数的十位和个位数依次放在c数的百

4、位和个位上 *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中。合并的方式是:将a数的十位和个位数依次放在

5、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 fun (char *a) p

6、rintf(%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; 三、程序求出1到答案之间(含答案)能

7、被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所指字符串中所有下标为奇数位置上的字母转换成大写答案: i

8、nt 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(i = 0 ; i str

9、len(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 = 1 ; i strle

10、n(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 = 0 ;第12套一、填空

11、找出指定出生年份的人员,将数据放在形参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套 一、填空给定程序。将该学生的各科成绩都乘以一个系数a答案: STU sco

12、rei &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 ; i+) for(j = 0

13、 ; 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 ; k = 0 ; for(j = 1 ; j ttji) min=ttji ; k = j ; ppi = ttki ; 第16套 一、.填空程序通过定义。输出这位学生的信息答案: tt tt.scorei std 二、修改求出数组中最大数和次大数,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 习题/试题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号