欢迎光临散文网 会员登陆 & 注册

C Primer Plus Test 6(1)

2020-08-10 22:05 作者:啷个里格朗郎郎  | 我要投稿

试题来源:C Primer Plus (第6版)中文版

本章主要学习循环语句的使用。

6.1编写一个程序,创建一个包含26个元素的数组,并在其中存储26个小写字母。然后打印数组的所有内容。

#include<stdio.h>

#include<stdlib.h>

int main(){

    char ch[26];

    char c;

    int i;

    for (i = 0; c = 'a'; c <= 'z'; i++, c++){

        ch[i] = c;

    }

    for (i = 0; i < 26; i ++){

        printf("%c\t", ch[i]);

    }

    printf("\n");

    system("pause");

    return 0;

}

6.1运行结果

6.2使用嵌套循环,按下面的格式打印字符:

$

$$

$$$

$$$$
$$$$$

#include<stdio.h>

#include<stdlib.h>

int main(){

    int i, j;

    for (i=1; i<6; i++){

        for(j=0; j<i; j++){

            printf("$");

        }

        printf("$");

    }

    system("pause");

    return 0;

}

6.2运行结果

6.3 使用嵌套循环,按下面格式打印字母:

F

FE

FED

FEDC

FEDCB

FEDCBA

#include<stdio.h>

#include<stdlib.h>

int main(){

    char ch;

    int i, j;

    for(i=1; i<7; i++){

        ch = 'F";

        for(j=i; j>0; j--){

            printf("%c", ch--);

         }

        printf("\n");

    }

    system("pause");

    return 0;

}

6.3运行结果

6.4 使用嵌套循环,按下面的格式打印字母:

A

BC

DEF

GHIJ

KLMNO

PQRSTU

#include<stdio.h>

#include<stdlib.h>

int main(){

    char ch = 'A';

    int i, j;

    for(i=1; i<7; i++){

        for(j=0; j<i; j++){

            printf("%c", ch++);

        }

        printf("\n");

    }

    system(“pause");

    return 0;

}

6.4运行结果

6.5 编写一个程序,提示用户输入大写字母,使用嵌套循环以下面

金字塔型的格式打印字母:  

A

ABA

ABCBA 

ABCDCBA

ABCDEDCBA

打印这样的图形,要根据用户输入的字母来决定,例如上面的图像是在用户输入

E后的打印结果。

提示:用外层循环处理行,每行使用3个内层循环,分别处理空格、以升序打印字母、

以降序打印字母。

#include<stdio.h>

#include<stdlib.h>

int main(){

    char ch, nul, f_ch;

    int i, j, k, d, m;

    printf("Enter a zimu:");

    scanf("%c", &ch);

    d = ch - 'A' + 1; //计算空格数

    nul = ' '; //空格

    for(i=0; i<d; i++){

        f_ch = 'A';

        for(j=1; j<d-i; j++){

            printf(" %c", nul);

        }

        for (k=0; k<i+1; k++){

            printf("%c", f_ch++);

        }

        f_ch --;

        for(m=0; m<i; m++){

            printf("%c", --f_ch);

        }

    }

    system("pause");

    return 0;

}

6.5运算结果

6.6 编写一个程序,打印一个表格,每行打印一个整数、该数的平方、该数的立方。要求用书输入表格的上下限。使用一个for循环。

# include<stdio.h>

#include<stdlib.h>

int main(){

    int max, min;

    int i;

    print("Enter the max:");

    scanf("%d", &max);

    print("Enter the min:")

    scanf("%d", &min);

    print("number\tsquare\tcube\n");

    for (i=min; i<=max; i++){

        printf("%6d\t%6d\t%4d\n", i, i*i, i*i*i);

    }

    system('pause");

    return 0;

}

6.6运行结果

6.7 编写一个程序把一个单词读入一个字符数组中,然后倒序打印这个单词。提示:strlen()可用于计算数组最后有一个字符的下标。

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

#define MAX 20

int main(){

    char str, ch[MAX];

    int i, status;

    printf("Enter a word");

    scanf("%s", ch);

    for(i=strlen(ch)-1; i>=0; i--){

        printf("%c", ch[i]);

    }

    printf("\n");

    system("pause");

    return 0;

}

6.7 运行结果

6.8 编写一个程序,要求用户输入两个浮点数,并打印两数之差除以两数乘积的结果。在用户输入非数字之前,程序应循环处理用户输入的每对值。

#include<stdio.h>

#include<stdlib.h>

int main(){

    float num1, num2, d, x,e;

    int status;

    printf("Enter two float number:");

    status = scanf("%f %f", &num1, &num2);

    while(status == 2){

        if(num1 > num2){

            d = num1 - num2;

        }else{

            d = num2 - num1;

        }

        x = num1 * num2;

        e = d / x;

        printf("%f\n", e);

        printf("Enter two float(other to quit):");

        status = scanf("%f %f", &num1, &num2);

    }

    printf("Bye\n");

    return 0;

}

6.8运行结果

6.9 修改6.8,用一个函数返回计算的结果。

#include<stdio.h>

#include<stdllib.h>

 float End(float num1, float num2){

    float d, x, e;

    if(num1 > num2){

        d = num1 - num2;

    }else{

        d = num2 - num1;

    }

    x = num1 * num2;

    e = d / x;

    return e;

}

int main(){

    float num1, num2;

    int stauts;

    printf("Enter tow float numbers:");

    status = scanf("%f %f", &num1, &num2);

    while(status == 2){

        printf("%f\n", End(num1, num2));

        printf("Enter two float (other to quit):");

        status = scanf("%f %f", &num1, &num2);

    }

    printf("Bye\n");

    return 0;

}

6.9运行结果


C Primer Plus Test 6(1)的评论 (共 条)

分享到微博请遵守国家法律