C语言上机试题库.docx
- 文档编号:23415361
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:20
- 大小:17.63KB
C语言上机试题库.docx
《C语言上机试题库.docx》由会员分享,可在线阅读,更多相关《C语言上机试题库.docx(20页珍藏版)》请在冰豆网上搜索。
C语言上机试题库
C上机试题库
一、2002年4月
/*程序修改题1
给定程序中函数fun的功能是:
先从键盘上输入一个
3行3列矩阵的各个元素的值,然后输出主对角线元素之和。
请改正函数fun中的错误或在横线处填上适当的内容并把横线删
除,使它能得出正确的结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序
的结构!
*/
#include
intfun()
{
inta[3][3],sum;
inti,j;
/*********found**********/
sum=0;
结束输入。
请改正程序中的错误,使程序能输出正确的结果。
注意:
不要改动main函数,不得增行或删行,也不得更改
程序的结构!
****老王注:
本类有输出结果的程序修改题,在评分时先看结果,如果
****结果正确,则直接给分;结果不正确或无结果,再一个错
****一个错评分。
此法并不适用所有类似题。
*/
#include
intfun(char*c,intstatus)
{
/***********found**********/
if(*c=='')return1;
;
printf("\n");
NONO();
}
NONO()
{
/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。
*/
chars1[81],ch;
inti,flag=1;
FILE*rf,*wf;
rf=fopen("","r");
wf=fopen("","w");
fgets(s1,80,rf);
for(i=0;i ch=s1[i]; flag=fun(&ch,flag); s1[i]=ch; } fprintf(wf,"%s",s1); fclose(rf); fclose(wf); } /*内容: keysinindexesallowyouquickaccesstospecificrecordsanddefine */ /*内容: KeysInIndexesAllowYouQuickAccessToSpecificRecordsAndDefine */ /*编程题 程序的功能是: 把20个随机数存入一个数组,然后输出该数组 中的最小值。 其中确定最小值的下标的操作在fun函数中实现,请给 出该函数的定义。 注意: 部分源程序在文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun 的花括号中填入你编写的若干语句。 */ /*老王注: 本题考生可以一字不动,只要按Ctrl+F9运行一下, 即可得38分,费去m牛n虎之力正确编程,不过多得 2分而已! */ #include #include #defineVSIZE20 intvector[VSIZE]; intfun(intlist[],intsize) { t */ /*文件内容如下: Youcanspecifyhaheprimaryindexisinrecordnumbersequence. */ 二、2001年9月 *程序修改题13 给定程序中函数fun的功能是: 将字符串中的内容按 逆序输出,但不改变字符串中的内容。 例如,若字符串为abcd,则应输出: dcba。 请改正程序中的错误,使它能计算出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序 的结构! */ #include /************found************/ fun(char*a) */ /*正确程序生成的内容如下: 0 0 1 1 0 0 0 1 1 0 */ /*编程题 请编一个函数fun(int*a,intn,int*odd,int*even),函 数的功能是分别求出数组中所有奇数之和以及所有偶数之和。 形参n 给出数组中数据的个数;利用指针odd返回奇数之和,利用指针even 返回偶数之和。 例如: 数组中的值依次为: 1,9,2,3,11,6;则利用指针 odd返回奇数之和24;利用指针even返回偶数之和8。 注意: 部分源程序存在文件文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun 的花括号中填入你编写的若干语句。 */ #include #include #defineN20 fun(int*a,intn,int*odd,int*even) {,fun(M,aa)); } /*编程题 函数fun的功能是: 将两个两位数的正整数a、b合并形成一个 整数放在c中。 合并的方式是: 将a数的十位和个位数依次放在c数 的千位和十位上,b数的十位和个位数依次放在c数的个位和百位 上。 例如,当a=45,b=12。 调用该函数后,c=4251。 注意: 部分源程序存在文件中。 数据文件中 的数据不得修改。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun 的花括号中填入你编写的若干语句。 */ #include #include voidfun(inta,intb,long*c) {// *c=a/10*1000+a%10*10+b/10+b%10*100; // } main() {inta,b;longc; clrscr(); printf("Inputa,b: "); scanf("%d%d",&a,&b); fun(a,b,&c); printf("Theresultis: %ld\n",c); NONO(); } NONO() {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE*rf,*wf; inti,a,b;longc; rf=fopen("","r"); wf=fopen("","w"); for(i=0;i<10;i++){ fscanf(rf,"%d,%d",&a,&b); fun(a,b,&c); fprintf(wf,"a=%d,b=%d,c=%ld\n",a,b,c); } fclose(rf); fclose(wf); } /* 45,12 63,54 14,78 88,91 71,13 12,45 72,32 29,99 34,43 22,44 */ /* a=45,b=12,c=4251 a=63,b=54,c=6435 a=14,b=78,c=1847 a=88,b=91,c=8189 a=71,b=13,c=7311 a=12,b=45,c=1524 a=72,b=32,c=7223 a=29,b=99,c=2999 a=34,b=43,c=3344 a=22,b=44,c=2424 */ 2001年9月计算机等级考试二级C语言上机试题(1、2、3) /*程序修改题1 给定程序中函数fun的功能是: 先将在字符串s中的字符 按正序存放到t串中,然后把s中的字符按逆序连接到t串的后面。 例如: 当s中的字符串为: "ABCDE"时, 则t中的字符串应为: "ABCDEEDCBA"。 请改正程序中的错误,使它能得出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序 的结构! */ #include #include #include voidfun(char*s,char*t) {inti,sl; sl=strlen(s); /************found************/ for(i=0;i //for(i=0;i<=s1;i++) t[i]=s[i]; for(i=0;i t[sl+i]=s[sl-i-1]; /************found************/ t[sl+i]='\0'; //t[sl]='\0'; } main() {chars[100],t[100]; clrscr(); printf("\nPleaseenterstrings: ");scanf("%s",s); fun(s,t); printf("Theresultis: %s\n",t); } /*编程题 函数fun的功能是: 将两个两位数的正整数a、b合并形成一个 整数放在c中。 合并的方式是: 将a数的十位和个位数依次放在c数 的千位和十位上,b数的十位和个位数依次放在c数的百位和个位 上。 例如,当a=45,b=12。 调用该函数后,c=4152。 注意: 部分源程序存在文件中。 数据文件中 的数据不得修改。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun 的花括号中填入你编写的若干语句。 */ #include #include voidfun(inta,intb,long*c) {// *c=a/10*1000+a%10*10+b/10*100+b%10; /*下面的方法为另一种更通用的方法,显然要烦琐些 intd,e,n; *c=0;n=1; while(a>0) {d=a%10*10;e=b%10; *c+=(d+e)*n; n*=100; a=a/10;b=b/10;} */// } main() {inta,b;longc; clrscr(); printf("Inputa,b: ");scanf("%d%d",&a,&b); fun(a,b,&c); printf("Theresultis: %d\n",c); NONO(); } NONO() {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE*rf,*wf; inti,a,b;longc; rf=fopen("","r"); wf=fopen("","w"); for(i=0;i<10;i++){ fscanf(rf,"%d,%d",&a,&b); fun(a,b,&c); fprintf(wf,"a=%d,b=%d,c=%ld\n",a,b,c); } fclose(rf); fclose(wf); } /*文本文件内容如下: 45,12 63,54 14,78 88,91 71,13 12,45 72,32 29,99 34,43 22,44 */ /*正确程序输出的内容如下: a=45,b=12,c=4152 a=63,b=54,c=6534 a=14,b=78,c=1748 a=88,b=91,c=8981 a=71,b=13,c=7113 a=12,b=45,c=1425 a=72,b=32,c=7322 a=29,b=99,c=2999 a=34,b=43,c=3443 a=22,b=44,c=2424 */ /*程序修改题2 给定程序中函数fun的功能是: 先将在字符串s中的字符 按正序存放到t串中,然后把s中的字符按逆序连接到t串的后面。 例如: 当s中的字符串为: "ABCDE"时, 则t中的字符串应为: "ABCDEEDCBA"。 请改正程序中的错误,使它能得出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序 的结构! */ #include #include #include voidfun(char*s,char*t) {inti,sl; sl=strlen(s); /************found************/ for(i=0;i //for(i=0;i<=s1;i++) t[i]=s[i]; for(i=0;i t[sl+i]=s[sl-i-1]; /************found************/ t[sl+i]='\0'; //t[sl]='\0'; } main() {chars[100],t[100]; clrscr(); printf("\nPleaseenterstrings: ");scanf("%s",s); fun(s,t); printf("Theresultis: %s\n",t); } /*编程题 函数fun的功能是: 将两个两位数的正整数a、b合并形成一个 整数放在c中。 合并的方式是: 将a数的十位和个位数依次放在c数 的千位和十位上,b数的十位和个位数依次放在c数的百位和个位 上。 例如,当a=45,b=12。 调用该函数后,c=4152。 注意: 部分源程序存在文件中。 数据文件中 的数据不得修改。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun 的花括号中填入你编写的若干语句。 */ #include #include voidfun(inta,intb,long*c) {// *c=a/10*1000+a%10*10+b/10*100+b%10; /*下面的方法为另一种更通用的方法,显然要烦琐些 intd,e,n; *c=0;n=1; while(a>0) {d=a%10*10;e=b%10; *c+=(d+e)*n; n*=100; a=a/10;b=b/10;} */// } main() {inta,b;longc; clrscr(); printf("Inputa,b: ");scanf("%d%d",&a,&b); fun(a,b,&c); printf("Theresultis: %d\n",c); NONO(); } NONO() {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE*rf,*wf; inti,a,b;longc; rf=fopen("","r"); wf=fopen("","w"); for(i=0;i<10;i++){ fscanf(rf,"%d,%d",&a,&b); fun(a,b,&c); fprintf(wf,"a=%d,b=%d,c=%ld\n",a,b,c); } fclose(rf); fclose(wf); } /*文本文件内容如下: 45,12 63,54 14,78 88,91 71,13 12,45 72,32 29,99 34,43 22,44 */ /*正确程序输出的内容如下: a=45,b=12,c=4152 a=63,b=54,c=6534 a=14,b=78,c=1748 a=88,b=91,c=8981 a=71,b=13,c=7113 a=12,b=45,c=1425 a=72,b=32,c=7322 a=29,b=99,c=2999 a=34,b=43,c=3443 a=22,b=44,c=2424 */ /*程序修改题3 给定程序中函数fun的功能是: 从低位开始取出长整型 变量s中奇数位上的数,依次构成一个新数放在t中。 例如,当s中的数为: 7654321时,t中的数为: 7531。 请改正程序中的错误,使它能得出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序 的结构! */ #include #include /************found************/ voidfun(longs,long*t) //voidfun(longs,longt) {longsl=10; *t=s%10; while(s>0) {s=s/100; *t=s%10*sl+*t; /************found************/ sl=sl*10; //sl=sl*100; } } main() {longs,t; clrscr(); printf("\nPleaseenters: ");scanf("%ld",&s); fun(s,&t); printf("Theresultis: %ld\n",t); } /*编程题 函数fun的功能是: 将两个两位数的正整数a、b合并形成一个 整数放在c中。 合并的方式是: 将a数的十位和个位数依次放在c数 的个位和百位上,b数的十位和个位数依次放在c数的千位和十位 上。 例如,当a=45,b=12。 调用该函数后,c=1524。 注意: 部分源程序存在文件中。 数据文件中 的数据不得修改。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun 的花括号中填入你编写的若干语句。 */ #include #include voidfun(inta,intb,long*c) {// *c=a/10+a%10*100+b/10*1000+b%10*10; // } main() {inta,b;longc; clrscr(); printf("Inputa,b: "); scanf("%d%d",&a,&b); fun(a,b,&c); printf("Theresultis: %ld\n",c); NONO(); } NONO() {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE*rf,*wf; inti,a,b;longc; rf=fopen("","r"); wf=fopen("","w"); for(i=0;i<10;i++){ fscanf(rf,"%d,%d",&a,&b); fun(a,b,&c); fprintf(wf,"a=%d,b=%d,c=%ld\n",a,b,c); } fclose(rf); fclose(wf); } /*文本文件内容如下: 45,12 63,54 14,78 88,91 71,13 12,45 72,32 29,99 34,43 22,44 */ /*正确程序生成的内容应当如下: a=45,b=12,c=1524 a=63,b=54,c=5346 a=14,b=78,c=7481 a=88,b=91,c=9818 a=71,b=13,c=1137 a=12,b=45,c=4251 a=72,b=32,c=3227 a=29,b=99,c=9992 a=34,b=43,c=4433 a=22,b=44,c=4242 */
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 上机 试题库