C语言:选择+编程(每日一练Day1)

谁借莪1个温暖的怀抱¢ 2023-10-14 21:37 88阅读 0赞

ff2e17783ee5449eb7fd05c301928030.png

目录

选择题:

题一:

题二:

题三:

题四:

题五:

编程题:

题一:打印1到最大的n位数

示例1

思路一:

题二:计算日期到天数转换

示例1

思路一:

本人实力有限可能对一些地方解释和理解的不够清晰,可以自己尝试读代码,或者评论区指出错误,望海涵!


选择题:

题一:

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;
}

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

题二:

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};

题三:

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

题四:

4、 若给定条件表达式 (M)?(a++):(a—) ,则其中表达式 M ( )
A: 和(M==0)等价 B: 和(M==1)等价

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

题五:

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);

编程题:

题一:打印1到最大的n位数

f425c4f3b0ce46fd83d34a5fc49d18d2.png

示例1

输入:

  1. 1

返回值:

  1. [1,2,3,4,5,6,7,8,9]

思路一:

创建一个指针数组a,用num记录需要输入元素的个数,将从1开始到num个结束的值输入到个个数组下标中,返回指针a

注意:这里的returnSize指的是数组元素个数!

  1. int* printNumbers(int n, int* returnSize )
  2. {
  3. int i = 0;
  4. int num = 1;
  5. int* a;
  6. //计算元素个数
  7. for(i = n;i != 0;i--)
  8. {
  9. num *= 10;
  10. }
  11. *returnSize =num-1;
  12. //开辟需要存储的个数的空间
  13. a = (int*)malloc(sizeof(int)*(*returnSize));
  14. for(i = 1;i < num;i++)
  15. {
  16. a[i-1] = i;
  17. }
  18. return a;
  19. }

题二:计算日期到天数转换

45eba6e7057e4b5991630b3e7f52886e.png

示例1

输入:

  1. 2012 12 31

输出:

  1. 366

思路一:

分别创建用来scanf()的year、mon、day,以及记录每月天数的month[ ],再判断年份是否是闰年,再求天数求和。

  1. #include <stdio.h>
  2. int main()
  3. {
  4. int year = 0;
  5. //保存每月天数
  6. int month[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
  7. int day = 0;
  8. int mon = 0;
  9. int sum = 0;
  10. scanf("%d%d%d",&year,&mon,&day);
  11. //判断是否是闰年
  12. if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
  13. {
  14. month[2] = 29;
  15. }
  16. //求目标月份前的天数和
  17. for(int i = 1;i < mon ;i++)
  18. {
  19. sum += month[i];
  20. }
  21. printf("%d",sum+day);
  22. return 0;
  23. }

本人实力有限可能对一些地方解释和理解的不够清晰,可以自己尝试读代码,或者评论区指出错误,望海涵!

发表评论

表情:
评论列表 (有 0 条评论,88人围观)

还没有评论,来说两句吧...

相关阅读