📄 caoz012.txt
字号:
二级C语言部分上机模拟试卷及答案
说明:1.二级C语言部分上机模拟试卷共4个题,满分为
100分,60分及格。前两题为DOS操作题,每题15分,共计30
分;后两题为C语言编程题或调试题,分别为40分和30分,
共计70分。
2.测试时间为60分钟。
一、DOS操作题
1 将当前目录下的目录POK\MNH中的文件VGF.TXT
复制到目录BGF\CDF中,新文件名为HKJ.DAT。
*** 答案:COPY POK\MNH\VGF.TXT
*** BGF\CDF\HKJ.DAT
2 将当前目录下的目录HGY\ASR中的文件NEW.TXT
设置为只读文件属性。
*** 答案:ATTRIB +R HGY\ASR\NEW.TXT
二、调试修改程序题
下面程序中函数fun的功能是:在含有10 个元素的s数组中
查找最大数,及最大数所在位置(即,下标值),最大数可能
不止一个。最大数作为函数值返回,最大数的个数通过指针
变量n传回,所在位置由数组pos传回。
例如:
若输入 2 8 5 7 8 4 5 3 2 8
则应输出:
The max: 8
The positions: 1 4 9
请改正函数fun中的错误,使它能得出正确的结果。注意:
不要改动main函数,不得增行或删行,也不得更改程序的结
构!
#include<stdio.h>
#include<conio.h>
#define M 10
/ * 错误在fun 函数中 */
int fun(int *a, int *n, int pos[])
{
int i, k, max=32767;
for(i=0; i<M; i++)
if(a[i]>max) max=a[i];
for(i=0; i<M; i++)
if(a[i]= = max) pos[k++]=i;
*n=k
return max;
}
main()
{
int a[M], pos[M], i=0, j, n;
clrscr();
printf("Enter 10 number :");
for(i=0; i<M; i++)scanf("%d", a+i);
j=fun(a, &n, pos);
printf("The max: %d\n", j);
printf("The position:");
for(i=0; i<n; i++ ) printf("%4d", pos[i]);
printf("\n");
}
*** 答案:对fun子程序进行修改,修改以后的程序如下:
*** int fun(int *a, int *n, int pos[])
*** {
int i, k, max=-32768;/*出错在max=32767*/
*** for(i=0; i<M; i++)
*** if(a[i]>max) max=a[i];
*** for(i=0; i<M); i++)
*** if(a[i]==max) pos[k++]=i;
*** /*出错在==的两=号之间有空格*/
*** *n=k; /*缺少;号*/
*** return max;
*** }
三、编程题
请编写函数fun(char *str, int num[10]),它的功能是:
分别找出字符串中每个数字字符(0,1,2,3,4,5,6,7,
8,9)的个数,用num[0]来统计字符0的个数,用num[1]来统
计字符1的个数,…,用num[9]来统计字符9的个数。字符串
由主函数从键盘读入。
请勿改动主函数main和其它函数中的任何内容,仅在函数
fun的花括号中填入你编写的若干语句。
#include <conio.h>
#include <stdio.h>
#include <string.h>
void fun(char * str, int *num)
{
/*答案开始 */
┇
┇
/*答案结束 */
}
main() / * 主函数 * /
{
char s[81];
int num[10], i;
clrscr();
printf("\nPlease enter 1 line strings(1--9):\n");
gets(s);
fun(s, num);
for(i=; i<10; i++, i++)
printf("%d: %3d %d: %3d\n", i, num[i],i+1, num[i+1]);
}
*** 答案:在函数fun中添加程序段如下:
*** void fun(char * str, int *num)
*** {
*** /*参考答案开始 */
*** int i;
*** for(i=0;i<10;i++) num[i]=0;
*** while ( *str!='\0')
*** { if( *str<='9'&& *str>='0')
*** num[*str-'0']++;
*** str++;
*** }
*** /*参考答案开始 */
*** }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -