• 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;
    }
  • 相关阅读:
    在Window上Vim包的选择
    如何在apache官网下载将将jar包
    hdu1870
    hdu1710(Binary Tree Traversals)
    poj 3252 Round Numbers 【推导·排列组合】
    3905
    Find them, Catch them
    Argus
    Team Queue
    Terrible Sets
  • 原文地址:https://www.cnblogs.com/wqaz-0-1-2-3/p/13287008.html
Copyright © 2020-2023  润新知