计算机二级C语言历年笔试题及答案_第1页
计算机二级C语言历年笔试题及答案_第2页
计算机二级C语言历年笔试题及答案_第3页
计算机二级C语言历年笔试题及答案_第4页
计算机二级C语言历年笔试题及答案_第5页
已阅读5页,还剩232页未读 继续免费阅读

下载本文档

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

文档简介

2011年9月-2007年9月历年全国计算机二级C语言考试真题及答案后附二级c语言上机题及答案2011年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)叶子结点总是比度为2的结点少一个B)叶子结点总是比度为2的结点多一个C)叶子结点数是度为的结点数的两倍D)度为2的结点数是度为1的结点数的两倍(4)软件按功能分为应用软件、系统软件和支撑软件(或工具软件)。下现属于应用软件的是A)学生成绩管理系统B)C语言编译程序C)UNIX操作系统D)数据库管理系统(5)某系统总结构图如下图所示:该系统总体结构图的深度是A)7B)6C)3D)2(6)程序调试的任务是A)设计测试用例B)验证程序的正确性C)发现程序中的错误D)诊断和改正程序中的错误(7)下列关于数据库设计的叙述中,正确是的A)在需求分析阶段建立数据字典B)在概念设计阶段建立数据字典C)在逻辑设计阶段建立数据字典D)在物理设计阶段建立数据字典(8)数据库系统的三级模式不包括A)概念模式B)内模式C)外模式D)数据模式RSTABCABCABCa12a12c31b21b21c31 (9)有三个关系R、S和T如下: 则由关系R和S得到关系T的操作是A)自然连接B)差C)交D)并(10)下列选项中属于面向对象设计方法主要特征的是A)继承B)自顶向下C)模块化D)逐步求精(11)以下叙述中错误的是A)C语言编写的函数源程序,其文件名后缀可以是.CB)C语言编写的函数都可以作为一个独立的源程序文件C)C语言编写的每个函数都可以进行独立的编译并执行D)一个C语言程序只有一个主函数(12)以下选项中关于程序模块化的叙述错误的是A)把程序分成若干相对独立的模块,可便于编码和调试B)把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块C)可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序D)可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序(13)以下选项中关于C语言常量的叙述错误的是A)所谓常量,是指在程序运行过程中,其值不能被改变的量B)常量分为整型常量、实型常量、字符常量和字符串常量C)常量可分为数值常量和非数值常量D)经常被使用的变量可以定义成常量(14)若有定义语句: int a=10; double b=3.14; ,则表达式A+a+b的值的类型是A)charB)int C)double D)float(15)若有定义语句: int x=12, y=8, z; ,在其后执行语句z=0.9+x/y;,则z的值为A)1.9B)1C)2D)2.4(16)若有定义: int a,b;,通过语scanf(%d;%d,&a,&b);,能把整数3赋给变量a, 5赋给变量b的输入数据是A)3 5B)3,5C)3;5D)35(17)若有定义语句: int k1=10, k2=20;,执行表达式(k1=k1k2) & (k2=k2k1)后,k1和k2的值分别为A)0和1B)0和20C)10和1D)10和20(18)有以下程序#include main( ) int a=1, b=0; if (-a) b+; else if(a=0) b+=2; else b+=3; printf(%dn,b);程序运行后的输出结果是A)0B)1C)2D)3(19)下列条件语句中,输出结果与其他语句不同的是A) if(a) printf(%dn, x); else printf(%dn,y);B) if(a=0) printf(%dn, y); else printf(%dn,x);C) if(a!=0) printf(%dn, x); else printf(%dn,y);D) if(a=0) printf(%dn, x); else printf(%dn,y);(20)有以下程序#include main( ) int a=7; while (a-); printf(%dn,a);程序运行后的输出结果是A)-1B)0C)1D)7(21)以下不能输出字符A的语句是(注:字符A的ASCII码值为65,字符a的ASCII码值为97)A)printf(%cn,a-32);B)printf(%dn,A)C)printf(%cn,65);D)printf(%cn,B-1);(22)有以下程序(注:字符a的ASCII码值为97)#include main( ) char *s=abc; do printf(%d,*s%10); +s; while (*s);程序运行后的输入结果是A)abcB)789C)7890D)(23)若有定义语句: double a,*p=&a; 以下叙述中错误的是A)定义语句中的 * 号是一个间址运算符B)定义语句中的 * 号只是一个说明符C)定义语句中的p只能存放double类型变量的地址D)定义语句中,*p=&a把变量a的地址作为初值赋给指针变量p(24)有以下程序#include double f(double x);main( ) double a=0; int i; for (i=0; i30; i+=10) a+=f( (double)i); printf(%5.0fn,a);double f(double x) return x*x+1; 程序运行后的输出结果是A)503B)401C)500D)1404(25)若有定义语句: int year=2009, *p=&year;,以下不能使变量year中的值增至2010的语句是A)*p+=1;B)(*p)+;C)+(*p);D)*p+;(26)以下定义数组的语句中错误的是A)int num=1,2,3,4,5,6B)int num3=1,2,3,4,5,6;C)int num24=1,2,3,4,5,6;D)int num4=1,2,3,4,5,6;(27)有以下下程序#include void fun(int *p) printf(%dn, p5); main( ) int a10=1,2,3,4,5,6,7,8,9,10; fun(&a3);程序运行后的输出结果是A)5B)6C)8D)9(28)有以下程序#include # define N 4void fun(int aN, int b) int i; for (i=0; iN; i+) bi=aii-aiN-1-i;main( ) int xNN=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16, yN, i; fun(x, y); for (i=0;iN; i+) printf(%d,yi); printf(n);程序运行后的输出结果是A)-12,-3,0,0,B)-3,-1,1,3,C)0,1,2,3,D)-3,-3,-3,-3,(29)有以下函数int fun(char *x, char *y) int n=0; while ( (*x=*y) & *x!=0) x+; y+; n+; return n;函数的功能是A)查找x和y所指字符串中是否有0B)统计x和y所指字符串中最前面连续相同的字符个数C)将y所指字符串赋给x所指存储空间D)统计x和y所指字符串中相同的字符个数(30)若有定义语句: char *s1=OK, *s2=ok;,以下选项中,能够输出OK的语句是A)if (strcm(s1,s2)=0 puts(s1);B)if (strcm(s1,s2)!=0 puts(s2);C)if (strcm(s1,s2)=1 puts(s1);D)if (strcm(s1,s2)!=0 puts(s1);(31)以下程序的主函数中调用了在其前面定义的fun函数#include main( ) double a15,k; k=fun(a)则以下选项中错误的fun函数首部是A)double fun( double a15)B)double fun( double *a)C)double fun( double a) D)double fun( double a)(32)有以下程序#include #include main( ) char a510=china, beijing, you, tiananmen, welcome; int i,j; char t10; for ( i=0; i4; i+) for (j=i+1; j0) strcpy(t,ai); strcpy(ai,aj); strcpy(aj,t); puts(a3);程序运行后的输出结果是A)beijingB)chinaC)welcomeD)tiananmen (33)有以下程序#include int f(int m) static int n=0; n+=m; return n;main( ) int n=0; printf(%d, f(+n); printf(%dn, f(n+);程序运行后的输出结果是A)1,2 B)1,1C)2,3D)3,3(34)有以下程序#include main( ) char ch35=AAAA,BBB,CC; printf( %sn, ch1 );程序运行后的输出结果是A)AAAAB)CCC)BBBCCD)BBB(35)有以下程序#include #include void fun(char *w, int m) char s,*p1, *p2; p1=w; p2=w+m-1; while (p1p2) s=*p1; *p1=*p2; *p2=s; p1+; p2-; main( ) char a=; fun( a, strlen(a) ); puts(a);程序运行后的输出结果是A)B)C)D)(36)有以下程序#include #include typedef struct char name9; char sex; int score2; STU;STU f(STU a) STU b=Zhao,m,85,90; int i; strcpy(, ); a.sex=b.sex; for (i=0; i2; i+) a.scorei=b.scorei; return a;main( ) STU c=Qian,f,95,92, d; d=f(c); printf(%s,%c,%d,%d,,d.sex,d.score0,d.score1); printf(%s,%c,%d,%dn,,c.sex,c.score0,c.score1);程序运行后的输出结果是A)Zhao,m,85,90,Qian,f,95,92B)Zhao,m,85,90,Zhao,m,85,90A)Qian,f,95,92,Qian,f,95,92B)Qian,f,95,92,Zhao,m,85,90(37)有以下程序#include main( ) struct node int n; struct node *next; *p; struct node x3=2,x+1, 4,x+2, 6, NULL; p=x; printf(%d, p-n ); printf(%dn,p-next-n ); 程序运行后的输出结果是A)2,3B)2,4C)3,4D)4,6(38)有以下程序#include main( ) int a=2, b; b=a2; printf(%dn,b);程序运行后的输出结果是A)2B)4C)6D)8(39)以下选项中叙述错误的是A)C程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值B)在C程序的同一函数中,各复合语句内可以定义变量,其作用域仅限于本复合语句内C)C程序函数中定义的自动变量,系统不自动赋确定的初值D)C程序函数的形参不可以说明为static型变量(40)有以下程序#include main( ) FILE *fp; int k,n,i,a6=1,2,3,4,5,6; fp = fopen(d2.dat,w); for (i=0; i6; i+) fprintf(fp, %dn,ai); fclose(fp); fp = fopen(d2.dat,r); for (i=0; i3; i+) fscanf(fp, %d%d, &k, &n); fclose(fp); printf(%d,%dn, k, n);程序运行后的输出结果是A)1,2 B)3,4C)5,6D)123,456二、填空题(每空2分,共30分)请将每空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。(1)数据结构分为线性结构和非线性结构,带链的栈属于 【1】 。(2)在长度为n的顺序存储的线性表中插入一个元素,最坏情况下需要移动表中 【2】 个元素。(3)常见的软件开发方法有结构化方法和面向对象方法。对某应用系统通过需求分析建立数据流图(DFD),则应采用 【3】 方法。(4)数据库系统的核心是 【4】 。(5)在进行关系数据库的逻辑设计时,E-R图中的属性常转换为关系中的属性,联系通常转换为 【5】 。(6)若程序中已给整型变量a和b赋值10和20,请写出按以下格式输出a,b值的语句 【6】 。 *a=10,b=20*(7)以下程序运行后的输出结果是 【7】 。#include main( ) int a=37; a%=9; printf(%dn,a);(8)以下程序运行后的输出结果是 【8】 。#include main( ) int i,j; for ( i=6; i3; i- ) j=i; printf(%d%dn,i,j);(9)以下程序运行后的输出结果是 【9】 。#include main( ) int i, n =0,0,0,0,0; for ( i=1; i=2; i+ ) ni=ni-1*3 + 1; printf(%d,ni); printf(n);(10)以下程序运行后的输出结果是 【10】 。#include main() char a; for( a=0; a15; a+=5 ) putchar(a+A); printf(n);(11)以下程序运行后的输出结果是 【11】 。#include void fun (int x) if (x/50) fun(x/5); printf(%d ,x) ;main( ) fun(11); printf(n);(12)有以下程序#include main() int c3=0, k, i; while ( (k=getchar() )!=n) ck-A+; for (i=0; i3; i+) printf(%d,ci); printf(n);若运行程序时从键盘输入ABCACC,则输出结果为 【12】 。(13)以下程序运行后的输出结果是 【13】 。#include main( ) int n2, i, j; for ( i=0; i2; i+ ) ni=0; for ( i=0; i2; i+ ) for ( j=0; j2; j+ ) nj=ni+1; printf(%dn,n1);(14)以下程序调用fun函数把x中的值插入到a数组下标为k的数组元素中。主函数中,n存放a数组中数据的个数,请填空。#include void fun( int s, int *n, int k, int x) int i; for (i=*n-1; i=k; i-) s 【14】 =si; sk=x; *n=*n+ 【15】 ;main( ) int a20=1,2,3,4,5,6,7,8,9,10,11, i, x=0, k=6, n=11; fun(a,&n,k,x); for(i=0;in;i+) printf(%4d,ai); printf(n);2011年9月全国计算机等级考试二级C语言程序设计笔试标准答案一、选择题 01.DCBAC DADBA 11.CCDCB CBCDA 21.BBAAD CDBBD 31.DCADA ABDAC二、填空题1.线性结构2.n3.结构化4.DBMS 或 数据库管理系统5.关系 6.printf (*a=%,b=%d*,a,b); 7.1 8.34 9.14 10.AFK 11.2 11 12.213 13.3 14.i+1 15.12011年3月计算机二级c语言考试真题 一、 选择题(1)下列关于栈叙述正确的是A)栈顶元素最先能被删除 B)栈顶元素最后才能被删除C)栈底元素永远不能被删除 D)以上三种说法都不对(2)下列叙述中正确的是A)有一个以上根结点的数据结构不一定是非线性结构B)只有一个根结点的数据结构不一定是线性结构C)循环链表是非线性结构 D)双向链表是非线性结构(3)某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)A)3 B)4 C)6 D)7(4)在软件开发中,需求分析阶段产生的主要文档是A)软件集成测试计划 B)软件详细设计说明书C)用户手册 D)软件需求规格说明书(5)结构化程序所要求的基本结构不包括A)顺序结构 B)GOTO跳转C)选择(分支)结构 D)重复(循环)结构(6)下面描述中错误的是A)系统总体结构图支持软件系统的详细设计B)软件设计是将软件需求转换为软件表示的过程C)数据结构与数据库设计是软件设计的任务之一D)PAD图是软件详细设计的表示工具 (7)负责数据库中查询操作的数据库语言是A)数据定义语言 B)数据管理语言C)数据操纵语言 D)数据控制语言 (8)一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程间的联系是A)1:1联系 B)1:m联系 C)m:1联系 D)m:n联系(9)有三个关系R、S和T如下:则由关系R和S得到关系T的操作是A)自然连接 B)交 C)除 D)并(10)定义无符号整数类为UInt,下面可以作为类UInt实例化值的是A)-369 B)369 C)0.369 D)整数集合1,2,3,4,5(11)计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是A)C语言程序仅可以编译执行 B)C语言程序仅可以解释执行C)C语言程序既可以编译执行又可以解释执行 D)以上说法都不对(12)以下叙述中错误的是A)C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的源程序不能直接在计算机上运行C)通过编译得到的二进制目标程序需要连接才可以运行D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件 (13)以下选项中不能用作C程序合法常量的是 A)1,234 B)123 C)123 D)x7G(14)以下选项中可用作C程序合法实数的是A).1e0 B)3.0e0.2 C)E9 D)9.12E(15)若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是A)a=(b=4)=3; B)a=b=c+1; C)a=(b=4)+c;、 D)a=1+(b=c=4);(16)有以下程序段char name20;int num;scanf(name=%s num=%d,name;&num);当执行上述程序段,并从键盘输入:name=Lili num=1001后,name的值为A)Lili B)name=Lili C)Lili num= D)name=Lili num=1001(17)if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是A)必须是逻辑值 B)必须是整数值 C)必须是正数 D)可以是任意合法的数值(18)有以下程序#include main() int x=011;printf(%dn,+x); 程序运行后的输出结果是A)12 B)11 C)10 D)9(19)有以下程序 #include main() int s;scanf(%d,&s); while(s0) switch(s) case1:printf(%d,s+5);case2:printf(%d,s+4); break;case3:printf(%d,s+3); default:printf(%d,s+1);break; scanf(%d,&s); 运行时,若输入1 2 3 4 5 0,则输出结果是 A) B)66656 C)66666 D) (20)有以下程序段 int i,n; for(i=0;i=0&si=9) n+; printf(%dn,n); 程序运行后的输出结果是A)0 B)3 C)7 D)8 (22)若i和k都是int类型变量,有以下for语句 for(i=0,k=-1;k=1;k+) printf(*n); 下面关于语句执行情况的叙述中正确的是A)循环体执行两次 B)循环体执行一次 C)循环体一次也不执行 D)构成无限循环 (23)有以下程序 #include main() char b,c; int i; b=a; c=A; for(i=0;i=a&*c=z) *c=*c-(a-A); c+; main() char s81; gets(s); fun(s); puts(s): 当执行程序时从键盘上输入Hello Beijing,则程序的输出结果是A)hello beijing B)Hello Beijing C)HELLO BEIJING D)hELLO Beijing(30)以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。#include #define N 10void fun(int xN) int i=0;while(i 在程序中下划线处应填入的是A)x+I B)&xi+1 C)x+(i+) D)&x+i(31)有以下程序 #include main() char a30,b30;scanf(%s,a); gets(b); printf(%sn %sn,a,b); 程序运行时若输入: how are you? I am fine 则输出结果是 A)how are you? B)how I am fine are you? I am fineC)how are you? I am fine D)row are you? (32)设有如下函数定义int fun(int k) if (k1) return 0; else if(k=1) return 1; else return fun(k-1)+1; 若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是 A)2 B)3 C)4 D)5 (33)有以下程序#include int fun (int x,int y) if (x!=y) return (x+y);2); else return (x); main() int a=4,b=5,c=6; printf(%dn,fun(2*a,fun(b,c);程序运行后的输出结果是A)3 B)6 C)8 D)12(34)有以下程序#include int fun() static int x=1; x*=2; return x;main() int i,s=1;for(i=1;ix); printf(%dn,+(p-y); 程序运行后的输出结果是A)1,2 B)4,1 C)3,4 D)2,3(38)有以下程序 #include struct S int a,b;data2=10,100,20,200; main() struct S p=data1; printf(%dn,+(p.a); 程序运行后的输出结果是 A)10 B)11 C)20 D)21 (39)有以下程序#include main() unsigned char a=8,c; c=a3; printf(%dn,c); 程序运行后的输出结果是 A)32 B)16 C)1 D)0(40)设fp已定义,执行语句fp=fopen(file,w);后,以下针对文本文件file操作叙述的选项中正确的是A)写操作结束后可以从头开始读 B)只能写不能读C)可以在原有内容后追加写 D)可以随意读和写二、填空题 (1)有序线性表能进行二分查找的前提是该线性表必须是 【1】 存储的。(2)一棵二叉树的中序遍历结果为DBEAFC,前序遍历结果为ABDECF,则后序遍历结果为 【2】 。(3)对软件设计的最小单位(模块或程序单元)进行的测试通常称为 【3】测试。(4)实体完整性约束要求关系数据库中元组的 【4】 属性值不能为空。(5)在关系A(S,SN,D)和关系B(D,CN,NM)中,A的主关键字是S,B的主关键字是D,则称 【5】是关系A的外码。 (6)以下程序运行后的输出结果是 【6】 。 #include main() int a; a=(int)(double)(3/2)+0.5+(int)1.99*2); printf(%dn,a); (7)有以下程序 #include main() int x; scanf(%d,&x); if(x15) printf(%d,x-5); if(x10) printf(%d,x); if(x5) printf(%dn,x+5); 若程序运行时从键盘输入12,则输出结果为 【7】 。 (8)有以下程序(说明:字符0的ASCII码值为48) #include main() char c1,c2; scanf(%d,&c1); c2=c1+9; printf(%c%cn,c1,c2); 若程序运行时从键盘输入48,则输出结果为 【8】 。 (9)有以下函数 void prt(char ch,int n) int i;for(i=1;i0)开始的后续元素全部向前移动一个位置。请填空。 void fun(int aN,int k) int i; for(i=k;i (12)有以下程序,请在 【12】 处填写正确语句,使程序可正常编译运行。 #include 【12】 ; main() double x,y,(*p)();scanf(%lf%lf,&x,&y); p=avg; printf(%fn,(*p)(x,y); double avg(double a,double b) return(a+b)/2); (13)以下程序运行后的输出结果是 【13】 。 #include main() int i,n5=0; for(i=1;i=0;i-) putchar(*(p+i); printf(n-); free(p); (15)以下程序运行后的输出结果是 【15】 。 #include main() FILE *fp; int x6=1,2,3,4,5,6,i; fp=fopen(test.dat,wb); fwrite(x,sizeof(in

温馨提示

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

评论

0/150

提交评论