高级语言讲义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;
}
相关推荐
luj_176822 分钟前
心形曲线轨迹控制三大关键技术
c语言·开发语言·c++·经验分享·算法
tmlx3I0811 小时前
高光谱拼接算法(六)RANSAC 误匹配剔除
人工智能·算法·机器学习
不相心 -w-1 小时前
基础-滑动窗口-(定长 | 不定长)
算法
醉城夜风~1 小时前
Java详解经典算法题:接雨水(三种实现方案+原理剖析)
java·开发语言·算法
ysa0510301 小时前
【板子】ST表
c++·笔记·算法·板子
CHHH_HHH2 小时前
【C++11】深入解析C++可变参数模板
开发语言·c++·算法·stl·c++11
hurrycry_小亦2 小时前
洛谷题目:P1215 [USACO1.4] 母亲的牛奶 Mother‘s Milk 题解(本题简)
算法
KJ_BioMed3 小时前
从PDB到高亲和力分子:De novo生成式计算化学Pipeline剖析
算法·生物医药·生物科研·科研干货·化合物设计
一个王同学4 小时前
从零到一 | CV转多模态大模型 | week17 | LLM 推理优化 & vLLM 详解
人工智能·深度学习·算法·机器学习·计算机视觉·vllm
jimy14 小时前
C语言模拟对象、方法:“函数指针+结构体“复用函数指针指向的函数体
c语言·开发语言