C/C++语言练习题

这是一系列C/C++编程题目,涵盖了基础语法、循环、条件判断、字符串操作、数组处理、指针运用、函数封装、递归、结构体、排序算法等内容,适合初学者提升编程能力。
摘要由CSDN通过智能技术生成

目录

1.打印直角三角形

2.判断2000年到2500年有多少次闰年。

3.用三种循环while、for、do while 求1-100的和

4. 已知三个数a、b、c找最大值放在max中。

5.成绩分级:输入你的成绩90分以及以上等级为A,80-90分等级为B,70-80等级为c,70-60等级为D,60以下等级为E。

6.编写一个程序,用while循环,该程序读取整数,直到输入0,输入终止后,程序应该报告输入的偶数总数(不包括0),偶数平均值,输入的奇数总数以及奇数的平均值。

7.遍历打印出数组的地址,以及数组中各元素的地址。

8.找出二维数组中最大的元素。

9.大小写字母转换

 10.打印平行四边形

 11.字符串翻转

 12.a++与++a,先从右到左运算,再从左到右赋值。a++先赋值再运算,++a先运算再赋值。

 13.利用指针交换两个变量的值。

 14.用指针找出一个数组中最大和最小的元素。

15.代码实现strcpy和strcat

16 去掉一段字符串中的空格

17.函数封装strcat、strcpy

 18.函数封装字符串反转

19.函数指针,封装四则运算。

20.使用函数指针数组封装加减法

21.函数封装完成输入一个数,实现阶乘的功能。

22.递归实现阶乘

24.结构体练习

25.输入一个100 - 1000的数,判断该数是否为水仙花数。

26.输入一个数,数组按该数进行移动,并且打印。

27.将下列按照国家名字排序 china japan italy frech egland

28.随机输入10个整数,将他们按从小到大排序


1.打印直角三角形

#include <stdio.h> 
int main()
{
	int i, j;
	int line;
	printf("请输入三角形的行数:");
	scanf("%d", &line);

	for (i = 0; i <= line; i++) //控制行数
	{
		for (j = 0; j <= i; j++) //控制*的个数 
		{
			printf("*");
		}
		printf("\n");
	}

	return 0;
}

效果如下

 需要理解for循环、for循环嵌套每一步的执行过程,以及*如何限制,“\n”换行该如何打印。

2.判断2000年到2500年有多少次闰年。

#include <stdio.h>
int main()
{
	int year = 2000;
	int count = 0; 
	for(; year <= 2500;year++){
		if(year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)){
			printf("%d年是润年\n",year);
			count++;
		}else{
			printf("%d年非闰年\n",year); 
		}
	}
	printf("2000-2500年有%d次闰年\n",count);
	return 0;
}

需要知道如何判段该年是不是闰年,并且计数,且理解for循环

3.用三种循环while、for、do while 求1-100的和

do while

  #include <stdio.h>
  int main()
  {
  	int i = 0;
  	int sum = 0;
  	
  	do{
  		sum += i;
  		i++;
	  }while(i <= 100);
  	
	printf("thr sum of 100 is %d\n ",sum);
  	return 0;
  }

while

  #include <stdio.h>
  int main()
  {
  	int i = 0;
  	int sum = 0;
  	
  	while(i<=100){
  		sum += i;
  		i++;
	  }
  	
  	
	printf("thr sum of 100 is %d\n ",sum);
  	return 0;
  }

for

  #include <stdio.h>
  int main()
  {
  	int i = 0;
  	int sum = 0;
  	
  	for(;i <= 100; i++){
  		sum += i;
	  }
	printf("thr sum of 100 is %d\n ",sum);
  	return 0;
  }
  

很简单,熟悉几个while、for、do while的格式即可。

4. 已知三个数a、b、c找最大值放在max中。

#include <stdio.h>
int main()
{
	int a,b,c,max;
	
	printf("请输入三个数:");
	scanf("%d %d %d",&a,&b,&c);
	
	if(a > b && a > c){
		max = a;
		printf("三个数中%d最大",a);
	} 
	if(b > a && b > c){
		max = b;
		printf("三个数中%d最大",b);
	} 
	if(c > b && c > a){
		max = c;
		printf("三个数中%d最大",c);
	} 	
	return 0;
}

5.成绩分级:输入你的成绩90分以及以上等级为A,80-90分等级为B,70-80等级为c,70-60等级为D,60以下等级为E。

#include <stdio.h>
int main()
{
	
	float score;
	printf("请输入您的成绩:");
	scanf("%f",&score);
	
	if(score < 0 || score > 100){
		printf("socre is invalid\n");
		return 0;
	}
	
	if(score >= 90){
		printf("您的成绩等级为:A");
	}else if(score < 90 && score >= 80){
		printf("您的成绩等级为:B");
	}else if(score < 80 && score >= 70){
		printf("您的成绩等级为:C");
	}else if(score < 70 && score >= 60){
		printf("您的成绩等级为:D");
	}else{
		printf("您的成绩等级为:E");
	}
	return 0;
}
#include <stdio.h>
int main()
{
	float score;
	printf("请输入您的成绩:");
	scanf("%f",&score);
	
	if(score < 0 || score > 100){
	printf("socre is invalid\n");
	return 0;
	}
	
	int grade;
	grade = score / 10;
	switch(grade){
		case 9:
		printf("A\n");
		break;
		case 8:
		printf("B\n");
		break;
		case 7:
		printf("C\n");
		break;
		case 6:
		printf("D\n");
		break;
		default:
		printf("E\n");
	}
	return 0;
 }

6.编写一个程序,用while循环,该程序读取整数,直到输入0,输入终止后,程序应该报告输入的偶数总数(不包括0),偶数平均值,输入的奇数总数以及奇数的平均值。

#include <stdio.h>
int main()
{
	int num,sum1,sum2,count1,count2;
	float avg1,avg2;
	count1 = 0;
	count2 = 0;
	printf("请输入数:\n");
	scanf("%d",&num);
	
	while(num != 0){
	if(num % 2 == 0){
		sum1 += num;
		count1++;
	}else{
		sum2 += num;
		count2++;
	  }	
	  scanf("%d",&num);			
	}
	
	while(num == 0){
		avg1 = 1.0*sum1/count1;
		avg2 = 1.0*sum2/count2;
		printf("输入的偶数有%d个,偶数平均值为%f\n",count1,avg1);
		printf("输入的奇数有%d个,奇数平均值为%f\n",count2,avg2);
		break;
	}
	return 0;
}

7.遍历打印出数组的地址,以及数组中各元素的地址。

#include <stdio.h>
int main()
{
	int i,a[6];
	int j,b[6];
	
	printf("start address = %p\n",a);
	for(i = 0;i < sizeof(a) / sizeof(int);i++){
		printf("%p ",&a[i]);
	}
	printf("\ntotal:%d bytes\n",sizeof(a));
	
	
	printf("start address = %p\n",b);
	for(i = 0;i < sizeof(b) / sizeof(int);i++){
	    printf("%p ",&b[i]);
	}
	printf("\ntotal:%d bytes\n",sizeof(b));
	
	return 0;
}

8.找出二维数组中最大的元素。

#include <stdio.h>
int main()
{
	int max,i,j;
	int a[3][4] = {
  {66,99,88,44},{110,120,336}};
	max = a[0][0];
	for(i = 0; i < 2; i++){
		for(j = 0;j < 3; j++){//遍历二维数组 
			if(a[i][j] > a[0][0]){//遍历的元素和第一个元素比较,谁大留谁值,再找后面的元素比较 
				max = a[i][j];
			}
		}
	}
	printf("a二维数组中最大的元素是:%d,%d行,%d列。",max,i,j); 
	return 0;
}

9.大小写字母转换

#include <stdio.h>

int main(int argc, char *argv[])
{ 
    char ch1,ch2;

    printf("请输入您要转换的字符:");
    scanf("%c",&ch1);

    if(ch1 >= 65 && ch1 <= 90){
        ch2 = ch1 + 32; 
        printf("%c",ch2);
    }
    if(ch1 >= 97 && ch1 <= 122){
        ch2 = ch1 - 32;
        printf("%c",ch2);
    }
    return 0;
} 

 10.打印平行四边形

#include <stdio.h>
int main()
{
	int line,i,j,k;
	
	printf("请输入边:\n");
	scanf("%d",&line); 
	
	for(i = 0; i <= line;i++){
		for(k = 0; k <= i-1;k++){
			printf(" ");
		}
		for(j = 0; j <= line; j++){
			printf("*");
	
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C/C++语言是一种广泛应用于软件开发的编程语言。它具有高效的执行速度、灵活的语法和强大的功能,被广泛用于嵌入式系统、操作系统、游戏开发等领域。 在C/C++语言的面试中,常见的问题包括以下几个方面: 1. 数据类型:C/C++语言中有各种不同的数据类型,如整型、浮点型、字符型、指针等。面试题可能会涉及到不同数据类型的特点、取值范围、大小等方面的问题。 2. 内存管理:C/C++语言需要手动管理内存,因此面试题可能会涉及到堆和栈的区别、内存泄漏的原因及如何避免等方面的问题。 3. 指针和引用:C/C++语言中指针和引用是非常重要的概念,面试题可能会涉及到指针和引用的区别、使用场景、指针数组等方面的问题。 4. 字符串处理:C/C++语言中,字符串是以字符数组的形式存储的,面试题可能会涉及到字符串的输入、输出、比较、拷贝等方面的问题。 5. 文件操作:C/C++语言提供了丰富的文件操作函数,面试题可能会涉及到文件的打开、读写、关闭等方面的问题。 6. 面向对象编程:C++语言支持面向对象编程,面试题可能会涉及到类、对象、继承、多态等方面的问题。 在准备面试时,除了掌握C/C++语言的基础知识外,还可以多做一些相关的编程练习题,提高自己的编程能力和思维灵活性。通过深入理解C/C++语言的特性和原理,做好面试准备,可以增加面试成功的机会。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值