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");