c++面试题(五)

题目一: 
(1)typedef已存在的类型使用一个新的名字。
(2)typedef改变原类型名称后,可以使用原类型名。
(3)typedef说明新类型名时。格式为: typedef  原类型  新类型

题目二:
有以下程序:
#include <stdio.h>
main()
{
    char a[5][10] = {"one", "two", "three", "four", "five"};
    int i,j;
    char t;
    for(i = 0; i < 2; i++)
        for(j = i + 1; j < 5; j++)
           if(a[i][0] > a[j][0]) 
           {
               t = a[i][0];
               a[i][0] = a[j][0];
               a[j][0] = t;
           }
    puts(a[i]);
}
求输出结果?

答案 fwo
解析: 
包括两次比较大小。
第一次:第一个单词的首字母,和剩余的四个单词的首字母每个比较,第一个单词的首字母得到五个单词首字母排列的最小字母;
第二次:第二个单词的首字母,和剩余的三个单词的首字母进行比较,得到四个单词首字母最小字母;

题目三:
str[] = "ABCD"; *p = str; *(p + 4) = ?
解析: str[0] = 'A'; str[1] = 'B'; str[2] = 'C'; str[3] = 'D'; str[4] = '\0'; 
*(p + 4) = str[4] = '\0';

题目四:
以下代码执行后,val 的值是多少?

unsigned long val = 0;
char a = 0x48;
char b = 0x52;
val = b << 8 | a;
A 20992 , B 21064 , C 72 , D 0
答案: B
解析: b << 8 = 0x5200;
val = 0x5200 | 0x48 = 0x5248 = 21064

题目五:
fwrite , putc, pwrite, putchar, getline, scanf中区别?
pwrite 是系统调用,其他的都是库函数,执行后,文件偏移,指针不变。另外,常见文件系统的系统函数。
fcntl :文件控制  create : 创建文件   close :关闭文件描述
open :打开文件 read : 读文件 write : 写文件
readv :从文件读入数据到缓冲数组中
writev : 将缓冲数组里的数据写入文件
pread : 对文件随机读
pwrite :对文件随机写

题目六: unsigned int a = 0x1234; unsigned char b =*(unsigned char *) & a;
32位大端模式处理器 上变量b 等于?  答案: 0x00
解析:unsigned int a = 0x1234;其中int 是4个字节,大端存储,补齐16进制表示为:
0x00001234,
unsigned char b = *(unsigned char *) & a;由于大端存储,所以上述Int a变量的最低地址存储是十六进制表示中最左边的1个字节0x00;

题目七:
C++11 STL容器总结:
 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值