教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 学前教育 >

c语言经典笔试题(非常全)(5)

来源:网络收集 时间:2026-07-11
导读: void main() { int i=60; int j=50; i=i+j; j=i-j; i=i-j; printf(\ printf(\} 方法二: i^=j; j^=i; i^=j; 方法三: // 用加减实现,而且不会溢出 a = a+b-(b=a) .进程间通信的方式有? 进程间通信的方式有 共享内

void main() {

int i=60; int j=50; i=i+j; j=i-j; i=i-j;

printf(\ printf(\} 方法二: i^=j; j^=i; i^=j; 方法三:

// 用加减实现,而且不会溢出 a = a+b-(b=a) .进程间通信的方式有?

进程间通信的方式有 共享内存,39 struct A {

char t:4; char k:4;

unsigned short i:8; unsigned long m; }

sizeof(A)=?(不考虑边界对齐)7

40给定结构struct A {

char t:4; char k:4;

unsigned short i:8; unsigned long m; };问sizeof(A) = ? 给定结构struct A {

char t:4; 4位

管道 ,Socket ,消息队列 ,等 char k:4; 4位

unsigned short i:8; 8位

unsigned long m; // 偏移2字节保证4字节对齐 }; // 共8字节

41下面的函数实现在一个固定的数上加上一个数,有什么错误,改正 int add_n(int n) {

static int i=100; i+=n; return i; } 答:

因为static使得i的值会保留上次的值。 去掉static就可了 42 union a { int a_int1; double a_double; int a_int2; };

typedef struct { a a1; char y; } b; class c {

double c_double; b b1; a a2; };

输出cout<

int j = i++; //j=1 i=2

if((i>j++) && (i++ == j)) i+=j;

答: i = 5

44 unsigned short array[]={1,2,3,4,5,6,7}; int i = 3;

*(array + i) = ? 答: 4

45 试编写函数判断计算机的字节存储顺序是开序(little endian)还是降序(bigendian)

答:

bool IsBigendian() {

unsigned short usData = 0x1122;

unsigned char *pucData = (unsigned char*)&usData; return (*pucData == 0x22); }

46简述Critical Section和Mutex的不同点

答:

对几种同步对象的总结 1.Critical Section A.速度快

B.不能用于不同进程

C.不能进行资源统计(每次只可以有一个线程对共享资源进行存取) 2.Mutex A.速度慢

B.可用于不同进程 C.不能进行资源统计

3.Semaphore A.速度慢

B.可用于不同进程

C.可进行资源统计(可以让一个或超过一个线程对共享资源进行存取) 4.Event A.速度慢

B.可用于不同进程 C.可进行资源统计

47 请指出下列程序中的错误并且修改 void GetMemory(char *p){ p=(char *)malloc(100); }

void Test(void){ char *str=NULL; GetMemory=(str);

strcpy(str,\ printf(str); }

A:错误--参数的值改变后,不会传回

GetMemory并不能传递动态内存,Test函数中的 str一直都是 NULL。 strcpy(str, \将使程序崩溃。 修改如下:

char *GetMemory(){

char *p=(char *)malloc(100); return p; }

void Test(void){ char *str=NULL; str=GetMemory(){

strcpy(str,\ printf(str); }

方法二:void GetMemory2(char **p)变为二级指针. void GetMemory2(char **p, int num) {

*p = (char *)malloc(sizeof(char) * num); }

48用C 写一个输入的整数,倒着输出整数的函数,要求用递归方法 ; 答:

void fun( int a ) {

printf( \ a /= 10;

if( a <=0 )return; fun( a ); }

49.头文件中的 ifndef/define/endif 干什么用?预处理 答:防止头文件被重复引用

50. #i nclude 和 #i nclude “filename.h” 有什么区别?

答:前者用来包含开发环境提供的库头文件,后者用来包含自己编写的头文件。 51.在C++ 程序中调用被 C 编译器编译后的函数,为什么要加 extern “C”声明? 答:函数和变量被C++编译后在符号库中的名字与C语言的不同,被extern \修饰的变 量和函数是按照C语言方式编译和连接的。由于编译后的名字不同,C++程序不能直接调 用C 函数。C++提供了一个C 连接交换指定符号extern“C”来解决这个问题。 52. 回答下面的问题(6分)

(1).Void GetMemory(char **p, int num){ *p = (char *)malloc(num); }

void Test(void){ char *str = NULL; GetMemory(&str, 100); strcpy(str, \printf(str); }

请问运行Test 函数会有什么样的结果? 答:输出“hello” (2). void Test(void){

char *str = (char *) malloc(100); strcpy(str, “hello”); free(str);

if(str != NULL){

strcpy(str, “world”); printf(str); } }

请问运行Test 函数会有什么样的结果? 答:输出“world”

(3). char *GetMemory(void){ char p[] = \return p; }

void Test(void){ char *str = NULL; str = GetMemory(); printf(str); }

请问运行Test 函数会有什么样的结果? 答:无效的指针,输出不确定 53. 编写strcat函数(6分)

…… 此处隐藏:875字,全部文档内容请下载后查看。喜欢就下载吧 ……
c语言经典笔试题(非常全)(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/592983.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)