不知道是计算机还是软件的、内容不全、回忆版:
一、蛇形螺旋矩阵的输入输出;20分
题目很模糊,我按照输出x行y列的螺旋矩阵编写:
#include<stdio.h>
int main(){
int x,y;
void screw(int x,int y);
printf("输入x y(以空格隔开):");
scanf("%d %d",&x,&y);
screw(x,y);
return 0;
}
void screw(int x,int y){// X行 * Y列的螺旋矩阵
int i,j,t=0;//t记录第几圈
int A[x][y];//用于存储螺旋矩阵
int num=1;
while(num <= x*y){
for(j=t;j<y-t&&num <= x*y;j++){//上排
A[t][j] = num;
num++;
}
for(i=t+1;i<x-t&&num <= x*y;i++){//右排
A[i][j-1] = num;
num++;
}
//printf("%d",i-1);
for(j=y-t-2;j>=t&&num <= x*y;j--){//下排
A[i-1][j] = num;
num++;
}
for(i=x-t-2;i>t&&num <= x*y;i--) {//左排
A[i][j+1] = num;
num++;
}
t++;
}
for(i=0;i<x;i++){//打印输出
for(j=0;j<y;j++)
printf("%d\t",A[i][j]);
printf("\n");
}
}
二、字符串内小写字母的个数统计;统计字符串中所含所有大小写字母的个数。30分
解答:
(1)这道题让我联想到一个最基本的,求一个字符串内每个字符的个数、先把这个写出来,再介绍这道真题
#include<stdio.h>
#define N 100
int main(){
void countLetter(char *str);
char str[N];
printf("输入一段字符串:");
gets(str);
countLetter(str);
return 0;
}
void countLetter(char *str){
char count[N][2];//二维数组,第一位 字符位,第二位 字符个数 ,记录了每个字符与其出现的此数
int i,j,sign,len=0;//i,j用于遍历,sign用于标志是否需要新插入到count中,len表示当前count的长度
char str_s,count_s;
for(i=0;(str_s=str[i])!='\0';i++){//遍历字符数组
sign = 0;
for(j=0;j<len;j++){
if(str_s == count[j][0]){
count[j][1] ++;
sign = 1;//标志已经找到这个字符
break;
}
}
if(sign == 0){//若在count数组中没找到这个字符,则填到count中,
count[len][0] = str_s;
count[len][1] = 1;
len++;
}
} /*以下为打印输出部分*/
for(i=0;i<len;i++){
printf("字符%c的个数有%d个\n",count[i][0],count[i][1]);
}
}
(2)对于本道题,只需将最后的打印输出部分稍加修改,改成下列语句,就可以了:
int BigLetter=0,SmallLetter=0;
for(i=0;i<len;i++){
if(count[i][0]>='a' && count[i][0] <= 'z') SmallLetter++;
if(count[i][0]>='A' && count[i][0] <= 'Z') BigLetter++;
}
printf("大写字母有%d个,小写字母有%d个\n",BigLetter,SmallLetter);
(3)某年有道真题,让输出每一个小写字母的个数,同样修改打印输出部分即可,准确说,只需添一句话:
for(i=0;i<len;i++){
if(count[i][0]>='a' && count[i][0]<='z')
printf("字符%c的个数有%d个\n",count[i][0],count[i][1]);
}
三、集合的输入输出;已输入一个有M个元素的集合A,输出含有N个元素的A的所有子集。30分
相关题:
(1)软专2007的最后一题(http://mp.blog.csdn.net/postedit/79456981)
这道题让求A的全部子集,详细思路和代码请跳上面的链接
(2)一个让求A的所有元素个数为2的子集,另一个让求许多点构成的三角形的面积,相当于求集合A的所有元素个数为3的子集,结合本题,只需将n=2,n=3变为n=N,即可,详细请看链接,不贴上去了
967-2014年第四题(http://blog.csdn.net/qq_21149391/article/details/79411106)
967-2015年第四题(http://blog.csdn.net/qq_21149391/article/details/79405192)