⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 caoz012.txt

📁 经典C教程,带所有ANSI C的库函数说明及例子
💻 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 + -