全国计算机等级考试二级C笔试及上机试题

更新时间:2024-07-03 19:54:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

? 2005年4月全国计算机等级考试二级C笔试试卷(含参考答案)

一、选择题((1)~(10)每小题2分,(11)~(50)每小题1分,共60分)

下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。 (1)数据的存储结构是指______。

A)存储在外存中的数据 B)数据所占的存储空间量 C)数据在计算机中的顺序存储方式 D)数据的逻辑结构在计算机中的表示 (2)下列关于栈的描述中错误的是______。 A) 栈是先进后出的线性表 B) 栈只能顺序存储 C) 栈具有记忆作用

D) 对栈的插入与删除操作中,不需要改变栈底指针 (3)对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是______。 A)冒泡排序为n/2 B)冒泡排序为n

C)快速排序为n D)快速排序为n(n-1)/2 (4)对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为______。

A)log2n B)n/2 C)n D)n+1 (5)下列对于线性链表的描述中正确的是______。

A) 存储空间不一定是连续,且各元素的存储顺序是任意的 B) 存储空间不一定是连续,且前件元素一定存储在后件元素的前面 C) 存储空间必须连续,且前件元素一定存储在后件元素的前面 D) 存储空间必须连续,且各元素的存储顺序是任意的 (6)下列对于软件测试的描述中正确的是______。 A) 软件测试的目的是证明程序是否正确 B) 软件测试的目的是使程序运行结果正确 C) 软件测试的目的是尽可能多地发现程序中的错误 D) 软件测试的目的是使程序符合结构化原则

(7)为了使模块尽可能独立,要求______。 A) 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强 B) 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱 C) 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱 D) 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强 (8)下列描述中正确的是______。 A)程序就是软件

B)软件开发不受计算机系统的限制 C)软件既是逻辑实体,又是物理实体

D)软件是程序、数据与相关文档的集合 (9)数据独立性是数据库技术的重要特点之一,所谓数据独立性是指______。 A)数据与程序独立存放 B)不同的数据被存放在不同的文件中

C)不同的数据只能被对应的应用程序所使用

D)以上三种说法都不对 (10)用树形结构表示实体之间联系的模型是______。 A)关系模型 B)网状模型 C)层次模型 D)以上三个都是 (11)算法具有五个特性,以下选项中不属于算法特性的是______。 A)有穷性 B)简洁性 C)可行性 D)确定性 (12)以下选项中可作为C语言合法常量的是______。 A)-80. B) -080 C)-8e1.0 D)-80.0e (13)以下叙述中正确的是______。

A)用C程序实现的算法必须要有输入和输出操作 B)用C程序实现的算法可以没有输出但必须要输入 C)用C程序实现的算法可以没有输入但必须要有输出 D)用C程序实现的算法可以既没有输入也没有输出 (14)以下不能定义为用户标识符的是______。 A)Main B)_0 C)_int D)sizeof (15)以下选项中不能作为合法常量的是______。 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(\

 printf(\\\n\} 程序运行后的输出结果是______。 A) 3,2 B)50,2 C)2,2 D)2,50 (17)有以下程序 main()

{ int m=12,n=34;  printf(\m++,++n);  printf(\\\n\} 程序运行后的输出结果是______。

A)12353514 B)12353513 C)12343514 D)12343513 (18)有定义语句:int b;char c[10];,则正确的输入语句是______。 A) scanf(\)scanf(\C) scanf(\) scanf(\

(19)有以下程序  main() { int m,n,p;

 scanf(\  printf(\\\n\}

若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是______。 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(\\\n\

} 程序运行后的输出结果是______。  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(\\\n\ } 程序运行后的输出结果是______。

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

{

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(\\\n\ } 程序运行后的输出结果是______。 A)42 B)45 C)56 D)60 (24)有以下程序  main() {

char a[7]=\\\0a0\\0\ i=sizeof(a); j=strlen(a); printf(\\\n\

} 程序运行后的输出结果是______。 A)2 2 B)7 6 C)7 2 D)6 2 (25)以下能正确定义一维数组的选项是______。

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]=\(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(\\\n\ } 程序运行后的输出结果是______。 A)4,3,7 B)3,4,7 C)5,2,7 D)2,5,7

(27)已有定义:char a[]=\,以下叙述中正确的是______。 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

for(i=0;i<8;i++)printf(\ } 程序运行后的输出结果是______。 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(\ } 程序运行后的输出结果是______。 A)012 B)123 C)234 D)345

(30)以下叙述中错误的是______。

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(\ } 程序运行后的输出结果是______。 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(\ for(i=0;i<3;i++)

{ for(j=0;j<2;j++) printf(\-\

printf(\\\n\ } } 若运行时输入:1 2 3<回车>,则输出结果是______。 A)产生错误信息 B)1 0 C)1 2 D)1 0  2 0 3 0 2 0  0 0 0 0 3 0 (33)有以下程序  prt(int *m,int n) { int i; for(i=0;i } main() {

int a[]={1,2,3,4,5},i; prt(a,5);

for(i=0;i<5;i++)

printf(\

} 程序运行后的输出结果是______。 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 } 程序运行后的输出结果是______。

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

void F(int x){return(P*x*x);} main()

{printf(\\\n\程序运行后的输出结果是______。 A)192 B)29 C)25 D)编译出错 (36)有以下程序  main()

{int c=35;printf(\\\n\程序运行后的输出结果是______。 A)0 B)70 C)35 D)1 (37)以下叙述中正确的是______。 A)预处理命令行必须位于源文件的开头 B)在源文件的一行上可以有多条预处理命令 C)宏名必须用大写字母表示 D)宏替换不占用程序的运行时间 (38)若有以下说明和定义

 union dt {int a;char b;double c;}data; 以下叙述中错误的是______。 A)data的每个成员起始地址都相同

B)变量data所占的内存字节数与成员c所占字节数相等 C)程序段:data.a=5;printf(\输出结果为5.000000 D)data可以作为函数的实参

(39)以下语句或语句组中,能正确进行字符串赋值的是______。 A)char *sp;*sp=\)char s[10];s=\ C)char s[10];*s=\)char *sp=\(40)设有如下说明  typedef struct ST

{long a;int b;char c[2];}NEW; 则下面叙述中正确的是______。

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(\\\n\ } 程序运行后的输出结果是______。 A)3 B) 4 C)5 D)6 (42)有以下程序  main()

{ char s[]=\ p=s;

printf(\ } 程序运行后的输出结果是______。 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);

} 该函数的功能是______。 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=0;j<=i;j++) printf(\

for(j=_____;j<4;j++) printf(\ printf(\\\n\ }

} 若要按以下形式输出数组右上半三角 1 2 3 4

6 7 8

11 12 16  则在程序下划线处应填入的是______。 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(\\\n\ } 程序运行后的输出结果是______。 A)a B)b C)c D)d (46)程序中若有如下说明和定义语句  char fun(char *); main()

{

char *s=\; ......

} 以下选项中对函数fun的正确调用语句是______。 A)(*f1)(a); B)*f1(*s); C)fun(&a); D)ch=*f1(s); (47)有以下结构体说明和变量定义,如图所示:  struct node

{int data; struct node *next;} *p,*q,*r; 

 data next data next data next

 p q r 现要将q所指结点从链表中删除,同时要保持链表的连续,以下不能完成指定操作的语句是______。

A)P->next=q->next; B)p->next=p->next->next; C)p->next=r; D)p=q->next;

(48)以下对结构体类型变量td的定义中,错误的是______。 A)typedef struct aa B)struct aa  { int n; { int n;  float m; float m;  }AA; }td;  AA td; struct aa td; C)struct D)struct  { int n; { int n;  float m; float m;

 }aa; }td;  struct aa td; (49)以下与函数fseek(fp,0L,SEEK_SET)有相同作用的是______。

A)feof(fp) B)ftell(fp) C)fgetc(fp) D)rewind(fp) (50)有以下程序

 #include void WriteStr(char *fn,char *str) { FILE *fp;

fp=fopen(fn,\ } main() {

WriteStr(\

WriteStr(\ } 程序运行后,文件t1.dat中的内容是______。 A)start B)end C)startend D)endrt

二、填空题(每空2分,共40分) 请将每空的正确答案写在【1】至【20】序号的横线上,答在试卷上不得分。 (1)某二叉树中度为2的结点有18个,则该二叉树中有 【1】 个叶子结点。 (2)在面向对象方法中,类的实例称为 【2】 。 (3)诊断和改正程序中错误的工作通常称为 【3】 。 (4)在关系数据库中,把数据表示成二维表,每一个二维表称为 【4】 。 (5)问题处理方案的正确而完整的描述称为 【5】 。

(6)以下程序运行时,若从键盘输入:10 20 30<回车>,输出的结果是 【6】 。 #include  main()

 { int i=0,j=0,k=0;

scanf(\

printf(\\\n\} (7)以下程序运行后的输出结果是 【7】 。  #define S(x) 4*x*x+1 main() { int i=6,j=8; printf(\\\n\

} (8)以下程序运行后的输出结果是 【8】 。  main()

{ int a=3,b=4,c=5,t=99;

 if(b if(a printf(\\\n\} (9)以下程序运行后的输出结果是 【9】 。  main() { int a,b,c;

 a=10; b=20; c=(a%b<1)||(a/b>1);  printf(\\\n\}

(10)以下程序运行后的输出结果是 【10】 。  main()

{ char c1,c2;

 for(c1='0',c2='9';c1  printf(\\\n\

} (11)已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33<回车>,则输出结果是 【11】 。  #include main()

{ char a,b;

 a=getchar();scanf(\  a=a-'A'+'0';b=b*2;  printf(\\\n\

} (12)以下程序中,fun函数的功能是求3行4列二维数组每行元素中的最大值。请填空。

 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(\  printf(\\\n\}

void fun(int m,int n,int ar[][4],int *br) { int i,j,x;

 for(i=0;i

} (13)以下程序运行后的输出结果是 【13】 。  void swap(int x,int y) { int t;

 t=x;x=y;y=t;printf(\ } main()

{ int a=3,b=4;

 swap(a,b); printf(\

} (14)以下程序运行后的输出结果是 【14】 。  #include void fun(char *s,int p,int k) { int i;

 for(i=p;i}

main()

{ char s[]=\\;

 fun(s,3,strlen(s)); puts(s); }

(15)以下程序运行后的输出结果是 【15】 。  #include main()

{ char ch[]=\  for(i=0;i<3;i++) strcpy(x[i],ch);  for(i=0;i<3;i++) printf(\

 printf(\\\n\} (16)以下程序运行后的输出结果是 【16】 。  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(\  printf(\\\n\} (17)以下程序运行后的输出结果是 【17】 。  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(\  printf(\\\n\

} (18)以下程序中函数huiwen的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串:yes!,否则函数返回字符串:no!,并在主函数中输出,所谓回文即正向与反向的拼写都一样,例如:adgda。请填空。

#include

char *huiwen(char *str) { char *p1,*p2; int i,t=0;  p1=str;p2= 【18】 ;  for(i=0;i<=strlen(str)/2;i++)  if(*p1++!=*p2--){t=1;break;}  if( 【19】 ) return(\ else return(\ } main()

{ char str[50];

 printf(\  printf(\\\n\【20】 );  

2005年4月笔试试卷参考答案 一、选择题 1-5 DBDCA 6-10 CBDDC 11-15 BACDB 16-20 CABAB 21-25 DABCB 26-30 ACDDC 31-35 CBBAD 36-40 CDCDC 41-45 BADBA 46-50 ADCDB 二、填空题 (1) 【1】19 (2) 【2】 对象 (3) 【3】程序调试 (4) 【4】关系 (5) 【5】算法 (6) 【6】 10 30 0 (7) 【7】 81 (8) 【8】 4599 (9) 【9】 10 20 0 (10) 【10】 0918273645 (11) 【11】 1B (12) 【12】br[i]

(13) 【13】 4 3 3 4 (14) 【14】 abcfg (15) 【15】abcbcc

(16) 【16】 0 10 1 11 2 12

(17) 【17】 13431

(18) 【18】str+strlen(str)-1【19】t==0或!t【20】huiwen(str)

2006年9月计算机二级考试C语言试题

1.下列选项中不符合良好程序设计风格的是________。 A)源程序要文档化 B)数据说明的次序要规范化

C)避免滥用goto语句 D)模块设计要保证高耦合、高内聚

A B C D

2.从工程管理角度,软件设计一般分为两步完成,它们是________。 A)概要设计与详细设计 B)数据设计与接口设计

C)软件结构设计与数据设计 D)过程设计与数据设计

A B C D

3.下列选项中不属于软件生命周期开发阶段任务的是________。 A)软件测试 B)概要设计 C)软件维护 D)详细设计

A B C D

4.在数据库系统中,用户所见的数据模式为________。 A)概念模式 B)外模式 C)内模式 D)物理模式

A

B

C

D

5.数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和________。 A)编码设计 B)测试阶段 C)运行阶段 D)物理设计

A

B

C

D

7.下列叙述中正确的是________。

A)一个算法的空间复杂度大,则其时间复杂度也必定大 B)一个算法的空间复杂度大,则其时间复杂度必定小 C)一个算法的时间复杂度大,则其空间复杂度必定小 D)上述三种说法都不对

A

B

C

D

8.在长度为64的有序线性表中进行顺序查找,最环境情况下需要比较的次数为________。 A)63 B)64 C)6 D)7

A B C D

9.数据库技术的根本目标是要解决数据的________。 A)存储问题 B)共享问题 C)安全问题 D)保护问题

A

B

C

D

11.下列叙述中错误的是________。 A)一个C语言程序只能实现一种算法 B)C程序可以由多个程序文件组成 C)C程序可以由一个或多个函数组成

D)一个C函数可以单独作为一个C程序文件存在

A B C D

12.下列叙述中正确的是________。

A)每个C程序文件中都必须有一个main()函数 B)在C程序中main()函数的位置是固定的 C)C程序可以由一个或多个函数组成 D)在C程序的函数中不能定义另一个函数

A B C D

13.下列定义变量的语句中错误的是________。

A)int _int; B)double int_; C)char For; D)float USS

A

B

C

D

14.若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是________。 A)++x,y=x-- B)x+1=y C)x=x+10=x+y D)double(x)/10

A B C D

15.以下关于逻辑运算符两侧运算对象的叙述中正确的是________。 A)只能是整数0或1 B)只能是整数0或非0的整数 C)可以是结构体类型的数据 D)可是任意合法的表达式

A B C D

16.若有定义int x,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++): (y++)中的条件表达式(x-y)等价的是________。

A)(x-y>0) B)(x-y<0) C)(x-y<║x-y>0) D)(x-y==0)

A

B

C

D

17.有以下程序 main() {int x,y,z; x=y=1;

z=x++,y++,++y;

printf(\ }

程序运行后的输出结果是________。 A)2,3,3 B)2,3,2 C)2,3,1 D)2,2,1

A

B

C

D

18.设有定义:int a; float b;执行scanf(\语句时,若从键盘输入876 543.0<回车>,a和b的值分别是________。

A)876和543.000000 B)87和6.000000 C)87和543.000000 D)76和543.000000

A

B

C

D

19.有以下程序 main() {int a=0,b=0; a=10; /*给a赋值 b=20; 给b赋值 */

printf(\输出计算结果 */ }

程序运行后输出结果是________。 A)a+b=0 B)a+b=30 C)30 D)出错

A

B

C

D

20.在嵌套使用if语句时,C语言规定else总是________。 A)和之前与其具有相同缩进位置的if配对 B)和之前与其最近的if配对

C)和之前与其最近的且不带else的if配对 D)和之前的第一个if配对

A

B

C

D

21.下列叙述中正确的是________。 A)break语句只能用于switch语句 B)在switch语句中必须使用default

C)break语句必须与switch语句中的case配对使用

D)在switch语句中,不一定使用break语句

A

B

C

D

22.有以下程序 mian0 {int k=5;

while(-k) printf(\ printf(\ }

执行后的输出结果是________。 A)1 B)2 C)4 D)死循环

A

B

C

D

23.有以下程序 main() {int i;

for(I=1;I<=40;I++) {if(I++%5=0)

if (++I%8=0) printf(\ }

printf(\ }

执行后的输出结果是________。 A)5 B)24 C)32 D)40

A B C D

24.以下选项中,值为1的表达式________。 A)1-\B)1-\C)\D)\

A

B

C

D

25.有以下程序

fun(int x,int y){return(x+y);} main()

{int a=1,b=2,c=3,sum; sum=fun((a++,b++b,a+b),c++); printf(\ }

执行后的输出结果是________。 A)6 B)7 C)8 D)9

A

B

C

D

26.有以下程序 main()

{ char s[ ]= \ s+=2;

printf(\,s[0]); }

执行后的结果是________。

A)输出字符a的ASCII码 B)输出字符c的ASCII码 C)输出字符c D)程序出错

A

B

C

D

27.有以下程序 fun(int x,int y) {static int m=0,I=2; I+=m+1;m=I+x+y; return m; } main()

{int j=1,m=I,k;

k=fun(j,m); printf(\

k=fun(j,m); printf(\ }

执行后的输出结果是________。

A)5,5 B)5,11 C)11,11 D)11,5

A

B

C

D

28.有以下程序 fun(int x) {int p;

if(x==0║x= =1) return(3); p=x-fun(x=2); retum p; }main()

{ prinf(\ 执行后的输出结果是________。 A)7 B)3 C)3 D)0

A

B

C

D

答案 :1~5 D A C B D 6~10C D B B A 11~15 A D D A D 16~20 C C D D C

21~25 D A C B C 26~28 A B C D

无答案的一套

全国计算机等级考试 历年真题 2007年4月计算机等级考试二级C语言考前密卷(1)

一、选择题(每题2分,共计70分)

1.栈和队列的共同特点是 A)都是先进先出

B)都是先进后出

C)只允许在端点处插入和删除元素 D)没有共同点

A

B C D

2.已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是 A)acbed B)decab C)deabc D)cedba

A B C D

3.链表不具有的特点是 A)不必事先估计存储空间 B)可随机访问任一元素 C)插入删除不需要移动元素 D)所需空间与线性表长度成正比

A B C D

4.结构化程序设计的3种结构是 A)顺序结构、选择结构、转移结构 B)分支结构、等价结构、循环结构 C)多分支结构、赋值结构、等价结构 D)顺序结构、选择结构、循环结构

A B C D

5.为了提高测试的效率,应该 A)随机选取测试数据

B)取一切可能的输入数据作为测试数据 C)在完成编码以后制定软件的测试计划 D)集中对付那些错误群集的程序

A B C D

6.算法的时间复杂度是指 A)执行算法程序所需要的时间 B)算法程序的长度

C)算法执行过程中所需要的基本运算次数 D)算法程序中的指令条数

A B C D

7.软件生命周期中所花费用最多的阶段是 A)详细设计 B)软件编码 C)软件测试 D)软件维护

A B C D

8.数据库管理系统DBMS中用来定义模式、内模式和外模式的语言为 A)C B)Basic C)DDL D)DML

A B C D

9.下列有关数据库的描述,正确的是 A)数据库是一个DBF文件 B)数据库是一个关系

C)数据库是一个结构化的数据集合 D)数据库是一组文件

A B C D

10.下列有关数据库的描述,正确的是 A)数据处理是将信息转化为数据的过程

B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变 C)关系中的每一列称为元组,一个元组就是一个字段 D)如果一个关系中的属性或属性组并非该关系的关键字, 但它是另一个关系的关键字,则称其为本关系的外关键字

A B C D

11.以下叙述中正确的是 A)C语言比其他语言高级

B)C语言可以不用编译就能被计算机识别执行

C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 D)C语言出现的最晚,具有其他语言的一切优点

A B C D

12.C语言中用于结构化程序设计的3种基本结构是 A)顺序结构、选择结构、循环结构 B)if,switch,break C)for,while,do-while D)if,for,continue

A B C D

13.C语言中最简单的数据类型包括 A)整型、实型、逻辑型 B)整型、实型、字符型 C)整型、字符型、逻辑型 D)字符型、实型、逻辑型

A B C D

14.若变量已正确定义并赋值,以下符合C语言语法的表达式是 A)a:=b+1 B)a=b=c+2 C)int 18.5%3 D)a=a+7=c+b

A B C D

15.下列可用于C语言用户标识符的一组是 A)void, define, WORD B)a3_b3, _123,Car C)For, -abc, IF Case D)2a, DO, sizeof

A B C D

16.C语言中运算对象必须是整型的运算符是 A)%= B)/ C)= D)<=

A B C D

17.若变量a,i已正确定义,且i已正确赋值,合法的语句是 A)a= =1 B)++i; C)a=a++=5; D)a=int(i);

A B C D

18.已知 int t=0; while (t=1) {...}

则以下叙述正确的是 A)循环控制表达式的值为0 B)循环控制表达式的值为1 C)循环控制表达式不合法 D)以上说法都不对

A B C D

19.若变量已正确说明为float型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋予10.0,b赋予22.0,c赋予33.0,下列入形式是

A)10<回车>22<回车>33<回车> B)10.0,22.0,33.0<回车> C)10.0<回车>22.033.0<回车> D)10 22<回车>33<回车>

A B C D

20.有如下程序: main() {

int x=1,a=0,b=0; switch(x) {

case 0: b++; case 1: a++; case 2: a++;b++; }

printf(\\n\);} 该程序的输出结果是 A)a=2,b=1 B)a=1,b=1 C)a=1,b=0 D)a=2,b=2

A B C D

21.有以下程序 main() {int i=1,j=1,k=2;

if((j++||k++)&&i++) printf(\\n\); }

执行后输出结果是 A)1,1,2 B)2,2,1 C)2,2,2

D)2,2,3

A B C D

22.有如下程序 main() {float x=2.0,y; if(x<0.0)y=0.0; else if(x<10.0)y=1.0/x; else y=1.0;

printf(\\n\);} 该程序的输出结果是 A)0.000000 B)0.250000 C)0.500000 D)1.000000

A B C D

23.有如下程序: main() {int n=9;

while(n>6){n--; printf(\);} }

该程序的输出结果是 A)987 B)876 C)8765 D)9876

A B C D

24.在下列选项中,没有构成死循环的是 A)int i=100; while(1) {i=i0+1; if(i>100)break; }

B)for(;;); C)int k=10000;

do{k++;}while(k>10000); D)int s=36; while(s)--s;

A B C D

25.设int x=1,y=1;表达式(!x||y--)的值是 A)0 B)1 C)2 D)-1

A B C D

26.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是 A)函数调用可以作为独立的语句存在 B)函数调用可以作为一个函数的实参 C)函数调用可以出现在表达式中 D)函数调用可以作为一个函数的形参

A B C D

27.有以下程序 float fun(int x,int y) {return(x+y);} main() {int a=2,b=5,c=8;

printf(\\n\((int)fun(a+c,b),a-c)); }

程序运行后的输出结果是 A)编译出错 B)9 C)21 D)9.0

A B C D

28.若有以下调用语句,则不正确的fun函数的首部是 main() { …

int a[50],n; …

fun(n, &a[9]); … }

A)void fun(int m, int x[]) B)void fun(int s, int h[41]) C)void fun(int p, int *s) D)void fun(int n, int a)

A B C D

29.fseek函数的正确调用形式是 A)fseek(文件指针,起始点,位移量) B)fseek(文件指针,位移量,起始点) C)fseek(位移量,起始点,文件指针) D)fseek(起始点,位移量,文件指针)

A B C D

30.若fp是指向某文件的指针,且已读到文件末尾,则函数feof(fp)的返回值是 A)EOF B)-1 C)1 D)NULL

A B C D

31.若有说明语句:char c='\72';则变量c A)包含1个字符 B)包含2个字符 C)包含3个字符

D)说明不合法,c的值不确定

A B C D

32.若有说明 int a[3][4];则a数组元素的非法引用是 A)a[0][2*1] B)a[1][3] C)a[4-2][0 ]

D)a[0][4]

A B C D

33.设有以下说明语句 struct stu {int a; float b; } stutype;

则下面的叙述不正确的是 A)struct是结构体类型的关键字 B)struct stu是用户定义的结构体类型 C)stutype是用户定义的结构体类型名 D)a和b都是结构体成员名

A B C D

34.在C语言中,引用数组元素时,其数组下标的数据类型允许是 A)整型常量 B)整型表达式

C)整型常量或整型表达式 D)任何类型的表达式

A B C D

35.若运行时给变量x输入12,则以下程序的运行结果是 main() {int x,y;

scanf(\); y=x>12?x+10:x-12; printf(\\n\);

} A)0 B)22 C)12 D)10(

A B C D

36.以下说法正确的是

A)C语言程序总是从第一个的函数开始执行

B)在C语言程序中,要调用函数必须在main()函数中定义 C)C语言程序总是从main()函数开始执行

D)C语言程序中的main()函数必须放在程序的开始部分

A B C D

37.表达式0x13^0x17的值是 A)0x04 B)0x13 C)0xE8 D)0x17

A B C D

38.有以下程序

#define F(X,Y)(X)*(Y) main() {int a=3, b=4;

printf(\\n\(a++, b++)); }

程序运行后的输出结果是

A)12 B)15 C)16 D)20

A B C D

39.下列程序执行后的输出结果是 void func(int *a,int b[]) { b[0]=*a+6; } main() {int a,b[5]; a=0; b[0]=3;

func(&a,b); printf(\\n\[0]); } A)6 B)7 C)8 D)9

A B C D

40.若有下面的程序段: char s[]=\则下列叙述正确的是 A)s和p完全相同

B)数组s中的内容和指针变量p中的内容相等 C)s数组长度和p所指向的字符串长度相等 D)*p与s[0]相等

A B C D

41.以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序 void sort(int a[],int n) {int i,j,t;

for(i=0;i

if(a[i]

{int aa[10]={1,2,3,4,5,6,7,8,9,10},i; sort(&aa[3],5);

for(i=0;i<10;i++)printf(\[i]); printf(\\n\); }

程序运行后的输出结果是 A)1,2,3,4,5,6,7,8,9,10, B)10,9,8,7,6,5,4,3,2,1, C)1,2,3,8,7,6,5,4,9,10, D)1,2,10,9,8,7,6,5,4,3,

A B C D

42.以下程序的运行结果是 #include \main() {struct date

{int year,month,day;}today;

printf(\\n\(struct date)); }

A)6 B)8 C)10 D)12

A B C D

43.若有语句int *point,a=4;和 point=&a;下面均代表地址的一组选项是 A)a,point,*&a B)&*a,&a,*point C)*&point,*point,&a D)&a,&*point,point

A B C D

44.在调用函数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是 A)地址传递 B)单向值传递

C)由实参传形参,再由形参传实参 D)传递方式由用户指定

A B C D

45.已定义以下函数 fun(char *p2, char *p1) {

while((*p2=*p1)!='\0'){p1++;p2++;} }

函数的功能是

A)将p1所指字符串复制到p2所指内存空间 B)将p1所指字符串的地址赋给指针p2

C)对p1和p2两个指针所指字符串进行比较 D)检查p1和p2两个指针所指字符串中是否有'\0'

A B C D

46.若执行下述程序时,若从键盘输入6和8时,结果为 main() {int a,b,s;

scanf(\); s=a if(a

printf(\); } A)36 B)64 C)48 D)以上都不对

A B C D

47.fscanf函数的正确调用形式是 A)fscanf(fp,格式字符串,输出表列); B)fscanf(格式字符串,输出表列,fp); C)fscanf(格式字符串,文件指针,输出表列); D)fscanf(文件指针,格式字符串,输入表列);

A B C D

48.下列关于C语言数据文件的叙述中正确的是

A)文件由ASCII码字符序列组成,C语言只能读写文本文件 B)文件由二进制数据序列组成,C语言只能读写二进制文件

C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件 D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件

A B C D

49.有以下程序

void ss(char *s,char t) {while(*s)

{if(*s= =t)*s=t-'a'+'A'; s++; } } main()

{char str1[100]=\ ss(str1,c); printf(\\n\); }

程序运行后的输出结果是 A)ABCDDEFEDBD B)abcDDfefDbD C)abcAAfefAbA D)Abcddfefdbd

A B C D

50.若以下定义: struct link {int data;

struct link *next; } a,b,c,*p,*q;

且变量a和b之间已有如下图所示的链表结构:

指针p指向变量a,q指向变量c。则能够把c插入到a和b 之间并形成新的链表的语句组是: A)a.next=c; c.next=b; B)p.next=q; q.next=p.next; C)p->next=&c; q->next=p->next; D)(*p).next=q; (*q).next=&b;

A B C D

二、填空题(每空2分,共计30分)

1.算法的基本特征是可行性、确定性、 【1】 和拥有足够的情报。

输入答案,中间不含空格:

2.在长度为n的有序线性表中进行二分查找。最坏的情况下,需要的比较次数为 【2】 。

输入答案,中间不含空格:3.在面向对象的程序设计中,类描述的是具有相似性质的一组 【3】 。

输入答案,中间不含空格:4.通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为 【4】 。

输入答案,中间不含空格:5.数据库管理系统常见的数据模型有层次模型、网状模型和 【5】 3种。

输入答案,中间不含空格:6.设y是int型,请写出y为奇数的关系表达式 【6】 。

输入答案,中间不含空格:7.设int a=5,b=6,表达式(++a==b--)?++a:--b的值是【7】 。

输入答案,中间不含空格:8.下列程序的输出结果是【8】。 maim ()

{char b []=\; b[5]=0;

printf (\\n\);}

输入答案,中间不含空格:9.当调用函数时,实参是一个数组名,则向函数传递的是【9】。

输入答案,中间不含空格:10.以下程序的输出结果是【10】。 int a=1234;

printf (\\n\,a);

输入答案,中间不含空格:11.用高级语言编写的程序称为【11】程序,它可以通过解释程序翻译一句

执行一句的方式执行,也可以通过编译程序一次翻译产生目标程序,然后执行。

输入答案,中间不含空格:12.以下程序的输出结果是【12】。 main() {int a=0; a+=(a=8);

printf(\\n\);}

输入答案,中间不含空格: 13.(13)函数 void fun(float *sn, int n)的功能是:根据以下公式计算S,计算结果通过形参指针sn传回;n通过形参传入,n的值大于等于0。请填空。

void fun( float *sn, int n)

{ float s=0.0, w, f=-1.0; int i=0;

for(i=0; i<=n; i++) { f=【13】* f; w=f/(2*i+1); s+=w; } 【14】=s;}

输入答案,中间不含空格:14.上一题【14】

输入答案,中间不含空格:15.14)函数fun的功能是:根据以下公式求p的值,结果由函数值返回。 m与n为两个正数且要求m>n。

例如:m=12,n=8时,运行结果应该是495.000000。 请在题目的空白处填写适当的程序语句,将该程序补充完整。 #include #include

float fun (int m, int n) { int i; double p=1.0;

for(i=1;i<=m;i++)【15】; for(i=1;i<=n;i++)【16】; for(i=1;i<=m-n;i++)p=p/i; return p;} main () { clrscr();

printf (\\n\(12,8));}

输入答案,中间不含空格: 16.上一题【16】

输入答案,中间不含空格:17.该程序运行的结果是【17】。 #include #include #define M 100

void fun(int m, int *a, int *n) { int i,j=0;

for(i=1;i<=m;i++) if(i%7==0||i==0) a[j++]=i;

*n=j;} main() { int aa[M],n,k; clrscr(); fun(10,aa,&n); for(k=0;k

if((k+1) ==0)printf(\\n\); else printf(\[k]); printf(\\n\);}

输入答案,中间不含空格:18.下列程序的功能是:求出ss所指字符串中指定字符的个数,并返回此值。 例如,若输入字符串123412132,输入字符1,则输出3,请填空。 #include #include #define M 81

int fun(char *ss, char c) { int i=0;

本文来源:https://www.bwwdw.com/article/jxk.html

Top