高位,低位仍在低位。 #include
void fun (long s, long *t) { int d; long sl=1;
/***********SPACE***********/ 【?】 = 0; while ( s > 0) {
/***********SPACE***********/ d = 【?】; if(d%2) {
/***********SPACE***********/
*t = 【?】 + *t;
/***********SPACE***********/ sl 【?】 10; }
s /= 10; } }
main() {
long s, t; clrscr();
printf(\fun(s, &t);
printf(\}
答案:1). *t;2). s;3). d * sl 或 sl * d 4). *= 或 =s*
功能: 对一数组进行逐步累加求和,prefix代表从前向后累加值,suffix代表从后向前累加值,问在此过程中prefix与suffix有几次值相同?
int head_tail(int x[], int n) {
int prefix = 0, suffix = 0;
int prefix_idx = 0, suffix_idx = n-1; int count = 0;
while (suffix_idx >= 0 && prefix_idx <= n-1) /***********SPACE***********/
if ( 【?】)
prefix += x[prefix_idx++]; else if (prefix > suffix)
/***********SPACE***********/ suffix += x[【?】]; else {
/***********SPACE***********/ 【?】;
prefix += x[prefix_idx++]; suffix += x[suffix_idx--]; }
return count; }
#include
int x[] = { 3, 6, 2, 1, 4, 5, 2}; int n = sizeof(x)/sizeof(int); int i;
printf(\Program\
printf(\========\\n\
printf(\for (i = 0; i < n; i++) printf(\
printf(\sum pairs.\}
答案:1). prefix < suffix 或 suffix>prefix 2). suffix_idx-- 或 suffix_idx= suffix_indx -1 或 --suffix_idx
3). count++ 或 count=count+1
功能:如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子 ( 包括1,不包括B本身 ) 之和等于A,则将整数A和B称为亲密数。求 3000 以内的全部亲密数。 #include
int a, i, b, n ;
printf(\3000:\\n\
for(a=1 ; a<3000 ; a++) {
for(b=0,i=1 ; i<=a/2 ; i++ )
/***********SPACE***********/ if(!(a%i)) 【?】 ;
for(n=0,i=1 ; i<=b/2 ; i++)
/***********SPACE***********/
if(!(b%i)) 【?】 ;
/***********SPACE***********/ if(【?】 && a
printf(\} }
答案:1). b+=i 或 b=b+i 2). n+=i 或 n=n+i;3). n == a
功能:输入数组,最大的与最后一个元素交换,最小的与第一个元素交换,输出数组。main() {
int number[10]; input(number); max_min(number); output(number); }
input(number) int number[10]; { int i;
/***********SPACE***********/ for(i=0;【?】;i++)
scanf(\scanf(\}
max_min(array) int array[10]; {
int *max,*min,k,l; int *p,*arr_end; arr_end=array+10; max=min=array;
for(p=array+1;p*max)
max=p;
else if(*p<*min)
/***********SPACE***********/ 【?】; k=*max; l=*min; *p=array[0]; array[0]=l;
/***********SPACE***********/ 【?】;
*p=array[9];
/***********SPACE***********/ 【?】; k=*p; return; }
output(array) int array[10]; {
int *p;
for(p=array;p
printf(\}
答案:1). i<9 或 9>i;2). min=p;3). l=*p;4). array[9]=k
功能:是将两个字符串连接为一个字符串,不许使用库函数strcat。 #include \#include \main ( ) {
char str1[80],str2[40]; int i,j,k;
gets(str1);gets(str2); puts(str1);puts(str2);
/***********SPACE***********/ 【?】; puts(str1); }
JOIN(s1,s2)
char s1[80],s2[40]; { int i,j;
/***********SPACE***********/ 【?】;
/***********SPACE***********/ for (i=0; 【?】'\\0';i++) s1[i+j]=s2[i];
/***********SPACE***********/ s1[i+j]= 【?】 ; }
答案:1). JOIN(str1,str2);
2). j=strlen(s1) 或 for(j=0;s1[j]!='10';j++); 或 for(j=0;s1[j];j++);
3). s2[i]!= 或 *(s2 + i)!= 4). '\\0' 或 NULL 或 0
功能:读入一行字符(如:a、...y、z),按输入时的逆序建立一个链接式的结点序列,即先输入的位于链表尾,然后再按输入的相反顺序输出,并释放全部结点。 #include
struct node {
char info;
struct node *link; } *top,*p; char c; top=NULL;
/***********SPACE***********/ while((c= 【?】) != '\\n' ) {
p=(struct node *)malloc(sizeof(struct node)); p->info=c; p->link=top;
/***********SPACE***********/ 【?】; }
while( top ) {
p=top;
/***********SPACE***********/ 【?】;
putchar(p->info); free(p); }
}
答案:1). getchar( );2). top=p; 3). top=top->link
功能:输出Fibonacci数列的前15项,要求每行输出5项。Fibonacci数列:1,1,2,3,5,8,13.......... #include
/***********SPACE***********/ int 【?】[14],i; fib[0]=1;fib[1]=1; for (i=2;i<15;i++)
/***********SPACE***********/ fib[i]=【?】; for(i=0;i<15;i++) {
printf(\
/***********SPACE***********/ if ( 【?】 ) printf(\ } }
答案:1). fib;2). fib[i-2]+fib[i-1] 或 fib[i-2] + fib[i-1];3). i%5 == 4 功能:文件操作。 # include
/* 定义一个文件指针fp */
/***********SPACE***********/ 【?】 *fp;
char ch, filename[10];
printf(\
scanf(\输入字符串并赋给变量filename */
/* 以读的使用方式打开文件filename */ /***********SPACE***********/
if((fp=fopen(filename, \【?】\{
printf(\exit(0); /* 正常跳出程序 */ }
/* 关闭文件 */
/***********SPACE***********/ 【?】; }
答案:1). FILE;2). r;3). fclose(fp) 功能:计算圆周率的近似值。 #include
/***********SPACE***********/ float n,【?】; double t;
t=1;pi=0;n=1;s=1;
/***********SPACE***********/ while(【?】>=2e-6) {
pi+=t;n+=2;s=-s;t=s/n; }
/***********SPACE***********/
pi*=【?】;
printf(\}
答案:1). pi;2). fabs(t);3). 4
功能:识别输入的字符串,每个单词输出一行
#include
int inspace;
/***********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)
功能:输入一个整数,计算它可能是哪两个整数的平方和,并打印结果数据。如:34是5和3或3和5的平方和。
#include
int given; /* the given number */ int row, column; /* row and column indicators*/
int count; /* number of solutions */ char line[100];
printf(\Sum of Two Squares\
printf(\========================\\n\printf(\gets(line);
given = atoi(line); printf(\printf(\
row = 1; /* starts from far enough */
column = (int) (sqrt((double) given) + 0.5); count = 0; /* so solution yet */
while (row <= given && column > 0) /* scan down... */
if (row*row + column*column == given) {
/***********SPACE***********/ 【?】;
printf(\row++;
column--; }
else if (row*row + column*column > given) /***********SPACE***********/ 【?】; else
/***********SPACE***********/ 【?】;
if (count == 0)
printf(\else
printf(\answers.\}
答案:1). count++ 或 ++count 或 count=count++1
2). column-- 或 --column 或 column=column-1
3). row++ 或 ++row 或 row= row + 1 功能:从两个数组中分别提取任意元素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}; int m = sizeof(x)/sizeof(int); int y[] = { 4, 5, 8, 13, 22}; int n = sizeof(y)/sizeof(int);
int i, min_distance(int [], int [], int, int); printf(\Between Two Sorted Arrays\
printf(\=====================\printf(\for (i = 0; i < m; i++) printf(\
printf(\for (i = 0; i < n; i++) printf(\
printf(\min_distance(x, y, m, n)); }
答案:1). x
3). index_x++ 或 index_x=index_x+1 或 ++index_x
功能:要求输出结果为:A,B;65,66 #include
/***********SPACE***********/ char a,【?】;
/***********SPACE***********/
a=【?】; b='b'; a=a-32;
/***********SPACE***********/ b=b-【?】;
printf(\}
答案:1). b;2). 'a' 或 97;3). 32
功能:写一个函数,求一个字符串的长度,