[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷36及答案与解析.doc
《[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷36及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷36及答案与解析.doc(13页珍藏版)》请在麦多课文档分享上搜索。
1、软件水平考试(初级)程序员下午(应用技术)模拟试卷 36及答案与解析 1 阅读下列说明和流程图,将应填入 (n)处的语句写在对应栏内。 【说明】 下列流程图用泰勒 (Taylor)展开式 y=ex=1+x+x2/2!+x3/3!+x n/n!+ 计算并打印 ex的近似值,其中用 ( 0)表示误差要求。 【流程图】 2 阅读以下函数说明和 C语言函数,将应填入 (n)处的字句写在答题纸的对应栏内。 【函数 2.1说明】 递归函数 sum(int a, int n)的返回值是数组 a的前 n个元素之和。 【函数 2.1】 int sum (int a,int n) if(n 0) return (
2、1); else (2); 【函数 2.2说明】 有 3个整数,设计函数 compare(int a, int b, int c)求其中最大的数。 【函数 2.2】 int compare (int a, int b, int c ) int temp, max; (3) a:b; (4) temp:c; 【函数 2.3说明】 递归函数 dec(int a, int n)判断数组 a的前 n个元素是否是不递增的。不递增返回 1,否则返回 0。 【函数 2.3】 int dec( int a, int n ) if(n =1) return 1; if(a0 a1) return 0; retu
3、rn (5); 3 阅读以下说明和 C语言程序,将应填入 (n)处的字句写在对应栏内。 【说明】 以 字符流形式读入一个文件,从文件中检索出 6种 C语言的关键字,并统计、输出每种关键字在文件中出现的次数。本程序中规定:单词是一个以空格或 t、 n结束的字符串。其中 6种关键字在程序中已经给出。 【程序】 #include stdio.h #include stdlib.h FILE *cp; char fname20, buf100; int NUM; struct key char word10; int count; keyword= “if“, 0, “char“, 0, “int“,
4、 0, “else“, 0, “while“, 0, “return“, 0; char *getword (FILE *fp) int i=0; char c; while(c=getc(fp)!= EOF if(c=EOF) return (NULL); else bufi+=c; while(c=fgetc(fp)!=EOF bufi=0; return(buf); void lookup(char *p) int i; char *q, *s; for(i=0; i NUM; i+) q=(2); s=p; while(*s break; return; void main() int
5、 i; char *word; printf(“lnput file name:“); scanf(“%s“, fname); if(cp=fopen(fname, “r“)=NULL) printf(“File open error: %sn“, fname); exit(0); NUM=sizeof(keyword)/sizeof(struct key); while(5) lookup(word); fclose(cp); for(i=0;i NUM;i+) printf(“keyword:%-20s count=%dn“,keywordi.word,keywordi.count); 4
6、 阅读以下说明和 C语言程序,将应填入 (n)处的字句写在对应栏内。 【说明】 魔方阵,又叫幻方,在我国古代称为 “纵横图 ”。由 1N2 共 N2个自然数构成每行、每列及两对角线上各数之和都相等的 NN方阵,这样的方阵就叫做 N阶魔方阵。顾名思义,奇阶魔方阵就是 N为奇数的幻方。 奇数阶魔方 阵的生成方法如下: (1)第一个位置在第一行正中。 (2)新位置应当处于最近一个插入位置右上方,但如果右上方位置已超出方阵上边界,则新位置取应选列的最下一个位置;如果超出右边界,则新位置取应选行的最左一个位置。 (3)若最近一个插入元素为 N的整数倍,则选下面一行同列上的位置为新位置。本题要求输入一个数
7、据 n,然后打印由自然数 1到 n2的自然数构成的魔方阵 (n为奇数 )。例如,当 n=3时,魔方阵为: 8 1 6 3 5 7 4 9 2 了解其生成方法后,就可以根据此方法来写出程序了。首先设置 int变量 i, j,m, n。其中 i标记魔方阵的行; j标记魔方阵的列; n表示魔方阵的维数,通过输入得到;通过 m递加得到插入的数据。数组 aMAXMAX用于存放魔方阵元素。这里预定义了 MAX的大小,没有采用动态分配,在此设置为 15,即最大求得1515阶魔方阵。 【程序】 #include stdio.h #define MAX 15 void main() int n; int m=1
8、; int i,j; int aMAXMAX; printf(“Please input the rank of matrix:“); scanf(“%d“, i=0; (1) while(2) aij=m; m+; i-; j+; if(m-1)%n=0 if(j (n-1) /超出上界 (4) if(j (n-1) (5) for(i=0;i n;i+) /输出魔方阵 for(j=0;j n;j+) if(aij/10=0) printf(“%d “,aij); /对程序无影响,只是使输出的数每一列对齐 else printf(“%d “,aij); if(j=(n-1) printf(“
9、n“); 5 阅读以下说明和 C+程序,将应填入 (n)处的字句写在答题纸的对应栏内。 【说明】 本程序用于评选优秀教师和学生。当输入一系列教师或学生的记录后,将优秀学生及教师的姓名列出来。其类结构如下图所示: 【程序】 #include iostream.h #include stdio. h class base protected: char name8; public: void getname()cout “name:“; cin name; void printname()cout“name:“ name endl; (1) ; class student: (2) int num
10、; public: void getnum() cout “score:“; cin num; bool isgood() return (3) ; class teacher: (2) int num; public: void getnum() cout “paper:“; cin num; bool isgood() return (num 3)?true:false; void main() base *p50; student *pstud; teacher *ptech; char ch; int count=0; do cout “input teacher(t) or stud
11、ent(s):“; cin ch; if(ch=s) pstud=new student; pstud- getname(); pstud- getnum(); pcount+=pstud; else if(ch=t) (4) ptech- getname(); ptech- getnum(); pcount+=ptech; else cout “input is wrong“ endl; cout “continue to iput(y/n)?“; cinch; while(ch=y); for(int i=0;i count;i+) if(5) pi- printname(); 6 阅读以
12、下说明、 Java代码,将应填入 (n)处的字句写在答题纸的对应栏内。 【说明】 IC卡和 200卡都是从电话卡派生的。下面的程序将电话卡定义为抽象类。其中 balance为双精度变量,代表电话卡中的余额; cardNumber是长整型变量,代表电话卡的卡号; password是整型变量,代表电话卡的密码; connectNumber是字符串变量,代表电话卡的接入号码; connected是布尔变量,代表电话是否接通。 performDial()实现各种电话 接通后的扣除费用的操作。其中 200卡每次通话扣除0.5元的通话费用和附加费用; IC卡每次通话扣除 0.9元的通话费。 TimeLef
13、t()方法用于测试电话卡余额还可以拨打电话的次数。 performConnection()用于电话接入操作,如果卡号和密码正确,则接通;否则,接不通。 【程序】 abstract class PhoneCard doubte balace; (1) perfermDial(); double getBalance() return balance; double TimeLeft() double current=balance; int times=0; do (2) times+; white(balance =0); balance=current; return times-1; ab
14、stract class Number_PhoneCard extends PhoneCard long cardNumber: int password; String connectNumber; Boolean connected; Boolean performConnection(long cn, int pw) if(cn=cardNumber return true; else return false; class IC Card (4) boolean performDial() if(balance 0.9) balance-=0.9; return true; else
15、return false; class D200_Card (4) static double additoryFee; static additoryFee=0.1; boolean performDial() if(balance (0,5+additeryFee) (5) return true; else return false; 软件水平考试(初级)程序员下午(应用技术)模拟试卷 36答案与解析 1 【正确答案】 (1)0 (2)0 (3)|t|: (4)s+1 (5)t*x/s 【试题解析】 本题考查程序流程图的内容。 首先让我们来了解一下题目的真正含义,题目要求用泰勒展开式计算
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 软件 水平 考试 初级 程序员 下午 应用技术 模拟 36 答案 解析 DOC
