C语言刷题笔记 day006 2021.8.23

本文探讨了逻辑运算符&&的短路行为,合法标识符的规则,C语言中函数递归和数组传递的示例,字符数组初始化的细节,以及一系列C程序的执行结果和代码解析。涉及的关键知识点包括逻辑短路、标识符命名、C语言函数调用和数据结构应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.设 x 和 y 均为逻辑值,则 x && y 为真的条件是

解析:

它们均为真

&& 短路与 要两个都为真

|| 短路或 一个为真就可以

2.下列字符串为合法标识符的是

解析:

_1_A

标识符是由 数字 字母 下划线组成

区别大小写

不能使用关键字

不能数字开头

3.有以下C语言程序

#include   <stdio.h>
int fun(int  x[], int  k)
{  
if(k==0) 
  return (x[0]);
return  x[0]+fun(x+1, k-1);
}
int main()
{  int  x[ ]={1,2,3,4,5};
printf("%d\n", fun(x,3));
}

程序运行后的输出结果是

解析:

10

函数递归调用

数组作为参数传递的是数组首元素的第一个地址

4.字符初始化.char ch[7]={'s ’ , 't ’ , 'u ', 'd ', 'e ', 'n ‘, ’ t’ } ; 能得到"student"的输出(不包含其他字符),说法是否正确?

解析:错误

字符串就是以字符形式存储

但为了确定实际的字符串长度系统会默认在字符串末尾加‘\0’作为结束标志

题中的做法其实也是正确的

不过习惯在后面加‘\0’

5.以下代码

int x (int n) {
    if (n <= 3)
        return 1;
    else
        return x (n - 2) + x (n - 4) + 1;
}
int main (void) {
    printf ("%d\n", x (x (8)));
    return 0;
}

的输出和x函数被调用的次数分别是?

解析:9和18

函数的递归调用

算就完了

6.在C语言中,若有定义:int a [4] [10] (其中0<=i<4,0<=j<10); 则下列选项中对数组元素a [i] [j] 引用错误的是

解析:*** (a+i)+j**

这种方式得到的是地址而不是值

*(a+i)= a[i]

a[i]+j = a[i] [j]

7.以下程序的输出结果是

#include 
main()
{ int
i=0,a=0;
while(i<20)
{ for(;;)
{
if((i%10)==0) 
  break;
else i--;
}
i+=11; a+=i;
}
printf("%d\n",a);
}

解析:32

8.阅读程序,请选择输出结果

#include <iostream>
using namespace std;

int main() {
    int i, u[4], v[4], x, y = 10;
    for (i = 0; i <= 3; i++) {
        cin >> u[i];
    }
    v[0] = (u[0] + u[1] + u[2] + u[3]) / 7;
    v[1] = u[0] / ((u[1] - u[2]) / u[3]);
    v[2] = u[0] * u[1] / u[2] * u[3];
    v[3] = v[0] * v[1];
    x = (v[0] + v[1] + 2) - u[(v[3] + 3) % 4];
    if (x > 10)
        y += (v[2] * 100 - v[3]) / (u[u[0] % 3] * 5);
    else
        y += 20 + (v[2] * 100 - v[3]) / (u[v[0] % 3] * 5);
    cout << x << "," << y << endl;
    return 0;
}

	


<iostream.h>
//本例中,给定的输入数据可以避免字母为0或下标越界。输入:9 3 9 4 输出:()
</iostream.h>

解析:-13,57

9.下面程序的输出结果是

#include <iostream>
using namespace std;
int i = 0;
int fun( int n )
{
    static int a = 2;
    a++;
    return(a * n);
}


int main()
{
    int k = 5;
    {
        int i = 2;
        k += fun( i );
    }
    k += fun( i );
    cout << k;
    return(0);
}

解析:11

10.()和()指令是#if defined() 和#if !defined()的方便写法

解析:

  • #ifdef
  • #ifndef
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值