【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个字节
|