《《C语言程序设计》考试模拟上机试题.pdf》由会员分享,可在线阅读,更多相关《《C语言程序设计》考试模拟上机试题.pdf(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、语言 2004 最新模拟上机试题 给定程序 MODI1.C 中函数 fun 的功能是: 先从键盘上输入一个 3 行 3 列矩阵的各个元素的值, 然后输出主对角线元素之和。 请改正函数 fun 中的错误或在横线处填上适当的内容并把横线删 除,使它能得出正确的结果。 注意: 不要改动 main 函数,不得增行或删行,也不得更改程序的结构! #include int fun() int a33,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 ); /s
2、canf(%d,a i j ); for (i=0; i 3; i+) sum=sum+a i i ; printf(Sum=%dn,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 的花括号中填入你编写的若干语句。 */ int fun
3、(int array33) / int i,j,t; for(i=0; i 3; i+) for(j=0; j i; j+) t=arrayij; rayij=arrayji; arrayji=t; / main() int i,j; int array33=100,200,300, 400,500,600, 700,800,900; clrscr() ; for (i=0; i 3; i+) for (j=0; j 3; j+) printf(%7d,arrayij); printf(n); fun(array); printf(Converted array:n); for (i=0; i
4、 3; i+) for (j=0; j 3; j+) printf(%7d,arrayij); printf(n); /*程序修改题 2 给定程序 MODI1.C 中函数 fun 的功能是: 将从键盘上输入的每个单词的第一个字母转换为大写字母, 输入时各单词必须用空格隔开, 用.结束输入。 请改正程序中的错误,使程序能输出正确的结果。 注意:不要改动 main 函数, 不得增行或删行,也不得更改 程序的结构! */ int fun(char *c,int status) /*found*/ if (*c= ) return 1; /if (c= ) return 1; else if(stat
5、us & *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); /* 编程题 程序的功能是: 把 20 个随机数存入一个数组, 然后输出该数组中的最小值。其中确定最小值的下标的操作在 fun 函数中实现,请给出该函数的定义。 注意: 部分源程序在文件 PROG1.C 中。请勿改动主
6、函数 main 和其它函数中的任何内容, 仅在函数 fun 的花括号中填入你编写的若干语句。 */ #define VSIZE 20 int vectorVSIZE ; int fun(int list,int size) / int i,min=0; for(i=1; i listi) min=i; return min; / main() int i; clrscr() ; for (i=0;i vectori=rand(); printf(Vector%d=%6dn,i,vectori); i=fun(vector,VSIZE); printf(nMininum: Vector%d=%6
7、dn,i,vectori); 程序修改题 3 /* 给定程序 MODI1.C 中函数 fun 的功能是: 计算整数 n 的阶乘。请改正程序中的错误或在横线处填上适当的内容并把横线删除, 使它能计算出正确的结果。 注意: 不要改动 main 函数, 不得增行或删行, 也不得更改 程序的结构! */ #include stdio.h double fun(int n) double result=1.0; while (n1 & n 0) / while ( s a i ) /*found*/ p=i; / t=i; if ( p!=j ) t = aj; aj = ap; ap = t; put
8、arr( int n, int *z ) int i; for ( i = 1; i = n; i+, z+ ) printf( %4d, *z ); if ( !( i%10 ) ) printf( n ); printf(n); main() int aa20=9,3,0,4,1,2,5,6,8,10,7, n=11; clrscr(); printf( nnBefore sorting %d numbers:n, n ); putarr( n, aa );fun( n, aa ); printf( nAfter sorting %d numbers:n, n ); putarr( n,
9、aa ); /* 编程题 函数 fun 的功能是: 将两个两位数的正整数 a、b 合并形成一个整数放在 c 中。合并的方式是: 将 a 数的十位和个位数依次放在 c 数的个位和百位上, b 数的十位和个位数依次放在 c 数的十位和千位上。 例如, 当 a=45, b=12, 调用该函数后, c=2514。注意: 部分源程序存在文件 PROG1.C 中。请勿改动主函数 main 和其它函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 void fun(int a, int b, long *c) / *c=a/10+a%10*100+b/10*10+b%10*1000; /
10、main() int a,b; long c; clrscr(); printf(Input a, b:); scanf(%d%d, &a, &b); fun(a, b, &c); printf(The result is: %ldn, c); /*程序修改题 6 给定程序 MODI1.C 中函数 fun 的功能是:输出 M 行 M 列整数方阵,然后求两条对角线上各元素之和,返回此和数。请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序 的结构!*/ #define M 5 /*found*/ int fun(int n, int xxM
11、) /int fun(int n, int xx) int i, j, sum=0; printf( nThe %d x %d matrix:n, M, M ); for( i = 0; i M; i+ ) for( j = 0; j M; j+ ) /*found*/ printf( %4d, xx i j ); / printf( %4f, xx i j ); printf(n); for( i = 0 ; i n ; i+ ) sum += xx i i +xx i n-i-1 ; return( sum ); main( ) int aaMM=1,2,3,4,5,4,3,2,1,0, 6,7,8,9,0,9,8,7,6,5,3,4,5,6,7; clrscr(); printf ( nThe sum of all elements on 2 diagnals is %d.,fun( M, aa );