121-130

注:以下问题的部分解析并非全部是自己原创,只是为了便于以后复习,直接粘贴总结的答案,主要来源是七月在线中的解析部分。https://www.julyedu.com/question/selectAnalyze/kp_id/4/cate/C

1、在C语言中,函数的隐含存储类别是( )

A auto
B static
C extern
D 无存储类别

解释:选C

注意 这里问的是函数。
函数的存储类别一般根据能否被文件外访问,分为两种:extern和static,当其类别为static时,表示这个函数不能别其他文件访问,extern表示该函数可以被其他文件访问,函数默认的存储类别是extern。
而变量默认的存储类别是auto。

2、若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是( )

A 2.5
B 2.75
C 3.5
D 0

解释:选A

a%3 = 1
(int)(x+y) = (int)(7.2) = 7
a%3*(int)(x+y) = 7
a%3*(int)(x+y)%2 = 1
a%3*(int)(x+y)%2/4 = 0
(int)f 表示将 f 强制转换为int型,只取整数部分。

3、以下叙述中,不正确的是( )

A 使用static float a定义的外部变量存放在内存中的静态存储区
B 使用float b定义的外部变量存放在内存中的动态存储区
C 使用static float c定义的内部变量存放在内存中的静态存储区
D 使用float d定义的内部变量存放在内存中的动态存储区

解释:选B

static类型的变量,无论是外部变量还是内部变量,均存放在静态存储区;
内部变量即局部变量存放在动态存储区;
外部变量即全局变量存放在静态存储区。

4、以下叙述正确的是( )

A 在C程序中,main函数必须位于程序的最前面
B C程序的每行中只能写一条语句
C C语言本身没有输入输出语句
D 在对一个C程序进行编译的过程中,可发现注释中的拼写错误

解释:选C

5、如何定义一个int类型的指针数组,数组元素个数为10个( )

A int a[10];
B int (*a)[10];
C int *a[10];
D int (*a[10]) (int)

解释:选C

A选项为一个含有10个元素的数组;
B选项为一个指向含有10个元素数组的指针,是一个数组指针;
C选项为一个含有10个元素的数组,其中每个元素为一个指针;
D选项的类型为int(*fun)(int),每一个数组元素为一个函数,返回值为int指针。

6、#include< iostream >

using namespace std;

class MyClass
{
public
MyClass(int i = 0)
{
cout << i;
}
MyClass(const MyClass &x)
{
cout << 2;
}
MyClass& operator=(const MyClass &x)
{
cout << 3;
return *this;
}
~MyClass()
{
cout << 4;
}
};

int main()
{
MyClass obj1(1), obj2(2);
MyClass obj3 = obj1;
return 0;
}
输出结果是( )
A 11214444
B 11314444
C 122444
D 123444

解释:选C

MyClass obj1(1), obj2(2); // 将分别调用构造函数MyClass(int i = 0);输出对应的参数值1,2
MyClass obj3 = obj1; // 对于这一句要注意区分这里并不是赋值语句,它等效于 MyClass obj3( obj1), 将调用构造函数 MyClass(const MyClass &x);输出2
然后针对三个对象分别调用析构函数,输出3个4。

7、函数重载是指( )

A 两个或两个以上的函数取相同函数名,但形参的个数或类型不同。
B 两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同。
C 两个以上的函数名字不同,但形参的个数或类型相同。
D 两个以上的函数取相同的函数名,并且函数的返回类型相同。

解释:选A

8、以下程序的运行结果是( )

int main(void)
{
printf("%s , %5.3s\n",“computer”,“computer”);
return 0;
}
A computer , puter
B computer , com
C computer , computer
D computer , compu.ter

解释:选B

%m.ns 表示输出共占m列,但只取字符串中左端前n个字符,这n个字符输出在m列的右侧,左测不够补空格。

9、若输入B,则以下程序运行后的输出结果是( )

int main(void)
{
char grade;
scanf("%c",&grade);
switch(grade)
{
case ‘A’:
printf(">=85");
case ‘B’:
case ‘C’:
printf(">=60");
case ‘D’:
printf("<60");
default:
printf(“error.”);
}
}
A error.
B >=60
C >=85
D >=60<60error.

解释:选D

输入B之后,因为没有break;语句,故会一次执行下面所有的语句。

10、以下程序的输出结果是( )

int power(int x , int y);
int main(void)
{
float a = 2.6 , b = 3.4;
int p;
p = power((int)a , (int)b);
printf("%d\n",p);
return 0;
}
int power(int x , int y)
{
int i , p = 1;
for(i = y ; i > 0 ; i–)
p *= x;
return p;
}
A 27
B 9
C 8
D 81

解释:选C

(int)a = 2, (int)b = 3。

发布了31 篇原创文章 · 获赞 4 · 访问量 2451

猜你喜欢

转载自blog.csdn.net/weixin_44412429/article/details/95490699
130
121