C语言百日刷题第十五天-创新互联

前言

今天是刷题第15天,放弃不难,但坚持一定很酷~

再刷一套模拟题

在这里插入图片描述

创新互联成立十余年来,这条路我们正越走越好,积累了技术与客户资源,形成了良好的口碑。为客户提供成都网站设计、成都网站建设、网站策划、网页设计、空间域名、网络营销、VI设计、网站改版、漏洞修补等服务。网站是否美观、功能强大、用户体验好、性价比高、打开快等等,这些对于网站建设都非常重要,创新互联通过对建站技术性的掌握、对创意设计的研究为客户提供一站式互联网解决方案,携手广大客户,共同发展进步。

C语言百日刷题第十五天
  • 前言
  • 一、选择题
  • 二、判断题
  • 三、多选题
  • 四、填空题
  • 五、分析程序题

一、选择题

1.下列选项中,不属于开发一个C语言应用程序的具体实现步骤的是()
A、 启动开发工具
B、 编辑、编译
C、 组建
D、 运行程序

正确选项:A

2.下列选项中,关于main()函数叙述不正确的是()。
A、 一个完成的C语言程序中,有且只能有一个main()函数
B、 main()函数是程序的主入口,程序总是从main()函数开始执行
C、 如果没有声明main()函数,程序将从第1行开始执行
D、 main()函数可以有返回值,也可以没有返回值

正确选项:C

main函数是C语言的入口,没有Main函数,程序将无法进行

3.下列关于注释的描述中,错误的是()。
A、 C语言中的注释有两种类型:单行注释和多行注释
B、 所有的注释都可以嵌套使用
C、 单行注释用“//”符号表示,后面为被注释内容
D、 多行注释用“/”开头,以符号“/”结尾

正确选项:B

4.关于#include这句代码,下列描述中错误的是()。
A、 “#”是预处理标志,用来对文本进行预处理操作
B、 include是预处理指令
C、 一对尖括号可以去掉
D、 stdio.h是标准输入输出头文件

正确选项:C

5.下列程序的输出结果是_______。

double  d=3.2;int x=1.2,y;
y=(x+3.8)/5.0;
printf("%d\n",d*y);

A、 3
B、 3.2
C、 0
D、 3.07

正确选项:C

定义的x与y都是整型,使用int x = 1.2 会舍去小数点后面的部分,x实际数值为 1
所以,(1+3.8)/5 = 0.几,但是y也是整型,会舍去小数点后面的数,所以y=0,所以d*y的结果也为0。

6.下面程序运行后的输出结果是( )。

int   a=1,b=0;
printf("%d",b=a+b);
printf("%d\n",a=2*b);

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

正确选项:D

打印的结果:
b=a+b=1+0=1
a=2b,此时b已经是1了,所以a=2b应该为2*1=2

7.以下程序运行后的输出结果是_____。

int  x=011;
printf("%d\n",++x);

A、 12
B、 11
C、 10
D、 9

正确选项:C


在C语言中,二进制的数以0b开头、八进制的数以0开头,十六进制的数以0x开头
既然是八进制,那么我们转化为十进制:18+11=9
++x是先加一在取值使用,所以输出的是9+1=10

8.已知 int x=10, y=20, z=30; 以下语句执行后 ,x ,y ,z 的值是____。

if(x>y)
     z = x;
  	 x = y;
  	 y = z;

A、 x = 10, y = 20, z = 30
B、 x= 20, y = 30, z = 30
C、 x =20, y=30, z = 10
D、 x = 20, y = 30, z = 20

正确选项:B

if语句默认只能执行一条语句,此题中x并不大于y,所以z = x这条语句不执行。
但是x= y 和 y=z是执行的,所以X=20,Y=30,而Z不变,还是30。

9.for(i=1;i<9;i+=1)该循环共执行了多少次_______。
A、 7
B、 8
C、 9
D、 10

正确选项:B

i+=1等价于i=i+1 从1开始算。
共有i=1、2、3、4、5、6、7、8这八种情况。
所以共执行了八次循环。

10.下列字符串能作为变量名的是( )
A、3int
B、float
C、_2xy
D、break

正确选项:C

变量名称设定的规矩就是第一个字不能是数字,并且你命名的变量名不能和C语言中的32个关键字相同。

11.以下说法中正确的是_______________。
A、 C语言程序总是从第一个定义的函数开始执行。
B、 在C语言程序中,要调用的函数必须在main( ) 函数中定义。
C、 C语言程序总是从main( ) 函数开始执行。
D、 C语言程序中的main( ) 函数必须放在程序的开始部分。

正确选项:C

C语言程序的入口就是main函数,不管main函数在哪里,C语言都是从main函数进入。

12.根据C语言的语法规则,下列_______是不合法标识符。
A、while
B、Name
C、Rern5
D、_exam

正确选项:A

变量名称设定的规矩就是第一个字不能是数字,并且你命名的变量名不能和C语言中的32个关键字相同。A和关键词while循环相同,所以不合法。

13.下面的变量说明中正确的是___________。
A、int:a, b, c;
B、int a; b; c;
C、int a, b, c
D、int a, b, c;

正确选项:D

14.C语言用( )表示逻辑“真”值。
A、 True
B、 t 或 y
C、非零值
D、整型值0

正确选项:C

C语言规定0为假,非0为真,至于true则是布尔类型,但是C语言中没有布尔类型。

15.设有说明语句char a=\101;则变量a________。
A、 包含4个字符
B、 包含3个字符
C、 包含2个字符
D、 包含1个字符

正确选项:D

char型变量只能装得下一个字符

16.以下程序段的输出结果是int a=12345678;printf("%4d\n",a);()
A、12
B、34
C、1234
D、12345678

正确选项:C

%d是打印全部,%4d是打印4个宽度的数据,数据不足四个宽度就用空格补上,多了也只打印四个宽度的数据。

17.以下程序运行结束后,x和y的值分别为( )

main()
  {int x=10,y=10,i;
   for(i=0;x>8;y=++i)
     printf(“%d  %d”,x--,y);
  }

A、 10 1
B、 9 9
C、 9 1
D、 8 2

正确选项:D

问最后的x和y的值,扫一眼循环就行了。循环结束的条件是x>8,那么x肯定是等于8的时候结束。ABC的x都比8大,只能选D

18.分析下面程序运行结果()

#includevoid main()
{int y=10;
do{y--;}
while(--y);
printf("%d\n",y--);}

A、-1
B、 1
C、 8
D、 0

正确选项:D

只有当循环的控制表达式为0时,循环才结束,所以只能是0。

19.有以下程序段while 循环执行的次数是()

int k=0;
while(k==1)
k++;

A、无限次
B、 有语法错,不能执行
C、 一次也不执行
D、 执行1次

正确选项:C

K=1时控制表达式才为真,而前面设置的K=0,明显不符合k= 1,所以不符合循环开始的条件,但是语句并没有错误,所以一次循环也不执行。注意:在c语言中等于号是==而不是单个=,单个=的意思是赋值。

20.设int x,y,z ;则执行语句x=(y=(z=10)+5-5)后x, y和z的值是()
A、 10 15 10
B、 10 10 10
C、 10 10 15
D、 10 5 10

正确选项:B

x=(y=(z=10)+5-5) 括号内部的优先算,=是赋值的意思。
这段代码的意思是,先把10赋值给z,在把z+5-5的值赋值给y,最后把y的值赋值给x
所以xyz都为10

21.设a=1,b= -3,c=0下面表达式为0的是 ()
A、b>a&&a
B、a-3‖‖(c=0)
C、(c>a)= =(b>5)
D、!a&&b‖‖a&&(c+1)

正确选项:A

&&是全真为真,一假全假。||是一真则真,全假为假。b=-3明显小于a=1,前面一句错了,则A直接错。B、D错的离谱,我解释下可能有疑问的C,(c>a)是错的,所以返回值是0,(b>5)也是错的,返回值也是0,所以(c>a)和(b>5)的返回值相同,所以C选项为真

22.若x,y均定义为int型,z为double型,以下不合法的scanf函数调用语句是()
A、scanf("%d%d,%lf",&x,&y,&z);
B、scanf("%x,%d,%lf",&x,&y,&z);
C、scanf("%d,%x,%lf",&x,&y,&z);
D、scanf("%d,%d,%x",&x,&y,&z);

正确选项:D

%x是16进制的占位符,一般是无符号整型使用

23.下面程序的输出结果是 ()

main() 
{int x=1,y=0,a=0,b=0; 
switch(x) 
{case 1: 
switch(y) 
{case 0: ++a; break; 
 case 1: b++; break;
 case 2: a++; b++; break;
 case 3: a++; b++; } 
printf("a=%d,b=%d\n",a,b); } 
return 0;}

A、 a=1,b=0
B、 a=1,b=1
C、 a=0,b=1
D、 a=0,b=0

正确选项:A

x=1进入case 1 ;y=0进入第二个switch的case 0
case 0 是先把a+1再跳出来。所以此时a=1,b还是0

24.希望表示关系x≥y≥z,应使用C语言表达式()
A、(x>=y)&&(y>=z)
B、(x>=y) AND (y>=z)
C、(x>=y>=z)
D、(x>=z)&(y>=z)

正确选项:A

在这里插入图片描述
25.运行完下列程序后,在屏幕上的内容是 ()

void main ()
{int a=0;
  a+=(a=12);
  printf ("%d\n",a);
}

A、 0
B、 6
C、 12
D、 24

正确选项:D

()的运算优先级是最高的,所以是先把12赋值给a,而a+=(a=12)的意思是:
a=(a=12)+a,而此时a=12,所以相当于是a=12+12=24.

26.使用语句scanf("x=%f,y=%f",&x,&y);输入变量x,y的值([]代表空格),正确的输入是()
A、1.25,2.4
B、1.25[]2.4
C、x=1.25,y=2.4
D、x=1.25[]y=2.4

正确选项:C

scanf函数的输入格式要和“”内部的保持严格一致,内部是什么样,输入的时候就要和它一样。

27.下面程序的运行结果是( )

#includevoid main()
{int num=0;
while(num<=2)
{num=num+1;
printf(“%d\n”,num);
}
}

A、1
B、1 2
C、1 2 3
D、1 2 3 4

正确选项:C

while循环的条件是num<=2,并且每循环一次,num+1,所以num只有0,1,2是小于等于2的所以只能循环三次,所以选有三个数的。

28.设有说明“int x=3,y=4;",则++x>y--?x:y的值为( ).
A、4
B、1
C、2
D、3

正确选项:D

三目运算符a?b:c的意思是,如果a表达式对,则运行b否则运行c
++x是先加1,y—是先给值后减1,而x=3,3+1=4并不大于4,所以为加,执行:后的表达式,即输出y的值,而y在比较后要减一,此时为3

29.循环体内的continue语句的作用是:( )
A、 结束本次循环进行下次循环
B、 继续执行循环体中后面的语句
C、 跳出本层循环
D、 跳出所有的循环

正确选项:A

continue语句的作用就是结束本次循环后面的语句,直接开始下一次循环。

30.C语言程序能够在不同的操作系统运行,这说明C语言具有很好的____。
A、 适应性
B、 移植性
C、 兼容性
D、 操作性

正确选项:B

31.1972年,美国贝尔实验室的Dennis M.Ritchie在_____ 语言的基础设计出了C语言,被称为C语言的鼻祖。( )
A、 BASIC
B、 FORTRAN
C、 B
D、 ALGOL 60

正确选项:C

32.下列语言中不属于计算机语言的三大类的是()。
A、 机器语言
B、 脚本语言
C、 高级语言
D、 汇编语言

正确选项:B

33.C语言程序的执行,总是起始于______。
A、 程序中的第一条语句
B、 main函数
C、 本程序中的第一个函数
D、 包含的文件中的第一个函数

正确选项:B

34.C语言程序注释语句的格式是:( )
A、 以“/%”开始,“%/”结束
B、 以“/ * ”开始,“* /”结束
C、 以“/ * ”开始,“/ *”结束
D、 以“/ * ” 开始,“ * /”结束

正确选项:B

注释的两种方法:// 或者 / * * /

35.C语言编译程序的首要工作是_____。
A、 检查C语言程序的语法错误
B、 检查C语言程序的逻辑错误
C、 检查程序的完整性
D、 生成目标文件

正确选项:A

语法要是错了,根本没后面的事。

二、判断题

1、计算机不需要翻译就能直接识别的语言被称为汇编语言。

计算机直接识别的语言叫机器语言。

2、C语言只适用于系统软件的开发。()

3、机器语言是由二进制数0和1组成的一串指令。()

4、在C语言程序中,一个语句的结束用“;”来标记。()

5、switch的default子句可以省略不用。

6、若int a=2, b=5; printf(“a=%d,b=%d”,a,b);输出正确的是: a=2,b=5。

三、多选题

1、C语言具有哪些特点?( )
A、 可移植性好
B、 运算符与数据类型丰富
C、 属于强类型语言
D、 语法检查严格
E、 简洁灵活
F、 结构化

正确选项:A、B、E、F

2、C语言的主要应用有哪些?()
A、 开发系统软件
B、 开发大型应用软件
C、 编写个人网页
D、 编写硬件设备的驱动程序
E、 开发游戏软件
F、 编写通信程序
G、 编写广告文案

正确选项:A、B、D、E、F

四、填空题

1、C语言程序的函数组成包括了两个部分,_____ 和 _______,后者被包含在一个花括号里。

函数头

函数体

2、从功能上看,scanf是______函数,printf是________函数,它们俩都带有参数。

输入

输出

五、分析程序题

分析下面程序,说出其功能

#includeint main()
{int m,n,i,j;
	int max=0;
	scanf("%d%d",&m,&n);
	for(i=m;1;i++)          
	{if(i%m==0&&i%n==0)  
		break;              
	}
	
	for(j=1;j<=n;j++)        
	{if(m%j==0 && n%j==0)   
        {	if(max

程序功能:输出输入的两个数的最小公倍数和大公约数

第一个循环的作用:只有i可以同时整除m和n的时候才会执行break跳出循环。所以第一个循环的作用就是找到m和n的最小公倍数。

第二个循环的作用:找出可以同时被m和n整除的数,并且通过if语句,使max是最后的大公约数。

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


文章题目:C语言百日刷题第十五天-创新互联
文章路径:http://bzwzjz.com/article/dpdhsi.html