C语言练习题Day1

简介: C语言练习题Day1

从今天开始分享C语言的练习题,每天都分享,差不多持续16天,看完对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);
    return 0;
}

分析:首先我们可以看到x,y是全局变量,然后看主函数中,我们定义x和y,遇到一个swap的函数,看到函数里他是想交换我们的x 和y,但是我们知道,形参是实参的一份临时拷贝,改变形参并不会改变实参,所以我们在这里并不能起到交换的作用,但我们的输出是全局变量的答案呢,还是局部变量的x y,答案是局部变量的答案,在main函数这个栈帧中,我们创建局部变量,那在这个栈帧中用的就是局部变量,因为swap函数并没有起到真正的交换,所以答案就是3 和8

  • 题目二

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选项是个字符数组,那里面的内容应该就是字符,它放的是16进制的数是几个意思

  • 题目三

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

这里我们从上往下看就行了,首先我们#define就是定义的意思,后面的INT_PTR 都是int*的意思,代表它就是一个指针,所以a和b就是指针,指向的是int类型的数据。然后来到我们的typedef其实后面的代码的意思就是int int d 所以答案就是ABC

  • 题目四

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

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

这考的就是一个三目操作符,我们只要理解M为真就执行(a++),否则就是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

解析:我们的b是一个int类型的变量,那取出它的地址就需要加&操作符

数组名就是首元素的地址,所以我们也不需要取地址,如果加上就是整个数组的地址。

编程题

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

数 999 。

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

n 为正整数

OJ题【牛客网题号: JZ17 打印从1到最大的n位数】

static int a[100010];
int* printNumbers(int n, int* returnSize )
{
    int k=(int)pow(10,n);
    int i=0;
    for(i=1;i<k;i++)
    {
        a[i-1]=i;
    }
    *returnSize=--i;
    return a;
}

2、根据输入的日期,计算是这一年的第几天。输入保证年份为4位数且日期合法。

输入描述:输入一行,每行空格分割,分别是年,月,日。

输出描述:输出是这一年的第几天

OJ链接添加链接描述【牛客网题号: HJ73 计算日期到天数转换】【难度:简单】

int b;

char c[10];

示例:

输入:1

返回值:[1,2,3,4,5,6,7,8,9]

int* printNumbers(int n, int* returnSize ) {

}

示例:

输入:2012 12 31 输入:1982 3 4

输出:366 输出:63

#include<stdio.h>
int main()
{
  int year = 0;
  int month = 0;
  int day = 0;
  int i = 0;
  scanf("%d %d %d", &year, &month, &day);
  if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
  {
    switch(month)
    {
      case 12:
        i += 31;
      case 11:
        i += 30;
      case 10:
        i += 31;
      case 9:
        i += 30;
      case 8:
        i += 31;
      case 7:
        i += 31;
      case 6:
        i += 30;
      case 5:
        i += 31;
      case 4:
        i += 30;
      case 3:
        i += 31;
      case 2:
        i += 29;
      case 1:
        i += 31;
        if (month == 8 || month == 1 || month == 3 || month == 5 || month == 7 || month == 10 || month == 12)
        {
          i = i - 31 + day;
        }
        else if (month == 2)
        {
          i = i - 29 + day;
        }
        else
        {
          i = i - 30 + day;
        }
        break;
    }
  }
  else
  {
    switch (month)
    {
    case 12:
      i += 31;
    case 11:
      i += 30;
    case 10:
      i += 31;
    case 9:
      i += 30;
    case 8:
      i += 31;
    case 7:
      i += 31;
    case 6:
      i += 30;
    case 5:
      i += 31;
    case 4:
      i += 30;
    case 3:
      i += 31;
    case 2:
      i += 28;
    case 1:
      i += 31;
      if (month == 8 || month == 1 || month == 3 || month == 5 || month == 7 || month == 10 || month == 12)
      {
        i = i - 31 + day;
      }
      else if (month == 2)
      {
        i = i - 28 + day;
      }
      else
      {
        i = i - 30 + day;
      }
      break;
    }
  }
  printf("%d",i);
  return 0;
}

其实还有一种简单的办法,可以创建一个数组来控制,我这里就直接用switch控制,其实我们也不用写两个switch只要加个判断是不是闰年就行。

今天的分享就到这里,我们下次再见

相关文章
|
6月前
|
C语言
C语言练习题
C语言练习题
34 0
|
6月前
|
C语言
c语言编程练习题:7-50 输出华氏-摄氏温度转换表
c语言编程练习题:7-50 输出华氏-摄氏温度转换表
80 0
|
6月前
|
C语言
c语言编程练习题:7-49 Have Fun with Numbers
c语言编程练习题:7-49 Have Fun with Numbers
64 0
|
6月前
|
C语言
c语言编程练习题:7-46 爬动的蠕虫
c语言编程练习题:7-46 爬动的蠕虫
62 0
|
6月前
|
C语言
C语言练习题 温度自动转换‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪
C语言练习题 温度自动转换‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪
|
6月前
|
C语言 数据安全/隐私保护
C语言练习题
C语言练习题
43 1
|
5月前
|
人工智能 算法 Java
|
6月前
|
C语言
c语言编程练习题:7-60 Welcome to You!
c语言编程练习题:7-60 Welcome to You!
76 0
|
6月前
|
C语言
c语言编程练习题:7-52 求简单交错序列前N项和
c语言编程练习题:7-52 求简单交错序列前N项和
64 0
|
6月前
|
C语言
c语言编程练习题:7-51 求奇数分之一序列前N项和
c语言编程练习题:7-51 求奇数分之一序列前N项和
72 0