欢迎来到天天文库
浏览记录
ID:11448134
大小:73.50 KB
页数:14页
时间:2018-07-12
《嵌入式软件工程师综合测试试题》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、综合测试试题第一部分:C语言一、请填写BOOL,float,指针变量与“零值”比较的if语句。提示:这里“零值”可以是0,0.0,FALSE或者“空指针”。例如int变量n与“零值”比较的if语句为:if(n==0)if(n!=0)以此类推。请写出BOOLflag与“零值”比较的if语句:请写出floatx与“零值”比较的if语句:请写出char*p与“零值”比较的if语句:二、以下为WindowsNT下的32位C++程序,请计算sizeof的值charstr[]=“Hello”;char*p=str;in
2、tn=10;请计算sizeof(str)=sizeof(p)=sizeof(n)=voidFunc(charstr[100]){请计算sizeof(str)=}void*p=malloc(100);请计算sizeof(p)=三、简答题1、头文件中的ifndef/define/endif干什么用?2、#include和#include“filename.h”有什么区别?3、const有什么用途?(请至少说明两种)4、在C++程序中调用被C编译器编译后的函数,为什么要加extern“C”
3、声明?5、请简述以下两个for循环的优缺点//第一个for(i=0;i4、){char*str=NULL;GetMemory(str);strcpy(str,"helloworld");printf(str);}请问运行Test函数会有什么样的结果?答:char*GetMemory(void){charp[]="helloworld";returnp;}voidTest(void){char*str=NULL;str=GetMemory();printf(str);}请问运行Test函数会有什么样的结果?答:VoidGetMemory2(char**p,intnum){*p=(c5、har*)malloc(num);}voidTest(void){char*str=NULL;GetMemory(&str,100);strcpy(str,"hello");printf(str);}请问运行Test函数会有什么样的结果?答:voidTest(void){char*str=(char*)malloc(100);strcpy(str,“hello”);free(str);if(str!=NULL){strcpy(str,“world”);printf(str);}}请问运行Test函数会有什么6、样的结果?答:五、编写strcpy函数已知strcpy函数的原型是char*strcpy(char*strDest,constchar*strSrc);其中strDest是目的字符串,strSrc是源字符串。(1)不调用C++/C的字符串库函数,请编写函数strcpychar*strcpy(char*strDest,constchar*strSrc){assert((strDest!=NULL)&&(strSrc!=NULL));char*address=strDest;while((*strDest++=7、*strSrc++)!=' ');returnaddress;}(2)strcpy能把strSrc的内容复制到strDest,为什么还要char*类型的返回值?为了实现链式表达式intlength=strlen(strcpy(strDest,"helloworld!"));六:编程题1、写出程序把一个链表中的接点顺序倒排listNode*reverse_list(listNode*head)//逆序{ListNode*new_head=head;if(head==NULL8、9、head->next==NUL10、L)returnhead;new_head=reverse_list(head->next);head->next->next=head;head->next=NULL;//防止链表成为一个环,这是最关键的。returnnew_head;}2、写出程序删除链表中的所有接点voiddel_all(node*head){node*p;while(head!=NULL){p=head->next;free(head);
4、){char*str=NULL;GetMemory(str);strcpy(str,"helloworld");printf(str);}请问运行Test函数会有什么样的结果?答:char*GetMemory(void){charp[]="helloworld";returnp;}voidTest(void){char*str=NULL;str=GetMemory();printf(str);}请问运行Test函数会有什么样的结果?答:VoidGetMemory2(char**p,intnum){*p=(c
5、har*)malloc(num);}voidTest(void){char*str=NULL;GetMemory(&str,100);strcpy(str,"hello");printf(str);}请问运行Test函数会有什么样的结果?答:voidTest(void){char*str=(char*)malloc(100);strcpy(str,“hello”);free(str);if(str!=NULL){strcpy(str,“world”);printf(str);}}请问运行Test函数会有什么
6、样的结果?答:五、编写strcpy函数已知strcpy函数的原型是char*strcpy(char*strDest,constchar*strSrc);其中strDest是目的字符串,strSrc是源字符串。(1)不调用C++/C的字符串库函数,请编写函数strcpychar*strcpy(char*strDest,constchar*strSrc){assert((strDest!=NULL)&&(strSrc!=NULL));char*address=strDest;while((*strDest++=
7、*strSrc++)!=' ');returnaddress;}(2)strcpy能把strSrc的内容复制到strDest,为什么还要char*类型的返回值?为了实现链式表达式intlength=strlen(strcpy(strDest,"helloworld!"));六:编程题1、写出程序把一个链表中的接点顺序倒排listNode*reverse_list(listNode*head)//逆序{ListNode*new_head=head;if(head==NULL
8、
9、head->next==NUL
10、L)returnhead;new_head=reverse_list(head->next);head->next->next=head;head->next=NULL;//防止链表成为一个环,这是最关键的。returnnew_head;}2、写出程序删除链表中的所有接点voiddel_all(node*head){node*p;while(head!=NULL){p=head->next;free(head);
此文档下载收益归作者所有