【C语言】每日一题(半月斩)——day1

2024-02-27 1106阅读

温馨提示:这篇文章已超过433天没有更新,请注意相关的内容是否还可用!

【C语言】每日一题(半月斩)——day1 

目录

😊前言 

一.选择题 

1.执行下面程序,正确的输出是(c) 

2.以下不正确的定义语句是( )

3.test.c 文件中包括如下语句,文件中定义的四个变量中,是指针类型的变量为【多选】( ) 

4、有如下定义语句,则正确的输入语句是【多选】( ) 

5.. 若给定条件表达式 (M)?(a++):(a--) ,则其中表达式 M ( )

二、编程题 

①打印从1到最大的n位数

②计算日期到天数转换


 

😊前言 

开设这个专栏,是因为刚更新完【 C语言】初阶的内容,马上迈入进阶,可以在学习进阶知识的时候,巩固复习基础。基础要扎实!!!

一.选择题 

1.执行下面程序,正确的输出是(c) 

int x = 5, y = 7;	//全局变量
void swap()			
{
	int z;
	z = x;
	x = y;
	y = z;
}
int main()
{
	int x = 3, y = 8;
	swap();		
	printf("%d %d\n", x, y);		// 3 8
}

A: 5,7         B: 7,5         C: 3,8         D: 8,3  

解析:正确答案 C

swap()在调用的时候没有传参,所以函数内交换的是全局变量,而当全局变量和局部变量名字相同时,优先使用局部变量;局部优先原则 

1.  作用域

通常来说,一段程序代码中所用到的名字并不是总是有效/可用的而限定这个名字的可用性的代码范围就是这个名字的作用域。

(1)局部变量的作用域就是所在的局部范围。(同一个{}内)

(2)全局变量的作用域就是整个工程(注:换一个.c文件使用全局变量,要声明(extern)一下变量)

注意:当全局变量与局部变量同名冲突时,遵循局部优先的原则。

2.生命周期

变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段

(1)  局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。

(2)  全局变量的生命周期是:整个程序的生命周期。

 

 

2.以下不正确的定义语句是( )

A: double x[5] = {2.0, 4.0, 6.0, 8.0, 10.0};

B: char c2[] = {'\x10', '\xa', '\8'};

C: char c1[] = {'1','2','3','4','5'};

D: int y[5+3]={0, 1, 3, 5, 7, 9};

解析: 正确答案 B

选项B中考察是转义字符,八进制范围是0~7,所以'\8' err

\ddd ddd表示1到3个八进制数 如:\130 转义为 字符X
\xhh hh表示1到2位十六进制数 如:\x30 转义为 字符0

补充:字符型数据在内存中存储的是字符的ASCII码值的二进制形式,一个字符的存储占用一个字节

3.test.c 文件中包括如下语句,文件中定义的四个变量中,是指针类型的变量为【多选】( ) 

#define INT_PTR int*
typedef int* int_ptr;
INT_PTR a, b;
int_ptr c, d;

A: a         B: b         C: c         D: d   

 解析:正确答案 ACD

4、有如下定义语句,则正确的输入语句是【多选】( ) 

int b;
char c[10];

A: scanf("%d%s",&b,&c);         B: scanf("%d%s",&b,c);

C: scanf("%d%s",b,c);         D: scanf("%d%s",b,&c);

解析:正确答案 AB

1.scanf()是输入函数

scanf(格式控制,地址列表);

“格式控制”规定数据的输入格式,必须用双引号括起来,其内容仅仅是格式说明。

“地址列表”则由一个或多个地址组成的列表,可以是变量的地址,或字符串的首地址。 

所以在scanf();中变量需要取地址,而数组名就表示首元素地址(有两个例外)

2.数组名是什么?

①.数组名是首元素的地址。

②两个例外:

1、sizeof(数组名),这里的数组名是表示整个数组,计算的是整个数组的大小,单位是字节。

2、&数组名,这里的数组名是表示整个数组,&数组名取出的是数组的地址。

5.. 若给定条件表达式 (M)?(a++):(a--) ,则其中表达式 M ( )

A: 和(M==0)等价         B: 和(M==1)等价         C: 和(M!=0)等价         D: 和(M!=1)等价 

解析: 正确答案C 

 考察的是三目运算符,  exp1?exp2:exp3;

exp1为真,执行exp2;

exp1为假,执行exp3;

        C语言规定:0为假,非0为真。

所以 若要求与M等价,则要满足M取0时为假,取非0数值时为真。 

二、编程题 

①打印从1到最大的n位数

输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 ...  一直到最大的 3 位数 999。

1. 用返回一个整数列表来代替打印

2. n 为正整数,0

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]