(11)若要使指针p指向一个double类型的动态存储单元,请填空。
p= 【11】 malloc(sizeof(double));
答案:【11】(double*)
评析:函数malloc返回的是void*,所以若要使指针指向一个double类型,则必须进行类型转换,类型转换格式为:(数据类型*)。
(12)下面程序的功能:输出100以内能被3整除且个位数为6的所有整数,请补充完整。
main().
{ int ij;
for(i=O; 【12】 ;i++)
{ j=I*10+6;
if( 【13】 )continue;
printf("%d",j);
}
}
答案:【12】i<lO
【13】j%3!=0
评析:本题要求输出100以内能被3整除且个位数为6的所有整数,程序中j=i*10+6;语句是求个位数为6的整数,由此可得出程序的循环次数为i<lO。然后通过if语句判断整数是否能被3整除,若不能则继续下一次循环,若能则输出该整数,所以逻辑表达式为i%3 1=00
(13)函数mycmp(char*s,char。t)的功能是比较字符串s和t的大小,当s等于t时返回0,
当s>t返回正值,当s<t时返回负值。请填空。
mycmp(char*s,char*t)
{ while(*s==*t)
{ if(*s==’\0’)return 0;
++s;++t;
}
return( 【14】 );
}
答案:【14】*s-*t或-*t+*s
评析:函数的两个形参是两个字符指针变量,字符串的首地址是指针变量的值,*s和*t表示字符串数组s和t的第一个字符,在while循环中,是通过s和t值的不断变化来改变指针所指向的字符,要改变s和t所指不同字符的ASCII码的差值,必须使用"*s-*t"得出。
[Page: ]
(14)以下程序运行后的输出结果是 【15】 。