Skip to content

程序设计与算法基础

约 1486 个字 22 行代码 预计阅读时间 5 分钟

课程信息
  • 教师:何钦铭
  • 学分:4.0
  • 学期:大一秋冬
  • 分数:94 / 4.8

习题代码

以下代码适用于何钦铭老师班级布置的习题,其他老师的习题安排有较大差异。

习题代码
4.66 MB / 2025-01-24

下载

文件说明
  • Curricular:课堂练习
  • Experiment:实验课习题
  • Homework:课后作业

易错题整理

第二周 判断题 1-4

为了检查以下 else-if 语句的三个分支是否正确,至少需要设计 5 组测试用例,即 x 的取值至少有五组(小于 0 的数、0、大于 0 且小于 15 的数、15 和大于 15 的数)。

if (x < 0) {
    y = 0;
}
else if (x <= 15) {
    y = 4 * x / 3;
}
else { 
    y = 2.5 * x - 10.5;
}   
答案解析

正确答案:T

解析:边界条件需要单独设计一组数据测试。


第二周 判断题 1-5

为了检查以下省略 else 的 if 语句的分支是否正确,至少需要设计 3 组测试用例,即 grade 的取值至少有三组(小于 60、等于 60、大于 60)。

if (grade < 60) {    
    printf("Fail\n"); 
}
答案解析

正确答案:T

解析:边界条件需要单独设计一组数据测试。


第四周 判断题 1-2

可以在一个函数中定义另一个函数。

答案解析

正确答案:F

解析:C 语言中不允许在函数中嵌套定义另一个函数。


第四周 判断题 1-3

sizeof() 是 C 语言的一个函数,可以计算参量所占内存的字节数。如 sizeof(int) 可计算整型所占的内存字节数。

答案解析

正确答案:F

解析:sizeof 不是一个函数,而是一个操作符


第四周 判断题 1-4

C 语言中,通过函数调用只能获得一个返回值。

答案解析

正确答案:F

解析:函数可以有一个返回值或无返回值


第四周 选择题 2-1

在 C 语言程序中,若对函数类型未加显式说明,则函数的隐含类型为( )。

答案解析

正确答案:int

解析:在无返回值的函数定义中,void 不能省略;否则,函数类型被默认定义为 int 型。


第五周 选择题 2-6

以下说法正确的是:

答案解析

正确答案:在一个可以正确执行的 C 语言程序中,一个 C 语言函数的声明(原型)可以出现任意多次。

解析:一个函数的声明可以出现很多次;一个 C 语言的项目可以包含很多 .c 文件,其中有且只能有一个 main 函数;.c 文件中可以无 main 函数,但此时该函数无法单独编译。


第五周 选择题 2-15

If all variables have been defined and declared in the following program, all the variables which can be used in function fun() are ___.

void fun(int x) {
    static int y;
    return;
}
int z;
void main()
{
    int a, b;
    fun(a);
}
答案解析

正确答案:x,y

解析:只有声明在函数之前的变量才可以在函数中被调用,故 z 不可以在 fun() 中使用。


第十周 判断题 1-6

假设有定义如下:int array[10];,则该语句定义了一个数组 array。其中 array 的类型是整型指针(即:int *)。

答案解析

正确答案:F

解析:数组名本身是一个指针常量(而非常量指针),其值为数组首元素。虽然在很多情况下,数组名会自动转换为指向数组首元素的指针,但也不能说数组名本身是一个指针。


第十周 判断题 1-7

变量定义:int *p, q; 中,pq 都是指针。

答案解析

正确答案:F

解析:* 总是与变量名结合,这表明按上述代码定义得到的是指针 p 和整型变量 q


第十周 选择题 2-3

Among the following assignments or initializations, __ is wrong.

答案解析

正确答案:char str[10]; str="string";

解析:Incompatible types in assignment of const char [7] to char [10].


第十周 选择题 2-11

Among the following assignments or initializations, __ is wrong.

答案解析

正确答案:char s[10]; s="hello";

解析:Incompatible types in assignment of const char [6] to char [10].


第十三周 判断题 1-6

fseek 函数一般用于文本文件。

答案解析

正确答案:F

解析;fseek 函数一般用于二进制文件,也可以用于文本文件。


第十三周 选择题 2-2

按数据的组织形式划分,文件可以分为:

答案解析

正确答案:文本文件和二进制文件

解析:按数据的组织形式划分,文件可以分为文本文件和二进制文件;按存储介质划分,文件可以分为程序文件和数据文件。


第十三周 选择题 2-6

以下可作为函数 fopen 中第一个参数的正确格式是( )。

答案解析

正确答案:"c:\\user\\text.txt"

解析:在C语言中单个的 \ 会被视作转义字符,需要输入 \\ 才能得到反斜线。


第十三周 选择题 2-9

利用函数 fseek 可实现的操作是( )。

答案解析

正确答案:改变文件指针 fp 的值;文件的顺序读写;文件的随机读写

解析:fseek 原本的功能是改变文件指针 fp 的值,可利用这一功能实现文件的顺序读写和随机读写。


第十四周 判断题 1-2

静态局部变量如果没有赋值,其存储单元中将是随机值。

答案解析

正确答案:F

解析:静态局部变量在声明时如果没有被初始化,则自动被赋予 0 值。反之自动变量如果不显式初始化,则其值是不确定的,即其存储单元中将是随机值。


期末复习

若变量已正确定义,表达式 (j=3, j++) 的值是( )。

答案解析

正确答案:3

解析:整个逗号表达式的值为系列中最后一个表达式的值,j++ 的返回值是自增前的 j 的值。