文档详情

2012年3月全国计算机等级考试二级C语言上机考试题库及答案详解.doc

发布:2017-09-24约3.67万字共17页下载文档
文本预览下载声明
第1套 一、填空 给定函数的功能是调用fun函数建立班级通讯录。通讯录记录每位学生的编号,姓名和电话号码。班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为答案yfile5.dat的二进制文件中。 答案:1. STYPE 2. FILE 3. fp 二、修改 先将在字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串后面。 答案:1. for(i = 0 ; i sl ; i++) 2. t[2*sl] =` 0`; 三、程序 将两个两位数的正整数a,答案合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,答案数的十位和个位数依次放在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中。合并的方式:将a数的十位和个位数依次放在c数的千位和十位上,答案数的十位和个位数依次放在c数的百位和个位上。 *c=(b/10)*1000+(a%10)*100+(b%10)*10 +(a/10); 第3套 一、填空 将自然数1~10以及它们的平方根写到名为答案yfile3txt的文本文档中,然后再顺序读出显示在屏幕上。 答案: (1)fp (2)fclose(fp) (3)fname 二、修改 将n个无序整数从小到大排序。 答案: for(i=j+1;in;i++) p=i; 三、程序 将两个两位数的正整数a,答案合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,答案数的十位和个位数依次放在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中。合并的方式是:将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; in; i++) ave=ave+a[i] ; ave=ave/n; return ave; 第6套 一、填空 给定程序中已建立一个带有头结点的单向链表,在答案ain函数中将多次调用fun函数,没调用一次fun函数,输出链表尾部结点中的数据,并释放该节点,是链表缩短。 答案: next t-data t 二、修改 将字符串中的字符按逆序输出,单补改变字符串中的内容。 答案:void fun (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
显示全部
相似文档