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+个服务提 ...
随机推荐
- 使用c语言实现的常用函数
/* 为了面试准备的,有些在工作中也可以用用,本人算法方面比较欠缺,如果有更优秀的算法麻烦告诉我啊 */ /* strcat的实现 */ #include <assert.h> char* ...
- 实训随笔2:Git Gui——拯救菜鸟的工具
熟练使用git进行多人协作开发,是程序猿必备的专业技能之一,可惜我等实在太菜搞不来复杂的命令行. 幸好除了Git Bash还有一个Git gui存在——专门为了拯救我们这些菜鸡程序猿而存在的工具. 下 ...
- SharePoint 2013 set site mailbox
Automating Site Mailboxes in SharePoint 2013 and Exchange 2013 One of the completely new features to ...
- Django 开发拓展 auth 模块,注册用户时发生 ValueError: The given username must be set
原因 使用局部钩子函数 _clean_fields() 对 username.email 字段进行验证时,未返回,具体请参考 _clean_fields() 函数源码. def clean_usern ...
- lightoj1009【DFS】
思路: 连通快+二分图,每次+二分图大的元素个数. #include<bits/stdc++.h> using namespace std; typedef unsigned long l ...
- ue4 retarge记录
动画重定位(相同骨骼) https://docs.unrealengine.com/latest/CHN/Engine/Animation/AnimationRetargeting/index.htm ...
- AI决策算法 之 GOAP (一)
http://blog.csdn.net/lovethrain/article/details/67632033 本系列文章内容部分参考自:http://gamerboom.com/archives/ ...
- 洛谷P1337 [JSOI2004]平衡点 / 吊打XXX(模拟退火)
传送门 先坑着,联赛活着回来的话我就写(意思就是我绝对不会写了) //minamoto #include<cstdio> #include<cmath> #include< ...
- Spark系列视频
大数据生态圈很大,很多开发者都仅仅接触到某个单一产品. Spark 是近年来比较流行的大数据计算框架,系统.平台要想用好Spark 这个产品,需要用到很多的产品. 本视频系列主要是为准备入坑大数据的童 ...
- 源码构建Apollo以及改造
1. 下载release版本 本次构建的是1.4.0的版本 2. 初始化数据库信息 数据库表信息 2.1 修改注册中心配置 初始化数据库表后,需要修改 ApolloConfigDB.ServerCon ...