C语言程序设计练习
#include <stdio.h> #include <math.h> int IsPerfect(int x); int main()
{ int m; printf("Input m:"); scanf("%d", &m);
if (_________________) /* 完全数判定 */ printf("%d is a perfect number\n";i++)
{
t=a[i];
__________;
a[n-i]=t;
}
}
int main()
{
int b[10]={16,22,13,41,50,62,27,18,9,10};
int i,s=0;
__________;
for(i=0;i<10;i++) {
printf("%4d",b[i]); }
else printf("Input error!\n");
return 0; } //函数功能:计算两个正整数的最小公倍数,-1 表示没有最小公倍数 int MinCommonMultiple(int a, int b) {
int i;
if (_________________) return -1;
例如:主程序中数组 b 中的元素为{16,22,13,41,50,62,27,18,9,10},调用函数 Reverse 后,数
组 b 中元素变为
{10 9 18 27 62 50 41 13 22 16}
#include <stdio.h>
void Reverse(int a[],int n)
{
int i,t;
B. 第 8 行: 第 10 行: 第 22 行: 第 26 行:
MinCommonMultiple(a, b) x != -1 a<=0 || b<=0
(i * a) % b == 0
C. 第 8 行: 第 10 行: 第 22 行: 第 26 行:
MinCommonMultiple(b, a) x != -1
#include <stdio.h> int MinCommonMultiple(int a, int b); int main() {
int a, b, x; printf("Input a,b:"); scanf("%d,%d", &a, &b); x = _________________;
if (__________) printf("MinCommonMultiple = %d\n", x);
for (x=1; _______; x++)
{
____________;
if (____________)
{
printf("x = %d, y = %d", x, y);
}
}
return 0; }
3 单选(1 分) 以下程序的输出结果是 #include <stdio.h> int main() {
return 0;
}
A.b[i][b[j][j]]
B.b[i][j]
C.b[t][j]
D.b[j][t]
2 单选(1 分)
以下程序中函数 Reverse 的功能是对数组 a 中的前一半元素逆序、后一半元素逆序,再将逆
序后的前、后两部分数据位置交换。按要求在空白处填写适当的表达式或语句,使程序完整
并符合题目要求。
int m[][3]={1,4,7,2,5,8,3,6,9}; int i,j,k=____;
for(i=0;_______;i++) {
printf("%d",_________); }
return 0; } A.第 5 行: 3
第 7 行: i<=3 第 9 行: m[k][i] B.第 5 行: 2 第 7 行: i<2 第 9 行: m[i][k] C.第 5 行: 2 第 7 行: i<3 第 9 行: m[k][i] D.第 5 行: 3 第 7 行: i<3 第 9 行: m[i][k] 4 单选(1 分) 下列说法正确的是 A 定义数组的大小、访问数组元素时在下标中都可以使用变量或表达式。 B 可以按任意的顺序对二维数组元素进行赋值,并且也可以按任意的屏幕输出顺序来输出二 维数组元素。 C 在 C 语言中,不带下标的数组名代表数组的首地址,即第一个元素在内存中的地址。 D.在声明函数的二维数组形参时,可省略数组第二维的长度,但不能省略数组第一维的长度。 5 单选(1 分) 用函数编程计算并输出如图所示的杨辉三角形。按要求在空白处填写适当的表达式或语句, 使程序完整并符合题目要求。 #include<stdio.h> #define N 20 void CaculateYH(int a[][N], int n); void PrintYH(int a[][N], int n); int main() {
下面代码的功能是在屏幕上输出以下内容 0 1 3 程序中空白处缺少的代码由下列选项给出,其中有一个不能满足题目要求,请将其找出。 #include <stdio.h> int main() {
int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=0;
for(i=0;i<3;i++) for(j=i;j<=i;j++) { t=t+____________; printf("%d\n",t); }
return 0; } A. 第 5 行: i<=n 第 8 行: a[n-i]=a[i] 第 17 行: Reverse(b,9) B. 第 5 行: i<=n/2 第 8 行: a[i]=a[n] 第 17 行: Reverse(b,9) C. 第 5 行: i<=n/2 第 8 行: a[i]=a[n-i] 第 17 行: Reverse(b,9) D. 第 5 行: i<=n/2 第 8 行: a[n]=a[i] 第 17 行: Reverse(9,b) 3 单选(1 分) 某矩阵 m 存储的数据如下: 147 258 369 现将该矩阵最后一行的所有数据输出到屏幕,按要求在空白处填写适当的表达式或语句,使 程序完整并符合题目要求。 #include <stdio.h> int main() {
a<=0 || b<=0 (i * a) / b == 0
D. 第 8 行: MinCommonMultiple 第 10 行: x == -1 第 22 行: a<=0 && b<=0 第 26 行: (i * a) % b == 0 5 单选(1 分) 完全数,又称完美数或完数(Perfect Number),它是指这样的一些特殊的自然数,它所有的 真因子(即除了自身以外的约数)的和,恰好等于它本身。例如,6 就是一个完全数,是因 为 6 = 1 + 2 + 3。请编写一个判断完全数的函数 IsPerfect(),然后判断从键盘输入的整数是 否是完全数。注意:1 没有真因子,所以不是完全数。 代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。
else printf("%d is not a perfect number\n", m);
return 0; }
/* 函数功能:判断完全数,若函数返回 0,则代表不是完全数,若返回 1,则代表是完全数
*/
int IsPerfect(int x)
{
int i;
int total = 0;
/* 1 没有真因子,不是完全数 */
本身。例如,153 是“水仙花数”,因为
代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。
#include <stdio.h>
int main()
{
int i, j, k, n;
printf("result is:");
for (n=100; ________; n++)
{
i = n / 100;
x/2==1 && x/3==2 && x/5==4 && x/6==5 && x/7==0
鸡兔同笼,共有 98 个头,386 只脚,编程求鸡、兔各多少只。
代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。
#include <stdio.h>
int main()
{
int x, y;
int a, b; for(a=1, b=1; a<=100; a++)
{ if(b>=10) break; if (b%3==1) { b+=3; continue; }
} printf("%d\n",a); return 0; }
A4
B.101
C.5
D.6
5 单选(1 分)
打印所有的“水仙花数”。所谓“水仙花数”,是指一个三位数,其各位数字的立方和等于该数
for (__________________) {
if (___________) total = total + i;
}
return total==x ? 1 : 0; }
A. 第 10 行: IsPerfect(m)!=1 第 24 行: i=0; i<=x; i++ 第 26 行: x / i == 0 B. 第 10 行: m 第 24 行: i=1; i<=x; i++ 第 26 行: x % i != 0 C. 第 10 行: IsPerfect(m) 第 24 行: i=1; i<x; i++ 第 26 行: x % i == 0 D. 第 10 行: IsPerfect(m)==0 第 24 行: i=0; i<x; i++ 第 26 行: x % i != 0