浙江省等级考试二级C语言2009年春试卷及答案
浙江省09年春二级vb考试试卷及答案
浙江省2009年春二级VB考试试卷及答案2009年春浙江省高等学校计算机等级考试试卷(二级Visual Basic) 试题1 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】输入n后,计算并显示下列表达式的值。
1?1111????? 234n运行时初始界面如下图左所示,输入10并按回车键后的界面如下图中所示,按“计算”按钮后的界面如下图右所示。
【程序】Dim n As Integer Private Sub Form_Load() Command1. (1)End Sub Private Sub Text1_(2)(K As Integer) If K 13 Then Exit Sub(3) If n > 0 Then = True= False Else = \ End If End Sub Private Sub Command1_Click() Dim yAs Single, i As Integer For i = 1 To n (4)Next i = y= False = True= \ 1 End Sub 【供选择的答案】(1) A、Enabled=True B、Enabled=False C、Visible=True D、Visible=False (2)A、KeyPressB、ClickC、Change(3) A、k=B、k = 13C、n = 13D、KeyDown D、n = (4) A、y = y + 1/n B、y = y + 1\\n C、y = y + 1/i D、y = y + 1\\i 试题2 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】运行时输入10个数后,输出其中较小的5个数。
【程序】Private Sub Command1_Click() Dim a(10) As Single, t As Single, i As Byte, j As Byte, k As Byte For i = 1 To 10 a(i) = InputBox( (5)) Next i Fori = 1 To 9(6)For j = i +1 To 10 If (7)Then k = j Next j t = a(i): a(i) = a(k): a(k) = tNext i For i = (8)Print a(i) Next i End Sub 【供选择的答案】(5) A、\、\C、\、\(6) A、k = i B、i = k C、k = i + 1D、i = k + 1 (7) A、a(j) a(i)C、a(j) > a(k)D、a(j) D、5 To 10 试题3 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
国家计算机二级c语言2009-2007真题及答案(完全免费)
2009年9月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间90分钟,满分100分)一、选择题((1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分,共70分)(1)下列数据结构中,属于非线性结构的是CA)循环队列B) 带链队列C) 二叉树D)带链栈(2)下列数据结果中,能够按照“先进后出”原则存取数据的是BA) 循环队列B) 栈C)队列D)二叉树(3)对于循环队列,下列叙述中正确的是DA)队头指针是固定不变的B)队头指针一定大于队尾指针C)队头指针一定小于队尾指针D)队头指针可以大于队尾指针,也可以小于队尾指针(4)算法的空间复杂度是指AA)算法在执行过程中所需要的计算机存储空间B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所需要的临时工作单元数(5)软件设计中划分模块的一个准则是BA) 低内聚低耦合B) 高内聚低耦合C) 低内聚高耦合D) 高内聚高耦合(6)下列选项中不属于结构化程序设计原则的是AA) 可封装D) 自顶向下C) 模块化D) 逐步求精(7)软件详细设计产生的图如下:该图是CA) N-S图B) PAD图C) 程序流程图D) E-R图(8)数据库管理系统是BA)操作系统的一部分B) 在操作系统支持下的系统软件C) 一种编译系统D) 一种操作系统(9)在E-R图中,用来表示实体联系的图形是CA) 椭圆图B) 矩形C) 菱形D) 三角形(10)有三个关系R,S和T如下:其中关系T由关系R和S通过某种操作得到,该操作为DA) 选择B) 投影C) 交D) 并(11)以下叙述中正确的是DA)程序设计的任务就是编写程序代码并上机调试B)程序设计的任务就是确定所用数据结构C)程序设计的任务就是确定所用算法D)以上三种说法都不完整(12)以下选项中,能用作用户标识符的是CA)voidB)8_8C)_0_D)unsigned(13)阅读以下程序#includemain(){ int case; float printF;printf(“请输入2个数:”);scanf(“%d %f”,&case,&pjrintF);printf(“%d %f\n”,case,printF);}该程序编译时产生错误,其出错原因是AA)定义语句出错,case是关键字,不能用作用户自定义标识符 B)定义语句出错,printF不能用作用户自定义标识符C)定义语句无错,scanf不能作为输入函数使用D)定义语句无错,printf不能输出case的值(14)表达式:(int)((double)9/2)-(9)%2的值是BA)0B)3C)4D)5(15)若有定义语句:int x=10;,则表达式x-=x+x的值为B A)-20B)-10C)0D)10(16)有以下程序#includemain(){ int a=1,b=0;printf(“%d,”,b=a+b);print f(“%d\n”,a=2*b);}程序运行后的输出结果是DA)0,0B)1,0C)3,2D)1,217)设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是C A)if(a>b) c=a,a=b,b=c;B)if(a>b) {c=a,a=b,b=c;}C)if(a>b) c=a;a=b;b=c;D)if(a>b) {c=a;a=b;b=c;}(18)有以下程序#includemain(){ int c=0,k;for (k=1;k<3;k++)switch (k){ default: c+=kcase 2: c++;break;case 4: c+=2;break;}printf(“%d\n”,c);}程序运行后的输出结果是AA)3B)5C)7D)9(19)以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是AA)if((a>b)&&(b>c)) k=1;else k=0;B)if((a>b)||(b>c) k=1;else k=0;C)if(a<=b) k=0;else if(b<=c) k=1;D)if(a>b) k=1;else if(b>c) k=1;else k=0;20)有以下程序#includemain(){ char s[]={“012xy”};int i,n=0;for(i=0;s[i]!=0;i++)if(s[i]>=’a’&&s[i]<=’z’) n++;printf(“%d\n”,n);}程序运行后的输出结果是BA)0B)2C)3D)5(21)有以下程序#includemain(){ int n=2,k=0;while(k++&&n++>2);printf(“%d %d\n”,k,n);}程序运行后的输出结果是DA)0 2B)1 3C)5 7D)1 2(22)有以下定义语句,编译时会出现编译错误的是CA)char a=’a’;B)char a=’\n’;C)char a=’aa’;D)char a=’\x2d’;(23)有以下程序#includemain(){ char c1,c2;c1=’A’+’8’-‘4’;c2=’A’+’8’-‘5’;printf(“%c,%d\n”,c1,c2);}已知字母A的ASCII码为65,程序运行后的输出结果是A A)E,68B)D,69C)E,DD)输出无定值(24)有以下程序#includevoid fun(int p){ int d=2;p=d++; printf(“%d”,p);}main(){ int a=1;fun(a); printf(“%d\n”,a);}程序运行后的输出结果是CA)32B)12C)21D)22(25)以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能#define MIN -2147483647int findmax (int x[],int n){ int i,max;for(i=0;i<N;I++)< p="" />{ max=MIN;if(maxreturn max;}造成错误的原因是DA)定义语句int i,max;中max未赋初值B)赋值语句max=MIN;中,不应给max赋MIN值C)语句if(maxD)赋值语句max=MIN;放错了位置(26)有以下程序#includemain(){ int m=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf(“%d,%d,%d,%d\n”,m,n,*p,*q);}程序运行后的输出结果是BA)1,2,1,2B)1,2,2,1C)2,1,2,1D)2,1,1,2(27)若有定义语句:int a[4][10],*p,*q[4];且0≤i<4,则错误的赋值是A A)p=aB)q[i]=a[i]C)p=a[i]D)p=&a[2][1](28)有以下程序C#include#includemain(){ char str[ ][20]={“One*World”, “One*Dream!”},*p=str[1];printf(“%d,”,strlen(p));printf(“%s\n”,p);}程序运行后的输出结果是A)9,One*WorldB)9,One*DreamC)10,One*DreamD)10,One*World(29)有以下程序C#includemain(){ int a[ ]={2,3,5,4},i;for(i=0;i<4;i++)switch(i%2){ case 0:switch(a[i]%2){case 0:a[i]++;break;case 1:a[i]--;}break;case 1:a[i[=0;}for(i=0;i<4;i++) printf(“%d”,a[i]); printf(“\n”);}A)3 3 4 4B)2 0 5 0C)3 0 4 0D)0 3 0 4(30)有以下程序#include#includemain(){ char a[10]=”abcd”;printf(“%d,%d\n”,strlen(a),sizeof(a));}程序运行后的输出结果是BA)7,4B)4,10C)8,8D)10,10(31)下面是有关C语言字符数组的描述,其中错误的是D A)不可以用赋值语句给字符数组名赋字符串B)可以用输入语句把字符串整体输入给字符数组C)字符数组中的内容不一定是字符串D)字符数组只能存放字符串(32)下列函数的功能是fun(char * a,char * b){ while((*b=*a)!=’\0’) {a++,b++;} }A)将a所指字符串赋给b所指空间B)使指针b指向a所指字符串C)将a所指字符串和b所指字符串进行比较D)检查a和b所指字符串中是否有’\0’(33)设有以下函数void fun(int n,char * s) {……}则下面对函数指针的定义和赋值均是正确的是A)void (*pf)(); pf=fun;B)viod *pf(); pf=fun;C)void *pf(); *pf=fun;D)void (*pf)(int,char);pf=&fun;(34)有以下程序#includeint f(int n);main(){ int a=3,s;s=f(a);s=s+f(a);printf(“%d\n”,s);}int f(int n){ static int a=1;n+=a++;return n;}程序运行以后的输出结果是CA)7B)8C)9D)10(35)有以下程序#include#define f(x) x*x*xmain(){ int a=3,s,t;s=f(a+1);t=f((a+1));printf(“%d,%d\n’,s,t);}程序运行后的输出结果是AA)10,64B)10,10C)64,10D)64,64(36)下面结构体的定义语句中,错误的是A)struct ord {int x;int y;int z;}; struct ord a;B)struct ord {int x;int y;int z;} struct ord a;C)struct ord {int x;int y;int z;} a;D)struct {int x;int y;int z;} a;(37)设有定义:char *c;,以下选项中能够使字符型指针c正确指向一个字符串的是AA)char str[ ]=”string”;c=str;B)scanf(“%s”,c);C)c=getchar();D)*c=”string”;(38)有以下程序#include#includestruct A{ int a; char b[10]; double c;};struct A f(struct A t);main(){ struct A a={1001,”ZhangDa”,1098.0};a=f(a);jprintf(“%d,%s,%6.1f\n”,a.a,a.b,a.c);}struct A f(struct A t)( t.a=1002;strcpy(t.b,”ChangRong”);t.c=1202.0;return t; )程序运行后的输出结果是CA)1001,ZhangDa,1098.0B)1001,ZhangDa,1202.0C)1001,ChangRong,1098.0D)1001,ChangRong,1202.0(39)若有以下程序段int r=8;printf(“%d\n”,r>>1);输出结果是CA)16B)8C)4D)2(40)下列关于C语言文件的叙述中正确的是CA)文件由一系列数据依次排列组成,只能构成二进制文件B)文件由结构序列组成,可以构成二进制文件或文本文件C)文件由数据序列组成,可以构成二进制文件或文本文件D)文件由字符序列组成,其类型只能是文本文件二、填空题(每空2分,共30分)(1)某二叉树有5个度为2的结点以及3个度为1的结点,则该二叉树中共有 14 个结点。
2009春c试卷(带答案)
2009年春浙江省高等学校计算机等级考试试卷(二级C)说明:⑴ 考生应将所有试题的答案填写在答卷上。
其中试题一到试题六请在答卷上的各小题选项的对应位置上填“√”。
⑵ 请将你的准考证号的后五位填写在答卷右下角的指定位置内; ⑶ 考试时间为90分钟。
试题1(每小题3分,共12分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】输入一个正整数n ,计算下列算式的前n 项之和。
s =-+-+⋯1111357运行示例: Enter n: 2 Sum = 0.67【程序】#include <stdio.h> main( ){ int denominator, flag, i, n; double item, sum;printf("Enter n: "); scanf ("%d", &n); denominator = 1;(1) ;D sum = 0;for (i = 1; (2) D ; i++){ (3) ; C sum = sum + item; (4) ;Cdenominator = denominator + 2; }printf ("Sum = %.2f\n", sum); }【供选择的答案】 (1) A. flag = 0 B. flag = -1 C. flag = nD. flag = 1(2) A. i >= n B. i < nC. i > nD. i <= n(3) A. item = flag / denominatorB. item = 1 / denominatorC. item = flag * 1.0 / denominatorD. item = 1.0 / denominator(4) A. flag = -1 B. flag = 0C. flag = -flagD. flag = flag试题2(每小题3分,共12分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
2009年春浙江省高校计算机等级考试试卷 (二级C)及答案
2009年春浙江省高等学校试题1:输入一个正整数n ,计算下列式的前n 项之和。
⋯⋯+-+-=917151311s 运行示例:Enter n:2Sum=0.67#include <stdio.H>main(){ int denomiator,flag,i,n;double item,sum;printf("Enter n:");scanf("%d",&n);denomiator=1;(1) ;sum=0;for(i=1; (2) ;i++){(3) ;sum=sum+item;(4) ;denomiator=denomiator+2;}printf("Sum=%.2f\n",sum);}(1)A .flag=0 B .flag=-1;C .flag=nD .flag=1(2)A .i>=n B .i<nC .i>nD .i<=n(3)A .item=flag/ denomiator B .item=1/ denomiatorC .item=flag*1.0/ denomiatorD .item=1.0/ denomiator(4)A .flag==-1 B .flag=0C .flag=-flagD .flag=flag试题2(每小题3分,共12分)验证哥德巴赫猜想:任何一个大于6的偶数均可表示为两个素数之和。
例如6=3+3,8=3+5……,18=7+11。
将6-20之间的偶数表示成两个素数之和,打印时一行打印5组。
要求定义和调用函数prime(m)判断m 是否为素数,当m 为素数时返回1,否则返回0。
素数就是只能被1和自身整除的正整数,1不是素数,2是素数。
运行示例:6=3+3 8=3+5 10=3+7 12=5+7 14=3+1116=3+13 18=5+13 20=3+17【程序】#include <stdio.H>#include <math.h>int prime(int m){int i,n;if(m==1)return 0;n=sqrt(m);for(i=2;i<=n;i++)if(m%i==0)return 0;(5)}main(){ int count,i,number;count=0;for(number=6;number<=20;number=number+2){for(i=3;i<=number/2;i=i+2)if( (6)){printf("%d=%d+%d ",number,i,number-i);count++;if( (7))printf("\n");(8)}}}(5)A.; B.return 1;C.return 0 ; D.else return 1;(6)A.prime(i)!=0||prime(number-i)!=0B.prime(i)!=0&&prime(number-i)!=0C.prime(i)==0||prime(number-i)==0D.prime(i)==0||prime(number-i)==0(7)A.count%5==0 B.count%5!=0C.(count+1)%5==0 D.(count+1)%5!=0(8)A.break; B.else break;C.continue; D.;试题3 输入一行字符,统计并输出其中数字字符、英文字符和其它字符的个数。
二级C语言真题2009年03月
2009年3月全国计算机等级考试二级笔试试卷一、选择题下列各题A 、B 、C 、D)四个选项中,只有—个选项是正确的(1) 下列叙述中正确的是______。
A) 栈是“先进先出”的线性表B) 队列是“先进后出”的线性表C) 循环队列是非线性结构D) 有序线性表既可以采用顺序存储结构,也可以采用链式存储结构(2) 支持子程序调用的数据结构是______。
A) 栈B) 树C) 队列D) 二叉树(3) 某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是______。
A) 10 B) 8 C) 6 D) 4(4) 下列排序方法中,最坏情况下比较次数最少的是______。
A) 冒泡排序B) 简单选择排序C) 直接插入排序D) 堆排序(5) 软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。
下面属于应用软件的是______。
A) 编译程序B) 操作系统C) 教务管理系统D) 汇编程序(6) 下面叙述中错误的是______。
A) 软件测试的目的是发现错误并改正错误B) 对被调试的程序进行“错误定位”是程序调试的必要步骤C) 程序调试通常也称为DebugD) 软件测试应严格执行测试计划,排除测试的随意性(7) 耦合性和内聚性是对模块独立性度量的两个标准。
下列叙述中正确的是______。
A) 提高耦合性降低内聚性有利于提高模块的独立性B) 降低耦合性提高内聚性有利于提高模块的独立性C) 耦合性是指—个模块内部各个元素间彼此结合的紧密程度D) 内聚性是指模块间互相连接的紧密程度(8) 数据库应用系统中的核心问题是______。
A) 数据库设计B) 数据库系统设计C) 数据库维护D) 数据库管理员培训(9) 有两个关系R,S如下:由关系R通过运算得到关系S,则所使用的运算为______。
A) 选择B) 投影C) 插入D) 连接(10) 将E-R图转换为关系模式时,实体和联系都可以表示为______。
2009计算机二级c语言考试真题及答案
2009计算机二级c语言考试真题及答案一、选择题(每题1分,共40分)1. 在C语言中,以下哪个选项是合法的标识符?A. 2variableB. variable2C. _variableD. variable-2答案:C2. 若有定义:int a=3, b=4, c=5;,则表达式a+b+c的值是:A. 12B. 9C. 15D. 3答案:C3. C语言中,以下哪个选项是正确的整型常量?A. 0x12B. 0x12.0C. 0x12LD. 0x12.0L答案:A4. 在C语言中,以下哪个选项是正确的字符常量?A. 'ab'B. '65'C. '\n'D. "A"答案:C5. 若有定义:int a=5, b=10;,则执行语句a=b后,变量a的值是:A. 5B. 10C. 15D. 0答案:B6. 在C语言中,以下哪个选项是正确的字符串常量?A. "Hello, World!"B. 'Hello, World!'C. "Hello World!"D. 'Hello World!'答案:A7. 若有定义:int a=5;,则执行语句a+=3后,变量a的值是:A. 5B. 8C. 3D. 2答案:B8. 在C语言中,以下哪个选项是正确的数组定义?A. int a[5] = {1, 2, 3, 4, 5};B. int a[5] = {1, 2, 3};C. int a[] = {1, 2, 3, 4, 5};D. int a[5] = {1, 2, 3, 4};答案:C9. 若有定义:int a[5] = {1, 2, 3, 4, 5};,则执行语句a[2]=6后,数组元素a[2]的值是:A. 1B. 2C. 6D. 5答案:C10. 在C语言中,以下哪个选项是正确的函数定义?A. int max(int x, int y) { return x > y ? x : y; }B. int max(int x, int y) { if(x > y) return x; else returny; }C. int max(int x, int y) { return x > y ? y : x; }D. int max(int x, int y) { if(x > y) return y; else returnx; }答案:A二、填空题(每题2分,共20分)1. 在C语言中,若要定义一个整型变量x并初始化为10,应使用语句:________。
二级c语言历年真题及答案详解
2009年9月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间90分钟,满分100分)一、选择题((1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分,共70分)(1)下列数据结构中,属于非线性结构的是A)循环队列B) 带链队列C) 二叉树D)带链栈(2)下列数据结果中,能够按照“先进后出”原则存取数据的是A) 循环队列B) 栈C)队列D)二叉树(3)对于循环队列,下列叙述中正确的是A)队头指针是固定不变的B)队头指针一定大于队尾指针C)队头指针一定小于队尾指针D)队头指针可以大于队尾指针,也可以小于队尾指针(4)算法的空间复杂度是指A)算法在执行过程中所需要的计算机存储空间B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所需要的临时工作单元数(5)软件设计中划分模块的一个准则是A) 低内聚低耦合B) 高内聚低耦合C) 低内聚高耦合D) 高内聚高耦合(6)下列选项中不属于结构化程序设计原则的是A) 可封装D) 自顶向下C) 模块化D) 逐步求精(7)软件详细设计产生的图如下:该图是A) N-S图B) PAD图C) 程序流程图D) E-R图(8)数据库管理系统是A)操作系统的一部分B) 在操作系统支持下的系统软件C) 一种编译系统D) 一种操作系统(9)在E-R图中,用来表示实体联系的图形是A) 椭圆图B) 矩形C) 菱形D) 三角形(10)有三个关系R,S和T如下:其中关系T由关系R和S通过某种操作得到,该操作为A) 选择B) 投影C) 交D) 并(11)以下叙述中正确的是A)程序设计的任务就是编写程序代码并上机调试B)程序设计的任务就是确定所用数据结构C)程序设计的任务就是确定所用算法D)以上三种说法都不完整(12)以下选项中,能用作用户标识符的是A)voidB)8_8C)_0_D)unsigned(13)阅读以下程序#includemain(){ int case; float printF;printf(“请输入2个数:”);scanf(“%d %f”,&case,&pjrintF);printf(“%d %f\n”,case,printF);}该程序编译时产生错误,其出错原因是A)定义语句出错,case是关键字,不能用作用户自定义标识符 B)定义语句出错,printF不能用作用户自定义标识符C)定义语句无错,scanf不能作为输入函数使用D)定义语句无错,printf不能输出case的值(14)表达式:(int)((double)9/2)-(9)%2的值是A)0B)3C)4D)5(15)若有定义语句:int x=10;,则表达式x-=x+x的值为A)-20B)-10C)0D)10(16)有以下程序#includemain(){ int a=1,b=0;printf(“%d,”,b=a+b);printf(“%d\n”,a=2*b);}程序运行后的输出结果是A)0,0C)3,2D)1,217)设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是A)if(a>b) c=a,a=b,b=c;B)if(a>b) {c=a,a=b,b=c;}C)if(a>b) c=a;a=b;b=c;D)if(a>b) {c=a;a=b;b=c;}(18)有以下程序#includemain(){ int c=0,k;for (k=1;k<3;k++)switch (k){ default: c+=kcase 2: c++;break;case 4: c+=2;break;}printf(“%d\n”,c);}程序运行后的输出结果是A)3B)5C)7D)9(19)以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是A)if((a>b)&&(b>c)) k=1;else k=0;B)if((a>b)||(b>c) k=1;else k=0;C)if(a<=b) k=0;else if(b<=c) k=1;D)if(a>b) k=1;else if(b>c) k=1;else k=0;20)有以下程序#include{ char s[]={“012xy”};int i,n=0;for(i=0;s[i]!=0;i++)if(s[i]>=’a’&&s[i]<=’z’) n++;printf(“%d\n”,n);}程序运行后的输出结果是A)0B)2C)3D)5(21)有以下程序#includemain(){ int n=2,k=0;while(k++&&n++>2);printf(“%d %d\n”,k,n);}程序运行后的输出结果是A)0 2B)1 3C)5 7D)1 2(22)有以下定义语句,编译时会出现编译错误的是A)char a=’a’;B)char a=’\n’;C)char a=’aa’;D)char a=’\x2d’;(23)有以下程序#includemain(){ char c1,c2;c1=’A’+’8’-‘4’;c2=’A’+’8’-‘5’;printf(“%c,%d\n”,c1,c2);}已知字母A的ASCII码为65,程序运行后的输出结果是 A)E,68C)E,DD)输出无定值(24)有以下程序#includevoid fun(int p){ int d=2;p=d++; printf(“%d”,p);}main(){ int a=1;fun(a); printf(“%d\n”,a);}程序运行后的输出结果是A)32B)12C)21D)22(25)以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能#define MIN -2147483647int findmax (int x[],int n){ int i,max;for(i=0;i<N;I++)< p="" />{ max=MIN;if(maxreturn max;}造成错误的原因是A)定义语句int i,max;中max未赋初值B)赋值语句max=MIN;中,不应给max赋MIN值C)语句if(maxD)赋值语句max=MIN;放错了位置(26)有以下程序#includemain(){ int m=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf(“%d,%d,%d,%d\n”,m,n,*p,*q);}程序运行后的输出结果是A)1,2,1,2B)1,2,2,1C)2,1,2,1D)2,1,1,2(27)若有定义语句:int a[4][10],*p,*q[4];且0≤i<4,则错误的赋值是A)p=aB)q[i]=a[i]C)p=a[i]D)p=&a[2][1](28)有以下程序#include#includemain(){ char str[ ][20]={“One*World”, “One*Dream!”},*p=str[1];printf(“%d,”,strlen(p));printf(“%s\n”,p);}程序运行后的输出结果是A)9,One*WorldB)9,One*DreamC)10,One*DreamD)10,One*World(29)有以下程序#includemain(){ int a[ ]={2,3,5,4},i;for(i=0;i<4;i++)switch(i%2){ case 0:switch(a[i]%2){case 0:a[i]++;break;case 1:a[i]--;}break;case 1:a[i[=0;}for(i=0;i<4;i++) printf(“%d”,a[i]); printf(“\n”);}A)3 3 4 4B)2 0 5 0C)3 0 4 0D)0 3 0 4(30)有以下程序#include#includemain(){ char a[10]=”abcd”;printf(“%d,%d\n”,strlen(a),sizeof(a));}程序运行后的输出结果是A)7,4B)4,10C)8,8D)10,10(31)下面是有关C语言字符数组的描述,其中错误的是 A)不可以用赋值语句给字符数组名赋字符串B)可以用输入语句把字符串整体输入给字符数组C)字符数组中的内容不一定是字符串D)字符数组只能存放字符串(32)下列函数的功能是fun(char * a,char * b){ while((*b=*a)!=’\0’) {a++,b++;} }A)将a所指字符串赋给b所指空间B)使指针b指向a所指字符串C)将a所指字符串和b所指字符串进行比较D)检查a和b所指字符串中是否有’\0’(33)设有以下函数void fun(int n,char * s) {……}则下面对函数指针的定义和赋值均是正确的是A)void (*pf)(); pf=fun;B)viod *pf(); pf=fun;C)void *pf(); *pf=fun;D)void (*pf)(int,char);pf=&fun;(34)有以下程序#includeint f(int n);main(){ int a=3,s;s=f(a);s=s+f(a);printf(“%d\n”,s);}int f(int n){ static int a=1;n+=a++;return n;}程序运行以后的输出结果是A)7B)8C)9D)10(35)有以下程序#include#define f(x) x*x*xmain(){ int a=3,s,t;s=f(a+1);t=f((a+1));printf(“%d,%d\n’,s,t);}程序运行后的输出结果是A)10,64B)10,10C)64,10D)64,64(36)下面结构体的定义语句中,错误的是A)struct ord {int x;int y;int z;}; struct ord a;B)struct ord {int x;int y;int z;} struct ord a;C)struct ord {int x;int y;int z;} a;D)struct {int x;int y;int z;} a;(37)设有定义:char *c;,以下选项中能够使字符型指针c正确指向一个字符串的是A)char str[ ]=”string”;c=str;B)scanf(“%s”,c);C)c=getchar();D)*c=”string”;(38)有以下程序#include#includestruct A{ int a; char b[10]; double c;};struct A f(struct A t);main(){ struct A a={1001,”ZhangDa”,1098.0};a=f(a);jprintf(“%d,%s,%6.1f\n”,a.a,a.b,a.c);}struct A f(struct A t)( t.a=1002;strcpy(t.b,”ChangRong”);t.c=1202.0;return t; )程序运行后的输出结果是A)1001,ZhangDa,1098.0B)1001,ZhangDa,1202.0C)1001,ChangRong,1098.0D)1001,ChangRong,1202.0(39)若有以下程序段int r=8;printf(“%d\n”,r>>1);输出结果是A)16B)8C)4D)2(40)下列关于C语言文件的叙述中正确的是A)文件由一系列数据依次排列组成,只能构成二进制文件B)文件由结构序列组成,可以构成二进制文件或文本文件C)文件由数据序列组成,可以构成二进制文件或文本文件D)文件由字符序列组成,其类型只能是文本文件二、填空题(每空2分,共30分)(1)某二叉树有5个度为2的结点以及3个度为1的结点,则该二叉树中共有【1】个结点。
09年春浙江省高校VB二级计算机等级考试真题试卷(含答案)
2009年春浙江省高等学校【程序说明】输入n 后,计算并显示下列表达式的值。
n 14131211+++++ 运行时初始界面如下图左所示,输入10并按回车键后的界面如下图中所示(输入数若小于1则清空文本框,需重新输入),按“计算”按钮后的界面如下图右所示。
【程序】Dim n As IntegerPrivate Sub Form_Load()Command1. Enabled=False 1End SubPrivate Sub Text1_KeyPress 2 (K As Integer)If K <> 13 Then Exit Sub n=Text1.Text 3If n > 0 ThenCommand1.Enabled = TrueText1.Enabled = FalseElseText1.Text = ""End IfEnd SubPrivate Sub Command1_Click()Dim y As Single, i As IntegerFor i = 1 To ny=y+1/i (4)Next iLabel3.Caption = yCommand1.Enabled = FalseText1.Enabled = TrueText1.Text = " "Text1.SetFocusEnd Sub【程序说明】运行时输入10个数后,输出其中较小的5个数。
【程序】Private Sub Command1_Click()Dim a(10) As Single, t As Single, i As Byte, j As Byte, k As ByteFor i = 1 To 10a(i) = InputBox("a(" & i & ")=" (5))Next iFor i = 1 To 9k=i (6)For j = i + 1 To 10If a(j)<a(k) (7)Then k = jNext jt = a(i): a(i) = a(k): a(k) = tNext iFor i = 1 To 5 (8)Print a(i)Next iEnd Sub【(每小题3分,共12分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
2009年9月二级C真题(绝对无错误)
2009年9月全国计算机等级考试二级C语言真题及答案(文字版)2009年9月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间90分钟,满分100分)一、选择题((1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分,共70分)(1)下列数据结构中,属于非线性结构的是A)循环队列B) 带链队列C) 二叉树D)带链栈(2)下列数据结果中,能够按照“先进后出”原则存取数据的是A) 循环队列B) 栈C)队列D)二叉树(3)对于循环队列,下列叙述中正确的是A)队头指针是固定不变的B)队头指针一定大于队尾指针C)队头指针一定小于队尾指针D)队头指针可以大于队尾指针,也可以小于队尾指针(4)算法的空间复杂度是指A)算法在执行过程中所需要的计算机存储空间B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所需要的临时工作单元数(5)软件设计中划分模块的一个准则是A) 低内聚低耦合B) 高内聚低耦合C) 低内聚高耦合D) 高内聚高耦合(6)下列选项中不属于结构化程序设计原则的是A) 可封装D) 自顶向下C) 模块化D) 逐步求精(7)软件详细设计产生的图如下:该图是A) N-S图B) PAD图C) 程序流程图D) E-R图(8)数据库管理系统是A)操作系统的一部分B) 在操作系统支持下的系统软件C) 一种编译系统D) 一种操作系统(9)在E-R图中,用来表示实体联系的图形是A) 椭圆图B) 矩形C) 菱形D) 三角形(10)有三个关系R,S和T如下:其中关系T由关系R和S通过某种操作得到,该操作为A) 选择B) 投影C) 交D) 并(11)以下叙述中正确的是A)程序设计的任务就是编写程序代码并上机调试B)程序设计的任务就是确定所用数据结构C)程序设计的任务就是确定所用算法D)以上三种说法都不完整(12)以下选项中,能用作用户标识符的是A)voidB)8_8C)_0_D)unsigned(13)阅读以下程序#include <stdio.h>main(){ int case; float printF;printf(“请输入2个数:”);scanf(“%d %f”,&case,&pjrintF);printf(“%d %f\n”,case,printF);}该程序编译时产生错误,其出错原因是A)定义语句出错,case是关键字,不能用作用户自定义标识符B)定义语句出错,printF不能用作用户自定义标识符C)定义语句无错,scanf不能作为输入函数使用D)定义语句无错,printf不能输出case的值(14)表达式:(int)((double)9/2)-(9)%2的值是A)0B)3C)4D)5(15)若有定义语句:int x=10;,则表达式x-=x+x的值为A)-20B)-10C)0D)10(16)有以下程序#include <stdio.h>main(){ int a=1,b=0;printf(“%d,”,b=a+b);printf(“%d\n”,a=2*b);}程序运行后的输出结果是A)0,0 B)1,0 C)3,2 D)1,217)设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是A)if(a>b) c=a,a=b,b=c;B)if(a>b) {c=a,a=b,b=c;}C)if(a>b) c=a;a=b;b=c;D)if(a>b) {c=a;a=b;b=c;}(18)有以下程序#include <stdio.h>main(){ int c=0,k;for (k=1;k<3;k++)switch (k){ default: c+=kcase 2: c++;break;case 4: c+=2;break;}printf(“%d\n”,c);}程序运行后的输出结果是A)3 B)5 C)7 D)9(19)以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是A)if((a>b)&&(b>c)) k=1;else k=0;B)if((a>b)||(b>c) k=1;else k=0;C)if(a<=b) k=0;else if(b<=c) k=1;D)if(a>b) k=1;else if(b>c) k=1;else k=0;20)有以下程序#include <stdio.h>main(){ char s[]={“012xy”};int i,n=0;for(i=0;s[i]!=0;i++)if(s[i]>=‟a‟&&s[i]<=‟z‟) n++;printf(“%d\n”,n);}程序运行后的输出结果是A)0B)2C)3D)5(21)有以下程序#include <stdio.h>main(){ int n=2,k=0;while(k++&&n++>2);printf(“%d %d\n”,k,n);}程序运行后的输出结果是A)0 2 B)1 3 C)5 7 D)1 2(22)有以下定义语句,编译时会出现编译错误的是A)char a=’a’; B)char a=’\n’;C)char a=’aa’; D)char a=’\x2d’;(23)有以下程序#include <stdio.h>main(){ char c1,c2;c1=‟A‟+‟8‟-…4‟;c2=‟A‟+‟8‟-…5‟;printf(“%c,%d\n”,c1,c2);}已知字母A的ASCII码为65,程序运行后的输出结果是A)E,68 B)D,69 C)E,D D)输出无定值(24)有以下程序#include <stdio.h>void fun(int p){ int d=2;p=d++; printf(“%d”,p);}main(){ int a=1;fun(a); printf(“%d\n”,a);}程序运行后的输出结果是A)32 B)12 C)21 D)22(25)以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能#define MIN -2147483647int findmax (int x[],int n){ int i,max;for(i=0;i<n;i++){ max=MIN;if(max<x[i]) max=x[i];}return max;}造成错误的原因是A)定义语句int i,max;中max未赋初值B)赋值语句max=MIN;中,不应给max赋MIN值C)语句if(max<x[i]) max=x[i];中判断条件设置错误D)赋值语句max=MIN;放错了位置(26)有以下程序#include <stdio.h>main(){ int m=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf(“%d,%d,%d,%d\n”,m,n,*p,*q);}程序运行后的输出结果是A)1,2,1,2 B)1,2,2,1 C)2,1,2,1 D)2,1,1,2(27)若有定义语句:int a[4][10],*p,*q[4];且0≤i<4,则错误的赋值是A)p=aB)q[i]=a[i]C)p=a[i]D)p=&a[2][1](28)有以下程序#include <stdio.h>#include<string.h>main(){ char str[ ][20]={“One*World”, “One*Dream!”},*p=str[1];printf(“%d,”,strlen(p));printf(“%s\n”,p);}程序运行后的输出结果是A)9,One*WorldB)9,One*DreamC)10,One*DreamD)10,One*World(29)有以下程序#include <stdio.h>main(){ int a[ ]={2,3,5,4},i;for(i=0;i<4;i++)switch(i%2){ case 0:switch(a[i]%2){case 0:a[i]++;break;case 1:a[i]--;}break;case 1:a[i]=0;}for(i=0;i<4;i++) printf(“%d”,a[i]); printf(“\n”);}A)3 3 4 4B)2 0 5 0C)3 0 4 0D)0 3 0 4(30)有以下程序#include <stdio.h>#include<string.h>main(){ char a[10]=”abcd”;printf(“%d,%d\n”,strlen(a),sizeof(a));}程序运行后的输出结果是A)7,4B)4,10C)8,8D)10,10(31)下面是有关C语言字符数组的描述,其中错误的是A)不可以用赋值语句给字符数组名赋字符串B)可以用输入语句把字符串整体输入给字符数组C)字符数组中的内容不一定是字符串D)字符数组只能存放字符串(32)下列函数的功能是fun(char * a,char * b){ while((*b=*a)!=‟\0‟) {a++,b++;} }A)将a所指字符串赋给b所指空间B)使指针b指向a所指字符串C)将a所指字符串和b所指字符串进行比较D)检查a和b所指字符串中是否有’\0’(33)设有以下函数void fun(int n,char * s) {……}则下面对函数指针的定义和赋值均是正确的是A)void (*pf)(); pf=fun;B)viod *pf(); pf=fun;C)void *pf(); *pf=fun;D)void (*pf)(int,char);pf=&fun;(34)有以下程序#include <stdio.h>int f(int n);main(){ int a=3,s;s=f(a);s=s+f(a);printf(“%d\n”,s);}int f(int n){ static int a=1;n+=a++;return n;}程序运行以后的输出结果是A)7B)8C)9D)10(35)有以下程序#include <stdio.h>#define f(x) x*x*xmain(){ int a=3,s,t;s=f(a+1);t=f((a+1));printf(“%d,%d\n‟,s,t);}程序运行后的输出结果是A)10,64B)10,10C)64,10D)64,64(36)下面结构体的定义语句中,错误的是A)struct ord {int x;int y;int z;}; struct ord a;B)struct ord {int x;int y;int z;} struct ord a;C)struct ord {int x;int y;int z;} a;D)struct {int x;int y;int z;} a;(37)设有定义:char *c;,以下选项中能够使字符型指针c正确指向一个字符串的是A)char str[ ]=”string”;c=str;B)scanf(“%s”,c);C)c=getchar();D)*c=”string”;(38)有以下程序#include <stdio.h>#include<string.h>struct A{ int a; char b[10]; double c;};struct A f(struct A t);main(){ struct A a={1001,”ZhangDa”,1098.0};a=f(a);jprintf(“%d,%s,%6.1f\n”,a.a,a.b,a.c);}struct A f(struct A t)( t.a=1002;strcpy(t.b,”ChangRong”);t.c=1202.0;return t; )程序运行后的输出结果是A)1001,ZhangDa,1098.0B)1001,ZhangDa,1202.0C)1001,ChangRong,1098.0D)1001,ChangRong,1202.0(39)若有以下程序段int r=8;printf(“%d\n”,r>>1);输出结果是A)16B)8C)4D)2(40)下列关于C语言文件的叙述中正确的是A)文件由一系列数据依次排列组成,只能构成二进制文件B)文件由结构序列组成,可以构成二进制文件或文本文件C)文件由数据序列组成,可以构成二进制文件或文本文件D)文件由字符序列组成,其类型只能是文本文件二、填空题(每空2分,共30分)(1)某二叉树有5个度为2的结点以及3个度为1的结点,则该二叉树中共有【1】个结点。
[等考之家][NCREHome]2009年3月全国计算机等级考试二级C语言程序设计真题&参考答案
C)1,3,3
D)3,2,1
C)**
D)*
(21)有以下程序: #include <stdio.h> main() { char *s={“ABC”}; do { printf(“%d”,*s%10); s++; } while(*s) ; } 注意:字母 A 的 ASCII 码值为 65。程序运行后的输出结果是( ) 。 A)5670 B)656667 C)567
printf(“%d\n”, x); } 程序运行时,输入的值在哪个范围才会有输出结果( ) 。 A)不等于 10 的整数 C)大于 3 或等于 10 的整数 B)大于 3 且不等 10 的整数 D)小于 3 的整数 (19)有以下程序: #include <stdio.h> main() { int a=1,b=2,c=3,d=0; if(a==1&&b++==2) if(b!=2 || c--!=3) printf(“%d,%d,%d\n”,a,b,c); else printf(“%d,%d,%d\n”,a,b,c); else printf(“%d,%d,%d\n”,a,b,c); } 程序运行后的输出结果是( ) 。 A)1,2,3 B)1,3,2 (20)以下程序段中的变量已正确定义: for(i=0; i<4; i++, i++) for(k=l; k<3; k++); printf(“*”); 程序段的输出结果是( ) 。 A)******** B)****
* * * 版权所有,任何单位或个人不得保留、复制和出版,违者必究
***
教育部考试中心 二00九年二月制
09-10年 浙江省计算机等级二级C语言 笔试试题
2009年秋浙江省高等学校计算机等级考试试卷(二级C )试题1(每小题3分,共12分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】计算并输出下列式值,要求精确到最后一项的绝对值小于10-3(保留4伴小数)。
⋯⋯+-+-=13110171411s 运行示例:sum=-0.8361【程序】#include <stdio.h>#include <math.h>main(){int denomintor=1,flag=1;double item,sum=0;(1)while( (2) ){(3)denomintor=denomintor+3;flag=-flag;}printf("sum= (4) \n",sum);}【供选择的答案】(1)A .item =0; B .f item =0.0001;C .;D .item=2; //答案D(2)A .fabs(item)>=1E-3 B .fabs(item)<1E-3C .fabs(item)>=0.0001D .fabs(item)<0.001 //答案A(3)A .sum=sum+item;item=flag*1.0/denominator;B .sum=sum+ flag*1.0/denominator;C .item=flag*1.0/denominator;sum=sum+item;D . item=item+flag*1.0/denominator; //答案C(4)A .%.0f B .%.4fC .%fD .%4.f //答案B试题2(每小题3分,共12分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】输出1到100之间的所有完数,要求定义和调用函数is(n)判断n 是否为完数,若n 为完数返回1,否则返回0。
2009年9月全国计算机等级考试二级C语言笔试试题(含参考答案)
2009年9月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间90分钟,满分100分)一、选择题((1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分,共70分)下列各题A)、B)、C)、D)四个选项中,只有一个只有一个选项是正确的。
请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。
(1)下列数据结构中,属于非线性结构的是A)循环队列B)带链队列C)二叉树D)带链栈(2)下列数据结构中,能够按照“先进后出”原则存取数据的是A)循环队列 B)栈C)队列D)二叉树(3)对于循环队列,下列叙述中正确的是A)队头指针是固定不变的B)队头指针一定大于队尾指针C)队头指针一定小于队尾指针D)队头指针可以大于队尾指针,也可以小于队尾指针(4)算法的空间复杂度是指A)算法在执行过程中所需要的计算机存储空间B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所需要的临时工作单元数(5)软件设计中划分模块的一个准则是A)低内聚低耦合B)高内聚低耦合C)低内聚高耦合D)高内聚高耦合(6)下列选项中不属于结构化程序设计原则的是A)可封装 B)自顶向下C)模块化 D)逐步求精(7)软件详细设计产生的图如下:该图是A)N-S图B)PAD图C)程序流程图 D)E-R图(8)数据库管理系统是A)操作系统的一部分B)在操作系统支持下的系统软件C)一种编译系统D)一种操作系统(9)在E-R图中,用来表示实体联系的图形是A)椭圆形B)矩形C)菱形D)三角形(10)有三个关系R,S和T如下:T其中关系T由关系R和S通过某种操作得到,该操作为A)选择B)投影C)交D)并(11)以下叙述中正确的是A)程序设计的任务就是编写程序代码并上机调试B)程序设计的任务就是确定所用数据结构C)程序设计的任务就是确定所用算法D)以上三种说法都不完整(12)以下选项中,能用作用户标识符的是A)void B)8_8 C)_0_ D)unsigned(13)阅读以下程序#include <stdio.h>main(){ int case; float printF;printf("请输入2个数:");scanf("%d %f",&case,&printF);printf("%d %f\n",case,printF);}该程序编译时产生错误,其出错原因是A)定义语句出错,case是关键字,不能用作用户自定义标识符B)定义语句出错,printF不能用作用户自定义标识符C)定义语句无错,scanf不能作为输入函数使用D)定义语句无错,printf不能输出case的值(14)表达式:(int)((double)9/2)-(9)%2的值是A)0 B)3 C)4 D)5(15)若有定义语句:int x=10;,则表达式x-=x+x的值为A)-20 B)-10 C)0 D)10(16)有以下程序#include <stdio.h>main(){ int a=1,b=0;printf("%d,",b=a+b);printf("%d\n",a=2*b);}程序运行后的输出结果是A)0,0 B)1,0 C)3,2 D)1,217)设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是A)if(a>b) c=a,a=b,b=c; B)if(a>b) {c=a,a=b,b=c;}C)if(a>b) c=a;a=b;b=c; D)if(a>b) {c=a;a=b;b=c;}(18)有以下程序#include <stdio.h>main(){ int c=0,k;for (k=1;k<3;k++)switch (k){ default: c+=k;case 2: c++;break;case 4: c+=2;break;}printf("%d\n",c);}程序运行后的输出结果是A)3 B)5 C)7 D)9(19)以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是A)if((a>b)&&(b>c)) k=1; B)if((a>b)||(b>c) k=1;else k=0; else k=0;C)if(a<=b) k=0; D)if(a>b) k=1;else if(b<=c) k=1; else if(b>c) k=1;else k=0;(20)有以下程序#include <stdio.h>main(){ char s[]={"012xy"};int i,n=0;for(i=0;s[i]!=0;i++)if(s[i]>='a' &&s[i]<='z') n++;printf("%d\n",n);}程序运行后的输出结果是A)0 B)2 C)3 D)5(21)有以下程序#include <stdio.h>main(){ int n=2,k=0;while(k++&&n++>2);2009年9月全国计算机等级考试二级C语言程序设计笔试试卷第3页(共9页)printf("%d %d\n",k,n);}程序运行后的输出结果是A)0 2 B)1 3 C)5 7 D)1 2(22)有以下定义语句,编译时会出现编译错误的是A)char a='a'; B)char a='\n'; C)char a='aa'; D)char a='\x2d';(23)有以下程序#include <stdio.h>main(){ char c1,c2;c1='A'+'8'-'4';c2='A'+'8'-'5';printf("%c,%d\n",c1,c2);}已知字母A的ASCII码为65,程序运行后的输出结果是A)E,68 B)D,69 C)E,D D)输出无定值(24)有以下程序#include <stdio.h>void fun(int p){ int d=2;p=d++; printf("%d",p);}main(){ int a=1;fun(a); printf("%d\n",a);}程序运行后的输出结果是A)32 B)12 C)21 D)22(25)以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能#define MIN -int findmax (int x[],int n){ int i,max;for(i=0;i<n;i++){ max=MIN;if(max<x[i]) max=x[i];}return max;}造成错误的原因是A)定义语句int i,max;中max未赋初值B)赋值语句max=MIN;中,不应给max赋MIN值C)语句if(max<x[i]) max=x[i];中判断条件设置错误D)赋值语句max=MIN;放错了位置(26)有以下程序#include <stdio.h>main(){ int m=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf("%d,%d,%d,%d\n",m,n,*p,*q);}程序运行后的输出结果是A)1,2,1,2 B)1,2,2,1 C)2,1,2,1 D)2,1,1,2(27)若有定义语句:int a[4][10],*p,*q[4];且0≤i<4,则错误的赋值是A)p=a B)q[i]=a[i] C)p=a[i] D)p=&a[2][1](28)有以下程序#include <stdio.h>#include <string.h>main(){ char str[ ][20]={"One*World","One*Dream!"},*p=str[1];printf("%d,",strlen(p));printf("%s\n",p);}程序运行后的输出结果是A)9,One*World B)9,One*Dream! C)10,One*Dream! D)10,One*World(29)有以下程序#include <stdio.h>main(){ int a[ ]={2,3,5,4},i;for(i=0;i<4;i++)switch(i%2){ case 0:switch(a[i]%2){case 0:a[i]++;break;case 1:a[i]--;}break;case 1:a[i]=0;}for(i=0;i<4;i++) printf("%d",a[i]); printf("\n");}程序运行后的输出结果是A)3 3 4 4 B)2 0 5 0 C)3 0 4 0 D)0 3 0 4(30)有以下程序#include <stdio.h>#include <string.h>main(){ char a[10]="abcd";printf("%d,%d\n",strlen(a),sizeof(a));}2009年9月全国计算机等级考试二级C语言程序设计笔试试卷第5页(共9页)程序运行后的输出结果是A)7,4 B)4,10 C)8,8 D)10,10(31)下面是有关C语言字符数组的描述,其中错误的是A)不可以用赋值语句给字符数组名赋字符串B)可以用输入语句把字符串整体输入给字符数组C)字符数组中的内容不一定是字符串D)字符数组只能存放字符串(32)下列函数的功能是fun(char *a,char *b){ while((*b=*a)!='\0') {a++,b++;} }A)将a所指字符串赋给b所指空间B)使指针b指向a所指字符串C)将a所指字符串和b所指字符串进行比较D)检查a和b所指字符串中是否有'\0'(33)设有以下函数void fun(int n,char * s) {……}则下面对函数指针的定义和赋值均是正确的是A)void (*pf)(); pf=fun; B)viod *pf(); pf=fun;C)void *pf(); *pf=fun; D)void (*pf)(int,char);pf=&fun;34)有以下程序#include <stdio.h>int f(int n);main(){ int a=3,s;s=f(a);s=s+f(a);printf("%d\n",s);}int f(int n){ static int a=1;n+=a++;return n;}程序运行以后的输出结果是A)7 B)8 C)9 D)10(35)有以下程序#include <stdio.h>#define f(x) x*x*xmain(){ int a=3,s,t;s=f(a+1);t=f((a+1));printf("%d,%d\n",s,t);}程序运行后的输出结果是A)10,64 B)10,10 C)64,10 D)64,64(36)下面结构体的定义语句中,错误的是A)struct ord {int x;int y;int z;}; struct ord a;B)struct ord {int x;int y;int z;} struct ord a;C)struct ord {int x;int y;int z;} a;D)struct {int x;int y;int z;} a;(37)设有定义:char *c;,以下选项中能够使字符型指针c正确指向一个字符串的是A)char str[ ]="string";c=str; B)scanf("%s",c);C)c=getchar(); D)*c="string";(38)有以下程序#include <stdio.h>#include <string.h>struct A{ int a; char b[10]; double c;};struct A f(struct A t);main(){ struct A a={1001,"ZhangDa",1098.0};a=f(a);printf("%d,%s,%6.1f\n",a.a,a.b,a.c);}struct A f(struct A t){ t.a=1002;strcpy(t.b,"ChangRong");t.c=1202.0;return t;}程序运行后的输出结果是A)1001,ZhangDa,1098.0 B)1002,ZhangDa,1202.0C)1001,ChangRong,1098.0 D)1002,ChangRong,1202.0(39)若有以下程序段int r=8;printf("%d\n",r>>1);输出结果是A)16 B)8 C)4 D)2(40)下列关于C语言文件的叙述中正确的是A)文件由一系列数据依次排列组成,只能构成二进制文件B)文件由结构序列组成,可以构成二进制文件或文本文件C)文件由数据序列组成,可以构成二进制文件或文本文件D)文件由字符序列组成,其类型只能是文本文件二、填空题(每空2分,共30分)请将每空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。
2009年9月全国计算机等级考试二级C语言笔试真题及参考答案
2009年9月二級C語言筆試真題及答案一、選擇題(每題2分,共計70分)(1)下列數據結構中,屬於非線性結構的是A)迴圈佇列 B)帶鏈佇列 C)二叉樹 D)帶鏈棧(2)下列數據結構中,能夠按照“先進後出”原則存取數據的是A)迴圈佇列 B)棧 C)佇列 D)二叉樹(3)對於迴圈佇列,下列敘述中正確的是A)隊頭指針是固定不變的 B)隊頭指針一定大於隊尾指針C)隊頭指針一定小於隊尾指針 D)隊頭指針可以大於隊尾指針,也可以小於隊尾指針(4)演算法的空間複雜度是指A)演算法在執行過程中所需要的電腦存儲空間 B)演算法所處理的數據量C)演算法程式中的語句或指令條數 D)演算法在執行過程中所需要的臨時工作單元數(5)件設計中劃分模組的一個準則是A)低內聚低耦合 B)高內聚低耦合 C)低內聚高耦合 D)高內聚高耦合(6)下列選項中不屬於結構化程式設計原則的是A)可封裝 B)自頂向下 C)模組化 D)逐步求精(7)軟體詳細設計產生的圖如下:該圖是A)N-S圖 B)PAD圖 C)程式流程圖 D)E-R圖(8)資料庫管理系統是A)操作系統的一部分 B)在操作系統支持下的系統軟體C)一種編譯系統 D)一種操作系統(9)在E-R圖中,用來表示實體聯繫的圖形是A)橢圓形 B)矩形 C)菱形 D)三角形(10)有三個關係R,S,和T如下: 其中關係T由關係R和S通過某種操作得到,該操作為A)選擇 B)投影 C)交 D)並(11)以下敘述中正確的是A)程式設計的任務就是編寫程式代碼並上機調試B)程式設計的任務就是確定所用的數據結構C)程式設計的任務就是確定所用演算法D)以上三種說法都不完整12.(12)以下選項中,能用作用戶識別字的是A)void B)8_8 C)_0_ D)unsigned(13)閱讀以下程式#includemain(){ int case; float printF;printf("請輸入2個數:");scanf("%d %f",&case,&printF);printf("%d %f\n",case,printf);}該程式在編譯時產生錯誤,其出錯原因是A)定義語句出錯,case是關鍵字,不能用作用戶自定義識別字B)定義語句出錯,printF不能用作用戶自定義識別字C)定義語句無錯,scanf不能作為輸入函數使用D)定義語句無措,printf不能輸出case的值(14)運算式:(int)((double)9/2)-(9)%2的值是A)0 B)3 C)4 D)5(15)若有定義語句: int x=10;,則運算式x-=x+x的值為A)-20 B)-10 C)0 D)10(16)有以下程式#includemain(){ int a=1,b=0;printf("%d,",b=a+b);printf("%d",a=2*b);}程式運行後的輸出結果是A)0,0 B)1,0 C)3,2 D)1,2(17)設有定義: int a=1,b=2,c=3;,以下語句中執行效果與其它三個不同的是A)if(a>b) c=a,a=b,b=c; B)if(a>b){c=a,a=b,b=c;}C)if(a>b) c=a;a=b;b=c; D)if(a>b){c=a;a=b;b=c;}(18)有以下程式#includemain(){ int c=0,k;for(k=1;k<3;k++)switch(k){ default:c+=k;case 2:c++;break;case 4:c+=2;break;}printf("%d\n",c);}程式運行後的輸出結果是A)3 B)5 C)7 D)919.(19)以下程式段中,與語句: k=a>b?(b>c?1:0):0;功能相同的是A)if((a>b)&&(b>c)) k=1; else k=0;B)if((a>b)||(b>c)) k=1; else k=0;C)if(a<=b)k=0; else if(b<=c) k=1;D) if(a>b) k=1; else if(b>c) k=1; else k=0;(20)有以下程式#includemain(){ char s[]={"012xy"};int i,n=0;for(i=0;s[i]!=0;i++)if(s[i]>'a'&&s[i]<='z') n++;printf("%d\n",n);}程式運行後的輸出結果是A)0 B)2 C)3 D)5(21)有以下程式#includemain(){ int n=2,k=0;while(k++&&n++>2);printf("%d %d\n",k,n);}程式運行後的輸出結果是A)0 2 B)1 3 C)5 7 D)1 2(22)有以下定義語句,編譯時會出現編譯錯誤的是A) char a='a'; B) char a='\n';C) char a='aa'; D) char a='\x2d';(23)有以下程式#includemain(){ char c1,c2;c1='A'+'8'-'4';c2='A'+'8'-'5';printf("%c,%d\n",c1,c2);}已知字母A的ASCII碼為65,程式運行後的輸出結果是A)E,68 B)D,69 C)E,D D)輸出無定值(24)有以下程式#includevoid fun(int p){ int d=2;p=d++;printf("%d",p);}main(){ int a=1;fun(a);printf("%d\n",a);}程式運行後的輸出結果是A)32 B)12 C)21 D)22(25)以下函數findmax擬實現在數組中查找最大值並作為函數值返回, 但程式中有錯導致不能實現預定功能#define MIN -2147463647int findmax(int x[],int n){ int i,max;for(i=0;i<n;i++){ max=MIN;if(max<x[i]) max=x[i];}return max;}造成錯誤的原因是A)定義語句int i,max中max未賦值B)賦值語句max=MIN;中,不應該給max賦MIN值C)語句if(max<x[i]) max=x[i];中判斷條件設置錯誤D)賦值語句max=MIN;放錯了位置(26)有以下程式#includemain(){ int m=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf("%d,%d,%d,%d\n",m,n,*p,*q);}程式運行後的輸出結果是A)1,2,1,2 B)1,2,2,1 C)2,1,2,1 D)2,1,1,2(27)若有定義語句: int a[4][10],*p,*q[4];且0<=i<4,則錯誤的賦值是A)p=a B)q[i]=a[i] C)p=a[i] D)p=&a[2][1](28)有以下程式#include#include。
2009年9月计算机等级考试二级C语言笔试试题及答案解析
2009年9月计算机等级考试二级C语言笔试试题及答案解析2009年9月全国计算机等级考试二级C语言笔试试题一、选择题((1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分,共70分)(1)下列数据结构中,属于非线性结构的是(C)A)循环队列 B) 带链队列 C) 二叉树 D)带链栈(2)下列数据结果中,能够按照“先进后出”原则存取数据的是(B)A) 循环队列 B) 栈 C)队列 D)二叉树(3)对于循环队列,下列叙述中正确的是(D)A)队头指针是固定不变的B)队头指针一定大于队尾指针C)队头指针一定小于队尾指针D)队头指针可以大于队尾指针,也可以小于队尾指针(4)算法的空间复杂度是指(A)A)算法在执行过程中所需要的计算机存储空间B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所需要的临时工作单元数(5)软件设计中划分模块的一个准则是(B)A) 低内聚低耦合B) 高内聚低耦合C) 低内聚高耦合D) 高内聚高耦合(6)下列选项中不属于结构化程序设计原则的是(A)A) 可封装D) 自顶向下C) 模块化D) 逐步求精(7)软件详细设计产生的图如下:该图是(C)A) N-S图B) PAD图C) 程序流程图D) E-R图(8)数据库管理系统是(B)A)操作系统的一部分B) 在操作系统支持下的系统软件C) 一种编译系统D) 一种操作系统(9)在E-R图中,用来表示实体联系的图形是(C)A) 椭圆图B) 矩形C) 菱形D) 三角形(10)有三个关系R,S和T如下:其中关系T由关系R和S通过某种操作得到,该操作为(D)A) 选择B) 投影C) 交D) 并(11)以下叙述中正确的是A)程序设计的任务就是编写程序代码并上机调试B)程序设计的任务就是确定所用数据结构C)程序设计的任务就是确定所用算法D)以上三种说法都不完整解析:选D。
原文见高教版二级教程P2,程序设计的任务包括A、B、c及相关文档。
全国计算机等级考试二级C语言真题2009年3月
全国计算机等级考试二级C语言真题2009年3月(总分:110.00,做题时间:90分钟)一、{{B}}选择题{{/B}}(总题数:40,分数:80.00)1.下列叙述中正确的是______。
(分数:2.00)A.栈是“先进先出”的线性表B.队列是“先进后出”的线性表C.循环队列是非线性结构D.有序线性表既可以采用顺序存储结构,也可以采用链式存储结构√解析:[知识点] 线性表及其顺序存储结构、栈和队列的特点、线性链表的概念 [评析] 栈是—种特殊的线性表,这种线性表只能在固定的—端进行插入和删除操作,允许插入和删除的—端称为栈顶,另—端称为栈底。
—个新元素只能从栈顶一端进入,删除时,只能删除栈项的元素,即刚刚被插入的元素。
所以栈又称“后进先出”表,所以选项A是错误的。
队列可看作是插入在—端进行,删除在另—端进行的线性表,允许插入的—端称为队尾,允许删除的—端称为队头。
在队列中,只能删除队头元素,队列的最后—个元素—定是最新入队的元素。
因此队列又称“先进先出”表,所以选项B是错误的,循环队队列是将队列存储空间的最后—个位置绕到第—个位置,形成逻辑上的环状空间,供队列循环使用。
它的逻辑结构仍然是线性结构,所以选项C是错误的。
有序线性表既可以采用顺序存储结构,也可以采用链式存储结构,所以选项D是正确的。
2.支持子程序调用的数据结构是______。
(分数:2.00)A.栈B.树√C.队列D.二叉树解析:[知识点] 树、二叉树的结构特点 [评析] 子程序调用是—种层次关系,子程序调用功能模块,且调用功能模块的个数也不确定,可以是—个,也可以是多个。
选项A、C中元素之间是—种前后件关系,前后元素之间没有层次之分,每个结点有—个前件也只有—w个后件。
二叉树是一种很有用的非线性结构,它不同于树形结构,具有以下两个特点:1)非空二叉树只有一个根结点;2)每一个结点最多有两棵子树,且分别称为该点的左子树与右子树。
所以选项D规定每个结点只能有两个后件。
二级VISUAL BASIC机试真题2009年03月
二级VISUAL BASIC机试真题2009年03月1 基本操作题请根据以下各个小题的要求设计Visual Basic应用程序(包括界面和代码)。
1、在窗体上拖拉出一个文本框,名称为Txt1,Text属性为空白。
再画一个列表框,名称为Lst1,通过属性窗口向列表框中添加4个项目,分别为“aaaa”、“bbbb”、“cccc”和“dddd”(如下图所示)。
编写适当的事件过程,使程序运行后,在文本框中输入一个字符串,如果双击列表框中的任一项,则把文本框中的字符串添加到列表框中。
程序运行时的窗体界面如下图所示。
注意:存盘时必须存放在考生文件夹下,工程文件名为sjt1.vbp,窗体文件名为sjt1.frm。
2、在名称为Form1的窗体上建立两个名称分别为Command1和Command2.标题分别为“上午”和“下午”的命令按钮。
编写适当的事件过程,要求程序运行后,如果单击“上午”命令按钮,在窗体上显示“上午9:00—12:00”;如果单击“下午”命令按钮,在窗体上显示“下午12:00—18:00”。
程序中不能使用任何变量,直接显示字符串。
程序运行结果如下图所示。
注意:保存时必须存放在考生文件夹下,窗体文件名为sjt2.frm,工程文件名为sjt2.vbp。
2 简单应用题1、在考生文件夹下有工程文件djks030.vbp及窗体文件djks030.frm。
根据下文的描述,编写相应的程序。
存盘时不得改变文件名和文件夹。
本题描述如下:在窗体上有一个名为Image1的图像框,要求程序运行后,每用鼠标左键点击图像框一次,则图像框的高与宽都增加300;每用鼠标右键点击图像框一次,图像框的高与宽都减小300。
窗体的高与宽为3500,图像框最大化时不允许超过窗体的大小,最小化时图像框的高与宽不小于500(高与宽的单位为twip)。
程序运行时的窗口界面如下图所示。
2、在考生文件夹中有文件sjt4.vbp及其窗体文件sjt4.frm,该程序是不完整的,请在有“?”的地方填入正确内容,然后删除“?”及代码前的所有注释符(即'号),但不能修改其他部分。
2009计算机二级c语言考试真题及答案
2009计算机二级c语言考试真题及答案一、单项选择题(每题2分,共40分)1. 在C语言中,下列关于变量声明的描述中,错误的是:A. 变量可以在函数内部声明B. 变量可以在函数外部声明C. 变量必须在函数内部声明D. 变量可以在语句中声明答案:C2. 若有定义:int a=5, b=10;,则表达式a+=b的值是:A. 15B. 5C. 10D. 0答案:A3. 在C语言中,下列关于数组的描述中,正确的是:A. 数组名代表数组中第一个元素的地址B. 数组名代表数组中最后一个元素的地址C. 数组名代表数组的总大小D. 数组名代表数组中所有元素的地址答案:A4. 下列关于指针的描述中,错误的是:A. 指针变量可以被赋值为一个变量的地址B. 指针变量可以被赋值为一个常量的值C. 指针变量可以被赋值为另一个指针变量的值D. 指针变量不能被赋值为一个函数的地址答案:D5. 在C语言中,下列关于函数的描述中,正确的是:A. 函数可以没有返回值B. 函数可以返回多个值C. 函数可以没有参数D. 函数必须有返回值答案:C6. 若有定义:char str[10]="hello";,则下列关于str数组的描述中,正确的是:A. str数组的长度为5B. str数组的长度为10C. str数组的内容为"hello"D. str数组的内容为"hello\0"答案:B7. 在C语言中,下列关于结构体的描述中,错误的是:A. 结构体可以包含不同类型的数据B. 结构体可以包含其他结构体C. 结构体不能包含函数D. 结构体可以包含指针答案:C8. 下列关于预处理指令的描述中,正确的是:A. #include <stdio.h> 是一个宏定义B. #define PI 3.14159 是一个条件编译指令C. #ifdef 是一个文件包含指令D. #pragma 是一个编译器指令答案:D9. 在C语言中,下列关于文件操作的描述中,错误的是:A. 使用fopen函数打开文件B. 使用fclose函数关闭文件C. 使用fread函数读取文件D. 使用fwrite函数写入文件答案:C10. 下列关于位运算的描述中,错误的是:A. & 表示按位与运算B. | 表示按位或运算C. ^ 表示按位异或运算D. ~ 表示按位非运算答案:D二、程序填空题(每空2分,共20分)给定以下程序片段,请在空白处填入正确的代码:```c#include <stdio.h>int main() {int a, b, sum;scanf("%d %d", &a, &b);sum = a + b;printf("Sum is: %d\n", sum);return 0;}```若要计算两个数的乘积,需要修改程序中的哪几行代码?答案:将第4行的 `sum = a + b;` 修改为 `sum = a * b;`。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2009年春浙江省高等学校计算机等级考试试卷(二级C)说明:⑴考生应将所有试题的答案填写在答卷上。
其中试题一到试题六请在答卷上的各小题选项的对应位置上填“√”。
⑵请将你的准考证号的后五位填写在答卷右下角的指定位置内;⑶考试时间为90分钟。
试题1、(每小题3分,共12分)输入一个正整数n,计算前n项之和。
S=1-1/3+1/5-1/7+……程序:#include<stdio.h>void main(){int de,flag,i,n;double item,sum;printf("Enter n:");scanf("%d,&n");de=1;⑴;sum=0;for(i=1; ⑵;i++){⑶;sum=sum+item;⑷;de=de+2;}printf("sum=%.2f\n",sum);}供选择的答案:(1)A、flag=0 B、flag=-1C、flag=nD、flag=1(2)A、i>=n B、i<nC、i>nD、i<=n(3)A、item=flag/deB、item=1/deC、item=flag*1.0/deD、item=1.0/de(4)A、flag=0 B、C、flag=0D、试题2、(每小题3分,共12分)验证哥德巴赫猜想,每行输出五个,每个>=6的偶数只需拆分成一对素数之和即可程序:#include<stdio.h>#include<math.h>int prime(int m){int i,n;if(m==1)return 0;n=sqrt(m);for(i=2;i<=n;i++)if(m%i==0)return 0;⑸}void main(){int i,count,number;count=0;for(number=6;number<=20;number+=2){for(i=3;i<=number/2;i+=2)if( ⑹){printf("%d=%d+%d ",number,i,number-i);count++;if( ⑺)printf("\n");⑻}}}供选择的答案:(5)A、;B、return 1;C、return 0;D、else return 1;(6)A、prime(i)!=0 || prime(number-i)!=0B、prime(i)!=0 && prime(number-i)!=0C、prime(i)==0 || prime(number-i)==0D、prime(i)==0 && prime(number-i)==0(7)A、count%5==0 B、count%5!=0;C、(count+1)%5==0D、(count+1)%5!=0(8)A、break; B、else break;C、continue;D、;试题3、(每小题3分,共12分)输入一行字符,统计并输出其中数字字符、英文字母和其它字符的个数。
#include<stdio.h>void count(char *s,int *digit,int *letter,int *other){⑼while( ⑽){if(*s>='0' && *s<='9')(*digit)++;else if((*s>='a' && *s<='z') || (*s>='A' && *s<='Z')) (*letter)++;else(*other)++;s++;}}void main(){int i=0,digit,letter,other;char ch,str[80];printf("Enter characters:");ch=getchar();while( ⑾){str[i]=ch;i++;ch=getchar();}str[i]='\0';⑿;printf("Digit=%d letter=%d other=%d\n",digit,letter,other); }供选择的答案:(9)A、int digit=0,letter=0,other=0;B、int *digit=0,*letter=0,*other=0;C、digit=letter=other=0;D、*digit=*letter=*other=0;(10)A、*s++!=’\0’ B、*s++!=’\n’C、*s!=’\0’D、*s!=’\n’(11)A、ch!=’\0’B、ch!=’\n’C、ch==’\0’D、ch==’\n’(12)A、count(str,&digit,&letter,&other)B、count(&str,&digit,&letter,&other)C、count(*str,digit,letter,other)D、count(*str,*digit,*letter,*other)试题4、(每小题3分,共12分)挑选正确答案#include<stdio.h>void main(){int flag=0,i;int a[7]={8,9,7,9,8,9,7};for(i=0;i<7;i++)if(a[i]==7){flag=i;break;}printf("%d\n",flag);flag=-1;for(i=6;i>=0;i--)if(a[i]==8){break;flag=i;}printf("%d\n",flag);flag=0;for(i=0;i<7;i++)if(a[i]==9){printf("%d ",i);}printf("\n");flag=0;for(i=0;i<7;i++)if(a[i]==7)flag=i;printf("%d\n",flag);}供选择的答案:(13)程序运行时,第1行输出:A、2B、0C、3D、6(14)程序运行时,第2行输出:A、4B、-1C、0D、5(15)程序运行时,第3行输出:A、2 4 6B、4C、1 3 5D、6(16)程序运行时,第4行输出:A、2 4 6B、2C、1 3 5D、6试题5、(每小题3分,共12分)挑选正确答案int f1(int n){if(n==1)return 1;else return f1(n-1)+n;}int f2(int n){switch(n){case 1:case 2:return 1;default:return f2(n-1)+f2(n-2);}}void f3(int n){printf("%d",n%10);if(n/10!=0) f3(n/10);}void f4(int n){if(n/10!=0) f4(n/10);printf("%d",n%10);}#include<stdio.h>void main(){printf("%d\n",f1(4));printf("%d\n",f2(4));f3(123);printf("\n");f4(123);printf("\n");}供选择的答案:(17)程序运行时,第1行输出:A、10B、24C、6D、1(18)程序运行时,第2行输出:A、1B、3C、2D、4(19)程序运行时,第3行输出:A、123B、3C、321D、1(20)程序运行时,第4行输出:A、1B、123C、3D、321试题6、(每小题3分,共12分)挑选正确答案#include<stdio.h>struct num{int a,b;};void f(struct num s[],int n){int index,j,k;struct num temp;for(k=0;k<n-1;k++){index=k;for(j=k+1;j<n;j++)if(s[j].b<s[index].b) index=j;temp=s[index];s[index]=s[k];s[k]=temp;}}void main(){int count,i,k,m,n,no;struct num s[100],*p;scanf("%d%d%d",&n,&m,&k);for(i=0;i<n;i++){s[i].a=i+1;s[i].b=0;}p=s;count=no=0;while(no<n){if(p->b ==0)count++;if(count==m){no++;p->b=no;count=0;}p++;if(p==s+n)p=s;}f(s,n);printf("%d: %d\n",s[k-1].b,s[k-1].a);}供选择的答案:(21)程序运行时,输入5 4 3,输出:A、3:5B、2:3C、1:2D、4:1(22)程序运行时,输入5 3 4,输出:A、3:5B、1:2C、4:3D、4:2(23)程序运行时,输入7 5 2,输出:A、1:5B、6:1C、2:3D、2:4(24)程序运行时,输入4 2 4#,输出:A、3:3B、4:2C、2:4D、4:1试题7、(28分)(1)定义函数fact(n),计算n的阶乘,形参n的类型是int,函数类型是double。
(2)定义函数cal(x,e),计算下列算式的值,直到最后一项小于e,形参x和e的类型都是double,函数类型是double,要求调用fact(n)函数,调用库函数pow(x,n)来计算x的n次幂。
S=x+x2/2!+x3/3!+x4/4!+……(3)定义函数main(),输入两个浮点数x和e,计算下列算式的值,直到最后一项的值小于精度e。
要求调用cal函数。
S=x+x2/2!+x3/3!+x4/4!+……参考答案:试题1—试题6:DDCCBBAA DCBA ABCD ABCB ADCD试题7参考代码:#include <stdio.h>#include<math.h>{if(n==1) return 1;else return n*fact(n-1);/*或者double f=1;for(int i=1;i<=n;i++)f*=i;return f;*/}double cal(double x,double e)double y,s=0;int k=1;do{y=pow(x,k)/fact(k);k++;s+=y;}while(fabs(y)>=e);return s;} Array void main(){double x,e,result;scanf("%lf%lf",&x,&e);result=cal(x,e);printf("%f",result);}。