文章目录
- C编程题
-
- 第1题:功能: 输入两个整数, 求他们的按位与。
- 第2题:功能: 有 n 个整数, 使其前面各数顺序向后移 m 个位置, 最后 m 个数变成最前面的 m 个数
- 第3题:功能: seek()函数: 判断是否有不合格成绩;形参: 1 个, 指向由 3 个 int 型元素组成的 1 维数组的行指针变量返回值:(1)有不合格成绩, 则返回指向本行首列的一个(列)指针;(2)没有有不合格成绩, 返回值为指向下一行的一个(列)指针
- 第4题:功能: 输入一个学生的生日(年: y0、 月: m0、 日: d0), 并输入当前日期(年: y1、 月: m1、 日: d1)。 求出该学生的年龄(实足年龄)
- 第5题:功能: 编程求某年第 n 天的日期。 用数组表示月天数。
- 第6题:功能: 算式: ? 2 * 7? = 3848 中缺少一个十位数和一个个位数。 编程求出使该算式成立时的这两个数, 并输出正确的算式。
- 功能: 编程求任意给两个日期(年 月 日)相差的天数。
C编程题
第1题:功能: 输入两个整数, 求他们的按位与。
void main(){int x, y, z = 0, a, b, k = 1;scanf("%d%d", &x, &y);while (x>0 && y>0){a = x % 2;x = x/2;b = y % 2;y = y / 2;z = z + a*b*k;k = k * 2;} printf("z=%d\n", z);}
第2题:功能: 有 n 个整数, 使其前面各数顺序向后移 m 个位置, 最后 m 个数变成最前面的 m 个数
int main(){int number[20], n, m, i;printf("the total numbers is:");scanf("%d", &n);printf("back m:");scanf("%d", &m);for (i = 0; i<n; i++)scanf("%d", &number[i]);move(number,n,m);for (i = 0; i < n - 1; i++)printf("%d,", number[i]);printf("%d", number[n - 1]);} move(array,n,m)int n, m, array[20];{int *p, array_end;array_end = *(array+n-1);for (p = array + n - 1; p>array; p--)*p = *(p-1);*array = array_end;m--;if (m>0) move(array, n, m);}
第3题:功能: seek()函数: 判断是否有不合格成绩;形参: 1 个, 指向由 3 个 int 型元素组成的 1 维数组的行指针变量返回值:(1)有不合格成绩, 则返回指向本行首列的一个(列)指针;(2)没有有不合格成绩, 返回值为指向下一行的一个(列)指针
int *seek(int(*pnt_row)[3]){int i = 0, *pnt_col; pnt_col= *(pnt_row + 1);for (; i<3; i++)if (*(*pnt_row + i)<60){pnt_col = *pnt_row;break; } return(pnt_col);}int main(){static int grade[3][3] = { { 55, 65, 75 }, { 65, 75, 85 }, { 75, 80, 90 } };int i, j, *pointer;for (i = 0; i < 3; i++){pointer = seek(grade[i]);if (pointer == *(grade + i)){printf("No.%d grade list: ", i + 1);for (j = 0; j < 3; j++)printf("%d ", *(pointer+j));printf("\n");}}}
第4题:功能: 输入一个学生的生日(年: y0、 月: m0、 日: d0), 并输入当前日期(年: y1、 月: m1、 日: d1)。 求出该学生的年龄(实足年龄)
#include main(){int age, y0, y1, m0, m1, d0, d1;printf("输入生日日期(年,月,日) ");scanf("%d%d%d", &y0, &m0, &d0);printf("输入当前日期(年,月,日)");scanf("%d%d%d", &y1, &m1, &d1);age = y1 - y0;if (m0>m1)age--;if ((m0==m1) && (d0>d1))age--;printf("age=%3d", age);}
第5题:功能: 编程求某年第 n 天的日期。 用数组表示月天数。
#includeint main(){int y,f, n;int a[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };printf("y,n=");scanf("%d%d", &y, &n);f = y % 4 == 0 && y % 100 != 0 || y % 400 == 0;a[1]+=f;if (n<1 || n>365 + f){printf("error!\n"); exit(0);} int i = 0;while (n > 0){n -= a[i];i++;} if (n <= 0){i--;n += a[i];}printf("年=%d,月份=%d,日期=%d\n", y, i+1, n);}
第6题:功能: 算式: ? 2 * 7? = 3848 中缺少一个十位数和一个个位数。 编程求出使该算式成立时的这两个数, 并输出正确的算式。
int main(){int x, y;for (x = 1; x < 10; x++)for (y = 0; y < 10; y++)if ((10 * x + 2)*(70 + y) == 3848){printf("%d*%d=3848\n", x*10+2, 70+y);exit(0);}}
功能: 编程求任意给两个日期(年 月 日)相差的天数。
#include int date(int n, int m1, int d1, int m, int m2, int d2){ int i, j, k, t1, t2, q, y, sum = 0;int a[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };for (i = n; i <= m; i++){if (i == n)t1 = m1;else t1 = 1;if (i == m)t2 = m2;else t2 = 12;for (j = t1; j <= t2; j++){ if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0)a[2] = 29;else a[2] = 28;if (i == n&&j == m1)q = d1;else q = 1;if (i == m&&j == m2)y = d2;else y = a[j];for (k = q; k <= y; k++){ sum++;}}}printf("%d", sum - 1);}int main(){int n, m, m1, m2, d1, d2;int sum;scanf("%d %d %d", &n, &m1, &d1);scanf("%d %d %d", &m, &m2, &d2);date(n, m1, d1, m, m2, d2);return 0;}