2012年9月计算机等级考试二级C模拟试题(3)

日期:05-05| http://www.59wj.com |C模拟题|人气:607

2012年9月计算机等级考试二级C模拟试题(3)

一 、选择题
(1)算法的空间复杂度是指
A)算法程序的长度
B)算法程序中的指令条数
C)算法程序所占的存储空间
D)执行过程中所需要的存储空间
正确答案:  D

(2)用链表表示线性表的优点是
A)便于随机存取
B)花费的存储空间较顺序存储少
C)便于插入和删除操作
D)数据元素的物理顺序与逻辑顺序相同
正确答案:  C

(3)数据结构中,与所使用的计算机无关的是数据的
A)存储结构
B)物理结构
C)逻辑结构
D)物理和存储结构
正确答案:  C

(4)结构化程序设计主要强调的是
A)程序的规模
B)程序的效率
C)程序设计语言的先进性
D)程序易读性
正确答案:  D

(5)软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指
A)模块间的关系
B)系统结构部件转换成软件的过程描述
C)软件层次结构
D)软件开发过程
正确答案:  B

(6)检查软件产品是否符合需求定义的过程称为
A)确认测试
B)集成测试
C)验证测试
D)验收测试
正确答案:  A

(7)数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是
A)控制流
B)加工
C)数据存储
D)源和潭
正确答案:  A

(8)应用数据库的主要目的是
A)解决数据保密问题
B)解决数据完整性问题
C)解决数据共享问题
D)解决数据量大的问题
正确答案:  C

(9)在数据库设计中,将E-R图转换成关系数据模型的过程属于
A)需求分析阶段
B)逻辑设计阶段
C)概念设计阶段 
D)物理设计阶段
正确答案:  B

(10)在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是
A)数据库系统
B)文件系统
C)人工管理
D)数据项管理
正确答案:  A

希望与更多计算机等级考试的网友交流,

.

www.59wj.com

(11)以下叙述中正确的是
A)构成C程序的基本单位是函数
B)可以在一个函数中定义另一个函数
C)main()函数必须放在其他函数之前
D)C函数定义的格式是K&R格式
正确答案:  A

(12)结构化程序所规定的三种最基本控制结构是
A)输入、处理、输出
B)树形、网形、环形
C)顺序、选择、循环
D)主程序、子程序、函数
正确答案:  C

(13)一个C语言程序是由
A)一个主程序和若干子程序组成
B)函数组成
C)若干过程组成
D)若干子程序组成

正确答案:  B

(14)请选出可用作C语言用户标识符的是
A)void,define,WORD
B)a3_b3,_123,IF
C)FOR,--abc,Case
D)2a,Do,Sizeof
正确答案:  B

(15)下列各数据类型不属于构造类型的是
A)枚举型
B)共用型
C)结构型
D)数组型
正确答案:  A

(16)在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是
A)a=20000+20000;
B)a=4000*10;
C)a=30000+10000;
D)a=4000L*10L
正确答案:  D

(17)以下不正确的叙述是
A)在C程序中,逗号运算符的优先级最低
B)在C程序中,APH和aph是两个不同的变量
C)若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变
D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
正确答案:  D

(18)sizeof(float)是
A)一个双精度型表达式
B)一个整型表达式
C)一种函数调用
D)一个不合法的表达式
正确答案:  B

(19)若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为
A)4
B)16
C)32
D)52
正确答案:  C

(20)下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请选择填空。
#include <stdio.h>
main()
{ int i=0,j,k;
do{i++;k=316-13*i;}while(______);
j=k/11; 
printf("316=13*%d+11*%d",i,j);
}
A)k/11
B)k%11
C)k/11==0
D)k%11==0
正确答案:  B

希望与更多计算机等级考试的网友交流,

.

www.59wj.com

(21)设有定义:int n=0,*p=&n,**q=&p,则下列选项中正确的赋值语句是
A)p=1;
B)*q=2;
C)q=p;
D)*p=5;
正确答案:  D

(22)下面程序的运行结果是
#include <stdio.h>
main()
{ int y=10;
do{y--;}while(--y);
printf("%d\n",y--);
}
A)-1
B)1
C)8
D)0
正确答案:  D

(23)下面程序的输出结果是
main()
{ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
printf("%d\n",*(p+2));}
A)3
B)4
C)1
D)2
正确答案:  A

(24)有如下程序
int a[10]={1,2,3,4,5,6,7,8,9,10};
int *p=&a[3],b;b=p[5];
则b的值是
A)5
B)6
C)9
D)8
正确答案:  C

(25)设有int x=11;则表达式(x++*1/3)的值是
A)3
B)4
C)11
D)12
正确答案:  A

(26)请选出以下语句的输出结果
printf("%d\n",strlen("\t\"\065\xff\n"));
A)5
B)14
C)8
D)输出项不合法,无正常输出
正确答案:  A

(27)下列程序的输出结果是
main()
{ double d=3.2; int x,y;
x=1.2; y=(x+3.8)/5.0;
printf("%d\n", d*y);
} 
A)3
B)3.2
C)0
D)3.07
正确答案:  C

(28)下列程序的输出结果是
int b=2;
int func(int *a)
{ b += *a; return(b);}
main()
{ int a=2, res=2;
res += func(&a);
printf("%d\n",res);
}
A)4
B)6
C)8
D)10
正确答案:  B

(29)下面能正确进行字符串赋值操作的是
A)char s[5]={"ABCDE"};
B)char s[5]={ ′A′, ′B′, ′C′, ′D′, ′E′};
C)char *s;s="ABCDE";
D)char *s;char a; scanf("%s",&s);
正确答案:  C

(30)执行以下程序后,a,b的值分别为
main()
{ int a,b,k=4,m=6,*p1=&k,*p2=&m;
a=p1==&m;
b=(*p1)/(*p2)+7;
printf("a=%d\n",a);
printf("b=%d\n",b);
}
A)-1,5
B)1,6
C)0,7
D)4,10
正确答案:  C www.59wj.com

(31)设有数组定义: char array[]="China"; 则数组 array所占的空间为
A)4个字节
B)5个字节
C)6个字节
D)7个字节
正确答案:  C

(32)若已定义:
int a[]={0,1,2,3,4,5,6,7,8,9}, *p=a,i;
其中 0≤i≤9, 则对a数组元素不正确的引用是
A)a[p-a]
B)*(&a[i])
C)p[i]
D)a[10]
正确答案:  D

(33)以下不正确的定义语句是
A)double x[5]={2.0,4.0,6.0,8.0,10.0};
B)int y[5]={0,1,3,5,7,9};
C)char c1[]={′1′,′2′,′3′,′4′,′5′};
D)char c2[]={′\x10′,′\xa′,′\x8′};
正确答案:  B

(34)若有以下程序
#include  <stdio.h>
int a[]={2,4,6,8};
main()
{ int i;
int *p=a;
for(i=0;i<4;i++)a[i]=*p;
printf("%d\n",a[2]);
}
上面程序输出结果是
A)6
B)8
C)4
D)2
正确答案:  D

(35)下面程序段的运行结果是
char *format="%s,a=%d,b=%d\n";
int a=11,b=10;
a+=b;
printf(format,"a+=b",a,b);
A)for,"a+=b",ab
B)format,"a+=b"
C)a+=b,a=21,b=10
D)以上结果都不对
正确答案:  C

(36)C语言允许函数类型缺省定义,此时函数值隐含的类型是
A)float
B)int
C)long
D)double
正确答案:  B

(37)以下程序有语法错误,有关错误原因的正确说法是
main()
{ int G=5,k;
void prt_char();
...
k=prt_char(G);
...
}
A)语句 void prt_char();有错,它是函数调用语句,不能用void说明
B)变量名不能使用大写字母
C)函数说明和函数调用语句之间有矛盾
D)函数名不能使用下划线
正确答案:  C

(38)以下叙述中不正确的是
A)在不同的函数中可以使用相同的名字的变量
B)函数中的形式参数是局部变量
C)在一个函数内定义的变量只在本函数范围内有效
D)在一个函数内的复合语句中定义的变量在本函数范围内有效
正确答案:  D

(39)有以下程序:
#include <stdio.h>
union pw
{ int i;
char ch[2];}a;
 main()
 {a.ch[0]=13;a.ch[1]=0;printf("%d\n",a.i);}
程序的输出结果是
A)13
B)14
C)208
D)209
正确答案:  A

(40)在16位IBM-PC机上使用C语言,若有如下定义
struct data
{ int i;
char ch;
double f;
} b;
则结构变量b占用内存的字节数是
A)1
B)2
C)7
D)11
正确答案:  D www.59wj.com

(41)下面程序的运行结果是
#include <stdio.h>
main()
{ int a=1,b=10;
do
{b-=a;a++;}while(b--<0);
printf("a=%d,b=%d\n",a,b);
}
A)a=3,b=11
B)a=2,b=8
C)a=1,b=-1
D)a=4,b=9
正确答案:  B

(42)以下程序的输出结果是
void reverse(int a[],int n)
{ int i,t;
for(i=0;i<n/2;i++)
{ t=a[i]; a[i]=a[n-1-i];a[n-1-i]=t;}
}
main()
{ int b[10]={1,2,3,4,5,6,7,8,9,10}; int i,s=0;
reverse(b,8);
for(i=6;i<10;i++)s+=b[i];
printf(" %d\n ",s);
}
A)22
B)10
C)34
D)30
正确答案:  A

(43)有如下程序:
long fib(int n)
{ if(n>2)return(fib(n-1)+fib(n-2));
else return(2);
}
main()
{ printf("%d\n",fib(3));}
该程序的输出结果是
A)2
B)4
C)6
D)8
正确答案:  B

(44)假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的DOS提示符下键入:
PROG ABCDEFGH IJKL<回车>,则输出结果为
main( int argc, char *argv[])
{ while(--argc>0)
printf("%s",argv[argc]);
printf("\n");
}
A)ABCDEFG
B)IJHL    
C)ABCDEFGHIJKL
D)IJKLABCDEFGH
正确答案:  D

(45)以下程序有错,错误原因是
main()
{ int *p,i;char *q,ch;
p=&i;
q=&ch;
*p=40;
*p=*q;
......
}
A)p和q的类型不一致,不能执行*p=*q;语句
B)*p中存放的是地址值,因此不能执行*p=40;语句
C)q没有指向具体的存储单元,所以*q没有实际意义
D)q虽然指向了具体的存储单元,但该单元中没有确定的值,所以执行*p=*q;没有意义,可能会影响后面语句的执行结果
正确答案:  D

(46)函数 rewind 的作用是
A)使文件位置指针重新返回文件的开始位置
B)将文件位置指针指向文件中所要求的特定位置
C)使文件位置指针指向文件的末尾
D)使文件位置指针自动移至下一个字符位置
正确答案:  A

(47)设有以下说明语句
struct ex
{ int x ; float y; char z ;} example;
则下面的叙述中不正确的是
A)struct结构体类型的关键字
B)example是结构体类型名
C)x,y,z都是结构体成员名
D)struct ex是结构体类型名
正确答案:  B

(48)设有以下语句:
char x=3,y=6,z;
z=x^y<<2;
则z的二进制值是
A)00010100
B)00011011
C)00011100
D)00011000
正确答案:  B

(49)阅读以下程序及对程序功能的描述,其中正确的描述是
#include <stdio.h>
main()
{
FILE *in,*out;
char ch,infile[10],outfile[10];
printf("Enter the infile name:\n");
scanf("%s",infile);
printf("Enter the outfile name:\n");
scanf("%s",outfile);
if((in=fopen(infile,"r"))==NULL)
{
printf("cannot open infile\n");
exit(0);
}
if((out=fopen(outfile,"w"))==NULL)
{
printf("cannot open outfile\n");
exit(0);
}
while(! feof(in))fputc(fgetc(in),out);
fclose(in);
fclose(out);
}
A)程序完成将磁盘文件的信息在屏幕上显示的功能
B)程序完成将两个磁盘文件合二为一的功能
C)程序完成将一个磁盘文件复制到另一个磁盘文件中
D)程序完成将两个磁盘文件合并并在屏幕上输出
正确答案:  C

(50)C语言中,能识别处理的文件为
A)文本文件和数据块文件
B)文本文件和二进制文件
C)流文件和文本文件
D)数据文件和二进制文件
正确答案:  B www.59wj.com
二 、填空题 
(1)数据的逻辑结构有线性结构和 【1】 两大类。
正确答案:  1.(非线性结构)

(2)顺序存储方法是把逻辑上相邻的结点存储在物理位置 【2】 的存储单元中。
正确答案:  1.(相邻)

(3)一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的 【3】 。
正确答案:  1.(可重用性)

(4)软件工程研究的内容主要包括: 【4】 技术和软件工程管理。
正确答案:  1.(软件开发)

(5)关系操作的特点是 【5】 操作。
正确答案:  1.(集合)

(6)下面程序是指从终端读入的20个字符放入字符数组中,然后利用指针变量输出上述字符串,请填空。
#include <stdio.h>
main ()
{ int i; char  s[21],*p;
for (i=0;i<20;i++)
s[i]=getchar ();
s[i]=【6】;
p =【7】
while (*p)putchar  (【8】);
}
正确答案:  1.('\0') 2.(s) 3.(*p++)

(7)以下程序将数组a的4个元素和数组b的6个元素写到名为lett.dat的二进制文件中,请填空。
#include <stdio.h>
main ()
{ FILE   *fp;
char a[4]="1234",b[6]="abcedf";
if((fp=fopen("【9】","wb"))=NULL)exit(0);
fwrite(a,sizeof(char),4,fp);
fwrite(b,【10】,1,fp);
fclose(fp);
}
正确答案:  1.(lett.dat) 2.(6*sizeof(char))

(8)在C语言中(以16位PC机为例),一个float型数据在内存中所占的字节数为4;一个double型数据在内存中所占的字节数为【11】。
正确答案:  1.(8)

(9) 以下程序输出的结果是【12】。
main()
{ int a=5,b=4,c=3,d;
d=(a>b>c);
printf("%d\n",d);
}
正确答案:  1.(0)

(10)以下函数的功能是求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。
例如,若x中的值为30,则有4个数符合要求,它们是1,3,5,15。
请按题意,完成填空。
试题程序:
#include <conio.h>
#include <stdio.h>
void fun (int x, int pp[], int *n)
{ int i,j=0;
【13】
if(x%i==0)pp[j++]=i;
【14】;
}
main ()
{ int  x,aa[1000], n, i ;
clrscr();
printf("\nPlease enter an integer number : \n "); scanf ("%d ", &x);
fun (x, aa, &n);
for (i=0 ; i<n ; i++)
printf ("%d ", aa [i]);
printf ("\n ");
}
正确答案:
  1.(for(i=1;i<x;i+=2)) 2.(*n=j)

www.59wj.com

(11)
#include <conio.h>
#include <stdio.h>
int fun(int *s, int t, int *k)
{ int i;
*k=0;
【15】
if(s[*k]<s[i])*k=i;
return【16】;
}
main()
{
int a[10]={ 876,675,896,101,301,401,980,431,451,777},k;
clrscr();
fun(a, 10, &k);
printf("%d, %d\n ", k, a[k]);
}
正确答案:  1.(for(i=0;i<t;i++)) 2.(0)

(12)mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。
int mystrlen(char *str)
{ int i;
for(i=0;【17】!= ′\0′;i++);
return(i);
}
正确答案:  1.(*(str+i)或str[i])

(13)以下程序的输出结果为【18】。
#define JFT(x)x*x
main()
{ int a, k=3;
a=++JFT(k+1);
printf("%d",a);
}
正确答案:  1.(9)

(14)以下定义的结构体类型拟包含两个成员,其中成员变量info用来存入整形数据;成员变量link是指向自身结构体的指针,请将定义补充完整。
struct node
{ int info;
【19】link;
};
正确答案:  1.(struct node *)

(15)设有以下结构体类型:
struct st
{ char name[8];
int num;
float s[4];
}student[50];
并且结构体数组student中的元素都已有值,若要将这些元素写到硬盘文件fp中,请将以下fwrite语句补充完整:
fwrite(student,【20】,1,fp);
正确答案:  1.(sizeof(struct st)*50)

希望与更多计算机等级考试的网友交流,

.

www.59wj.com 如果觉得《2012年9月计算机等级考试二级C模拟试题(3)》C模拟题,jsj不错,可以推荐给好友哦。
本文Tags: 计算机等级考试 - 模拟试题 - 计算机二级模拟试题 - C模拟题,jsj,
在百度中搜索相关文章:2012年9月计算机等级考试二级C模拟试题(3)
在谷歌中搜索相关文章:2012年9月计算机等级考试二级C模拟试题(3)
在soso中搜索相关文章:2012年9月计算机等级考试二级C模拟试题(3)
在搜狗中搜索相关文章:2012年9月计算机等级考试二级C模拟试题(3)
相关分类导航|
热门推荐|