温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C重点基础自测第一部分(精华)

发布时间:2020-07-31 10:53:08 来源:网络 阅读:274 作者:zheng_feng 栏目:编程语言

*答案在末尾!

1、写出bool、float、指针变量与“零值”比较的if语句;

2、在linux32位操作系统下,计算sizeof的值;

char str[] = “heoll”;

char* p = str;

int n;

void fun(int arr[])

{}

void* ptr = malloc(168);

sizeof(str);sizeof(p);sizeof(n);sizeof(arr);sizeof(ptr);

3、给出下列的定义

a、一个有10个指针的数组,该指针的是指向一个整型的;

b、一个指向有10个整型数组的指针;

c、一个指向函数的指针,该函数有一个整数参数并返回整型;

d、一个有10个指针的数组,指针指向一个函数,该函数有一个整型参数并返回整型;

4、以下代码有什么问题?

int main()

    char a;

    char* str = &a;

    strcpy(str,“hello”);

    printf(str);

    return 0;

5、以下代码有什么问题?

str = “aaa”;

printf("%s\n",str);

str[0] = 'A';

printf("%s\n",str);

6、C/C++中的struct有什么不同?

7、以下代码有什么问题?

void getmetmemory(char *p)

{

    p = (char*)malloc(100);

    strcpy(p,"hello world");

}

int main()

{

    char* str = NULL;

    getmemory(str);

    printf("%s\n"str);

    free(str);

    return 0;

}

8、以下代码会产生什么结果,为什么?

char str[10];

strcpy(str."0123456789");

9、volatile关键字的作用;

/*************************************************************

答案

/*************************************************************

1、一般规范的:

bool:if(falg) if(!flag)

float:const float EPS = 0.000001;    if((x >= -EPS )&&(x <= EPS))

指针:if(p == NULL) if(p != NULL)

2、6、4、4、4、4;

3、int* a[10];    int(*a)[10];    int (*a)(int);  int (*a[10])(int);  

4、没有为str分配内存空间,将一个字符串拷贝到一个字符变量指针所指地址。可以出预期结果

但是越界进行读写导致程序崩溃。

5、“aaa”是字符串常量,str是指针,指向这个字符串常量,所以声明str的时候就有问题了。

又const char* str = “aaa”;是常量对str[0]的赋值操作是不合法的。

6、重要区别是C中struct不可以包含成员函数,而在C++中它就是一个类只是默认是public的罢了。

7、p传给getmemory函数的是p的一个副本,在函数体为p开辟了空间超了函数体p还给还给操作系统了,

p所指向的内存空间没有释放导致内存泄漏。

8、str越界写入数据,会导致段错误。

9、一个定义为volatile的变量表示该变量会经常被改变。多用于下面三个地方

(1)、中断服务程序中修改的供其它程序检测的变量需要加volatile;

(2)、多任务环境下各任务间共享的标志应该加volatile;
(3)、存储器映射的硬件寄存器通常也要加volatile说明,因为每次对它的读写都可能由不同意义;



向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI