公司内部C语言笔试题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《C语言基础小测试题》公司内部
笔试题
——看看你的基础如何
第一题:单项选择
1、对下述代码说法正确的是:( c )
#include <stdio.h>
int main(void)
{
char aChar;
int aInt;
aInt = aChar = -120;
printf("%d\n", aInt);
return 0;
}
A、一定输出-120 。

B、一定不能输出-120 。

C、可能输出-120。

D、输出%d
2、对下述代码说法正确的是:( d )
void main(void)
{
char a[] = {0, 1, 2, 3};
int *p = (int *)a;
printf(“%d ”, *p);
}
提示:字符0的ASCII码是48.
A、输出0
B、输出48
C、如果CUP是小端的话输出一个负数。

D、以上说法都不正确。

3、对下述代码说法正确的是:( a )
int main(void)
{
unsigned int a = 4;
int b = -10;
(a + b) > 0 ? printf("> 0") : printf("< 0");
return 0;}
A、输出> 0
B、输出< 0
C、没有输出
D、语法错误。

4、对下述代码说法正确的是:( d )
void main()
{
char a[3];
char b[ ] = “China”;
a = b;
printf(“%s”,a);
}
A.输出:China B.输出:Ch C.输出:Chi D.编译出

5、运行下述C程序会显示( a )
void swap(int *a, int *b)
{
int *temp = NULL;
temp = a;
a = b;
b = temp;
}
void main()
{
int a = 1;
int b = 2;
swap (&a, &b);
printf(“%d,%d”, a, b);
}
A、输出1,2.
B、输出2,1
C、swap函数编译出错。

D、函数调用出错。

6、对下述C代码说法正确的是()
struct student
{
char *name;
float mark;
};
void main()
{
struct student stud;
= (char *)malloc(10);//假设申请成功
memset(&stud, 0, sizeof(struct student));
strcpy(, “cc”);
printf(“%s\n”, );
}
A、输出cc 。

B、没有输出。

C、输出0 。

D、strcpy(, “cc”);出现段错误。

7、对下述C代码说法正确的是()
void my_free(void *p)
{
free(p);
p = NULL;
}
void main()
{
int *p = (int *)malloc(sizeof(p)); //假设申请成功
*p = 10;
my_free(p);
if (p != NULL)
{
*p = 20;
}
}
A、语法错误。

B、发生内存遗漏。

C、发生内存重写。

D、既发生内存遗漏又发生内存重
写。

8、对下述C代码说法正确的是()
void main()
{
const int a = 20;
int *p = &a;
*p = 30;
printf(“%d\n”, *p);
}
A、int *p = &a;报警告或错误。

B、*p = 30;
报警告或错误。

C、const int a = 20; 报警告或错误。

D、没有警告或错误。

9、题目:有关下述代码说法正确的是()。

File1.c
static int a = 5;
File2.c
extern int a;
int fun()
{
a++;
return a;
}
void main(void)
{
printf(“%d”, fun());
print f(“%d”, fun());
}
A. 输出6 7 C. 输出6 6
B、编译文件时不报错,连接时报错D、编译File2.c时出错
10、题目:有关下述代码说法正确的是()
int main()
{
int *intPointer = NULL;
double *doublePointer = NULL;
intPointer = (int *)malloc(sizeof(int));
if (intPointer == NULL)
{
return 0;
}
doublePointer = (double *)malloc(sizeof(double));
if (doublePointer == NULL)
{
return 0;
}
*intPointer = 5;
printf("内存地址%p的内容是%d\n", intPointer,
*intPointer);
*doublePointer = 12.5;
printf("内存地址%p的内容是%d\n", doublePointer ,
*doublePointer);
free(intPointer);
free(doublePointer);
return 0;
}
A、上述代码可能会发生内存遗漏。

B、上述代码有语法错
误。

C、上述代码出现段错误。

D、上述代码可能会发生
内存重写。

11、题目: 有关下述代码说法正确的是
()
Head.h
int a = 10;
File1.c
#include <stdio.h>
#include “Head.h”
void OutPut(void)
{
printf(“%d\n”, a);
}
File2.c
#include “Head.h”
void OutPut(void);
void main(void)
{
a = a + 20;
OutPut();
}
A. 编译File1.c出错.因为找不到变量a.
B. 编译File2.c出错.因为找不到函数void OutPut(void);
C. 连接时出错. 因为找不到函数void OutPut(void);
D. 连接时出错.因为重复定义了变量a.
E. 语法正确,输出30.
第二题:填空题
1、填写下列代码运行的结果
#include <stdio.h>
int a = 5 ;
void change(int **p)
{
*p = &a ;
**p = 10;
}
void main(void)
{
int b = 20;
int *p = &b;
change(&p);
printf("%d,%d, %d\n", a, b, *p);
}
输出
2、填写下列代码运行的结果。

void main(void)
{
int a[2][3] = {
{1, 2, 3},
{ 4, 5,6}
};
int *p = (int *)(a + 1);
p--;
printf(“%d\n”, *p);
}
输出
3、填写下列代码运行的结果。

void main(void)
{
int a[2][3] = {
{1, 2, 3},
{ 4, 5,6}
};
int *p = (int *)(a[0] + 1);
p--;
printf(“%d\n”, *p);
}
输出
4、填写下列代码运行的结果。

void main(void)
{
int a[2][3] = {
{1, 2, 3},
{ 4, 5,6}
};
int *p = (int *)(&a + 1);
p--;
printf(“%d\n”, *p);
}
输出
5、填写下列代码运行的结果。

void main(void)
{
int a[2][3] = {
{1, 2, 3},
{ 4, 5,6}
};
printf(“%d, %d”, sizeof(a), sizoe(a[1])); }
输出(32位机)
6、填写下列代码运行的结果。

int main()
{
char a[2][3] ={
{…a‟, …b‟, …c‟},
{…d‟, …e‟, …\0‟}
};
printf(“%s ”, a[0]);
return 0; }
输出
7、填写下列代码的输出结果。

void fun(char a[])
{
printf(“%d, ”, strlen(a));
printf(“%d, ”, sizeof(a));
printf(“%d\n”, sizeof(*a));
}
void main(void)
{
char a[] = “12345”;
fun(a);
}
输出(32位机)
8、填写下列代码的输出结果。

struct test
{
int num;
char *name;
};
void main(void)
{
struct test t1;
struct test t2;
t1.num = 10;
= (char *) malloc(20);//假设分配成功
strcpy(, ,“BB“);
t2 = t1;
t2.num = 20;
strcpy(, ,“CC“);
printf(“%d, %s, %d, %s“, t1.num, , t2.num,
);
}
输出
第三题:编程题(注意代码质量、健壮性和效率)
1、编写一个函数,判断CPU的大小端(自己设计函
数的返回值和形式参数)。

2、写一个函数找出一个整数数组中,第二大的数。

自己设计函数的形式参数和返回值。

附答案:
选择题:
1-5 CDADA 6-10 DCABA 11 D
填空题
第1题:10 20 10 第2题:3 第3题:1 第4
题:6 第5题:24,12
第6题:abcde 第7题:5,4,1 第8题:10,
CC, 20, CC。

相关文档
最新文档