全国计算机等级考试二级C语言.docx
《全国计算机等级考试二级C语言.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C语言.docx(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、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. t2*sl = 0; 三、程序 将两个两位数的正整数 a,答案合并成 一个整数放在
2、 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 中的奇数 位上的数,依次构成一个新
3、数放在 t 中, 高位仍放在高位,低位仍放在低位。 答案: long *t sl = sl*10; 三、程序 将两个两位数的正整数 a,答案合并成 一个整数放在 c 中。合并的方式:将 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 二、修改
4、将 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 中,
5、目标文件名放在变量 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 的值放入一个新结点并插入到 链表中,插入后结点数据域的值仍保持
6、 递增有序。 答案: 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) printf(%c, *a) ; 三、程序 比较两个字符串的长度(不得调用 c 语 言提供的求字符串长度的函数) 函数返 , 回较长的字符串。若两个字符串长度相 同,则返回第一个字符串。 答案:int i; ch
7、ar *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+)
8、 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 所指字符串中所有下标为奇数位置 上的字母转换成大写 答案: int i ; for(i=1;i=a&ssi = z) ssi - =32 ;同时 ASCII 值
9、也为偶数的字符外,其余 的全部删除:串中剩余字符所形成的一 个新串放在 t 所指的数组中 答案: int i, j = 0 ; for(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 所指字符串的长度 相同。 答案
10、: while(*r) *a=*r ;a+; r+; 三、程序 将 s 所指字符串下标为偶数的字符删 除,串中剩余字符形成的新串放在 t 所 指的数组中 答案: int i, j = 0 ; for(i = 1 ; i strlen(s); i+=2) tj+ = si ; tj = 0 ; 第 11 套 一填空 找出指定编号人员的数据作为函数值返 回, 由主函数输出, 若指定编号不存在, 返回数据中的编号为空串 答案: STU stdi.num stdi 二、修改 从 s 所指字符串中,找出与 t 所指字符 串相同的字串的个数作为函数返回值 答案: r+; p+; if(*r=0 ) 三、程
11、序 将 s 所指字符串中 ASCII 值为偶数的字 符删除,串中剩余字符形成一个新串放 在 t 所指的数组中 答案: int i, j = 0 ; for(i = 0 ; i strlen(s); i+) if(si % 2) tj+ = si ; tj = 0 ; 第 12 套一、填空 找出指定出生年份的人员,将数据放在 形参 k 所指的数组,由主函数输出,有 函数值返回满足指定条件的人数 答案: stdi.year stdi n 二、修改 读入一个整数 k(2k1000) ,打印她 的所有因子 答案: 分号去掉 or Isprime (int n) if (!( n%i ) 三、设计 找出
12、成绩最高的学生记录,通过形参指 针传回主函数 答案: 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 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 ; 第
13、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 ; j = i; j+) aij =0; 第 15 套 一、.填空 将形参 std 所指结构体数组中年龄最大 者的数据作为函数值返回,并在主函数 中输出 答案: *std stdi.age max.name二、
14、修改 实现两个整数的交换 答案:void fun( int *a,int*b) t t= *b; *b= *a ; *a = t; 三、程序 请编写一个函数、 指向一个 M 行 N 、tt 列的二维数组,求二维数组每列中最小 元素,并以此放入 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 套 一、.填空 程序通过定义。 。输出这位学生的信息 答案:
15、 tt tt.scorei std 二、修改 求出数组中最大数和次大数,并把最大 数和 a【0】中的数对调,次最大数和 a 【1】中的书对调 答案: m=i; if(akam )m=k; 三、程序 请编写一个程序。 是一个大与 10 的 。w 无符号整数,若 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+p*s1; s1=s1*10; t=t/10; return s; 第 17 套 一、.填空 对形参 ss 所指字符串数组中的 M
16、个字 符串按长度由短到长进行排序。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) - 1 ; j = 0 ; j-) bi+ = sj ; strcp
17、y(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 所指字符串数组中最长字符 串的
18、长度,将其余字符串右边用字符* 补齐,使其与最长的字符串等长。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
19、套 一、.填空 求 ss 所指字符串数组中长度最长的字符 串所在的行下标,作为函数值返回,并 把其串长放在形参 n 所指变量中。Ss 所 指字符串数组中共有 M 个字符串 答案: N len *n=len第 9 套 一、填空 统计出带有头结点的单向链表中的个 数,存放在形参 n 所指的存储单元中。 答案: *n next head 二、修改 求出 s 所指字符串中最后一次出现的 t 所指子字符串的地址,通过函数返回值 返回,在主函数中输出从此地址开始的 字符串;若未找到,则函数值为 NULL 答案: a = NULL; if(* r =*p) 三、程序 将 s 所指字符串中除了下标问为偶数,二
20、、修改 根据形参答案,计算如下公式的值 答案: 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 所指字符串数组中长度最短的字符 串所在的行下标,作为函数值返回,并 把其串长放在形参 n 所指变量中 答案: M k 二、修改 将 tt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国 计算机等级考试 二级 语言
限制150内