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

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


第1题

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

共 1 分 

第2题

程序流程图中带有箭头的线段表示的是( )。

共 1 分 

第3题

深度为5的完全二叉树的结点数不可能是( )。

共 1 分 

第4题

下列选项中不属于结构化程序设计原则的是(   )。

共 1 分 

第5题

下列关于栈的叙述正确的是( )。

共 1 分 

第6题

下面描述不属于软件特点的是(   )。

共 1 分 

第7题

构成计算机软件的是(   )。

共 1 分 

第8题

按照C语言规定的用户标识符命名规则,不能出现在标识符中的是( )。

共 1 分 

第9题

设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码)为( )。

共 1 分 

第10题

设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码)为( )。

共 1 分 

第11题

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

共 1 分 

第12题

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

共 1 分 

第13题

设有两行定义语句:

1
2
int scanf;
float case;

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

共 1 分 

第14题

以下能正确表述算式 sin(2nr+30°)的C语言表达式是(    )。

共 1 分 

第15题

若有定义:

1
int a,b,c;

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

共 1 分 

第16题

有以下程序

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

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

共 1 分 

第17题

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

共 1 分 

第18题

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

共 1 分 

第19题

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

共 1 分 

第20题

有以下程序

1
2
3
4
5
6
7
#include <stdio.h>
main()
{
char a = 'H';
a = (a>='A' && a<='Z') ? (a+32):a;
printf("%c\n",a);
}

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

共 1 分 

第21题

负责数据库中查询操作的数据库语言是( )。

共 1 分 

第22题

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

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

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

共 1 分 

第23题

在一个C源程序文件中所定义的全局变量,其作用域为( )。

共 1 分 

第24题

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

共 1 分 

第25题

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

共 1 分 

第26题

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

共 1 分 

第27题

以下语句中存在语法错误的是( )。

共 1 分 

第28题

有以下程序

1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
int f(int x, int y)
{
return((y-x)*x);
}void main()
{
int a=3, b=4,c=5,d;
d=f(f(a,b),f(a,c));
printf("%d\n",d);
}

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

共 1 分 

第29题

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

共 1 分 

第30题

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

共 1 分 

第31题

有以下程序

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 分 

第32题

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

共 1 分 

第33题

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

共 1 分 

第34题

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

共 1 分 

第35题

有以下程序

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 分 

第36题

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

共 1 分 

第37题

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

共 1 分 

第38题

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

共 1 分 

第39题

有以下程序

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 分 

第40题

有以下程序

1
2
3
4
5
6
7
#include <stdio.h>
void main()
{
unsigned char a=8, c;
c = a>>3;
printf("%d\n",c);
}

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

共 1 分 

第41题

给定程序中,函数fun的功能是:找出100至x(x≤999)之间各位上的数字之和为15的所有整数,然后输出;符合条件的整数个数作为函数值返回。
例如,当n值为500时,各位数字之和为15的整数有:159、168、177、186、195、249、258、267、276、285、294、339、348、357、366、375、384、393、429、438、447、456、465、474、483、492。共有26个。
请在程序的下划线处填入正确的内容并把下划线删除,是程序得出正确的结果。
注意:

源程序存放在考生文件夹下的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
31
32
33
/**********code.c**********/
#include <stdio.h>
int fun(int x)
{
int n, s1, s2, s3, t;
/**********found**********/
n=①______;
t=100;
/**********found**********/
while(t<=②______)
{
s1=t%10;
s2=(t/10)%10;
s3=t/100;
if(s1+s2+s3==15)
{
printf("%d ",t);
n++;
}
/**********found**********/
③______;
}return n;
}void main()
{
int x=-1;
while(x>999||x<0)
{
printf("Please input(0<x<=999): ");
scanf("%d",&x);
}
printf("\nThe result is: %d\n",fun(x));
}
/**********-code.c**********/
共 20 分 

第42题

给定程序MODI1.C中函数fun的功能:先将s所指字符串中的字符按逆序存放到t所指字符中,然后把s所指串中的字符按正序连接到t所指串的后面。
例如:当s所指的字符串为:"ABCDE"时,则t所指的字符串应为:"EDCBAABCDE"。
请改正程序中的错误,使它能得出正确的结果。
注意:

不要改动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>
#include<string.h>
void fun (char *s, char *t)
{
/**********found**********/
int i;
i=0;
sl = strlen(s);
for(; i<sl; i++)
/**********found**********/
t[i] = s[sl-i];
for(i=0; i<sl; i++)
t[sl+i] = s[i];
t[2*sl] = '\0';
}
main()
{
char s[100],t[100];
printf("\nPlease enter string s:"); scanf("%s", s);
fun(s,t);
printf("The result is: %s\n", t);
}
/**********-code.c**********/
共 40 分 

第43题

函数fun功能是:将a、b中的两个两位正整数合并形成一个新的整数放在c中。合并的方式是将a中的十位和个位数依次放在变量c的千位和十位上,b中的十位和个位数依次放在变量c的个位和百位上。
例如,当a=45,b=12。调用该函数后,c=4251。
注意,部分源程序存在文件PROG1.C中。数据文件IN.DAT中的数据不得修改。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun花括号中填入你编写的若干语句。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/**********code.c**********/
#include <stdio.h>
void fun(int a, int b, long *c)
{
 
}
int main()
{
int a,b;
long c;
printf("Input a b:");
scanf("%d%d", &a, &b);
fun(a, b, &c);
printf("The result is: %ld\n", c);
}
/**********-code.c**********/

参考答案:

1
2
3
4
void fun(int a, int b, long *c)
{
*c=a%10+(b%10)*10+(a/10)*100+(b/10)*1000;
}
共 0 分