printf(\} 答案:
1). strlen(s)
2). s[sl-i-1] 或 s[ sl -i -1 ] 3). '\\0' 或 0 4). scanf
第37题 (30.0分) 题号:441
/*------------------------------------------------------- 【程序填空】
---------------------------------------------------------
功能:从低位开始取出长整型变量s中偶数位上的数,依次构成一 个新数放在t中。
-------------------------------------------------------*/
#include
long sl=10; s /= 10;
/***********SPACE***********/ *t = s 【?】 10; while(s>0) {
/***********SPACE***********/ s = 【?】;
/***********SPACE***********/ *t = s*sl【?】;
/***********SPACE***********/ sl = sl 【?】10; } } main() { long s, t; clrscr();
printf(\fun(s, &t);
printf(\} 答案: 1). % 2). s/100 3). + *t 4). *
第38题 (30.0分) 题号:458
/*------------------------------------------------------- 【程序填空】
---------------------------------------------------------
功能:用等分法在有序的循环数组中,找到最小元素的位置。
-------------------------------------------------------*/
int cyclic_min(int x[], int n) {
int left = 0; int right = n - 1; int mid;
/***********SPACE***********/ while (【?】)
{ mid = (left + right)/2; if (x[mid] < x[right])
/***********SPACE***********/ 【?】; else
/***********SPACE***********/ 【?】; }
return left; }
#include
int x[] = { 20, 23, 28, 35, 39, 40, 42, 8, 10, 15, 17, 19}; int n = sizeof(x)/sizeof(int); int loc, i;
printf(\ printf(\
printf(\ for (i = 0; i < n; i++) printf(\ loc = cyclic_min(x, n);
printf(\} 答案:
1). left < right 或 right>left 2). right = mid-1
3). left = mid + 1 或 left = 1+mid
第39题 (30.0分) 题号:469
/*------------------------------------------------------- 【程序填空】
---------------------------------------------------------
功能:用递归法将一个整数n转换成字符串,例如输入483,应输出 对应的字符串\。n的位数不确定,可以是任意位数的整 数。
-------------------------------------------------------*/
#include
void convert(int n) { int i;
/***********SPACE***********/
if((【?】)!=0) convert(i);
/***********SPACE***********/ putchar(n+【?】); } main() {
int number;
printf(\ scanf(\ printf(\
if(number<0) {
putchar('-');
/***********SPACE***********/ 【?】; }
convert(number); } 答案: 1). i=n/10 2). '0'
3). number=-number
第40题 (30.0分) 题号:484
/*------------------------------------------------------- 【程序填空】
---------------------------------------------------------
功能:识别输入的字符串,每个单词输出一行
-------------------------------------------------------*/
#include
/***********SPACE***********/
【?】; while((c = getchar()) != '\\n') {
if(c == ' ' || c == '\\t' || c == '\\n') {
/***********SPACE***********/
if(【?】) {
inspace = 1; putchar('\\n'); } } else {
inspace = 0;
/***********SPACE***********/
【?】; } } } 答案:
1). inspace = 0 2). inspace == 0 3). putchar(c)
第41题 (30.0分) 题号:470
/*------------------------------------------------------- 【程序填空】
--------------------------------------------------------- 功能:从两个数组中分别提取任意元素x[i],y[j],问|x[i]-y[j]| 的最小值是多少 ? #include
/***********SPACE***********/
#define min(x, y) (【?】) //宏定义,求最小值 int min_distance(int x[], int y[], int m, int n) {
int minimum = INT_MAX; int index_x = 0, index_y = 0; while (index_x < m && index_y < n) /***********SPACE***********/ if (【?】)
{ minimum = min(minimum, x[index_x]-y[index_y]); index_y++; } else {
minimum = min(minimum, y[index_y]-x[index_x]); /***********SPACE***********/
【?】; }
return minimum; }
#include
int x[] = { 1, 3, 7, 11, 18};