下半年计算机二级C语言基础试题

下半年计算机二级C语言基础试题

任何设计活动都是在各种约束和矛盾的需求之间寻求平衡,编程也不例外。以下是我收集的关于计算机二级C语言的基础问题,希望大家认真阅读!

下半年1,计算机二级C语言基础试题,第一,选择:

1.给出以下定义:

char acX[]= " abcdefg ";

char acY[ ]= {'a ',' b ',' c ',' d ',' e ',' f ',' g ' };

正确的说法是()

a)数组acX和数组acY是等价的;b)数组acX和数组acY具有相同的长度。

c)数组acX的长度大于数组acY的长度;d)数组acX的长度小于数组acY的长度。

答案:c

2.

void示例(char acHello[])

{

printf("%d ",sizeof(acHello));

返回;

}

void main()

{

char acHello[] = "你好";

例子(阿切洛);//数组名作为参数,传递地址,一个地址占四个字节。

返回;

}

的输出是

不确定

答:答

3.有以下程序段

char Acar[]= " ABCDE ";

char * pcPtr

for(pcPtr = acArr;pcPtr & ltacArr+5;pcPtr++)

{

printf("%s/n ",pcPtr);

}

返回;

输出结果是()

A) ABCD B) A C) E D) ABCDE

BCDE

CDE

D B DE

鄂阿鄂

答案:d

4.在中断中,信号量不能同步获取,但可以释放。

A.对的b .错的

答:答

5.下列说法不正确的是()

a)具有相同名称的变量可用于不同的函数

b)函数中的形参是局部变量。

c)函数中定义的变量只在该函数范围内有效。

d)函数内复合语句定义的变量在该函数范围内有效(复合语句指函数内成对括号形成的代码)。

答案:d

6.提供了以下定义:

无符号长整型pulArray[] = {6,7,8,9,10 };

无符号long * pulPtr

以下程序段的输出结果是()

pulPtr = pulArray

*(pulPtr+2)+= 2;

printf ("%d,%d/n ",*pulPtr,*(pulPtr+2));

a)810 B)6.8 C)7.9D)610

答案:d

7.定义一个结构时有几个语句。请指出正确的一项(多选):_ _ _ _ _ _ _ _

a、结构的每个部分,最好对齐四个字节;

b,该结构的总长度优选地在四个字节中对齐;

c、结构中成员的存储不考虑字节对齐;

答案:a,b

8.void示例()

{

int I;

char AC new[20];

for(I = 0;我& lt10;i++)

{

AC new[I]= ' 0 ';

}

printf("%d/n ",strlen(AC new));

返回;

}

的输出是()

A 0 B 10 C 11 D不确定。

答案:d

9.switch (c)中c的数据类型可以是char、long、float、unsigned、bool。()

A.对的b .错的

答案:b

10.默认情况下,网络上传输的字节顺序很大。如果主机较小,在网络上通信时必须转换字节顺序;如果主机是

大字节序,为了程序的一致性和可移植性,最好在程序中加入字节序转换操作(空操作)。

A.对的b .错的

答:答

第二,填空

1的默认定义类型和C语言函数返回类型是

2.有两种方法可以将函数的参数传递给形参:和。

3.调用函数内部的另一个函数的调用方法被调用。在函数中直接或间接调用函数成为函数的调用方法。

4.c语言变量根据作用域分为和。

5.对于函数中未指定存储类别的局部变量,默认存储类别为

第三,看程序编写结果

1 、#包含

Int abc(int u,int v);

Void main()

{int a=24,b=16,c;

c=abc(a,b);

printf("value=%d ",c);

}

Int abc(int u,int v)

{ int w;

While(五)

{ w = u % v;

u = v;

v = w;

}

return u;

}

2 、#包括

int x1=30,x2 = 40

主()

{int x3=10,x4 = 20

sub(x3,x4);

sub(x2,x 1);

printf("%d,%d,%d,%d ",x3,x4,x1,x2);

}

sub(int x,int y)

{ x 1 = x;x = y;y = x 1;}

3 、#包括

主()

{ int I = 5;

Printf("%d ",sub(I));

}

sub(int n)

{ int a;

If(n==1)返回1;

a = n+sub(n-1);

返回(a);

}

4 、#包括

虚空乐趣()

{ static int m;

m+= 2;

printf("%d ",m);

}

主()

{ int a;

for(a = 1;a & lt=4;a++)fun();

printf(" ");

}

第四,编程问题

1.写一个判断任意整数是否为素数的函数,用main()函数调用并测试。

2.用递归的方法求n!

3.有一个包含10个学生成绩的一维数组。写一个函数求平均分,最高分,最低分。

下半年计算机二级C语言基础试题2 1。下列说法中正确的是()。

A.所有数据结构都必须有根节点。

所有数据结构必须有终端节点(即叶节点)。

只有一个根节点和一个叶节点的数据结构必须是线性的。

没有根节点或叶节点的数据结构一定是非线性的。

答案d

解析D项是正确的,线性结构的特征是:

(1)集合中必须有一个“第一元素”,并且是唯一的;

②集合中必须有“最后一个元素”,并且是唯一的;

③除了最后一个元素,其他所有数据元素都有唯一的“后继者”;

④除了第一个元素,其他所有数据元素都有唯一的“前任”。因此,没有根节点或叶节点的数据结构一定是非线性的。AB两个错误,不是所有的数据结构都必须有根节点和叶节点;C项错误。如果数据结构中有一个中间节点不满足只有一个前件或一个后件的条件,则不是线性结构。选择答案的d选项。

2.下列说法中错误的是()。

A. C语言中的每一条可执行语句和不可执行语句,最终都会被转换成二进制的机器指令。

B.c程序只有经过编译和链接步骤,才能形成真正可执行的二进制机器指令文件。

c用c语言编写的程序称为源程序,以ASCII码的形式存储在文本文件中。

编译D. C语言源程序,生成带后缀的目标程序。obj。

回答a

解析项目a时出错,注释语句不会被翻译成二进制机器指令。C源程序由C编译器编译生成带后缀的二进制文件。obj(称为对象文件),然后是。obj文件通过Link软件与各种库函数连接,生成一个带后缀的可执行文件。exe。答案是选项a。

3.c语言主要利用以下()函数实现程序模块化。

A.定义一个函数

B.定义常数和外部变量

C.三个基本结构句

D.丰富的数据类型

回答a

解析C程序的模块化主要通过函数来实现。c语言允许函数单独编译,从而实现模块化。答案是选项a。

4.有以下程序段:

char ch

int k;

ch = ' a

k = 12;

print("%c,%d,",h,ch,k);

printf("k=%d ",k);

给定字符A的ASCII码十进制值为97,执行上述程序段后的输出结果为()。

A.因为变量的类型与格式描述符的类型不匹配,所以输出没有固定值。

b输出项数与格式描述符数不匹配,输出为零或不输出。

C.a,97,12k=12

D.一,97,k=12

答案d

解析后的字符变量的值是字符的ASCII码值,可以参与整数变量允许的任何操作。“ch =‘a’,% c表示以字符格式输出ch的值,所以输出是a;%d表示ch的值以十进制代码形式输出,为97;k没有对应的输出格式,不会输出。在第二条语句中,首先输出" k= ",然后用十进制代码输出k的值,即12。选择答案的d选项。

5.下列说法正确的是()。

A.栈是一个“先进先出”的线性表。

B.队列是“先入后出”的线性表

C.循环队列是非线性结构。

D.有序线性表可以采用顺序存储结构,也可以采用链式存储结构。

答案d

解析有序线性表可以采用顺序存储结构或链式存储结构。错误A,堆栈是“先进先出”线性表中的错误B,队列是“先进先出”线性表;C项错误,循环队列是线性结构,有序线性表可以同时采用顺序存储结构和链式存储结构。

选择答案的d选项。

6.如果二叉树的中间序列是DCBAEFG,后面序列是DCBGFEA,那么二叉树的深度(根节点在1层)是()。

A.5

B.40

C.3

D.2

答案b

解析二叉树的后序序列是DCBGFEA,A是根节点。如果中间的序列是DCBAEFG,那么DCB是左子树节点,EFG是右子树节点。同样,B是C的父节点,C是D的父节点..根据分析,可以画出左子树。同样,E是F的父节点,F是G的父节点..根据分析,可以画出右边的子树,所以二叉树的深度是4层。选择选项b作为答案。

7.设置定义:struct { intnfloatx}s[2],m[2]={{10,2.8},{0,0.0 } };,下列赋值语句正确的是()。

A.s[0]= m[1];

B.s = m;

c . s . n = m . n;

D.s[2]。x=m[2]。x;

回答a

解析定义长度为2的结构类型数组S和长度为2的结构类型数组M,并初始化数组M。同类型的结构可以直接赋变量名,A项正确;数组名是数组的第一个地址,地址常量不能互相赋值。B项错误;名为address constant的数组不是结构变量,不能引用成员。C项错误;s[2]和m[2]的数组越界,D项错误。答案是选项a。

8.关于C语言标识符,下列说法错误的是()。

A.标识符可以全部由数字组成。

B.标识符可以全部由下划线组成。

C.标识符都可以由小写字母组成。

D.标识符可以全部由大写字母组成。

回答a

c语言标识符只能由字母、数字和下划线组成,并且只能以字母和下划线开头,所以答案是选项a。

9.下列程序段中的变量已经被定义为int类型,那么

sum = pAd = 5;

pAd=sum++和++pAd,pad++;

printf("%d ",pAd);

程序段的输出是()。

A.6

B.四

C.5

D.七

答案d

分析了自增自减运算符的两种用法:前置运算,将运算符放在变量之前,规则是将变量的值增加(或减少)1,然后用改变后的表达式值参与其他运算;后置运算,运算符放在变量之后,规则是变量先参与其他运算,然后变量的值增加(或减少)1。Pad = SUM ++被执行,SUM ++是后增量,执行后Pad = 5,Sum = 6。++pAd和pAd++语句中没有其他操作,也就是效果是一样的。pAd分别加1,两个句子执行完之后pAd7。选择答案的d选项。