目录
引言
5-3 数字译码(字符->整数)
5-1 小写转大写(高级版)
tip:
5-2 大写转小写(基础版)
5-4 数字译码(整数->字符)
5-5 学英语(按序号读字母)
5-6
5-7 写出满足下列条件的C表达式。
5-8 写出满足下列条件的C表达式。
5-9
5-10实数的运算*
5-11 实数的运算*
tips:
5-12
5-13
5-14
5-15
5-16
5-17
5-18
5-19
5-20
5-21
5-22
篇尾
为了代码美观,可读性强,注意代码的缩进
下面的程序输入数字字符 ( '0' ~ '9' ),输出对应的整数 ( 0 ~ 9 )。
请在空白处填写适当内容完成该程序。
#include
int main(){
char symbol;
int number;
scanf("%c",&symbol);
number=(int)symbol-48;
printf("%d\n",number);
return 0;
}
下面的程序输入小写字母,输出对应的大写字母。请在空白处填写表达式完成该程序。
#include
#include
int main(){
char lower, upper;
lower=getchar();
upper=toupper(lower);
putchar(upper);
putchar('\n');
return 0;
}
ctype.h 这个库我也不太了解,但是后面有提示用 toupper() 函数
总之,就是一个处理字符的函数库的头文件(书上附录D.2有介绍)
下面的程序输入大写字母,输出对应的小写字母。请在空白处填写表达式完成该程序。
#include
int main(){
char lower, upper;
upper=getchar();
lower=upper+32;
putchar(lower);
putchar('\n');
return 0;
}
下面的程序输入整数 ( 0 ~ 9 ),输出对应的数字字符 ( '0' ~ '9' )。
请在空白处填写适当内容完成该程序。
#include
int main(){
int number;
char symbol;
scanf("%d",&number);
symbol=(char)number+48;
printf("%c\n",symbol);
return 0;
}
为教会大家念英文字母,老师做了一张字母表,给字母编上序号。老师随机报出序号,让大家读出对应的字母。
下面的程序输入序号(1 ~ 26),输出对应的大、小写字母。
#include
int main(){
int number;
char upper, lower;
scanf("%d", &number);
upper=(char)number+64;
lower=(char)number+96;
printf("%c%c\n",upper,lower);
return 0;
}
输入一个正整型数n,计算并输出n以内(包括n)最大的最多不超过10个能被11或19整除的正整数之和。
#include
int main(){
int i,n;
int sum=0;
scanf("%d",&n);
i=0;
while(n>0){
if(n%11==0||n%19==0){
sum=sum+n;
i++;
}
if(i==10) break;
n=n-1;
}
printf("%d\n",sum);
return 0;
}
① ch
是大写英文字母。
ch>='A'&&ch<='z'
② ch
不是小写英文字母。
ch<'a'||ch>'z'
③ ch
是数字字符。
ch>='0'&&ch<='9'
④ ch
是英文字母。
ch>='A'&&<='Z'||ch>='a'&&ch<='z'
① -1
≤x
≤1
x<=1&&x>=-1
② x
<-1或者x
>1
x<-1||x>1
③ -1<x
<1
x<1&&x>-1
④ x
≤-1或者x
≥1
x<=-1||x>=1
⑤ -1<x
≤1
x<=1&&x>-1
写出满足条件10 < x < 100
或者x < 0
的C表达式。
x>10&&x<100||x<0
注意优先级和结合方向,不知道就用括号
假设有以下实型变量定义
double a;
已知 a 为非负实数,若希望完成下面的计算
则计算的表达式为(注:不考虑误差。)
sqrt(a)
假设有以下实型变量定义
double a,b;
已知 a 为非负实数,若希望完成下面的计算
则计算的表达式为(注:不考虑误差。)
pow(a,b)
这两题考的是 math.h 函数库,书附录 D.2 也有介绍
下面这段程序打印输入的整数num的各位数字之和(例如,输入123,则打印6;输入-12则打印3)。请填写空缺的代码。
#include
int main(){
int num;
scanf("%d",&num);
int sum;
sum=0;
if(num<0) num=-num;
while(num>0){
sum+=num%10;
num=num/10;
}
printf("%d\n", sum);
return 0;
}
输入2个整数a和b,交换其值,然后输出a和b的值。
#include
int main(void){
int a,b,temp;
scanf("%d%d",&a,&b);
temp=a;
a=b;
b=temp;
printf("%d %d\n",a,b);
return 0;
}
注意,这到题是后面指针中swap那道题的原型,就是把交换的过程定义成了函数
某程序运行后,几组输入样例和相应的输出样例如下:
请填空完成该程序,使之正常运行能匹配上述用例。
#include
int main(){
int int1, int2;
scanf("%d %d", &int1, &int2);
if(int2 == 0)
printf("Error\n");
else
printf("%d = %d * %d + (%d)\n",int1,int1/int2,int2,int1%int2);
return 0;
}
考思维,找关系
用整数 1
表示”星期一“……整数 6
表示”星期六“,整数 0
表示”星期天“,下列程序根据用户输入的年份和该年 1 月 1 日所属的”星期几“,输出该年 12 月 31 日所属”星期几“。请完成补充下列程序。
【提示】某年份满足以下任一条件时,该年是闰年:1. 该年份能被 4
整除,但不能被 100
整除;2. 该年份能被 400
整除。
#include
int main(){
int year, firstWeekday;
scanf("%d %d",&year,&firstWeekday);
int lastWeekday=(year%4==0&&year%100!=0||year%400==0)?(firstWeekday+365)%7:(firstWeekday+364)%7;
printf("31, December in %d is Weekday No.%d\n", year, lastWeekday);
return 0;
}
有规律,闰年+1,平年不变
假设变量已正确定义并赋值,写出满足下列条件的C表达式。
取number的十位数字:
number/10%10
假设变量已正确定义并赋值,写出满足下列条件的C表达式。
取number的百位数字:
number/100%10
假设变量已正确定义并赋值,写出满足下列条件的C表达式。
number是奇数:
number%2==1
假设变量已正确定义并赋值,写出满足下列条件的C表达式。
number是5的倍数:
number%5==0
程序每次读入两个整数,第一个整数表示今天的星期(星期日,星期一……星期六对应:0,1,.……6),第二个整数表示偏移量(正数向后偏移:多少天以后,负数向前偏移:多少天以前),要求打印现偏移后的星期。如:3+(4):0,6+(-89):1。你可以假定输入的星期x在【0,6】内,测试偏移量确保在整数的范围内。
#include
int main(){
int x,y,i;
for(i=0;i<4;i++){
scanf("%d%d",&x,&y);
printf("%d+(%d):%d\n",x,y,(x+y%7+7)%7);
}
return 0;
}
我不知道 (x+y%7 )%7) 和 (x+y%7+7)%7) 有什么区别,但没有+7就是错了
所有三位数中十位数与个位数之和是偶数的数字有多少个?
请补充下面程序来实现。
#include
int main(){
int count,i,g,s;
count=0;
for(i=100;i<=999;i++){
g=i%10;
s=i/10%10;
if((g+s)%2==0)
count++;
}
printf("%d",count);
}
写出满足下列条件的C表达式。
① x 为零。
x==0
② x 和 y 不同时为零。
x==0||!x(!(x==0&&y==0))||(x!=0||y!=0)||(x||y)
考了很多数据类型的知识,多看看 ASCII码表