C语言复习1,复习3(跟新到复习3,编程题第3)

填空:
第6题:

#include<stdio.h>
struct man{
	char name[20];
	int age;
}person[3]={
	{"linming",18},
	{"wanghua",19},
	{"zhangping",20}
};
main()
{
	
	struct man *p,*q;
	int old =0;
	p=person;
	for(;p<person+3;p++){
		q=p;
		if(old<p ->age){
			old=p->age;	
		}
		printf("%s %d\n",q->name,q->age);
		
	}
	return 0;
} 

结果:
在这里插入图片描述
结构体的定义:下面跳转网址查看定义

https://blog.csdn.net/mkerj/article/details/86132202?ops_request_misc=%7B%22request_id%22%3A%22158331213619724835852616%22%2C%22scm%22%3A%2220140713.130056874…%22%7D&request_id=158331213619724835852616&biz_id=0&utm_source=distribute.pc_search_result.none-task

解释:创建一个man结构体,person是man的变量,p->name的意思是以指针的方式访问变量(可以想成本来倒好了一杯水,你现在只是拿出来喝)

第1题
我出错了,看答案

第2题

#include<stdio.h>

main()
{
	int a,b,c,i;
	for(i=1;i<=10;i++){
		scanf("%d%d%d",&a,&b,&c);
		if(a%7==0){
			printf("%d",a); 
			break;
		}
	}
	if(i>10)printf("not exist\n"); 
	return 0;
} 

结果:
在这里插入图片描述
输入一次数字按回车,知道符合条件就会跳出程序,并打印响应的结果

第3题

#include<stdio.h>

main()
{
	long a,b,gbs;
	scanf("%ld,%ld",&a,&b);
	gbs=a>b?a:b;
	for(;;gbs++){
		if(gbs%a==0 && gbs%b==0) break;
	}
	printf("gongbeishu is %ld",gbs);
	return 0;
} 

结果:
在这里插入图片描述
第4题

#include<stdio.h>

main()
{
	int b[10],x,i,j=0,n=0;
	scanf("%d",&x);
	while(x>-1) {//当x>-1的时候都可以输入 
		b[++n]=x;
		scanf("%d",&x);
	}
	
	for(i=1;i<=n;i++){//输入多少次就执行多少次 
		if(b[i]%2==0) b[++j]=b[i];//看解析图 
	}	
	
	for(i=1;i<=j;i++) {
		printf("%d\n",b[i]);//打印 
	}
		
	return 0;
} 


解析:图
在这里插入图片描述
结果
在这里插入图片描述
第5题
我选择放弃
第7题

#include<stdio.h>

main()
{
	int a[2][3]={{1,2,3},{4,5,6}},b[3][2];//定义一个数组a是2行3列,一个b数组3行2列
	int i,j;
	printf("array a:\n");
	for(i=0;i<2;i++){//从0开始循环两次,计算机的0就是平时说的第一个 
		for(j=0;j<3;j++){//循环3次 
			printf("%5d",a[i][j]);//打印数组a 
			b[j][i]=a[i][j]*5; //从a数组换到b数组 
		}
		printf("\n");
	} 
	
	printf("array b:\n");
	for(i=0;i<3;i++){
		for(j=0;j<2;j++){
			printf("%5d",b[i][j]);//打印b数组	
		}
		printf("\n");
	}
		
	return 0;
} 

结果
在这里插入图片描述
四,编程题

#include<stdio.h>

main()
{
	float x,y;
	printf("Please Input x:");
	scanf("%f",&x);
	if(x<1) y-4*x;//x小于1
	else if(x<10) y=9*x-5;//x在1到10之间
	else y=10*x +795;//x大于10
	
	printf("x=%f,y=%f\n",x,y); 
		
	return 0;
} 

结果
在这里插入图片描述

复习3
第1题:

https://blog.csdn.net/business122/article/details/82427479
在这里插入图片描述
修正:“字符串”:一个文字占两个字节

第2题:
方法:字符串长度从左边的 “ 号开始,到右边 ”号结束,空格算一个,\ 是转义字符和后面一个字符(字母等)加起来是一个。问字节就加一个空字符\0和第一题类似

第3题:
和第二题方法一样,+ = * /这也算一个字符

第4题:
%是取余数的意思,16除以5的余数

main()
{
	int x=16,y=5;
	printf("x % y=%d\n",x%y);
	printf("x/y=%d",x/y); 
		
	return 0;
} 

结果:
在这里插入图片描述
第5题:

main()
{
	int x=16,y=5;
	printf("x/y=%d\n",x/y); 
	printf("double(x)/y=%lf",double(x)/y);
		
	return 0;
} 


结果
在这里插入图片描述
第6题
先化数字为十进制,题目25已近是十进制。(化10进制的方法:如图)
在这里插入图片描述
十进制化其他进制:十进制除以该进制如图:
在这里插入图片描述
第7题:

https://jingyan.baidu.com/article/e9fb46e1918b157521f766f9.html

由上面链接可得,100为int,3.62为double。此外,3.6为float。

第8题:
a+=b等于a=a+b同理,a*=b等于a=a*b, ++a等于先执行++再执行等号计算,反之a++就是执行完等号再执行++:
在这里插入图片描述
第9题:
循环语句3种:while(条件){执行语句},do{执行语句}while(条件),for(赋值语句(可有可无:看情况);执行条件;i++(可有可无:看情况)){执行语句}

第10题:
在这里插入图片描述
后面一个空自己算一次,不懂就喷。

第11题:
一个整形也就是int类型的数据为4个字节。a数组是一个5行4列的二维数组,那么54=20,204=80;

第12题:
在这里插入图片描述
对着上面的图找

第13题:和12一样的方法

第14题:偶数除以2的余数是0。y%2=0:y除以2取余的意思。

第15题:一个char 占一个字节。64个空间就有64个字节。如果换成long,long占8个,就是64*8=512;

二,选择
.exe是可执行文件。
.cpp是C++的源程序(C的源程序后缀就是.c。在国内,C++一般读作“C加加”;国外的程序员们则读作“C Plus Plus”,即“.CPP”。
在这里插入图片描述
.obj:3D建模

https://baike.baidu.com/item/obj%E6%96%87%E4%BB%B6/3574019?fr=aladdin

第2题:完整的数组定义 :类型 名字[个数]={值}

第3题:参数之间用逗号隔开

第4题:从a的地址开始到整形(4字节),有4个a+4*4

第5题: || 与, 真||真=真 ,假||真=真,真||假=假,假||假=假

第6题:已算

第7题:在这里插入图片描述

第8题:参考复习3选择第一题

第9题:
在这里插入图片描述
A:看黄色箭头,可以变成x,传回的值就是12
B:红色箭头,main函数里有两个,所以可以有多个
C:绿色箭头,参数就是整形的k

第10题:B:void 没有return;C:double 返回的是双精度;D:int 返回的是整型。

第11题:第9题的图,绿色箭头的int k可有可无;ABC都要

三,编程题
第一题:
在这里插入图片描述

#include<stdio.h>

main(int k)
{
	double pi,t=1,a=1,b=1;
	pi=0;
	int n=1;
	while(t>1e-6){
		t*=a/b;
		pi+=t;
		n++;
		a=n-1;
		b=2*n-1;
	}
	pi=pi*2;
	printf("pi=%.10f",pi);
} 


第二题
在这里插入图片描述

#include<stdio.h>

main(int k)
{
	int tax;
	int wage;
	scanf("%d",&wage);
	printf("%d",wage);
	if(wage<800)
		tax=0;
	else if(wage<5000)
		tax=wage*0.03;
	else
		tax=(5000-800)*0.03+(wage-5000)*0.2;
	printf("tax=");
	printf("%d",tax);
} 


图中红色箭头的数据类型和答案不一样,是为了可以输入,我的编译器不一样,用double类型输入不了,按照答案的数据类型即可。

第3题

在这里插入图片描述

#include<stdio.h>

main(int k)
{
	double sum=0,a=1,b=2,t;//sum表示综合,a与b表示某项的分子与分母,t表示项 
	int i=1;
	while(i<=10){
		t=a/b;
		sum+=t;
		i++;
		b=b*2;
		a=b-1;
	}
	printf("sum=%f",sum);
} 

选择排序

#include<iostream>
using namespace std;

main()
{
	void select_sort(int array[],int n); 	//函数声明 
	int a[10];
	int i;						//声明一个数组a,和一个变量i
	cout<<"enter the original array:"<<endl;//输入数组 
	for(i=0;i<10;i++){
		cin >> a[i];
	}
		
	cout << endl;
	select_sort(a,10);
	
	cout << "正在排序。。。" << endl;
	
	for (i=0;i<10;i++)
		cout<<a[i]<<"  ";
		//prinft("第%d个数字是%d",i,a[i]);
	cout << endl;
	
	return 0;
} 

void select_sort(int array[],int n){
	int i,j,k,t,ii,ll;
	for(i=0;i<n-1;i++){
		k=i;
		for(j=i+1;j<n;j++){
			if(array[j]<array[k]) k=j;
		}
		t=array[k];
		array[k]=array[i];
		array[i]=t;
		
		
		for (ii=0;ii<10;ii++)
			cout<<array[ii]<<"  ";
	
		cout<< "/n" <<endl;
		
	}
	
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值