C和指针课后练习题4

1、下面表达式是否合法?如果合法,他执行什么任务?

  3* x * x - 4 * x + 6;

  合法;他只是执行了表达式求值,但是他的结果并不存于任何地方。

2、赋值语句的语法?

  数据类型 变量名 = 表达式;    // 表达式可以理解为一个值或一个计算公式

如:y=x+1

3、用下面的方法使用代码块是否合法?如果合法,你想怎么用?

..........

statement
{
    statement
    statement
}

statement

 合法;如果你需要为所附语句引入临时变量,但希望将对变量的访问限制为仅限于这些语句,那么这将非常有用。

4、当你编写if语句时,如果在then子句中没有语句,但在else字句中有语句,你该如何编写?你还能用其他形式来达到同样效果么?

 

1 if(表达式)
2     ;
3 else
4     语句;
1 if(表达式)
2     语句;

5、下面循环体将会产生什么样的输出?

1 int i;
2 .....
3 for(i=0;i<10;i++)
4     printf("%d
",i);

输出结果:0
     1
       2
       3
       4
       5
       6
       7
       8
       9

6、什么时候使用while语句比使用for语句方便?

  当循环次数未知的情况下,使用while语句方便

7、下面代码片段用于把标准输入复制到标准输出,并计算字符的检验和(checksum),他有什么错?

1 while ((ch=getchar()!=EOF)
2     checksum +=ch;
3     putchar(ch);
4 printf("Checksum=%d
",checksum);

 程序容易进入死循环。

8、什么时候使用do语句比使用while语句更加合适?

 要求循环体至少执行一次的情况下。

9、下面代码将会产生什么结果?

 1 #include<stdio.h>
 2 int main()
 3 {
 4         int i;
 5         for (i=1;i<4;i++)
 6         {
 7                 switch(i%2){
 8                         case 0:
 9                                 printf("even
");
10                         case1:
11                                 printf("odd
");
12                 }
13         }
14         return 0;
15 }
运行结果:even
        odd
              

 10、编写一些语句,从标准输入读取一个整型值,然后打印一些空白,空白行的数量由这个值指定。

#include <stdio.h>  
int main()
{
        int m;
        printf("Please enter a number:");
        scanf("%d",&m);
        for(int i=0;i<m;i++)
        {
                printf("
");
        }
        return 0;
}

 11、编写一些语句,用于对一些已经读入的值进行检验和报告。如果x小于y,打印单词WRONG。同样,如果a大于或等于b,也打印WRONG。在其他情况下,打印RIGHT。

 1 #include <stdio.h>
 2 int main()
 3 {
 4         int x,y,a,b;
 5         printf("输入4个整数:");
 6         scanf("%d,%d,%d,%d",&x,&y,&a,&b);
 7          
 8         if ((x<y)||(a>=b))
 9                 printf("WRONG
");
10         else
11                 printf("RIGHT
");
12         return 0;
13 
14 }

12、能被4整除的年份是闰年,但其中能被100整除的却不是闰年,除非它同时能被400整除。编写语句,判断年份是否为闰年,如果是把变量leap_year设为1,否则为0.

 1 #include<stdio.h>
 2 int main()
 3 
 4 {
 5         int year,leap_year;
 6         printf("输入一个年份:");
 7         scanf("%d",&year);
 8         if(year%4==0)
 9         {
10                 if(year%100==0&&year%400==0)
11                         leap_year=1;
12                 else if(year%100==0&&year%400!=0)
13                         leap_year=0;
14         }
15         else
16                 leap_year=0;
17         printf("leap_year=%d
",leap_year);
18         return 0;
19 }

13、新闻记者都受过训练,善于提问谁?什么?何时?何地?为什么?清编写一些语句,如果变量which_word的值是1,就打印who;为2,就打印what;依次类推。如果变量的值不在1~5之内就打印don‘t know。

 1 #include<stdio.h>
 2 int main()
 3 
 4 {
 5         int i;
 6         printf("Please enter a number(1~5):");
 7         scanf("%d",&i);
 8         switch(i)
 9         {
10                 case 1:
11                         printf("who
");
12                         break;
13                 case 2:
14                         printf("what
");
15                         break;
16                 case 3:
17                         printf("when
");
18                         break;
19                 case 4:
20                         printf("where
");
21                         break;
22                 case 5:
23                         printf("why
");
24                         break;
25                 default:
26                         printf("don't know
");
27                         break;
28         }
29         return 0;
30 }

14、假定一个程序来控制你,而且这个程序包含两个函数:eat_hamberger()用于让你吃汉堡,hunger函数根据你是否饥饿返回真假值。编写一条语句允许你在饥饿感得到满足之前爱吃对少就吃多少汉堡。

while(hungry())
    {
    
        eat_humberger();
    }

15、修改问题14,让你至少吃一次汉堡。

do
    {
        eat_humberger();
    }

while(hungry())

16、编写一些语句,根据变量precipitating和temperture的值打印当前天气的简单总结。

如果precitating为 而且tempreture是 那就打印
true

<32

>=32

snowing

raining

false

<60

>=60

cold

warm

#include<stdio.h>
int main()

{
        int pre,tem;
        printf("precipiting=");
        scanf("%d",&pre);
        printf("tempreture=");
        scanf("%d",&tem);
        if(pre)
                {
                        if(tem<32)
                                printf("snowing
");
                        else
                                printf("raining
");
                }
        else
                {
                        if(tem<60)
                                printf("cold
");
                        else
                                printf("warm
");
                }
    
        return 0;
}
原文地址:https://www.cnblogs.com/wqaz-0-1-2-3/p/13287008.html