【Day03_0420】C语言选择题

【Day03_0420】C语言选择题

1.以下程序的输出结果是?(B)
#include <stdio.h> 
int main()
{
	char a[10] = { '1','2','3','4','5','6','7','8','9',0 }, * p; 
	int i;
	i = 8;
	p = a + i;
	printf("%s\n", p - 3);
}

A 6
B 6789
C ‘6’
D 789

ASCII值为0表示为NULL,%s打印遇到ASCII值为0会停止打印

2.以下程序的输出结果是:(D)
#include <iostream>
using namespace std;
void main()
{
	int x = 3, y = 3;
	switch (x % 2)
	{
	case 1:
		switch (y)
		{
		case 0:
			cout << "first";
		case 1:
			cout << "second";
			break;
		default: cout << "hello";
		}
	case 2:cout << "third";
	}
}

A second third
B hello
C first second
D hellothird

3.以下能对二维数组a进行正确初始化的语句是(B)

A int ta[2][]={{0,1,2},{3,4,5}};
B int ta[][3]={{0,1,2},{3,4,5}};
C int ta[2][4]={{0,1,2},{3,4},{5}};
D int ta[][3]={{0,2},{},{3,4,5}};

解析:
初始化每一行的时候必须连续初始化,中间不能有间隔

4.能把函数处理结果的二个数据返回给主调函数,在下面的方法中不正确的是(A)

A return这二个数
B 形参用数组
C 形参用二个指针
D 用二个全局变量

5.int *p[4] 与选择项中的 说明 (C) 等价

A int p[4]
B int *p
C int *(p[4])
D int (*p)[4]

6.设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是(D)

A n=0;while(ch=getchar()!=‘\n’)n++;
B n=0;while(getchar()!=‘\n’)n++;
C for(n=0;getchar()!=‘\n’;n++);
D n=0;for(ch=getchar();ch!=‘\n’;n++);

解析:
for循环的条件初始化部分只执行一次,所以D选项getchar()只能获取一次字符

7.以下代码执行之后ptr指向的内容是?(B)
char* ptr;
char myString[] = "abcdefg";
ptr = myString;
ptr += 5;

A Compiler error
B f
C efg
D defg

8.下面3段程序代码的效果一样吗?(C)

int b;
(1)const int *a = &b;
(2)int const *a = &b;
(3)int *const a = &b;
A (2)=(3)
B (1)=(3)
C (1)=(2)
D 都不一样
E 都一样

解析:
const在*左边修饰*,表示指针指向的内容不可修改
const在*右边修饰指针变量本身,表示其指向不可修改

9.32位系统中,定义**a[3][4],则变量占用内存空间为(B)

A 4
B 48
C 192
D 12

解析:
该变量是一个数组,数组的元素是二级指针

10.假设在一个 32 位 little endian 的机器上运行下面的程序,结果是多少?(B)
#include <stdio.h>
int main(){
long long a = 1, b = 2, c = 3;
printf("%d %d %d\n", a, b, c);
return 0;
}

A 1,2,3
B 1,0,2
C 1,3,2
D 3,2,1

小端:低位存低地址
大端:低位存高地址
long long类型占8个字节,%d打印每次只会读取4个字节

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值