题目一:
(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容器总结: