1.以下程序段( AD)的功能是:输入一批整数,用负数作为输入的结束标志,统计其中大于85的数据个数。

A.

int count = 0, score;scanf ("%d", &score);while(score >= 0){ if(score > 85){ count++; } scanf ("%d", &score);}printf("%d\n", count);

B.

int count = 0, score;scanf ("%d", &score);while(score >= 0){ scanf ("%d", &score); if(score > 85){ count++; }}printf("%d\n", count);

C.scanf位置不对,放到了while里面。如果有负数它不会结束。

int count = 0, score;while(score >= 0){ scanf ("%d", &score); if(score > 85){ count++; }}printf("%d\n", count);

D.

int count = 0, score;while(1){scanf ("%d", &score);if(score  85){count++;}}printf("%d\n", count);

2.以下程序段( ABE)的功能是:计算1! + 2! + 3! + … + n!。假设变量和函数都已正确定义。

A.

 sum = 0; for(i = 1; i <= n; i++ ){sum = sum + fact (i); /*假设函数fact(i)已正确定义 */}printf("%.0f\n", sum);

B.

sum = 0;for(i = 1; i <= n; i++){ item = 1; for (j = 1; j <= i; j++) item = item * j; sum = sum + item;}printf("%.0f\n", sum)

C.

sum = 0;item = 1;for(i = 1; i <= n; i++){ for (j = 1; j <= i; j++) item = item * j; sum = sum + item;}printf("%.0f\n", sum)

D.

for(i = 1; i <= n; i++){sum = 0;item = 1;for (j = 1; j <= i; j++) item = item * j;sum = sum + item;}printf("%.0f\n", sum);

E.

sum = 0;item = 1;for(i = 1; i <= n; i++){item = item * i;sum = sum + item;}printf("%.0f\n", sum);

1.

scanf("%d", &m);cnt = 0;limit = m/2;for(i = 2; i <= limit; i++){cnt++;if(m % i == 0){break;}}

执行程序段C,输入101,变量cnt的值是49


1.输入一个正整数,判断其是否为素数。

scanf (“%d”, &m);
if ( m == 1) {
is_prime = 0;
} else if (m == 2) {

is_prime=1;

} else if (m % 2 == 0) {
is_prime = 0;
} else{

is_prime=1;

limit = sqrt(m) + 1;
for(i = 3; i <= limit; i += 2){
if(m % i == 0){

is_prime=0;break;

}
}
}

if(is_prime==1){

printf(“Yes\n”);
}else{
printf(“No\n”);
}

2.输入一个非负整数,求1+1/2!+…+1/n!。假设变量已正确定义。

scanf(“%d”, &n);

sum=0;item=1;

for(i=1;i<n;i++){

item=item/i;

sum = sum + item;
}
printf(“%.8f\n”, sum);

3.输入一个正整数n(1≤n≤10),输出n×n的简易乘法表。当n=3时,3×3的简易乘法表如下:

 1 2 3 4 6 9

int i, j, n;
scanf(“%d”, &n);
for(i = 1; i <= n; i++){

for(j=1;j<=n;j++)/* 处理每行数字前的空格 */

printf(“%4c”,’ ‘);

}

for(j=i;j<=n;j++){

printf(“%4d”, i*j);
}

printf(“\n”);

}

4.水仙花数是指一个n位正整数(n≥3),它的每位数字的n次幂之和等于它本身。三位水仙花数满足各位数字的立方和等于自身的正整数,例如:153=13+53+33。

for(num=100;num<=99;num++){

t_num=num;s=0;

do{

digit=t_num%10;

s=s+digit*digit*digit;t_num=t_num/10;

}while(t_num!=0);

if(num==s)

printf(“%d\n”,num);

}

}

5.输入一个正整数n(1≤n≤9),打印一个高度为n的、由“*”组成的等腰三角形图案。当n=3时,输出如下等腰三角形图案:

***** ****

int i, j, n;
scanf(“%d”, &n);
for (i = n; i > 0; i–){

for(j=n-i;j>0;j--)

printf(” “); }

for(j=1;j<=2*i-1;j++)

printf(“*”);}

printf("\n");

}

6.输入一个正的奇数n(1≤n≤9),打印一个高度为n的、由“*”组成的正菱形图案。当n=5时,输出如下正菱形图案:

* ******** ****
int i, j, m, n; scanf("%d", &n);m = n/2;for (i = 1; i 0;j--){printf (" ");} for(j=1;j= 1; i--){for(j=m+1-i;j>0;j++){printf (" ");} for(j=1;j<=2*i-1;j++){printf ("*");} printf ("\n");}

7.输入一个正整数n(1≤n≤10),打印一个n行n列的方阵。当n=4时,打印如下方阵:

13141516 9101112 5 6 7 8 1 2 3 4

int i, j, n;
scanf(“%d”, &n);

for(i=n-1;i>=0;i--){

for(j=1;j<=n;j++){

printf("%4d",i*n+j)}

printf(“\n”);

}

8.输入一个非负整数,从高位开始逐位分割并输出它的各位数字。例如,输入9837,输出9 8 3 7

int digit, number, pow, t_number; scanf ("%d", &number);t_number = number;pow = 1;while (t_number/10!=0){pow = pow*10;t_number = t_number / 10; }while ( pow >= 1 ) {digit = number/pow;number = number%pow;pow = pow/10;printf ("%d ", digit);}printf ("\n");