首页 > 其他分享 >刷c语言练习题5(牛客网)

刷c语言练习题5(牛客网)

时间:2024-10-09 11:23:03浏览次数:14  
标签:练习题 选项 语言 10 int 牛客 类型 test 解析

1、若有定义int a[8];,则以下表达式中不能代表数组元素a[1]的地址的是()

A、&a[0]+1

B、&a[1]

C、&a[0]++

D、a+1

答案:C

解析:C选项中&a[0]是一个地址常量,对地址常量的赋值操作是不合法的,错误。

2、 以下函数值的类型是:

fun ( float x )

{ float y;

y= 3*x-4;

return y;

}

A、int

B、不确定

C、void

D、float

答案:A

解析:在C语言中,返回类型不写默认为int类型,如果return的类型与函数类型不符,以函数类型为准,所以选择选项A。

3、执行以下语句后b的值为:

  int a=5,b=6,w=1,x=2,y=3,z=4;

  (a=w>x)&&(b=y>z);

A、16

B、0

C、1

D、6

答案:D

解析:根据运算符的优先级,首先计算第一个括号中的内容,又 > 的优先级大于 = ,故先判断 w > x ,为假则 a = 0,第一个式子返回值为零。根据短路法则,第二个式子不会执行,所以 b = 6 不变,选择选项D。 

4、有函数定义:

1

2

void test(int a){} 

void test(float a){} 

则以下调用错误的是:

A、test(1);

B、test(‘c’);

C、test(2+’d’);

D、test(0.5);

答案:D

解析:D选项中,test(0.5)参数默认为double类型,调用函数时既可以匹配int类型也可以匹配float类型,造成类型模糊,改为test(0.5f)可以解决问题,选择选项D。

5、 下面代码的输出结果是?

1

2

3

4

5

6

7

#include <stdio.h>

int main() {

    int z, x = 5, y = -10, a = 4, b = 2;

    z = x++ - --y * b / a;

    printf("%d\n", z);

    return 0;

}

A、5

B、6

C、10

D、11

E、12

答案:C

解析:本题考查运算符的优先级。自增自减的优先级最高,首先进行x++和--y,++为后++,先取x的值为5,然后x自加为6,进行--y,y变为-11。式子可以化为 z = 5 - -11 * 2 / 4,现在式子中*和/的优先级最高,结合顺序从左往右,得到结果为-5.5,舍去小数位得-5。所以最终z = 5 - (- 5) = 10,选择选项C。

6、 若变量a是int类型,并执行了语句a=’A'+1.6;,则正确的叙述是()

A、a的值是字符C

B、a的值是浮点型

C、不允许字符型和浮点型相加

D、a的值是字符’A’的ASCⅡ值加上1

答案:D

解析:等式右边'A'转为对应的ASCII码与1.6进行运算,运算后得到的结果为double类型,将这个值赋给一个int型的变量,相当于进行一次强制转换,会丢失精度变为98。所以选择选项D。

7、 在上下文和头文件正常的情况下,以下C语言指令:

1

2

3

int a[5] = {1,3,5,7,9};

int *p = (int *)(&a+1);

printf("%d,%d",*(a+1),*(p-1));

运行结果是什么?

A、2,1

B、3,1

C、3,9

D、运行时崩溃

答案:C

解析:代码的第二行中,对&a相当于升维度,变成一个行指针,加一之后指向下一行的首地址。所以指针*(p-1)实际上是指向数组a最后一个元素的,*(a+1)等价于a[1],故选择选项C。

8、有以下一段代码

1

2

3

4

5

6

7

8

9

#include <stdio.h>

char* fun() {

    char a[] = "hello world";

    return a + 6;

}

int main() {

    printf("%s", fun());

    return 0;

}

请问程序最后输出结果是()

A、world

B、hello world

C、结果未知或者程序崩溃

D、程序崩溃

答案:C

解析:被调函数中定义的数组存放在栈区,当函数结束后,空间会被释放,因此返回的地址是一个无效地址,所以会导致结果未知或者程序崩溃,选择选项C。

9、 下列C程序执行后c输出结果为( )(32位)

1

2

3

4

5

6

7

8

9

#include<stdio.h>

#include<stdlib.h>

void main()

{

  int a = -3;

  unsigned int b = 2;

  long c = a + b;

  printf("%ld\n", c);

}

A、-1

B、4294967295

C、0x7FFFFFFF

D、0xFFFFFFFF

答案:A

解析:无符号整数与有符号整数进行运算结果为无符号整数,-1在计算机中以补码的形式存储,为0xFFFFFFFF。输出时是以十进制数形式输出,那么就还要进行取反加一的操作,找到0xFFFFFFFF是哪个数的补码,所以最后的输出结果为-1,选择选项A。

10、已有如下定义和输入语句,若要求a1、a2,c1、c2的值分别为10、20、A和B,

当从第一列开始输入数据时,正确的数据输入方式是()

1

2

int a1,a2;char c1,c2;

scanf("%d%c%d%c",&a1,&c1,&a2,&c2);

A、10A□20□B↙

B、10□A□20□B↙

C、10A20B↙

D、10A20□B↙

答案:C

解析:考查scanf输入的结束条件:空格、tab、回车、非法字符,当输入整数后,按空格会结束整数的输入,但空格会留在缓冲区中。当继续读入字符时,会直接将空格读入,造成错误,所以输入这四个数时不要在中间输入空格,选择选项C。 

标签:练习题,选项,语言,10,int,牛客,类型,test,解析
From: https://blog.csdn.net/a921876874/article/details/142774044

相关文章

  • 十分钟学会微调大语言模型
    有同学给我留言说想知道怎么训练自己的大语言模型,让它更贴合自己的业务场景。完整的大语言模型训练成本比较高昂,不是我们业余玩家能搞的,如果我们只是想在某个业务场景或者垂直的方面加强大模型的能力,可以进行微调训练。本文就来介绍一种大语言模型微调的方法,使用的工具是我......
  • Go 语言变量数据类型
    Go语言变量数据类型Go语言是一种静态类型语言,这意味着每个变量都有一个明确的数据类型。在Go语言中,主要的数据类型包括整型、浮点型、布尔型和字符串。下面,我将分别介绍这些数据类型,并提供其在程序中的应用场景、原理,以及相应的代码示例。整型(int)介绍整型用于存储整......
  • 自然语言处理问答系统:智能交互的未来
    在人工智能和自然语言处理(NLP)技术快速发展的今天,问答系统已成为人机交互的重要方式。本文将深入探讨自然语言处理问答系统的工作原理、关键技术、应用场景以及未来发展趋势。1.什么是自然语言处理问答系统?自然语言处理问答系统是一种能够理解人类自然语言提问,并从大规模......
  • C语言 实现 unix时间戳转换到自定义 tm结构体
    之前使用ESP32写了一个闹钟,免得我老是把手机闹钟给滑了就不知该起床了原本想用标准库解决的,但是这个时间一直不准,逼得用SNTP获取了步进单位为(second)的时间戳,然后使用GPtimer来维持时间戳才算是把精准计时给解决了废话不多说,直接上代码typedefstruct{intyear;......
  • 【C语言小型项目实践】:初学者到中级水平的计算器项目
    目录一、计算器项目1.1.功能描述1.2.技术要点 二、代码实现2.1.代码说明2.2.注意事项 三、测试用例3.1.基本运算3.2.括号与优先级3.3.多个运算符3.4.更复杂的表达式3.5.错误情况2.6.带负数的运算2.7.混合情况一、计算器项目1.1.功能描述此......
  • 实战逆向RUST语言程序
    实战为主,近日2024年羊城杯出了一道Rust编写的题目,这里将会以此题目为例,演示Rust逆向该如何去做。题目名称:sedRust_happyVm题目内容:unhappyrust,happyvm关于Rust逆向,其实就是看汇编,考验选手的基础逆向能力。在汇编代码面前,任何干扰都会成为摆设。1、初步分析64为程序,使用ID......
  • 牛客小白月赛101 A~E
    牛客小白月赛101A~EA-tb的区间问题题意:tb给了fc一个长度为n的数组A,fc对A进行k次如下操作:删除数组第一个元素或者删除数组最后一个元素。求最后得到的数组和的最大值。思路:最后删除的是某一组前后缀,一一去枚举可行的区间即可。//AConemoretimes//nndbk......
  • Linux系统编程—I/O缓冲区(C语言实现)
    I/O缓冲区进程的I/O缓冲区机制是计算机操作系统中一个重要的概念,它涉及到数据在内存和外设之间的传输。以下是关于进程的I/O缓冲区机制的详细解释:1.定义与作用定义:I/O缓冲区是指在内存里开辟的一块区域,用来存放接收用户输入和用于计算机输出的数据,以减小系统开销和提高......
  • 【C语言】输出数据的二进制存储形式
        说在前面:是一个C语言新手,很新的新手,在这个专栏记录一些探索过程    今天学习中学到类型转换,将int和short类型赋值给char类型变量时,因为想要清楚看到隐式转换的结果,产生了写一个东西来输出数据在计算机中的二进制存储形式的想法,以下为尝试过程一、首先想......
  • java学习笔记3-高级循环-练习题
    黑马java有关数组的几道感觉比较难的题目,记录一下。第一题现有一个整数数组,数组中的每个元素都是[0-9]之间的数字,从数组的最大索引位置开始到最小索引位置,依次表示整数的个位、十位、百位。。。依次类推。请编写程序计算,这个数组所表示的整数值。例如:数组:{2,1,3,5,4}......