C语言基础练习题<三>

1.写一个函数,使给定的一个3 X 3 的二维整型数组转置,即行列互换。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
	int i, j;
	int num[3][3];
	printf("请输入一组数据:\n");
	for (i = 0; i < 3;i++) {
		for (j = 0; j < 3;j++) {
			scanf("%d",&num[i][j]);
		}
	}
	printf("original array:\n");
	for (i = 0; i < 3; i++) {
		for (j = 0; j < 3; j++) {
			printf("%d ",num[i][j]);
		}
		printf("\n");
	}
	printf("last array:\n");
	last(num);
	for (i = 0; i < 3; i++) {
		for (j = 0; j < 3; j++) {
			printf("%d ", num[i][j]);
		}
		printf("\n");
	}
	return 0;
}
/*

1   2   3              1   4   7
4   5   6              2   5   8                      4                2   3
7   8   9  行列转换为   3   6   9 ,其实就是将左下角的  7   8 与右上角的      6 进行互换,如何得到
									    
左下角的三个数呢,性质就和打星星是一样的

*/
int last(int num[3][3]) {
	int t, i, j;
	for (i = 0; i < 3; i++) {
		for (j = 0; j < i; j++) {
			t = num[i][j];
			num[i][j] = num[j][i];
			num[j][i] = t;
		}
	}
}

C语言基础练习题<三>

2.写一个函数,使输入的一个字符串按反序存放,如输入“CANADA”,输出“ADANAC”。在主函数中输入和输出字符串。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main() {
	printf("请输入一个字符串:\n");
	char num[100];
	scanf("%s", &num);
	printf("反序之后的字符串:\n");
	array(num);
	printf("%s", num);
	return 0;
}

int array(char num[]) {
	int len, i, t, len2;
	len = strlen(num);
	len2 = len / 2;
	for (i = 0; i <len2; i++) {
		t = num[i];
		num[i] = num[len - i - 1];
		num[len - i - 1] = t;
	}
	/*
	for (i = 0; i <len2; i++,len2--) {
		t = num[i];
		num[i] = num[len - 1];
		num[len - 1] = t;
	}
	*/
}

3.写一个函数,将两个字符串连接,如字符串1是“BEI”,字符串2是“JING”,连接起来就是“BEIJING”.

// 方法一
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main() {
	char str[50], str2[50];
	printf("请输入第一个字符串:\n");
	scanf("%s", &str);
	printf("请输入第二个字符串:\n");
	scanf("%s", &str2);
	strcat(str,str2);
	printf("\nThe New String is:%s", str);
	return 0;
}
// 方法二
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main() {
	void conn(char str1[], char str2[], char str3[]);
	char str3[50], str1[50], str2[50];
	printf("请输入第一个字符串:\n");
	scanf("%s", &str1);
	printf("请输入第二个字符串:\n");
	scanf("%s", &str2);
	conn(str1, str2, str3);
	printf("\nThe New String is:%s", str3);
	return 0;
}
void conn(char str1[],char str2[],char str3[]) {
	int i, j;
	for (i = 0; str1[i] != '\0'; i++) {
		str3[i] = str1[i];
	}
	for (j = 0; str2[j] != '\0';j++) {
		str3[i + j] = str2[j];
	}
	str3[i + j] = '\0';
}

4.写一个函数,将一个字符串中的元音字母复制到另一个字符串,然后输出。【元音字母:A,E,I,O,U,a,e,i,o,u】

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
	void copy(char str[],char str2[]);
	char str[50], str2[50];
	printf("请输入第一个字符串:\n");
	scanf("%s", &str);
	copy(str,str2);
	printf("COPY的结果:%s",str2);
	return 0;
}

void copy(char str[], char str2[]) {
	int i, j;
	for (i = 0,j=0; str[i] != '\0'; i++) 
	{//!='\0'是不结束的意思
		if (str[i] == 'A'|| str[i] == 'E'|| str[i] == 'I'|| str[i] == 'O'|| str[i] == 'U'|| 
			str[i] == 'a'|| str[i] == 'e'|| str[i] == 'i'|| str[i] == 'o'|| str[i] == 'u') 
		{
				str2[j] = str[i];		
				j++;
		}
	}
	str2[j] = '\0';
}

5.写入一个函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字间空一个空格,如输入2008,应输出“2 0 0 8”。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main() 
{
	char num[10];
	void add(char num[]);
	printf("请输入一个四位数字:\n");
	scanf("%s",&num);
	add(num);
	printf("The Last String is:%s", num);
	return 0;
}

void add(char num[]) 
{
	int i,len;
	len = strlen(num);
	for (i = len; i >0; i--) 
	{//4位数
		num[i * 2] = num[i];   
		num[i * 2 - 1] = ' ';
	}   
}
上一篇:用JS打印三角形


下一篇:hdu 3966 Aragorn's Story : 树链剖分 O(nlogn)建树 O((logn)²)修改与查询