【Day06_0423】C语言选择题

【Day06_0423】C语言选择题

1.十进制变量i的值为100,那么八进制的变量i的值为:(C)

A 146
B 148
C 144
D 142


2.执行下面语句后的输出为()
int I = 1;
if (I <= 0)
{
	printf("****\n");
}
else
{
	printf("%%%%\n");
}

A %%
B ****
C 有语法错,不能正确执行
D %%%%
他的回答: D (错误)
正确答案: A

解析:
每两个%为一组,第一个表示控制,由于%号后跟特定的字符才能进行格式控制,而%后面跟的第二个%没有特殊含义,所以每组的第二个%会被输出。
eg.%Q,会直接输出字符Q


3.对于下面的C语言声明描述正确的一项是(C)
char (*p)[16]

A p是长度为16的字符指针数组
B p是包含16个字符的字符串
C p是指向长度为16的字符数组的指针
D p是长度为16的字符数组


4.数组a的定义语句为“float a[3][4];”,下列(D )是对数组元素不正确的引用方法。

A a[i] [j]
B *(a[i]+j)
C *(*(a+i)+j)
D *(a+i*4+j)


5.下面程序的输出结果是(d)
#include < iostream.h>
#define SQR(A) A*A
void main() {
	int x = 6, y = 3, z = 2;
	x /= SQR(y + z) / SQR(y + z);
	cout < < x < < endl;
}

A 5
B 6
C 1
D 0

解析:
算式右边:3+2*3+2/3+2*3+2=3+6+0+6+2=17
6/17=0


6.当n=5时,下列函数的返回值是:()
int foo(int n) {
	if (n < 2) {
		return n;
	}
	else
		return 2 * foo(n - 1) + foo(n - 2);
}

A 5
B 11
C 29
D 10

解析:
计算递归问题,从底向上
f5=2f4+f3
f4=2f3+f2
f3=2f2+f1
f2=2f1+f0;
f1=1;
f0=0;
再向上递推,得到f5的结果


7.以下对C语言的”指针“描述不正确的是:(D)

A 32位系统下任何类型指针的长度都是4个字节
B 指针的数据类型声明的是指针实际指向内容的数据类型
C 野指针是指向未分配或者已释放的内存地址
D 当使用free释放掉一个指针内容后,指针变量的值被置为NULL


8.数组定义为”int a[4][5];”, 引用”*(a+1)+2″表示()(从第0行开始)

A a[1][0]+2
B a数组第1行第2列元素的地址
C a[0][1]+2
D a数组第1行第2列元素的值

解析:
没有解引用不代表值,表示地址


9.有一个如下的结构体:请问在64位编译器下用sizeof(struct A)计算出的大小是多少?()
struct A {
	long a1;
	short a2;
	int a3;
	int* a4;
};

A 24
B 28
C 16
D 18
他的回答: A (正确)
正确答案: A

解析:
64位编译器,所以int*占8个字节,默认对齐数按8计算


10.运行结果是?(D)
#include <iostream>
using namespace std;
int f(int n) {
	if (n == 1)
		return 1;
	else
		return (f(n - 1) + n * n * n);
}
int main() {
	int s = f(3);
	cout << s << endl;
	return 0;
}

A 8
B 9
C 27
D 36

解析:
递归问题的计算方法,从底层向上层计算
f3=f2+333
f2=f1+222
f1=1

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值