Dotcpp  >  试卷列表  >  全国计算机等级考试《二级C语言程序设计》模拟试题(五)

全国计算机等级考试《二级C语言程序设计》模拟试题(五)


第1题

设栈的顺序存储空间为S(0:49),栈底指针bottom=49,栈顶指针top=30(指向栈顶元素)。则栈中的元素个数为( )。

共 1 分 

第2题

面向对象方法中,继承是指( )。

共 1 分 

第3题

软件生命周期是指( )。

共 1 分 

第4题

层次型、网状型和关系型数据库的划分原则是( )。

共 1 分 

第5题

结构化程序的三种基本控制结构是(   )。

共 1 分 

第6题

数据库设计中反映用户对数据要求的模式是( )。

共 1 分 

第7题

程序测试的目的是(   )。

共 1 分 

第8题

在数据库中,数据模型包括数据结构、数据操作和( )。

共 1 分 

第9题

一名工作人员可以使用多台计算机,而一台计算机可被多名工作人员使用,则实体工作人员与实体计算机之间的联系是( )。

共 1 分 

第10题

有三个关系R、S和T如下:

第33题

则由关系R和S得到关系T的操作是(    )。

共 1 分 

第11题

以下叙述中正确的是( )。 

共 1 分 

第12题

以下选项中叙述正确的是( )。

共 1 分 

第13题

关于C语言标识符,以下叙述错误的是( )。

共 1 分 

第14题

有以下程序(字母A的ASCII代码为65)

1
2
3
4
5
6
#include <stdio.h>
main()
{
char c1 ='A',c2 ='Y';
printf("%d, %d\n",c1,c2);
}

程序运行后的输出结果是( )。

共 1 分 

第15题

有以下程序

1
2
3
4
5
6
7
#include <stdio.h>
main()
{
int a;
a = (int)(-1.53*3);
printf("%d\n", a);
}

程序的运行结果是( )。

共 1 分 

第16题

若有C语言表达式 2+3*4+7/3,以下选项中叙述正确的执行顺序是( )。

共 1 分 

第17题

若有定义:char c;int d; 程序运行时输入:c=1,d=2<回车>,能把字符1输入给变量c、整数2输入给变量d的输入语句是( )。

共 1 分 

第18题

设有定义:double x=2.12;,以下不能完整输出变量x值的语句是(   )。

共 1 分 

第19题

以下叙述中正确的是()。

共 1 分 

第20题

有以下程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
main()
{
int a,b;
for(a=0; a<3; a++)
{
scanf("%d", &b);
switch(b)
{
defaultprintf("%d,", ++b);
case 1: printf("%d,", ++b);
case 2: printf("%d,", ++b);
}
}

}执行时输入:1 2 3 <回车>,则输出结果是( )。

共 1 分 

第21题

以下程序段中的变量已正确定义

1
2
3
for( i=0; i<4; i++,i++ )
for( k=1; k<3; k++ );
printf("*" );

该程序段的输出结果是( )。

共 1 分 

第22题

有以下程序

1
2
3
4
5
6
7
#include  <stdio.h>
main()
{
int a=-1, b=-1;
for(; ++a;)++b;
printf("%d,%d\n", a, b);
}

程序运行后的输出结果是( )。

共 1 分 

第23题

以下叙述中正确的是(   )。

共 1 分 

第24题

以下不能用于描述算法的是( )。

共 1 分 

第25题

有如下程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
main()
{
int i, *ptr;
int array[5] = {5,3,1};
for (ptr=array, i=0; i<5; i++, ptr++)
{
if (*ptr == 0)
putchar('X');
else
putchar('A' + *ptr);
}
printf("\n");
}

程序运行后的输出结果是( )。

共 1 分 

第26题

C语言主要是借助以下哪种手段来实现程序模块化?( )

共 1 分 

第27题

设有定义语句int(*f)(int);,则以下叙述中正确的是(   )。

共 1 分 

第28题

下列叙述中正确的是()。

共 1 分 

第29题

有以下程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
int m1(int x,int y)
{
return x<=y ? x :y;
}int m2(int x,int y)
{
return x<=y ? y :x;
}int fun(int a,int b)
{
return a+b;
}
main()
{
int x=2,y=3,z=1;
printf("%d\n", fun(m1(x,y),m2(y,z)));
}

程序的运行结果是( )。

共 1 分 

第30题

以下叙述中正确的是( )。

共 1 分 

第31题

若有定义:char s[30] = {0};运行时输入:This is a string.<回车>则以下不能正确读入整个字符串:This is a string.到字符数组 s 中的语句组是( )。

共 1 分 

第32题

设有如下程序段:

1
2
char s[20]= "Bejing",*p;
p=s:

则执行p=s;语句后,以下叙述正确的是()。

共 1 分 

第33题

以下选项中正确的语句组是( )。

共 1 分 

第34题

有以下程序

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
#include <stdlib.h>
void fun(int **s, int x[2][3])
{
**s =*(x[1]+1);
}void main()
{
int a[2][3]={1,2,3,4,5,6},*p;
p = (int *)malloc(sizeof(int));
fun(&p,a);
printf("%d\n",*p);
}

程序的运行结果是( )。

共 1 分 

第35题

关于地址和指针,以下说法正确的是(   )。

共 1 分 

第36题

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

共 1 分 

第37题

若要使用C数学库中的sin函数,需要在源程序的头部加上#include <math.h>关于引用数学库,以下叙述正确的是( )。

共 1 分 

第38题

下面结构体的定义语句中,错误的是(   )。

共 1 分 

第39题

有以下程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <string.h>
struct S
{
char name[10];
};
void change(struct S *data, int value)
{
strcpy(data->name, "#");
value = 6;
}
main()
{
struct S input;
int num = 3;
strcpy(input.name, "OK");
change(&input, num);
printf("%s,%d\n", input.name, num);
}

程序运行后的输出结果是( )。

共 1 分 

第40题

有以下程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
typedef struct {int b, p;} A;
void f(A c)
{
int j;
c.b+=1;
c.p+=2;
}void main()
{
int i;
A a={1,2};
f(a);
printf("%d,%d\n", a.b, a.p);
}

程序运行后的输出结果是( )。

共 1 分 

第41题

给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数.并通过形参指针n传回所指变量。
例如:输入一个数:27638496,新的数:为739。
请在程序的下划线处填八正确的内容并把下划线删除,使程序得出正确的结果。 

注意:

源程序存放在考生文件夹下的BLANKl.C中。
不得增行或删行,也不得更改程序的结构!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/**********code.c**********/
#include <stdio.h>
void fun(unsigned long *n)
{
unsigned long x=0, i;
int t;
i=1;
while(*n)
{
/**********found**********/
t=*n % ①______;
/**********found**********/
if(t%2!= ②______)
{
x=x+t*i;
i=i*10;
}*n =*n /10;
}
/**********found**********/
*n=③______;
}
main()
{
unsigned long n=-1;
while(n>99999999||n<0)
{
printf("Please input(0<n<100000000): ");
scanf("%ld",&n);
}
fun(&n);
printf("\nThe result is: %ld\n",n);
}
/**********-code.c**********/
共 20 分 

第42题

给定程序MODI1.C中函数fun的功能是:计算n!。例如,给n输入入5,则输出l20.000000。
请改正程序中的错误,使程序能输出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/**********code.c**********/
#include <stdio.h>
double fun(int n)
{
double result = 1.0 ;
/**********found**********/
if n == 0
return 1.0 ;
while(n >1 && n < 170)
/**********found**********/
result *= n--
return result ;
}void main()
{
int n;
printf("Input N:");
scanf("%d", &n);
printf("\n\n%d! =%lf\n\n",n,fun(n));
}
/**********-code.c**********/
共 40 分 

第43题

请编写一个函数fun,它的功能是:将一个表示正整数的数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串“1234”,则函数把它转换为整数值1234。
函数fun中给出的语句仅供参考。
注意:

部分源程序存在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/**********code.c**********/
#include <stdio.h>
#include <string.h>
long fun(char *p)
{
int i,len;/* len为串长*/
long x=0;
len=strlen(p);
/*以下完成数字字符串转换为数字,注意字符’0’不是数字0*/
 
return x;
}
void main()
{
char s[6];
long n;
printf("Enter a tring:\n");
gets(s);
n = fun(s);
printf("%ld\n",n);
}

参考答案:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int flag=1;
i=0;
if(*p=='-')/*p表示负数,置flag值为-1*/
{
p++;
i++;
flag= -1;
}else if(*p=='+')/*p表示正数,置flag值为1*/
{
p++;
i++;
}
for(;i<len;i++)
{
x=x*10+*p-'0';/*将字符串转换成相应的整数*/
p++;
}
x = x*flag;
共 0 分