IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言100题进阶(11~20) -> 正文阅读

[C++知识库]C语言100题进阶(11~20)

C语言100题进阶(11~20)

11.13个人围成一圈,从第一个人开始顺序报数,1,2,3。凡报到3者退出圈子。找出最后留在圈子中的人原来的序号。要求用循环链表处理。
不会
12.拆分实数的整数与小数部分:要求自定义一个函数void splitfloat(float x, int *intpart, float *fracpart),其中x是被拆分的实数,intpart和fracpart分别是将实数x拆分出来的整数部分与小数部分。编写主函数,并在其中调用函数splitfloat()。

//12.拆分实数的整数与小数部分:要求自定义一个函数
//void splitfloat(float x, int *intpart, float *fracpart)
//其中x是被拆分的实数,*intpart和*fracpart分别是将实数x拆分出来的整数部分与小数部分
//编写主函数,并在其中调用函数splitfloat()。
#include<stdio.h>
void splitfloat(float x, int *intpart, float *fracpart)
{
	*intpart=x/1;
	*fracpart=x-*intpart;
}
main()
{
	float x,xiao;
	float *fracpart=&xiao;
	int zheng;
	int *intpart=&zheng;
	scanf("%f",&x);
	splitfloat(x,intpart,fracpart);
	printf("%d,%f",*intpart,*fracpart);
}

13.动态内存分配的方法实现冒泡排序

//13.动态内存分配的方法实现冒泡排序
#include<stdio.h>
#include<stdlib.h>
main()
{
	int n,i,j,temp;
	int *a;
		scanf("%d",&n);
		a=(int *)malloc(n*sizeof(int));
	if(a==NULL)
		printf("kong");
	for(i=0;i<n;i++)
		scanf("%d",a+i);
	for(i=0;i<n-1;i++)
		for(j=0;j<=i;j++)
		{
			if(*(a+j)>*(a+j+1))
			{
				temp=*(a+j);
				*(a+j)=*(a+j+1);
				*(a+j+1)=temp;
			}
		}
		for(i=0;i<n;i++)
		{
			printf("%d ",a[i]);
		}
}

14.编写一个函数New,对n个字符开设连续的存储空间,此函数应返回一个指针(地址),指向字符串开始的空间。New(n)表示分配n个字节的内存空间。
不会

15.猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。
第二天早上又将剩下的桃子吃年一半,又多吃一个。以后每天早上都吃了前一天剩下的一半多一个。
到第10天早上想再吃时,见只剩下一个桃子。求第一天一共摘了多少个桃子

//15.猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个
//第二天又将剩下的桃子吃一半,又多吃一个,以后每天都吃了前一天剩下的一半多一个
//到第10天想再吃时,见只剩下一个桃子。求第一天一共摘了多少个桃子
#include<stdio.h>
int num()
{
	int all=1,day;
	for(day=1;day<11;day++)
		{
			all=(all*2)+1;
		}
	printf("%d",all);
}
main()
{
	num();
}

16.输入一个任意长(>2)的字符串和一个长度为2 的字符串,用函数编程统计长度为2的字符串在任意长字符串中出现的次数。

//16.输入一个任意长(>2)的字符串和一个长度为2 的字符串
//用函数统计长度为2的字符串在字符串中出现的次数
#include<stdio.h>
main()
{
	int i,j=0;
	char str[100],stri[2];
	gets(str);
	gets(stri);
	for(i=0;i<100;i++)
		if(str[i]==stri[0]&&str[i+1]==stri[1])
			j++;
	printf("%d",j);
}

17.建立简单的静态链表。

//17.建立简单的静态链表
#include <stdio.h>
#define NULL0 
struct  student 
	{long num; float  score; struct  student *next;}; 
void main(  ) 
	{struct student a,b,c,*head,*p; 
	a.num=99101;a.score=89.5; b.num=99102;b.score=90; 
	c.num=99103;c.score=85;head=&a;a.next=&b;b.next=&c; 
	c.next=NULL; p=head; 
	do
	{
		printf("%ld  %5.1f\n",p->num,p->score); 
        p=p->next; 
	}while(p!=NULL); 
}

18.编写递归函数:
n+1 m=0
akm= akm(m-1,1) m≠0,n=0
akm(m-1,akm(m,n-1)) m≠0,n≠0
说明:m和n从键盘任意输入,输入数据时,先输入的是m的值,后输入的是n的值

#include<stdio.h>
akm(int m,int n)
{
	if(m==0)
		n+=1;
	else if(m!=0&&n==0)
		akm(m-1,1);
	else if(m!=0&&n!=0)
		akm(m-1,akm(m,n-1));
}
main()
{
	int n,m;
	scanf("%d%d",&m,&n);
	akm(m,n);
}

19.通过键盘输入下面表格中学生的信息,编程计算并输出4门课程平均成绩最高的学生记录。其中,m表示男,f表示女。

#include<stdio.h>
struct student
{
	int num;
	char name[20];
	char sex;
	int age[3];
	int ach[4];
}stu[4];
main()
{
	int i,j,big_name;
	char big=0.0,a=0.0;
	for(i=0;i<4;i++)//输入数据 
	{
		printf("the:%d\t",i+1);
		scanf("%d %s %c %d",&stu[i].num,&stu[i].name,&stu[i].sex,&stu[i].age[0]);
		scanf("%d %d %d %d",&stu[i].age[1],&stu[i].age[2],&stu[i].ach[0],&stu[i].ach[1]);
		scanf("%d %d",&stu[i].ach[2],&stu[i].ach[3]);}
	for(i=0;i<4;i++)
	{
		printf("%d\t%s\t%c\t%d\t",stu[i].num,stu[i].name,stu[i].sex,stu[i].age[0]);
		printf("%d\t%d\t%d\t%d\t",stu[i].age[1],stu[i].age[2],stu[i].ach[0],stu[i].ach[1]);
		printf("%d\t%d\n",stu[i].ach[2],stu[i].ach[3]);}
	for(i=0;i<4;i++)//选出平均分最高的学生 
	{
		a=stu[i].ach[1]+stu[i].ach[2]+stu[i].ach[3];
		a=a/5;
		if(a>big)
			big=a,big_name=i;
	}
	i=big_name;//输出平均分最高的学生数据 
	printf("\n\nthe best:\n");
	printf("%d\t%s\t%c\t%d\t",stu[i].num,stu[i].name,stu[i].sex,stu[i].age[0]);
	printf("%d\t%d\t%d\t%d\t",stu[i].age[1],stu[i].age[2],stu[i].ach[0],stu[i].ach[1]);
	printf("%d\t%d\n",stu[i].ach[2],stu[i].ach[3]);
}

20.编程统计候选人的得票数。设有3个候选人zhang、li、wang(候选人姓名不区分大小写),10个选民,选民每次输入一个得票的候选人的名字,若选民输错候选人姓名,则按废票处理。选民投票结束后程序自动显示各候选人的得票结果和废票信息。要求用结构体数组candidate表示3个候选人的姓名和得票结果。

//20.编程统计候选人的得票数。设有3个候选人zhang、li、wang(候选人姓名不区分大小写
//10个选民,选民每次输入一个得票的候选人的名字,若选民输错候选人姓名,则按废票处理
//选民投票结束后程序自动显示各候选人的得票结果和废票信息
//要求用结构体数组candidate表示3个候选人的姓名和得票结果
#include<stdio.h>
#include<string.h>
struct candidate
{
	char name[20];
	int num;
}peo[3]={{"zhang",0},{"li",0},{"wang",0}};
main()
{
	int i,j,wrong=0;
	char a[10];
	for(i=0;i<10;i++)//判断票数 
		{
		scanf("%s",a);
		if(strcmp(a,peo[0].name)==0)
			peo[0].num=peo[0].num+1;
		else if(strcmp(a,peo[1].name)==0)
			peo[1].num=peo[1].num+1;
		else if(strcmp(a,peo[2].name)==0)
			peo[2].num=peo[2].num+1;
		else wrong+=1;
		}
	for(i=0;i<3;i++)
	{
		printf("%s ",peo[i].name);
		printf("%d\n",peo[i].num);
	}
	printf("wrong:%d",wrong);
}
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-13 17:16:52  更:2021-07-13 17:18:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/5 16:09:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码