📄 czda015.txt
字号:
二级C语言部分上机模拟试卷及答案
说明:1.二级C语言部分上机模拟试卷共4个题,满分为
100分,60分及格。前两题为DOS操作题,每题15分,共计30
分;后两题为C语言编程题或调试题,分别为40分和30分,
共计70分。
2.测试时间为60分钟。
一、DOS操作题
1 将当前目录下的目录GHY\ARS中的文件GAS.TXT
设置为系统文件属性。
*** 答案:ATTRIB +S \GHY\ARS\GAS.TXT
2 将当前目录下的目录TRY删除。
*** 答案: CD TRY
*** DEL *.*
*** CD..
*** RD TRY
二、调试修改程序题
下面程序中fun函数的功能是:求出1,1+2,1+2+3,…
各项的值并入在一维数组a中传回主函数。
例如:若k=6,则应输出:
1 3 6 10 15 21
请改正函数fun中的错误,使它能得出正确的结果。注意:
不要改动main函数,不得增行或删行,也不得更改程序的结
构!
#include <conio.h>
#include <stdio.h>
#define N 20
/ * 错误在fun函数中 * /
void fun (int *a, int m)
{int i, j, s;
for(j=0, i=1; i<=m; i++, j++);
{s=s+i;
a[j]=s;
}
j=0;
while(a[j])
printf("%d ", a[j]);
printf("\n");
}
main()
{ int a[N]={0}, k;
clrscr();
printf("Enter a number: ");
scanf("%d", &k);
fun(a, k);
}
*** 答案:对fun子程序进行修改,修改以后的程序如下:
*** void fun (int *a, int m)
*** {int i, j, s=0; /* s应赋初值0 */
*** for(j=0, i=1; i<=m; i++, j++)
*** /* for语句后不能有;号 */
*** {s=s+i;
*** a[j]=s;
*** }
*** j=0;
*** while(a[j])
*** printf("%d ", a[j++]);
*** /* printf语句中的a[j]应改为a[j++] */
*** printf("\n");
*** }
三、编程题
请编写函数void fun(int *a, int *n, int y),它的功能
是:把y值插入到a数组中,a数组中的数由主函数按由小到大
的次序从键盘读入,y的值也从键盘读入。插入后,数组中的
数仍然有序。
请勿改动主函数main和其它函数中的任何内容,仅在函数
fun的花括号中填入你编写的若干语句。
#include <conio.h>
#include <stdio.h>
#define M 50
void fun (int a[], int x, int *n)
{
/*答案开始 */
┇
┇
/*答案结束 */
}
main()
{ int a[M], x, n, k;
clrscr();
printf("\nPlease enter n:");
scanf("%d", &n);
printf("\nEnter %d number
(from small to large): \n", n);
for(k=0; k<n; k++)scanf("%d", a+k);
printf("\nExter x:\n"); scanf("%d", &x);
for(k=0; k<n; k++) printf("%d,", a[k]);
printf("\n");
fun(a, x, &n);
printf("\nThe result is:(from small to large):\n");
for (k=0; k<n; k++) printf("%d,", a[k]);
printf("\n");
}
*** 答案:在函数fun中添加程序段如下:
*** void fun (int a[], int x, int *n)
*** {
*** /*参考答案开始 */
*** int i,k;
*** a[*n]=x; i=*n-1;
*** while (a[i]>x&&i>=0)
*** { a[i+1]=a[i]; i--; }
*** a[i+1]=x; *n+=1;
*** /*参考答案结束 */
*** }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -