全国计算机二级考试题库:字符串查找与程序纠错

版权申诉
0 下载量 109 浏览量 更新于2024-07-13 收藏 3.46MB PDF 举报
本资源是一份全国计算机二级考试题库的上机部分,主要针对C语言编程题。题目包括程序填空题和程序改错题,旨在考察考生的基础编程技能和逻辑理解。 1. **程序填空题** 这段代码的功能是查找一个字符数组`ss`中所有包含给定子串`substr`的字符串,并在找到时输出。函数`fun`接受两个参数:一个指向字符串数组的指针`ss`和一个字符串`substr`。首先,定义了两个全局常量`N`(字符串数组长度)和`M`(每个字符串的最大长度)。函数通过`for`循环遍历数组,`strstr`库函数用于查找子串。`if`语句判断`strstr`的结果是否为`NULL`,非`NULL`表示找到了子串,此时输出该字符串并设置`find`标志为1。如果没有找到子串,`if`块外的`printf`语句会输出提示信息"Didn't find!"。 代码缺失的部分填空如下: ```c #include <stdio.h> #include <string.h> #define N 5 #define M 15 void fun(char (*ss)[M], char *substr) { int i, find = 0; for (i = 0; i < N; i++) // 第一个空格填写 N { if (strstr(ss[i], substr) != NULL) // 第二个空格填写 substr { find = 1; puts(ss[i]); printf("\n"); } } if (find == 0) printf("\nDon't found!\n"); // 第三个空格填写 0 } main() { char x[N][M] = {"BASIC", "Clangwage", "Java", "QBASIC", "Access"}, str[M]; int i; printf("\nThe original string\n\n"); for (i = 0; i < N; i++) puts(x[i]); printf("\n"); printf("\nEnter a string for search:"); gets(str); fun(x, str); } ``` 2. **程序改错题** 给定的函数`fun`目的是计算三个整数`x`, `y`, `z`的最小公倍数。函数中有一个错误,即在计算余数时使用了`"`运算符而不是`%`。修复后的代码应如下所示: ```c #include<stdio.h> void fun(int x, int y, int z) { int j, t, n, m; j = 1; t = j % x; // 修正这里,用%运算符代替" m = j % y; // 修正这里,用%运算符代替" // ...其他代码不变... } ``` 通过这两部分的练习,考生将巩固对C语言基本语法、字符串处理、控制结构和错误排查的理解。在实际考试中,理解和正确使用这些基础知识至关重要,特别是对于处理字符串操作和算法设计。