【学习ios之路:C语言】循环方面试题

1.打印出如下所示图形  :

*

*  *

* * *

代码如下:

    for (int i = 0; i < 3; i++) {

        for (int j = 2; j > i; j--) {
            printf(" ");
        }
       for (int k = 0; k < i + 1; k++) {
            printf(" *");
        }
        printf("\n");

    }

2. 打印出如下图形:

*

*   *

*  *  *

*   *

*

代码如下:

    for (int i = 0; i < 5; i++) {

        if (i < 3) {
             //前三行,即先打印出图形上半部分
            for (int j = 0; j < 2- i; j++) {
                printf(" ");
            }
            for (int  k = 0 ; k < i + 1 ; k++) {
                printf("* ");
            }
            printf("\n");
        } else {

           //后两行,图形下半部分
            for (int j = 0; j < i-2; j++) {
                printf(" ");
            }
            for (int k = 0; k < 5- i; k++) {
                printf("* ");
            }
            printf("\n");
        }

    }
     

3.从控制台输入一个整数,判断是否是质数.

   <span style="font-size:14px;">  int n = 0, m = 0;
    printf("please input a int number:\n");
    scanf("%d", &n);
    for (m = 2; m < n ; m++) {
        if (n % m == 0  ){
            printf("不是质数:%d",n);
            break;//结束本层循环,循环结束.
        }
    }//循环结束后.
    if (m == n) {
        printf("是质数\n");
    }</span>

补充:

c语言中如何取出随机数:

随机公式:[a,b]范围在a-b之间的随机数

int n3 = arc4random() % ( b - a + 1) + a;

4.随机产生 20 个[10    ,    100]的正整数,输出这些数以及他们中的最大数

 <span style="font-size:14px;">int max = 0;int temp = 0;
    for (int j =0; j < 20; j++) {
        temp = arc4random() % 91 +10;

        if( max < temp){
            max = temp;
        }

    }
    printf("the max  is %d\n", max);</span>
    

5.编程将所有“水仙花数”打印出来,并打印其总个数。 “水仙花数”是一个 各个位立方之和等于该整数的三位数。

 <span style="font-size:14px;">   int x = 0;//百位数
    int y = 0;//十位数
    int z = 0;//个位数
    for (int num = 100; num <= 999; num++) {
        x = num / 100;
        y = num / 10 % 10;
        z = num % 10 ;
        if (num == (x*x*x + y*y*y + z*z*z)) {
            printf("水仙花数为:%d\n",num);
        }
    }</span>

6.输入两个数,求最大公约数和最小公倍数。(用两种方法:辗转相除法和普通方法)

<span style="font-size:14px;">    int a = 0;
    int b = 0;
    int yushu = 0;
    printf("please intput two numbers :\n");
    scanf("%d%d", &a, &b);

    //辗转相除法
    int max = 0, min = 0;
    max = a > b ? a : b;//判断ab大小,把大的值给max.最为被除数
    min = a > b ? b : a;//最为除数.
    yushu = max % min;
    while (yushu != 0) {
        max = min ;
        min = yushu;
        yushu = max % min ;
    }
    printf("最大公约数为:%d\n", min);
    printf("最大公倍数为:%d\n", (a * b) / min);

   //普通方法
    for (int i = 1; i <= min; i++) {
        if (max % i == 0 && min % i == 0) {
            yue=i;
        }
    }
    printf("最大公约数为:%d\n", yue);
    printf("最小公约数:%d\n",(a*b)/yue);
</span>

7.求 n 个随机数里的最小值

<span style="font-size:14px;">    int min = 0, temp = 0, n =0;
    printf("please intput a number N:\n");
    scanf("%d", &n);
    for (int j = 0; j < n; j++) {
        temp = arc4random() % (15 - 10 + 1) + 10;
        if (j == 0) {
            min = temp;
        } else if( min > temp){
            min = temp;
        }
    }
    printf("the min is %d\n", min);</span>
时间: 2024-10-24 12:37:07

【学习ios之路:C语言】循环方面试题的相关文章

【学习ios之路:C语言】数组.循环.语句总和运用试题练习

1).求一个数组中的第二大值.数组中的值范围10 - 30 ,存储空间大小为10. 代码如下: int a[10] = {0}; int max = 0, secMax = 0; //定义第一大值,第二大值. for (int i = 0; i< 10; i++) { a[i] = arc4random() %(30 - 10 + 1) + 10;//随机值 10-30 printf("a[%d] = %d\n" ,i ,a[i]); } for (int i = 0 ; i &

【学习ios之路:C语言】If循环的应用的练习

1.求三个数中的最大值 <span style="font-size:14px;"></span><pre name="code" class="cpp"><span style="font-size:14px;"> //方法1:先找到两个数的最大值,然后用最大值和第三个进行比较.</span> int n1 = 0, n2 = 0 ,n3 = 0 ; printf(

【学习ios之路:C语言】C语言中容易出错的试题整理.

注:此类题都是比较基础的试题,但是都容易让人忽视,或者平常不在意的. 1.表达式3.6-5/2+1.2+5%2的值是(D). A. 4.3  B. 4.8  C.3.3  D. 3.8 2.设有说明:char w;int x;float y;double z;则表达式w*x+z-y值的数据类型为:(D) A. float   B. char  C. int  D. double 3.以下关于运算符优先顺序的描述中正确的是:(C) A.关系运算符<算术运算符<赋值运算符<逻辑与运算符  

【学习ios之路:C语言】小程序:实现类似ATM取款机功能.

小程序:模拟ATM机取款的过程 1).定义两个能保存5个整形数的数组,一个用于保存5个人的卡号,一个用于保存对应卡号的密码 2).判断输入的卡号是否在数组中. 3).如果在数组中就让输入密码,判断是否和卡号对应的密码匹配. 4).判断密码,24小时内只允许输入3次错误的密码.输入错误应该提示还剩下的输入次数,3次都输入错误提示24小时内不允许操作该卡. 5).密码正确就让用户对该账户进行相应的操作. 6).注意取款的限制. 7).述功能对于一个ATM机是循环的过程,也就是说每个客户都会按照上面的

【学习ios之路:C语言】指针

指针 1.指针定义,即简单用法. <span style="font-size:14px;"> //指针变量:专门用来存储地址的变量. int *p = NULL;//NULL == 0 /** * 变量定义时: * (int *):指针类型 * p: 变量名 NULL:初始值. * NULL(指向了一个无效的区域) * *的作用: 告诉编译器,后面变量是指针变量,用来存储地址. * int作用: 1.当通过指针变量取数据时,一次性读取几个字节的数据. 2.当指针变量+1时

【学习ios之路:C语言】总结整理:学好Object-C---C语言必备知识点

一.基本数据类型.常量.变量.运算符 1.数据类型 int. short.char.long.float.double. 2.常量的分类.(1).整型常量 (2)浮点型常量 (3)字符常量 (4)字符串常量. 3.常量的特性:常量存储在常量区,常量区的内容不可被更改. 4.变量的定义与本质.数据类型 变量名 = 初值 . 本质变量就是一个容器. 5.变量名的命名规范 6.运算符. (1)赋值运算符 = (2)算数运算符 +  -  *  /  %  ++  -- (3)复合运算符  +=  -+

【学习ios之路:C语言】一维数组,数组排序,字符数组

1.数组 数组,快速定义多个变量. 数组定义: 数据类型 数组名[数组元素的个数] = {值1, 值2, 值 3}; 数组所占存储空间大小 = 数组元素个数 * 每个元素所占的存储空间大小. %lu  unsigned long 无符号的长整型. 无符号 >=0 sizeof 存储大小值  //用来计算一个变量,类型,以及数组所占存储空间的大小. int a[5] = { 2, 7, 4, 3, 6 };  printf("%lu\n", sizeof(arr)); //5 in

【学习ios之路:C语言】②高级指针应用

1.指针与字符数组 <span style="font-size:14px;"> /** 定义字符串的2种方式 * 1.利用数组 * char name[] = "itcast" * *特点:字符串里面的字符是可以修改的 * *使用场合:字符串的内容需要经常修改. * 2.利用指针 * char *name = "itcast"; * *特点:字符串其实是一个常量字符串,里面的字符是不能修改的; * *使用场合:字符串内容不需要修改,

【学习ios之路:C语言】存储区内存划分

一. 内存存储区的划分: 1.栈区:栈区主要存放函数内部定义的变量,数组.函数调用时,开辟空间,函数执行完毕,回收空间,空间的开辟与回收有系统管理. 2.堆区:堆区最大的特点:空间的开辟与释放有开发人员手动管理. 3.全局区静态区:主要存放函数外部定义的全局变量以及静态变量,空间一旦开辟,就不会回收.直到应用程序执行结束. 4.常量区:存储常量.1.整形常量.2.浮点型常量.3,字符串常量.4.字符串常量. 5.代码区:存放程序编译之后生成的cpu指令. 二.malloc,在堆区开辟空间. //