1 / 11
文档名称:

java笔试题 1.docx

格式:docx   大小:18KB   页数:11
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

java笔试题 1.docx

上传人:非学无以广才 2021/4/22 文件大小:18 KB

下载得到文件列表

java笔试题 1.docx

相关文档

文档介绍

文档介绍:java笔试题

  C语言的模块化程序结构用函数来实现,马上复杂的C程序分为若干模块,每个模块全部编写成一个C函数,然后经过主函数调用函数及函数调用函数来实现一大型问题的C程序编写,下面就由X为大家介绍一下C语言指针笔试题的文章。
  C语言指针笔试题篇1
  1. char*constp;
  charconst*p
  constchar*p
  上述三个有什么区分?
  char*constp;//常量指针,p的值不能够修改
  charconst*p;//指向常量的指针,指向的常量值不能够改
  constchar*p;//和charconst*p
  2. charstr1=“abc”;
  charstr2=“abc”;
  constcharstr3=“abc”;
  constcharstr4=“abc”;
  constchar*str5=“abc”;
  constchar*str6=“abc”;
  char*str7=“abc”;
  char*str8=“abc”;
  cout<<(str1==str2)<<endl;
  cout<<(str3==str4)<<endl;
  cout<<(str5==str6)<<endl;
  cout<<(str7==str8)<<endl;
  打印结果是什么?
  解答:结果是:0011
  str1,str2,str3,str4是数组变量,它们有各自的内存空间;而str5,str6,str7,str8是指针,它们指向相同的常量区域
  ?
  voidUpperCase(charstr)//将str中的小写字母转换成大写字母
  {
  for(size_ti=0;i
  if(‘a’<=str[i]&&str[i]<=’z’)
  stri-=(‘a’-'A’);
  }
  charstr=“aBcDe”;
  cout<<“str字符长度为:”<<sizeof(str)/sizeof(str[0])<<endl;
  UpperCase(str);
  cout<<str<<endl;
  答:函数内的sizeof有问题。
  依据语法,sizeof如用于数组,只能测出静态数组的大小,无法检测动态分配的或外部数组大小。
  函数外的str是一个静态定义的数组,所以其大小为6。
  函数内的str实际只是一个指向字符串的指针,没有任何额外的和数组相关的信息,所以sizeof作用于上只将其当指针看,一个指针为4个字节,所以返回4。
  4. main
  {
  inta5={1,2,3,4,5};
  int*ptr=(int*)(&a+1);
  printf(“%d,%d”,*(a+1),*(ptr-1));
  }
  输出结果是什么?
  答案:输出:2,5
  *(a+1)就是a1,*(ptr-1)就是a4,实施结果是2,5
  &a+1不是首地址+1,系统会认为加一个a数组的偏移,是偏移了一个数组的大小(本例是5个int)
  int*ptr=(int*)(&a+1);
  则ptr实际是&(a5),也就是a+5
  原因以下:
  &a是数组指针,其类型为int(*)5;
  而指针加1要依据指针类型加上一定的值,不一样类型的指针+1以后增加的大小不一样。
  a是长度为5的int数组指针,因此要加5*sizeof(int)
  因此ptr实际是a5
  不过prt和(&a+1)类型是不一样的(这点很主要)
  因此prt-1只会减去sizeof(int*)
  a,&a的地址是一样的,但意思不一样
  a是数组首地址,也就是a0的地址,&a是对象(数组)首地址。
  a+1是数组下一元素的地址,即a1,&a+1是下一个对象的地址,即a5.
  C语言指针笔试题篇2
  1. 请问以下代码有什么问题:
  intmain
  {
  chara;
  char*str=&a;
  strcpy(str,”hello”);
  printf(str);
  return0;
  }
  答案:没有为str分配内存空间,将会发生异常。问题出在将一个字符串复制进一个字符变量指针所指地址。即使能够正确输出结果,但因为越界进行内在读写而造成程序瓦解。
  *s=”AAA”;
  printf(“%s”,s);
  s0=’B';
  printf(“%s”,s);
  有什么错?
  答案: