题目名称: ES11-1_字符数组
- 类型: 选择题
- 描述: 以下程序的运行结果是()。
代码:
#include <stdio.h> int main() { char s[] = {"012xy"}; int i, n = 0; for(i = 0; s[i] != 0; i++) if(s[i] >= 'a' && s[i] <= 'z') n++; printf("%d\n", n); return 0; }
选项内容:
- 0
- 1
- 2
- 12
- ans:2
题目名称: ES12-2_二维数组
- 类型: 选择题
- 描述: 以下程序的运行结果是()。
代码:
#include <stdio.h> int main() { int b[3][3] = {{0, 1, 2}, {0, 1, 2}, {0, 1, 2}}, i, j, t = 1; for(i = 0; i < 3; i++) for(j = i; j <= i; j++) t += b[i][b[j][i]]; printf("%d\n", t); return 0; }
选项内容:
- 2
- 4
- 3
- 5
- ans:4
题目名称: EP11-2_字符数组
- 类型: 编程题
- 描述: 输入一行字符,统计其中有多少单词,单词之间用空格(可能不只1个空格)隔开。编程时,使用C语言提供的字符串函数
gets()
读入一行字符。 代码:
#include <stdio.h> int main() { int i, count; char s[80]; gets(s); count = 0; for(i = 0; s[i] != '\0'; i++) { if(s[i] != ' ' && (s[i + 1] == ' ' || s[i + 1] == '\0')) count++; } printf("%d\n", count); return 0; }
测试用例:
- 输入: "I am a student!",输出: 4
- 输入: "I am a student! How are you?",输出: 7
题目名称: EP12-1_二维数组(矩阵中部分元素之和)
- 类型: 编程题
- 描述: 读入一个正整数 n (2 ≤ n ≤ 10),再读入 n 阶方阵 a,计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。
代码:
#include <stdio.h> int main() { int a[10][10], n, i, j, sum; scanf("%d", &n); for(i = 0; i < n; i++) for(j = 0; j < n; j++) scanf("%d", &a[i][j]); sum = 0; for(i = 0; i < n; i++) for(j = 0; j < n; j++) { if(i == n - 1 || j == n - 1 || (i + j) == n - 1) continue; sum += a[i][j]; } printf("%d\n", sum); return 0; }
测试用例:
- 输入: "4n2 3 4 1n5 6 1 1n7 1 8 1n1 1 1 1",输出: 35
题目名称: EP12-2_二维数组(杨辉三角形)
- 类型: 编程题
- 描述: 打印杨辉三角形:输入一个整数 n (2 ≤ n ≤ 10)。要求输出前 n 行杨辉三角形。每个数字占固定4位。
代码:
#include <stdio.h> int main() { int a[10][10], n, i, j; scanf("%d", &n); for(i = 0; i < n; i++) for(j = 0; j <= i; j++) { if(j == 0 || i == j) a[i][j] = 1; else a[i][j] = a[i - 1][j - 1] + a[i - 1][j]; } for(i = 0; i < n; i++) { for(j = 0; j <= i; j++) printf("%4d", a[i][j]); printf("\n"); } return 0; }
测试用例:
输入: "6",输出:
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1