高级语言讲义2015软专(仅高级语言部分)

1.编写一个程序,对输入的任意字符串,统计并输出其中每个英文小写字母在该字符串中出现的次数。

cpp 复制代码
#include <stdio.h>

void getcount(char *str) {
	int hash[26] = {0};
	int i = 0;
	while (str[i] != '\0') {
		if (str[i] >= 'a' && str[i] <= 'z')
			hash[str[i] - 'a']++;
		i++;
	}
	for (int i = 0; i < 26; i++)
		if (hash[i] != 0)
			printf("%c:%d ", 'a' + i, hash[i]);
}

int main() {
	char *str = "asdasdxxsaxAAAAAAA";
	getcount(str);
	return 0;
}

2.文法:N->N D|D,D->0|1|2|3|4|5|6|7|8|9,编写程序实现如下功能,对任意给定的串,若符合文法输出对应的整数值,否则输出错误。例如:2014输出2014,20Y14,输出错误。

cpp 复制代码
#include <stdio.h>
 
int main() {
	int N=0;
	int i=0;
	char str[100];
	scanf("%s",str);
	for(i; str[i]!='\0'; i++) {
		if(str[i]>='0'&&str[i]<='9')
			N=str[i]-'0'+N*10;
		else {
			printf("error\n");
			break;
		}
	}
	if(str[i]=='\0')
		printf("%d\n",N);
	return 0;
}

3.螺旋矩阵是整数的一种排列方式。编写程序生成井输出10X 10的螺旋矩阵。

cpp 复制代码
#include <stdio.h>
#include <stdlib.h>

int main() {
	int n;
	scanf("%d",&n);
	int **a=(int **)malloc(sizeof(int*)*n);
	for(int i=0; i<n; i++)
		a[i]=(int*)malloc(sizeof(int)*n);
	int nums=1;
	for(int i=0; i<=n/2; i++) {
		for(int j=i; j<=n-i-1; j++)
			a[i][j]=nums++;
		for(int k=i+1; k<n-i-1; k++)
			a[k][n-i-1]=nums++;
		for(int j=n-i-1; j>i; j--)
			a[n-i-1][j]=nums++;
		for(int k=n-i-1; k>i; k--)
			a[k][i]=nums++;
	}
	for(int i=0; i<n; i++) {
		for(int j=0; j<n; j++)
			printf("%5d",a[i][j]);
		printf("\n");
	}
}

4.设有一个包含N个整数的集合S,编写函数求s的所有元素个数为M 的子集。

例如: N=4,S={1,2,3,4};若M=2,则输出结果为:

(1,2)(1,3)(1,4)(2,3)(2.4)(3,4)

cpp 复制代码
#include <stdio.h>

void generateSubsets(int S[], int n, int subset[], int subsetSize, int index, int targetSize) {
	if (subsetSize == targetSize) {
		printf("{ ");
		for (int i = 0; i < subsetSize; i++)
			printf("%d ", subset[i]);
		printf("}\n");
		return;
	}
	for (int i = index; i < n; i++) {
		subset[subsetSize] = S[i];
		generateSubsets(S, n,subset, subsetSize + 1, i + 1, targetSize);
	}
}

int main() {
	int S[] = {1, 2, 3, 4};
	int n=sizeof(S)/sizeof(int);
	int subset[10];
	int targetSize = 2;
	generateSubsets(S, n, subset, 0, 0, targetSize);
	return 0;
}
相关推荐
慢半拍iii1 小时前
数据结构——D/串
c语言·开发语言·数据结构·c++
怀旧,1 小时前
【数据结构】5. 双向链表
数据结构·windows·链表
王景程1 小时前
什么是哈希函数
算法·哈希算法
蒙奇D索大1 小时前
【11408学习记录】[特殊字符] 速解命题核心!考研数学线性代数:4类行列式满分技巧(含秒杀公式)
笔记·学习·线性代数·考研·改行学it
会不再投降2191 小时前
《算法复杂度:数据结构世界里的“速度与激情”》
数据结构·算法
vvilkim1 小时前
深入解析 Pandas 核心数据结构:Series 与 DataFrame
数据结构·pandas
Frankabcdefgh2 小时前
Python基础数据类型与运算符全面解析
开发语言·数据结构·python·面试
kaiaaaa2 小时前
算法训练第十五天
开发语言·python·算法
Coovally AI模型快速验证2 小时前
SLAM3R:基于单目视频的实时密集3D场景重建
神经网络·算法·3d·目标跟踪·音视频
whoarethenext2 小时前
使用 C/C++ 和 OpenCV 提取图像的感兴趣区域 (ROI)
c语言·c++·opencv