2011年9月全国计算机二级C语言_公共基础120题详解版
2011年9月计算机二级C笔试试题及答案word版(详细解析)

201 1年9月全国计算机等级考试二级笔试试卷(1)下列叙述中正确的是( )。
A)算法就是程序B)设计算法时只需要考虑数据结构的设计C)设计算法时只需要考虑结果的可靠性D)以上三种说法都不对(2)下列关于线性链表的叙述中,正确的是( )。
A)各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致B)各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续C)进行插入与删除时,不需要移动表中的元素D)以上三种说法都不对(3)下列关于二叉树的叙述中,正确的是( )。
A)叶子结点总是比度为2的结点少一个 B)叶子结点总是比度为2的结点多一个c)叶子结点数是度为2的结点数的两倍 D)度为2的结点数是度为1的结点数的两倍(4)软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。
下面属于应用软件的是( )。
A)学生成绩管理系统 B)C语言编译程序C)UNIX操作系统 D)数据库管理系统(5)某系统总体结构图如下图所示:该系统总体结构图的深度是( )。
A)7 B)6 C)3 D)2(6)程序调试的任务是( )。
A)设计测试用例 B)验证程序的正确性 C)发现程序中的错误 D)诊断和改正程序中的错误(7)下列关于数据库设计的叙述中,正确的是( )。
A)在需求分析阶段建立数据字典 B)在概念设计阶段建立数据字典C)在逻辑设计阶段建立数据字典 D)在物理设计阶段建立数据字典(8)数据库系统的三级模式不包括( )。
A)概念模式 B)内模式C)外模式 D)数据模式(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)以下选项中关于程序模块化的叙述错误的是( )。
2011年计算机二级C语言编写程序题及答案解析精选

2011年计算机二级C语言编写程序题及答案解析精选【4.1】已知银行整存整取存款不同期限的月息利率分别为:0.315%期限一年0.330%期限二年月息利率=0.345%期限三年0.375%期限五年0.420%期限八年要求输入存钱的本金和期限,求到期时能从银行得到的利息与本金的合计。
【4.2】输入年份year和月month,求该月有多少天。
判断是否为闰年,可用如下C语言表达式:year%4==0&&year0!=0||year@0==0。
若表达式成立(即表达式值为1),则year 为闰年;否则,表达式不成立(即值为0),year为平年。
【4.3】编写一个简单计算器程序,输入格式为:data1op data2。
其中data1和data2是参加运算的两个数,op为运算符,它的取值只能是+、-、*、/。
【4.4】输入n值,输出如图所示矩形。
【4.5】输入n值,输出如图所示平行四边形。
【4.6】输入n值,输出如图所示高为n的等腰三角形。
【4.7】输入n值,输出如图所示高为n的等腰三角形。
【4.8】输入n值,输出如图所示高和上底均为n的等腰梯形。
【4.9】输入n值,输出如图所示高和上底均为n的等腰空心梯形。
【4.10】输入n值,输出如图所示边长为n的空心正六边型。
【4.11】输入n值,输出如图所示图形。
【4.12】输入n值,输出如图所示图形。
【4.13】输入n值,输出如图所示图形。
【4.14】输入n值,输出如图所示图形。
【4.15】输入n值,输出如图所示图形。
【4.16】输入n值,输出如图所示图形。
(例为n=6时)【4.17】编写程序,输出如图所示sin(x)函数0到2π的图形。
【4.18】编写程序,在屏幕上输出一个由*号围成的空心圆。
【4.19】编写程序,在屏幕上绘制如图余弦曲线和直线。
若屏幕的横向为x轴,纵向为y 轴,在屏幕上显示0~360度的cos(x)曲线与直线x=f(y)=45*(y-1)+31的迭加图形。
最新2011年9月全国计算机等级考试二级C语言 (全)

第一套1.程序填空程序通过定义学生结构体数组,存储了若干个学生的学号、姓名和三门课的成绩。
函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大排序)。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
第一处struct student t;第二处for(i=0;i<n-1;i++)第三处if(strcmp(a[i].name,a[j].name)>0)2程序修改给定程序MODI1.C中函数fun的功能是:在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向上顺序移动。
/**found**/q=p+i;/**found**/while(q>p)3程序设计学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。
int fun(STREC *a,STREC *b,int l,int h){int i,j=0;for(i=0;i<N;i++)if((a[i].s>=1&&a[i].s<=h)b[j++]=a[i];return j;}第二套1.程序填空给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序连接。
函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。
第一处free(q);第二处q=p->next;第三处q=q->next;2. 程序修改给定程序MODI1.C中函数fun的功能是:用选择法对数组中的n各元素按从小到大的顺序进行排序。
/**found**/p=j;/**found**/p=i;3. 程序设计请编写一个fun函数,它的功能是:求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n 返回这些数的个数。
2011年9月全国计算机二级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)7 B)6 C)3 D)2(6)程序调试的任务是A)设计测试用例B)验证程序的正确性C)发现程序中的错误D)诊断和改正程序中的错误(7)下列关于数据库设计的叙述中,正确是的A)在需求分析阶段建立数据字典B)在概念设计阶段建立数据字典C)在逻辑设计阶段建立数据字典D)在物理设计阶段建立数据字典(8)数据库系统的三级模式不包括A)概念模式B)内模式C)外模式D)数据模式(9)有三个关系R 、S 和T 如下: 则由关系R 和S 得到关系T 的操作是 A)自然连接 B)差C)交D)并(10)下列选项中属于面向对象设计方法主要特征的是A)继承 B)自顶向下 C)模块化 D)逐步求精(11)以下叙述中错误的是A)C 语言编写的函数源程序,其文件名后缀可以是.C B)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)char B)int C)double D)float (15)若有定义语句: int x=12, y=8, z; ,在其后执行语句z=0.9+x/y;,则z 的值为 A)1.9 B)1 C)2 D)2.4(16)若有定义: int a,b;,通过语scanf("%d;%d",&a,&b);,能把整数3赋给变量a, 5赋给变量b 的输入数据是A)3 5 B)3,5 C)3;5 D)35(17)若有定义语句: int k1=10, k2=20;,执行表达式(k1=k1>k2) && (k2=k2>k1)后,k1和k2的值分别为 A)0和1B)0和20C)10和1D)10和20(18)有以下程序#include <stdio.h> main( ){ int a=1, b=0;if (--a) b++;else if(a==0) b+=2;else b+=3;printf("%d\n",b);}程序运行后的输出结果是A)0 B)1 C)2 D)3(19)下列条件语句中,输出结果与其他语句不同的是A) if(a) printf("%d\n", x); else printf("%d\n",y);B) if(a==0) printf("%d\n", y); else printf("%d\n",x);C) if(a!=0) printf("%d\n", x); else printf("%d\n",y);D) if(a==0) printf("%d\n", x); else printf("%d\n",y);(20)有以下程序#include <stdio.h>main( ){ int a=7;while (a--);printf("%d\n",a);}程序运行后的输出结果是A)-1 B)0 C)1 D)7(21)以下不能输出字符A的语句是(注:字符A的ASCII码值为65,字符a的ASCII码值为97)A)printf("%c\n",'a'-32); B)printf("%d\n",'A')C)printf("%c\n",65); D)printf("%c\n",'B'-1);(22)有以下程序(注:字符a的ASCII码值为97)#include <stdio.h>main( ){ char *s={"abc"};do{ printf("%d",*s%10); ++s; }while (*s);}程序运行后的输入结果是A)abc B)789 C)7890 D)(23)若有定义语句: double a,*p=&a; 以下叙述中错误的是A)定义语句中的 * 号是一个间址运算符B)定义语句中的 * 号只是一个说明符C)定义语句中的p只能存放double类型变量的地址D)定义语句中,*p=&a把变量a的地址作为初值赋给指针变量p#include <stdio.h>double f(double x);main( ){ double a=0; int i;for (i=0; i<30; i+=10) a+=f( (double)i);printf("%5.0f\n",a);}double f(double x){ return x*x+1; }程序运行后的输出结果是A)503 B)401 C)500 D)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,6} B)int num[][3]={{1,2},3,4,5,6}; C)int num[2][4]={{1,2},{3,4},{5,6}}; D)int num[][4]={1,2,3,4,5,6};(27)有以下下程序#include <stdio.h>void fun(int *p){ printf("%d\n", p[5]); }main( ){ int a[10]={1,2,3,4,5,6,7,8,9,10};fun(&a[3]);}程序运行后的输出结果是A)5 B)6 C)8 D)9(28)有以下程序#include <stdio.h># define N 4void fun(int a[][N], int b[]){ int i;for (i=0; i<N; i++) b[i]=a[i][i]-a[i][N-1-i];}main( ){ int x[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}}, y[N], i;fun(x, y);for (i=0;i<N; i++) printf("%d,",y[i]); printf("\n");}程序运行后的输出结果是A)-12,-3,0,0, B)-3,-1,1,3, C)0,1,2,3, D)-3,-3,-3,-3,int fun(char *x, char *y){ int n=0;while ( (*x==*y) && *x!='\0') {x++; y++; n++; }return n;}函数的功能是A)查找x和y所指字符串中是否有'\0'B)统计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 <stdio.h>∶main( ){ double a[15],k;k=fun(a)∶}则以下选项中错误的fun函数首部是A)double fun( double a[15]) B)double fun( double *a)C)double fun( double a[]) D)double fun( double a)(32)有以下程序#include <stdio.h>#include <string.h>main( ){ char a[5][10]={"china", "beijing", "you", "tiananmen", "welcome"};int i,j; char t[10];for ( i=0; i<4; i++)for (j=i+1; j<5; j++)if( strcmp(a[i], a[j])>0){ strcpy(t,a[i]); strcpy(a[i],a[j]); strcpy(a[j],t); }puts(a[3]);}程序运行后的输出结果是A)beijing B)china C)welcome D)tiananmen(33)有以下程序#include <stdio.h>int f(int m){ static int n=0;n+=m;return n;}main( ){ int n=0;printf("%d,", f(++n));printf("%d\n", f(n++));}程序运行后的输出结果是A)1,2 B)1,1 C)2,3 D)3,3(34)有以下程序#include <stdio.h>main( ){ char ch[3][5]={"AAAA","BBB","CC"};printf( "%s\n", ch[1] );}程序运行后的输出结果是A)AAAA B)CC C)BBBCC D)BBB(35)有以下程序#include <stdio.h>#include <string.h>void fun(char *w, int m){ char s,*p1, *p2;p1=w; p2=w+m-1;while (p1<p2) { s=*p1; *p1=*p2; *p2=s; p1++; p2--; }}main( ){ char a[]="";fun( a, strlen(a) ); puts(a);}程序运行后的输出结果是A) B) C) D)(36)有以下程序#include <stdio.h>#include <string.h>typedef struct {char name[9]; char sex; int score[2]; } STU; STU f(STU a){ STU b={"Zhao",'m',85,90};int i;strcpy(, );a.sex=b.sex;for (i=0; i<2; i++) a.score[i]=b.score[i];return a;}main( ){ STU c={"Qian",'f',95,92}, d;d=f(c);printf("%s,%c,%d,%d,",,d.sex,d.score[0],d.score[1]);printf("%s,%c,%d,%d\n",,c.sex,c.score[0],c.score[1]);}程序运行后的输出结果是A)Zhao,m,85,90,Qian,f,95,92 B)Zhao,m,85,90,Zhao,m,85,90A)Qian,f,95,92,Qian,f,95,92 B)Qian,f,95,92,Zhao,m,85,90(37)有以下程序#include <stdio.h>main( ){ struct node {int n; struct node *next;} *p;struct node x[3]={{2,x+1}, {4,x+2}, {6, NULL}};p=x;printf("%d,", p->n );printf("%d\n",p->next->n );}程序运行后的输出结果是A)2,3 B)2,4 C)3,4 D)4,6(38)有以下程序#include <stdio.h>main( ){ int a=2, b;b=a<<2; printf("%d\n",b);}程序运行后的输出结果是A)2 B)4 C)6 D)8(39)以下选项中叙述错误的是A)C程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值B)在C程序的同一函数中,各复合语句内可以定义变量,其作用域仅限于本复合语句内C)C程序函数中定义的自动变量,系统不自动赋确定的初值D)C程序函数的形参不可以说明为static型变量(40)有以下程序#include <stdio.h>main( ){ FILE *fp;int k,n,i,a[6]={1,2,3,4,5,6};fp = fopen("d2.dat","w");for (i=0; i<6; i++) fprintf(fp, "%d\n",a[i]);fclose(fp);fp = fopen("d2.dat","r");for (i=0; i<3; i++) fscanf(fp, "%d%d", &k, &n);fclose(fp);printf("%d,%d\n", k, n);}程序运行后的输出结果是A)1,2 B)3,4 C)5,6 D)123,456二、填空题(每空2分,共30分)请将每空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。
2011年9月c语言二级试题及答案

2011年9月c语言二级试题及答案一、单项选择题(本大题共40小题,每小题1分,共40分。
在每小题的四个选项中,只有一个选项是正确的,请将正确选项的标号填入题干后的括号内。
)1. 在C语言中,下列哪个选项是合法的整型常量?A. 0x12LB. 0x12.3C. 0x12.0LD. 0x12.0答案:A2. 下列哪个关键字是用于定义函数的?A. intB. charC. voidD. return答案:A3. 在C语言中,哪个运算符用于计算两个整数的差值?A. %B. /C. -D. +答案:C4. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. _variableD. variable$2答案:B5. 在C语言中,下列哪个选项表示逻辑“与”运算?A. &&B. ||C. !D. ==答案:A6. 下列哪个选项是C语言中的合法字符串常量?A. "Hello, World!"B. 'Hello, World!'C. "Hello, World!"D. "Hello, World!"答案:A7. 在C语言中,下列哪个选项表示字符常量?A. 'a'B. "a"C. aD. 65答案:A8. 下列哪个选项是C语言中的合法浮点数常量?A. 3.14159B. .14159C. 314159.D. 3.14E答案:A9. 在C语言中,下列哪个选项表示数组?A. int a[10];B. int *a;C. int a;D. int (a[10]);答案:A10. 下列哪个选项是C语言中的合法注释?A. // This is a commentB. /* This is a comment */C. //* This is a commentD. /* This is a comment答案:A(注:后续题目按照上述格式继续编写,直到第40题)二、填空题(本大题共5小题,每小题2分,共10分。
全国计算机二级C语言_公共基础120题详解版

公共基础知识120题详解篇(1) 下面叙述正确的是______。
A. 算法的执行效率与数据的存储结构无关B. 算法的空间复杂度是指算法程序中指令(或语句)的条数C. 算法的有穷性是指算法必须能在执行有限个步骤之后终止D. 以上三种描述都不对[答案]C时间复杂度:在运行算法时所耗费的时间为f(n)(即 n的函数)。
空间复杂度:实现算法所占用的空间为g(n)(也为n的函数)。
A应为有关。
(2) 以下数据结构中不属于线性数据结构的是______。
A. 队列B. 线性表C. 二叉树D. 栈[答案]C一棵二叉树的一个结点下面可以有2个子结点,故不是线性结构(通俗地理解,看是否能排成条直线)。
A是先进先出的线性表;B是宏观概念,包括顺序表、链表、堆栈、队列…;D是先进后出的线性表(3) 在一棵二叉树上第5层的结点数最多是______。
A. 8B. 16C. 32D. 15[答案]B[评析]依次从上到下,可得出:第1层结点数为1;第2层结点数为2*1=2;第3层结点数为2*2=4;第n层结点数为2的n-1次幂,如图所示(4) 下面描述中,符合结构化程序设计风格的是______。
A. 使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑B. 模块只有一个入口,可以有多个出口C. 注重提高程序的执行效率D. 不使用goto语句[答案]A[考点]程序设计基础B没这规定,模块之间的可以通过多个接口来耦合C结构化程序设计提倡程序的可读性(可理解性),超过程序执行效率的要求D结构化程序设计限制goto语句的使用,因为goto语句的功能可以用三种基本的控制结构来代替,但也不是绝对不能用,只是限制使用(少用)。
(5) 下面概念中,不属于面向对象方法的是______。
A. 对象B. 继承C. 类D. 过程调用[答案]D面向对象=对象+类+继承+通过消息的通信对象:一组属性及其上的操作的封装体类:一组有相同属性和操作的对象的集合继承:一个类为另一个类上的扩充的方式,子类继承父类,主要目的是代码复用消息:对象间通信的手段D是结构化程序设计或过程式(函数式)语言中的,一般的面向对象程序设计语言兼容这种方式,但不是其特征,故最佳选项为D(6) 在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是______。
c语言

2011 年9 月全国计算机等级考试二级笔试试卷(含答案试卷含答案) 含答案C 语言程序设计 考试时间90 分钟 满分100 分一、选择题 每小题2 分 共70 分1.下列叙述中正确的是DA.算法就是程序结构的设计C.设计算法时只需要考虑结果的可靠性B.设计算法时只需要考虑数据D.以上三种说法都不对。
2.下列关于线性链表的叙述中 正确的是CA.各数据结点的存储空间可以不连续 但它们的存储顺序与逻辑顺序必须一致B.各数据结点的存储顺序与逻辑顺序可以不一致 但它们的存储空间必须连续C.进行插入与删除时 不需要移动表中的元素D.以上三种说法都不对3.下列关于二叉树的叙述中 正确的是bA.叶子结点总是比度为2 的结点少一个B.叶子结点总是比度为2 的结点多一个C.叶子结点数是度为2 的结点数的两倍D.度为2 的结点数是度为1 的结点数的两倍4.软件按功能可以分为应用软件、系统软件和支撑软件 或工具软件 。
下面属于应用软件的是AA.学生成绩管理系统C.UNIX 操作系统B.C 语言编译程序D.数据库管理系统5.某系统总体结构图如下图所示 XY 系统功能2 功能3 功能1 功能2.2 功能2.3 功能2.1 该系统总体结构图的深度是cA.7B.6C.3D.26.程序调试的任务是dA.设计测试用例C.发现程序中的错误B.验证程序的正确性D.诊断和改正程序中的错误7.下列关于数据库设计的叙述中 正确的是aA.在需求分析阶段建立数据字典B.在概念设计阶段建立数据字典C.在逻辑设计阶段建立数据字典D.在物理设计阶段建立数据字典8.数据库系统的三级模式不包括dA.概念模式B.内模式C.外模式D.数据模式9.有三个关系R、S 和T 如下 R S TABCABCABC a12a12c31 b21b21 c31 则由关系R 和S 得到关系T 的操作是bA.自然连接B.差C.交D.并10.下列选项中属于面向对象设计方法主要特征的是aA.继承B.自顶向下C.模块化D.逐步求精11.以下叙述中错误的是cA.C 语言编写的函数源程序 其文件名后缀可以是CB.C 语言编写的函数都可以作为一个独立的源程序文件C.C 语言编写的每个函数都可以进行独立的编译并执行D.一个C 语言程序只能有一个主函数12.以下选项中关于程序模块化得叙述错误的是cA.把程序分成若干相对独立的模块可便于编码和调试B.把程序分成若干相对独立 功能单一的模块 可便于重复使用这些模块C.可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序D.可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序13.以下选项中关于C 语言常量的叙述错误的是DA.所谓常量 是指在程序运行过程中 其值不能被改变的量B.常量分为整型常量、实型常量、字符常量和字符串常量C.常量可分为数值型常量和非数值型常量D.经常被使用的变量可定义成常量14.若有定义语句 int a=10;double b=3.14;,则表达式‘A’+a+b 值得类型是CA.charB.intC.doubleD.float15.如有定义语句 int x=12,y=8,z;,在其后执行语句z=0.9+x/y,则z 的值为bA.1.9B.1C.2D.2.4316.若有定义int a,b;,通过语句scanf(?%d;%d?,&;a,&;b);, 能把整数3 赋给变量a,5 付给变量b 的输入数据是cA.3 5B.3,5C.3;5D.3517.若有定义语句 int k1=10,k2=20;,执行表达式k1=k1>k2 &;&;(k2=k2>k1)后 k1 和k2 的值分别为BA. 0 和1B.0 和20C.10 和1D. 10 和2018.有以下程序#include <stdio.h>Main(){int a=1,b=0;If(--a) b++;Elseif(a==0)b+=2;Elseb+=3;Printf(?%d\n?,b);}程序运行后的输出结果是cA.0 C.2B.1 D.319.下列条件语句中输出结果与其他语句不同的是DA.if a printf(?%d\n?,x); else printf(?%d\n?,y);B.if a==0 printf(?%d\n?,y); else printf(?%d\n?,x);C.if a!=0 printf(?%d\n?,x);else printf(?%d\n?,y);D.if a==0 printf(?%d\n?,x); else printf(?%d\n?,y);20.有以下程序 #include <stdio.h>Main() { int a=7; While(a--); Printf(?%d\n?,a); } 程序运行后的输出结果是aA.- 1B.0C.1D.721.以下不能输出字符A 的语句是B注 字符A的ASCII 码值为65 字符 a 的ASCII 码值为97A.printf(?%c\n?,’a’-32); C.printf(?%c\n?,65);B.printf(?%d\n?,’A’); D.printf(?%c\n?,’B’-1);22.有以下程序#include <stdio.h> Main() { char *s={?abc?}; Do {printf(?%d?,*s%10);++s;} While(*s); } 程序运行后的输出结果是bA.abcB.789C.7890D.97989823.若有定义语句 double a,*p=&a;以下叙述中错误的是aA.定义语句中的*号是一个地址运算符B.定义语句中的*号只是一个说明符C.定义语句中的p 只能存放double 类型变量的地址D.定义语句中 *p=&a 把变量a 的地址作为初值赋给指针变量p24.有以下程序#include <stdio.h>Double f(double x); Main() { double a=0; int I; For(i=0;i<30;i+=10) a+=f((double)i); Printf(?%5.0f\n?,a); } Double f(double x) {return x*x+1;} 程序运行后的输出结果是aA.503 C.500B.401 D.140425.若定义语句 int year=2009,*p=&year;,以下不能使变量year 中的值增至2010 的语句是DA.*p+=1;B.(*p)++;C.++(*p);D.*p++;26.以下定义数组的语句中错误的是cA.int num[]={1,2,3,4,5,6};B.int num[][3]={{1,2},3,4,5,6};C.intnum[2][4]={{1,2},{3,4},{5,6}};D.intnum[][4]={1,2,3,4,5,6};27.有以下程序#include <stdio.h> Void fun(int *p){printf(?%d\n?,p[5]);} Main() {int a[10]={1,2,3,4,5,6,7,8,9,10}; Fun(&a[3]); } 程序运行后的输出结果是DA.5 C.8B.6 D.928. 有以下程序#include<stdio.h>#define Void {int i;For(i=0;i<N;i++) b[j]=a[i]][j]-a[i][N,1-i];}Main() N 4fun(int a[][N],int b[]){intx[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},y[N],i;Fun(x,y); For(i=0;i<N;i++)printf(?%d?,y[i]);程序运行后的输出结果是bA.-12,-3,0,0B.-3 -1,1,3C.,0,1,2,3D.-3 -3 -3 -3 printf(?\n?);29.有以下函数Int fun(char *x,char *y) ( int n=0; While((*x=*y)&;&;*x!=’\0’){x++;y++;n++;} Return n; } 函数的功能是bA.查找x 和y 所指字符串中是否有‘\0‘B.统计x 和y 所指字符串中最前面连续相同的字符个数C.将y 所指字符串赋给x 所值存储空间D.统计x 和y 所指字符串中相同的字符个数30.若有定义语句 char *s1=?OK?;*s2=?ok?;,以下选项中 能够输出?OK?的语句是dA.if(stremp(s1,s2)==0) puts(s1)B.if(stremp(s1,s2)!=0) puts(s2);C.if(stremp(s1,s2)==1) puts(s1);D.if(stremp(s1,s2)!=0); puts(s1);31.以下程序的主函数中调用了在其前面定义的fun 函数#include<stdio.h> Main() {double a[15],k; K=fun(a); } 则以下选项中错误的fun 函数首部是DA.doublefun(double a[15])B.double fun(double *a)C.double fun(double a[])D.doublefun(doublea)32.有以下程序 #include<stdio.h> #include<string.h> Main() { char a[5][10]={?china?,?beijing?,?you?,?tiananmen?,?welcome?}; Int I,j; char t[10]; For(i=0;i<4;i++) For(j=i+1;j<5;j++)If(stremp(a[i],a[j])>0) { strepy(t,a[i]); Puts(a[3]); } 程序运行后的输出结果是A.beijingB.chinaC.welcomeD.tiananmen strepy(a[i],a[j]); strepy(a[i],t);}33.有以下程序 #include<stdio.h> Int f(int m) { static int n=0; N+=m; Return n; } Main() { int n=0; Printf(?%d,?,f(++n)); Printf(?%d\n?,f(n++)); 程序运行后的输出结果是AA.1,2B.1,1C) 2,3D) 3,334.有以下程序#include<stdio.h> Main() { char ch[3][5]={?AAAA?,?BBB?,?CC?}Printf(?%s\n?,ch[1]); } 程序运行后的输出的结果是DA. AAAAC.BBBCCD.BBB35.有以下程序#include<stdio.h> #include<string.h>Void fun(char *u,int n) { char x,*y1,*y2; Y1=u;y2=u+n-1; While(y1<y2) {s=*y1;*y1=*y2;*y2=s;p1++;p2--;} } Main() { char a[]=?1,2,3,4,5,6?; Fun(a,strem(a));puts(a); } 程序运行后的输出结果是AA.654321B.115611C.153525D.12345636.有以下程序#include<stdio.h>#include<string.h> typedef STU struct{char name[];char sex;int score[2]}STU;f(STU i){STU i={?Zhao?,?m?,85,90}; Int I;Strcpy(a name,b name);a sex=b sex;For(i=0;i<2;i++) a score[i]=b score[i];Return a; }Main() STU c={?Qian?,?f?,95,92},d; D=f(c); Printf(?%s,%c,%d,%d,?,,d.sex,d.score[0],d.score[1]); Printf(?%s,%c,%d,%d\n?,,c.sex,c.score[0],c.score[1 ]); } 程序运行后的输出结果是a A. zhao,m,85,90,Qian,f,95,92 B. zhao,m,85,90,zhao,m,85,90C. Qian,f,95,92,Qian,f,95,92D. Qian,f,95,92,zhao,m,85,9037.在以下程序#include<stdio.h>Main(){struct node{int n;struct node *next;}*p;Struct node x[3]={{2,x+1},{4,x+2},{6,NULL}};P=x; Printf(?%d,?,p>a);Printf(?%d\n?,p>next>a); 程序运行后的输出结果是BA.2,3B.2,4C.3,4D.4,638.有以下程序#include<stdio.h>Main() { int a=2,b; B=a<<2; printf(?%d\n?,b); } 程序运行后的输出结果是DA.2B.4C.6D.839.以下选项中叙述错误的是aA.C 程序函数中定义的赋有初始值的静态变量 每调用一次函数 赋一次初值B.在C 程序的同一函数中 各复合语句内可以定义变量 其作用域仅限本复合语句内C.C 程序函数中定义的自动变量 系统不能自动赋确定的初值D.C 程序函数的形参不可以说明为static 型变量40.有以下程序#include<stdio.h> Main() {FILE Int *fp; k,n,I,a[6]={1,2,3,4,5,6};Fp=fopen(?d2.dat?,?w?); For(i=0;i<6;i++) fprintf(fp,?%d\n?,a[i]); Fclose(fp); Fp=fopen(?d2.dat?,?r?); For(i=0;i<3;i++) Fclose(fp); Printf(?%d,%d\n?,k,n); } 程序运行后的输出结果是cA.1,2B.3,4C.5,6D.123,456 fscanf(fp,?%d%d?,&;k,&;n);二、填空题(每空2 分 共30 分)1.数据结构分为线性结构与非线性结构 带链的栈属于【1】2.在长度为n 的顺序存储的线性表中插入一个元素 最坏情况下需要移动表中【2】3.常见的软件开发方法有结构化方法和面向对象方法 对某应用系统经过需求分析建立数据流图 DFD 则应采用4.数据库系统的核心是【3】【4】方法。
计算机等级二级公共基础知识2011年09月真题

计算机等级二级公共基础知识2011年09月真题
一、单项选择题
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。
1. 下列叙述中正确的是。
A.算法就是程序
B.设计算法时只需要考虑数据结构的设计
C.设计算法时只需要考虑结果的可靠性
D.以上三种说法都不对
答案:D
2. 下列关于线性链表的叙述中,正确的是。
A.各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致
B.各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续
C.进行插入与删除时,不需要移动表中的元素
D.以上三种说法都不对
答案:C
3. 下列关于二叉树的叙述中,正确的是。
A.叶子结点总是比度为2的结点少一个
B.叶子结点总是比度为2的结点多一个
C.叶子结点数是度为2的结点数的两倍
D.度为2的结点数是度为1的结点数的两倍
答案:B
4. 软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。
下面属于应用软件的是。
A.学生成绩管理系统
B.C语言编译程序
C.UNIX操作系统
D.数据库管理系统
答案:A
5. 某系统总体结构图如下图所示:
该系统总体结构图的深度是。
A.7
B.6
C.3
D.2。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2011年9月全国计算机二级C语言_公共基础120题详解版(1) 下面叙述正确的是______。
A. 算法的执行效率与数据的存储结构无关B. 算法的空间复杂度是指算法程序中指令(或语句)的条数C. 算法的有穷性是指算法必须能在执行有限个步骤之后终止D. 以上三种描述都不对(1)[答案]C[考点]程序设计基础[评析]时间复杂度:在运行算法时所耗费的时间为f(n)(即n的函数)。
空间复杂度:实现算法所占用的空间为g(n)(也为n的函数)。
A应为有关。
(2) 以下数据结构中不属于线性数据结构的是______。
A. 队列B. 线性表C. 二叉树D. 栈(2)[答案]C[考点]数据结构与算法[评析]一棵二叉树的一个结点下面可以有2个子结点,故不是线性结构(通俗地理解,看是否能排成条直线)。
A是先进先出的线性表;B是宏观概念,包括顺序表、链表、堆栈、队列…;D 是先进后出的线性表(3) 在一棵二叉树上第5层的结点数最多是______。
A. 8B. 16D. 15(3)[答案]B[考点]数据结构与算法[评析]依次从上到下,可得出:第1层结点数为1;第2层结点数为2*1=2;第3层结点数为2*2=4;第n层结点数为2的n-1次幂,如图所示(4) 下面描述中,符合结构化程序设计风格的是______。
A. 使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑B. 模块只有一个入口,可以有多个出口C. 注重提高程序的执行效率D. 不使用goto语句(4)[答案]A[考点]程序设计基础[评析]B没这规定,模块之间的可以通过多个接口来耦合C结构化程序设计提倡程序的可读性(可理解性),超过程序执行效率的要求D结构化程序设计限制goto语句的使用,因为goto语句的功能可以用三种基本的控制结构来代替,但也不是绝对不能用,只是限制使用(少用)。
(5) 下面概念中,不属于面向对象方法的是______。
A. 对象B. 继承C. 类D. 过程调用[答案]D[考点]软件工程基础[评析]面向对象=对象+类+继承+通过消息的通信对象:一组属性及其上的操作的封装体类:一组有相同属性和操作的对象的集合继承:一个类为另一个类上的扩充的方式,子类继承父类,主要目的是代码复用消息:对象间通信的手段D是结构化程序设计或过程式(函数式)语言中的,一般的面向对象程序设计语言兼容这种方式,但不是其特征,故最佳选项为D(6) 在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是______。
A. 可行性分析B. 需求分析C. 详细设计D. 程序编码(6)[答案]B[考点]软件工程基础[评析]分析员对用户的要求作出分析,并画出数据流程图,该图通俗易懂,不涉及到如何在计算机上实现,这是需求分析阶段。
软件工程中的瀑布模型:问题定义,可行性研究,需求分析,概要设计,详细设计,编码,测试,运行和维护相关链点:层次图和HIPO图是概要设计中的工具图;程序流程图、N-S图、问题分析PAD 图、设计程序语言PDL是详细设计中的工具图(7) 在软件开发中,下面任务不属于设计阶段的是______。
A. 数据结构设计B. 给出系统模块结构C. 定义模块算法D. 定义需求并建立系统模型(7)[答案]D[考点]软件工程基础[评析]A、B为概要设计中的,C为详细设计中的,D为分析阶段中的(8) 数据库系统的核心是______。
A. 数据模型B. 数据库管理系统C. 软件工具D. 数据库(8)[答案]B[考点]数据库设计基础[评析]数据库管理系统DBMS是数据库系统的核心,上层与用户打交道,底层与操作系统接口注意点:数据库系统与数据库管理系统的区别前者指的一整套业务系统,包括用户、应用程序、DBMS及操作系统的支持(9) 下列叙述中正确的是______。
A. 数据库是一个独立的系统,不需要操作系统的支持B. 数据库设计是指设计数据库管理系统C. 数据库技术的根本目标是要解决数据共享的问题D. 数据库系统中,数据的物理结构必须与逻辑结构一致(9)[考点]数据库设计基础[评析]晕倒,数据库管理系统是人人都可设计的吗?那SYBASE和ORACLE等不都没饭吃了?普通人的数据库设计就是在DBMS的支持下设计几张表格,命几个名而已;D也错了的,数据库具有物理独立性和逻辑独立性,比如QQ是一个完整的数据库系统,我们使用的只是客户端应用程序,其数据库在腾讯的服务器上,物理独立性呢指的是数据库的底层结构改变了,而QQ的客户端不用变,对应地,逻辑独立性是指QQ的客户端改变了,数指据库的结构不用变了,否则,这么多QQ版本,那腾讯的服务器不是乱了套?(10) 下列模式中,能够给出数据库物理存储结构与物理存取方法的是______。
A. 内模式B. 外模式C. 概念模式D. 逻辑模式(10)[答案]A[考点]数据库设计基础[评析]通过前些题可知道,数据库的物理结构最底层,即对应内模式,对应的模式映像为内模式/模式(概念模式映像),逻辑独立性则对应于模式/外模式映像(11) 算法的时间复杂度是指______。
A. 执行算法程序所需要的时间B. 算法程序的长度C. 算法执行过程中所需要的基本运算次数D. 算法程序中的指令条数(11)[答案]C[考点]数据结构与算法算法的复杂度分时间复杂度和空间复杂度。
时间复杂度:在运行算法时所耗费的时间为f(n)(即n的函数)。
空间复杂度:实现算法所占用的空间为g(n)(也为n的函数)。
称O(f(n))和O(g(n))为该算法的复杂度。
简单的例子比如常见的顺序结构时间复杂度为O(1),1层循环里面次数为n,时间复杂度就是O(n),2层循环for i=1 to n,for j=1 to n算法时间复杂度为O(n2)(里面为n的平方),复杂度主要用于算法的效率比较与优化,比如排序,查找…(12) 下列叙述中正确的是______。
A. 线性表是线性结构B. 栈与队列是非线性结构C. 线性链表是非线性结构D. 二叉树是线性结构(12)[答案]A[考点]数据结构与算法[评析]一棵二叉树的一个结点下面可以有2个子结点,故不是线性结构(通俗地理解,看是否能排成条直线)。
此题与(2)题类似(13) 设一棵完全二叉树共有699个结点,则在该二叉树中的叶子结点数为______。
A. 349B. 350C. 255D. 351(13)[答案]B[考点]数据结构与算法[评析]完全二叉树:若二叉树中最多只有最下面两层的结点的度可以小于2,并且最下面一层的结点(叶结点)都依次排列在该层最左边的位置上,这样的二叉树为完全二叉树。
比如图:完全二叉树除叶结点层外的所有结点数(叶结点层以上所有结点数)为奇数,此题中,699是奇数,叶结点层以上的所有结点数为保证是奇数,则叶结点数必是偶数,这样我们可以立即选出答案为B!如果完全二叉树的叶结点都排满了,则是满二叉树,易得满二叉树的叶结点数是其以上所有层结点数+1比如图:此题的其实是一棵满二叉树,我们根据以上性质,699+1=700,700/2=350,即叶结点数为350,叶结点层以上所有结点数为350-1=349。
(14) 结构化程序设计主要强调的是______。
A. 程序的规模B. 程序的易读性C. 程序的执行效率D. 程序的可移植性(14)[答案]B[考点]程序设计基础[评析]又是结构化的问题,何谓结构化?简单地比如:VB: If...End IfC: if..{...}Pascle: Begin ...End我们在"结构"的中间写代码,从哪执行到哪结束我们能很快抓住!此题中重要性为:B>C>D(15) 在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是______。
A. 概要设计B. 详细设计C. 可行性分析D. 需求分析(15)[答案]D[考点]软件工程基础[评析]题中所述为需求分析可行性研究包括经济可行性、技术可行性、操作可行性,即以最小的代价确定系统的规模是否现实概要设计的任务是确定软件的总体结构、子结构和模块的划分详细设计的任务是确定每一模块的实现细节,包括数据结构、算法和接口也许有人这么久了还不知道什么叫系统,什么叫模块。
晕倒,这里罗嗦一下,软件工程中的系统指的整个软件系统,比如QQ的所有东西,我们用的是客户端程序,实际的东西放在腾讯公司的服务器上,主要是数据库,包括在中间的传输过程,这一整个相关的东东都叫做OICQ的系统;什么叫模块,这里不单指如VB里的"标准模块"、"类模块",也不单指一个窗体或者一个文件,宏观上讲,软件工程中把一种功能或相关功能把它做成一个模块,这个模块有可能是一个过程,有可能是一个函数…从功能角度度量模块内的联系为模块的内聚(一般来说越强越好,不易出错);模块之间的联系为耦合,比如我们编程中常用把一实参的值赋给了函数中的形参,使函数完成某一功能,耦合度越低越好,独立性就强;何谓独立性?比如我们二级编程都有考到全局变量、局部变量,函数中的局部变量独立性很强,函数外无法访问…何谓变量?晕~~~~~~~如果这都要说,那你可以不用考二级了。
(16) 数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。
下列图符名标识的图符不属于数据流图合法图符的是______。
A. 控制流B. 加工C. 数据存储D. 源和潭(16)[答案]A[考点]软件工程基础[评析]数据流图用于需求分析阶段,在此阶段我们只考虑大致的数据流流向,而不关心内部具体的处理,以及如何在计算机上实现,不必讨论控制流,我们只关心的:数据流、数据储存、变换/加工(相当于一个黑盒,不关心内部细节)、外部实体,数据流图通俗易懂,因为它远离了计算机,用户(无需懂编程)和软件人员都易接受。
比如一个简单的软件系统逻辑模型:输入流和输出流即D中的源和潭。
(17) 软件需求分析阶段的工作,可以分为四个方面:需求获取、需求分析、编写需求规格说明书以及______。
A. 阶段性报告B. 需求评审C. 总结D. 都不正确(17)[答案]B[考点]软件工程基础[评析]评审(复审)每阶段都有,把前三个方面说完了,还剩什么呢?此题需要记一下,至于各名词的解释,顾名即可思义。
(18) 下述关于数据库系统的叙述中正确的是______。
A. 数据库系统减少了数据冗余B. 数据库系统避免了一切冗余C. 数据库系统中数据的一致性是指数据类型的一致D. 数据库系统比文件系统能管理更多的数据(18)[答案]A[考点]数据库设计基础[评析]关于数据管理技术的三个阶段如下:1.人工管理阶段人工管理数据的特点是:(1)数据不保存。
(2)数据无专门软件进行管理。