首页>计算机等级考试>模拟试题>正文
2007年计算机二级C语言模拟试题(9)

www.zige365.com 2007-10-26 11:53:18 点击:发送给好友 和学友门交流一下 收藏到我的会员中心

一 、选择题
(1)最简单的交换排序方法是
A)快速排序      B)选择排序
C)堆排序      D)冒泡排序
正确答案:  D

(2)栈通常采用的两种存储结构是
A)线性存储结构和链表存储结构
B)散列方式和索引方式
C)链表存储结构和数组
D)线性存储结构和非线性存储结构
正确答案:  A

(3)线性表的顺序存储结构和线性表的链式存储结构分别是
A)顺序存取的存储结构、顺序存取的存储结构
B)随机存取的存储结构、顺序存取的存储结构
C)随机存取的存储结构、随机存取的存储结构
D)任意存取的存储结构、任意存取的存储结构
正确答案:  B

(4)完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例的测试方法是
A)黑箱测试法      B)白箱测试法
C)错误推测法      D)安装测试法
正确答案:  A

(5)在结构化设计方法中,生成的结构图(SC)中,带有箭头的连线表示
A)模块之间的调用关系    B)程序的组成成分
C)控制程序的执行顺序    D)数据的流向
正确答案:  A

(6)下列选项中,不属于模块间耦合的是
A)数据耦合      B)同构耦合
C)异构耦合      D)公用耦合
正确答案:  C

(7)一个关系中属性个数为1时,称此关系为
A)对应关系      B)单一关系
C)一元关系      D)二元关系
正确答案:  C

(8)为用户与数据库系统提供接口的语言是
A)高级语言     B)数据描述语言(DDL)
C)数据操纵语言(DML)    D)汇编语言
正确答案:  C

(9)相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和
A)可重用性差      B)安全性差
C)非持久性      D)冗余性
正确答案:  D

(10)需求分析阶段的任务是确定
A)软件开发方法     B)软件开发工具
C)软件开发费用     D)软件系统功能
正确答案:  D

(11)下列关于C语言的说法不正确的是
A)C语言既具有高级语言的一切功能,也具有低级语言的一些功能
B)C语言中的每一条执行语句都必须用分号结束,分号不是C语言的一部分,是语句之间的分隔符号
C)注释可以出现在程序中任意合适的地方
D)命令行后面不能加分号,命令行不是C语言的语句
正确答案:  B

(12)下列关于标识符的说法中错误的是
A)合法的标识符是由字母、数字和下划线组成
B)C语言的标识符中,大写字母和小写字母被认为是两个不同的字符
C)C语言的标识符可以分为三类,即关键字、预定义标识符和用户标识符
D)用户标识符与关键字不同时,程序在执行时将给出出错信息
正确答案:  D

(13)下列合法的整型常量的表示是
A)098
B)oXde
C)32767
D)0xDG
正确答案:  C

(14)现在有以下定义,int a;double b;float c;char k;则下面的表达式a/b+c-k值的类型为:
A)int
B)double
C)float
D)char
正确答案:  B

(15)假设整型变量a,b,c的值均为5,则表达式a+++b+++c++的值为
A)17
B)16
C)15
D)14
正确答案:  C

(16)下列关于复合语句和空语句的说法错误的是
A)复合语句是由"{"开头,由"}"结尾的
B)复合语句在语法上视为一条语句
C)复合语句内,可以有执行语句,不可以有定义语句部分
D)C程序中的所有语句都必须由一个分号作为结束
正确答案:  C

(17)关于printf()函数的返回值叙述正确的是
A)通常是本次调用中输出字符的个数
B)通常是输出的第一个数值
C)通常返回布尔值真
D)通常返回非零值
正确答案:  A

(18)现有格式化输入语句,scanf("x=%dц,sumцy=%d,lineцz=%dL",&x,&y,&z);,现在已知在输入数据后,x,y,z的值分别是12,34,45,则下列数据是正确的输入格式的是
A)12,34,45
B)x=12,y=34,z=45
C)x=12C,sumy=34,z=45
D)x=12],sum]y=34,line]z=45
 [注]:"ц"表示空格, 表示回车
正确答案:  D

(19)设x,y,z,t均为整型变量,现有如下语句x=y=z=1;t=++x||++y&&++z;则执行这个语句后t的值为
A)2
B)1
C)0
D)不定值
正确答案:  B

(20)现有如下程序段,此程序段编译有错误,则程序段的错误出在
#include
main()
{  int a=30,b=40,c=50,d;
 d=a>30?b:c;
switch(d){case a:printf("%d,",a);
case b:printf("%d,",b);
case c:printf("%d,",c);
default:printf("#");}}
A)default:printf("#");这个语句
B)d=a>30?b:c;这个语句
C)case a:printf("%d,",a); case b:printf("%d,",b); case c:printf("%d,",c);这三个语句
D)switch(d)这个语句
正确答案:  C

(21)下列语句中,错误的是(x,y,a,b假设已经定义好)
A)while(x=y)5;
B)do x++ while(x==10);
C)while(0);
D)do 2;while(a==b);
正确答案:  B

(22)若i,j已经定义为整型,则以下程序段中,内循环体的执行次数是
for(i=6;i;i--)
 for(j=0;j<5;j++){……}
A)40
B)35
C)30
D)25
正确答案:  C

(23)下列说法中错误的是
A)只能在循环体内使用break语句
B)在循环体内使用break语句可以使流程跳出本层循环体,从而提前结束本层循环
C)在while和do…while循环中,continue语句并没有使整个循环终止
D)continue的作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,接着再一次进行循环判断
正确答案:  A

(24)阅读如下程序段
#include "stdio.h"
main()
{ int x,a,b;
scanf("%d",&x);
a=b=x;
for(;x!=0;)
{ if(xif(x>a)a=x;
scanf("%d",&x);}
printf("a=%d,b=%d\n",a,b);}
现输入如下。[注] :′ц′表示空格
34ц56ц23ц45ц5ц56ц7ц12ц365ц49ц48ц57ц87ц7ц6ц7569ц789ц0
输入后输出结果是
A)a=7569,b=789
B)a=5,b=365
C)a=7,b=789
D)a=7569,b=5
正确答案:  D

(25)下面关于字符常量的说法错误的是
A)一个字符常量代表ASCII字符集中的一个字符
B)单引号中的大写字母和小写字母代表不同的字符常量
C)字符常量只能包含一个字符
D)字符常量可以用单引号或双引号括起来
正确答案:  D

(26)现有如下程序
#include "stdio.h"
int fun(int x)
{printf("x=%d\n",++x);}
main()
{fun(12+5);}
则程序的输出结果是
A)12
B)13
C)17
D)18
正确答案:  D

(27)现有如下程序段
#include "stdio.h"
int aa(int x,int y);
main()
{int a=24,b=16,c;
c=aa(a,b);
printf("%d\n",c);}
int aa(int x,int y)
{int w;
while(y)
{w=x%y;
x=y;
y=w;}
return x;}
则程序段的输出结果是
A)8
B)7
C)6
D)5
正确答案:  A

(28)下列说法错误的是
A)函数调用时,函数名必须与所调用的函数名字完全相同
B)实参的个数必须与形式参数的个数一致
C)实参可以是表达式,在类型上必须与形参一一对应匹配
D)C语言规定,函数必须先定义,后调用(函数的返回值类型为int或char时除外)
正确答案:  C

(29)函数的值通过return语句返回,下面关于return语句的形式描述错误的是
A)return表达式;
B)return(表达式);
C)一个return语句可以返回多个函数值
D)一个return语句只能返回一个函数值
正确答案:  C

(30)现有如下定义:int a,b,*p,*q;,则下列赋值语句错误的是
A)p=&a;
B)q=&b;
C)p=q;
D)p=a;
正确答案:  D

(31)现有如下程序段
#include "stdio.h"
int *fun(int *a,int *b)
{int c;
c=*a%*b;
return &c;}
main()
{int a=5,b=19,*c;
c=fun(&a,&b);
printf("%d\n",++*c);}
则程序段执行后的结果为
A)8
B)7
C)6
D)5
正确答案:  C

(32)现有int a,*b;,b=&a;,则下列运算错误的是
A)*&a 
B)&*a
C)*&b
D)&*b
正确答案:  B

(33)现有如下程序段
#include "stdio.h"
main()
{ int k[30]={12,324,45,6,768,98,21,34,453,456};
int count=0,i=0;
while(k[i])
{ if(k[i]%2==0‖k[i]%5==0)count++;
 i++; }
printf("%d,%d\n",count,i);}
则程序段的输出结果为
A)7,8
B)8,8
C)7,10
D)8,10
正确答案:  D

(34)现有如下定义语句
int*p,s[20],i;
p=s;
表示数组元素s[i]的表达式不正确的是
A)*(s+i)
B)*(p+i)
C)*(s=s+i)
D)*(p=p+i)
正确答案:  C

(35)阅读如下程序段,这个程序在编译的时候会有一个警告,下列关于这个警告叙述正确的是
 #include "stdio.h"
#define N 10
int *fun(int a[N],int n)
{ int i,b[N];
for(i=0;ib[i]=a[i];
return(b);}
main()
{ int a[N]={12,34,45,5,6,34,4,655,2};
int *k;
k=fun(a[N],5);
printf("%d\n",*k);}
A)指针k没有指向任何对象而成为"无向指针",所以这里会产生警告
B)return语句不应该有括号,所以在这里会有警告
C)return语句的返回值类型与指针k的基类型不一致,这里会产生警告
D)数组赋值的时候没有把数组全部都赋初值,所以在这里会有警告
正确答案:  A

(36)有如下定义语句:int aa[][3]={12,23,34,4,5,6,78,89,45};,则45在数组aa中的行列坐标各为
A)3,2
B)3,1
C)2,2
D)2,1
正确答案:  C

(37)现有如下程序段
#include "stdio.h"
main()
{int a[5][6]={23,3,65,21,6,78,28,5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1};
int i=0,j=5;
printf("%d\n",*(&a[0][0]+2*i+j-2));}
则程序的输出结果为
A)21
B)78
C)23
D)28
正确答案:  A

(38)下列程序的输出结果是
#include "stdio.h"
#define N 3
#define M 3
void fun(int a[M][N])
{printf("%d\n",*(a[1]+2));}
main()
{int a[M][N];
int i,j;
for(i=0;ifor(j=0;ja[i][j]=i+j-(i-j);
fun(a);}
A)3
B)4
C)5
D)6
正确答案:  B

(39)下列关于字符串的说法中错误的是
A)在C语言中,字符串是借助于字符型一维数组来存放的,并规定以字符′\0′作为字符串结束标志
B)′\0′作为标志占用存储空间,计入串的实际长度
C)在表示字符串常量的时候不需要人为在其末尾加入′\0′
D)在C语言中,字符串常量隐含处理成以′\0′结尾
正确答案:  B

(40)有下面程序段
 #include "stdio.h"
#include "string.h"
main()
{char a[3][20]={{"china"},{"isa"},{"bigcountry!"}};
char k[100]={0},*p=k;
int i;
for(i=0;i<3;i++)
{ p=strcat(p,a[i]);}
i=strlen(p);
printf("%d\n",i);}
则程序段的输出结果是
A)18
B)19
C)20
D)21
正确答案:  B

本新闻共2页,当前在第1页  1  2  

我要投稿 新闻来源: 编辑: 作者:
相关新闻
2007年计算机二级VB模拟试题及答案(13)
2007年计算机二级VB模拟试题及答案(11)
2007年计算机二级VB模拟试题及答案(10)
2007年计算机二级VB模拟试题及答案(9)
2007年计算机二级VB模拟试题及答案(8)
2007年计算机二级VB模拟试题及答案(7)