第二次上机考补题报告
6-1 统计字符串各类字符的个数 (15 分)
统计一个字符串中的字母、数字、空格和其它字符的个数。
函数接口定义:
void fun(char s[],int b[]);
其中 s
和 b
都是用户传入的参数。 函数fun统计字符串s
中的字母、数字、空格和其它字符的个数,并将结果放在b
数组中。
裁判测试程序样例:
#include "stdio.h"
void fun(char s[],int b[]);
int main ()
{ char s1[80];int a[4]={0};
int k;
gets(s1);
fun(s1,a);
for(k=0;k<4;k++) printf("%4d",a[k]);
return 0;
}
/* 请在这里填写答案 */
输入样例:
jfh h#$yf7y
结尾无空行
输出样例:
7 1 1 2
原代码
修改后的代码
6-2 求方阵和 (15 分)
给定一个N×N的方阵,本题要求计算该方阵除对角线、最后一列和最后一行以外的所有元素之和。对角线为从方阵的左上角至右下角的连线。
函数接口定义:
void createMatrix(int a[][N]); //创建n阶方阵a[N][N],裁判程序实现,细节略。
int sumMatrix(int a[][N]); //计算方阵除对角线、最后一列和最后一行以外的所有元素之和。
裁判测试程序样例:
#include<stdio.h>
#define N 10
void createMatrix(int a[][N]);
int sumMatrix(int a[][N]);
int main()
{
int a[N][N];
createMatrix(a);
printf("%d\n",sumMatrix(a));
return 0;
}
/* 请在这里填写答案 */
输入样例:
在这里给出一组输入。例如:
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
结尾无空行
输出样例:
在这里给出相应的输出。例如:
360
原代码

修改后的代码
7-1 最受欢迎的菜品 (20 分)
某自助餐厅要求餐厅的客人在就餐后进行投票,选出一款最喜爱的菜品,每日营业结束后进行投票统计,选出投票数最多的菜品为最受欢迎的菜品。 请编写一个程序帮助餐厅快速完成这个统计工作。
输入格式:
第1行中给出一个正整数n(不超出1000),表示菜品的数量,每个菜品使用1~n进行编号。 第2行输入若干以空格间隔的正整数,表示客人投出的最喜爱的菜品编号,以键盘结束符^Z或文件结束符结束输入。
输出格式:
每行输出一个最受欢迎的菜品编号和得票数。 菜品编号和得票数间隔1个空格。如果有并列的最受欢迎的菜品,则按编号从小到大的顺序输出每一个菜品,每个菜品占一行。
输入样例:
10
6 8 5 8 9 3 6 6 8 2 1 4 7 2 8 3 8 9 6 3 8 10 6 6
结尾无空行
输出样例:
6 6
8 6
结尾无空行

7-2 字符串循环左移 (20 分)
输入一个字符串和一个非负整数N,要求将字符串循环左移N次。
输入格式:
输入在第1行中给出一个不超过100个字符长度的、以回车结束的非空字符串;第2行给出非负整数N。
输出格式:
在一行中输出循环左移N次后的字符串。
输入样例:
Hello World!
2
结尾无空行

7-3 顺时针矩阵 (30 分)
读入20内正整数正整数n,输出顺时针分布的矩阵。矩阵内容为1,2,。。。到n*n。
输入格式:
每个实例包含一个20内正整数。
输出格式:
顺时针分布的矩阵,每个数据占4位。
输入样例:
7
结尾无空行
输出样例:
19 20 21 22 23 24 1
18 37 38 39 40 25 2
17 36 47 48 41 26 3
16 35 46 49 42 27 4
15 34 45 44 43 28 5
14 33 32 31 30 29 6
13 12 11 10 9 8 7
结尾无空行

总结:
由于我近一个月来并未按照老师要求完成学习任务,导致在这次考试中基本不会做。我现在只有在剩下的几个星期里努力学习才能弥补。