C语言笔试题题目
一、 简答题
1. 程序的局部变量存在于()中,全局变量存在于()中,动态申请数据存在于()中。
2. 设有以下说明和定义:
typedef union {long i; int k[5]; char c;} DATE;
struct data { int cat; DATE cow; double dog;} too;
DATE max;
则语句 printf("%d",sizeof(struct date)+sizeof(max));的执行结果是:_______
3. 32位系统下,请问如下语句的值
unsigned char *p1;
unsigned long *p2;
p1=(unsigned char *)0x801000;
p2=(unsigned long *)0x810000;
请问p1+5=
p2+5=
4. int i=10, j=10, k=3; k*=i+j; k最后的值是?
5. #define DOUBLE(x) x+x ,i = 5*DOUBLE(5); i 是多少?
6. 下面程序的输出是_____,为什么?
char *ptr;
if ((ptr = (char *)malloc(0)) == NULL)
{
puts("Got a null pointer");
}
else
{
puts("Got a valid pointer");集合的使用java
}
7. 以下程序运行后的输出结果是______ 。
main()
{
char m;
m='B'+32; printf("%c\n",m);
}
8. 已有定义如下:
struct node
{
int data;
struct node *next;
} *p;二维数组的表达方式
以下语句调用malloc函数,使指针p指向一个具有struct node类型的动态存储空间。请填空p = (struct node *)malloc(________);
9. 在绝对地址0xXXXXXXXX上写入字符’a’的语句是___________。
10. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)
11. 写一个"标准"宏MIN ,这个宏输入两个参数并返回较小的一个。
12. 嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢?
13. 用变量a给出下面的定义
a) 一个整型数(An integer)
b) 一个指向整型数的指针( A pointer to an integer)
c) 一个指向指针的的指针,它指向的指针是指向一个整型数( A pointer to a pointer to an intege)
d) 一个有10个整型数的数组( An array of 10 integers)
e) 一个有10个指针的数组,该指针是指向一个整型数的。(An array of 10 pointers to integers)
f) 一个指向有10个整型数数组的指针( A pointer to an array of 10 integers)
g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a function that takes an integer as an argument and returns an integer)
h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数( An array of ten pointers to functions that take an integer argument and return an integer )
14. 关键字static的作用是什么?
15. 关键字const的含义。
16. 关键字volatile有什么含意?并给出三个不同的例子。
17. 一个参数既可以是const还可以是volatile吗?解释为什么。
18. 一个指针可以是volatile 吗?解释为什么。
19. 下面的函数有什么错误:
int square(volatile int *ptr)
{
return *ptr * *ptr;
}
20. 在某工程中,要求设置一绝对地址为0x67a9的整型变量的值为0xaa66。编译器是一个纯粹的ANSI编译器。写代码去完成这一任务。
plotly python21. 局部变量能否和全局变量重名?
22. 如何引用一个已经定义过的全局变量?
23. 全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?
24. 语句for( ;1 ;)有什么问题?它是什么意思?
25. do……while和while……do有什么区别?
26. 下列哪种方法更好,为什么?
define dPS struct s *
typedef struct s * tPS;
27. 下面的结构是合法的吗,如果是它做些什么?
int a = 5, b = 7, c;
c = a+++b;
28. 队列和栈有什么区别?
29. 全局变量和局部变量是否有区别?如果有,是什么区别?
30. 堆栈溢出一般是由什么原因导致的?
31. 冒泡排序算法的时间复杂度是什么?
32. 分别写出BOOL,int,float,指针类型的变量a 与“零”的比较语句。
33. 不能做switch()的参数类型是:
34. 某32位系统下,请计算sizeof 的值.
char str[] = “www.ibegroup/”
char *p = str ;
int n = 10;
请计算
sizeof (str ) = ? (1)
sizeof ( p ) = ? (2)
sizeof ( n ) = ? (3)
void Foo ( char str[100]){
sizeof( str ) = ? (4)
冒泡排序代码c语言}
void *p = malloc( 100 );
sizeof ( p ) = ? (5)
35. 请说出const与#define 相比,有何优点?
36. 回答下面的问题.
a) 头文件中的 ifndef/define/endif 干什么用?预处理
b) #include <filename.h>和 #i nclude “filename.h” 有什么区别?
37. 使用malloc()函数时,为什么要将其返回值强制转换成被赋值指针变量的数据类型?
38. 列举一个软件中时间换空间或者空间换时间的例子。
39. 以下C语言语句有什么区别
char * const p;
char const * p;
const char *p;
40. 下面x, y, *p的值是多少,有什么问题?
int x, y, z = 2;
int *p=&z;
x=sizeof*p;
y=x/*p;
41. 下面的语句是什么意思?如何声明或定义才使它们更易懂?(10分)
int (*foo())();
int (*foo())[];
int (*foo[])();
(*(void(*)())0)();
void (*signal(int,void(*)(int)))(int);
42. 如何定义Bool变量的TRUE和FALSE的值。
43. 运行char a[] = ”abc”后,内存会开辟几块内存,这此内存共占多少个字节?
44. 运行char *p = ”abc”后,内存会开辟几块内存,这此内存共占多少个字节?
45. 说出 int *(*p)[3]; p是什么变量?如果p是指针变量,那么p+1的偏移量是多少?
46. 一个32位的机器,该机器的指针是多少位?
47. 已知一个数组table,用一个宏定义,求出数据的元素个数
二、 程序分析题
1. 下面的代码有什么问题?
char *_strdup( const char *strSource )
{
static char str[MAX_STR_LEN];
strcpy(str, strSource);
return str;
}
2. 下面的代码输出是什么,为什么?
void foo(void)
{
unsigned int a = 6;
int b = -20;
(a+b > 6) ? puts("> 6") : puts("<= 6");
}
3. 请写出下列代码的输出内容
#include
main()
{
int a,b,c,d;
a=10;
b=a++;
c=++a;
d=10*a++;
printf("b,c,d:%d,%d,%d",b,c,d);
return 0;
}html语言描述正确的是
4. Test函数的运行结果如何?
void GetMemory(char *p)
{
p = (char *)malloc(100);
}
void Test(void)
{
char *str = NULL;
GetMemory(str);
strcpy(str, "hello world");
printf(str);
}
5. Test函数的运行结果如何?
char *GetMemory(void)
{
char p[] = "hello world";
return p;
}
void Test(void)
{
char *str = NULL;
str = GetMemory();
linux查shell脚本printf(str);
}
6. Test函数的运行结果如何?
Void GetMemory2(char **p, int num)
{
*p = (char *)malloc(num);
}
void Test(void)
{
char *str = NULL;
GetMemory(&str, 100);
strcpy(str, "hello");
printf(str);
}
7. Test函数的运行结果如何?
void Test(void)
{
char *str = (char *) malloc(100);
strcpy(str, “hello”);
free(str);
if(str != NULL)
{
strcpy(str, “world”);
printf(str);
}
}
8. 写出下列代码的输出内容
#include
int inc(int a)
{
return(++a);
}
int multi(int*a,int*b,int*c)
{
return(*c=*a**b);
}
typedef int(FUNC1)(int in);
typedef int(FUNC2) (int*,int*,int*);
void show(FUNC2 fun,int arg1, int*arg2)
{
INCp=&inc;
int temp =p(arg1);
fun(&temp,&arg1, arg2);
printf("%dn",*arg2);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论