2012年9月全国计算机等级考试二级C语言有答案真题

合集下载

2012年9月份二级C语言答案汇总(100套题)

2012年9月份二级C语言答案汇总(100套题)

.,, ( 共 4 套 )来自52、 17、 21,,,,,,,,,,,,,,,,,,,, 十二、四舍五入操作
.,,,,
.(共 3 套 )
16,,,,,,,,,,,,,,,,,,,, 十三、链表操作
.,,,,,,,,
.( 共 1 套 )
22、 85. ,,,,,,,,,,,,,, 十四、其它
.,,,,,,,,,,,
for(i=1;i<=1000;i++) if((i%7==0||i%11==0)&&(i%77!=0)) a[cnt++]=i; *n=cnt;
}
3. 参考答案 :
1. n-- 2.s[i]=s[n] 参考答案 :
3.s[n]=t
1.s[j]=s[i]; 应改为 :s[j++]=s[i]; 2.s[j]= ” \0” ;应改为 :s[j]= ’ \0’ ; 参考答案 :
void fun(int x, int pp[], int *n)
{
int i,cnt=0;
for(i=1;i<=x;i++) if((x%i==0)&&(i%2!=0)) pp[cnt++]=i;
*n=cnt;
}
4. 参考答案 :
1.i<=n 2.|| 3.1.0 参考答案 : 1.void fun(char *s,int a,int b) 应改为 void fun(char *s,int *a,int *b) 2.a++ 应改为 (*a)++; 3.b++ 应改为 (*b)++; 参考答案 :---------26 分 void fun(char *tt, int pp[]) {int i;

2012年9月计算机二级C语言上机题库及答案(破译版)

2012年9月计算机二级C语言上机题库及答案(破译版)

计算机二级c语言上机题库内部资料,切勿外传!.第1套填空题请补充FUN函数,FUN函数的功能是求10的阶乘。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。

试题程序:#include <stdio.h>long fun(int n){if (___1___)return (n*fun(___2___));return ___3___;}main(){p rintf("10!=%ld\n", fun(10));}第1处填空:n>1或1<n第2处填空:n-1第3处填空:1或11或1L改错题下列给定程序的功能是:读入一个整数K(2〈=K〈=10000),打印它的所有因子(即所有为素数的因子)。

例如,若输入整数2310,则应输出:2、3、5、7、11。

请改正程序中的错误,使程序能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include <conio.h>#include <stdio.h>/********found********/IsPrime(int n);{int i, m;m = 1;/********found********/for (i=2; i<n; i++)if !(n%i){m = 0;break;}return(m);}main(){int j, k;printf("\nplease enter an integer number between 2 and 10000:");scanf("%d", &k);printf("\n\nThe prime factor(s) of %d is(are):", k);for (j=2; j<k; j++)if ((!(k%j)) && (IsPrime(j)))printf(" %4d,", j);printf("\n");}第1处:Isprime(int n);应改为Isprime(int n)第2处:if !(n%i)应该为if(!(n%i))编程题M个人的成绩存放在score数组中,请编写函数fun,它的功能是:返回低于平均分的认输,并将低于平均分的分数放在below所指的数组中。

2012年9月全国计算机c语言试题

2012年9月全国计算机c语言试题

2006年4月全国计算机等级考试二级C一、选择题((1)一(10)每题2分,(11)一(50)每题1分,共60分)下列各题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)对如下二叉树ABDECF进行后序遍历的结果为A)ABCDEF B)DBEAFC C)ABDECF D)DEBFCA(7)在深度为7的满二叉树中,叶子结点的个数为A)32 B)31 C)64 D)63(8)“商品”与“顾客”两个实体集之间的联系一般是A)一对一 B)一对多 C)多对一 D)多对多(9)在E-R图中,用来表示实体的图形是A)矩形 B)椭圆形 C)菱形 D)三角形(10)数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是A)DB包含DBS和DBMS B)DBMS包含DB和DBSC)DBS包含DB和DBMS D)没有任何关系(11)以下不合法的用户标识符是A)j2_KEY B)Double C)4d D)_8_(12)以下不合法的数值常量是A)011 B)1e1 C)8.0E0.5 D)0xabcd(13)以下不合法的字符常量是A)′\018′B)′\"′C)′\\′D)′\xcc′(14)表达式3.6-5/2+1.2+5%2的值是A)4.3 B)4.8 C)3.3 D)3.8(15)以下能正确定义字符串的语句是A)char str[]={′\064′}; B)char str="kx43";C)char str="; D)char str[]="\0";(16)以下数组定义中错误的是A)int x[][3]={0};B)int x[2][3]={{l,2},{3,4},{5,6}};C)int x[][3]={{l,2,3},{4,5,6}};D)int x[2][3]={l,2,3,4,5,6};(17)若要求从键盘读入含有空格字符的字符串,应使用函数A)getc() B)gets() C)getchar()D)scanf()(18)以下四个程序中,完全正确的是A)#include <stdio.h>B)#include <stdio.h>main();main(){/*programming*/{/*/ programming /*/printf("programming!\n");}printf("programming!\n");}C) #include <stdio.h>D) include <stdio.h>main()main(){/*/*programming*/*/{/*programming*/printf("programming!\ n");}printf("programming!\n");}(19)若有定义:floatx=1.5;int a=1,b=3,c=2;则正确的switch语句是A)switch(x)B)switch((int)x);{case 1.0:printf("*\n"); {case 1:printf("*\n");case 2.0:printf("**\n");} case 2:printf("**\n");}C)switch(a+b)D)switch(a+b){case 1:printf("*\n");{case 1:printf("*\n");case 2+1:printf("**\n");}case c:printf("**\n");}(20)若各选项中所用变量已正确定义,函数fun中通过return语句返回一个函数值,以下选项中错误的程序是A)main()B)float fun(int a,int b){……}{……x=fun(2,10);……}main()float fun(int a,int b){……}{……x=fun(i,j);……}C)float fun(int,int);D)main()main() {float fun(int i,int j);{……x=fun(2,10);……} ……x=fun(i,j);……}float fun(int a,int b){……} float fun(int a,int b){……}(21)在以下给出的表达式中,与while(E)中的(E)不等价的表达式是A)(!E==0) B)(E>0‖E<0) C)(E==0) D)(E!=0)(22)要求通过while循环不断读入字符,当读入字母N时结束循环。

2012年9月全国计算机的等级考试二级C语言笔试试卷答案详解及解析汇报汇报

2012年9月全国计算机的等级考试二级C语言笔试试卷答案详解及解析汇报汇报

(1)下列链表中,其逻辑结构属于非线性结构的是_________。

A)双向链表B) 带链的栈 C) 二叉链表D) 循环链表(1)C 【解析】见/uuxzhang上全国计算机二级考试参考资料_数据结构.pps 中第13张说明:链表存储结构是数据的存储结构;排除链表因素,从数据逻辑结构来看,线性结构包括线性表、栈和队;非线性结构包括树形结构和图形结构,所以二叉树是树形结构,即非线性结构。

(2)设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。

现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为A) 20 B) 0或35 C) 15 D) 16(2)B 【解析】见/uuxzhang上全国计算机二级考试参考资料_数据结构.pps中第100-101张关于入队(Q.rear=Q.rear+1)与退队(Q.front=Qfront+1)运算规则,此外第一次入队为Q.rear=1;第一次退队为Q.front=1。

并假定循环队列最大个数为maxsize,其相应存储空间为1: maxsize,则循环队列的入队与退队图例和运算后元素个数的确定原则如下:循环队列中的元素个数或称队列长度通用计算公式:(Q.rear-Q.front+ maxsize)% maxsize 例如,Q.rear=20,Q.front=15,则循环队列中的元素个数=(20-15+35)%35=5;Q.rear=40,Q.front=15,则循环队列中的元素个数=(40-15+35)%35=25;本题根据Q.rear=Q.front=15,maxsize=35,则循环队列中元素个数=(15-15+35)%35=0或35;(3)下列关于栈的叙述中,正确的是A) 栈底元素一定是最后入栈的元素B) 栈操作遵循先进后出的原则C) 栈顶元素一定是最先入栈的元素D) 以上三种说法都不对(3)B 【解析】见/uuxzhang上全国计算机二级考试参考资料_数据结构.pps中第63张幻灯片说明:栈元素入、退原则:先进后出(FILO)或后进先出(LIFO)。

全国2012年9月计算机等级考试二级C语言上机题库100套(第二部分50至100套)(二级C语言)

全国2012年9月计算机等级考试二级C语言上机题库100套(第二部分50至100套)(二级C语言)

第50套:给定程序中,函数fun的功能是:有N×N矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为0。

例如,若N=3,有下列矩阵:1 2 34 5 67 8 9计算结果为1 0 06 5 010 14 9请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!给定源程序:#include <stdio.h>#define N 4/**********found**********/void fun(int (*t)___1___ )/* 宏为世纪教育 */{ int i, j;for(i=1; i<N; i++){ for(j=0; j<i; j++){/**********found**********/___2___ =t[i][j]+t[j][i];/**********found**********/___3___ =0;}}}main(){ int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,1 0}, i, j;printf("\nThe original array:\n");for(i=0; i<N; i++){ for(j=0; j<N; j++) printf("%2d ",t[i][j]);printf("\n");}fun(t); printf("\nThe result is:\n");for(i=0; i<N; i++){ for(j=0; j<N; j++) printf("%2d ",t[i][j]);printf("\n");}}解题思路:第一处:形参t的定义,整数数组其宽度为N,所以应填:[N]。

全国计算机等级考试二级C++真题2012年9月

全国计算机等级考试二级C++真题2012年9月

全国计算机等级考试二级C++真题2012年9月(总分:100.00,做题时间:90分钟)一、选择题(每小题2分,共70分) (总题数:35,分数:70.00)1.下列链表种,其逻辑结构属于非线性结构的是(分数:2.00)A.循环链表B.双向链表C.带链的栈D.二叉链表√解析:2.设循环队列的存储空间为Q(1:35),初始状态为front=rear=35,现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为(分数:2.00)A.16B.20C.0或35 √D.15解析:3.下列关于栈的叙述中,正确的是(分数:2.00)A.栈顶元素一定是最先入栈的元素B.栈操作遵循先进后出的原则√C.栈底元素一定是最后入栈的元素D.以上三种说法都不对解析:4.在关系数据库中,用来表示实体间联系的是(分数:2.00)A.二维表√B.树状结构C.属性D.网状结构解析:5.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,则实体部门和职员间的联系是(分数:2.00)A.m:1联系B.1:m联系√C.1:1联系D.m:n联系解析:6.有两个关系R和S 如下R得到关系S的操作是(分数:2.00)A.自然连接B.选择√C.并D.投影7.数据字典(DD)所定义的对象都包含于(分数:2.00)A.程序流程图B.数据流图(DFD图)√C.方框图D.软件结构图解析:8.软件需求规格说明书的作用不包括(分数:2.00)A.软件可行性研究的依据√B.用户与开发人员对软件要做什么的共同理解C.软件验收的依据D.软件设计的依据解析:9.下面属于黑盒测试方法的是(分数:2.00)A.逻辑覆盖B.语句覆盖C.路径覆盖D.边界值分析√解析:10.下面不属于软件设计阶段任务的是(分数:2.00)A.数据库设计B.算法设计C.软件总体设计D.制定软件确认测试计划√解析:11.下列关于函数重载的叙述中,错误的是(分数:2.00)A.重载函数的参数个数可以不同B.重载函数的参数类型可以不同C.重载函数的返回值类型必须不同√D.重载函数的参数个数或参数类型必须有所不同解析:12.下列关于类成员对象构造函数调用顺序的叙述中,正确的是(分数:2.00)A.与它们在初始化列表中顺序相同B.与它们在类中声明的顺序相同√C.与析构函数的调用顺序相同D.顺序不确定解析:13.下列关于派生类的叙述中,错误的是(分数:2.00)A.派生类至少要有一个基类B.派生类中包括了从基类继承的成员C.一个派生类可以作为另一个派生类的基类D.基类成员被派生类继承以后访问权限保持不变√14.下列关于运算符重载的叙述中,正确的是(分数:2.00)A.通过运算符重载机制可以为C++语言扩充新的运算符B.运算符重载的作用是使已有的运算符作用于类的对象√C.重载运算符的操作数类型可以全部为基本类型D.所有运算符都可以重载解析:15.下列关于模板的叙述中,错误的是(分数:2.00)A.调用模板函数时,有时可以省略模板实参B.函数模板的每个实例就是一个函数定义C.类模板的每个实例就是一个类定义√D.类模板的实例是一个类对象解析:16.下列关于输入输出流的叙述中,正确的是(分数:2.00)A.一个文件流可以与一个数据文件相联系√B.cin是专门从键盘输入数据的输入流类C.流运算符<<用来从输入流中读取数据D.宽度设置的效果永久有效解析:17.下列选项中可以做C++标识符的是(分数:2.00)A._256 √B.fat/pigC.deleteD.5char解析:18.关键字unsigned不能修饰的类型是(分数:2.00)A.char √B.intC.floatD.long int解析:19.有如下程序: #include using namespace std; int main(){ char a; cin>>a; if(a='*') cout<<"***"<<<"###"<(分数:2.00)A.***B.### √C.***###D.无输出解析:20.下列对一维数组a的定义中,语法正确的是(分数:2.00)A.int a(10)B.int n=7,a[n];C.int n;cin>>n;int a[n];D.const int size=10;int a[size]; √解析:21.假设函数fun已经定义,其原型为”void fun(int a,int b=7,char *p=”**”);”,下列函数调用中错误的是(分数:2.00)A.fun(5)B.fun(5,8)C.fun(6,”##”)√D.fun(0,0.”==”)解析:22.已经函数print()没有返回值,如果在类中将之声明为常成员函数,正确的是(分数:2.00)A.void print()const; √B.const void print();C.void const print();D.void print(const);解析:23.已知基类Employees只有一个构造函数,其定义如下: Employee::Employee(int n):id(n){} Manager 是Employees的派生类,则下列对Manager的构造函数的定义中,正确的是(分数:2.00)A.Manager::Manager(int n):id(n){}B.Manager::Manager(int n){id=n;}C.Manager::Manager(int n):Employee(n){} √D.Manager::Manager(int n){Employee(n);}解析:24.已知将运算符“+”和“*”作为类Complete的成员函数重载,设c1和c2是类Complex的对象,则表达式c1+c2*c1等价于(分数:2.00)A.c1.operator*(c2.operator+(c1))B.c1.operator+(c2.operator*(c1)) √C.c1.operator*(c1.operator+(c2))D.c2.operator+(c1.operator*(c1))解析:25.下列类模板的定义中语法格式错误的是(分数:2.00)A.template class Buffer{/*…*/};B.template class Buffer{/*…*/};C.template class Buffer{/*…*/};D.template class Buffer{/*…*/};√解析:26.在C++中既可以用于文件输入又可以用于文件输出的流类是(分数:2.00)A.fstream √B.ifstreamC.ofstreamD.iostream解析:27.有如下类定义:class MyClass{ int b;char a;double c; public: MyClass():c(0.0),b(0),a(','){} }; 创建这个类的对象时,数据成员的初始化顺序是(分数:2.00)A.a,b,cB.c,b,a √C.b,a,cD.c,a,b解析:28.有如下类定义 class MyClass{ int x; public: MyClass():x(0),y(0){} int GetX(){return x;} void SetX(int xx){x==xx;} int y; }; 已知obj是类MyClass的对象,下列语句中违反类成员访问控制权限的是(分数:2.00)A.obj.x; √B.obj.y;C.obj.GetX();D.obj.SetX(0);解析:29.有如下类定义 class Test{ char a; const char b; public:Test(char c){a=c;b=c;} //第1行 void f(char a)const{this->a=a;} //第2行void g(char b){this->b=b;} //第3行char h()const{return a;} //第4行 }; 编译时没有错误的行是(分数:2.00)A.第1行B.第2行C.第3行√D.第4行解析:30.有如下程序:#include using namespace std; class A{ public: A(){cout<<'C';} }; class B:public A{ public: B(){cout<<'G';} ~B(){cout<<'T';} }; int main(){ B obj; return 0; } 运行这个程序的输出结果是(分数:2.00)A.GATCB.AGTC √C.GACTD.AGCT解析:31.有如下程序: #include using namespace std; class Base{ public; void fun(){cout<<'B';} }; class Derived:public Base{ public; void fun(){ cout<<'D';} }; int main(){ Derived d; d.fun(); return 0; } 若程序的输出结果是BD,则划线处缺失的部分是(分数:2.00)A.fun()B.Base.fun()C.Base::fun() √D.Base->fun()解析:32.有如下程序:#include using namespace std; class B{ public; virtual void f() {cout<<"B";} void g(){cout<<"B";} } class D;public B { public; void f(){cout<<"D";} void g(){coun<<"D";} } void h(B*p){p->f();p->g();} int main(){ D obj; h(&obj); return 0; } 运行这个程序的输出结果是:(分数:2.00)A.DDC.BDD.DB √解析:33.有如下程序: #include #include using namespace std; class MyString{ public; char str[80]; MyString(const char*s) {strcpy(str,s);} MyString&operator+=(MyString a){ strcat(str,a.str); return*this; } }; ostream&operator<<(ostream&s,const MyString&z){return s << z.str} intmain(){ MyString x("abc"),y("cde"); cout<<(分数:2.00)A.abcB.cdeC.abcdeD.abccde √解析:34.有如下程序: #include #include using namespace std; intmain(){ cout<<setfill('#')<<setw(4)<<"OK"<<123<(分数:2.00)A.##OK123 √B.##OK#123C.OK##123D.OK##123#解析:35.有如下语句序列: ifstream infile("DATA.DAT"); if(infile.good())cout<<"A"; else{ cout<<"B"; ofstream outfile("DATA.DAT"); if(outfile.fail())cout<<"C";else cout<<"D"; } 若执行这个语句序列显示的是BD,则说明文件DATA.DAT(分数:2.00)A.以读方式打开成功B.以读方式打开失败,但以写方式打开成功C.以读方式打开失败,以写方式打开也失败√D.以读方式打开成功,以写方式打开也成功解析:二、填空题(每空2分,共30分) (总题数:15,分数:30.00)36.一棵二叉树共有47个结点,其中有23个度为2的结点,假设根结点在底1层,则该二叉树的深度为【1】。

全国计算机等级考试二级C语言机试真题2012年09月

全国计算机等级考试二级C语言机试真题2012年09月

全国计算机等级考试二级C语言机试真题2012年09月(总分:100.00,做题时间:90分钟)一、程序填空题(总题数:1,分数:30.00)1.下列给定程序中已建立一个带头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。

函数fun的功能是:把形参x的值放入一个新结点并插入链表中,使插入后各结点数据域中的数据仍保持递增有序。

请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。

注意:部分源程序给出如下。

不得增行或删行,也不得更改程序的结构!试题程序:#include <stdio.h>#include <stdlib.h>#define N 8typedef struct listint data;struct 1ist * next;SLIST;void fun(SLIST * h, int x)SLIST * P, * q, * s;s=(SLIST* )malloc(sizeof(SLIST));/********** found********** /s->data=______;q=h;p=h->next;while(p! =NULL && x>p->data)/********** found********** /q=______;p=p->next;s->next=p;/********** found********** /q->next=______;SLIST * creatlist(int * a)SLIST * h, * p, * q; int i;h=p=(SLIST * )malloc(sizeof(SLIST));for(i=0; i<N; i ++)q=(SLIST * )malloc(sizeof(SLIST));q->data=a[i]; p->next=q; p=q;p->next=0;return h;void outlist(SLIST * h)SLIST * p;p=h->next;if(p==NULL)printf("/nThe list is NULL! /n");elseprintf("/nHead");do printf("->% d", p->data);p=p->next;while(p!=NULL);printf("->End/n");main()SLIST * head; int x;int a[N]=11, 12, 15, 18, 19, 22, 25, 29;head=creatlist(a);printf("/nThe list before inserting: /n");outlist(head);printf("/nEnter a number: ");scanf("%d", &x);fun(head, x);printf("/nThe list after inserting: /n");outlist(head);(分数:30.00)填空项1:__________________ (正确答案:(1)x (2)p (3)s)解析:[考点] 本题考查:链表的基本操作。

全国计算机等级考试二级C++真题2012年9月

全国计算机等级考试二级C++真题2012年9月

mhtml:file://C:\Documents and Settings\ll\My Documents\新建文件夹 (4)\全国计算...
2014-5-10
维普在线考试系统
Page 4 of 13
该题您未回答:х 该问题分值: 2
答案:A
17. 下列选项中可以做C++标识符的是
j A _256 k l m n j C delete k l m n j B fat/pig k l m n j D 5char k l m n
该题您未回答:х 该问题分值: 2
答案:B
4. 在关系数据库中,用来表示实体间联系的是
j A 二维表 k l m n j C 属性 k l m n j B 树状结构 k l m n j D 网状结构 k l m n
该题您未回答:х 该问题分值: 2
答案:A
5. 公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,则 实体部门和职员间的联系是
2014-5-10
维普在线考试系统
Page 2 of 13
6. 有两个关系R和S 如下:
则由关系R得到关系S的操作是
n A 自然连接 j k l m nC 并 j k l m n B 选择 j k l m n D 投影 j k l m
该题您未回答:х 该问题分值: 2
答案:B
7. 数据字典(DD)所定义的对象都包含于
该题您未回答:х 该问题分值: 2
答案:C
24. 已知将运算符“+”和“*”作为类Complete的成员函数重载,设c1和c2是类Complex的 对象,则表达式c1+c2*c1等价于
n A c1.operator*(c2.operator+(c1)) j k l m n B c1.operator+(c2.operator*(c1)) j k l m j C c1.operator*(c1.operator+(c2)) k l m n j D c2.operator+(c1.operator*(c1)) k l m n
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2012年9月全国计算机(1)C下列链表种,其逻辑结构属于非线性结构的是A)循环链表 B)双向链表 C)带链的栈 D)二叉链表(2)C设循环队列的存储空间为Q(1:35),初始状态为front=rear=35,现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为A)16 B)20 C)0或35 D)15(3)B下列关于栈的叙述中,正确的是A)栈顶元素一定是最先入栈的元素 B)栈操作遵循先进后出的原则C)栈底元素一定是最后入栈的元素 D)以上三种说法都不对(4)B在关系数据库中,用来表示实体间联系的是A)二维表 B)树状结构 C)属性 D)网状结构(5)A公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,则实体部门和职员间的联系是A)m:1联系 B)1:m联系 C)1:1联系 D)m:n联系A)自然连接 B)选择 C)并 D)投影(7)B数据字典(DD)所定义的对象都包含于A)程序流程图 B)数据流图(DFD图) C)方框图 D)软件结构图(8)A软件需求规格说明书的作用不包括A)软件可行性研究的依据 B)用户与开发人员对软件要做什么的共同理解C)软件验收的依据 D)软件设计的依据(9)D下面属于黑盒测试方法的是A逻辑覆盖 B)语句覆盖 C)路径覆盖 D)边界值分析(10)D下面不属于软件设计阶段任务的是A)数据库设计 B)算法设计C)软件总体设计 D)制定软件确认测试计划(11)B以下叙述中正确的是A在C语言程序中,main函数必须放在其他函数的最前面B)每个后缀为.C的C语言源程序都可以单独进行编译C在C语言程序中,只有main函数才可单独进行编译D每个后缀为.C地点C语言源程序都应该包含一个main 函数(12)AC语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是A)预定义标识符(如库函数中的函数名)可用作用标识符,但失去原有含义B)用户标识符可以由字母和数字任意顺序组成在标识符中大写字母和小写字母被认为是相同的字符D)关键字可用作用户标识符,但失去原有含义(13)B以下选项中表示一个合法的常量是(说明:符号表示空格)A) B)0Xab C)123E0.2 D)2.7e(14)A C语言主要是借助以下哪个功能来实现程序模块化A)定义函数 B)定义常量和外部变量C)三种基本结构语句 D)丰富的数据类型(15)C以下叙述中错误的是A)非零的数值类型常量有正直和负值的区分B)常量是在程序运行过程中值不能被改变的量C)定义符号常量必须用类型名来设定常量的类型D)用符号名表示的常量叫符号常量(16)C若有定义和语句:int a,b; scanf(“%d,%d”,&a,&b);以下选项中的输入数据,不能把值3赋给变量a、5赋给变量b的是A)3,5 B)3,5,4 C)3 ,5 D)3,5(17)CC语言中char类型数据占字节数为A)3 B)4 C)1 D)2(18)B下列关系表达式中,结果为“假”的是A)(3+4)>6 B)(3!=4)>2 C)3<=4||3 D)(3<4)==1 (19)D若以下选项中的变量全部为整型变量,且已正确定义并赋值,则语法正确的switch语句是A)switch(a+9) B)switch a*bC)switch(a+b) D)switch(a*a+b*b)(20)D有以下程序#include<stdio.h>main(){ int a=-2,b=0;while(a++&&++b);printf("%d,%d\n",a,b);}程序运行后的输出结果是A)1,3 B)0,2 C)0,3 D)1,2(21)B设有定义:int x=0,*p; ,立刻执行以下语句,正确的语句是A)p=x; B)*p=x; C)p=NULL; D)*p=NULL; (22)D下列叙述中正确的是A)可以用关系运算符比较字符串的大小B)空字符串不占用内存,其内存空间大小是0C)两个连续的单引号是合法的字符常量D)两个连续的双引号是合法的字符串常量(23)D有以下程序#include <stdio.h>main(){ char a='H';a=(a>='A'&&a<='Z')?(a-'A'+'a'):a;printf("%c\n",a);}程序运行后的输出结果是A)A B)a C)H D)h(24)B有以下程序#include <stdio.h>int f(int x);main(){ int a,b=0;for(a=0;a<3;a++){b=b+f(a); putchar('A'+b);}}int f(int x){return x*x+1;}程序运行后的输出结果是A)ABE B)BDI C)BCF D)BCD (25)D设有定义:int x[2][3];,则以下关于二维数组x 的叙述错误的是A)x[0]可看作是由3个整型元素组成的一维数组B)x[0]和x[1]是数组名,分别代表不同的地址常量C)数组x包含6个元素D)可以用语句x[0]=0;为数组所有元素赋初值0 (26)C设变量p是指针变量,语句p=NULL;是给指针变量赋NULL值,它等价于A)p= ""; B)p= '0'; C)p=0; D)p= ''; (27)A有以下程序#include <stdio.h>main(){int a[]={10,20,30,40},*p=a,i;for(i=0;i<=3;i++){a[i]=*p;p++;}printf("%d\n",a[2]);}程序运行后的输出结果是A)30 B)40 C)10 D)20(28)B有以下程序#include <stdio.h>#define N 3void fun(int a[][N],int b[]){ int i,j;for(i=0;i<N;i++){ b[i]=a[i][0];for(j=i;j<N;j++)if(b[i]<a[i][j]) b[i]=a[i][j];}}main(){ int x[N][N]={1,2,3,4,5,6,7,8,9},y[N],i;fun(x,y);for(i=0;i<N;i++) printf("%d,",y[i]);printf("\n");}程序运行后的输出结果是A)2,4,8, B)3,6,9, C)3,5,7, D)1,3,5, (29)C有以下程序(strcpy为字符串复制函数,strcat 为字符串连接函数)#include <stdio.h>#include <string.h>main(){ char a[10]="abc",b[10]="012",c[10]="xyz";strcpy(a+1,b+2);puts(strcat(a,c+1));} 程序运行后的输出结果是A)a12cyz B)12yz C)a2yz D)bc2yz (30)A以下选项中,合法的是A)char str3[]={'d', 'e', 'b', 'u', 'g', '\0', };B)char str4; str4="hello world";C)char name[10]; name="china";D)char str[5]= "pass",str2[6]; str2=str1;(31)C有以下程序#include <stdio.h>main(){ char *s="12134"; int k=0,a=0;while(s[k+1]!='\0'){ k++;if(k%2==0){a=a+(s[k]-'0'+1);continue;}a=a+(s[k]-'0'); }printf("k=%d a=%d\n",k,a);}程序运行后的输出结果是A)k=6 a=11 B)k=3 a=14 C)k=3 a=12 D)k=5 a=15(32)A有以下程序#include <stdio.h>main(){ char a[5][10]={"one","two","three","four","five"};int i,j;char t;for(i=0;i<4;i++)for(j=i+1;j<5;j++)if(a[i][0]>a[j][0]){t=a[i][0]; a[i][0]=a[j][0]; a[j][0]=t;}puts(a[1]);}程序运行后的输出结果是A)fwo B)fix C)two D)owo(33)B有以下程序#include <stdio.h>int a=1,b=2;void fun1(int a,int b){printf("%d %d",a,b);}void fun2(){a=3;b=4;}mian(){ fun1(5,6);fun2();printf("%d %d\n",a,b);}程序运行后的输出结果是A)1 2 5 6 B)5 6 3 4 C)5 6 1 2 D)3 4 5 6 (34)A有以下程序#include <stdio.h>void func(int n){ static int num=1;num=num+n; printf("%d",num)}main(){func(3); func(4); printf("\n");}程序运行后的输出结果是A)4 8 B)3 4 C)3 5 D)4 5(35)D有以下程序#include <stdio.h>#include <dtdio.h>void fun(int *p1,int *p2,int *s){ s=(int*)malloc(sizeof(int));*s=*p1+*p2;free(s);}main(){ int a=1,b=40,*q=&a;fun(&a,&b,q);printf("%d\n",*q);}程序运行后的输出结果A)42 B)0 C)1 D)41(36)D有以下程序void f(struct STU a[]){ struct STU b={"Zhao",'m',85,90};a[1]=b;}main(){ struct STU c[2]={{"Qian",'f',95,92},{"Sun",'m',98,99}}; f(c);printf("%s,%c,%d,%d,",c[0].name,c[0].sex,c[0].score[0],c[0 ].score[1]);printf("%s,%c,%d,%d\n",c[1].name,c[1].sex,c[1].score[0],c[ 1].score[1]);}程序运行后的输出结果是A)Zhao,m,85,90,Sun,m,98,99B)Zhao,m,85,90,Qian,f,95,92C)Qian,f,95,92,Sun,m,98,99D)Qian,f,95,92,Zhao,m,85,90(37)B以下叙述中错误的是A)可以用typedef说明的新类型名来定义变量B)typedef说明的新类型名必须使用大写字母,否则会出编译错误C)用typedef可以为基本数据类型说明一个新名称D)用typedef说明新类型的作用是用一个新的标识符来代表已存在的类型名(38)A以下叙述中错误的是A)函数的返回值类型不能是结构体类型,只能是简单类型B)函数可以返回指向结构体变量的指针C)可以通过指向结构体变量的指针访问所指结构体变量的任何成员D)只要类型相同,结构体变量之间可以整体赋值(39)B若有定义语句int b=2;则表达式(b<<2)/(3||b)的值是A)4 B)8 C)0 D)2(40)D有以下程序#include <stdio.h>main(){ FILE *fp;int 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]); rewind(fp);for(i=0;i<6;i++) fscanf(fp,"%d",&a[5-i]);fclose(fp);for(i=0;i<6;i++) printf("%d,",a[i]);}程序运行后的输出结果是A)4,5,6,1,2,3, B)1,2,3,3,2,1, C)1,2,3,4,5,6, D)6,5,4,3,2,1,二、填空题(每空2分,共30分)(1)一棵二叉树共有47个结点,其中有23个度为2的结点,假设根结点在底1层,则该二叉树的深度为【6】。

相关文档
最新文档