mooc程序设计基础_29答案(mooc2023课后作业答案)

mooc程序设计基础_29答案(mooc2023课后作业答案)

第1周:程序设计与C语言

第一周 c语言概述 随堂练习

1、程序一个正确的设计C语言程序框架,以下哪个选项不是基础必须的?
A、要有main函数的答案答案定义。
B、课后函数头和函数体不能缺少。作业
C、程序main函数体是设计一个复合语句,要以“{ ”开始而以“}”结束。基础
D、答案答案必须在main函数之前包含头文件。课后

2、作业以下的程序哪个C语言程序是有语法错误的?
A、void main ( ) { }
B、设计#include <stdio.h> void main ( ) { printf (“Hello,基础 the world! \n”); }
C、#include <stdio.h> int main ( ) { printf (“Hello, the world! \n”); return 1; }
D、void main ( ) { printf (“ ”); }

3、以下关于C程序的书写风格的描述,不正确的一项是?
A、缩进任何时候都不会影响程序的语法正确性。
B、换行任何时候都不会影响程序的语法正确性。
C、添加空白任何时候都不会影响程序的语法正确性。
D、添加空行任何时候都不会影响程序的语法正确性。

4、以下不属于C程序中的运算符的一项是?
A、++
B、sizeof
C、( )
D、“”

5、以下标识符的命名方式没有错误的一项是?
A、void
B、kn柯南
C、999_dbmnn
D、_517x

6、一个C程序由一个或多个函数构成,函数是C程序的基本单位,其中main函数叫做( ),必须有且只能有一个。

7、函数跟函数之间是调用关系。虽然我们只定义了main函数,但在main函数中会调用其他库函数。使用库函数必须在源程序开头加上预处理命令 #include< >,< >里的是( ),包含了所用到的库函数的声明。

8、函数体中可以有若干个语句(包括零个语句),每个语句以( )结束。

9、一个C程序通常要经过( )、连接和运行三个阶段。

10、C语言的注释有两种方式:一是以 // 开始,表示一直到行尾都是注释文字,这种方式使用比较简便。二是以 /* 开始,以( ) 结束,中间的文字不管多少行都算是注释,这种方式便于写多行注释文字。

11、编译的单位是源程序文件,如果没有了错误,则可进入连接阶段,这个阶段也可能有出错信息和警告信息。如果一切正常,将得到可执行文件,扩展名为( ),就可以运行了。

12、C语言的基本词汇包括32个关键字和( )个运算符。

13、C语言中的标识符、运算符、标点符号等,都必须是( ),不能写成中文符号。

第2周:计算

1 变量随堂测验

1、给定: int a,b; 以下哪些scanf的使用是正确的?
A、scanf("%d", &a); scanf("%d", &b);
B、scanf("%d %d", &a, &b);
C、scanf("%d, %d", &a, &b);
D、scanf("%d %d", a, b);

2、以下哪些是有效的变量名?
A、main
B、4ever
C、monkey-king
D、__int

3、给定: int a,b; scanf("%d %d", &a, &b); 则以下哪些输入方式是正确的?
A、1 2
B、1,2
C、1(回车)2
D、1、2

4、给定以下代码段: int a,b=0; 则a的初始值是0

2 数据类型随堂测验

1、写出下式的运算结果: 10/3.0*3 (如果认为结果是浮点数,请以小数点后一位小数来表示)

2、写出下式的运算结果: 10/3*3.0 (如果认为结果是浮点数,请以小数点后一位小数来表示)

3 表达式随堂测验

1、写出以下代码执行后,t1和t2的值,以空格隔开: int a=14; int t1 = a++; int t2 = ++a;

2、写出以下表达式的结果,结果之间间隔一个空格: 6 + 5 / 4 - 2 2 + 2 * (2 * 2 - 2) % 2 / 3 10 + 9 * ((8 + 7) % 6) + 5 * 4 % 3 * 2 + 3 1 + 2 + (3 + 4) * ((5 * 6 % 7 / 8) - 9) * 10

学习通程序设计基础_29

随着科技的发展和人们对于计算机技术的依赖程度越来越高,计算机编程技术成为了一项备受瞩目的技能。而在计算机编程技术当中,程序设计基础是一门十分重要的学科。本文将重点介绍学习通程序设计基础_29,希望能够为读者提供一些有用的信息和帮助。

学习通程序设计基础_29的内容

学习通程序设计基础_29主要包含以下内容:

  1. 二维数组的定义和使用
  2. 多维数组的定义和使用
  3. 数组的排序和查找
  4. 数组的应用:数独游戏

二维数组的定义和使用

在程序设计中,数组是一种非常重要的数据结构。而在二维数组中,每个元素可以通过两个下标来访问。例如,我们可以用以下语句来定义一个二维数组:

int array[2][3];

这样就定义了一个2行3列的二维数组。我们可以通过以下语句来访问数组中的元素:

array[0][0] = 1;  array[0][1] = 2;  array[0][2] = 3;  array[1][0] = 4;  array[1][1] = 5;  array[1][2] = 6;

这样就给二维数组中的每个元素赋值了。我们也可以通过以下语句来输出数组中的元素:

printf(\d %d %d\\ array[0][0], array[0][1], array[0][2]);  printf(\d %d %d\\ array[1][0], array[1][1], array[1][2]);

这样就可以输出数组中的所有元素。

多维数组的定义和使用

除了二维数组以外,我们还可以使用多维数组来存储数据。例如,我们可以用以下语句来定义一个三维数组:

int array[2][3][4];

这样就定义了一个2行3列4层的三维数组。我们可以用以下语句来访问数组中的元素:

array[0][0][0] = 1;  array[0][0][1] = 2;  array[0][0][2] = 3;  array[0][0][3] = 4;  array[0][1][0] = 5;  array[0][1][1] = 6;  array[0][1][2] = 7;  array[0][1][3] = 8;  array[0][2][0] = 9;  array[0][2][1] = 10;  array[0][2][2] = 11;  array[0][2][3] = 12;  array[1][0][0] = 13;  array[1][0][1] = 14;  array[1][0][2] = 15;  array[1][0][3] = 16;  array[1][1][0] = 17;  array[1][1][1] = 18;  array[1][1][2] = 19;  array[1][1][3] = 20;  array[1][2][0] = 21;  array[1][2][1] = 22;  array[1][2][2] = 23;  array[1][2][3] = 24;

这样就给三维数组中的每个元素赋值了。我们也可以通过以下语句来输出数组中的元素:

printf(\d %d %d %d\\ array[0][0][0], array[0][0][1], array[0][0][2], array[0][0][3]);  printf(\d %d %d %d\\ array[0][1][0], array[0][1][1], array[0][1][2], array[0][1][3]);  printf(\d %d %d %d\\ array[0][2][0], array[0][2][1], array[0][2][2], array[0][2][3]);  printf(\d %d %d %d\\ array[1][0][0], array[1][0][1], array[1][0][2], array[1][0][3]);  printf(\d %d %d %d\\ array[1][1][0], array[1][1][1], array[1][1][2], array[1][1][3]);  printf(\d %d %d %d\\ array[1][2][0], array[1][2][1], array[1][2][2], array[1][2][3]);

这样就可以输出数组中的所有元素。

数组的排序和查找

在程序设计中,我们经常需要对数组进行排序和查找。常见的排序算法有冒泡排序、快速排序和归并排序等。而查找算法则有顺序查找、二分查找和哈希查找等。下面以冒泡排序和二分查找为例进行介绍。

冒泡排序

冒泡排序是一种简单的排序算法,它的基本思想是:通过不断地交换相邻的元素,把较大的元素向后移动,把较小的元素向前移动,从而使得序列变得有序。以下是一段冒泡排序的代码:

int array[] = { 4, 2, 6, 1, 5, 3};  int i, j, temp;  for (i = 0; i < 6; i++) {     for (j = 0; j < 5-i; j++) {       if (array[j] >array[j+1]) {         temp = array[j];        array[j] = array[j+1];        array[j+1] = temp;      }    }  }

这样就可以对数组进行排序了。不过需要注意的是,冒泡排序的时间复杂度为O(n^2),在处理大规模数据时效率较低。

二分查找

二分查找是一种高效的查找算法,它的基本思想是:在有序数组中查找某个元素,先取中间位置的元素进行比较,如果查找元素小于中间元素,则在前半部分继续查找;如果查找元素大于中间元素,则在后半部分继续查找;如果查找元素等于中间元素,则直接返回。以下是一段二分查找的代码:

int array[] = { 1, 2, 3, 4, 5, 6};  int left = 0, right = 5, mid, target = 4;  while (left <= right) {     mid = (left + right) / 2;    if (array[mid] == target) {       printf(\找到了,下标为%d\\ mid);      break;    }    else if (array[mid] >target)      right = mid - 1;    else      left = mid + 1;  }

这样就可以在数组中查找指定元素了。

数组的应用:数独游戏

数独游戏是一种经典的智力游戏,它的规则是在一个9×9的宫格中填写数字1-9,每行、每列和每个3×3的宫格内都不能重复出现相同的数字。以下是一段简单的数独游戏代码:

int sudoku[9][9] = {     { 5, 0, 0, 0, 0, 0, 0, 0, 8},    { 0, 1, 0, 0, 9, 0, 0, 6, 0},    { 0, 0, 6, 3, 0, 0, 0, 0, 9},    { 0, 0, 3, 0, 0, 0, 0, 0, 2},    { 0, 0, 0, 0, 7, 0, 0, 0, 0},    { 4, 0, 0, 0, 0, 0, 0, 0, 0},    { 7, 0, 0, 6, 0, 4, 0, 0, 0},    { 0, 0, 0, 0, 0, 0, 0, 7, 0},    { 0, 2, 0, 5, 0, 0, 0, 9, 4}  };  int i, j;  printf(\数独游戏原始状态:\\n\  for (i = 0; i < 9; i++) {     for (j = 0; j < 9; j++) {       printf(\d \ sudoku[i][j]);    }    printf(\n\  }

这样就可以输出数独游戏中的原始状态。接下来,我们需要编写代码来实现数独游戏的求解。具体的求解算法不在本文的讨论范围内,读者可以自行搜索相关资料来进行学习。

总结

学习通程序设计基础_29是一门十分重要的计算机编程学科,它涵盖了二维数组、多维数组、排序和查找等多个方面的内容。通过学习这门学科,可以帮助我们更好地理解和掌握数组的相关知识,并能够应用到实际开发中去。希望本文能够对读者们有所帮助。