2020级c语言面向过程程序设计核心能力测试题


《C语言程序设计》核心能力测试题
编程题
1、 输入一个年份,判断是不是闰年。
2、 编写程序,输入x的值,求y的值。
      -1  (x<0)
y=    0   (x=0) 
      1   (x>0)
3、 输出1+2+3+…+n的结果,其中n的值通过键盘输入。
4、 输入一个字符串#表示结束,统计英文字母、数字和其它字符的个数。
5、 用数组方式输入5个学生的成绩,求总分和平均分,并对这5个成绩进行从高到低的排序。
6、 一位同学因为参加大学生运动会需要进行缓考,缓考过后,老师要把他的成绩插入班级的成绩单中,成绩单已经按照分数从高到低进行了排序,试问这个缓考成绩要怎样插入才不影响已经排好序的成绩单?
7、  输入一个字符串是否是“回文”。所谓回文是指对称的字符串,如”abcddcba”,正读反读都是一样的,判断回文的过程在函数中实现。
8、 编写一个整数,判断是否是素数。
9、 有一个数列为:1,1,2,3,5,8……,输出这个数列的前30项,每一行输出5个。
10、 输入以下图形:

word下载地址:

答案:

1.输入一个年份,判断是不是闰年。
#include <stdio.h> int main() { int n; printf("请输入一个年份:"); scanf("%d", &n); if (n % 400 == 0 || n % 4 == 0 && n % 100 != 0) { printf("%d是闰年", n); } else { printf("%d不是闰年", n); } }
2.
#include <stdio.h> int main() { int x, y; printf("请输入x的值:"); scanf("%d", &x); if (x > 0) y=1; else if (x <0) y=-1; else y=0 ; printf("对应y的值是:%d\n",y); return 0; }
3.输出1+2+3+…+n的结果,其中n的值通过键盘输入。
#include <stdio.h> int main() { int n, j = 0; printf("输出1+2+3+…+n的结果"); printf("请输入n的值:"); scanf("%d", &n); for (int i = 1; i <= n; i++) { j = j + i; } printf("结果为:%d", j); }
4、 输入一个字符串#表示结束,统计英文字母、数字和其它字符的个数。
#include <stdio.h> int main() { char a; int c = 0, b = 0, d = 0; printf("请输入一串字符:"); do { if (a >= '0' && a <= '9') { c++; } else if ((a >= 'a' && a <= 'z') || (a >= 'A' && a <= 'Z')) { b++; } else { d++; } } while ((a = getchar() ) != '#'); printf("数字的个数:%d\n字母字符个数:%d\n其他字符个数:%d\n", c, b, d); }
5、 用数组方式输入5个学生的成绩,求总分和平均分,并对这5个成绩进行从高到低的排
6、 一位同学因为参加大学生运动会需要进行缓考,缓考过后,老师要把他的成绩插入班级的成绩单中,成绩单已经按照分数从高到低进行了排序,试问这个缓考成绩要怎样插入才不影响已经排好序的成绩单?
#include <stdio.h> int main() { int a[11] = {96, 91, 85, 79, 72, 64, 50, 43, 25, 10}; int b, i, j; printf("原成绩为:"); for (i = 0; i < 10; i++) printf("%4d", a[i]); printf("\n"); printf("请输入所要插入的学生成绩:"); scanf("%d", &b); if (a[9] > b) a[10] = b; else { for (i = 0; i < 10; i++) { if (b >= a[i]) { for (j = 10; j > i; j--) a[j] = a[j - 1]; a[i] = b; break; } } } printf("插入成绩后:"); for (i = 0; i < 11; i++) printf("%4d", a[i]); printf("\n"); }
7、  输入一个字符串是否是“回文”。所谓回文是指对称的字符串,如”abcddcba”,正读反读都是一样的,判断回文的过程在函数中实现。
8、 编写一个整数,判断是否是素数。
9、 有一个数列为:1,1,2,3,5,8……,输出这个数列的前30项,每一行输出5个。
#include <stdio.h> int main() { int i = 1; int j = 1; int m = 0; printf("%10d%10d", i, j); for (int k = 3; k <= 30; k++) { m = i + j; i = j; j = m; printf("%10d", m); if (k % 5 == 0) { printf("%\n"); } } }
10、 输入以下图形:
#include <stdio.h> //int main() { // int i, j, k; // for (i = 1; i <= 5; i++) { // for (j = 0; j < 4 - i; j++) { // printf(" "); // } // for (k = 0; k < 2 * i - 1; k++) { // printf("*"); // } // printf("\n"); // } //} int main() { int i, j, k, m; // 内循环控制行,外循环控制列 for (i = 5, j = 1; j <= i; j++) { // 输出空格 for (k = i - 1; k >= j; k--) { printf(" "); } // 输出* for (m = 1; m <= j * 2 - 1; m++) { printf("*"); } printf("\n"); } }
源码图来源:一笑同学
符攀飞 符攀飞
3 年多前
781

扫描下方二维码手机阅读文章

21 0