CC++工程师面试题-答案.doc_第1页
CC++工程师面试题-答案.doc_第2页
CC++工程师面试题-答案.doc_第3页
CC++工程师面试题-答案.doc_第4页
CC++工程师面试题-答案.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

考试时间:1小时 考题(C/C+软件工程师)姓名: 学校:专业:学历:毕业时间:手机电话:邮件地址:一、选择题。1、以下选项中不属于C语言的基本数据类型是( B ) A)char B)boolean C)double D)float2、在C语言中,以下选项中不属于转义字符的是( D ) A)a B)b C)? D) |3、在C语言中,以下赋值不正确的是( B ) A)char i = 0xAF;B)char squote = s; C)char pattern = c, a, t,t,0,0; D)enum months JAN = 1, FEB, MAR, APR, MAY, JUN,DEC;4、如果N = 5 那么语句:x = n+; x = +n ;x分别被赋值为:( C ) A)5,5 B)6, 5 C)5, 6 D) 6,65、在第四题中 N的值变为:( D ) A)5,5 B)6, 5 C)5, 6 D) 6,66、以下程序的输出结果是( B ) main() int n = 20; n = n & 0177; printf(“%d”,n); A)91 B)92 C)93 D)947、以下程序的输出结果是( A ) void Func (char str100);int main()char str = hello; char *p = str; int n = 10;Func(str);void *p = malloc( 100 );printf(%d , sizeof(p);printf(%d , sizeof(n);void Func ( char str100) printf(%d, sizeof(str); A)4 4 4 B)5 4 4 C)5 100 4 D)6 100 48、以下定义有严重缺陷的是( B ) A)#define forever for(;) B)#define square(x) x*x C)#define dprintf(expr) printf(#expr = %gn, expr) D)#define max(A, B) (A) (B) ? (A) :(B) 9、赋值语句:char amsg = now is the time ; ( C )char *pmsg = now is the time ; 下面的操作错误的是: A)asmg8 = *pmsg + 8; B)asmg8 = *(pmsg + 8); C) *pmsg = asmg8; D) pmsg = asmg;10、字符串数组char aname = Illegal month, Jan, Feb, Mar; aname需要的存储空间为( A )个字节 A)56 B)52 C)60 D)2211、若已定义:char amsg100,char *p = amsg;并在以后的语句中未改变p的值,不能表示amsg 100地址的表达式是( C ) A)&(*(p + 100) B)p + 100 C)&(*p + 100) D)&asmg10012、以下程序的输出结果是( B ) A)hello B)hello B) hello D) main() char amsg=hello; printf(“%-10s”,amsg);二、简答题1、简述一下 #include filename 与 #include 的相同与不同。#include filename 与 #include 都是引用 filename文件filename是到搜索源程序所在的目录查找filename文件如果文件没有找到,就到编译器默认的目录去查找。直接到编译器默认的目录去查找2、简述一下字符串数字 char as 与char *ap 的相同与不同 。char as 与char *ap 都能存储一个字符串,as 和ap 都能表示字符串的首地址as在使用过程中不能改变它的值, ap可以改变它的值as在变量声明是已经为字符串生成了存储空间,ap在声明是没有存储空间,比较手工指定存储空间。3、详细说明为什么swap函数不能将a和b的值互换,并写出能互换的函数。 #include void swap (int a, int b); main() int a, b;a = 5; b = 8;change(a,b); void swap (int a, int b) int c; c = a; a = b; b = c; Answer:由于C函数的调用是通过传递值调用,swap函数在调用的时候,会生成变量a和b的一个复制值,函数交换的是复制值之间的交换,对main函数中的变量没有影响,所以不能改变a和b的值正确的函数声明和调用如下:#include void swap (int *a, int *b); main() int a, b;a = 5; b = 8;swap(&a,&b); void swap (int *a, int *b) int c; c = *a; *a = *b; *b = *c; 三 编程题1、不使用库函数编写strcmp函数, 函数原型 int strcmp(char *s, char *t)return 0 if s 0 is s t字符串版本:int strcmp(char *s, char *t) int i; for(i = 0; si = ti; i+) if(si = 0) return 0; return si - ti;指针版本:int strcmp(char *s, char *t) int i; for( ; *s = *t; s+, t+) if(*s = 0) return 0; return *s- *t;2、当前目录下有一个文件名为test.txt ,文件中包含一个字符串(字符串长度小于2048),写一个程序将字符串翻转,并重新写回文件,替换原来的字符串。#include#define MAXLENGTH 2048void reverse(char s);int main(int argc, char *argv)char szLineBufMAXLENGTH;FILE *fp; if(fp = fopen(test.txt, r) = NULL)printf(cant open file test.txtn);return -1;memset(szLineBuf, 0, sizeof(szLineBuf);fgets(szLineBuf, MAXLENGTH, fp);fclose(fp);reverse(szLineBuf);if(fp = fopen(test.txt, w) = NULL)printf(cant open file test.txtn);return -1;f

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论