欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    全国计算机等级考试二级C语言.docx

    • 资源ID:54322173       资源大小:35.56KB        全文页数:13页
    • 资源格式: DOCX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    全国计算机等级考试二级C语言.docx

    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,答案合并成 一个整数放在 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 套 一、填空 将自然数 110 以及它们的平方根写到 名为答案 yfile3txt 的文本文档中,然后 再顺序读出显示在屏幕上。 答案: (1)fp (2)fclose(fp) (3)fname 二、修改 将 n 个无序整数从小到大排序。 答案: for(i=j+1;i<n;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; i<n; i+) ave=ave+ai ; 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 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) 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< strlen(ss) ; i+=2) if(ssi >='a'&&ssi <= 'z') ssi - =32 ;同时 ASCII 值也为偶数的字符外,其余 的全部删除:串中剩余字符所形成的一 个新串放在 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 所指字符串的长度 相同。 答案: 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 ) 三、程序 将 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 ) 三、设计 找出成绩最高的学生记录,通过形参指 针传回主函数 答案: 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!(k<13),所求阶乘的值作为函数值返 回, 答案: if ( k>0) 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 ; 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; 三、程序 请编写一个函数、 指向一个 M 行 N 、tt 列的二维数组,求二维数组每列中最小 元素,并以此放入 pp 所指一维数组中。 二维数组中的数已在主函数中赋予 答案: int i,j, min, k ; for(i = 0 ; i <N;i+) min = tt0i ; k = 0 ; for(j = 1 ; j <M ; j+) if(min > ttji) min=ttji ; k = j ; ppi = ttki ; 第 16 套 一、.填空 程序通过定义。 。输出这位学生的信息 答案: tt tt.scorei std 二、修改 求出数组中最大数和次大数,并把最大 数和 a【0】中的数对调,次最大数和 a 【1】中的书对调 答案: m=i; if(ak>am )m=k; 三、程序 请编写一个程序。 是一个大与 10 的 。w 无符号整数,若 w 是 n 为的整数,函数 求出 w 的低 n-1 位的数作为函数值返回 答案: unsigned t,s=0, s1=1,p=0; t=w; while(t>10) if(t/10) p=t%10; s=s+p*s1; s1=s1*10; t=t/10; return s; 第 17 套 一、.填空 对形参 ss 所指字符串数组中的 M 个字 符串按长度由短到长进行排序。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 ; strcpy(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 所指字符串数组中最长字符 串的长度,将其余字符串右边用字符* 补齐,使其与最长的字符串等长。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;j<num-1;j+) if(si<sj) t=si; si=sj; sj=t ; 第 20 套 一、.填空 求 ss 所指字符串数组中长度最长的字符 串所在的行下标,作为函数值返回,并 把其串长放在形参 n 所指变量中。Ss 所 指字符串数组中共有 M 个字符串 答案: N len *n=len第 9 套 一、填空 统计出带有头结点的单向链表中的个 数,存放在形参 n 所指的存储单元中。 答案: *n next head 二、修改 求出 s 所指字符串中最后一次出现的 t 所指子字符串的地址,通过函数返回值 返回,在主函数中输出从此地址开始的 字符串;若未找到,则函数值为 NULL 答案: a = NULL; if(* r =*p) 三、程序 将 s 所指字符串中除了下标问为偶数,二、修改 根据形参答案,计算如下公式的值 答案: 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 所指字符串中的小写字母都改为对 应的大写字母,其他字符不变 答案:if(a<=tti)&&(tti<=z) tti -= 32; 三、程序 将大于 1 小于整数 m 的非素数存入 xx 所指数组中非素数的个数通过 k 传回 答案:int i,j; int t=0; for (i=2;i<m;i+) j =2; while (j<i) if (i%j=0)xxt=i; t+;break; j+; *k=t; 一、.填空 第 22 套 将 s 所指字符串中的所有数字字符转移 到所有非数字字符之后,并保持数字字 符和非数字字符串原有的前后次序 答案: j+ si=t1i j 二、修改 用冒泡法对 6 个字符串由小到大的顺序 进行排序 答案: for(j=i+1 ;j<6 ;j+) *(pstr + i)= *(pstr + j); 三 程序 求出 ss 所指字符串中指定字符的个数, 并返回此值 答案: int cnt = 0 ; char *p= ss ; while(*p) if(*p = c) cnt+ ; p+ ; return cnt; 第 23 套 一、.填空 在形参所指字符串中的每个数字字符之 后插入一个*号 答案: && 0 sj 二、修改 根据整形形参 m,计算如下公式的值 答案:for(i=2;i <=m;i+) y+=1.0/(i*i); 三 程序 实现 B=A+A 即把矩阵 A 加上 A 的转 , 置,存放到 B 中 答案: int c33 ; int i, j ; for(i = 0 ; i < 3 ; i+) for(j = 0 ; j < 3 ; j+) cij = aji ; bij = aij + cij ; 一、.填空 第 24 套 统计形参 s 所指字符串中数字字符出现 的次数, 并存放在形参 t 所指的变量中, 最后在主函数中输出。 答案: si 9 *t=n 二、修改 通过某种方式实现俩个变量值的交换, 规定不予许增加语句和表达式 答案: t = *x ; *x = y ; return(t) ; 三、程序 求出 1 到 1000 之间能被 7 或 11 整除, 但不能同时被 7 和 11 整除的所有整数并 将他们放在 a 所指的数组中,通过 n 返 回这些数的个数 答案: int i ; *n = 0 ; for(i = 7 ; i < 1000 ; i+) if(i % 7) = 0 | (i % 11) = 0) && (i % 77) != 0) a(*n)+ = i ; 一、.填空 第 25 套 把形参 s 所指字符串中下标为奇数的字 符右移到下一个奇数的位置,最后边被 移除字符串的字符绕回放到第一个奇数 位置,下标为偶数的字符不动 答案: 1 sk c 二、填空 求 s=aaaa-.aaa-aa-a 答案: long s=0, t=0; t=t/10; 三、程序 请编写一个函数。统计在 tt 所指字符 。 串中a到z26 个小写字母各自出现的 次数,并依次放在 pp 所指数组中答案: char *p = tt ; int i ; for(i = 0 ; i < 26 ; i+) ppi = 0 ; while(*p ) if(*p >= 'a' && *p <= 'z') pp*p - 'a' += 1 ;p+ ; 一、填空 第 26 套. 对形参 s 所指字符串中下标为奇数的字 符按 ascii 码大小递增排序, 并将排序后 下标为基数的字符取出,存入形参 p 所 指字符数组中,形成一个新串 答案: t=I i 0 二、填空 用下面公式求的近似值,直到最后一 项的绝对值小于指定的数为止 答案: while (fabs(t)>=num) t=s/n; 三、程序 删除一个字符串中指定下标的字符,其 中,a 指向原字符,删除指定字符后的 字符串存在 b 所指的数组中,n 中存放 指定下标 答案: int p,m=0; for(p=0;p<LEN;p+) if(p!=n) bm=ap; m+; bm=0; 一 填空 第 27 套 在形参所指字符串中寻找一个字符串与 参数 c 相同的字符,并在其后插入一个 与之相同的字符,若找不到相同的字符 则函数不做任何处理 答案: 0 0 c 二 修改 计算数组元素中值为正数的平均值 答案: double sum=0.0; sum/=c; 三 设计 根据以下公式 s,计算结果作为函数返 回值,n 通过形参传入 答案: int k; float str =1.0, sum=1.0; for(k=2;k<=n; k+) sum =sum+k; str =str+1/sum; return str; 第 28 套 一 填空 有 N*N 的矩阵,根据给定的 m 的值, 左 将每行元素中的值均右移 m 个位置, 边置为 0 答案: i+ m m 二 修改 计算并输出 high 以内最大的 10 个素数 之和。High 的值由主函数传给 fun 函数 答案: while(2<=high) && (n<10) yes=0; break; 三 设计 利用一下所示的简单迭代方法求方程: 答案: float x0, x1=0.0; dox0=x1; x1=cos(x0);while(fabs(x0-x1)>0. ); return x1; 一 填空 第 29.套 套 将 N*N 的矩阵中元素值按列右移 1 个位 置,右边被移出矩阵的元素绕回左边 答案: N N-1 0 二 修改 计算并输出下列的前 N 项之和 Sn, Sn+1 大于 q 为止,q 的值通过形参传入 答案: s=s+(n+1.)/n; return t; 三 设计 求 Fibon.数列中大于 t 的最小的一个 数,结果由函数返回, 答案: int f0 = 0, f1 = 1, f ; do f = f0 + f1 ; f0 = f1 ; f1 = f ; while(f < t) ; return f ; 一.填空 第 30 套 有 N*N 矩阵, 将矩阵的外围元素顺时针 逆转,操作顺序是:首先将第一行元素 的值存入临时数组 r,然后使第一列成 为第一行,最后一行成为第一列,最后 一列成为最后一行。临时数组中的元素 成为最后一列 答案: 0 j- - j 二 修改 计算 s=f(-n)+f(-n+1)+f(0)+f(1)+f(2)+f( n)的值, 答案: double f(double x) return s ; 三 设计 编写函数 fun,他的功能是计算 s=ln(1)+ln(2.).ln(m)开根号 答案: double s = 0.0 ; int i ; for(i = 1 ; i <= m ; i+) s += log(1.0 * i) ; s = sqrt(s) ; return s ; 一.填空 第 31 套 有 N*N 矩阵,以主对角线为对称线,对 称元素相加并将结构存放在左下三角元素中,右上三角元素之位 0 答案: N tij tji 二 修改 计算函数 F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y) 的值。其中 x 和 y 的值不等,z 和 y 的 值不等 答案: (m)/(n) return (value); 三 设计 将字符串中的前导*号全部删除, 中间和 尾部的*号不删除 答案: int j=0; char *p = a ; while(*p = '*') p+ ; while(*p) aj+ = *p;p+; aj=0 ; 第 32 套 一.填空 将 N*N 矩阵主对角线元素中的值域反 向对角线对应位置上的元素中的值交换 答案: t N i=0;i<n s 二 修改 利用折半查找法查找整数答案在整数数 组的位置。若找到,返回其下标;反之, 返回-1 答案: int fun(int a,int m) else if (m>amid) 三 设计 除了尾部的*号外,将字符串中的*号全 部删除,形参 p 以指向字符串中最后的 一个字符, 答案: char *q=a; int j=0; while(*q && q<p) if(*q != '*') aj+ = *q;q+ ; while(*p) aj+=*p+; aj=0; 一.填空 第 33 套 计算 N*N 矩阵的主对角线元素和反向 对角线元素之和,并作为函数值返回, 答案: sum=0 tii 1 二 修改 用二分法求方程的一个根,并要求绝对 误差不超过 0.001 答案: double r; while(fabs(n-m)>0.001) 三 设计 除了尾部的*号外,将字符串中的*号全 答案: int j=0; char *q=a; while(*q &&q<h) aj+= *q+ ; while(*h&&*p &&h < p) if(*h != '*') aj+ = *h ; h+; while(*p) aj+ = *p+ ; aj = 0; 一.填空 第 34 套 把形参 a 所指数组中的奇数按原顺序依 ,a【1】.中,偶数从 次存放到 a【0】 数组中删除,奇数个数通过函数值返回 答案: 1 j+ j 二 修改 求出连个非零正整数的最大公约数,并 作为函数值返回 答案: t=a;a=b;b=t; return (b); 三 设计 除了尾部的*号外,将字符串中的*号全 部删除,形参答案以指向字符串中最后 的一个字母, 答案: int j =0 ; char *p=a; while(*p) if(*p!='*') aj+=*p;p+; aj=0; 一 填空 第 35 套 把形参所指数组中的偶数按原顺序依次 存放到 a【0】 、a【1】 ,中,奇数从数 组中删去,偶数个数通过函数值返回 答案: ai%2 aj j 二 修改 按一下递归公式求函数值 答案: int fun(int n ) if(n=1) 三 设计 使字符串尾部的*号不得多于 n 个; 若多 于 n 个,则删除多于的*号,若少于 n 个,则什么也不做,字符串中间和前面 的*号不删除 答案:int i=0,j=0; char *p,*t; p=t=a; While(*t) t+; t-; while(*t=*) j+;t-;t+; if(j>n) while(*p&&p<t+n) ai=*p;i+;p+;ai=0; 一.填空 第 36 套 把形参 a 所指数组中的最小值放在元素 a【0】中,按着把形参 a 所指数组中的 最大值放在 a【1】元素中;在把 a 所指 数组中的次小元素放在 a【2】所指的数 组中,把 a 所指的数组元素中的次大放 在 a【3】 ;其余以此类推 答案: ai aj aj 二 修改用递归算法计算非波拉且数列中第 n 项 的值, 答案:switch(g) case 1:return 1;case 2:return 1; 三 设计 求学生的平均分放在记录的 ave 成员中 答案: int i ; for(i =0 ; i < N ; i+) a->ave = a->ave+a->si ; a->ave /= N ; 第 37 套 一.填空 填空 把形参 a 所指数组中的最大值放在 【1】 a 中,按着求出 a 所指数组中的最小值放 在 a【1】数组中;把 a 所指数组元素的 次大值放在 a【2】中,把 a 数组元素中 【3】 中; 其余以此类推。 的次小值放在 a 答案: *a 2 i+1 二 修改 按顺序给 s 所指数组中的元素赋予从 2 开始的偶数,在按顺序对每五个元素求 个一平均值,并将这些值依次存放在 w 所指的数组中,若 s 所指数组元素的个 数不是 5 的倍数,多于部分忽略不计 答案: sum=0.0; if(i+1)%5=0) 三 设计 把低于平均分的学生数据放在答案所指 的数组中,低于平均分的学生人数通过 形参 n 传回,平均分通过函数值返回 答案: int i ; double ave = 0.0 ; *n = 0 ; for(i = 0; i < N ; i+) ave = ave + ai.s ; ave/=N;for(i=0;i<N;i+)if(ai.s<ave)b* n=ai;(*n)+; return ave ;一 .填空 第 38 套 将形参 a 所指的数组中的前半部分元素 中的值和后半部分元素中的值兑换,形 参 n 中存放数组中数据的个数,若 n 为 奇数,则中间的元素不动 答案: 1 i ap+i 二 修改 把主函数中输入的 3 个数,最大的放在 a 中,最小的放在 c 中,中间的放在 b 中 答案: float k; if(*a<*c) 三 设计 把分数最高的学生的数据放在 h 所指数 组中, 答案: int i, max = a0.s, n=0; for(i = 1; i < N; i+) if(max < ai.s) max = ai.s ; for(i = 0; i < N; i+) if(max=ai.s) bn+ = ai ; return n; 一.填空 第 39 套 逆置数组元素中的值。 答案: n/2 i an-1-i 二 修改 将一个由八进制数字字符组成的字符串 转换为与其面值相等的十进制整数,规 定输入的字符串最多只能包含 5 为八进 制数字字符 答案: n=*p-0: n=n*8+*p-0; 三 设计 函数返回指定学生的学生数据,指定的 学号在主函数中输入,若没找到指定学 号,在结构体变量中给学号置空串,给 成绩置-1,作为函数值返回 答案: STREC c ; int i ; c.num0 = '0' ; c.s = -1 ; for(i = 0 ; i < N ; i+) if(strcmp(ai.num,b)=0) strcpy(c.num, ai.num);c.s=ai.s; break ; return c ; 一.填空 第 40 套 函数 fun 的功能。 。 进行数字字符转换, 若形参 ch 中是数字字符 0-9,则 0 转换 为 9, 转换为 8, 转换为 79 转换为 1 2 0; 其他字符则保持不变; 转换后的结果 作为函数值返回 答案: char ch<='9' 0 二 修改 将 p 所指字符串中的所有字符复制到 b 中,每复制三个字符有插入一个空格答案: bk=*p; bk+= ; 三 设计 求出平均分,由函数值返回 答案: STREC *p=h->next; double av=0.0;int n = 0 ;while(p!=NULL) av=av+p->s ; p=p->next; n+; av /= n ; return av; 第 41 套 一.填空 函数 fun 的功能。 。进行字母转换,其他 字符则保持不变, 答案: && 'A' ch 二 修改 给一维数组 a 输入任意 4 个整数,并按 下列的规律输入 答案:void fun(int *a) aj=aj-1; 三 设计 计算并输出给定整数 n 的所有因子之 和,规定 n 的值不大于 1000 答案: int s = 0, i ; for(i = 2 ; i < n ; i+) if(n % i = 0) s +=i ; return s ; 一 填空 第 42.套 套 计算 f(x)=1+x-x2/2(-1)n-1xn/n!前 n 项 答案: 1 -1 t 二 修改 从 3 个红球, 个白球, 个黑球中任意 5 6 取出 8 个作为一组,进行输出。每组, 可以没有黑球,但必须有红球和白球, 答案: for(i=1; i<=3; i+) if(k>=0 && k<=6) 三 设计 计算 Sn=1+1/1!+1/2!.+1/n! 答案:double s=1;long t=1;int i; for(i=1;i<=n;i+) t=t*i; s+=1./t; return s; 一.填空 第 43 套 计算 f(x)=1+x-x2/2!.(-1)xn/n! 至到 |xn/n!|<10-6 答案: x n fabs(t) 二 修改 求整数 x 的 y 次方的低 3 为的值, 答案: <= % 三 设计 计算并输出 x0.97 时下列多项式的值 答案: int n=1; double sn=1, double xn=1;xn1=0; while(fabs(xn-xn1)>=0.)xn=xn* x*(0.5-n+1)/n; n+=1; sn+=xn; return(sn); 一.填空 第 44 套 计算 f(x)=1+x+x2/2!.xn/n! 的前 n 项, 答案: 1 1 i 二 修改 找出 100 至 n 之间三位数字相等的所有 整数,把这些整数放在 s 所指数组中, 个数作为函数值返回 答案: k=i; c=k%10; 三 设计 计算并输出给定 10 个数的方差 答案: int i; double avg=0.0, sum=0.0,abs=0.0, fc; for (i=0;i<10;i+) sum+=xi;avg=sum/10;for (i=0;i<10;i+) abs+=(xi-avg)*(xi-avg); fc=sqrt(abs/10) ; return fc; 一.填空 第 45 套 计算 f(x)=1+x+x2/2!+.xn/n!至到 |xn/n!|<10-6 答案: x n t 二 修改、 、 计算 n 的 5 次方的值,通过形参指针传 回主函数;计算该值的个位,十位,百 位上数字之和作为函数值返回 答案: d=1; s=0; d=d/10; 三 设计 计算并输出给定数组中每相邻两个元素 之平均值的平方根之和 答案:int i; double avg=0.0,sum=0.0; for(i=0;i<8;i+)avg=(xi+xi+1)/2; sum+=sqrt(avg); return sum; 一 .填空 第 46 套 统计所有小于等于 n 的素数的个数,素 数的个数作为函数值返回 答案: j=3 i j 二 修改 计算前 n 项的累加和;没累加一次把被 4 除后余 2 的当前累加值放入数组中, 答案: sum=0;j=0; if(sum%4=2)三 设计 计算 Sn=1-2/2+1/3-1/4.+1/2n-1-1-1/2n 答案: int i; double sum=0.0; if (n>1 && n<=100) for(i=1; i<=n; i+) sum+=1.0/(2*i-1)-1.0/(2*i); return sum; 一.填空 第 47 套 统计长整形数 n 的各个位上出现数字 1、 2、3 的次数,并通过外部变量 c1、c2、 c3 返回主函数 答案: n%10 break break 二 修改 统计一个无符号整数中各个数字值为零 的个数,通过形参传回主函数,把整数 中最大的数字值作为函数值返回 答案:if( t=0) *zero=count; 三 设计 计算 S=1+1/1*2+1/1*2*3 答案: double s=0, t=1; int i ; for(i=1; i<=n; i+) t *= i; s+= 1./t; return s;一 .填空 第 48 套 首先从素数 2 开始。 。用筛选法可得到 2-n 之间的所有素数,方法是:首先从 素数 2 开始,将所

    注意事项

    本文(全国计算机等级考试二级C语言.docx)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开