荟萃馆

位置:首页 > IT认证 > 计算机等级

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

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

2017下半年计算机二级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 example(char acHello[])

{

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

return;

}

void main()

{

char acHello[] = "hello";

example(acHello);//数组名称作参数,传的是地址,一个地址占四个字节

return;

}

的输出是

A 4 B 5 C 6 D不确定

答案:A

3. 有以下程序段

char acArr[]= "ABCDE";

char *pcPtr;

for(pcPtr = acArr; pcPtr < acArr + 5; pcPtr++)

{

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

}

return;

输出结果是( )

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

B D BCDE

C C CDE

D B DE

E A E

答案:D

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

A.正确 B.错误

答案:A

5.以下叙述中不正确的是( )

A) 在不同的函数中可以使用相同名字的变量

B) 函数中的形式参数是局部变量

C) 在一个函数内定义的变量只在本函数范围内有效

D) 在一个函数内的复合语句中定义的变量在本函数范围内有效(复合语句指函数中的成对括号构成的代码)

答案:D

6.设有如下定义:

unsigned long pulArray[] = {6, 7, 8, 9, 10};

unsigned long *pulPtr;

则下列程序段的输出结果为( )

pulPtr = pulArray;

*(pulPtr + 2) += 2;

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

A)8,10 B)6,8 C)7,9 D)6,10

答案:D

7. 定义结构体时有下面几种说法,请指出正确的(多选):______

A、结构体中的每个部分,最好进行四字节对齐;

B、结构体的总长度最好是四字节对齐;

C、结构中成员的存放不用考虑字节对齐情况;

答案:A、B

example()

{

int i;

char acNew[20];

for(i = 0; i < 10; i++)

{

acNew[i] = '0';

}

printf("%d/n", strlen(acNew));

return;

}

的输出为( )

A 0 B 10 C 11 D不确定

答案:D

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

A. 正确 B. 错误

答案:B

10. 网络上传输的字节序默认是大字节的',如果主机是小字节序,在网络通信时则须进行字节序转换;如果主机是

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

A. 正确 B.错误

答案:A

  二、 填空题

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

2、 函数的实参传递到形参有两种方式: 和

3、在一个函数内部调用另一个函数的调用方式称为 。在一个函数内部直接或间接调用该函数成为函数 的调用方式

4、C语言变量按其作用域分为 和

5、凡在函数中未指定存储类别的局部变量,其默认的存储类别为

  三、 看程序写结果

1、#include

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(v)

{w=u%v;

u=v;

v=w;

}

Return u;

}

2、#include

int x1=30,x2=40;

main()

{int x3=10,x4=20;

sub(x3,x4);

sub(x2,x1);

printf(“%d,%d,%d,%dn”,x3,x4,x1,x2);

}

sub(int x,int y)

{x1=x;x=y;y=x1;}

3、#include

Main()

{int i=5;

Printf(“%dn”,sub(i));

}

sub(int n)

{int a;

If(n==1) return 1;

a=n+sub(n-1);

return (a);

}

4、#include

Void fun()

{static int m;

m+=2;

printf(“%d ”,m);

}

Main()

{int a;

For(a=1;a<=4;a++) fun();

Printf(“n”);

}

  四、 编程题

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

2、 用递归方法求n!

3、 有一个一维数组,内放10个学生成绩,写一个函数,求出平均分,最高分和最低分