资源描述
全国计算机等级考试二级公共根底知识课后习题及答案1
第一章 数据构造与算法
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. ( )
A. 在栈中只能插入数据 B. 在栈中只能删除数据
C. 栈是先进先出线性表 D. 栈是先进后出线性表
8.在深度为5满二叉树中,叶子结点个数为( )
A. 32 B. 31 C. 16 D. 15
9.对长度为N线性表进展顺序查找,在最坏情况下所需要比拟次数为( )
A. N+1 B. N C .(N+1)/2 D. N/2
10.设树T度为4,其中度为1,2,3,4结点个数分别为4,2,1,1 .那么T叶子结点数为
A. 8 B. 7 C . 6 D. 5
1. 对长度为n有序线性表中进展二分查找,需要比拟次数为( )
2. 设一棵完全二叉树共有700个结点,那么在该二叉树中有( )个叶子结点
3. 设一棵二叉树中序遍历结果为DBEAFC,前序遍历结果为ABDECF,那么后序遍历结果为( )
4. 在最坏情况下,冒泡排序时间复杂度为( )
5. 在一个容量为15循环队列中,假设头指针front=6,尾指针rear=9,那么该循环队列中共有( )个元素
第一章参考答案
一.选择题
1.C 2. D 3. A 4. B 5. C 6. D 7. B 8. B 9. B 10. A
二. 填空题
1) log2n 2) 350 3) DEBFCA 4) N(N-1)/2 5) 3
第二章 程序设计根底
一. 选择题
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. 操作是对象动态属性
二.填空题
1.构造化程序设计三种根本逻辑构造为顺序、选择与〔 〕
2.源程序文档化要求程序应加注释。注释一般分为序言性注释与〔 〕
3.在面向对象方法中,信息隐蔽是通过对象〔 〕性来实现
4.类是一个支持集成抽象数据类型,而对象是类〔 〕
5.在面向对象方法中,类之间共享属性与操作机制称为〔 〕
第二章参考答案
一.选择题
1.B 2. A 3. D 4. B 5. A
二.填空题
1) 重复〔或循环〕 2) 功能性 3) 封装 4) 实例 5) 继承 转贴
第三章 软件工程根底
一. 选择题软件生命令周期中,能准确地确定软件系统必须做什么与必须具备哪些功能阶段是〔 软件工程3个要素是〔 软件产品是否符合需求定义过程称为〔 软件逻辑模型,数据流图由一些特定图符构成。以下图符名标识图符不属于数据流图合法图符是( 软件 D.信息隐蔽
6.程序流程图〔PFD〕中箭头代表是〔 D.组成关系
7.以下工具中为需求分析常用工具是( )
A. PAD B. PFD C. N-S D. DFD
8.在构造化方法中,软件功能分解属于以下软件开发中阶段是( D.编程调试
9.软件调试目是( )
A. 发现错误 软件性能 软件潜能
10.软件需求分析阶段工作,可以分为四个方面:需求获取,需求分析,编写需求规格说明书,以及〔 D.都不正确
1.软件是程序、数据与〔 〕集合.
2.Jackson方法是一种面向〔 〕构造化方法
3.软件工程研究内容主要包括〔 〕技术与软件工程管理
4.数据流图类型有〔 〕与事务型
5.软件开发环境是全面支持软件开发全过程〔 〕集合。
第三章参考答案
一.选择题
1.D 2. D 3. A 4. A 5. C 6. B 7. D 8. C 9. B 10. B
二.填空题
1) 文档 2) 数据流 3) 软件开发 4) 变换型 5) 软件工具 转贴
第四章 数据库设计根底
一.选择题
1.在数据管理技术开展过程中,经历了人工管理阶段、文件系统阶段与数据库系统阶段。其中数据独立性最高阶段是〔 D.数据项管理
2.下述关于数据库系统表达正确是(
B.数据库系统防止了一切冗余
C.数据库系统中数据一致性是指数据类型一致
D.数据库系统比文件系统能管理更多数据
3.数据库系统核心是( )
A. 数据库 D.软件工具
4.用树形构造来表示实体之间联系模型称为( )
A. 关系模型 D.数据模型
5.关系表中每一横行称为一个( )
A. 元组 D.码
6.按条件f对关系R进展选择,其关系代数表达式是( )
A. R|×|R B. R|×|R C. σf(R) D. πf〔R〕
7.关系数据管理系统能实现专门关系运包括( )
A.排序、索引、统计 B.选择、投影、连接
C.关联、更新、排序 D.显示、打印、制表
8.在关系数据库中,用来表示实体之间联系是〔 D.二维表
9.数据库设计包括两个方面设计内容,它们是〔 D.构造特性设计与行为特性设计
10 将E-R图转换到关系模式时,实体与联系都可以表示成〔 D.域
二. 填空题
1.一个工程具有一个工程主管,一个工程主管可管理多个工程,那么实体〞工程主管〞与实体〞工程〞联系属于( )联系.
2.数据独立性分为逻辑独立性与物理独立性.当数据存储构造改变时,其逻辑构造可以不变。因此,基于逻辑构造应用程序不必修改,称为( 软件称为( )
4.关系模型完整性规那么是对关系某种约束条件,包括实体完整性、( )与自定义完整性.
5.在关系模型中,把数据看成一个二维表,每一个二维表称为一个〔 〕转贴于
第四章参考答案
一.选择题
1.A 2. A 3. B 4. B 5. A 6. C 7. B 8. D 9. A 10. B
三. 填空题
1) 一对多(或1:N) 2) 逻辑独立性 3) 数据库管理系统 4) 参照完整性 5) 关系 转贴于
一、选择题
〔1〕以下关于栈表达正确是
A)栈是非线性构造 B)栈是一种树状构造 C)栈具有先进先出特征 D)栈具有后进先出特征
〔2〕构造化程序设计所规定三种根本控制构造是
A)输入、处理、输出 B)树形、网形、环形 C)顺序、选择、循环 D)主程序、子程序、函数
〔3〕构造化程序设计一种根本方法是A)筛选法 B)递归法 C)归纳法 D)逐步求精法
〔4〕如果对一个关系实施了一种关系运算后得到了一个新关系,而且新关系中属性个数少于原来关系中属性个数,这说明所实施运算关系是:A)选择 B)投影 C)连接 D)并
二、填空题
1.对于输入为N个数进展快速排序算法平均时间复杂度是〔 〕
2.在面向对象方法学中,直接反映了用户对目标系统要求模型是〔 〕
3.软件测试方法中,黑盒测试个白盒测试法是常用方法,其中黑盒测试法主要是用于测试〔 〕
4.关系型数据库管理系统中存储与管理数据根本形式是〔 〕
C语言程序设计
一、选择题
〔1〕以下程序输入结果是
main( )
{ int i=010,j=10,k=x10;
printf("%d,%d,%d ",i,j,k);
}
A)8,10,16 B)8,10,10 C)10,10,10 D)10,10,16
〔2〕指针s所指字符串长度
char *s=" "Name Address ";
A)说法不合法 B)19 C)18 D)15
〔3〕C语言中最简单数据类型包括
A)整型、实型、逻辑型 B)整型、实型、字符型
C)整型、字符型、逻辑型 D)整型、实型、逻辑型、字符型
〔4〕为表示关系x大于等于y大于等于z,应使用C语言表达式
A)〔x>=Y)&&(Y>=z) B)(x>=Y)AND(y>=z) C)(x>=Y>=z) D)(x>=Y)&(Y>=z)
〔5〕以下对C语言字符数组描述中错误是
A)字符数组可以存放字符串 B)字符数组中字符串可以整体输入、输出
C)可以在赋值语句中通过赋值运算符“=〞对字符数组整体赋值 D)不可以用关系运算符对字符数组中字符串进展比拟
〔6〕以下说法中正确是
A)C语言程序总是从第一个定义函数开场执行 B)在C语言程序中,要调用函数必须在main〔〕函数中定义
C)C语言程序总是从main()函数开场执行 D)C语言程序中main()函数必须放在程序开场局部
〔7〕以下程序段输出结果是
int x=3;
do
{ printf("%3d",x-=2); }
while(!(- -x));
A)1 B)30 C)1 -2 D)死循环
〔8〕设有如下定义:
char *aa[2]={"abcd","ABCD"};
那么以下说法中正确是
A)aa数组元素值分别是"abcd"与"ABCD"
B)aa是指针变量,它指向含有两个数组元素字符型一维数组
C)aa数组两个元素分别存放是含有4个字符一维字符数组首地址
D)aa数组两个元素中各自存放了字符'a'与'A'地址
〔9〕设有以下定义:
int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};
int (*prt)[3]=a, * p=a[0];
那么以下能够正确表示数组元素a[1][2]表达式是
A)*〔〔* prt + 1)[2]) B)*(*(p+5)) C)(* prt + 1)+2 D)*(*(a+1)+2)
〔10〕以下程序输出结果是
fut( int * *s,int p[2][3])
{ * *s=p[1][1]; }
main( )
{ int a[2][3]={1,3,5,7,9,11},*P;
p=(int * )malloc(sizeof(int));
fut(&p,a);
print("% ",*p);
}
A)1 B)7 C)9 D)11
二、填空题
〔1〕表示条件:10
〔2〕以下程序输出结果是〔 〕
#include
main( )
{ char b[ ]="ABCDEFG";
char *chp=&b[7];
while(- -chp>&b[0])
putchar(*chp);
putchar(" ");
}
〔3〕以下程序输出结果是〔 〕
int ast( int x,int Y,int * cp,int * dp)
{ * cp=x+y;
* dp=x-y;
}
main( )
{ int a,b,c,d;
a=4;b=3;
ast(a,b,&c,&d);
print("% d % d n",c,d);
}
〔4〕阅读程序:
main( )
{ char str1[ ]="how do you do",str2[10];
char *p1=str1,*p2=str2;
scanf("% s",p2);
printf("%s",p2);
printf("%s ",p1);
}
运行上面程序,输入字符串 HOW DO YOU DO 那么程序输出结果是〔 〕
〔5〕以下程序由终端键盘输入一个文件名,然后把从终端键盘输入字符依次存放到该文件中,用#作为完毕输入标志。请填空。
#include
main( )
{ FILE * fp;
char ch,fname [10];
printf("Input the name of file ");
gets(fname);
gets(fname);
if((fp=[5])= =NULL)
{ printf("Cannot open "); exit(0); }
printf("Enter data ");
while((ch=getchar())!='#')
fputc([6],fp);
fclose(fp);
}
三、上机操作题
1.改错题
以下给定程序中,函数fun功能是:逐个比拟a、b两个字符串对应位置中字符,把ASCII值大或相等字符依次存放到c数组中,形成一个新字符串。例如:假设a中字符串为:aBCDeFgH,b中字符串为:ABcd,那么c中字符串应为:aBcdeFgH.请改正程序中错误,使它能得到正确结果,注意:不要改动main函数,不得增行或删行,也不得更改程序构造。
试题程序:
#include
#include
void fun (char *p, char *q, char *c)
{ int k=1;
while(*p! = *q)
{ if ( *p!< *q) c[k]= *q;
else c[k]= *p;
if(*p) p++;
if(*q) q++;
k++;
}
}
main( )
{ char a[10]="aBCDeFfH",b[10]="ABcd",c[80]={" 0"};
fun (a,b,c);
printf("The string a:");puts (a);
ptintf("The string b:");puts (b);
printf("The result :");puts(c);
2.编程题
请编写函数fun,它功能是:求出1到1000之内能被7或11整除、但不能同时被7与11整除所有整数并将它们放在a所指数组中,通过n返回这些数个数。注意:局部源程序给出如下。请勿改动主函数main与其他函数中任何内容,仅在函数fun花括号中填入所编写假设干语句。
试题程序:
# include < conio.h>
# include < stdio.h>
void fun ( int *a, int *n)
{
}
main( )
{ int aa[1000],n,k;
clrscr( );
fun (aa,&n);
for (k=0;k if((k+1)%10= = 0) printf (" ");
else printf("%5d",aa[k]);
}
二级〔C语言程序设计〕样题参考答案
一、选择题
〔1〕D (2)C (3)D (4)B
二、填空题
(1)[1]O(Nlog2 N)
(2)[2]功能模型
(3)[3]软件外部功能
(4)[4]二维表
C语言程序设计
一、选择题
〔1)A (2)D (3)B (4)A (5)C (6)C (7)C (8)D (9)D (10)C
二、填空题
〔1〕[1] 〔x>10&&x<100)//x<0
或(10或x<0//(x>10&&x<100)
或0>x//(10(并且括号有无都可以〕
〔2〕[2]GFEDCB
〔3〕[3] 7 1
〔4〕[4]HOW how do you do (说明:HOW与how之间有无空格均可〕
〔5〕[5]fopen(fname,"w")
(说明:"w"内以w开头字符串均可〕
[6] ch
· 〔1〕一棵二叉树前序遍历与中序遍历分别为ABDEGCFH与DBGEACHF,那么该二叉树后序遍历为
A〕GEDHFBCA B〕DGEBHFCA
C〕ABCDEFGH D〕ACBFEDHG 正确答案: B
〔2〕树是结点集合,它根结点数目是
A〕有且只有1 B〕1或多于1
C〕0或1 D〕至少2 正确答案: A
〔3〕如果进栈序列为e1,e2,e3,e4,那么可能出栈序列是
A〕e3,e1,e4,e2 B〕e2,e4,e3,e1 C〕e3,e4,e1,e2
D〕任意顺序 正确答案: B
〔4〕在设计程序时,应采纳原那么之一是 正确答案: D
A〕不限制goto语句使用 B〕减少或取消注解行
C〕程序越短越好 D〕程序构造应有助于读者理解
〔5〕程序设计语言根本成分是数据成分、运算成分、控制成分与
A〕对象成分 B〕变量成分 C〕语句成分
D〕传输成分
正确答案: D
第 23 页
· 一 、选择题
〔1〕以下数据构造中,按先进后出原那么组织数据是
A〕线性链表 B〕栈 C〕循环链表
D〕顺序表 正确答案: B
〔2〕具有3个结点二叉树有
A〕2种形态 B〕4种形态
C〕7种形态 D〕5种形态
正确答案: D
〔3〕设有以下二叉树:
对此二叉树前序遍历结果为
A〕ZBTYCPXA B〕ATBZXCYP
C〕ZBTACYXP D〕ATBZXCPY
正确答案: B
〔4〕构造化程序设计主要强调是 正确答案: D
A〕程序规模 B〕程序效率
C〕程序设计语言先进性 D〕程序易读性
〔5〕程序3种根本控制构造是
A〕过程、子过程与分程序
B〕顺序、选择与重复
C〕递归、堆栈与队列
D〕调用、返回与转移
正确答案: B
〔6〕以下表达中,不属于测试特征是
A〕测试挑剔性 B〕完全测试不可能性
C〕测试可靠性 D〕测试经济性
正确答案: C
〔7〕需求分析中开发人员要从用户那里了解
A〕软件做什么 B〕用户使用界面
C〕输入信息 D〕软件规模
正确答案: A
〔8〕以下关系模型中,能使经运算后得到新关系中属性个数多于原来关系中属性个数是
A〕选择 B〕连接 C〕投影 D〕并
正确答案: B
〔9〕以下表达中,正确是
A〕用E-R图能够表示实体集间一对一联系、一对多联系与多对多联系
B〕用E-R图只能表示实体集之间一对一联系
C〕用E-R图只能表示实体集之间一对多联系
D〕用E-R图表示概念数据模型只能转换为关系数据模型
正确答案: C
〔10〕"年龄在18~25之间"这种约束是属于数据库当中
A〕原子性措施 B〕一致性措施
C〕完整性措施 D〕平安性措施
正确答案: C
· 〔11〕以下说法错误是
A〕高级语言都是用接近人们习惯自然语言与数学语言作为语言表达形式
B〕计算机只能处理由0与1代码构成二进制指令或数据
C〕C语言源程序经过C语言编译程序编译之后生成一个后缀为.EXE二进制文件
D〕每一种高级语言都有它对应编译程序
正确答案: C
〔12〕算法是指为解决某个特定问题而采取确定且有限步骤,下面不属于算法五个特性是
A〕有零个输入或多个输入
B〕高效性 C〕有穷性 D〕确定性
正确答案: B
〔13〕int a=6; 那么执行a+=a-=a*a;语句后,a值为
A〕36 B〕0 C〕-24 D〕-60
正确答案: D
〔14〕下面各选项中,均是C语言标识符选项组是
A〕forchinato B〕long_123short56_do
C〕voidunion_342 D〕text.txt _023_3ew
正确答案: B
〔15〕以下表达式中,结果为5是
A〕6*5%6 B〕5*-2+15
C〕5+75%10 D〕6+-2/3
正确答案: B
〔16〕以下常量中,为不合法实型常量表示是
A〕.0032 D〕.E3
正确答案: D
〔17〕关于C语言主函数描述正确是
A〕C程序可以有多个main函数
B〕C程序必有一个而且只能有一个main函数
C〕C程序可以没有main函数
D〕C程序执行不一定在main函数开场执行
正确答案: B
〔18〕int a=1,b=-1;那么语句printf〔"%d\n",〔a--,++b〕〕;输出结果是
A〕-1 B〕0 C〕1 D〕语句错误
正确答案: B
〔19〕int a,b;double c;那么以下语句中错误函数调用是
A〕scanf〔"%d,%x,%lf",&a,&b,&c〕;
B〕scanf〔"%d,%d,%le",&a,&b,&c〕;
C〕scanf〔"%o,%x,%o",&a,&b〕;
D〕scanf〔"%d,%o,%e",&a,&b,&c〕;
正确答案: D
〔20〕x,y,z均为整型变量,且值均为1,那么执行语句++x||++y&&++z;后,表达式x+y值为 正确答案: C
A〕1 B〕2 C〕3 D〕4
〔30〕阅读下面程序,那么程序执行后结果为
#include "stdio.h"
main〔〕
{int a=4,b=6,c=7;
double d,fun〔int,int,int〕;
d=fun〔a,b,c〕;
printf〔"%lf\n",d〕;}
double fun〔int a,int b,int c〕
{double s;
s=a%b*c;
return s;}
A〕27 B〕27.000000
C〕28 D〕28.000000
正确答案: D
〔31〕以下不合法指针变量定义是
A〕int *_k; B〕char *_245;
C〕int *p; D〕double *5_is
正确答案: D
〔32〕以下关于指针变量赋空值说法错误是
A〕当赋空值时候,变量指向地址为0存储单元
B〕赋值语句可以表达为变量名=′\0′;
C〕赋值语句可以表达为变量名=0;
D〕一个指针变量可以被赋空值
正确答案: A
〔33〕阅读下面程序,那么执行后输出结果为
#include "stdio.h"
void fun〔int *a,int *b〕
{int m;
m=〔*a+*b〕*〔*a+*b〕;
m+=〔*a-*b〕*〔*a-*b〕;
printf〔"%d\n",m〕;}
main〔〕
{ int a=5,b=6,*x=&a,*y=&b;
fun〔x,y〕;}
A〕120 B〕121 C〕122
D〕123 正确答案: C
〔34〕阅读下面程序,那么输出结果是
#include "stdio.h"
void fun〔int *a,int *b〕
{int c=20,d=25;
*a=c/3;
*b=d/5;}
main〔〕
{ int a=3,b=5;
fun〔&a,&b〕;
printf〔"%d,%d\n",a,b〕;}
A〕6,5 B〕5,6 C〕20,25 D〕3,5
正确答案: A
〔35〕以下对一维数组c进展正确定义初始化语句是
A〕int c[10]=0; B〕int c[10]={0}*10;
C〕int c[1]={0,0,0,0,0,0,0};
D〕int c[10]={0}; 正确答案: D
〔36〕以下二维数组c定义形式是
A〕int c[3][] B〕float c[3,4]
C〕double c[3][4] D〕float c〔3〕〔4〕
正确答案: C
〔37〕阅读以下程序,那么执行后输出结果是
#include "stdio.h"
int k=1;
main〔〕
{fun〔k〕;
printf〔"%d\n",k〕;}
fun〔int k〕
{ k++;
k=k*6;} 正确答案: A
A〕1 B〕2 C〕6 D〕12
〔38〕#define M 2;宏定义,执行语句k=M*5;后,k值是
A〕10 B〕5 C〕2 D〕以上答案都不对
正确答案: D
〔39〕:int c[3][4];那么对数组元素引用正确是
A〕c[1][4] B〕c[1.5][0]
C〕c[1+0][0] D〕以上表达都错误
正确答案: C
〔40〕现有如下程序段
#include "stdio.h"
void fun〔int *a,int *b,int *c〕
{*c=*a+*b;}
main〔〕
{int a[2]={12,23},c;
fun〔a,a+1,&c〕;
printf〔"%d\n",c〕;}
那么程序输出结果为
A〕23 B〕12
C〕0 D〕35
正确答案: D
〔41〕假设有以下语句,那么正确描述是
char a[]="toyou";
char b[]={′t′,′o′,′y′,′o′,′u′};
A〕a数组与b数组长度一样
B〕a数组长度小于b数组长度
C〕a数组长度大于b数组长度
D〕a数组等价于b数组
正确答案: C
〔42〕:char a[15],b[15]={"I love china"};那么在程序中能将字符串I love china赋给数组a正确语句是
A〕a="I love china"; B〕strcpy〔b,a〕;
C〕a=b; D〕strcpy〔a,b〕; 正确答案: D
〔44〕阅读下面程序,那么执行后结果为
#include "stdio.h"
main〔〕
{ char *str="abcdefghijklmnopq";
while〔*str++!=′e′〕;
printf〔"%c\n",*str〕;}
A〕f B〕a C〕e
D〕q 正确答案: A
〔45〕现有如下程序段
#include "stdio.h"
int fun〔int k,int *m〕
{if〔k%3〕*m=k*k;
else *m=k/3;}
main〔〕
{ int 〔*p〕〔int,int *〕,m;
p=fun;
〔*p〕〔78,&m〕;
printf〔"%d\n",m〕;}
那么程序段输出结果为
A〕24 B〕25 C〕26
D〕27 正确答案: C
〔46〕阅读以下程序,那么执行后输出结果为
#include "stdio.h"
fun〔int x〕
{if〔x/2>0〕fun〔x/2〕;
printf〔"%d",x%2〕;}
main〔〕
{ fun〔20〕;
putchar〔′\n′〕;}
A〕11100 B〕10100 C〕10101
D〕10110 正确答案: B
〔47〕阅读如下程序段,那么执行后程序输出结果是
#include <stdio.h>
main〔〕
{structa{int x; int y;}num[2]={{20,5},{6,7}};
printf〔"%d\n",num[0].x/num[0].y*num[1].y〕;}
A〕0 B〕28 C〕20 D〕5 正确答案: B
〔48〕阅读程序段,那么执行后输出结果为
#include "stdio.h"
typedef union{ long x[2];
int y[4];
char z[8];} atx;
typedef struct aa{ long x[2];
int y[4];
char z[8]; } stx;
main〔〕
{printf〔"union=%d,struct aa=%d\n",sizeof〔atx〕,sizeof〔stx〕〕;}
A〕union=8,struct aa=8
B〕union=8,struct aa=24
C〕union=24,struct aa=8
D〕union=24,struct aa=24
正确答案: B
〔49〕阅读以下程序段
#include "stdio.h"
typedef struct aa
{ int a;
struct aa *next; } M;
void set〔M *k,int i,int *b〕
{ int j,d=0;
for〔j=1;j<i;j++〕
{ k[j-1].next=&k[j];
k[j-1].a=b[d++]; }
k[j].a=b[d]; }
main〔〕
{ M k[5],*p;
int d[5]={23,34,45,56,67};
set〔k,5,d〕;
p=k+1;
printf〔"%d\n",table〕; }
那么下面表达式在table处,能使程序执行后,打印输出数据45是
A〕p->next->a B〕++p->a
C〕〔*p〕.a++ D〕p++->a
正确答案: A
〔50〕阅读下面程序,程序实现功能是〔a123.txt在当前盘符下已经存在〕
#include "stdio.h"
void main〔〕
{FILE *fp;
int a[10],*p=a;
fp=fopen〔"a123.txt","w"〕;
while〔 strlen〔gets〔p〕〕>0 〕
{ fputs〔a,fp〕;
fputs〔"\n",fp〕;}
fclose〔fp〕;}
A〕从键盘输入假设干行字符,按行号倒序写入文本文件a123.txt中
B〕从键盘输入假设干行字符,取前2行写入文本文件a123.txt中
C〕从键盘输入假设干行字符,第一行写入文本文件a123.txt中
D〕从键盘输入假设干行字符,依次写入文本文件a123.txt中
正确答案: D
二 、填空题
〔1〕排序是计算机程序设计中一种重要操作,常见排序方法有插入排序、 【1】 与选择排序等。 正确答案: 1.(交换排序)
〔2〕当循环队列非空且队尾指针等于队头指针时,说明循环队列已满,不能进展入队运算。这种情况称为 【2】 。 正确答案: 1.(上溢)〔3〕 【3】 是一种信息隐蔽技术,目在于将对象使用者与对象设计者分开。 正确答案: 1.(封装)
〔4〕为了便于对照检查,测试用例应由输入数据与预期 【4】 两局部组成。 正确答案: 1.(输出结果)
〔5〕 【5】 是从二维表列方向进展运算。
正确答案: 1.(关系运算)
〔6〕定义int a=5,b=20;假设执行语句printf〔"%d\n",++a*--b/5%13〕;后,输出结果为 【6】 。 正确答案: 1.(9)
〔7〕执行程序时输入为123456789,那么程序运行结果为 【7】 。
#include "stdio.h"
main〔〕
{ int a,b;
scanf〔"%2d%*2d%1d",&a,&b〕;
printf〔"%d\n",a-b〕;}
正确答案: 1.(7)
〔8〕阅读下面程序,那么在执行时候输出为 【8】 。
#include "stdio.h"
main〔〕
{int x=1,y=2,z=0;
if〔x=2〕z=x,x=y,y=z;
printf〔"%d,%d\n",x,y〕;}
正确答案: 1.(2,2)
〔9〕语句printf〔"%d\n",′H′-′0′+64〕;执行结
展开阅读全文