下面各题请先不要在PC上运行,自己尝试着给出答案,做完之后再把每道题在PC上运行一次,观察结果和自己的答案有什么差别,并总结原因。
下面程序输出的结果是什么?
int i = 1;
void main()
{
int i = i;
printf(“%d\n”,i);
}
以下代码输出结果是多少,该代码的作用是什么?
int fun(int x)
{
int count = 0;
while(x)
{
count++;
x = x &(x-1);
}
return(count);
}
void main()
{
printf("%d\n",fun(15));
}
以下代码输出的结果是多少?
void main()
{
int arr[]={6,7,8,9,10};
int * p = arr
*(p++) += 123;
printf("%d, %d\n",*p,*(++p));
}
以下代码输出结果是什么,为什么会有这样的输出?
void main()
{
int i = 0;
char a[] = "aaaa";
char b[] = "bbbb";
char c[5] = {'1','2',3,4,32};
char d[5] = {'a','b','c','d','e'};
char e[5] = {'f','g','h','i'};
printf("%s\n",a);//
printf("%s\n",b);//
printf("%s\n",c);//
printf("%s\n",d);//
printf("%s\n",e);//
while(i < 25)
{
printf("%c",e[i++]);
}
printf("\n");
}
以下程序的运行结果是什么?
void main()
{
unsigned int a = 10;
int b = -20;
char c;
(a + b > 0) ? (c = 1) : (c = 0);
printf("%d\n",c); //0
printf("%d\n",a+b);// -10
printf("%u\n",a+b);// 4294967286
}
用#define声明一个常数,用以表明一年有多少秒(每年按365天计算)?
下面程序输出是多少?
void main()
{
char* ss1="0123456789";
char ss2[]="0123456789";
char ss3[100]="0123456789";
int ss4[100];
char q1[]="abc";
char q2[]="a\n";
char* q3="a\n";
char* str1=(char*)malloc(100);
void *str2=(void*)malloc(100);
printf("%d\n",sizeof(ss1));4
printf("%d\n",sizeof(ss2));11
printf("%d\n",sizeof(ss3));100
printf("%d\n",sizeof(ss4));400
printf("%d\n",sizeof(q1));4
printf("%d\n",sizeof(q2));3
printf("%d\n",sizeof(q3));4
printf("%d\n",sizeof(str1));4
printf("%d\n",sizeof(str2));4
}
以下代码输出结果是多少?
char var[10];
int test (char var[])
{
return sizeof(var);
}
void main()
{
int n;
n = test(var[10]);
printf(“%d\n”,n);
}
4
9.下面的数据声明都代表什么?
float (**def)[10];
double* (*gh)[10];
double (*f[10])();
int* ((*b)[10]);
long (*fun)(int);
int (*(*F)(int, int))(int);
写一条语句实现将地址为0x6688的内存单元置为0x6677。
编写程序用最优算法实现函数strlen(),strcpy(),strcat(),strcmp()的功能。
编写程序实现将输入的字符串倒置输出的功能,如输入“abcd”输出则为“dcba”。
编写两个程序(不使用itoa()和atoi()函数)实现将输入的整数转化为字符串输出,和将输入的字符串转化为整数输出。
请编写一个函数,删除一个字符串的一部分,函数的原型如下:int del_substr(char str[],char const substr[] )函数首先应该判断substr是否出现在str中,如果它并未出现,函数就返回0;如果出现,函数应该把str 中位于该子串后面的所有字符复制到该子串的位置,从而删除这个子串,然后函数返回1。如果substr多次出现在str中,函数只删除第1次出现的子串,函数的第二个参数绝不被修改。