测试题:
0. 请问下边代码将打印多少个 'A'?
10, j没有重置为0
1. 请问下边代码会打印多少个 'B'?
0,i++的值先为0才自增
2. 请写出表达式 a = b = c = 5 中的"l-value"?
a
3. 请问表达式 a = (b = 3, 4, c = b++ + 5, ++c + ++b); 执行后,整型变量 a、b、c 的值是?
14, 5, 9
4. 请使用条件运算符求出变量 x 的绝对值,并存放到变量 z 中。#include <stdio.h>
float abs(float x){
if(x>=0){
return x;
}
else{
return -x;
}
}
int main(){
printf("%d, %d, %f, %f", (int)abs(66), (int)abs(-66), abs(3.14), abs(-9.9));
}
5. C 语言其实在大部分情况下不使用 goto 语句也能做得很好,请尝试将下列代码段写成不带 goto 语句的版本。A.
if (size > 12)
{
cost = cost * 1.05;
flag = 2;
}
bill = cost * flag;
B.
if (ibex > 14)
{
sheds = 3;
}
sheds = 2;
help = 2 * sheds;
C.
scanf("%d", &score);
if (score < 0)
{
printf("count = %d\n", count);
}
count++;
continue;
动动手:
0. 请编写一个程序,计算需要多少年黑夜手头的 Money 才会超过小甲鱼?#include <stdio.h>
int main(){
float h = 10000.0, j = 10000.0;
int year = 0;
while(h<=j){
year++;
j = j + 10000.0*0.1;
h = h*0.05 + h;
// printf("j: %f\th: %f\n", j, h);
}
printf("%d年后,投资超过!\nj的投资额是:%.2f\nh的投资额是:%.2f\n", year, j, h);
return 0;
}
1. 请编写一个程序,计算需要多久小甲鱼才会败光所有家产,再次回到一贫如洗?
#include <stdio.h>
#define TOTALMONEY 4000000
int main(){
int year=0;
float money=TOTALMONEY;
for(year; money>0; year++){
money-=500000;
money+=money*0.08;
}
printf("%d年之后败光家产\n", year);
return 0;
}
2. 根据以下已知公式求 Pi 的近似值,要求正确计算出小数点后前 7 位(即3.1415926)。
#include <stdio.h>
#include <math.h>
#define ACCURACY 8
int main(){
double pi, div=1.0, accuracy=pow(10, ACCURACY);
// CPU拉满
for(div; fabs(div)<accuracy; div+=4){
pi += (1/div);
}
div=-3;
for(div; fabs(div)<accuracy; div-=4){
pi += (1/div);
}
pi*=4;
printf("Pi: %.7f\n", pi);
return 0;
}
3. 这是一个有趣的古典数学问题:如果说兔子在出生两个月后,就有繁殖能力,在拥有繁殖能力之后,这对兔子每个月能生出一对小兔子来。假设所有兔子都不会死去,能够一直干下去,那么两年之后可以繁殖多少对兔子呢?
#include <stdio.h>
#define TIMELIMIT 12
//#define MULT_DELAY 2
//#define DEATH_AGE -1
int rabbit_mult(int time){
if(time==1||time==2){
return 1;
}
else{
return rabbit_mult(time-1) + rabbit_mult(time-2);
}
}
int main(){
int time=TIMELIMIT;
long long int rabbits;
rabbits=rabbit_mult(time);
printf("%d兔子已生成\n", rabbits);
return 0;
}
|