填空:
1,short int a[10]={123, 456, 789}; sizeof(a)=( ); short int *p=&a, 则sizeof(p)=( );
2,给点整形变量n(32bit),把n的bit5(bit0开始)置1,其他不变:( ) ;
3,int fun(int* x, int *y){……} 则:怎么用函数指针p调用fun?
void main()
{ int a=1, b=2;
( ) ;
p=fun; p(&a, &b);
}
4,定义一个宏,将内存的大小由MB转换为bit?
5,如图,p,q节点指向,插入q则:
viod add(node* head, int a)
{ …
node *p = head->next;
node *q = (node *)malloc(sizeof(node));
q->data = a;
( );
( );
}
6,由char a=253; int b = a; int c = a&0xff; 则:
b= ( ), c=( );
7,用define实现,将整数x,y连接形成整数并除以y,如:
F(12, 34, 56) = 1234/56, 则表示为?
选择:
1,找不正确选择()
A, char a[8]={‘a’,’b’,’c’,} B,char a[8]=; a=”hello”;
C,char a[]=”abc”; D,char a[8]={’a’,’b’,’c’,’ ’};
2,#define M(x, y, z) x*y+z, 则a=1, b=2, c=3结果输出
M(a+b, b+c, c+a)=()
A, 19 B,17 C,15 D,12
3,由char aa=500; int bb=aa;则 printf(“%d ”, bb+1)的结果
A, 编译报错 B,245 C,-11 D,-1
4,char a[] = {’i’, ’n’, ’n’, ’ ’, ’s’}; char a[] = {’i’, ’n’, ’n’, ’s’ ,’ ’};
int x1=sizeof(a), int x2=strlen(a), int x3=sizeof(b), int x4=strlen(b)
问:X1= X2= X3= X4=
A,5 3 5 4 B,5 5 5 5 C,5 5 6 5 D,3 3 5 5
5,函数递归,求f(2, 3)=
int f(int x, int y)
{
if(x==0) return y+2;
if(y==0) return f(x-1, 1);
return f(x-1, f(x, y-1));
}
A,4 B,16 C, 31 D,61
6,下列程序运行可能结果
#include <stdio.h>
#include <unistd.h>
int main (int argc, char **argv)
{
int cnt=2;
pid_t pid;
if((pid=fork())==0)
cnt++;
else
cnt--;
printf(" %d ", cnt);
return 0;
} /* ----- End of main() ----- */
A,3 B,31 C,1 D,13
简答:
1,用c变函数,实现一个字符高低位互换,比如0x3A-->0xA3?
2,字符逆序存储,如abcdefgh-->hgfedcba?
3,字符串s,t, 将t插入s,其中假设s有足够空间容纳t?
4,单链表L,头指针为phead,判断其是否有环?