#include
main() {
char a[10] = {'1', '2', '3', '4', '5', '6', '7', '8', '9', 0}, *p;
int i;
i = 8;
p = a + i;
printf("%s\n", p - 3);
}
A. 6
B. 6789
C. ‘6’
D. 789
%s遇到\0才会停止打印
选B.
A. int ta[2][]={{0,1,2},{3,4,5}};
B. int ta[][3]={{0,1,2},{3,4,5}};
C. int ta[2][4]={{0,1,2},{3,4},{5}};
D. int ta[][3]={{0,2},{},{3,4,5}};
二维数组声明时,行可以省略,列不能省略
选B.
A. n=0;while(ch=getchar()!=‘\n’)n++;
B. n=0;while(getchar()!=‘\n’)n++;
C. for(n=0;getchar()!=‘\n’;n++);
D. n=0;for(ch=getchar();ch!=‘\n’;n++);
D选项for循环初始化部分只会执行一次
也就是说只会获取一次字符
所以不能统计一行中输入字符个数
选D.
A. 4
B. 48
C. 192
D. 12
方括号的优先级高,是一个三行四列的数组
每个元素是一个指针
选B.
#include
int main(){
long long a = 1, b = 2, c = 3;
printf("%d %d %d\n", a, b, c);
return 0;
}
A. 1,2,3
B. 1,0,2
C. 1,3,2
D. 3,2,1
大端低位存高地址
小端低位存低地址
此题是32位小端
选B.
#include
#include
using namespace std;
int main(){
int m=0123, n=123;
printf("%o %o\n", m, n);
return 0;
}
A. 0123 0173
B. 0123 173
C. 123 173
D. 173 173
二进制以b结尾,例如:1011b
八进制以0开头,例如:0123
0-9都代表十进制,没有特殊格式
十六进制0x开头或h结尾,例如:0x6C,6Ch
%d:十进制方式输出
%o:八进制方式输出
%x:十六进制方式输出
选C.
A. Oxf8b821c4
B. Oxf8b821a6
C. Oxf8b82198
D. Oxf8b821c0
选A.
#include
using namespace std;
void func(char **m){
++m;
cout<<*m<<endl;
}
int main(){
static char *a[]={"morning", "afternoon", "evening"};
char **p;
p=a;
func(p);
return 0;
}
A. afternoon
B. 字符o的起始地址
C. 字符o
D. 字符a的起始地址
首元素地址++,打印第二个元素
而不是第一个元素的第二个字符
选B.
int func(int x){
int count=0;
while (x)
{
count++;
x=x&(x-1);//与运算
}
return count;
}
A. 8
B. 9
C. 10
D. 12
x每次按位与(x-1),x的二进制就少一个1
功能:返回x的二进制有多少个1
选A.
#include
int cnt = 0;
int fib(int n) {
cnt++;
if (n == 0)
return 1;
else if (n == 1)
return 2;
else
return fib(n - 1) + fib(n - 2);
}
void main() {
fib(8);
printf("%d", cnt);
}
cnt实际在统计斐波那契递归总的次数
选B.