C语言上机练习及答案(北航复试练习)(一)

这是一组C语言的上机练习题目,包括计算三个整数的平均值、反向输出三位正整数、字符ASCII码操作、浮点数四舍五入以及统计字符串特殊字符个数等。适合初学者提升编程技能。

第一次作业----计算平均值(以下所有练习环境均是VC6++)

1.问题描述:从键盘输入三个整数,分别存入想x,y,z三个整型变量中,计算并输出三个数的和以及平均值。

#include <stdio.h>
 void main(){
	int a,b,c;
	printf("请输入abc的值……\n");
	scanf("%d%d%d",&a,&b,&c);
	//printf("%d,%d,%d\n",a,b,c);
	int sum=a+b+c;
	printf("输出三个数的和sum:");
	printf("%d\n",c);
	float Ave=(float)sum/3;
	printf("输出平均数Ave:");
	printf("%.2f\n",Ave);
}

2.问题描述:编写一程序,从键盘输入一个三位正整数,然后反向输出对应的数,如果输入的数不是三位正整数,则输出-1。

#include <stdio.h>

void main(){
	int num,i=0,rnum;
	int s[3];
	printf("请输入一个三位数:");
	scanf("%d",&num);
	if(num>=100&&num<=999){
		do{
			s[++i]=num%10;		
			printf("s[]=%d\n",s[i]);
			}while((num=num/10)>0);
		rnum=s[3]+s[2]*10+s[1]*100;
		printf("rnum=%d\n",rnum);
	}else{
		printf("-1\n");
	}
}

3.问题描述—从键盘输入一个字符,求出它的前驱和后继字符(按照ASCII码值排序),并按照从小到大的顺序输出这三个字符对应的ASCII值。

#include <stdio.h>

void main(){
	char c;
	printf("请输入字符c:");
	scanf("%c",&c);
	printf("c-1,c,c+1的ASCII码为:%d,%d,%d\n",c-1,c,c+1);
	printf("c-1,c,c+1为:%c,%c,%c\n",c-1,c,c+1);
}

4.问题描述–编写一个程序,当用户输入一个小数(正值浮点数)后,将小数转化为最近的整数输出(四舍五入)。

#include <stdio.h>

void main(){
	float f;
	printf("请输入f:");
	scanf("%f",&f);
	int a;
	a=f+0.5;
	printf("输出f的整数值a为%d\n",a);

}

5.问题描述—编写一程序,分别计算所输入的字符串中空格,换行符的个数。

#include <stdio.h>
void main(){
	int free=0,lin=0;
	int c;
	while((c=getchar())!=EOF){
		if(c==' '){
			free++;
		}
		if(c=='\n'){
			lin++;
		}
	
	}
	printf("文件中的空格=%d,文件中的换行符=%d\n",free,lin);
}

6.问题描述—假设unsigned short类型占16位,x、y、z都是short类型。编写一程序,从键盘输入x,y的值(十进制形式),然后将x的高八位作为z的高八位,y的高八位作为z的低八位,最后输出z的值(十进制形式)。

#include <stdio.h>
void main(){
	unsigned short int x,y,z;
	printf("请输入x,y:");
	scanf("%hu%hu",&x,&y);
	y=y>>8;
	x=x>>8;
	x=x<<8;
	z=x+y;
	printf("%hu\n",z);
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值