2012年3月全国计算机等级考试二级C语言上机真题

全国等级考试资料网 2019-01-17 02:42:53 52

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

第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 +(b); 

第 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)*100+(b)*10 +(a/10);

 第 3 套 

一、填空 将自然数 1~10 以及它们的平方根写到 名为答案 yfile3txt 的文本文档中,然后 再顺序读出显示在屏幕上。 答案: (1)fp (2)fclose(fp) (3)fname 

二、修改 将 n 个无序整数从小到大排序。 答案: for(i=j+1;i计算正整数 num 的各位上的数字之积。 答案:long k=1; num/=10 ; 

三、程序 计算 n 门课程的平均分,计算结果作为 函数值返回。 答案:int i; float ave=0.0; for(i=0; idata 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 p; 

第 7 套 

一、填空 删除链表中数据域值相同的结点,使之 只保留一个 答案: q next next 

二、修改 用选择法对数组中的 n 个元素按从小到 大的顺序进行排序。 答案: p = j; p=i; 

三、程序 求出 1 到答案之间(含答案)能被 7 或 11 整除的所有整数放在数组 a 中,通过 n 返回这些数的个数。 答案: int i ,j=0; *n=0 ; for(i=1 ; i<=m; i++) if(i%7==0|| i% 11 == 0) { a[j]=i; j++;} *n=j; 

第 8 套 

一、填空 在带有头结点的单向链表中,查找数据 域中值为 ch 的结点。 找到后通过函数值 返回改结点在链表中所处的顺序号;不 存在,函数返回 0 值 答案: NULL n head ,ch 

二、 修改 删除 p 所指字符串中的所有空白字符, 输入字符串是用“#”结束输入。 答案: for(i=0,t=0;p[i];i++) c[t]=’’; 

三、程序 将 ss 所指字符串中所有下标为奇数位置 上的字母转换成大写 答案: int i ; for(i=1;i< strlen(ss) ; i+=2) {if(ss[i] >=’a’&&ss[i] <= ’z’) ss[i] - =32 ;}

首页 1 2 3 4 5 6 7 8 9 尾页 相关资料

相关阅读