如果你已经学完了判断、循环还未学习数组、指针等相关语法时,下面的试题适合你做阶段测试,如果可以做出其中的7道以上就可以认为阶段性的学习已经合格了,可以继续学习更复杂的语法了。在我的博客中有相应的讲解和答案,希望读者可以借鉴并提出宝贵的修改意见。

1.信息打印
要求:
(1) 定义3个int型变量存工人工号,定义3个char变量,存工人性别,定义3个float变量,存工人工资。
(2) 要求用户可以依次输入工号(一个5位数),性别(‘M’代表男,‘F’代表女),工资。
(3) 连续输入3组数据
(4) 输入结束后,程序输出相应的信息如下:

编号     工号      性别        工资
1        10000       男        1000.00
2        10001       女        1100.00
3        10002       男        1500.00

2.计算矩形的周长和面积
要求:
(1) 在提示下,用户输入矩形的长和宽。
(2) 输出矩形的周长和面积。
(3) 涉及的所有数据均为double类型

3.计算器
要求:
(1) 在提示下,用户先输入运算符号。
(2) 在提示下,用户分别输入两个数(double类型)。
(3) 根据用户的输入,计算出相应的结果,并显示到屏幕上,结果保留3位小数。

4.打印图形
要求:
(1) 打印以下图形
*
**
***
****
*****
(2) 打印以下图形
*******
*****
***
*

5.公式计算
要求:
(1) 根据公式f(n) = 1 + 1/2 + 1/3 + ...... + 1/n。(n > 0)
(2) 用户指定任意的n,均可以计算出结果。
(3) 用户如果输入非法,程序可以给出提示。

6.请用户输入一个数字如果此数字在1-127之间的话,打印此数字ASCII码对应的字符,如果不在1-127之间的话,打印“输入数据不在1-127之间,是不可显示字符!!!”。

7.请实现如下功能:请用户输入1-12之间的一个数,表示一年中的12个月,如果用户输入的数在2-4的话,打印“春天”,输入的数在5-7的话,打印“夏天”,输入的数在8-10的话打印“秋天”,输入的数是11、12或1的话,打印“冬天”。(请使用switch语句实现)
 
8.编程打印出100-999间所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身。例如:153是一个水仙花,因为153=13+53+33

 

 

参考程序:

1.信息打印

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int codeA = 0;
    int codeB = 0;
    int codeC = 0;
    char genderA;
    char genderB;
    char genderC;
    float salaryA = 0;
    float salaryB = 0;
    float salaryC = 0;
   
    printf("请输入工号:");
    scanf("%d", &codeA);
    fflush(stdin);
    printf("请输入性别:");
    scanf("%c", &genderA);
    printf("请输入工资:");
    scanf("%f", &salaryA);
   
    printf("请输入工号:");
    scanf("%d", &codeB);
    fflush(stdin);
    printf("请输入性别:");
    scanf("%c", &genderB);
    printf("请输入工资:");
    scanf("%f", &salaryB);
   
    printf("请输入工号:");
    scanf("%d", &codeC);
    fflush(stdin);
    printf("请输入性别:");
    scanf("%c", &genderC);
    printf("请输入工资:");
    scanf("%f", &salaryC);
   
    printf("\n编号    工号     性别     工资\n");
    printf(" 1      %d     %c     %0.2f\n", codeA, genderA, salaryA);
    printf(" 2      %d     %c     %0.2f\n", codeB, genderB, salaryB);
    printf(" 3      %d     %c     %0.2f\n", codeC, genderC, salaryC);
   
    system("pause");
    return 0;
}

 

2.计算矩形的周长和面积

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    double lenth = 0;
    double width = 0;
   
    printf("请输入矩形的长和宽,用逗号隔开:");
    scanf("%lf,%lf", &lenth, &width);
    printf("矩形的周长为:%lf\n", 2 * (lenth + width));
    printf("矩形的面积为:%lf\n", lenth * width);
   
    system("pause");
    return 0;
}

 

3.计算器
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
 double num1 = 0;
 double num2 = 0;
 double result = 0;
 char opr;

 printf("Please input operator:(+ - * /)");
 scanf("%c", &opr);
 printf("Please input first number:");
 scanf("%lf", &num1);
 printf("Please input secode number:");
 scanf("%lf", &num2);

 switch(opr)
 {
 case '+': result = num1 + num2; break;
 case '-': result = num1 - num2; break;
 case '*': result = num1 * num2; break;
 case '/': result = num1 / num2; break;
 default: printf("Operator error!\n");
 }

 printf("\n%lf %c %lf = %0.3lf\n\n", num1, opr, num2, result);
 
 system("pause");
 return 0;
}

 

4.打印图形

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int i = 0;
    int k = 0;
   
    //图案一
    for(i = 0 ; i < 5 ; i++)
    {
        for(k = 0 ; k <= i ; k++)
        {
            printf("*");
        }
        printf("\n");
    }
   
    //隔开两个图案
    printf("\n\n");
   
    //图案二
    for(i = 0 ; i < 4 ; i++)
    {
        for(k = 0 ; k < 7 - i * 2 ; k++)
        {
            printf("*");
        }
        printf("\n");
    }
   
    system("pause");
    return 0;
}

 

5.公式计算
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int n = 0;
    int i = 0;
    double result = 0;
   
    printf("请输入n的值:");
    scanf("%d", &n);
    for(i = 1 ; i <= n ; i++)
    {
        //这里必须使用1.0不能使用1
        result = result + 1.0 / i;
    }
    printf("结果为:%lf\n", result);
   
    system("pause");
    return 0;
}

 

6.请用户输入一个数字如果此数字在1-127之间的话,打印此数字ASCII码对应的字符,如果不在1-127之间的话,打印“输入数据不在1-127之间,是不可显示字符!!!”。

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int ch = 0;
   
    printf("请输入一个数:");
    scanf("%d", &ch);
    if(ch > 127 || ch < 1)
    {
        printf("输入数据不在1-127之间,是不可显示字符!!!\n");
    }
    else
    {
        printf("%c\n", ch);
    }
   
    system("pause");
    return 0;
}



7.请实现如下功能:请用户输入1-12之间的一个数,表示一年中的12个月,如果用户输入的数在2-4的话,打印“春天”,输入的数在5-7的话,打印“夏天”,输入的数在8-10的话打印“秋天”,输入的数是11、12或1的话,打印“冬天”。(请使用switch语句实现)

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int month = 0;
   
    printf("请输入一个月份:");
    scanf("%d", &month);
    switch(month)
    {
    case 2:
    case 3:
    case 4: printf("春天\n"); break;
   
    case 5:
    case 6:
    case 7: printf("夏天\n"); break;
   
    case 8:
    case 9:
    case 10:printf("秋天\n"); break;
   
    case 11:
    case 12:
    case 1: printf("冬天\n"); break;
   
    default: printf("输入错误\n");                 
    }
   
    system("pause");
    return 0;
}


 
8.编程打印出100-999间所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身。例如:153是一个水仙花,因为153=13+53+33

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int a = 0;   //存储个位
    int b = 0;   //存储十位
    int c = 0;   //存储百位
    
    for(int i = 100 ; i < 1000  ; i++)
    {
        a = i % 10;      //获得个位上的数
        b = i / 10 % 10; //获得十位上的数
        c = i / 100;     //获得百位上的数
       
        if(a * a * a + b * b * b + c * c * c == i)
        {
            printf("%d是水仙花数\n", i);    
        }
    }
   
    system("pause");
    return 0;
}