c语言的填空题

三、填空题
? 若想通过以下输入语句给a赋于1,给b赋于2,则输入数据的形式应该是__(1)____
int a,b;
scanf(“a=%d,b=%d”,&a,&b);

? 设a、b、c为整型数, 且a=2、b=3、c=4, 则执行完以下语句:
a*=16+(b++)-(++c);
后,a的值是28。

? 下列程序的输出结果是_____(3)____。
#include <stdio.h>
main( )
{ char b[30],*chp;
strcpy(&b[0],"CH");
strcpy(&b[1],"DEF");
strcpy(&b[2],"ABC");
printf("%s \n",b);
}

? 设有以下结构体数组定义:
struct student
{ int num;
char name[15];
} stu[30];
以下语句实现输入30个学生的姓名;请根据功能将该语句补充完整:
for(i=0;i<30;i++)
scanf ( “____(4)____” ,___(5)___ );

? 以下函数的功能是,把两个整数指针所指的存储单元中的内容进行交换。请填空。
swap(int *x, int *y)
{ int t;
t=*y; *y= ____(6)____ ; *x= _____(7)____ ;
}

? 以下为自编的字符串复制函数,请根据函数的功能完成程序。
void strcopy(char * str1,char * str2)
{ while( *str2)
(_____(8)_____);
* str1=0;
}

? 以下为自编的字符串比较函数,请根据函数的功能完成程序。
int strcomp(char * str1,char * str2)
{for( ;_______(9)______;str1++,str2++);
return (_________(10)________);
}

第1个回答  2011-05-03
看着跟程序员面试题是的呢
第一题 : a=1,b=2 格式是scanf里确定的
第二题 : 28,b是运算完之后++,c是运算之前++
第三题 :: CDABC b[0]只能存一个字符,所以是C,同理b[1]是D,b[2],b[3],b[4]分别是ABC,所以输出CDABC
第四题 : scanf("%d,%s",&stu[i].num,stu[i].name);
第五题 : *y = *x ; *x = t;指针变换
第六题 : *str1++ = *str2++; 循环赋值,下边那句应该是‘\0’比较好
第七题 :第一个空 *str1 == *str2; 第二个空 *str1-*str2; 这个题for循环的意思是找到两个串中第一个不一样的字符,然后return他们比较的值

好久不用C了,可能有的有问题,思路应该都是对的吧。。。本回答被提问者采纳
第2个回答  2011-05-03
1 a=1,b=2
3 CDABC
4 %s 5 stu[i].name
6 *y=*x 7 *x=t
8 *str1++=*str2++;
9 *str1==*str2
10 *str1-*str2