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+个服务提 ...
随机推荐
- storm事件管理器EventManager源码分析-event.clj
storm事件管理器定义在event.clj中,主要功能就是通过独立线程执行"事件处理函数".我们可以将"事件处理函数"添加到EventManager的阻塞队列 ...
- CF 148D D Bag of mice (概率dp)
题目链接 D. Bag of mice time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- IOC模式及Unity框架文章收藏
1.IoC模式:http://www.cnblogs.com/qqlin/archive/2012/10/09/2707075.html 通过Unity实现IOC容器. 2.深入理解DIP.IoC.D ...
- 开源:基于Android的室内定位WiFi,iBeacon数据采集和定位脚本
最近有同学联系我,也在一些群里看到有新手同学挣扎在怎么获取定位数据,不知从何下手.所以整理并开源这个基于Android的数据采集软件和基于python的KNN定位demo,算是为新手同学建立一个Bas ...
- Unicode编码下字符串转换
VC\MFC当中CString.string.char.char*.char数组.int等类型之间的转换令人晕头转向,特地搜集多篇文章资料,利用代码实例等清晰的理清他们之间的关系和如何转换,其实非常简 ...
- Unity5 AssetBundle资源管理架构设计
http://blog.csdn.net/qq_19399235/article/details/51702964 1:Unity5 资源管理架构设计(2017.4.22版本) 2:Android 热 ...
- Silhouette-Outlined Diffuse
http://wiki.unity3d.com/index.php/Silhouette-Outlined_Diffuse A variant of Outlined Diffuse 3 showin ...
- 洛谷P1439 排列LCS问题
P1439 排列LCS问题 题目描述 给出1-n的两个排列P1和P2,求它们的最长公共子序列. 输入输出格式 输入格式: 第一行是一个数n, 接下来两行,每行为n个数,为自然数1-n的一个排列. 输出 ...
- 免打包:简单、灵活、便捷的APP渠道统计方法
相信做过APP运营推广的小伙伴们应该对APP渠道统计并不陌生吧.APP推广运营人员需要根据数据来评估渠道推广的效果,找到最适合自家APP的渠道,有针对性的投放,不断完善推广策略,这样才能更加精准.有效 ...
- elasticsearc 参考资料
_source 和store http://stackoverflow.com/questions/18833899/in-elasticsearch-what-happens-if-i-set-st ...