程序设计基础09级上机考试题库
程序设计基础2009A答案

2009级《程序设计基础》课程试题(A卷)答案题号一二三总分分数合分人:复查人:一、算法基础:(每题5分,共20分)分数评卷人1.谈谈对变量和常量的认识。
要点:变量:可以改变的量,必须用标识符命名,可以被赋值。
常量:不能改变的量,可以直接是字面量,也可以用标识符,不能被赋值。
2.招聘条件:年龄在18~40之间,工作经验在5年以上,身高在1.75M 以上。
写出其表达式。
要点:如果用标识符age指称年龄,exp指称工作经验,high指称身高。
表达式为:(age>18 and age<40) and (exp>5) and (high>1.75)注意:可以用其它标识符指称相关概念。
3. 结构化流程图的循环结构有哪些?有什么区别?要点:当型循环(while)和直到型循环(repeat …… until)区别是直到型循环至少执行一次循环体,当型循环根据循环条件有可能一次也不执行循环体。
实际上当型循环先判断条件,直到型循环后判断条件。
4. 谈谈形式参数与实在参数的区别以及它们之间的关系。
要点形式参数是函数定义时指定的出现在参数表上的参数,实在参数是函数调用是出现在参数表上的实际参数表达式。
函数调用时,把参数表相应位置的实参传递给形参。
分数评卷人二、写出程序执行结果或画出流程图:(每题5分,共30分)1.将下列程序的执行结果写在右边:beginfor i ← 1 to 9 step 2 dofor i ← 10 to 20 step 3 dowrite(i,”->”)write(i)end答案: 10->13->16->19->242.将下列程序的执行结果写在右边:Function star(n)beginfor i ← 1 to n dobeginfor j ← 1 to (n-i) do write(’ ’)for j ←1 to i dowrite(’*’)writelnendendbeginfor i ← 1 to 3 step 1 do star(i*2)end答案:**********************************3.将下列程序的执行结果写在右边:beginarray aaa[1..6]for i ← 1 to 6 step 2 do beginaaa[i] ← iaaa[i+1] ← -iendfor i ← 1 to 6 step 1 do beginif aaa[i]>0 then ch ←’0’else ch ←’9’for j ← 1 to i step 1 do write(j,ch)writelnendend答案:101929102030192939491020304050192939495969注:答案中若把0写作48,9写作57也算正确。
2012计算机程序设计基础(09级机电等)试题A卷

2012计算机程序设计基础(09级机电等)试题A卷西安⼯业⼤学试题纸⼀.选择题:(共20分=1分×20)1. C语⾔程序的基本单位是()A.过程B.函数C.⼦程序D.标识符2. 在C语⾔中,下列常量中正确的是()A.0x5d B.018 C.e2 D.’ab’3. 设int型变量a的值为5,执⾏下列语句后,int型变量b的值不为2的是()A.b=a/2 B.b=(a-=3) C.b=a%3 D.b=a-a/24. 执⾏语句”x = (a = 3,b = a - -)后,x,a,b的值依次为()A.3,3,2 B.3,2,2 C.3,2,3 D.2,3,25. 设int x=1,y=9,a=5,b=6;执⾏(a=39 );后a和b值分别为()A.0和0 B.0和6 C.5和0 D.5和66. 设m,n,a,b,c,d均为0,执⾏(m=n==b)|| (n=c==d)后,m,n的值是()A.0,0 B.0,1 C.1,0 D.1,17. 假设以下代码中⽤到变量都已正确定义的整形,执⾏这些语句后x的值是()a =b =c = 0; x = 35;if ( ! a ) x - - ; else if ( b ) ; if ( c ) x = 3 ; else x = 4 ;A.34 B.4 C.35 D.38. 已知m, a和b为整型变量,下⾯每组表达式等价是()A.m=(a=1,2*3) 与m=a=1,2*3 B.(double)(a/b) 与(double)a/bC.(int) a+b与(int) (a+b) D.m%=2+a*3与m=m%2+a*39. 若S1和S2表⽰C语⾔语句,如下有哪⼀个语句在功能上与其他三个语句不等价( )A.if ( a ) S1;else S2;B.if ( a==0 ) S1;else S2;C.if ( a!=0 ) S1;else S2;D.if ( a==0 ) S2;else S1;10. 执⾏for ( x = 0, y = 0, k=0; ( y != 123 ) || ( x < 4); x++ ) y=k; 的循环次数为()A.⽆限次B.不确定次C.4次D.3次11. 在执⾏int a[][3]={{10,20},{30,40}};语句后,a[1][2]的值是()A.10 B.20 C.30 D.4012. 对s1和s2初始化char s1[ ]=”ABC”;char s2[ ]={‘A’,’B’,’C’ };则叙述正确的是()A.s1和s2数组完全相同B.s1与s2长度相同C.s1和s2中都存放有效字符串D.s1数组⽐s2数组长度⼤13. 在C语⾔中,函数调⽤不可以()A.出现在执⾏语句中B.出现在⼀个表达式中C.做为⼀个函数的实参D.做为⼀个函数的形参14. 在标准C中,若有以下定义:struct data {int k;char ch;double f;} st;则结构体变量st占⽤内存的字节数是()A.11 B.1 C.2 D.815. 执⾏下⾯程序段后,*p的值为()int y[4]={11,22,33,44},*p=y;p+=2;A.11 B.22 C.33 D.4416. 若有定义int x, *p ; float y , *q ; 则下⾯赋值语句正确的是()A.p=&x ; B.p=&y ; C.q=&x ; D.q = p ;17. 要定义⼀个指向由8个元素组成的整型⼀维数组的指针变量p,则正确的形式是()A.int *p[8];B.int (*p)[8];C.int *p (8);D.int (*p)(8);18. 若有以下说明和语句,则以下引⽤⽅式正确的是()struct worker{ int no;char *name;} work,*p=&work;A)(*work).no B)p.no C)p->no D)*p->no19. 若有定义为int max(int x,int y);int (*p)() ;p=max;则函数调⽤正确的有()A.&p(a,b) B.*p(a,b) C.(*p)(a,b) D.*max(a,b)20. C语⾔⽂件操作中,执⾏rewind(fp); 的作⽤是()A.使⽂件指针重新返回⽂件开始位置B.将⽂件指针指向所要求的特定位置C.使⽂件指针指向⽂件的末尾D.使⽂件指针⾃动移⾄下⼀个字符位置⼆、判断题,正确打“√”,错误打“×”(共10分=1分×10)1. C程序中的函数可以相互调⽤,其他函数也可以调⽤main函数。
2009级期末上机考试试题 (B1卷)

2009-2010年度《高级语言程序设计》
第一学期期末上机考试试题(B1卷)
(请注意:在每道题的程序第一行加一行注释行,注明:学号、姓名、专业、试卷类型:B、题号。
每道题存储为一个独立的Cpp文件,使用题号和卷号命名,例如:B1_1.cpp,并建立一个文件夹存储这些文件,文件夹使用学号命名。
)
1.已知公元N年9月1日是星期五,请使用for或while循环的方式计算出N+1年2月份的日历。
并采用循环的方式将之打印到屏幕上。
(请考虑闰年问题)
输入:第N年的年份
输出:第N+1年的2月份日历(采用类似Windows下的月份日历显示方式排版)
2.任意输入n个实数(10<=n<=100),首先按照从大到小的顺序排列,然后计算这n个数的平均值,并按顺序将该值插入到序列的之中。
例如:序列为(1,4,2,5,6,3,10,7,8,9),平均值为5.5,插入后的序列为(10,9,8,7,6,5.5,5,4,3,2,1)。
输入:不少于10的n个实数
输出:平均值和从大到小排列的n+1实数序列
3.利用质因数分解法求解任意两个正整数m和n的质数公约因子和。
例如m=60,n=24时,首先求得m=60=2*2*3*5,n=2*2*2*3,则其共有的质因数是两个2和一个3,得到所求质数公约因子和为2+3=5。
输入:两个正整数
输出:每个输入正整数的分解因子序列,和质数公约因子和计算式。
(2009年级)上机考试试卷A(C++下)

信息学院09年级计算机科学基础II上机试卷A(考试时间70分钟卷面成绩100分)学号姓名机位号说明:首先在Z盘建立一个以自己的学号命名的文件夹,用于存放上交的*.CPP文件和*.dat文件,考试结束前根据机房要求,将这个文件夹传送到网络服务器上,注意:提交时只保留文件夹中的.CPP文件和.dat文件。
一、改错题(50分)【要求】调试程序,修改其中的语法错误及逻辑错误。
只能修改、不能增加或删除整条语句。
请在修改行的末尾用“注释符号//+序号”表示此行修改过,如//3)【注意】源程序以“学号f1.cpp”命名,存入自己学号文件夹中。
【题目】修改以下程序中的逻辑错误和语法错误(共10处)。
#include<iostream>using namespace std;class CChild{int m_age;double *m_pweight;public:CChild(int);CChild(CChild &);~CChild();friend void SetChildData(CChild);};CChild::CChild(int age){age=m_age;if(age){if(m_pweight==new double[age]){cout<<"请输入"<<m_age<<"岁儿童每年的平均体重\n";for(int i=0;i<age;i++)cin>>m_pweight[i];}}else m_pweight=0;}CChild::~CChild()if(!m_pweight){cout<<m_age<<"岁儿童每年的平均体重为(kg)\n";for(int i=0;i<m_age;i++)cout<< *(m_pweight+i)<<'\t';cout<<endl;delete m_pweight;}}CChild::CChild(CChild &child){m_age=child.m_age;if(m_age){m_pweight=new double(m_age);for(int i=0;i<m_age;i++)m_pweight[i]=child.m_pweight[i];}else m_pweight=0;}friend void SetChildData(CChild child){cout<<"请输入儿童年龄:\t";cin>>m_age;if(child.m_age){if(child.m_pweight) delete [] child.m_pweight;child.m_pweight=new double[child.m_age];cout<<"请输入"<<child.m_age<<"岁儿童每年的平均体重\n";for(int i=0;i<child.m_age;i++)cin>>child.m_pweight[m_age];}else child.m_pweight=0;}int main(){CChild ch1(4),ch2(ch1),ch3;SetChildData(ch3);return 0;二、编程题(50分)【注意】源程序以“学号f2.cpp”命名,存入自己学号文件夹中。
2009秋江苏计算机等级C上机真题1

2009秋江苏计算机等级C上机真题1改错题:[程序功能]输入两个正确日期且年份在1900-9999范围内,计算并输出两个日期之间间隔的天数,例如:2008-8-1和2009-8-1之间间隔的天数为365提示:能被4整除并且不能被100整除的年份是闰年,能被400整除的年份也是闰年,其他年份则是平年[测试数据与运行结果]显示:first date:输入:1980-2-1显示:second date:2009-8-1输出:10774 days[含有错误的源程序]#include <stdio.h>#define leap(int y) ((y)%4==0 && (y)%100!=0||(y)%400==0) struct d{int y,m,d;};int days(struct d d1,struct d d2){int mon[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}};int i; long td=0;for(i=d1.y;i<d2.y;i++)td=leap(i)?366:365;for(i=1;i<d1.m;i++)td-=mon[leap(d1.y)][i];td-=d1.d-1;for(i=1;i<d2.m;i++)td+=mon[leap(d2.y)][i];td+=d2.d-1;return td;}void main(){struct d d1,d2;long td;printf("first date:");scanf("%d-%d-%d",d1.y,d1.m,d1.d);printf("second date:");scanf("%d-%d-%d",d2.y,d2.m,d2.d);td=days(d1,d2);printf("%ld",td);}520。
全国计算机等级考试三级PC技术机试真题2009年9月

全国计算机等级考试三级PC技术机试真题2009年9月(总分:100.00,做题时间:90分钟)一、上机题(总题数:1,分数:100.00)1.请编制程序ex9.ASM,其功能是:从20个有符号字节数据中取出负数并计算其绝对值之和(字型),然后存放在指定的内存区中,多余的空间填0。
例如:内存中有80H,02H,00H,7CH,7BH,11H,……结果为80H,00H,FEH,00H,FDH,00H,85H,00H,……部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中,运算的结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。
补充BEGIN和END之间已给出的源程序使其完整(空白已用横线标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。
对程序进行汇编,并与IO.OBJ链接产生执行文件,最终运行程序产生结果。
调试中发现整个程序中存在错误之处,请加以修改。
[试题程序]EXTRN LOAD:FAR,SAVE:FARN EQU 20STAC SEGMENT STACKDB 256 DUP(?)STAC ENDSDATA SEGMENTSOURCE DB N DUP(?)RESULT DB N DUP(0)NAME0 DB 'INPUT1.DAT',0NAME1 DB 'OUTPUT1.DAT',0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACSTART PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DATAMOV DS,AXMOV ES,AXLEA DX,SOURCE ;数据区起始地址LEA SI,NAME0 ;原始数据文件名MOV CX,N ;字节数CALL LOAD ;从'INPUT1.DAT'中读取数据; **** BEGIN ****LEA SI,SOURCELEA DI,RESULTMOV DX,0MOV CX,NCLDCON:LODSH(1)JGE (2)MOV [DI],ALINC DI(3)INC DIADD DL,AL(4)NEXT:LOOP CONMOV [DI],DXADD DI,2MOV CX,40SUB CX,DIMOV AL,0(5); ****END****LEA DX,RESULT ;结果数据区首址LEA SI,NAME1 ;结果文件名MOV CX,N ;结果字节数CALL SAVE ;保存结果到文件RETSTART ENDPCODE ENDSEND START(分数:100.00)__________________________________________________________________________________________ 正确答案:(; **** BEGIN ****LEA SI,SOURCELEA DI,RESULTMOV DX,0MOV CX,NCLDCON:LODSBCMP AL,0JGE NEXTMOV [DI],ALINC DINEG ALINC DIADD DL,ALADC DH,0NEXT:LOOP CONMOV [DI],DXADD DI,2MOV CX,40SUB CX,DIMOV AL,0REP STOSB; ****END****)解析:[解析] 本题主要考查有符号数的绝对值之和问题。
程序设计基础试题(附答案)

程序设计基础试题(附答案)程序设计基础复习题一、单选1、一个完整的计算机系统应该包括()A、系统软件和应用软件B、计算机及其外部设备C、硬件系统和软件系统D、系统硬件和系统软件2、“裸机”的概念是指()A、正在进行设计还没有组装好的计算机B、已经组装好但还没有安装任何软件的计算机C、仅安装了操作系统的计算机系统D、安装了文字处理软件但没有安装专用数据处理系统的计算机3、世界上第一台电子数字计算机研制成功的时间是()A、1936年B、1946年C、1956年D、1970年4、CASE的含义是()A、计算机辅助设计B、计算机辅助制造C、计算机辅助教学D、计算机辅助软件工程5、当前广泛使用的微型计算机是()A、第一代B、第二代C、第三代D、第四代6、当代计算机的体系结构称为是()A、冯诺依曼机B、非冯诺依曼机C、图灵机D、比尔盖茨机7、硬盘是()A、输入设备B、输出设备C、存储设备D、计算设备8、下面4句话中,最准确的表述是()A、程序=算法+数据结构B、程序是使用编程语言实现算法C、程序的开发方法决定算法设计D、算法是程序设计中最关键的因素9、计算机能直接执行的语言是()A、机器语言B、汇编语言C、高级语言D、目标语言10、解释程序的功能是()A、将高级语言程序转换为目标程序B、将汇编语言程序转换为目标程序C、解释执行高级语言程序D、解释执行汇编语言程序11、下面4种程序设计语言中,不是面向对象式语言的是()A、JAVAB、Object PascalC、DelphiD、C12、不是C语言的基本数据类型是()A、intB、doubleC、charD、bool13、在C语言中,为了求两个整数相除之后得到的余数,可以使用运算符()A、/B、%C、*D、++14、数据的逻辑结构分为()A、纯属结构和非线性结构B、顺序结构和非顺序结构C、树型结构和图型结构D、链式结构和顺序结构15、用链表表示纯属表的优点是()A、便于随机存取B、便于插入和删除操作C、花费的存储空间较顺序存储少D、元素的物理顺序与逻辑顺序相同16、栈的最主要特点是()A、先进先出B、先进后出C、两端进出D、一端进一端出17、下面4句结论只有一句是错误的,它是()A、二叉树是树B、二叉树的左右子树的位置可以颠倒C、可以使用二叉树的思想对数值进行排序D、可以采用链表方式存储二叉树18、螺旋模型中包括需求定义、风险分析、工程实惠和评审四个阶段,在开发过程中()A、每个周期都要包括这四个阶段B、每个周期可以包括不同的阶段C、在最后交付使用之前才进行评审D、在项目开始时才需要进行风险分析19、软件工程的出现主要是由于()A、程序设计方法学的影响B、其他工程科学的影响C、软件危机的出现D、计算机的发展20、在软件工程中,软件测试的目的是()A、试验性运行软件B、发现软件错误C、证明软件是正确的D、找出软件中全部错误二、填空题1、世界上最早的高级程序设计语言是()2、计算机按照工作原理进行分类可以分为()和()3、当前计算机的最基本原理采用的是()4、计算机存储器一般分为两级,它们是()和()5、高级语言程序的翻译有两种方式,一种是(),另一种是()6、数据的存储结构可以用()和()7、树型结构的主要特征是结点之间存在着一种层次的关系,数据元素之间的关系是()的关系。
程序设计基础09级上机考试题库

一、初级题1.输入整数n,输出由2×n+1行2×n+1列组成的以下(n=2)的图案。
2.输入整数n(<10),输出以下形式(n=3)的数字排列图案。
3.输入正整数n,输出n行n列星号字符组成的三角形图案。
以下是n等于4的图案。
4.输入正整数n,输出由n行2×n-1列星号字符组成的三角形图案。
以下是n等于3的图案。
5.输入正整数n,输出n行2×n-1列的空心三角形图案。
以下是n等于4的图案。
-6.输入正整数n,输出n行n列的空心四边形图案。
以下是n等于5的图案。
7.编写一个函数,已知参数n,在屏幕的中间显示一个用星号字符绘制的空心的三角形图案。
例如,n=4,函数的显示的图案为:8.编写程序,列表输出整数1~10的平方和立方值。
9.求一个整数的十进制位数。
10.判断一个十进制数是否为回文数。
11.递归计算x的y次方。
12.输入一个正整数,用递归实现该整数的倒序输出。
—13.编写一个程序,输入一个整数,输出0~9各数字在该整数中出现的次数。
14.编写一个程序,输出所有英文字符及它们的ASCII码值,其中代码值分别用八进制形式、十六进制形式和十进制形式输出。
15.水仙花数是一个n(n>=3)位数字的数,它等于每个数字的n次幂之和。
例如,153是一个水仙花数,153=13+53+33。
试编写一个程序求小于999的所有水仙花数。
#include<>void main(){printf(“小于999的水仙花数为:\n”);int n,i,j,k;for(n=100;n<999;n++){…i=n%10;j=n/100;k=(n-100*j)/10;if(i*i*i+j*j*j+k*k*k==n);printf(“%d”,n);}}16.编写一个程序,输入一个整数,逐位地输出整数的十进制数,要求位与位之间有一个空格符分隔。
~17.在数组的某个下标位置插入一个元素。
2009级C语言程序设计试卷_A卷(带答案2010.5)

天津工业大学200 9 ~201 0 学年第 2 学期高级语言程序设计(C语言) 试卷(A卷答案)学院班级学号姓名注意事项:1、本试卷共12 页,满分为100 分,考试时间为110 分钟。
2、标准答题卡使用2B铅笔涂写;文字题答题时请使用蓝、黑钢笔或圆珠笔,不得使用红颜色墨水笔。
一、单项选择题:(每题 1 分,共40 分)一、单项选择题:(每题 1 分,共40 分)(说明:请将正确答案按照题干上【】内的序号涂写“标准答题卡”)1.根据C语言的规定,为变量取名时,不能使用的符号是【1】。
A) 数字字符B) 大写字母C) 下划线D) 减号2.一个C语言程序的执行是【2】。
A) 从第一个函数开始,到最后一个函数结束B) 从main()函数开始,到最后一个函数结束C) 从main()函数开始,到main()函数结束D) 从第一个语句开始,到最后一个语句结束3.执行下列程序段后,输出结果是【3】。
int m=013;printf("%d,%o,%x\n",m,m,m);A) 19,23,13 B) 11,13,b C) 13,15,d D) 13,13,134.表达式sizeof(double)的值是【4】。
A) 1 B) 2 C) 4 D) 85.设有变量定义语句char ch; 则能够正确地为变量ch输入数据的是【5】。
A) scanf("%c",&ch); B) getchar(ch);C) scanf("%c",ch); D) putchar(ch);6.设变量a是int型、f是float型、d是double型、c是char型,则表达式c+a-f/d的数据类型是【6】。
A) char型B) int型C) float型D) double型7.有变量定义语句int k=4,m; 执行语句m=k--; 后,变量m、k的值是【7】。
A) m=3,k=3 B) m=4, k=3 C) m=3,k=4 D) m=4,k=48.设int i=2,j=1,k=3,则表达式i&&(i+j)&k|i+j的值是【8】。
题库1—全国等级考试2009年9月

C
阅读以下程序
#include
main()
{intcase;floatprintF;
printf(“请输入2个数:”);
scanf(“%d%f”,&case,&printF);
printf(“%d%f\n”,case,printF);
}该程序编译时产生错误,其出错原因是___________。
D
有以下定义语句,编译时会出现编译错误的是___________。
A、char a=’a’;B、char a=’\n’;C、char a=’aa’; D、char a=’\x2d’;
C
有以下程序#include<stdio.h>
main()
{ char c1,c2;
c1=’A’+’8’-‘4’;
c2=’A’+’8’-‘5’;
B、文件由结构序列组成,可以构成二进制文件或文本文件
C、文件由数据序列组成,可以构成二进制文件或文本文件
D、文件由字符序列组成,其类型只能是文本文件
C
A、定义语句出错,case是关键字,不能用作用户自定义标识符
B、定义语句出错,printF不能用作用户自定义标识符
C、定义语句无错,scanf不能作为输入函数使用
D、定义语句无错,intf不能输出case的值
A
表达式:(int)((double)9/2)-(9)%2的值是___________。
B
下面是有关C语言字符数组的描述,其中错误的是___________。
A、不可以用赋值语句给字符数组名赋字符串
B、可以用输入语句把字符串整体输入给字符数组
2009年上海市高等学校计算机等级考试试卷及答案A卷

2009年上海市高等学校计算机等级考试试卷及答案A卷2009年上海市高等学校计算机等级考试试卷二级 C语言程序设计( A 卷)一、单选题1.执行下列语句序列后,不可能出现的运行结果是___C______。
int n;scanf( "%d", &n);switch ( n ){case 1:case 2: putchar('X');case 3:case 4: putchar('Y'); break;default: putchar('Z');A. 显示:zB. 显示:xyC. 显示:xD. 显示:y2.设a,b为整型变量, 且二者均不为0, 以下关系表达式中恒成立的是__C____。
A. a/b*b/a==1B. a/b*b==aC. a*b/a==bD. a*b/ a*b ==13.设有定义:int x=10,y=20,z=30; 则执行下列语句后的结果是___B____。
if ( x>y ) z=x;x=y; y=z;printf("%d,%d,%d",x, y, z );A. 20,30,20B. 20,30,30C. 20,30,10D. 10,20,304.下列程序的输出结果是__B___。
main(){int a = 011;printf( "%d\", ++a );}A. 9B. 10C. 11D. 125.设 x, y 和 z 是int型变量,且 x=3, y=4, z= 5,则下面表达式中值为0的是__B__。
A. !(x<y)&&!z||1< bdsfid="110" p=""></y)&&!z||1<>B. x==y&&y!=zC.x||y+z&&y-zD. y&&’y’6.以下所列的各函数声明中,正确的是___D____。
计算机科学与技术专业专接本入学考试(2009秋季)A卷1

绝密★启用前2009年北京联合大学秋季高职升本科基础课、专业基础课考试考试科目程序设计基础(总分:100分考试时间:120分钟)注意事项:1. 试卷共8 页,用钢笔或圆珠笔直接将答案写在试卷上。
2. 答卷前将密封线内的项目填写清楚。
注意:本试卷共五道大题。
题号一二三四五总分题分30 10 10 20 30 100得分一、选择题(本大题共15个小题,每小题2分,共30分)得分评卷人1.以下关于C程序组成特点的叙述中错误的是( c )A)C程序的基本组成单位是函数B)C语言不允许在函数中定义函数C)C语言不允许在一行内写多条语句D)分号是C语句的组成部分2.以下不能用于描述算法的是( d )A)N-S图B)传统流程图C)自然语言D)E-R图3.以下不能作为用户标识符的是( c )A)_128 B)MAIN C)3D D)f2x4.设变量均已正确定义并赋值,以下错误的赋值语句是( b )A)++x; B)x+y=z; C)a=b=c; D)x=y+z;5.以下合法的字符常量是()A)’65’B)’\’C)’n’D)’\08’6.设有定义:int a=20,b=020;,则语句printf(“%d,%d“,a,b);的输出结果是()A)20,15 B)20,16 C)20,20 D)20,177.设有如下程序段:int a=2,b=1,c=3;if(a<b) c=a; a=b;b=c;执行上述程序段后,a、b、c中的值应该是()A)a=1,b=2,c=3 B)a=1,b=2,c=2 C)a=1,b=3,c=3D)a=2,b=1,c=38.以下选项中,与n=i++ 完全等价的表达式是()A)n=i,i=i+1B)n+=i+1 C)i=i+1,n=i D)n=++i9.有以下程序:main( ){ int i,sum;for(i=1; i<5;i++,i++) sum+=i;printf("%d\n",sum); }程序的输出结果是()A)随机值B)10 C)4 D)910.以下程序的功能是计算正整数123的各位数字之和:main( ){ int n=123,sum=0;while(n!=0){ sum=sum+n%10;n= ; }printf("sum=%d\n",sum);}程序的下划线处应填入的是()A)n%10 B)n%100 C)n/10D)n/10011.要求定义一个具有6个元素的int型一维数组,以下选项中错误的是( )A)int a[ ]={1,2,3,4,5,6}; B)int a[2*3]={0};C)#define N 3 D)#define N 6 int a[N+N]; int *a[N];12.有以下程序:main( ){ char str[20]=”String\0xy\n”;printf("%d\n",strlen(str));}程序的输出结果是()A)6 B)7 C)9 D)12 13.有以下函数:int fun(int x, int y){ return x>y ? y : x ; }此函数的功能是()A)返回x和y中较大的数B)总返回“假”C)返回x和y中较小的数D)总返回“真”14.有以下程序main( ){int x[3][3]={ {1,2,3},{11,12,13},{21,22,23} };int i;for(i=0 ; i<3; i++ ) printf("%d ", x[i][i]);}程序运行后的输出结果是( )A)1 11 21 B)2 12 22C)3 13 2 D)1 12 2315.以下叙述中错误的是()A)C语言的源程序文件是文本文件B)由C程序生成的数据文件是由记录组成的C)扩展名为.obj的C程序文件是二进制代码文件D)扩展名为.exe的C程序文件可以执行二、填空题(本大题共10个空,每空1分,共10分)1. C 程序从编写到运行主要经历的步骤包括:编辑、【1】 编译源代码 、【2】 连接目标程序 、运行。
2009【春】江苏计算机等级C上机真题

2009【春】江苏计算机等级C上机真题2009春江苏计算机等级⼆级考试c上机2009春上机试题1(编程)程序功能:找出7个默森尼数。
法国数学家默森尼曾提出下列公式:Mp=2^p-1。
当p是素数并且Mp也是素数时,称Mp为默森尼数,例如,p=5,Mp=2^5-1=31,5和31都是素数,因此31是默森尼数;⽽Mp=2^11-1=2047,11是素数,2047不是素数,因此2047不是默森尼数.[编程要求]1.编写函数void Mersenne(long a[ ],int m),其功能是求出前m个默森尼数并以此将它们保存到a指向的数组中,2.编写main函数,调⽤Mersenne函数并保存前7个默森尼数,将运⾏结果输出到屏幕及结果⽂件myf2.out中,最后将考⽣的考号也保存到结果⽂件myf2.out中【测试数据与运⾏结果】3 7 31 127 8191 131071 5242872009春上机试题2(编程)⽤⼀组整数验证命题,任意⼀个百位数字与个位数字不同的三位正整数n1在经过以下操作后⼀定会变换到1089:将n1的百位数与个位数字交换得到n2,求n1和n2差的绝对值得到n3,将n3的百位数字与个位数字交换得到n4;求n3与n4的和得到n5,n5⼀定是1089,若n1、n3是⼀位数或两位数,则在⾼位补0使其成为三位数例如:n1:123,n2:321,n3:198(321,-123),n4:891,n5:1089(198+891)【编程要求】1.编写函数int fun(int a[ ],int b[ ], intn),其功能是⽤n指向数组的前n个整数验证上述命题,将所有符合命题的整数所在数组元素的下标依次保存到b指向的数组中,函数返回b数组中数据的个数2.编写main函数,声明a数组并⽤测试数据初始化,⽤a数组作为实参调⽤fun函数,将a数组中所有符合命题的整数输出到屏幕及结果⽂件myf2.out中,最后将考⽣本⼈的准考证号字符串也保存到结果⽂件myf2.out中江苏计算机⼆级c2009春上机试题22009春第⼆套⼀:改错题:程序功能:函数mergeu的功能是:合并两个字符集合为⼀个新集合,每个字符串在新集合中仅出现⼀次,函数返回新集合中字符串的个数[测试数据与运⾏结果]测试数据:s1集合{“while”,”for”,”switch”,”if”,”continue”}s2集合{“for”,”case”,”do”,”else”,”char”,”switch”}运⾏结果:while for switch if break continue case do else char[含有错误的源代码]#include#includeint merge(char s1[ ][10],char s2[ ][10],char s3[ ][10],int m,int n){int i,j,k=0;for(i=0;is3[k++]=s1[i];for(i=0;i{for(j=0;jif(strcmp(s2[i],s1[j]))break;if(j>m)strcpy(s3[k++],s2[i]);}return k;}void main(){int i,j;char s1*6+*10+=,“while”,”for”,”switch”,”if”,”break”,”continue”-,s2*6+*10+=,“for”,”case”,”do”,”else”,”char”,”switch”-,s3*20+*10+;j=merge(s1[][10],s2[][10],s3[ ][10],6,6);for(i=0;iprintf(“%s “,s3*i+);}【要求】1. 将上述程序录⼊到⽂件myf1.C中,根据题⽬要求及程序中语句之间的逻辑关系对程序中的错误进⾏修改。
2009年春季计算机等级考试Visual Basic语言上机试题(1、2套)

上机试卷 第1套2009年4月25日一、设计程序界面如图1所示。
程序运行时,单击“生成矩阵”按钮Command1,在图片框Picture1中生成由3位正整数组成的5×5矩阵;随后单击“查找最大值”按钮Command2,在图片框Picture2中显示矩阵中的最大值。
(40分,存盘工程文件名为Ex11nnnn.Vbp ,窗体文件名为Ex11nnnn.Frm ,其中nnnn 为考生准考证号的右4位)二、编写程序,从窗体工作区左上角开始,沿主对角线画出8个相切的红色矩形块,运行结果如图2所示。
(30分,存盘工程文件名为Ex12nnnn.Vbp ,窗体文件名为Ex12nnnn.Frm ,其中nnnn 为考生准考证号的右4位)三、程序界面如图3所示,启动运行后,在文本框Text1中依次输入同学的姓名、身高和体重,数据项之间以空格分开,然后单击“查找”按钮,在标签Label2中显示最胖者的姓名(体重/身高的值最大者)。
(30分,已知程序代码有错,请根据程序功能调试程序。
将修改正确的程序存盘,工程文件名为Ex13nnnn.Vbp ,窗体文件名为Ex13nnnn.Frm ,其中nnnn 为考生准考证号的右4位)Private Sub Command1_Click()Dim a As Integer ‘errora = Split(Text1)Max = 0Order = 0For i = LBound(a) To UBound(a) Step 2 ‘errorx = a(i + 2) / a(i + 1)If x < Max Then ‘errorx=Max ‘errorOrder = iEnd IfNext iLabel2 = "最胖的人是:" & Order ‘errorEnd Sub 图1 图2 图3上机第一套参考答案一、参考答案Dim a(25) As IntegerPrivate Sub Command1_Click()RandomizeFor i = 1 To 25a(i) = Int(Rnd * 900 + 100)Picture1.Print a(i);If i Mod 5 = 0 Then Picture1.PrintNext iEnd SubPrivate Sub Command2_Click()Max = a(1)For i = 2 To 25If a(i) > Max Then Max = a(i)Next iPicture2.Print "最大值="; MaxEnd Sub评分标准:界面设计15分正确显示矩阵10分正确查找最大值10分正确存盘5分二、参考答案Private Sub Form_Click()x = 0y = 0Me.ForeColor = vbRedFor i = 1 To 8Line (x, y)-(x + 400, y + 300), , BFx = x + 400y = y + 300Next iEnd Sub评分标准:正确设置画图初始位置5分正确设置填充颜色5分正确设置循环5分正确画出矩形5分正确定位矩形5分正确存盘5分三、参考答案Private Sub Command1_Click()Dim a As Varianta = Split(Text1)Max = 0Order = 0For i = LBound(a) To UBound(a) Step 3 x = a(i + 2) / a(i + 1)If x > Max ThenMax = xOrder = iEnd IfNext iLabel2 = "最胖的人是:" & a(Order) End Sub评分标准:每改正一个错误,得5分正确存盘,得5分上机试卷 第2套2009年4月25日一、设计程序界面如图1所示。
2009年秋上机考试(四套)

2009年(秋)计算机等级考试(二级VFP06)机考注:以上说明1所要求的操作在正式考试时执行。
练习题一(完成时间70分钟)一、项目、数据库和表操作(12分)打开T 盘根目录中的项目文件JXGL ,在该项目中已有一数据库JXSJ 。
1(1) 设置AB 表的记录级有效性规则,工作日期与出生日期之间至少相差16年; (2) 对YGBH 字段设置输入掩码:接受6个字节的字符,且只接受数字字符;(3) 创建普通索引,索引名为abcd ,要求按GZRQ 排序,GZRQ 相同时按CSRQ 字段排序; (4) 设置JBGZ 字段的有效性规则:大于等于600.00、小于等于10000.00。
2.在AB 表中输入如下记录:3 4.已知KC 表已存在主索引KCDM ,索引表达式为KCDM ;JC 表已存在普通索引KCDM ,索引表达式为KCDM 。
以KC 表为主表,JC 表为子表按KCDM 建立永久关系,并设置两表之间的参照完整性:更新限制。
二、设计查询(8分)课程安排表(KCAP)是用来存储各学期各班教学课程安排信息的表,其中含有学期编码(xqbm ,C)、班级编号(bjbh ,C)和课程代码(kcdm ,C)等字段;课程表(KC)中含有课程代码(kcdm ,C)、课程名称(kcmc ,C)和课时数(kss ,N)等字段。
按如下要求修改JXGL 项目中的查询CHAXUN :基于KCAP 表和KC 表统计各学期、各班开课门数、总课时数。
要求输出字段为:班级编号、学期编码、开课门数、总课时数。
其中,输出的“学期编码”用简短格式表示,如“2004-2005学年第1学期”表示为“04-1”,“2005-2006学年第2学期”表示为“05-2"。
要求查询结果按班级编号和学期编码排序。
三、设计菜单(5分)JXGL 项目中已存在菜单MENU ,其中已定义了“文件”菜单栏及其中的“退出菜单”项。
按如下要求设计菜单,完成后的运行效果如图l 所示。
东南大学(09级)c++上机考试试卷A(答案)

东南大学09级计算机科学基础I上机试卷A一、改错题(50分)【要求】调试程序,修改其中的语法错误及少量逻辑错误。
只能修改、不能增加或删除整条语句,除了可以增加由"{"、回车等分隔符产生的行数外,不允许增加其它行数。
【注意】源程序以“学号f1.cpp”命名,存入自己学号文件夹。
【题目】自定义函数的功能为统计数组中负数的个数,并且将负数改为0;主函数产生-20~79之间的n个随机数,调用自定义的函数,输出函数调用后数组的所有元素的值及原数组中包含的负数个数。
修改程序,运行时能够得到如下的输出结果:产生的随机数为:21 47 14 -20 49 4 58 38 42 44-15 25 61 7 41 71 75 22 7 16数组中负数的个数为:2负数清零后的数组为:21 47 14 0 49 4 58 38 42 440 25 61 7 41 71 75 22 7 16程序中有十处错误。
改错题评分标准:每错5分,共50分【含错误的源程序】#include<iostream>#include<cstdlib>using namespace std; //错误:命名空间using namespace iostream;int ClrMinus(int [],int); //错误声明:int ClrMinus(int ,int);int main(){const int n=20; //错误变量声明int n=20int arr[n]={0},i;cout<<"产生的随机数为:"<<endl;for(i=0;i<n;i++) //数组元素范围错误for(i=1;i<=n;i++){arr[i]=rand()%100-n;cout<<arr[i]<<'\t';}cout<<endl;cout<<"数组中负数的个数为:"<<ClrMinus(arr,n)<<endl;//错误函数调用:ClrMinus(arr[],n)cout<<"负数清零后的数组为:\n";for(i=0;i<n;i++); //错误变量声明int n=20 多了;cout<<arr[i]<<'\t'; //错误数组作用域Arr[i]cout<<endl;return 0;}int ClrMinus(int Arr[],int m){int count=0; //未初始化int count;for(int i=0;i<m;i++) //错误变量声明int n=20{if(Arr[i]<0) //条件语句块错误:少了{}{Arr[i]=0;count++;}}return count;}二、编程题(50分)【注意】源程序以“学号f2.cpp”命名,存入自己学号文件夹。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、初级题
1.输入整数n,输出由2×n+1行2×n+1列组成的以下(n=2)的图案。
2.输入整数n(<10),输出以下形式(n=3)的数字排列图案。
3.输入正整数n,输出n行n列星号字符组成的三角形图案。
以下是n等于4的图案。
4.输入正整数n,输出由n行2×n-1列星号字符组成的三角形图案。
以下是n等于3的图案。
5.输入正整数n,输出n行2×n-1列的空心三角形图案。
以下是n等于4的图案。
6.输入正整数n,输出n行n列的空心四边形图案。
以下是n等于5的图案。
7.编写一个函数,已知参数n,在屏幕的中间显示一个用星号字符绘制的空心的三角形图案。
例如,n=4,函数的显示的图案为:
8.编写程序,列表输出整数1~10的平方和立方值。
9.求一个整数的十进制位数。
10.判断一个十进制数是否为回文数。
11.递归计算x的y次方。
12.输入一个正整数,用递归实现该整数的倒序输出。
13.编写一个程序,输入一个整数,输出0~9各数字在该整数中出现的次数。
14.编写一个程序,输出所有英文字符及它们的ASCII码值,其中代码值分别用八进制形式、十六进制形式和十进制形式输出。
15.水仙花数是一个n(n>=3)位数字的数,它等于每个数字的n次幂之和。
例如,153是一个水仙花数,153=13+53+33。
试编写一个程序求小于999的所有水仙花数。
#include<>
void main()
{
printf(“小于999的水仙花数为:\n”);
int n,i,j,k;
for(n=100;n<999;n++)
{
i=n%10;
j=n/100;
k=(n-100*j)/10;
if(i*i*i+j*j*j+k*k*k==n);
printf(“%d”,n);
}
}
16.编写一个程序,输入一个整数,逐位地输出整数的十进制数,要求位与位之间有一个空格符分隔。
17.在数组的某个下标位置插入一个元素。
18.将数组的某个下标位置的元素从数组中删掉。
19.在数组a[]的前n个元素中寻找值等于变量key值的元素的下标。
20.编写一个程序,输入3个实数,判断这些值能否作为一个三角形的三条边的长,如果能构成三角形,要求输出三角形的面积。
21.编写程序,按下面的公式计算自然对数底e的值。
E=1+1/1!+1/2!+1/3!+1/5!+···
22.编写程序,按如下公式计算圆周率π的近似值。
π=4-4/3+4/5-4/7+4/9-4/11+···
23.编写输入正实数x,求平方不超过x的最大整数n,并输出。
24.回文整数是指正读和反读相同的整数,编写一个程序,输入一个整数,判断它是否是回文整数。
25.编写一个程序,输出1~256十进制数等价的二进制、八进制和十六进制数值表。
26.写出判断某年为闰年的宏定义。
27.写出从3个整数中找出最大数的宏。
28.编写判断已知正整数是否是质数的函数,并利用该函数输出1000之内的所有质数。
29.字符串复制函数strcpy()。
30.两字符串比较函数strcmp()。
第二部分中级题
31、编写从键盘输入41-50的10个整数序列,并按输入顺序输出到c盘根目录下以自己姓名命名的txt文件中。
32、将键盘输入3行相同的襄樊学院的英文翻译到d盘以自己学号后三位尾数命名的txt文件中,直至输入空行结束。
33、输入一篇英文短文,统计文件中的行数、单词数和字符数的程序。
34.输入n(>2)个整数,输出其中的次最小的数。
35.草地上有一堆野果,有一只猴子每天去吃掉这堆野果的一半又一个,5天后刚好吃完这堆野果。
求这堆野果原来共有多少个猴子每天吃多少个野果
36.输入n个整数,百鸡问题:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。
百钱买用冒泡法m将它们从小到大排序,然后输出。
37.编写程序解百鸡。
问鸡翁、鸡母和鸡雏各几何
38.用C代码描述以下计算要求:
(1)输出一组数组中下标是4的倍数的元素。
(2)自左至右在一维数组中找第一个值为key的元素的下标。
(3)将一维数组中的元素按与原先存储顺序相反的顺序重新存储。
39.输入一行字符,分别统计其中各英文字母出现的次数(不区分大小写)。
40.采用筛选法求质数。
算法思想简述如下:
(1)将数组中下标为0和1的元素设置为0,下标为2~N的元素设置为1.
(2)然后从下标为2的元素开始考查,当发现当前位置的数组元素值为1时,将下标是当前下标2倍、3倍、······的那些元素全部置0。
(3)重复步骤(2),直至考查了数组的全部元素,那些值依旧为1的元素的下标都是质数。
41.编写将数组的前n个元素中,前端的m个元素和随后的n-m个元素互换的程序。
要求程序
不另用其他工作数组,如a[]={1,2,3,4,5,6,7,8,9,0},设n=10,m=3。
交换后有:a[]={4,5,6,7,8,9,0,1,2,3}
42、输入今天的的年月日,求出是本年的第几天的程序。
43.如果一个整数(>1)的各因子(包括1,但不包括整数自身)之和等于该整数,称这样的整数位完全数。
例如,因为6=1+2+3,所以6是完全数。
编写一个已知整数判断其是否是完全数的函数,并用该函数输出1000之内的所有完全数。
44.试用递归函数,返回所给十进制整数相反顺序的整数,如已知1234,函数返回值是4321。
45.编写一个数字转换函数,要求根据菜单选择输出相应的二进制、八进制、十六进制数。
第三部分拨高题
46.以下程序把一维数组p[]分割成不等长的段,从指针数组pt方向来看,把p[]当做二维数组来处理。
编写程序,输出以下图形:
47.设有编号为1~16个同学按顺时针站成一个圆圈。
首先从第1个人开始,按顺时针从1开始报数,报到第4个人的时候,另其出列。
然后再从出列的下一个人开始,按顺时针从1开始报数,报到第4个人,再令其出列,------如此下去,直到圆圈不再有人为止。
求这16个同学出列的顺序。
48.为低年级小学生编写一两个整数乘法的测验程序。
程序利用随机函数产生两个整数,并给出算式请小学生输入解答。
程序对正确的解答给予鼓励;对不正确的解答给出正确的答案。
另外,为了让程序更有实用性,输入整数的范围也可由用户指定,如一位数乘法、两位数乘法等。
使用随机函数的程序有以下要求:
(1)在程序前面包含以下代码:
#include<>
#include<> /*有关时间库函数*/
(2)主函数先用以下代码为随机函数初始化:
Srand(time(NULL));
(3)用以下代码随机取1~9的整数k:
K=1+rand()%9;
为了提高小学生的学习兴趣,程序的回答也希望有所改变,如对正确的回答可以有多种选择,如“Very good!”、“Excellent!”、“Keep up the good work!”等。
同样,对于错误的响应也可以有多种选择,如“No, Please try again.”、“Wrong, Try once more.”、“No, Keep trying.”等。
利用随机函数选择一种回答。
49、有A1、A2、A3三根针,A3针上有10个大小不等的盘子,大的在下,小的在上,要求按以下规则,编写把这10个盘子从A3针搬到A1针上的程序,对给定的10个盘子,输出盘子搬动的过程。
搬盘子的规则:在搬运过程中可以使用A2针。
每次只允许搬动一个盘子。
在搬运的过程中,必须保证大盘始终在下,小盘始终在上。
50.对给定的函数表,用函数指针作函数的形参实现求它的最大值,最小值和平均值。
51.对给定的函数表,用函数指针数组实现求函数的最大值,最小值和平均值。
52.利用返回函数指针的函数实现求数组的最大值,最小值和平均值。
53从键盘输入通讯录信息并写到c盘“学生通讯录.txt”文件中,并将该文件的内容显示到屏幕上,通讯录中的信息有:本人姓名,寝室地址,电话号码长号、短号(如无请以000000代替)。
54.通过菜单选择,实现链表的多个操作(1在链表末尾添加新表元;2在指定表元之后插入新表元;3显示链表中的所有表元;4删除链表中指定表元)。
55.编写一个函数,实现将已知单链表的表元连接顺序颠倒,即使单链表的第一个表元变为最末一个表元,第二个表元变为最后第二个表元,······,最后一个表元变为第一个表元。