吉大专业课(未知)-2015年

不知道是计算机还是软件的、内容不全、回忆版:

一、蛇形螺旋矩阵的输入输出;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

 

 

 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Manigoldo_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值