牛客网错题收集(5)

这篇博客主要介绍了在C++编程中遇到的一些错题,包括数值计算、字符串比较、结构化编程、命令行参数处理、位操作以及结构体初始化等问题。通过解析这些题目,帮助读者加深对C++语言的理解和应用。
摘要由CSDN通过智能技术生成

一.单选题

1.

在16位C编译系统上,若定义long a; ,则能给a赋40000的正确语句是( )。
正确答案: D 你的答案: 空 (错误)

a=20000+20000;

a=4000*10;

a=30000+10000;

a=4000L*10L;

解释:长整数常量后面要加L. 没有加L,则默认为int类型,在16位系统下,int是16位的,占2个字节,有效范围是-32768到+32767,A、B、C的选项都会超出这个范围。

2.

判断字符串s1是否小于字符串s2,应当使用()。
正确答案: C 你的答案: D (错误)

if(s1>s2)

if(strcmp(s1,s2))

if(strcmp(s2,s1)>0)

if(strcmp(s2,s1)<0)

解释:
语法/原型:

int strcmp(const char* stri1,const char* str2);
参数 str1 和 str2 是参与比较的两个字符串。
strcmp() 会根据 ASCII 编码依次比较 str1 和 str2 的每一个字符,直到出现不到的字符,或者到达字符串末尾(遇见\0)。
返回值:
如果返回值 < 0,则表示 str1 小于 str2。
如果返回值 > 0,则表示 str2 小于 str1。
如果返回值 = 0,则表示 str1 等于 str2。

3.

结构化程序由三种基本结构组成,三种基本结构组成的算法( )。
正确答案: C 你的答案: A (错误)

可以完成任何复杂的任务

只能完成部分复杂的任务

只能完成符合结构化的任务

只能完成一些简单的任务

4.

阅读程序,下面程序的输出结果是().
假设可执行文件的文件名为prog.exe,运行时键入的命令行为prog-386 net↙
#include <stdio.h>
void main (int argc,char *argv[ ])
{
int i;
for(i=0;i<argc;i++)
printf(“%s",argv[i]);
}
正确答案: D 你的答案: 空 (错误)

-386 net

prog.exe -386 net

prog.exe -386 net

prog -386 net
解释:程序的功能就是将命令行参数输出,因为命令行参数是3.所以输出的结果

应是3个字符串,并且执行文件输入时没有带.exe,所以输出第一个命令行参数就应是prg,

而不是prg.exe。故正确答案是D。

5.

unsigned int a= 0x1234; unsigned char b=*(unsigned char *)&a; 在32位大端模式处理器上变量b等于()?
正确答案: A 你的答案: 空 (错误)

0x00

0x12

0x34

0x1234

解释:
unsigned int a= 0x1234的32位完全表示是0x00001234,在大端(低地址存储高位)处理器上的存储方式为:
由低地址到高地址依次为(假设低地址为0x4000):
0x4000 0x4001 0x4002 0x4003
00 00 12 34
则&a的值为0x4000, char占一个字节,即b最终所取的值为0x4000地址内存储的内容,故为0x00。

若处理器为小端 (低地址存储低位) 模式,则b的值为0x34。

6.

test.c文件中包括如下语句:
#define INT_PTR int*
typede

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值