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

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


第1题

下列排序方法中,最坏情况下时间复杂度最低的是(  )。

共 1 分 

第2题

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

共 1 分 

第3题

下列关于数据库设计的叙述中,正确的是

共 1 分 

第4题

数据库系统的三级模式不包括(  )。

共 1 分 

第5题

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

共 1 分 

第6题

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

共 1 分 

第7题

程序测试的目的是(   )。

共 1 分 

第8题

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

共 1 分 

第9题

一间宿舍可住多个学生,则实体宿舍和学生之间的联系是( )。

共 1 分 

第10题

一个运动队有多个队员,一个队员仅属于一个运动队,一个队一般都有一个教练,则实体运动队和队员的联系是( )。

共 1 分 

第11题

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

共 1 分 

第12题

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

R、S、T关系表

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

共 1 分 

第13题

以下选项中不属于C语言标识符的是(  )。

共 1 分 

第14题

有以下程序

1
2
3
4
5
#include <stdio.h>
main()
 {
 printf("%d\n", NULL);
 }

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

共 1 分 

第15题

以下选项中,合法的C语言常量是()。

共 1 分 

第16题

设有定义:

1
int k=0;

以下选项的四个表达式中与其他三个表达式的值不相同的是 (  )。

共 1 分 

第17题

有以下程序

1
2
3
4
5
6
#include <stdio.h>
main()
 {
 int k=-17;
 printf("%d,%o,%x\n",k,1-k,1-k);
 }

程序的运行结果是(  )。

共 1 分 

第18题

设有定义:

1
double  x=2.12;

以下不能完整输出变量x值的语句是 (  )。

共 1 分 

第19题

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

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

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

共 1 分 

第22题

关于“do{循环体}while(条件表达式)”,以下叙述正确的是 (  )。

共 1 分 

第23题

有以下程序

1
2
3
4
5
6
7
8
#include <stdio.h>
main()
 {
 int i,array[6] = {1,5,0,4};
 for(i=0; i<5; i++)
 printf("%d,",array[i]&4);
 printf("\n");
 }

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

共 1 分 

第24题

字符数组a和b中存储了两个字符串,判断字符串a和b是否相等,应当使用的是()。

共 1 分 

第25题

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

共 1 分 

第26题

在源程序的开始处加上“#include”进行文件引用的原因, 以下叙述正确的是( )。

共 1 分 

第27题

有以下程序

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
int k=5;
 void f(int *s)
 {
 s=&k;
 *s=7;
 }
 main()
 {
 int m=3; 
f(&m); 
printf("%d,%d\n", m,k);
 }

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

共 1 分 

第28题

有以下程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#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 分 

第29题

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

共 1 分 

第30题

若有以下程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
 #define N 4
 void fun(int a[][N], int b[], int flag)
{
 int i,j;
 for(i=0; i<N; i++) 
{
 b[i] = a[i][0];
 for(j=1; j<N; j++)
 if (flag?(b[i] > a[i][j]) : (b[i] < a[i][j]))
 b[i] = a[i][j];
 }
 }
 main()
 {
 int x[N][N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}, y[N],i;
 fun(x,y,1);
 for (i=0; i<N; i++) printf("%d,",y[i]);
 fun(x, y, 0);
 for (i=0;i<N; i++) printf("%d,",y[i]);
 printf("\n"); }

则程序的输出结果是(  )。

共 1 分 

第31题

以下程序中给数组所有元素输入数据,请从选项中选择正确的答 案填入下划线处。(  )

1
2
3
4
5
6
7
#include <stdio.h>
main()
 {
 int a[10],i=0;
 while(i<10) scanf("%d", _________);
 
 }
共 1 分 

第32题

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

共 1 分 

第33题

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

共 1 分 

第34题

设有定义:

1
int x=0, *p;

紧接着的赋值语句正确的是(  )。

共 1 分 

第35题

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

共 1 分 

第36题

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

共 1 分 

第37题

有以下程序:

1
2
3
4
5
6
7
8
#include <stdio.h>
#define PT 3.5;
 #define S(x) PT*x*x;
 main()
 {
 int a=1,b=2;
 printf("%4.1f\n",S(a+b));
 }

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

共 1 分 

第38题

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

共 1 分 

第39题

有以下程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#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 分 

第40题

以下fun函数的功能是将形参s所指字符串内容颠倒过来

1
2
3
4
5
6
7
8
9
10
void fun(char *s)
 {
 int i,j,k;
 for(i=0,j=strlen(s) __________ ;i<j;i++,j--)
 {
 k=s[i];
 s[i]=s[j];
 s[j]=k;
 }
 }

在横线处应填入的内容是(  )。

共 1 分 

第41题

给定程序中,函数fun的功能是:计算下式前n项的和作为函数值返 回。

公式

 例如,当形参n的值为10时,函数返回:-0.204491。 请在程序的下划线处填入正确的内容并把下划线删除.使程序得 出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.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
/**********code.c**********/
 #include <stdio.h>
double fun(int n)
 {
 int i, k;
 double s, t;
 s=0;
 /**********found**********/
 k=①______;
 for(i=1; i<=n; i++) 
{
 /**********found**********/
 t=②______;
 s=s+k*(2*i-1)*(2*i+1)/(t*t);
 /**********found**********/
 k=k*③______;
 }
 return s;
 }
 void main()
 {
int n=-1;
 while(n<0)
 {
 printf("Please input(n>0): ");
 scanf("%d",&n);
 }
 printf("\nThe result is: %f\n",fun(n));
 }
 /**********-code.c**********/


共 20 分 

第42题

给定程序MODI1.C中函数fun的功能是:判断一个整数是否是素 数,若是返回1,否则返回0。在main()函数中,若fun返回1输出YES, 若fun返回0输出NO! 诸改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数。不得增行或删行,也不得更改程序的 结构!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/**********code.c**********/
 #include <stdio.h>
int fun(int m)
{
 int k = 2;
 while(k <= m && (m%k))
 /**********found**********/
 k++
 /**********found**********/
 if(m = k)
 return 1;
 else return 0;
 }
 void main()
 {
 int n;
 printf("\nPlease enter n: ");
 scanf("%d", &n);
 if (fun(n)) 
printf("YES\n");
 else
 printf("NO!\n");
 }
 /**********-code.c**********/


共 40 分 

第43题

请编写一个函数fun,它的功能是:找出一堆整型数组元素中最大 的值和它所在的下标,最大的值和它所在的下标通过形参传回。数组 元素中的值己在主函数中赋予。 主函数中x是数组名,n是x中的数据个数,max存放最大值,index存 放最大值所在元素的下标。 注意部分源程序存在文件PROG1.C 文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花 括号中填入你编写的若干语句。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/**********code.c**********/
#include <stdlib.h>
#include <stdio.h>
void fun(int a[],int n ,int *max,int *d)
 {
 }
 void main()
 {
 int i,x[20],max,index,n=10;
 for(i=0;i < n;i++)
 {
 x[i] = rand()%50; 
printf("%4d",x[i]);
 }
 printf("\n");
 fun(x,n,&max,&index);
 printf("Max =%5d,Index =%4d\n",max,index);
 }

参考答案:

1
2
3
4
5
6
7
8
9
10
11
12
void fun(int a[],int n,int *max,int *d)
 {
 int i;
 *max=a[0];
 *d=0;
 for(i=0;i<n;i++)
 if(*max<a[i])
{
 *max=a[i];
 *d=i;
 }
 }
共 0 分