2012年3月全国计算机等级考试二级C语言上机考试题库及答案详解.doc
文本预览下载声明
第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
显示全部