c语言初阶测评

简介: c语言初阶测评

选择一


int i = 10; 
int j = 20;
int k = 3;
k *= i + j;


上面k运行的结果是


因为k*=是一个赋值操作符


它的优先级比较低 所以要先算i+j


所以说k的值是90


选择二


假定 x 和 y 为 double 型,则执行 x=2; y=x+3/2; 后y的值为()

A 3.500000

B 3

C 2.000000

D 3.000000

这里要注意的是3/2因为是两个整数相除

所以说得到的值是1

所以说最终的值会是3.000000


选择三


若有定义语句:int year=1009,*p=&year;以下不能使变量 year 中的值增至 1010 的语句是()

A *p+=1;

B (*p)++;

C ++(*p)

D *p++

首先A 显然可以

B显然可以

C显然可以

D中 两个单目操作符进行运算 按照先右后左的顺序使用

首先是解引用p的值 然后将指针p的位置加加

总结: 主要是操作符的先后顺序这一块的知识比较薄弱


编程题一


还是老朋友 求最大公因数和最小公倍数

这里提供一个求最小公倍数的另一种解法

思路分析


对于两个整数m n

它们的最小公倍数k肯定有

k / m ==i

k / n == j

那么我们就假设这个i的值为1

则有k=im

如果此时的k模上n刚好等于0 那么这个k就是最小公倍数

那么此时的最大公因数即为 (m*n)/k


完成代码如下

#include<stdio.h>
int main()
{
    int m = 0;
    int n = 0;
    scanf("%d %d", &m, &n);
    int i = 1;
    while ((i * m) % n != 0)
    {
        i++;
    }
    printf("%d", i * m);
    return 0;
}


这道题的主要是一个技巧问题


记住这个求最大公倍数数的技巧就可以


编程题二


672e57891b474c69997e3961b0f66ea5.png


题目分析


对于这道题目我们可以首先逆序整个字符串 然后再通过空格和‘\0’对于其中的每个单词进行逆序


// 逆序函数
void my_reverse(char* str, char* end)
{
  char tmp = 0;
  while (end>str)
  {
    tmp = *str;
    *str = *end;
    *end = tmp;
    str++;
    end--;
  }
}
int main()
{
  char arr[105] = { 0 };
  gets(arr);
  int len = strlen(arr)-1;
  char* end = arr+len;
  // 逆序字符串
  my_reverse(arr,end);
  // 测试逆序字符串是否成功
  //for (int i = 0; i < len; i++)
  //{
  //  printf("%c", arr[i]);
  //}
  // 逆序每个单词
  char* start = arr;
  char* end2  = arr;
  int i = 0;
  for (i = 0; i <= len+1; i++)
  {
    if (*end2==' '||*end2 =='\0')
    {
      my_reverse(start, end2 - 1);
      start = end2 + 1;
    }
    end2++;
  }
  for (int i = 0; i <= len; i++)
  {
    printf("%c", arr[i]);
  }
  return 0;
}


实现代码如上


以上就是本篇博客的全部内容啦 由于博主才疏学浅 所以难免会出现纰漏 希望大佬们看到错误之后能够


不吝赐教 在评论区或者私信指正 博主一定及时修正


那么大家下期再见咯

相关文章
|
5月前
|
存储 编译器 C语言
c语言进阶部分详解(指针初阶)
c语言进阶部分详解(指针初阶)
56 0
|
5月前
|
存储 编译器 C语言
『C语言初阶』第六章-操作符详解
『C语言初阶』第六章-操作符详解
|
5月前
|
存储 IDE 编译器
『C语言初阶』第五章-数组
『C语言初阶』第五章-数组
|
5月前
|
存储 人工智能 C语言
『C语言初阶』第八章 -结构体
『C语言初阶』第八章 -结构体
|
5月前
|
存储 C语言
『C语言初阶』第七章 -初识指针
『C语言初阶』第七章 -初识指针
|
1月前
|
存储 人工智能 搜索推荐
【C语言进阶】 假期测评①
【C语言进阶】 假期测评①
38 2
|
1月前
|
存储 安全 BI
【C语言进阶】假期测评②
【C语言进阶】假期测评②
37 1
|
1月前
|
存储 测试技术 C语言
【C语言进阶】 假期测评③
【C语言进阶】 假期测评③
45 1
|
2月前
|
C语言
错误的集合(初阶C语言刷题)
错误的集合(初阶C语言刷题)
|
2月前
|
C语言
C语言:初阶测试错题(查漏补缺)
C语言:初阶测试错题(查漏补缺)
21 0