C基础的练习集及测试答案(1-15)
练习题:
注:标有(课堂)字样的为课上练习,其他为课下练习
基础题(50题)
1、(课堂)编写程序,输出“XXX欢迎来到动物园!”(XXX是自己的名字)。
//1、(课堂)编写程序,输出“XXX欢迎来到动物园!”(XXX是自己的名字)。 #include<stdio.h>
#define N 20
int main(){
char ch[N]={};
//while(gets(ch)!=NULL){
//puts(姓名);
gets(ch);
puts(ch);
puts("欢迎来到动物园"); //} return ;
}

//1、(课堂)编写程序,输出“XXX欢迎来到动物园!”(XXX是自己的名字)。 #include<stdio.h>
#define N 20
int main(){
char ch[N]={};
scanf("%s",ch);
printf("%s欢迎来到动物园",ch); //} return ;
}

2、(课堂)打印用*组成的字母C
//2、(课堂)打印用*组成的字母C
#include<stdio.h> int main(){ printf(" ***\n");
printf(" * *\n");
printf("*\n");
printf("*\n");
printf("*\n");
printf(" * *\n");
printf(" ***\n");
return ;
}

3、交换杯子里的液体。使用不同的整数代表液体,变量代表杯子。
(课堂)方法1:中间变量法
(课堂)方法2:三步异或法
方法3:加和分减法
#if 0
交换杯子里的液体。使用不同的整数代表液体,变量代表杯子。
(课堂)方法1:中间变量法
(课堂)方法2:三步异或法
#endif #include<stdio.h> void fun1(int *i,int *j){
int temp;
temp=*i;
*i=*j;
*j=temp; }
void fun2(int *i,int *j){
*i^=*j;
*j^=*i;
*i^=*j;
}
int main(){ int i=,j=;
printf("i=%d,j=%d\n",i,j);
fun1(&i,&j);
printf("i=%d,j=%d\n",i,j);
fun2(&i,&j);
printf("i=%d,j=%d\n",i,j); return ;
}

4、(课堂)使用宏定义PI来定义3.1415926,计算圆的面积。
//4、(课堂)使用宏定义PI来定义3.1415926,计算圆的面积。
#include<stdio.h>
#define PI 3.1415926
int main(){
int length,perimiter;
scanf("%d",&length);
perimiter=length**PI;
printf("周长:%d",perimiter);
}

5、(课堂)租船问题。
写程序计算游客需要付的租船的费用。租船每小时30元。游客输入租船时间,计算出租船费用。租船费用=时间*每小时钱数+押金。
要求押金与每小时钱数使用宏定义。
#if 0
、(课堂)租船问题。
写程序计算游客需要付的租船的费用。租船每小时30元。游客输入租船时间,计算出租船费用。租船费用=时间*每小时钱数+押金。
要求押金与每小时钱数使用宏定义。
#endif
#include<stdio.h>
#define unit 30
#define deposite 100 int main(){
int time,total;
printf("请输入时间");
scanf("%d",&time);
total=time*unit+deposite;
printf("总价:%d",total);
return ;
}

6、(课堂)求以下数字的原码、反码、补码。(可以使用计算器)
15(10进制)
0xE3A4(16进制)
一、正整数的原码、反码、补码完全一样,即符号位固定为0,数值位相同
二、负整数的符号位固定为1,由原码变为补码时,规则如下:
      、原码符号位1不变,整数的每一位二进制数位求反,得到反码
      、反码符号位1不变,反码数值位最低位加1,得到补码
7、输入一个整数(0~255),输出这个整数代表的ASCII码字符。
#if 0
、输入一个整数(~),输出这个整数代表的ASCII码字符。
  解题思路:
  以%c形式输入以%d形式输出
  以%d形式输入以%c形式输出
#endif
#include<stdio.h> int main(){
char ch;
while(){
scanf("%d",&ch);
printf("%c\n",ch); } return ;
}

7_1、输入整数代表的ASCII码字符,输出这个一个整数(0~255)。
#if 0
7_1、输入整数代表的ASCII码字符,输出这个一个整数(~)。
  解题思路:
  以%c形式输入以%d形式输出
  以%d形式输入以%c形式输出
#endif
#include<stdio.h> int main(){
char ch;
while(){
scanf("%c",&ch);
getchar();
printf("%d\n",ch);
} return ;
}

8、输入一个字符,判断这个字符是0~9之间的数字,还是大写字母,还是小写字母。若都不是输出错误信息。
#if 0
、输入一个字符,判断这个字符是0~9之间的数字,还是大写字母,还是小写字母。若都不是输出错误信息。
  解题思路:
  多分支条件判断:
 #endif
 #include<stdio.h>
 int main(){
     char ch;
     scanf("%c",&ch);
     if(ch>='a'&&ch<='z'){
         printf("%d是小写字母",ch);
     }else if(ch>='A'&&ch<='Z'){
         printf("%d是大写字母",ch);
     }else if(ch>=''&&ch<=''){
         printf("%d是数字",ch);
     }else{
         printf("%d是特殊字符",ch);
     }
     return ;
 }

9、计算输入时间的下一秒。例如输入12 15 32,输出12:15:33;输入21 59 59,输出22:00:00。若输入非法时间(如输入小时是25、输入分钟/秒是61等情况)则报错。
#if 0
、计算输入时间的下一秒。例如输入12 ,输出12::;输入21 ,输出22::。
若输入非法时间(如输入小时是25、输入分钟/秒是61等情况)则报错。
  解题思路:
  一。多分支判断输入数据是否合法:
  二。数据转换规则:
	  秒加一
	  如果秒加一大于59
	  则秒归零,分加一,此时如果分大于59
	  则分归零,时加一,此时如果时大于23
	  则时归零
  错误分析:
  一。数据转换不是多分支判断;
#endif #include<stdio.h>
void print(int time){
printf("%d:错误数值",time);
} int main(){
int hour,minute,second;
scanf("%d %d %d",&hour,&minute,&second); //判断数据是否合法
if(>hour||hour>){
print(hour);
return ;
}else if(>minute||minute>){
print(minute);
return ;
}else if(>second||second>){
print(second);
return ;
} if((++second)>){
second=;
if((++minute)>){
minute=;
if((++hour)>){
hour=;
}
}
}
printf("%d,%d,%d",hour,minute,second);
return ;
}

10、(课堂)练习:从键盘输入5个学生的成绩(整数),要求输出总成绩(整数)和平均成绩(小数)
//10、(课堂)练习:从键盘输入5个学生的成绩(整数),要求输出总成绩(整数)和平均成绩(小数)
#include<stdio.h> int main(){ int stu1,stu2,stu3,stu4,stu5;
int sum;
float ave;
scanf("%d %d %d %d %d",&stu1,&stu2,&stu3,&stu4,&stu5);
sum=stu1+stu2+stu3+stu4+stu5;
ave=(float)sum/;
printf("sum=%d,ave=%f",sum,ave);
return ;
}

11、(课堂)读以下程序,猜想输出的结果,再执行程序检验自己的猜想
#include <stdio.h>
int main(void)
{
	double y;
	float a = 2.0;
	int b =6,c=3;
	y = a*b/c-1.5+'A';
	printf("%f\n",y);
	return 0;
}

12、(课堂)读以下程序,猜想输出的结果,再执行程序检验自己的猜想
#include <stdio.h>
int main()
{
	int i = 8,j = 10,k = 12;
	int m,n,p;
m = ++i;
	n = j--;
	p = (++m)*(n++)+(--k);
	printf("i=%d,j=%d,k=%d\n",i,j,k);
	printf("m=%d,n=%d,p=%d\n",m,n,p);
	return 0;
}

13、(课堂)设
int a=3,b=4,c=5,d;
分别求出下列表达式的d的值(即判断此表达式真假)
333应该加括号
1)d = a+b>c && b==c
2)d = a || b+c && b-c
3)d = !(a>b) && !c || 1
4)d = !(x=a)&&(y=b)&&0(x和y均为int型,求出x和y的值)
5)d = !(a+b)+c-1 && b+c/2
14、(课堂)输入3个整数,从小到大输出
  #if 0
  14、(课堂)输入3个整数,从小到大输出
  解题思路:
  将所有的项遍历,两两对比所有项。
  #endif
#include<stdio.h>
void jiao(int *a,int *b){
(*a)^=(*b);
(*b)^=(*a);
(*a)^=(*b);
} int main(){
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
if(a>b){
jiao(&a,&b);
}
if(a>c){
jiao(&a,&c);
}
if(b>c){
jiao(&b,&c);
}
printf("%d %d %d",a,b,c);
return ;
}

15、(课堂)输入3个正整数作为3条线段的长度,判断这3条线段能否构成三角形。构成三角形的条件是:任意两边之和大于第三边
  #if 0
  15、(课堂)输入3个正整数作为3条线段的长度,判断这3条线段能否构成三角形。
  构成三角形的条件是:任意两边之和大于第三边
  解题思路:
  对三边长度进行排序
  找到三边中较短的两边,此两边之和大于第三边则可构成第三遍
  #endif
#include<stdio.h>
void jiao(int *a,int *b){
(*a)^=(*b);
(*b)^=(*a);
(*a)^=(*b);
} int main(){
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
if(a>b){
jiao(&a,&b);
}
if(a>c){
jiao(&a,&c);
}
if(b>c){
jiao(&b,&c);
}
//printf("%d %d %d",a,b,c);
if((a+b)>c){
printf("%d %d %d 可以构成三角形",a,b,c);
}else{
printf("%d %d %d 不可以构成三角形",a,b,c);
}
return ;
}

C基础的练习集及测试答案(1-15)的更多相关文章
- C基础的练习集及测试答案(提高题)
		
提高题:1.编写程序,随机生成一个1~10内的数,让对方猜3次.如果3次内能猜中则输出“恭喜你”:若3次内猜不中则输出正确答案.C语言中提供生成随机数的函数rand()用法:①所需头文件:#inclu ...
 - C基础的练习集及测试答案(40-50)
		
40.(课堂)打印杨辉三角型前10行 #if 0 40.(课堂)打印杨辉三角型前10行 思路分析: 一.打印十行杨辉三角得第十行长度为十,所以建立一个长度为十的数组,作为每行的数据存储 二.按 0-9 ...
 - C基础的练习集及测试答案(31-39)
		
31.读懂以下程序,说明程序的功能#include<stdio.h>int main(){ int m,n,r,m1,m2; printf("请输入2个正整数:"); ...
 - C基础的练习集及测试答案(16-30)
		
16.(课堂)输入一个年份(正整数),判断这年是否是闰年.闰年判断标准:年份能被4整除:如若遇到100的倍数,则需判断年份能否被400整除.(逢4一闰,逢百不闰,逢400又闰) #if 0 .(课堂) ...
 - ML基础 : 训练集,验证集,测试集关系及划分  Relation and Devision among training set, validation set and testing set
		
首先三个概念存在于 有监督学习的范畴 Training set: A set of examples used for learning, which is to fit the parameters ...
 - Python sklearn拆分训练集、测试集及预测导出评分  决策树
		
机器学习入门 (注:无基础可快速入门,想提高准确率还得多下功夫,文中各名词不做过多解释) Python语言.pandas包.sklearn包 建议在Jupyter环境操作 操作步骤 1.panda ...
 - zookeeper部署及集群测试
		
zookeeper部署及集群测试 环境 三台测试机 操作系统: centos7 ; hostname: c1 ; ip: 192.168.1.80 操作系统: centos7 ; hostname: ...
 - hdu 1829 基础并查集,查同性恋
		
A Bug's Life Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) To ...
 - Dubbo入门实例 本地伪集群测试Demo
		
1. 概述 Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案 Dubbo是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提 ...
 
随机推荐
- 要把target下面虚拟路径的项目文件…
			
源码进不去,要检查target下面的项目文件,要删除掉. 版权声明:本文为博主原创文章,未经博主允许不得转载.
 - FZU 2057 家谱(dfs)
			
Problem 2057 家谱 Accept: 129 Submit: 356Time Limit: 1000 mSec Memory Limit : 32768 KB Problem ...
 - windows64位如何安装pyspider并运行
			
1.下载whl文件: http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml 2.安装该文件 3.可能碰到问题,pip的版本低了,需要更新一下pip的版本.更新 ...
 - Laravel中使用Session存取验证码信息
			
1.将验证码存储到session中. $request->session()->put('validate_code',$validateCode->getCode());//存储信 ...
 - Working Experience - WPF XAML 报错 - 命名空间中不存在该名称
			
问题 编辑 xaml 时,VS 提示一个存在的类不存在(如:命名空间"xxx"中不存在"xxx"名称). 运行环境 Windows 版本:Window 10 V ...
 - 数据可视化系列--svg入门基础(一)
			
一.前言 1.SVG(Scalable Vector Graphics)可伸缩矢量图形 特点: (1)使用xml格式来定义图形: (2)用来定义web上的使用的矢量图: (3)改变图像尺寸,图片质量不 ...
 - jmter介绍及安装
			
一. Apache JMeter介绍 1. Apache JMeter是什么 Apache JMeter 是Apache组织的开放源代码项目,是一个100%纯Java桌面应用,用于压力 ...
 - 8.Python初窥门径(文件操作)
			
Python (文件操作) 一.文件操作方式 打开文件 open 操作文件 read or write 关闭文件 close 二.打开文件的方式(第一种) 语法 : f=open("文件&q ...
 - Python小世界:彻底搞懂Python一切皆对象!!!
			
前言 犹记得当初学习Python的时候,对于Python一切皆对象很是懵逼,因为Python是面向对象的动态型语言,而在函数及高阶函数的应用中,如若对于一切皆对象不是有很透彻的了解,基础不是那么牢固的 ...
 - Domination
			
题目链接 #include <bits/stdc++.h> using namespace std; typedef long long ll; inline ll read(){ , f ...