论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > C语言程序设计教程
Tag:新手,函数,指针,数据类型,对象,Turbo,入门,运算符,数组,结构,二级,,tc,游戏,试题,问答,编译,视频教程

2002年4月计算机等级考试二级C语言上机试题(1、2、3)

文章类别:C语言程序设计 | 发表日期:2008-9-24 14:47:26

/*程序修改题1
给定程序MODI1.C中函数fun的功能是: 先从键盘上输入一个
3行3列矩阵的各个元素的值, 然后输出主对角线元素之和。
请改正函数 fun 中的错误或在横线处填上适当的内容并把横线删
除,使它能得出正确的结果。
注重: 不要改动 main 函数,不得增行或删行,也不得更改程序
的结构!
*/
#include
int fun()
{
int a[3][3],sum;
int i,j;
/*********found**********/
sum=0;
//______;
for (i=0; i < 3; i++)
{ for (j=0; j < 3; j++)
/*********found**********/
scanf("%d",&a[ i ][ j ]);
//scanf("%d",a[ i ][ j ]);
}
for (i=0; i < 3; i++)
sum=sum+a[ i ][ i ];
printf("Sum=%d\n",sum);
}

main()
{
fun();
}


/*编程题
编写程序, 实现矩阵(3行3列)的转置(即行列互换)
例如, 输入下面的矩阵:
100 200 300
400 500 600
700 800 900
程序输出:
100 400 700
200 500 800
300 600 900

注重: 部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容, 仅在函数fun
的花括号中填入你编写的若干语句。
*/
#include
#include

int fun(int array[3][3])
{//
int i,j,t;
for(i=0; i < 3; i++)
for(j=0; j < i; j++)
{ t=array[i][j];
array[i][j]=array[j][i];
array[j][i]=t; }
//
}

main()
{
int i,j;
int array[3][3]={{100,200,300},
{400,500,600},
{700,800,900}};

clrscr() ;
for (i=0; i < 3; i++)
{ for (j=0; j < 3; j++)
printf("%7d",array[i][j]);
printf("\n");
}
fun(array);
printf("Converted array:\n");
for (i=0; i < 3; i++)
{ for (j=0; j < 3; j++)
printf("%7d",array[i][j]);
printf("\n");
}
NONO();
}

NONO()
{
/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */
int i,j, array[3][3];
FILE *rf, *wf ;

rf = fopen("b0103.in", "r") ;
wf = fopen("b0103.out", "w") ;
for (i=0; i < 3; i++)
for (j=0; j < 3; j++)
fscanf(rf, "%d", &array[i][j]);
fun(array);
for (i=0; i < 3; i++)
{ for (j=0; j < 3; j++)
fprintf(wf, "%7d", array[i][j]);
fprintf(wf, "\n");
}
fclose(rf) ;
fclose(wf) ;
}


/*程序修改题2
给定程序MODI1.C中函数fun的功能是: 将从键盘上输入的每个
单词的第一个字母转换为大写字母, 输入时各单词必须用空格隔开,
用'.'结束输入。
请改正程序中的错误,使程序能输出正确的结果。
注重:不要改动 main 函数, 不得增行或删行,也不得更改
程序的结构!
****老王注:本类有输出结果的程序修改题,在评分时先看结果,假如
**** 结果正确,则直接给分;结果不正确或无结果,再一个错
**** 一个错评分。此法并不适用所有类似题。
*/

#include

int fun(char *c,int status)
{
/***********found**********/
if (*c==' ') return 1;
//if (c==' ') return 1;
else
{
if(status && *c <= 'z' && *c >= 'a')
/***********found**********/
*c += 'A' - 'a';
//c += 'A' - 'a';
return 0;
}
}

main()
{
int flag=1;
char ch;
printf("请输入一字符串,用点号结束输入!\n") ;
do
{
ch=getchar();
flag=fun(&ch, flag);
putchar(ch);
}while(ch!='.');
printf("\n");
NONO();
}

NONO( )
{
/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */
char s1[81], ch;
int i, flag = 1;
FILE *rf, *wf ;

rf = fopen("g02.in", "r") ;
wf = fopen("g02.out", "w") ;
fgets(s1, 80, rf) ;
for(i = 0 ; i < strlen(s1) ; i++) {
ch = s1[i] ;
flag = fun(&ch, flag) ;
s1[i] = ch ;
}
fprintf( wf,"%s", s1 );
fclose(rf) ;
fclose(wf) ;
}

/* G02.IN 内容:
keys in indexes allow you quick access to specific records and define
*/
/* G02.OUT 内容:
Keys In Indexes Allow You Quick Access To Specific Records And Define
*/


/* 编程题
程序的功能是: 把20个随机数存入一个数组, 然后输出该数组
中的最小值。其中确定最小值的下标的操作在fun函数中实现,请给
出该函数的定义。
注重: 部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容, 仅在函数fun
的花括号中填入你编写的若干语句。
*/
/* 老王注:本题考生可以一字不动,只要按 Ctrl+F9 运行一下,
即可得 38 分,费去 m牛n虎之力正确编程,不过多得
2 分而已!
*/
#include
#include
#define VSIZE 20

int vector[VSIZE] ;

int fun(int list[],int size)
{//
int i,min=0;
for(i=1; i < size; i++)
if(list[min]>list[i])
min=i;
return min;
//
}

main()
{
int i;
clrscr() ;
for (i=0;i
{
vector[i]=rand();
printf("Vector[%d]=%6d\n",i,vector[i]);
}
i=fun(vector,VSIZE);
printf("\nMininum: Vector[%d]=%6d\n",i,vector[i]);
NONO();
}

NONO()
/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,
输出数据,关闭文件。 */
{
int i;
FILE *fp ;
fp = fopen("b0203.out", "w") ;
for (i=0;i
i=fun(vector,VSIZE);
fprintf(fp, "%d\n", vector[i]) ;
fclose(fp) ;
}
/* b0203.out 内容:
346
130
10982
1090
11656
7117
17595
6415
22948
31126
9004
14558
3571
22879
18492
1360
5412
26721
22463
25047
130
*/

程序修改题3

code:--------------------------------------------------------------------------------
/*
给定程序MODI1.C中函数fun的功能是: 计算整数n的阶乘。
请改正程序中的错误或在横线处填上适当的内容并把横线删除,
使它能计算出正确的结果。
注重: 不要改动 main 函数, 不得增行或删行, 也不得更改
程序的结构!
*/
#include "stdio.h"
double fun(int n)
{
double result=1.0;
while (n>1 && n<170)
/*********found*********/
result*=n--;
//result*=--n;
/*********found*********/
return result;
//return _____;
}

main()
{
int n;
clrscr();
printf("Enter an integer: ");
scanf("%d",&n);
printf("\n\n%d!=%lg\n\n",n,fun(n));
NONO();
}

NONO( )
{
/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */
int n,i;
FILE *rf, *wf ;

rf = fopen("g03.in", "r") ;
wf = fopen("g03.out", "w") ;
for(i=1; i<=10; i++) {
fscanf(rf, "%d", &n) ;
fprintf( wf, "%lg\n", fun ( n ) );
}
fclose(rf) ;
fclose(wf) ;
}
--------------------------------------------------------------------------------
/* g03.in 文件内容如下:
5 8 11 6 15 31 18 23 29 37
*/
/* g03.out 文件内容如下:
120
40320
3.99168e+07
720
1.30767e+12
8.22284e+33
6.40237e+15
2.5852e+22
8.84176e+30
1.37638e+43
*/


   编程题
code:--------------------------------------------------------------------------------
/*
编写函数fun,函数的功能是: 从字符串中删除指定的字符。同
一字母的大、小写按不同字符处理。
若程序执行时输入字符串为: turbo c and borland c++
从键盘上输入字符:n, 则输出后变为: turbo c ad borlad c++
假如输入的字符在字符串中不存在, 则字符串照原样输出。
注重: 部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容, 仅在函数fun
的花括号中填入你编写的若干语句。
*/
#include
#include

int fun(char s[],int c)
{//
char *q=s;
for(; *q; q++)
if(*q != c) *(s++)=*q;
*s=0;
//
}


main()
{
static char str[]="turbo c and borland c++";
char ch;
clrscr() ;
printf("原始字符串:%s\n", str);
printf("输入一个字符:");
scanf("%c",&ch);
fun(str,ch);
printf("str[]=%s\n",str);
NONO();
}

NONO()
{
/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,
输出数据,关闭文件。 */
FILE *rf, *wf ;
char s[81], ch, w ;
int len ;

rf = fopen("b0303.in", "r") ;
wf = fopen("b0303.out", "w") ;
fgets(s, 80, rf) ;
fscanf(rf, "%c", &ch) ;
len = strlen(s) - 1 ;
w = s[len] ;
if(w == '\n' || w == 0x1a) s[len] = 0 ;
fun(s, ch) ;
fprintf(wf, "%s", s) ;
fclose(rf) ;
fclose(wf) ;
}
--------------------------------------------------------------------------------
/* b0303.in 文件内容如下:
You can specify that the primary index is in record number sequence.
t
*/
/* b0303.out 文件内容如下:
You can specify ha he primary index is in record number sequence.
*/

视频教程列表
文章教程搜索
 
C语言程序设计推荐教程
C语言程序设计热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058