0.0713

五煦查题

快速找到你需要的那道考题与答案

中国大学C语言程序设计进阶_3章节答案(慕课2023完整答案)

75 min read

中国大学C语言程序设计进阶_3章节答案(慕课2023完整答案)

第1周:指针与字符串

1 指针的中国整答使用随堂测验

1、对于:int a[] = { 5,大学 15, 34, 54, 14, 2, 52, 72}; int *p = &a[5]; 则: p[-2]的值是?
A、编译出错,语言程因为数组下标越界了
B、序设运行出错,计进阶章节答因为数组下标越界了
C、案慕案54
D、课完2

2、中国整答如果:int a[] = ; int *p = a; 则以下哪些表达式的大学结果为真?
A、p == a[0]
B、语言程p == &a[0]
C、序设*p == a[0]
D、计进阶章节答p[0] == a[0]

3、案慕案以下变量定义: int* p,课完q; 中,p和q都是中国整答指针。

4、对于:int a[] = { 5, 15, 34, 54, 14, 2, 52, 72}; int *p = &a[1]; 则: p[2]的值是?

2 指针运算随堂测验

1、对于以下代码段,正确的说法是: char *p; while (1) { p = malloc(1); *p = 0; }
A、最终程序会因为没有没有空间了而退出
B、最终程序会因为向0地址写入而退出
C、程序会一直运行下去
D、程序不能被编译

2、对于以下代码段:int a[] = { 1,2,3,4,5,}; int *p = a; int *q = &a[5]; printf("%d", q-p); 当sizeof(int)为4时,以下说法正确的是:
A、因为第三行的错误不能编译
B、因为第三行的错误运行时崩溃
C、输出5
D、输出20

3、使用malloc就可以做出运行时可以随时改变大小的数组

第1周编程题

1、字符串比对

第3周:结构类型

2 结构随堂测验

1、有下列代码段,则输出结果是:struct { int x,y; } s[2] = { { 1,3}, { 2,7}, }; printf("%d\n", s[0].y/s[1].x);
A、0
B、1
C、2
D、3

2、有如下变量定义,则对data中的a的正确引用是:struct sk { int a; float b; } data, *p=&data;
A、(*p).data.a
B、(*p).a
C、p->data.a
D、p.data.a

3、以下两行代码能否出现在一起? struct { int x; int y; } x; struct { int x; int y; } y;

第4周:链表

第4周编程练习

1、逆序输出

第5周:程序结构

2 编译预处理和宏随堂测验

1、假设宏定义: #define DOUBLE(x) 2*x 则DOUBLE(1+2)的值是

2、假设宏定义如下: #define TOUPPER(c) ('a'<=(c)&&(c)<='z'?(c)-'a'+'A':(c)) 设s是一个足够大的字符数组,i是int型变量,则以下代码段的输出是: strcpy(s, "abcd"); i = 0; putchar(TOUPPER(s[i]));

中国大学C语言程序设计进阶_3

在上一篇文章中,我们学习了一些C语言程序设计的基础知识,包括变量、数据类型、运算符和控制语句等。今天,我们将继续深入学习C语言程序设计的进阶知识。

一、函数

函数是C语言程序设计中非常重要的一部分,它可以将程序的功能分解为更小的模块,使程序更易于编写、维护和调试。函数的定义方式如下:

返回类型 函数名(参数列表){     函数体    return 返回值;}

其中,返回类型指函数返回值的类型,函数名是该函数的名称,参数列表是该函数接受的参数类型和名称,可以没有参数,函数体是函数的具体实现代码,return语句用于返回函数值。

下面是一个例子:

#include <stdio.h>int max(int a, int b){     if(a > b){         return a;    }    else{         return b;    }}int main(){     int a = 10;    int b = 20;    int c = max(a, b);    printf(\max = %d\ c);    return 0;}

在这个例子中,我们定义了一个max函数,该函数接受两个int类型的参数a和b,并返回两者中较大的那个数。在main函数中,我们将a和b的值分别设为10和20,并调用max函数,最终得到c的值为20。

二、数组

数组是C语言程序设计中用于存储一组相同类型数据的数据结构。数组的定义方式如下:

数据类型 数组名[数组大小];

其中,数据类型是数组中元素的数据类型,数组名是该数组的名称,数组大小是该数组可以存储的元素数量。

下面是一个例子:

#include <stdio.h>int main(){     int a[5] = { 1, 2, 3, 4, 5};    for(int i = 0; i < 5; i++){         printf(\d \ a[i]);    }    return 0;}

在这个例子中,我们定义了一个包含5个int类型元素的数组a,并将其初始化为{ 1, 2, 3, 4, 5}。然后使用for循环遍历数组中的每个元素,并将其打印出来。

三、指针

指针是C语言程序设计中非常重要的一个概念,它可以用于访问和操作内存中的数据。指针的定义方式如下:

数据类型 *指针变量名;

其中,数据类型是指针所指向的数据类型,*表示该变量是一个指针变量,指针变量名是该指针的名称。

下面是一个例子:

#include <stdio.h>int main(){     int a = 10;    int *p = &a;    printf(\d\ *p);    return 0;}

在这个例子中,我们定义了一个int类型变量a,并将其值设为10。然后定义了一个int类型的指针变量p,并将其赋值为&a,即指向a变量的内存地址。最后,使用*p访问指针所指向的数据,将其打印出来。

四、结构体

结构体是C语言程序设计中用于表示多个数据组合的数据结构,它可以将不同类型的数据组合在一起,形成一个新的数据类型。结构体的定义方式如下:

struct 结构体名称{     数据类型1 成员变量名1;    数据类型2 成员变量名2;    ...};

其中,结构体名称是该结构体的名称,成员变量名是该结构体中每个成员变量的名称,成员变量的数据类型可以是不同的。

下面是一个例子:

#include <stdio.h>struct student{     char name[20];    int age;    float score;};int main(){     struct student stu = { \Tom\ 18, 90};    printf(\name: %s\\ stu.name);    printf(\age: %d\\ stu.age);    printf(\score: %.2f\\ stu.score);    return 0;}

在这个例子中,我们定义了一个名为student的结构体,包含三个成员变量,分别是名字、年龄和分数。在main函数中,我们定义了一个student类型的变量stu,并将其初始化为{ \Tom\ 18, 90}。最后,使用printf语句打印出stu的每个成员变量的值。

五、文件操作

文件操作是C语言程序设计中常用的一种操作,它可以用于读取、写入文件中的数据。文件的读取和写入都需要打开文件,使用fopen函数可以打开一个文件,该函数的定义方式如下:

FILE *fopen(const char *filename, const char *mode);

其中,filename是要打开的文件名,mode是打开文件的模式,包括\\、\r\和\\三种模式,分别表示写入、读取和追加。

下面是一个例子:

#include <stdio.h>int main(){     FILE *fp = NULL;    char str[100];    fp = fopen(\test.txt\ \w\    fprintf(fp, \This is testing for fprintf...\\n\    fputs(\This is testing for fputs...\\n\ fp);    fclose(fp);    fp = fopen(\test.txt\ \r\    fgets(str, 100, fp);    printf(\s\ str);    fclose(fp);    return 0;}

在这个例子中,我们打开了一个名为test.txt的文件,并使用fprintf和fputs向文件中写入了一些内容,最后使用fclose关闭了文件。然后又重新打开了test.txt文件,并使用fgets读取文件中的一行内容,并将其打印出来。

六、总结

在本文中,我们介绍了C语言程序设计的进阶知识,包括函数、数组、指针、结构体和文件操作等。这些知识点是C语言程序设计中非常重要的一部分,掌握了这些知识点,就能够编写出更加复杂、高效的程序。