当前位置: 首页 > news >正文

【C刷题】day1

一、选择题

1.正确的输出结果是

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);
return 0;
}

【答案】:

3,8

【解析】

考点:

(1)局部变量只在定义变量得到区域使用,在main函数中定义的局部变量,只能在main函数中使用

(2)当局部变量和全局变量同名的时候,局部变量优先

swap()函数交换的是全局变量的x和y,也就是全局变量的x=5,y=7交换为x=7,y=5

可以在swap函数中打印x和y,得到的结果是x=7,y=5

在输出语句这里,考虑局部变量优先


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

【解析】:

考点:

\ddd: ddd表示1-3个八进制数(不一定是三个d,可以是一个或者两个d)

\xdd:dd表示两个16进制数

B. \8为\ddd的形式,但是八进制没有8

D.数组名后面的[ ]中必须是整形常量或者整形表达式


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

【解析】:

考点:define与typedef的区别

define宏定义只是简单的替换

typedef是把该类型定义了一个别名,别名是一个独立的类型

下面来理解一个重要的点: 

int *p;
//
用int这个单类型和表达式“*p”来定义变量p
直接的意思是*p是int类型,因此倒推p是int的指针//

(1)上面define直接替换,结果就是int  *a,b(把这个*尽量靠右边写),那么*a和b都是int类型,也就是a是int *类型,b是int类型

(2)下面typedef重命名,将相当于重新定义了一个int *类型,int *   a,b,也就是a和b都是int *类型


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

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

【答案】 :

C

【解析】:

考点:C语言中0表示假,非0表示真

先判断表达式1也就是M是否为真,如果M为真就a++,如果M为假,那就a--

也就是M为0,那就a--;如果M非0,那就a++,正好对应C选项

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

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

【解析】:

考点:scanf什么时候要&

对于本身无法表示地址信息的,要加&;本身表示的就是地址信息的,就不需要加&

注意:在这里&c和c两个地址是一样的,程序的效果相同,但是对于int b一定是&b


二、编程题

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

 【答案】:

 * @param n int整型 最大位数* @return int整型一维数组* @return int* returnSize 返回数组行数*/
#include<math.h>
int* printNumbers(int n, int* returnSize ) 
{//返回元素的个数*returnSize=pow(10,n)-1;//动态分配空间int *arr=(int*)malloc(*returnSize*sizeof(int));//赋值for(int i=0;i<*returnSize;i++){arr[i]=i+1;}//返回return arr;
}

2.计算日期到天数转换

【答案】:

#include <stdio.h>int main() 
{int year,month_real,day=0;int month[12]={31,28,31,30,31,30,31,31,30,31,30,31};//输入年月日scanf("%d %d %d",&year,&month_real,&day);int date=day;for(int i=0;i<month_real-1;i++){date+=month[i];}//闰年并且超过二月if((year%4==0&&year%100!=0)||(year%400==0)&&month_real>2){date+=1;}printf("%d",date);return 0;
}

http://www.lryc.cn/news/163057.html

相关文章:

  • zabbix配置钉钉告警、和故障自愈、监控java
  • 第九章 Linux实际操作——Linux磁盘分区、挂载
  • 设计模式-解释器设计模式
  • 实现 js 中所有对象的深拷贝(包装对象,Date 对象,正则对象)
  • PathVariable注解
  • 宋浩高等数学笔记(十二)无穷级数
  • 使用Clipboard插件实现Vue的剪贴板功能
  • Latex参考文献中大写字母编译后自动变成了小写,如何保持原字母大写形式
  • Jest单元测试相关
  • Scrum敏捷开发流程及关键环节
  • 微服务04-Gateway网关
  • YOLOV7改进-针对小目标的NWD(损失函数)
  • 计算机二级考试题库及答案
  • 2023国赛高教社杯数学建模C题思路分析
  • Ansible playbook简介与初步实战,实现批量机器应用下载与安装
  • [machine Learning]强化学习
  • 09-JVM垃圾收集底层算法实现
  • 系统软件启动过程
  • 【自学笔记】Python中的逻辑函数:any()、all()及同类函数的用法与示例
  • OpenCV的绘图函数,实力绘画篮球场
  • Java之包装类的算法小题的练习
  • 干涉阵相关知识
  • 如何使用Python进行可视化/音视频处理?
  • NIFI实现数据库数据增量同步
  • 【C#实战】控制台游戏 勇士斗恶龙(3)——营救公主以及结束界面
  • RBTree模拟实现
  • AUTOSAR规范与ECU软件开发(实践篇)10.4、AP和CP
  • css 命名规则
  • 正中优配:旅游餐饮板块走高,曲江文旅涨停,西安旅游等拉升
  • 世界青岛中国海洋大学金秋悦读《乡村振兴战略下传统村落文化旅游设计》2023新学年许少辉八一新书