发布时间 : 星期一 文章C语言编程基础考试试题更新完毕开始阅读966bdd2eb4daa58da0114a4c
文档名称 文档密级
C语言编程基础考试
[考前说明]本题目中不考虑头文件引用问题(假定已经包含正确的头文件),C语言的标准函数都可用;如果不特别说明,
假定程序运行环境为:操作系统Windows 2000, VC6.0编译环境,缺省为四字节对齐,X86(80586)CPU处理器(32位小字节序处理器). 一、单选题
1、 给出以下定义:
char acX[ ]= \
char acY[ ]= {'a','b','c','d','e','f','g'};
则正确的叙述为( )
A) 数组acX和数组acY等价 B) 数组acX和数组acY的长度相同 C) 数组acX的长度大于数组acY的长度 D) 数组acX的长度小于数组Y的长度
2、 void example(char acHello[])
{
printf(\ return; }
void main()
{
char acHello[] = \ example(acHello); return;
}
的输出是( )
A 4 B 5 C 6 D不确定
3、 以下叙述中不正确的是( )
A) 在不同的函数中可以使用相同名字的变量 B) 函数中的形式参数是在栈中保存
C) 在一个函数内定义的变量只在本函数范围内有效
D) 在一个函数内的复合语句中定义的变量在本函数范围内有效(复合语句指函数中的成对括号构成的代码)
4、 设有如下定义:
unsigned long pulArray[] = {6, 7, 8, 9, 10}; unsigned long *pulPtr; 则下列程序段的输出结果为( ) pulPtr = pulArray;
1
文档名称 文档密级
*(pulPtr + 2) += 2;
printf (\
A)8,10 B)6,8 C)7,9 D)6,10
5、 有以下程序段
char acArr[]= \ char *pcPtr;
for(pcPtr = acArr; pcPtr < acArr + 5; pcPtr++) {
printf(\ }
return;
输出结果是( )
A) ABCD B) A C) E D) ABCDE B D BCDE C C CDE D B DE E A E
6、 void example( )
{
int i;
char acNew[20];
for(i = 0; i < 10; i++) {
acNew[i] = '0'; }
printf(\ return; }
的输出为( D )
A 0 B 10 C 11 D不确定
7、 switch(c)中的c的数据类型可以是char、long、float、unsigned、bool. ( )
A. 正确 B. 错误
8、 全局变量可以定义在被多个.C文件包含着的头文件中。( )
A. 正确 B. 错误
9、 struct stu
{
int num; char name[10];
2
文档名称 文档密级
int age; };
void fun(struct stu *p) {
printf(\ return; }
void main() {
struct stu students[3]={ {9801,\ {9802,\ {9803,\ fun(students + 2); return; }
输出结果是( )
A) Zhang B)Zhao C) Wang D) 18
10、 以下程序运行后,输出结果是( )
void main( )
{
char *szStr = \ szStr += 2;
printf(\ return; }
A cde B 字符c的ASCLL码值 C \这个常串中字符c所在的地址 D 出错
11、 在X86下,有下列程序
#include
union {
int k; char i[2]; }*s,a; s = &a;
s->i[0] = 0x39; s->i[1] = 0x38;
printf(\ }
3
文档名称 文档密级
输出结果是( )
A) 3839 B) 3938 C) 380039 D) 不可预知
12、 网络上传输的字节序默认是大字节的,如果主机是小字节序,在网络通信时则须进行字节序转换;如果主机是大字节序,为了程序的一致性及可移植性,最好也在程序中加上字节序转换的操作(空操作)。( ) A. 正确 B.错误
13、 void example()
{
int i;
char acNew[20] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
for(i = 0; i < 10; i++)
{
acNew[i] = '0';
}
printf(\ return; }
的输出为:( )
A 0 B 10 C 11 D不确定
14、 在函数内部定义的变量(静态变量、寄存器变量等特殊变量除外)的内存是在栈内存中,所以在定义函数内部的变量的时候,一定要保证栈不能够溢出。如果临时变量 占用空间较大,应该使用内存申请的方式,这样该变量指向的内存就是在堆内存中了。( ) A. 正确 B. 错误
15、 局部变量可以和全局变量重名,编译的时候不会出现错误,但一旦不小心,
就可能导致使用错误变量,所以在定时局部变量的时候,不要和全局变量重名。( )
A. 正确 B. 错误
16、 设有以下宏定义: #define N 3
#define Y(n) ((N+1)*n) /*这种定义在编程规范中是严格禁止的*/ 则执行语句:z = 2 * (N + Y(5 + 1));后,z的值为( ) A) 出错 B) 42 C) 48 D)54
17、 int *(*ptr)();
则以下叙述中正确的是( ) A) ptr是指向一维组数的指针变量
4