您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 二级辅导 >> C语言 >> 模拟题 >> 正文    
  全国计算机等级考试二级C语言模拟试题8 【注册男护士专用博客】          

全国计算机等级考试二级C语言模拟试题8

www.nanhushi.com     佚名   不详 

答案

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

1.循环链表的主要优点是
A)不再需要头指针了
B)从表中任一结点出发都能访问到整个链表
C)在进行插入、删除运算时,能更好的保证链表不断开
D)已知某个结点的位置后,能够容易的找到它的直接前件
A       B       C       D      
2.栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是
A)ABCED B)DCBEA
C)DBCEA D)CDABE
A       B       C       D      
3.n个顶点的强连通图的边数至少有
A)n-1 B)n(n-1)
C)n D)n+1
A       B       C       D      
4.在结构化程序设计思想提出之前,在程序设计中曾强调程序的效率,现在,与程序的效率相比,人们更重视程序的
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.在数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有
A)特定的数据模型 B)数据无冗余
C)数据可共享 D)专门的数据管理软件
A       B       C       D      
9.数据库设计包括两个方面的设计内容,它们是
A)概念设计和逻辑设计
B)模式设计和内模式设计
C)内模式设计和物理设计
D)结构特性设计和行为特性设计
A       B       C       D      
10.实体是信息世界中广泛使用的一个术语,它用于表示
A)有生命的事物 B)无生命的事物
C)实际存在的事物 D)一切事物
A       B       C       D      
11.C语言中提供的关键字是
A)swicth B)cher
C)Case D)default
A       B       C       D      
12.以下有4组用户标识符,其中合法的一组是
A)For-subCase B)4dDOSize
C)f2_G3Ifabc D)WORDvoiddefine
A       B       C       D      
13.若有定义:int a=8,b=5,c;,执行语句c=a/b+0.4;后,c的值为
A)1.4 B)1
C)2.0 D)2
A       B       C       D      
14.已知各变量的类型如下
int i=8,k,a,b;
unsigned long w=5;
double x=1.42,y=5.2;
则以下符合C语言语法的表达式是
A)a+=a-=(b=4)*(a=3) B)a=a*3+2
C)x%(-3) D)y=float(i)
A       B       C       D      
15.设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值:scanf("i=%d,f=%f",&i,&f); 为了把100和765.12分别赋给i和f,则正确的输入为
A)100<空格>765.12<回车>
B)i=100,f=765.12<回车>
C)100<回车>765.12<回车>
D)x=100<回车>,y=765.12<回车>
A       B       C       D      
16.下列程序的输出结果是
main()
{
int a=2;a%=4-1;
printf("%d",a);a+=a*=a-=a*=3;
printf("\n%d",a);
}
A)2,12 B)-1,12
C)1,0 D)2,0
A       B       C       D      
17.若有以下程序
main()
{
int k=2,i=2,m;
m=(k+=i*=k);printf("%d,%d\n",m,i);
}
执行后的输出结果是
A)8,6 B)8,3
C)6,4 D)7,4
A       B       C       D      
18.以下不正确的if语句形式是
A)if(x>y&&x!=y);
B)if(x==y)x+=y;
C)if(x!=y)scanf("%d",&x)else scanf("%d",&y);
D)if(x
A       B       C       D      
19.以下程序中循环体总的执行次数是
int i,j;
for(i=6;i>1;i--)
for(j=0;j{……}
A)20 B)261
C)15 D)25
A       B       C       D      
20.对于下面的程序,说法正确的是
main()
{
int x=3,y=4,z=2;
if(x=y+z)printf("x=y+z");
else printf("x!=y+z");
}
A)不能通过编译 B)输出6
C)输出x!=y+z D)输出x=y+z
A       B       C       D      
21.下列程序的输出结果是
main()
{
int a[3],i,j,k=2;
for(i=0;i<3;i++)a[i]=i;
for(i=0;ifor(j=0;ja[j]=a[i];
printf("%d\n ",a[2]);
}
A)2 B)3
C)1 D)0
A       B       C       D      
22.标准库函数fgets(buf,n,fp)的功能是
A)从fp所指向的文件中读取长度为n的字符串存入缓冲区buf
B)从fp所指向的文件中读取长度不超过n-1的字符串存入缓冲区buf
C)从fp所指向的文件中读取n个字符串存入缓冲区buf
D)从fp所指向的文件中读取长度为n-1的字符串存入缓冲区buf
A       B       C       D      
23.如下程序的执行结果是
main()
{
static int a[]={1,7,3,9,5,11};
int *p=a;
*(p+3)+=4;
printf("%d,%d",*p,*(p+3));
}
A)1,13 B)1,16
C)3,13 D)1,14
A       B       C       D      
24.下面程序的输出是
int b=3;
fun(int *k)
{
int b=2;
b=*(k++)*b;
return(b);
}
main()
{
int a[]={11,12,13,14,15,16};
b=fun(&a[1])*b;
printf("%d\n",b);
}
A)24 B)72
C)11 D)33
A       B       C       D      
25.执行下列程序段,结果是
int x=40;
char y=′C′;
int n;
n=(x&0xff)&&(y>′B′);
printf("%d\n",n);
A)0 B)1
C)2 D)3
A       B       C       D      
26.以下能对二维数组a进行正确初始化的语句是
A)int a[2][]={{1,0,1},{5,2,3}};
B)int a[][3]={{1,2,3},{4,5,6}};
C)int a[2][4]={{1,2,3},{4,5},{6}};
D)int a[][]={{1,0,1}{},{1,1}};
A       B       C       D      
27.以下程序的执行结果是
union un
{
int i;
char c[2];
}
main()
{
union un x;
x.c[0]=10;
x.c[1]=1;
printf("%d",x.i);
}
A)266 B)11
C)265 D)138
A       B       C       D      
28.与 y=(x>0?1:x<0?-1:0);的功能相同的if语句是
A)if (x>0)y=1;
else if(x<0)y=-1;
else y=0;
B)if(x)
if(x>0)y=1;
else if(x<0)y=-1;
C)y=-1
if(x)
if(x>0)y=1;
else if(x==0)y=0;
else y=-1;
D)y=0;
if(x>=0)
if(x>0)y=1;else y=-1;
A       B       C       D      
29.下面程序的执行结果是
#define SUM(X) X*X
main()
{
int a=6;int i=1,j=2;
a+=SUM(i+j)/SUM(i+j);
printf("%d\n",a);
}
A)15 B)2
C)7 D)0
A       B       C       D      
30.下列程序段的输出结果是
void fun(int *x, int *y)
{ printf("%d %d", *x, *y); *x=3; *y=4;}
main()
{
int x=1,y=2;
fun(&y,&x);
printf("%d %d",x, y);
}
A)2 1 4 3 B)1 2 1 2
C)1 2 3 4 D)2 1 1 2
A       B       C       D      
31.下列函数的功能是将字符串ss中的特定位置上的字母实行转化(若该位置上不是字母,则不转换)。
#include
#include
void fun ( char *ss)
{
int i;
for(i=0;ss[i]!=′\0′;i++){
if(i%2==1 && ss[i]>=′a′ && ss[i]<=′z′)
ss[i]=ss[i]-32;
}
}
main()
{
char tt[51];
clrscr();
printf("Please enter an character string within 50 characters:\n");
gets(tt);
printf("\n\nAfter changing,the string\n %s",tt);
fun(tt);
printf("\nbecomes\n \%s",tt);
}
若输入abc4Efg,则应输出
A)aBc4Efg B)abc4Efg
C)ABC4EFG D)abc4dfg
A       B       C       D      
32.下面程序的输出结果是
fun(int x)
{
int a=3;
a*=x;
return a;
}
main()
{
int x=2,y=1,n;
n=fun(x);
n=fun(y);
printf("%d\n",n);
}
A)2 B)4
C)3 D)8
A       B       C       D      
33.下列程序的输出结果是
main()
{
char *str="12123434";
int x1=0,x2=0,x3=0,x4=0,i;
for(i=0;str[i]!=′\0′;i++)
switch (str[i])
{
case′1′: x4++;
case′2′: x3++;
case′3′: x2++;
case′4′: x1++;
}
printf("%d,%d,%d,%d\n",x1,x2,x3,x4);
}
A)8,6,4,1 B)8,6,3,2
C)8,8,4,1 D)8,6,4,2
A       B       C       D      
34.以下程序的结果是
main()
{
char *p="abcdefgh",*r;
long *q;
q=(long*)p;
q++;
r=(char*)q;
printf("%s\n",r);
}
A)defg B)cdef
C)ghab D)efgh
A       B       C       D      
35.下列函数的功能是计算并输出下列多项式值:
Sn=∑ni=0(2.02*i-1-1.02*i)
例如,若主函数从键盘给n输入8后,则输出为S=0.662872。注意:n的值要求大于1但不大于100。在划线处应填入的选项是
#include
double fun(int n)
{
int i;
double s=0.0;
for(i=1;i<=n;i++)
s=s+;
return s;
}
main()
{
int n; double s;
printf("\nInput n: "); scanf("%d ",&n);
s=fun(n);
printf("\ns=%f\n ",s);
}
A)1.0/(2*i-1)-1.0/(2*i) B)1.0/(2*i-1)
C)1.0/(2*i) D)1.0/(2*i)-1.0/(2*i-1)
A       B       C       D      
1.常用的黑箱测试有等价分类法、 【1】 、因果图法和错误推测法4种。
输入答案,中间不含空格:
2.测试的目的是暴露错误,评价程序的可靠性;而 【2】 的目的是发现错误的位置并改正错误。
输入答案,中间不含空格:
3.软件维护活动包括以下几类:改正性维护、适应性维护、 【3】 维护和预防性维护。
输入答案,中间不含空格:
4.在面向对象的设计中,用来请求对象执行某一处理或回答某些信息的要求称为【4】 。
输入答案,中间不含空格:
5.关键字ASC和DESC分别表示 【5】 的含义。
输入答案,中间不含空格:
6.以下程序执行结果为 【6】 。
main()
{
int i,j,k;
for(i=0,j=5;i<=j;i++,j--);
printf("k=%d",k=i+j);
}
输入答案,中间不含空格:
7.设有以下变量定义,并已赋确定的值
char w; int x; float y; double z;
则表达式w*x+z-y所求得的数据类型为 【7】 。
输入答案,中间不含空格:
8.以下程序的输出结果是 【8】 。
main()
{
char s[]="abcdef";
s[3]=′\0′;
printf("%s\n",s);
}
输入答案,中间不含空格:
9.以下程序运行后的输出结果是 【9】 。
void fun(int x,int y)
{
x=x+y;y=x-y;x=x-y;
printf("%d,%d, ",x,y);
}
main()
{
int x=2,y=3;
fun(x,y);
printf("%d,%d\n",x,y);
}
输入答案,中间不含空格:
10.以下程序的功能是从键盘上输入若干个字符(以回车符作为结束)组成一个字符串存入一个字符数组,然后输出该字符数组中的字符串。请填空。
#include
#include
main()
{
char str[81], *sptr;
int i;
for(i=0; i<80; i++)
{ str[i]=getchar(); if (str[i] == ′\n′)break; }
str[i] = 【10】 ; sptr=str;
while(*sptr)putchar(*sptr 【11】 );
}
输入答案,中间不含空格:
11.设有定义“#define F(N)2*N”,则表达式F(2+3)的值是 【12】 。
输入答案,中间不含空格:
12.若在程序中用到“putchar()”函数时,应在程序开头写上包含命令 【13】 ,若在程序中用到"strlen()"函数时,应在程序开头写上包含命令 【14】 。
输入答案,中间不含空格:
13.下面的程序用来统计文件中字符的个数,请填空。
#include
main()
{
FILE *fp;
long num=0;
if ((fp=fopen("fname.dat", "r"))== NULL)
{ printf("Cant't open file!\n"); exit(0); }
while ( 【15】 ){ fgetc(fp); num++; }
printf("num=%ld\n", num);
fclose(fp);
}
输入答案,中间不含空格:

答案
11.C语言中提供的关键字是
A)swicth B)cher
C)Case D)default
A       B       C       D      
12.以下有4组用户标识符,其中合法的一组是
A)For-subCase B)4dDOSize
C)f2_G3Ifabc D)WORDvoiddefine
A       B       C       D      
13.若有定义:int a=8,b=5,c;,执行语句c=a/b+0.4;后,c的值为
A)1.4 B)1
C)2.0 D)2
A       B       C       D      
14.已知各变量的类型如下
int i=8,k,a,b;
unsigned long w=5;
double x=1.42,y=5.2;
则以下符合C语言语法的表达式是
A)a+=a-=(b=4)*(a=3) B)a=a*3+2
C)x%(-3) D)y=float(i)
A       B       C       D      
15.设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值:scanf("i=%d,f=%f",&i,&f); 为了把100和765.12分别赋给i和f,则正确的输入为
A)100<空格>765.12<回车>
B)i=100,f=765.12<回车>
C)100<回车>765.12<回车>
D)x=100<回车>,y=765.12<回车>
A       B       C       D      

答案
16.下列程序的输出结果是
main()
{
int a=2;a%=4-1;
printf("%d",a);a+=a*=a-=a*=3;
printf("\n%d",a);
}
A)2,12 B)-1,12
C)1,0 D)2,0
A       B       C       D      
17.若有以下程序
main()
{
int k=2,i=2,m;
m=(k+=i*=k);printf("%d,%d\n",m,i);
}
执行后的输出结果是
A)8,6 B)8,3
C)6,4 D)7,4
A       B       C       D      
18.以下不正确的if语句形式是
A)if(x>y&&x!=y);
B)if(x==y)x+=y;
C)if(x!=y)scanf("%d",&x)else scanf("%d",&y);
D)if(x
A       B       C       D      
19.以下程序中循环体总的执行次数是
int i,j;
for(i=6;i>1;i--)
for(j=0;j{……}
A)20 B)261
C)15 D)25
A       B       C       D      
20.对于下面的程序,说法正确的是
main()
{
int x=3,y=4,z=2;
if(x=y+z)printf("x=y+z");
else printf("x!=y+z");
}
A)不能通过编译 B)输出6
C)输出x!=y+z D)输出x=y+z
A       B       C       D      

21.下列程序的输出结果是
main()
{
int a[3],i,j,k=2;
for(i=0;i<3;i++)a[i]=i;
for(i=0;ifor(j=0;ja[j]=a[i];
printf("%d\n ",a[2]);
}
A)2 B)3
C)1 D)0
A       B       C       D      
22.标准库函数fgets(buf,n,fp)的功能是
A)从fp所指向的文件中读取长度为n的字符串存入缓冲区buf
B)从fp所指向的文件中读取长度不超过n-1的字符串存入缓冲区buf
C)从fp所指向的文件中读取n个字符串存入缓冲区buf
D)从fp所指向的文件中读取长度为n-1的字符串存入缓冲区buf
A       B       C       D      
23.如下程序的执行结果是
main()
{
static int a[]={1,7,3,9,5,11};
int *p=a;
*(p+3)+=4;
printf("%d,%d",*p,*(p+3));
}
A)1,13 B)1,16
C)3,13 D)1,14
A       B       C       D      
24.下面程序的输出是
int b=3;
fun(int *k)
{
int b=2;
b=*(k++)*b;
return(b);
}
main()
{
int a[]={11,12,13,14,15,16};
b=fun(&a[1])*b;
printf("%d\n",b);
}
A)24 B)72
C)11 D)33
A       B       C       D      
25.执行下列程序段,结果是
int x=40;
char y=′C′;
int n;
n=(x&0xff)&&(y>′B′);
printf("%d\n",n);
A)0 B)1
C)2 D)3
A       B       C       D      

答案
26.以下能对二维数组a进行正确初始化的语句是
A)int a[2][]={{1,0,1},{5,2,3}};
B)int a[][3]={{1,2,3},{4,5,6}};
C)int a[2][4]={{1,2,3},{4,5},{6}};
D)int a[][]={{1,0,1}{},{1,1}};
A       B       C       D      
27.以下程序的执行结果是
union un
{
int i;
char c[2];
}
main()
{
union un x;
x.c[0]=10;
x.c[1]=1;
printf("%d",x.i);
}
A)266 B)11
C)265 D)138
A       B       C       D      
28.与 y=(x>0?1:x<0?-1:0);的功能相同的if语句是
A)if (x>0)y=1;
else if(x<0)y=-1;
else y=0;
B)if(x)
if(x>0)y=1;
else if(x<0)y=-1;
C)y=-1
if(x)
if(x>0)y=1;
else if(x==0)y=0;
else y=-1;
D)y=0;
if(x>=0)
if(x>0)y=1;else y=-1;
A       B       C       D      
29.下面程序的执行结果是
#define SUM(X) X*X
main()
{
int a=6;int i=1,j=2;
a+=SUM(i+j)/SUM(i+j);
printf("%d\n",a);
}
A)15 B)2
C)7 D)0
A       B       C       D      
30.下列程序段的输出结果是
void fun(int *x, int *y)
{ printf("%d %d", *x, *y); *x=3; *y=4;}
main()
{
int x=1,y=2;
fun(&y,&x);
printf("%d %d",x, y);
}
A)2 1 4 3 B)1 2 1 2
C)1 2 3 4 D)2 1 1 2
A       B       C       D      

答案
31.下列函数的功能是将字符串ss中的特定位置上的字母实行转化(若该位置上不是字母,则不转换)。
#include
#include
void fun ( char *ss)
{
int i;
for(i=0;ss[i]!=′\0′;i++){
if(i%2==1 && ss[i]>=′a′ && ss[i]<=′z′)
ss[i]=ss[i]-32;
}
}
main()
{
char tt[51];
clrscr();
printf("Please enter an character string within 50 characters:\n");
gets(tt);
printf("\n\nAfter changing,the string\n %s",tt);
fun(tt);
printf("\nbecomes\n \%s",tt);
}
若输入abc4Efg,则应输出
A)aBc4Efg B)abc4Efg
C)ABC4EFG D)abc4dfg
A       B       C       D      
32.下面程序的输出结果是
fun(int x)
{
int a=3;
a*=x;
return a;
}
main()
{
int x=2,y=1,n;
n=fun(x);
n=fun(y);
printf("%d\n",n);
}
A)2 B)4
C)3 D)8
A       B       C       D      
33.下列程序的输出结果是
main()
{
char *str="12123434";
int x1=0,x2=0,x3=0,x4=0,i;
for(i=0;str[i]!=′\0′;i++)
switch (str[i])
{
case′1′: x4++;
case′2′: x3++;
case′3′: x2++;
case′4′: x1++;
}
printf("%d,%d,%d,%d\n",x1,x2,x3,x4);
}
A)8,6,4,1 B)8,6,3,2
C)8,8,4,1 D)8,6,4,2
A       B       C       D      
34.以下程序的结果是
main()
{
char *p="abcdefgh",*r;
long *q;
q=(long*)p;
q++;
r=(char*)q;
printf("%s\n",r);
}
A)defg B)cdef
C)ghab D)efgh
A       B       C       D      
35.下列函数的功能是计算并输出下列多项式值:
Sn=∑ni=0(2.02*i-1-1.02*i)
例如,若主函数从键盘给n输入8后,则输出为S=0.662872。注意:n的值要求大于1但不大于100。在划线处应填入的选项是
#include
double fun(int n)
{
int i;
double s=0.0;
for(i=1;i<=n;i++)
s=s+;
return s;
}
main()
{
int n; double s;
printf("\nInput n: "); scanf("%d ",&n);
s=fun(n);
printf("\ns=%f\n ",s);
}
A)1.0/(2*i-1)-1.0/(2*i) B)1.0/(2*i-1)
C)1.0/(2*i) D)1.0/(2*i)-1.0/(2*i-1)
A       B       C       D      

答案

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

1.常用的黑箱测试有等价分类法、 【1】 、因果图法和错误推测法4种。
输入答案,中间不含空格:
2.测试的目的是暴露错误,评价程序的可靠性;而 【2】 的目的是发现错误的位置并改正错误。
输入答案,中间不含空格:
3.软件维护活动包括以下几类:改正性维护、适应性维护、 【3】 维护和预防性维护。
输入答案,中间不含空格:
4.在面向对象的设计中,用来请求对象执行某一处理或回答某些信息的要求称为【4】 。
输入答案,中间不含空格:
5.关键字ASC和DESC分别表示 【5】 的含义。
输入答案,中间不含空格:

答案
6.以下程序执行结果为 【6】 。
main()
{
int i,j,k;
for(i=0,j=5;i<=j;i++,j--);
printf("k=%d",k=i+j);
}
输入答案,中间不含空格:
7.设有以下变量定义,并已赋确定的值
char w; int x; float y; double z;
则表达式w*x+z-y所求得的数据类型为 【7】 。
输入答案,中间不含空格:
8.以下程序的输出结果是 【8】 。
main()
{
char s[]="abcdef";
s[3]=′\0′;
printf("%s\n",s);
}
输入答案,中间不含空格:
9.以下程序运行后的输出结果是 【9】 。
void fun(int x,int y)
{
x=x+y;y=x-y;x=x-y;
printf("%d,%d, ",x,y);
}
main()
{
int x=2,y=3;
fun(x,y);
printf("%d,%d\n",x,y);
}
输入答案,中间不含空格:
10.以下程序的功能是从键盘上输入若干个字符(以回车符作为结束)组成一个字符串存入一个字符数组,然后输出该字符数组中的字符串。请填空。
#include
#include
main()
{
char str[81], *sptr;
int i;
for(i=0; i<80; i++)
{ str[i]=getchar(); if (str[i] == ′\n′)break; }
str[i] = 【10】 ; sptr=str;
while(*sptr)putchar(*sptr 【11】 );
}
输入答案,中间不含空格:

答案
11.设有定义“#define F(N)2*N”,则表达式F(2+3)的值是 【12】 。
输入答案,中间不含空格:
12.若在程序中用到“putchar()”函数时,应在程序开头写上包含命令 【13】 ,若在程序中用到"strlen()"函数时,应在程序开头写上包含命令 【14】 。
输入答案,中间不含空格:
13.下面的程序用来统计文件中字符的个数,请填空。
#include
main()
{
FILE *fp;
long num=0;
if ((fp=fopen("fname.dat", "r"))== NULL)
{ printf("Cant't open file!\n"); exit(0); }
while ( 【15】 ){ fgetc(fp); num++; }
printf("num=%ld\n", num);
fclose(fp);
}
输入答案,中间不含空格:

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    没有相关文章
    专 题 栏 目