全国计算机等级考试二级C机试试题3.doc_第1页
全国计算机等级考试二级C机试试题3.doc_第2页
全国计算机等级考试二级C机试试题3.doc_第3页
全国计算机等级考试二级C机试试题3.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

全国计算机等级考试二级C机试试题3一、填空题下列给定程序中,函数fun的功能是:求ss所指字符串数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指的变量中。ss所指字符串数组中共有M个字符串,且串长N。请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。注意:部分源程序在文件BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include #include #define M 5#define N 20int fun(char (*ss)N, int *n) int i, k=0, len= N;/*found*/ for(i=0; i_1_; i+) len=strlen(ssi); if(i=0) *n=len;/*found*/ if(len _2_ *n) *n=len; k=i; /*found*/ return(_3_);main() char ssMN=shanghai,guangzhou,beijing,tianjing,chongqing; int n,k,i; printf(nThe original strings are :n); for(i=0;iM;i+)puts(ssi); k=fun(ss,&n); printf(nThe length of shortest string is : %dn,n); printf(nThe shortest string is : %sn,ssk);二、改错题下列给定程序中函数fun的功能是:将tt所指字符串中的小写字母全部改为对应的大写字母,其它字符不变。例如,若输入Ab,cD,则输出AB,CD。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构!#include #include char* fun( char tt ) int i; for( i = 0; tti; i+ )/*found*/ if( a = tti )|( tti = z ) )/*found*/ tti += 32; return( tt );main( ) char tt81; printf( nPlease enter a string: ); gets( tt ); printf( nThe result string is:n%s, fun( tt ) );三、编程题编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k返回。例如,若输入17,则应输出:46891012141516。注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include void fun( int m, int *k, int xx )main() int m, n, zz100; printf( nPlease enter an integer number between 10 and 100: ); scanf( %d, &n ); fun( n, &m, zz ); printf( nnThere are %d non-prime numbers less than %d:, m, n ); for( n = 0; n m; n+ ) printf( n %4d, zzn ); 答案一、填空题【参考答案】(1) M(2) (3) k【考点分析】本题考查:for循环语句的循环条件;if语句条件表达式;return语句完成函数值的返回。【解题思路】填空1:题目指出ss所指字符串数组中共有M个字符串,所以for循环语句循环条件是iM。填空2:要求求长度最短的字符串,*n中存放的是已知字符串中长度最短的字符串的长度,这里将当前字符串长度与*n比较,若小于*n,则将该长度值赋给*n,因此if语句的条件表达式为len=a)&( tti = z)(2)tti-=32;【考点分析】本题考查:if语句条件表达式;小写字母转大写字母的方法。【解题思路】(1)分析本题可知,要判断字符是否为小写字母,即判断其是否在az之间,所以这里需要进行连续的比较,用&。(2)从ASCII码表中可以看出,小写字母的ASCII码值比对应大写字母的ASCII值大32。将字符串中的小写字母改为大写字母的方法是:从字符串第一个字符开始,根据ASCII码值判断该字母是不是小写字母,若是,则ASCII码值减32即可。三、编程题【参考答案】void fun( int m, int *k, int xx )int i,j,n=0;for(i=4;im;i+) /*找出大于1小于整数m的非素数*/for(j=2;ji;j+)if(i%j=0) break;if(ji) xxn+=i;*k=n; /*返回非素数的个数*/【考点分析】本题考查:如何判断非素数;循环判断结构;数组的引用。【解题思路】题目要求将1m之间的非素数存入数组中,应使用循环判断结构。循环语句用来遍历1m之间的每个数,判断语句用来判断该数是否素数,若不是素数,则将其存入数组中。这道题目是考查一个数是否为素数的简单延伸,只要掌握了判断素数的方法,问题

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论