高级语言讲义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;
}
相关推荐
小星星闪亮登场12 分钟前
Codeforces Round 1115 ( Div. 2)
数据结构·c++·算法·贪心算法·排序算法·codeforces
计算机小白一个13 分钟前
蓝桥杯 Java B 组之哈希表应用(两数之和、重复元素判断)
java·数据结构·算法·蓝桥杯
Loge编程生活16 分钟前
打卡信奥刷题(3449)用C++实现信奥题 P10429 [蓝桥杯 2024 省 B] 拔河
开发语言·数据结构·c++·算法·青少年编程
2601_957174652 小时前
大模型算法 简单 容易 用这个方法
算法
VALENIAN瓦伦尼安教学设备2 小时前
激光对中仪采购要点
数据库·嵌入式硬件·算法
捷瑞电子工坊2 小时前
C语言二维数组在内存中是如何存储的?
c语言·二维数组·内存存储·数组底层
lilili也3 小时前
visual studio add matlab
c语言·c++
Forever Nore3 小时前
LeetCode 1 两数之和
算法·leetcode·职场和发展
To_OC4 小时前
LC 3 无重复字符的最长子串:从入门滑动窗口到优化写法,再也不怕面试官追问
javascript·算法·leetcode
(Charon)4 小时前
【C++】多线程死锁:产生原因、复现与解决方法
开发语言·c++·算法