计算机一级考试题目类型
主要分为选择题与操作题:一、选择题,分20道小题(20分)二、Windows操作(10分)三、Word操作(25分)四、Excel操作(20分)五、PPT演示文稿操作(15分)六、IE浏览器的简单使用/收发电子邮件(10分)然后是一级WPS office的题型:一、选择题(计算机基础知识和网络的基本知识)。(20 分)二、Windows 操作系统的使用。(10 分)三、WPS 文字的操作。(25 分)四、WPS 表格的操作。(20 分)五、WPS 演示软件的操作。(15 分)六、浏览器(IE)的简单使用和电子邮件收发。(10 分)最后是一级Photoshop的题型:一、单项选择题 55 分(含计算机基础知识部分20 分,Photoshop 知识与操作部分35 分)。二、Photoshop 操作题 45 分(含3 道题目,每题15 分)。考试时间共90分钟Word难点重点汇总:1.文件保存时,文件名一定要写对。2.字体部分,如果给你一个图片样张,让你设置字体字号颜色,记住尽量相近就可以了,做不到一模一样也可以,最新的题目都会有明确的要求,这类题目会逐渐被淘汰。字体中还应注意着重号,字符间距、字符位置的设置,其他设置都可以在字体选项卡直接进行。3.段落部分,对齐方式的设置,大纲级别的设置,段落缩进的设置(首行缩进是重点),段落间距的设置(注意单位有行和磅),行距的设置(固定值和多倍行距是重点),对齐到网格线的设置,段落中的分页设置,项目符号和编号。4.编辑部分,替换是重点也是难点,替换包括了三个方向,批量修改文字内容,批量删除内容,批量设置样式,其中要注意通配符的使用。选择要特别注意alt键矩形选择和选择格式相似的文本。
计算机一级考试一共多少题
计算机基础及wps office应用 (1)单项选择题,20题,20分; (2)windows 操作系统的使用,10分; (3)wps 文字的操作,25分; (4)wps 表格的操作,20分; (5)wps 演示软件的操作,15分; (6)浏览器(ie)的简单使用和电子邮件收发,10分。 计算机基础及ms office应用 (1)单项选择题,20题,20分; (2)windows操作系统的使用,10分; (3)word操作,25分; (4)excel操作,20分; (5)powerpoint操作,15分; (6)浏览器(ie)的简单使用和电子邮件收发,10分。 计算机基础及photoshop应用 (1)单项选择题,55题,55分(含计算机基础知识部分20分,photoshop知识与操作部分35分); (2)photoshop 操作题,45分(含3道题目,每题15分)。 网络素质教育 (1)选择题,30题,60分; (2)填空题,10题,20分; (3)判断题,5题,10分; (4)操作题,5题,10分。
计算机二级操作题
计算机二级的操作题共有三大题,分别是word PPT Excel。word的分数是30分,PPT比较简单,分数是20分,Excel比较难,分数是30分。这些操作题的分数加起来一共有80分,其中也有很多的送分题,是比较简单的。只要在计算机二级考试中分数考到60分以上,就意味着考试可以通过了。我在去年三月份的时候通过了计算机二级考试,以下是我在备考中获得的经验,希望对你有帮助。第一,我们就从熟悉考纲开始做起,所有的计算机考试题目都逃不了考纲,从这几年的计算机考试题目分析中可以看出,平均每年更新三套题目。大部分题目还是停留到原来的题目上。第二,做题,对就是做题。我在本回答里共享的计算机二级软件,里面有二十八套真题和新增3套题,共31套题,应对计算机考试应该是足够了。但是这个是有些条件的,对一些连计算机的基本操作技巧都不熟悉的朋友,我的建议是:从基础入手,也就是从简单题目开始练习。其实考试的难度是由一定的规律可以遵循的,前十套比较简单,中间十套难度上升了一个档次,可以说是中等难度,后十套为难度和综合性很大的题目。所以我建议从最开始的简单题入手。以上就是我的经验,希望能够对你有帮助。
计算机二级考试选择题题库
直接百度搜索计算机二级考试选择题题库,我们就可以看到各大文档网站都有选择题的题库,这些题库囊括了计算机二级的各种选择题,我们只需要选择一些题目来刷就可以了。其他类型的题库也可以这样来查找。有了题库,我们不能盲目的刷题,我们需要科学的刷题,下面就给大家介绍一下刷题小技巧。一般一套题一套题的做很费时间,所以最好的方式是专项练习。比如这周我备考的时间全部做选择题,下周全部做编程题。这样往往事半功倍。考试时即使有些不是原题也原题的变形,所以在做题时,吧错题吃透和积累错题显得尤为重要。当然,你可以将错的题加入软件中的错题库,但是,实践证明,用手机将错题拍下来,效果会更好。练习时,重心首先要放在选择题上,选择题一定是你掌握的最牢靠的部分才行。40分选择题,得到35分以上,拿证非常轻松。那几个固定的出现频率很高的编程题,无论如何要记住,考试时基本上也就那几个。寒暑假时,不用练习,因为做完了你会忘记。刷题时间一般是在开学到考试的这段日子。但是如果你能寒暑假每天坚持,那么计算机二级一定稳了。下面放上计算机二级的考试时间和报名时间,要是有意向的话,千万不要错过了喔~希望对你有所帮助。
2005年9月全国计算机等级考试二级C++笔试试题及答案
无 为大家收集整理了《2005年9月全国计算机等级考试二级C++笔试试题及答案》供大家参考,希望对大家有所帮助!!!
一、选择题((1)-(10)每小题2分,(11)-(50)每小题1分,共60分)
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。请将正确选项真涂在答题卡相应位置上,答在试卷上不得分。
(1)数据的存储结构是指 D
A)存储在外存中的数据
B)数据所占的存储空间量
C)数据在计算机中的顺序存储方式
D)数据的逻辑结构中计算机中的表示
(2)下列关于栈的描述中错误的是 B
A)栈是先进后出的线性表
B)栈只能顺序存储
C)栈具有记忆作用
D)对栈的插入与删除操作中,不需要改变栈底指针
(3)对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是 D
A)冒泡排序为n/2
B)冒泡排序为n
C)快速排序为n
D)快速排序为n(n-1)/2
(4)对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为 C
A)log2n
B) n/2
C) n
D) n+1
(5)下列对于线性链表的描述中正确的是 A
A)存储空间不一定是连续,且各元素的存储顺序是任意的
B)存储空间不一定是连续,且前件元素一定存储在后件元素的前面
C)存储空间必须连续,且前件元素一定存储在后件元素的前面
D)存储空间必须连续,且各元素的存储顺序是任意的
(6)下列对于软件的描述中正确的是 C
A)软件测试的目的是证明程序是否正确
B)软件测试的目的是使程序运行结果正确
C)软件测试的目的是尽可能多地发现程序中的错误
D)软件测试的目的是使程序符合结构化原则
(7)为了使模块尽可能独立,要求 B
A)模块的内聚程序要尽量高,且各模块间的耦合程序要尽量强
B)模块的内聚程序要尽量高,且各模块间的耦合程序要尽量弱
C)模块的内聚程序要尽量低,且各模块间的耦合程序要尽量弱
D)模块的内聚程序要尽量低,且各模块间的耦合程序要尽量强
(8)下列描述中正确的是 D
A)程序就是软件
B)软件开发不受计算机系统的限制
C)软件既是逻辑实体,又是物理实体
D)软件是程序、数据与相关文档的集合
(9)数据独立性是数据库技术的重要特点之一。所谓数据独立性是指 D
A)数据与程序独立存放
B)不同的数据被存放在不同的文件中
C)不同的数据只能被对应的应用程序所使用
D)以上三种说法都不对
(10)用树形结构表示实体之间联系的模型是 C
A)关系模型
B)网状模型
C)层次模型
D)以上三个都是
(11)算法具有五个特性,以下选项中不属于算法特性的是 B
A)有穷性
B)简洁性
C)可行性
D)确定性
(12)以下选项中可作为C语言合法常量的是 A
A)-80.
B)-080
C)-8e1.0
D)-80.0e
(13)以下叙述中正确的是 C
A)用C程序实现的算法必须要有输入和输出操作
B)用C程序实现的算法可以没有输出但必须要有输入
C)用C程序实现的算法可以没有输入但必须要有输出
D)用C程序实现的算法可以既没有输入也没有输出
(14)以下不能定义为用户标识符的是 D
A)Main
B)_0
C)_int
D)sizeof
(15)以下选项中,不能作为合法常量的是 B
A)1.234e04
B)1.234e0.4
C)1.234e+4
D)1.234e0
(16)数字字符0的ASCII值为48,若有以下程序
main()
{ char a='1',b='2';
printf("%c,",b++);
printf("%d\n",b-a);
}
程序运行后的输出结果是 C
A)3,2
B)50,2
C)2,2
D)2,50
(17)有以下程序
main()
{ int m=12,n=34;
printf("%d%d",m++,++n);
printf("%d%d\n",n++,++m);
}
程序运行后的输出结果是 A
A)12353514
B)12353513
C)12343514
D)12343513
(18)有定义语句:int b;char c[10]; ,则正确的输入语句是 B
A)scanf("%d%s",&b,&c);
B)scanf("%d%s",&b,c);
C)scanf("%d%s",b,c);
D)scanf("%d%s",b,&c);
(19)有以下程序
main()
{ int m,n,p;
scanf("m=%dn=%dp=%d",&m,&n,&p);
printf("%d%d%d\n",m,n,p);
}
若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是 A
A)m=123n=456p=789
B)m=123 n=456 p=789
C)m=123,n=456,p=789
D)123 456 789
(20)有以下程序
main()
{
int a,b,d=25;
a=d/10%9;
b=a&&(-1);
printf("%d,%d\n",a,b);
}
程序运行后的输出结果是 B
A)6,1
B)2,1
C)6,0
D)2,0
(21)有以下程序
main()
{ int i=1,j=2,k=3;
if(i++==1&&(++j==3||k++==3))
printf("%d %d %d\n",i,j,k);
}
程序运行后的输出结果是 D
A)1 2 3
B)2 3 4
C)2 2 3
D)2 3 3
(22)若整型变量a、b、c、d中的值依次为:1、4、3、2。则条件表达式a
A)1
B)2
C)3
D)4
(23)有以下程序
main()
{
int p[8]={11,12,13,14,15,16,17,18},i=0,j=0;
while(i++<7) if(p[i]%2) j+=p[i];
printf("%d\n",j);
}
程序运行后的输出结果是 B
A)42
B)45
C)56
D)60
(24)有以下程序
main()
{ char a[7]="a0\0a0\0";int i,j;
i=sizeof(a); j=strlen(a);
printf("%d %d\n",i,j);
}
程序运行后的输出结果是 C
A)2 2
B)7 6
C)7 2
D)6 2
(25)以下能正确定义一维数组的选项是 B
A)int a[5]={0,1,2,3,4,5};
B)char a[]={0,1,2,3,4,5};
C)char a={’A’,’B’,’C’};
D)int a[5]="0123";
(26)有以下程序
int f1(int x,int y){return x>y?x:y;}
int f2(int x,int y){return x>y?y:x;}
main()
{ int a=4,b=3,c=5,d=2,e,f,g;
e=f2(f1(a,b),f1(c,d));
f=f1(f2(a,b),f2(c,d));
g=a+b+c+d-e-f;
printf("%d,%d%d\n",e,f,g);
}
程序运行后的输出结果是 A
A)4,3,7
B)3,4,7
C)5,2,7
D)2,5,7
(27)已有定义:char a[]="xyz",b[]={’x’,’y’,’z’};,以下叙述中正确的是 C
A)数组a和b的长度相同
B)a数组长度小于b数组长度
C)a数组长度大于b数组长度
D)上述说法都不对
(28)有以下程序
void f(int *x,int *y)
{ int t;
t=*x;*x=*y;*y=t;
}
main()
{ int a[8]={1,2,3,4,5,6,7,8},i,*p,*q;
p=a;q=&a[7];
while(p {
f(p,q);
p++;
q--;
}
for(i=0;i<8;i++)
printf("%d,",a[i]);
}
程序运行后的输出结果是 D
A)8,2,3,4,5,6,7,1,
B)5,6,7,8,1,2,3,4,
C)1,2,3,4,5,6,7,8,
D)8,7,6,5,4,3,2,1,
(29)有以下程序
main()
{
int a[3][3],*p,i;
p=&a[0][0];
for(i=0;i<9;i++)
p[i]=i;
for(i=0;i<3;i++)
printf("%d ",a[1][i]);
}
程序运行后的输出结果是 D
A)0 1 2
B)1 2 3
C)2 3 4
D)3 4 5
(30)以下叙述中错误的是 C
A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出
B)数组名代表的是数组所占存储区的首地址,其值不可改变
C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息
D)可以通过赋初值的方式确定数组元素的个数
(31)有以下程序
#define N 20
fun(int a[],int n,int m)
{ int i,j;
for(i=m;i>=n;i--)
a[i+1]=a[i];
}
main()
{
int i,a[N]={1,2,3,4,5,6,7,8,9,10};
fun(a,2,9);
for(i=0;i<5;i++)
printf("%d",a[i]);
}
程序运行后的输出结果是 C
A)10234
B)12344
C)12334
D)12234
(32)有以下程序
main()
{ int a[3][2]={0},(*ptr)[2],i,j;
for(i=0;i<2;i++)
{ ptr=a+i;
scanf("%d",ptr);
ptr++;
}
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
printf("-",a[i][j]);
printf("\n");
}
}
若运行时输入:1 2 3回车>,则输出结果为 B
A)产生错误信息
B)1 0
2 0
0 0
C)1 2
3 0
0 0
D)1 0
2 0
3 0
(33)有以下程序
prt(int *m,int n)
{
int i;
for(i=0;i m[i]++;
}
main()
{
int a[]={1,2,3,4,5},i;
prt(a,5);
for(i=0;i<5;i++)
printf("%d,",a[i]);
}
程序运行后的输出结果是: B
A)1,2,3,4,5,
B)2,3,4,5,6,
C)3,4,5,6,7,
D)2,3,4,5,1,
(34)有以下程序
main()
{ int a[]={1,2,3,4,5,6,7,8,9,0},*p;
for(p=a;p printf("%d,",*p);
}
程序运行后的输出结果是 A
A)1,2,3,4,5,6,7,8,9,0,
B)2,3,4,5,6,7,8,9,10,1,
C)0,1,2,3,4,5,6,7,8,9,
D)1,1,1,1,1,1,1,1,1,,1,
(35)有以下程序
#define P 3
#define F(int x) { return (P*x*x);}
main()
{
printf("%d\n",F(3+5));
}
程序运行后的输出结果是 D
A)192
B)29
C)25
D)编译出错
(36)有以下程序
main()
{
int c=35; printf("%d\n",c&c);
}
程序运行后的输出结果是 C
A) 0
B) 70
C) 35
D) 1
(37)以下叙述中正确的是 D
A)预处理命令行必须位于源文件的开头
B)在源文件的一行上可以有多条预处理命令
C)宏名必须用大写字母表示
D)宏替换不占用程序的运行时间
(38)若有以下说明和定义
union dt
{
int a; char b; double c;
}data;
以下叙述中错误的是 C
A)data的每个成员起始地址都相同
B)变量data所占内存字节数与成员c所占字节数相等
C)程序段:data.a=5;printf("%f\n",data.c);输出结果为5.000000
D)data可以作为函数的实参
(39)以下语句或语句组中,能正确进行字符串赋值的是 D
A)char *sp; *sp="right!";
B)char s[10]; s="right!";
C)char s[10]; *s="right!";
D)char *sp="right!";
(40)设有如下说明
typedef struct ST
{
long a;
int b;
char c[2];
} NEW;
则下面叙述中正确的是 C
A)以上的说明形式非法
B)ST是一个结构体类型
C)NEW是一个结构体类型
D)NEW是一个结构体变量
(41)有以下程序
main()
{
int a=1,b;
for(b=1;b<=10;b++)
{
if(a>=8) break;
if(a%2==1) { a+=5; continue;}
a-=3;
}
printf("%d\n",b);
}
程序运行后的输出结果是 B
A)3
B)4
C)5
D)6
(42)有以下程序
main()
{
char s[]="159",*p;
p=s;
printf("%c",*p++);
printf("%c",*p++);
}
程序运行后的输出结果是 A
A)15
B)16
C)12
D)59
(43)有以下函数
fun(char *a,char *b)
{
while((*a!=’\0’)&&(*b!=’\0’)&&(*a==*b))
{ a++; b++;}
return (*a-*b);
}
该函数的功能是 D
A)计算a和b所指字符串的长度之差
B)将b所指字符串复制到a所指字符串中
C)将b所指字符串连接到a所指字符串后面
D)比较a和b所指字符串的大小
(44)有以下程序
main()
{
int num[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;
for(i=0;i<4;i++)
{
for(j=1;j<=i;j++) printf("%c",’ ’);
for(j= j<4;j++) printf("M",num[i][j]);
printf("\n");
}
}
若要按以下形式输出数组右上半三角
1 2 3 4
6 7 8
11 12
16
则在程序下划线处应填入的是 B
A) i-1
B) i
C) i+1
D) 4-i
(45)有以下程序
point(char *p)
{
p+=3;
}
main()
{ char b[4]={’a’,’b’,’c’,’d’},*p=b;
point(p); printf("%c\n",*p);
}
程序运行后的输出结果是 A
A)a
B)b
C)c
D)d
(46)程序中若有如下的说明和定义语句
char fun(char *);
main()
{
char *s="one",a[5]={0},(*f1)()=fun,ch;
……
}
以下选项中对函数fun的正确调用语句是 A
A)(*f1)(a);
B)*f1(*s);
C)fun(&a);
D)ch=*f1(s)
(47)有以下结构体说明和变量定义,如图所示,指针pqr分别指向此链表中三个连续结点。
struct node
{
int data;
struct node *next;
} *p,*q,*r;
现要将q所指结点从链表中删除,同时保持链表的连续,以下不能完成指定操作的语句是 D
A)p->next=q->next;
B)p->next=p->next->next;
C)p->next=r;
D)p=q->next;
(48)以下对结构体类型变量td的定义中,错误的是 C
A)typedef struct aa
{
int n;
float m;
}AA;
AA td;
B)struct aa
{
int n;
float m;
} td;
struct aa td;
C)struct
{
int n;
float m;
}aa;
struct aa td;
D)struct
{
int n;
float m;
}td;
(49)以下与函数fseek(fp,0L,SEEK_SET)有相同作用的是 D
A)feof(fp)
B)ftell(fp)
C)fgetc(fp)
D)rewind(fp)
(50)有以下程序
#include "stdio.h"
void WriteStr(char *fn,char *str)
{
FILE *fp;
fp=fopen(fn,"W");
fputs(str,fp);
fclose(fp);
}
main()
{
WriteStr("t1.dat","start");
WriteStr("t1.dat","end");
}
程序运行后,文件t1.dat中的内容是 B
A)start
B)end
C)startend
D)endrt
填空题(每空2分,共40分)
(1)某二*树中,度为2的结点有18个,则该二*树中有 19 个叶子结点。
(2)在面向对象的方法中,类的实例称为 对象 。
(3)诊断和改正程序中错误的工作通常称为 程序调试 。
(4)在关系数据库中,把数据表示成二维表,每一个二维表称为 关系 。
(5)问题处理方案的正确而完整的描述称为 算法 .
(6)以下程序运行时若从键盘输入:10 20 30回车>。输出结果是 10 30 0 .
#include
main()
{ int i=0,j=0,k=0;
scanf("%d%*d%d",&i,&j,&k);
printf("%d%d%d\n",i,j,k);
}
(7)以下程序运行后的输出结果是 81 .
#define S(x) 4*x*x+1
main()
{
int i=6,j=8;
printf("%d\n",S(i+j));
}
(8)以下程序运行后的输出结果是 4599
main()
{
int a=3,b=4,c=5,t=99;
if(b if(a printf("%d%d%d\n",a,b,c);
}
(9)以下程序运行后的输出结果是 10 20 0
main()
{
int a,b,c
a=10;b=20;c=(a%bb>1);
printf("%d %d %d\n",a,b,c);
}
(10)以下程序运行后的输出结果是0918273645
main()
{
char c1,c2;
for(c1='0',c2='9';c1 printf("%c%c",c1,c2);
printf("\n");
}
(11)已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33回车>.输出结果是 1B
#include "stdio.h"
main()
{
char a,b;
a=getchar(); scanf("%d",&b);
a=a-'A'+'0';
b=b*2;
printf("%c %c\n",a,b);
}
(12)以下程序中,fun函数的功能是求3行4列二维数组每行元素中的值.请填空. br[i]
void fun(int, int, int (*)[4],int *)
main()
{
int a[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;
fun(3,4,a,b);
for(i=0;i<3;i++)
printf("M",b[i]);
printf("\n");
}
void fun(int m,int n,int ar[][4],int *br)
{
int i,j,x;
for(i=0;i { x=ar[i][0];
for(j=0;j if(x 【12】 =x;
}
(13)以下程序运行后的输出结果是 4 3 3 4
void swap(int x,int y)
{ int t;
t=x;x=y;y=t;
printf("%d %d ",x,y);
}
main()
{ int a=3,b=4;
swap(a,b);
printf("%d %d\n",a,b);
}
(14)以下程序运行后的输出结果是 abcfg
#include "string.h"
void fun(char *s,int p,int k)
{ int i;
for(i=p;i s[i]=s[i+2];
}
main()
{ char s[]="abcdefg";
fun(s,3,strlen(s));
puts(s);
}
(15)以下程序运行后的输出结果是 abcbcc
#include "string.h"
main()
{
char ch[]="abc",x[3][4]; int i;
for(i=0;i<3;i++) strcpy(x[i],ch);
for(i=0;i<3;i++) printf("%s",&x[i][i]);
printf("\n");
}
(16)以下程序运行后的输出结果是 0 10 1 11 2 12
fun(int a)
{
int b=0;static int c=3;
b++; c++;
return (a+b+c);
}
main()
{
int i,a=5;
for(i=0;i<3;i++)
printf("%d %d ",i,fun(a));
printf("\n");
}
(17)以下程序运行后的输出结果是 13431
struct NODE
{ int k;
struct NODE *link;
};
main()
{
struct NODE m[5],*p=m,*q=m+4;
int i=0;
while(p!=q)
{ p->k=++i; p++;
q->k=i++; q--;
}
q->k=i;
for(i=0;i<5;i++)
printf("%d",m[i].k);
printf("\n");
}
(18)以下程序中函数huiwen的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串:yes
yes!,否则函数返回字符串:no!,并在主函数中输出.所谓回文即正向与反向的拼写都一样,例如:adgda.请填空.
#include "string.h"
char *huiwen(char *str)
{
char *p1,*p2; int i,t=0;
p1=str; p2= ①
for(i=0;i<=strlen(str)/2;i++)
if(*p1++!=*p2--)
{ t=1; break; }
if( ②) return ("yes!");
else return ("no!");
}
main()
{
char str[50];
printf("Input:"); scanf("%s",str);
printf("%s\n", ③ );
}
①str+strlen(str)-1
②t==0或!t
③huiwen(str)
2006年9月全国计算机等级考试二级C语言笔试试题及答案
为大家收集整理了《2006年9月全国计算机等级考试二级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和DBS
C.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
B.#include
main();main()
{/*programming*/{/*/ programming /*/
printf("programming!\n");} printf("programming!\n");}
C.#include
D. include
main()main()
{/*/*programming*/*/{/*programming*/
printf("programming!\n");} printf("programming!\n");}
(19)若有定义:float x=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时结束循环。若变量已正确定义,以下正确的程序段是
A.while((ch=getchar())!=′N′)printf("%c",ch);
B.while(ch=getchar()!=′N′)printf("%c",ch);
C.while(ch=getchar()==′N′)printf("%c",ch);
D.while((ch=getchar())==′N′)printf("%c",ch);
(23)已定义以下函数
int fun(int *p)
{return *p;)
fun函数返回值是
A.不确定的值
B.一个整数
C.形参P中存放的值
D.形参P的地址值
(24)若有说明语句:double *p,a;则能通过scanf语句正确给输入项读入数据的程序段是
A.*p=&a; scanf("%1f",p);
B.*p=&a; scanf("%f",p);
C.p=&a; scanf("%1f",*p);
D.p=&a; scanf("%1f",p);
(25)现有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向一个链表中连续的三个结点。
struct node
{char data;
struct node *next; }*p,*q,*r;
现要将q和r所指结点交换前后位置,同时要保持链表的连续,以下不能完成此操作的语句是
A.q->next=r->next;p->next=r;r->next=q;
B.p->next=r;q->next=r->next;r->next=q;
C.q->next=r->next;r->next=q;p->next=r;
D.r->next=q;p->next=r;q->next=r->next;
(26)有以下程序段
struct st
{int x;int *y;}*pt;
int a[]={l,2},b[]={3,4};
struct st c[2]={10,a,20,b};
pt=c;
以下选项中表达式的值为11的是
A.*pt->y
B.pt->x
C.++pt->x
D.(pt++)->x
(27)设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为
A.EOF
B.非0值
C.0
D.NULL
(28)设有以下语句
int a=1,b=2,c;
c=a^(b<<2);
执行后,C的值为
A.6
B.7
C.8
D.9
(29)有以下程序
#include
main()
{char c1,c2,c3,c4,c5,c6;
scanf("%c%c%c%c",&c1,&c2,&c3,&c4);
c5=getchar(); c6=getchar();
putchar(c1);putchar(c2);
printf("%c%c\n",c5,c6);
}
程序运行后,若从键盘输入(从第1列开始)
123回车>
45678回车>
则输出结果是
A.1267
B.1256
C.1278
D.1245
(30)有以下程序
main()
{int y=10;
while(y--);printf("y=%d\n",y);
}
程序执行后的输出结果是
A.y=0
B.y=-1
C.y=1
D.while构成无限循环
(31)有以下程序
main()
{int a=0,b=0,c=0,d=0;
if(a=1) b=1;c=2;
else d=3;
printf("%d,%d,%d,%d\n",a,b,c,
D.;
}
程序输出
A.0,1,2,0
B.0,0,0,3
C.1,1,2,0
D.编译有错
(32)有以下程序
main()
{int i,j,x=0;
for(i=0;i<2;i++)
{x++;
for(j=0;j<=3;j++)
{if(j%2)continue;
x++;
}
x++;
}
printf("x=%d\n",x);
}
程序执行后的输出结果是
A.x=4
B.x=8
C.x=6
D.x=12
(33)有以下程序
int fun1(double a){return a*=a;}
int fun2(double x,double y)
{double a=0,b=0;
a=fun1(x);b=fun1(y);return(int)(a+
B.;
}
main()
{double w;w=fun2(1.1,2.0);……}
程序执行后变量w中的值是
A.5.21
B.5
C.5.0
D.0.0
(34)有以下程序
main()
{int i,t[][3]={9,8,7,6,5,4,3,2,1};
for(i=0;i<3;i++) printf("%d",t[2-i][i]);
}
程序执行后的输出结果是
A.7 5 3
B.3 5 7
C.3 6 9
D.7 5 1
(35)有以下程序
fun(char p[][10])
{int n=0,i;
for(i=0;i<7;i++)
if(p[i][0]==′T′)n++;
return n;
}
main()
{char str[][10]={"Mon","Tue","Wed","Thu","Fri","Sat","Sun"};
printf("%d\n",fun(str));
}
程序执行后的输出结果是
A.1
B.2
C.3
D.0
(36)有以下程序
main()
{int i,s=0,t[]={l,2,3,4,5,6,7,8,9};
for(i=0;i<9;i+=2)s+=*(t+i);
printf("%d\n",s);
}
程序执行后的输出结果是
A.45
B.20
C.25
D.36
(37)有以下程序
void fun1(char *p)
{char *q;
q=p;
while(*q!=′\0′)
{ (*q)++; q++; )
}
main()
{char a[]={"Program"), *p;
p=&a[3];fun1(p);printf("%s\n",a);
}
程序执行后的输出结果是
A.Prohsbn
B.Prphsbn
C.Progsbn
D.Program
(38)有以下程序
void swap(char *x,char *y)
{char t;
t=*x; *x=*y; *y=t;
}
main()
{char *s1="abc",*s2="123";
swap(s1,s2);printf("%s,%s\n",s1,s2);
}
程序执行后的输出结果是
A.123,abc
B.abc,123
C.1bc,a23
D.321,cba
(39)有以下程序
int fun(int n)
{if(n==1)return 1;
else
return(n+fun(n-1));
}
main()
{int x;
scanf("%d",&x); x=fun(x);printf("%d\n",x);
}
执行程序时,给变量X输入10,程序的输出结果是
A.55
B.54
C.65
D.45
(40)有以下程序
int fun(int x[],int n)
{static int sum=0,i;
for(i=0;i<n;i++) sum+="x[i]; return sum;
}
main()
{int a[]={1,2,3,4,5},b[]={6,7,8,9},s=0;
s=fun(a,5)+fun(b,4);printf("%d\n",s);
}
程序执行后的输出结果是
A.45
B.50
C.60
D.55
(41)有以下程序
main()
{union
{char ch[2];
int d;
}s;
s.d=0x4321;
printf("%x,%x\n",s.ch[0],s.ch[1]);
}
在16位编译系统上,程序执行后的输出结果是
A.21,43
B.43,21
C.43,00
D.21,00
(42)有以下程序
main()
{char *p[]={"3697","2584"};
int i,j;long num=0;
for(i=0;i<2;i++)
{j=0;
while(p[i][j]!=′\0′)
{if((p[i][j]-′0′)%2)num=10*num+p[i][j]-′0′;
j+=2;
}
}
printf("%d\n",num);
}
程序执行后的输出结果是
A.35
B.37
C.39
D.3975
(43)执行以下程序后,test.txt文件的内容是(若文件能正常打开)
#include
main()
{FILE *fp;
char *s1="Fortran",*s2="Basic";
if((fp=fopen("test.txt","wb”))==NULL)
{printf("Can′t open test.txt file\n");exit(1);}
fwrite(s1,7,1,fp); /*把从地址s1开始的7个字符写到fp所指文件中*/
fseek(fp,0L,SEEK_SET); /*文件位置指针移到文件开头*/
fwrite(s2,5,1,fp);
fclose(fp);
}
A.Basican
B.BasicFortran
C.Basic
D.FortranBasic
(44)以下叙述中错误的是
A.C语言源程序经编译后生成后缀为.obj的目标程序
B.C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件
C.用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中
D.C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
(45)以下叙述中错误的是
A.算法正确的程序最终一定会结束
B.算法正确的程序可以有零个输出
C.算法正确的程序可以有零个输入
D.算法正确的程序对于相同的输入一定有相同的结果
(46)以下叙述中错误的是
A.C程序必须由一个或一个以上的函数组成
B.函数调用可以作为一个独立的语句存在
C.若函数有返回值,必须通过return语句返回
D.函数形参的值也可以传回给对应的实参
(47)设有以下定义和语句
char str[20]="Program",*p;
p=str;
则以下叙述中正确的是
A.*p与str[0]的值相等
B.str与p的类型完全相同
C.str数组长度和p所指向的字符串长度相等
D.数组str中存放的内容和指针变量p中存放的内容相同
(48)以下叙述中错误的是
A.C程序中的#include和#define行均不是C语句
B.除逗号运算符外,赋值运算符的优先级最低
C.C程序中,j++;是赋值语句
D.C程序中,+、-、*、/、%号是算术运算符,可用于整型和实型数的运算
(49)以下叙述中正确的是
A.预处理命令行必须位于C源程序的起始位置
B.在C语言中,预处理命令行都以"#"开头
C.每个C程序必须在开头包含预处理命令行:#include
D.C语言的预处理不能实现宏定义和条件编译的功能
(50)以下叙述中错误的是
A.可以通过typedef增加新的类型
B.可以用typedef将已存在的类型用一个新的名字来代表
C.用typedef定义新的类型名后,原有类型名仍有效
D.用typedef可以为各种类型起别名,但不能为变量起别名
二、填空题(每空2分,共40分)
请将每一个空的正确答案写在答题卡【1】至【20】序号的横线上,答在试卷上不得分。
(1)对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为【1】。
(2)在面向对象方法中,【2】描述的是具有相似属性与操作的一组对象。
(3)在关系模型中,把数据看成是二维表,每一个二维表称为一个【3】。
(4)程序测试分为静态分析和动态测试。其中【4】是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。
(5)数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为【5】。
(6)若变量a,b已定义为int类型并赋值21和55,要求用printf函数以a=21,b=55的形式输出,请写出完整的的输出语句【6】。
(7)以下程序用于判断a、b、c能否构成三角形,若能,输出YES,否则输出NO。当给a、b、c输入三角形三条边长时,确定a、b、c能构成三角形的条件是需同时满足三个条件:a+b>c,a+c>b,b+c>a。请填空。
main()
{float a,b,c;
scanf("%f%f%f",&a,&b,&
C.;
if(【7】)printf("YES\n");/*a、b、c能构成三角形*/
else printf("NO\n");/*a、b、c不能构成三角形*/
}
(8)以下程序的输出结果是【8】 。
main()
{int a[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0;
for(i=0;i<3;i++) s+=a[i][i]+a[i][3-i-1];
printf("%d\n",s);
}
(9)当运行以下程序时,输入abcd,程序的输出结果是:【9】。
insert(char str[])
{int i;
i=strlen(str);
while(i>0)
{str[2*i]=str[i];str[2*i-1]=′*′;i--;}
printf("%s\n",str);
}
main()
{char str[40];
scanf("%s",str);insert(str);
}
(10)下面程序的运行结果是:【10】。
fun(int t[],int n)
{int i,m;
if(n==1)return t[0];
else
if(n>=2){m=fun(t,n-1); return m; }
}
main()
{int a[]={11,4,6,3,8,2,3,5,9,2};
printf("%d\n",fun(a,10));
}
(11)现有两个C程序文件T18.c和myfun.c同在TC系统目录(文件夹)下,其中T18.c文件如下:
#include
#include "myfun.c"
main()
{fun();printf("\n");}
myfun.c文件如下:
void fun()
{char s[80],c; int n=0;
while((c=getchar())!=′\n′) s[n++]=c;
n--;
while(n>=0) printf("%c",s[n--]);
}
当编译连接通过后,运行程序T18时,输入Thank!则输出结果是:【11】。
(12)以下函数fun的功能是返回str所指字符串中以形参c中字符开头的后续字符串的首地址,例如:str所指字符串为:Hello!,c中的字符为e,则函数返回字符串:ello!的首地址。若str所指字符串为空串或不包含c中的字符,则函数返回NULL。请填空。
char *fun(char *str,char
C.
{ int n=0; char *p=str;
if(p!=NULL)
while(p[n]!=c&&p[n]!=′\0′)n++;
if(p[n]==′\0′) return NULL;
return(【12】);
}
(13)以下程序的功能是:输出100以内(不含100)能被3整除且个位数为6的所有整数,请填空。
main()
(int i,j;
for(i=0;【13】;i++)
{j=i*10+6;
if(【14】)continue;
printf("%d",j);
}
}
(14)以下isprime函数的功能是判断形参a是否为素数,是素数,函数返回1,
否则返回0。请填空
int isprime(int a)
{int i;
for(i=2;i<=a/2;i++)
if(a%i==0)【15】;
【16】;
}
(15)以下程序的功能是输入任意整数给n后,输出n行由大写字母A开始构成的三角形
字符阵列图形。例如,输入整数5时(注意:n不得大于10),程序运行结果如下:
A B C D E
F G H I
J K L
M N
O
请填空完成该程序。
main()
{int i,j,n; char ch=′A′;
scanf("%d",&n);
if(n<11)
{for(i=1;i<=n;i++)
{for(j=1; j<=n-i+1;j++)
{printf("%2c",ch);
【17】;
}
【18】;
}
}
else printf("n is too large!\n")
printf("\n");
}
(16)以下程序中函数fun的功能是:构成一个如图所示的带头结点的单向链表,在结点的数据域中放入了具有两个字符的字符串。函数disp的功能是显示输出该单链表中所有结点中的字符串。请填空完成函数disp。
#include
typedef struct node/*链表结点结构*/
{char sub[3];
struct node *next;
}Node;
Node fun(char s) /*建立链表*/
{…… }
void disp(Node *h)
{Node *p;
p=h->next;
while(【19】)
{printf("%s\n",P->su
B.; p=【20】; }
}
main()
{Node *hd;
hd=fun();disp(h
D.;printf("\n");
}