历年全国计算机上机考试题.doc_第1页
历年全国计算机上机考试题.doc_第2页
历年全国计算机上机考试题.doc_第3页
历年全国计算机上机考试题.doc_第4页
历年全国计算机上机考试题.doc_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1模拟试题(一)1.填空题请补充函数fun()该函数的功能是把从主函数中输入的字符串str2接在字符串str1的后面。结果输出How do you do?例如str仁 “ How do”str2= “ you do? ”注意部分源程序给出如下。仅在函数fun的横线上填入所请勿改动主函数 main和其他函数中的任何内容 编写的若干表达式或语句。试题程序#in clude<stdio.h>#in clude<c oni o.h>#defi ne N 40void fun (char *str1,char *str2)int i=0;char *p 1=str1;char *

2、p 2=str2;while(* (p 1+i)i+;for( ;*p2【2】;i+)*(p 1+i)=* p2+【31 ;*(p 1+i)='0' main ()char str1N,str2N;clrscr();prin tf("* Inp ut the stri ng str1 & str2*n");printf(” nstr1:");gets(str1);printf(” nstr2:");gets(str2);prin tf("*The stri ng str1 & str2* n"); p

3、uts(str1);p uts(str2);fun( str1,str2);prin tf("*The new string *n"); p uts(str1);答案及评析:【2】*p2【3】*p2+1 变量i用来记录字符串str1 0'时 while循环结束 变量 通过for循环将字符串str2接在str1的长度当指针指到字符串str1结 停止累加。填空2 指针p2指向字符串 后面循环结束的条件是指针p2所指【1 】*(p 1+i)【解析】填空2束标志符str2i的字符是字符串结束标志符 0'。填空3 指针p2最初指向字符串str2的首字符 通过自加1 使

4、指针p2依次向后移动 指向str2的各个字符 实现将字符串str2 接在str1后面的功能。2.改错题下列给定程序中函数fun()的作用是将字符串tt中的小写字母都改为对应的大写字母其他字符不变。例如若输入"edS dAd"则输出"EDSDAD。请改正程序中的错误使它能得到正确结果。注意不要改动main函数不得增行或删行也不得更改程序的结构。试题程序#i nclude <stdio.h>#in clude <stri ng.h>#in clude <coni o.h>/*fo un d*/char fun( char tt)in

5、t i;for(i=0;tti;i+)/*fo un d*/if(tti>='A')&&(tti<= 'Z')tti-=32;return(tt);main ()int i;char tt81;clrscr();prin tf("nPI ease en ter a stri ng:");gets(tt);prin tf("nThe result stri ng is: n%s",fu n( tt);答案及评析:1正确2正确错误 char fun (char tt)char *fun( char

6、tt)错误if(tti>='A')&&(tti<= 'Z')if(tti>='a')&&( tti<= 'z')函数的返回值是字符串的首地址【解析】错误1 前要加'*'号。3错误2 题目要求将小写字母改为大写字母3.编程题是指针类型所以在函数名所以if语句的判断条件是小写字母。请编写函数fun()该函数的功能是移动一维数组中的内容若数组中有n个整数 要求把下标从P到n-1pw n-1的数组元素平移到数组的前面。例如 一维数组中的原始内容为12345678910

7、11121315 P的值为6。移动后 一维数组中的内容应为 78910101113141512345部分源程序给出如下。1412注意仅在函数fun的花括号中填入请勿改动主函数main和其他函数中的任何内容 所编写的若干语句。试题程序#i nclude <stdio.h>#defi ne N 80void fun (i nt *w, int p, int n)main ()int aN=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15;int i, p, n=15;prin tf("The origi nal data:n");for(i=0

8、;i< n;i+)prin tf("%3d",ai);prin tf("nnE nter p:");scan f("%d",&p);fun (a ,p,n);prin tf("nThe data after movin g:n");for(i=0;i< n;i+)prin tf("%3d",ai);prin tf("nn");次*/循环右移n-p实现循环右移*/答案及评析:void fun (i nt *w, int p, int n)int i,j,t;

9、for(i=p;i<=n-1;i+)/*t=w n-1;for(j=n-2;j>=0;j-) /*wj+1=wj;w0=t;4 一个【解析】本题采用”循环右移”的算法。和我们在前面分析的稍有不同的是 是整型数组一个是字符型数组。模拟试题(二)1.填空题请补充函数fun()该函数的功能是求一维数组xN的平均值并对所得结果进行四舍五入保留两位小数。例如 当 x10=15.6,19.9,16.7,15.2,18.3,12.1,15.5,11.0,10.0,16.0 结果为 avg=15.030000。注意部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容仅在函数fun的横线

10、上填入所编写的若干表达式或语句。试题程序#in clude<stdio.h>#in clude<c oni o.h>double fu n( double x10)int i;long t;double avg=0.0;double sum=0.0;【1】;for(i=0;i<10;i+)sum=sum+xi【2】; 【3】;avg=(double)t/100; return avg;avg=sum/10;avg= avg*1000t=(avg+5)/10 main ()double avg,x10=15.6,19.9,16.7,15.2,18.3,12.1,15

11、.5,11.0,10.0,16.0;int i;clrscr();prin tf("nThe origi nal data is :n");for(i=0;i<10;i+)prin tf("%6.1f",xi);prin tf("nn");avg=fu n( x);prin tf("average=%fnn ”,avg);5答案及评析:【1 】sum+=xi【2 avg*1000【3】(avg+5)/10【解析】填空1 通过for循环求出10个数的累加和存于变量sum中。填空2为了实现四舍五入保留两位小数的功能应将平均

12、值先扩大1000倍。填空3将平均值加上5 再除以10实现四舍五入的功能。2.改错题下列给定程序中函数fun()的功能是先从键盘上输入一个3行3列的矩阵的各个元素的值然后输出主对角线元素之积。请改正函数fun()中的错误使它能得出正确的结果。注意不要改动main函数不得增行或删行也不得更改程序的结构。试题程序#i nclude <stdio.h>int fun ()int a33,mul;int i,j;mul=1;for (i=0;i<3;i+)/*fo un d*/for (i=0;j<3;j+)sca nf("%d",&aij);for(

13、i=0;i<3;i+)/*fo un d*/mul=mul*aij;prin tf("Mul=%dn",mul);main ()fun ();答案及评析:1正确2正确错误 for (i=0;j<3;j+)for (j=0;j<3;j+)错误 mul=mul*aij; mul=mul*aii;循环结构中要给变量j赋初值0。所以参加乘法的是aii【解析】错误1错误2 主对角元素的行号和列号相等而不是aij。3.编程题学生的记录由学号和成绩组成N名学生的数据已在主函数中放入结构体数组s中 请编写函数fun() 它的功能是 把分数最低的学生数据放在 h所指的数组

14、6中。注意分数低的学生可能不只一个函数返回分数最低学生的人数。注意部分源程序给出如下。请勿改动主函数 main和其他函数中的任何内容仅在函数fun的花括号中填入所编写的若干语句。试题程序#i nclude <stdio.h>#defi ne N 16typ edef struct char num10;int s ;STREC;int fun (STREC *a, STREC *b)main ()STREC sN="GA005",82,"GA003",75,"GA002",85,"GA004",78,&

15、quot;GA001",95,"GA007",62,"GA008",60,"GA006",85,"GA015",83,"GA013",94,"GA012",78,"GA014",97,"GA011",60,"GA017",65,"GA018",60,"GA016",74;STREC hN;int i, n;FILE *out;n=fun( s,h);prin tf(&

16、quot;The %d lowest score :n ”, n);for (i=0; i<n; i+)prin tf("%s %4dn",hi. num,hi.s);/*prin tf("n");out=fo pen ("out19.dat", "w");fprin tf(out, "%dn", n);for(i=0; i<n; i+);fprin tf(out, "%4dn ",hi.s);fclose(out);答案及评析:int fun (STREC *a

17、, STREC *b)int i,j=0,min=a0.s;for(i=0;i<N;i+)if(mi n> ai.s)mi n=ai.s; /*7 for(i=0;i<N;i+)if(min=ai.s) bj+=ai; /* return j;【解析】该程序使用循环嵌套环的作用是找出与找出最小值*/*输出最低分学生的学号和成绩*/找出成绩与min相等的学生的记录存入结构体b中*/返回最低成绩的学生人数*/第min相等的成绩个for语句的作用是找出最小值。第2个循也即最低成绩的学生记录并存入b中。模拟试题(三)1.填空题请补充函数fun()各自出现的次数 串库函数。例如输入 “

18、该函数的功能是 结果保存在数组从a'到Z'统计一个字符串中所有字母字符 alf中。注意不区分大小写不能使用字符abc+5*c ” 结果为 a=2,b=1,c=2。注意部分源程序给出如下。请勿改动主函数 main和其他函数中的任何内容仅在函数fun的横线上填入所编写的若干表达式或语句。 试题程序#in clude<c oni o.h>#in clude<stdio.h>#defi ne N 100void fun(char *tt,i nt alf)int i;char *p=tt;for(i=0;i<26;i+) alfi=0;while(* p)

19、if(* p>='A'&&*p <='Z')*p+=32【2;if(* p>='a'&&*p <='z')alf* p-'a'+;p+【3; main ()char strN;char a='a'int alf26,k;clrscr();prin tf("nP lease en ter a char stri ng:");8 scan f("%s",str);prin tf("n*The ori

20、gi nal strin g*n");p uts(str);fun( str,alf);prin tf("n*The number of letter*n");for(k=0;k<26;k+)if(k%5=0)prin tf("n");prin tf("%c=%d ",a+k,alfk);prin tf("n");答案及评析:【1 】alfi=0【解析】填空 零。填空2 应的小写字母【2 *p+=32【3 】p+1 数组alf26用来存放字母字符出现的次数在使用之前需要清题目要求不区分大小写所以可以

21、先将所有的大写字母都转换为对然后一并记录出现的次数。将大写字母转换为对应的小写字母只需将ASCII码加上32就可以了。填空3 指针P指向字符串tt 通过P自加1 来移动指针访问字符串中的所有字符。2.改错题s中奇数位上s中的数为4576235时 t中的数下列给定程序中函数 fun()的功能是从低位开始取出长整型变量 的数 依次构成一个新数放在t中。例如 当为 4725。请改正程序中的错误使它能得到正确结果。也不得更改程序的结构。注意不要改动main函数不得增行或删行 试题程序#in clude<stdio.h>#in clude <coni o.h>/*fo un d*

22、/int fun (I ong s,l ong *t)long s1=10;*t=s%10;while(s>0)/*fo un d*/s=s%100;*t=s%10*s1+*t;s1=s1*10;main ()9 long s, t; clrscr(); prin tf("nP lease en ter s:"); scan f("%ld", &s); fun( s, &t);prin tf("The result is: %ldn ",t);答案及评析:1正确2正确错误int fun (I ong s,lo n

23、g *t)void fun (Io ng s,l ong *t) 错误 s=s%100;s=s/100;所以没有返回值应定义函数I "/"-整除的区别。将一个数整除 100 将一个数整除100取余则可得到由【解析】错误1 函数由指针来完成参数的传递 的类型为void。错误2 此处要注意特殊运算符号 ""-取余和 则可得到由其百位数以上的数组成的新数字-十位数和个位数组成的新数。3.编程题请编写一个函数fun() 它的功能是 求出一个4X M整型二维数组中最小元素的值并将此值返回调用函数。注意部分源程序给出如下。请勿改动主函数 main和其他函数中的任何内

24、容仅在函数fun的花括号中填入所编写的若干语句。试题程序#defi ne M 4#i nclude <stdio.h>fun (int aM) main ()int arr4M=11,3,9,35,42,-4,24,32,6,48,-32,7,23,34,12,-7; prin tf("mi n=%drTfu n(anj);答案及评析:fun (int aM)10 int i,j,mi n=a00;for(i=0;i<4;i+)for(j=0;j<M;j+)if(mi n> aij)mi n=aij; /*return mi n;【解析】此类求最大值或最

25、小值的 要求数组中的所有元素走动一遍 min存放数组中的第一个元素的值。求出二维数组的最小值*/采用的是逐行查找的方式。即行下标在外层循环环的嵌套中越在内层循环循环变化就越快。C语言问题 我们可以采用逐个比较的方式。 并从中找出最大、最小值可按逐行查找也可按逐列查找的方式列下标在内层循环要注意一开始应使本题因为在循模拟试题(四)1.填空题请补充函数fun() 该函数的功能是分类统计一个字符串中元音字母和其他字符的个数不区分大小写。例如 输入 aeiouAOUpqrt 结果为 A:2 E:1 1:1 O:2 U:2 other:4注意部分源程序给出如下。请勿改动主函数 main和其他函数中的任何

26、内容仅在函数fun()的横线上填入所编写的若干表达式或语句。试题程序#in clude<stdio.h>#in clude<c oni o.h>#defi ne N 100void fun( char *str,i nt bb)char *p=str; int i=0;for(i=0;i<6;i+)bb0=0【11 ;while(* p)switch(* p)case 'A':case 'a':bb0+;break;case 'E':case 'e':bb1+;break;case 'I

27、9;:case 'i':bb2+;break;case 'O':case 'o':bb3+;break; case 'U':11 case 'u':bb4+;break; default:bb5+;p+ main ()char strN,ss6="AEI0U"int i;int bb6;clrscr();prin tf("I nput a stri ng: n ”); gets(str);prin tf("the string is: n");p uts(str);

28、fun( str,bb);for(i=0;i<5;i+)prin tf(”n%c:%d",ssi,bbi);prin tf("nother:%d",bbi);答案及评析:【11 bbi=0【21 bb5+【31 p+;在使用【解析1填空1 数组bb6用来存放5个元音字母和其他字符的个数 之前需要清零。填空2 数组元素bb5用来存放其他字符的个数当指针P所指的字符不是元音字母时则认为是其他字符bb5加1。填空3 指针P指向字符串str 通过P自加1来移动指针访问字符串中的所有字符。2.改错题下列给定的程序中函数fun()的功能是计算并输出k以内最大的6个能被7

29、或11整除的自然数之和。K的值由主函数传入若k的值为500则函数的值为 2925。请改正程序中的错误使它能得到正确结果。注意不要改动main函数不得增行或删行也不得更改程序的结构。试题程序#in clude<stdio.h>#in clude <coni o.h>int fun (i nt k)int m=0,mc=0, j;/*fo un d*/while(k>=2) &&(mc<6)11 case 'u':bb4+;break;default:bb5+;P+ main ()char strN,ss6="AEI0U

30、"int i;int bb6;clrscr();prin tf("I nput a stri ng: n");gets(str);prin tf("the string is: n");p uts(str);fun( str,bb);for(i=0;i<5;i+)prin tf("n%c:%d",ssi,bbi);prin tf("nother:%d",bbi);答案及评析:【1 】bbi=0【2 】bb5+【3 】p+;在使用【解析】填空1 数组bb6用来存放5个元音字母和其他字符的个数之前需要清

31、零。填空2 数组元素bb5用来存放其他字符的个数当指针P所指的字符不是元音字母时则认为是其他字符bb5加1。填空3 指针P指向字符串str 通过P自加1来移动指针访问字符串中的所有字符。2.改错题下列给定的程序中函数fun()的功能是计算并输出k以内最大的6个能被7或11整除的自然数之和。K的值由主函数传入 若k的值为500则函数的值为 2925。请改正程序中的错误使它能得到正确结果。注意不要改动main函数不得增行或删行也不得更改程序的结构。试题程序#in clude<stdio.h>#in clude <coni o.h>int fun(int k)int m=0,

32、mc=0, j;/*fo un d*/while(k>=2) &&(mc<6)12 /*fo un d*/if(k%7=0)|(k%11=0)/*fo un d*/m=k;mc+;k-;return m;main ()clrscr();prin tf(”dn ”,fu n(500);答案及评析:1正确2正确3正确错误while(k>=2)&&(mc<6)while(k>=2)&&( mc<6)错误 if(k%7=0)|(k%11=0) if(k%7=0)|(k%1仁=0) 错误 m=k;m=m+k;【解析】错误

33、1C语言规定while语句后的表达式两侧必须要有圆括号。错误2 if语句的判断条件应用关系运算符而不是赋值运算符。错误3 根据题意 将满足条件的数求累加和。3.编程题请编写一个函数fun()它的功能是将ss所指字符串中所有下标为偶数位置的字母转换为小写 若该位置上不是字母则不转换。例如若输入ABC4efG 则应输出aBc4efg。注意部分源程序给出如下。请勿改动主函数 main和其他函数中的任何内容仅在函数fun的花括号中填入所编写的若干语句。试题程序#in cludevc oni o.h>#in clude<stdio.h>#in clude<stri ng.h>

34、;void fun( char *ss)13main ()char tt81;clrscr();prin tf("nP lease en ter an stri ng with in 80 characters:n"); gets(tt);prin tf("nn After cha nging, the stri ngnfun( tt);prin tf("nbecomesn %sn",tt);答案及评析:void fun( char *ss)int i;将ss所指字符串中所有下标为偶数位置的字母/*for(i=0;ssi!='0'

35、;i+)转换为小写*/if(i%2=0&&ssi>='A'&&ssi<='Z')ssi=ssi+32;只要将小写字母减去 32则转成大写字母 该程序是用【解析】从C语言的学习中我们知道if语句实现该功能转化的。将大写字母加上32则转成小写字母。模拟试题(五)由num传入字符串的长度。 str中的单词个数结果由变量1.填空题 str是全部由小写字母字符和空格字符组成的字符串 请补充函数fun()该函数的功能是统计字符串num传回。每个单词之间都由空格隔开并且字符串str开始不存在空格。例女0str= “ how do y

36、ou do ” 结果为 num=4注意部分源程序给出如下。请勿改动主函数 main和其他函数中的任何内容仅在函数fun()的横线上填入所编写的若干表达式或语句。试题程序#in clude<stdio.h>#defi ne N 80void fun( char *s,i nt *num) int i,n=0;【1】;i+)for(i=0; i<* num if(si>='a'&&si<='z'&&( si+1= ''|si+1='0') n+【2;14 *num=n【3;

37、 main ()char strN;int num=O;prin tf("E nter a stri ng:n"); gets(str);while(str nu m)nu m+;fun (str,&nu m);prin tf("The nu mber of word is : %dnn",nu m);答案及评析:【1 i<*num 【2 】n+【3】*num=n【解析】填空1*num传入字符串的长度所以for循环中变量i的变化范围是从0到*门口m-1。填空2 如果当前判断的字符是小写字母并且它的下一个字符n要加上1。填空3 题目要求结果由

38、变量 num传回 所以要 num所指的单元。是空格或者是字符串结束标记符则表示当前字符是一个单词的最后一个字母统计单词数的变量 将n的值赋给指针fun()函数的功能是根据形参m 计算下列公式的值。-1m+1 /m2.改错题 下列给定程序中t=1-1/21/3-1/4例如若输入5 则应输出0.783333。 请改正程序中的错误使它能得到正确结果。注意不要改动main函数不得增行或删行也不得更改程序的结构。试题程序#in clude <coni o.h>#i nclude <stdio.h>/*fo un d*/ int fun (i nt m)double t=1.0,j

39、=1.0;int i;/*fo un d*/for(i=1;i<m;i+)j=-1*j;t+=j/i;return t;15mai n()int m;clrscr();prin tf("nPI ease en ter 1 in teger nu mber:");scan f("%d", &m);prin tf("nThe result is %lfn", fun( m);错误int fun (i nt m)double fun (i nt m) 错误 for(i=1;i<m;i+) for(i=2;i<=m;

40、i+)答案及评析:1正确2正确【解析】错误函数的返回值为实型数所以应定义为double类型。错误2根据题目的公式参加运算的数应从 2到m 包括3.编程题请编写函数fun() 它的功能是 求出1到1000之内能被5或13整除、但不能 同时被5和13整除的所有整数并将它们放在 a所指的数组中 通过n返回这些 数的个数。注意部分源程序给出如下。请勿改动主函数 main和其他函数中的任何内容仅在函数fun的花括号中填入所编写的若干语句。试题程序#in clude <coni o.h>#in clude <stdio.h> void fun(int *a,i nt *n) mai

41、 n()int aa1000, n, k; clrscr();fun (aa,&n); for(k=0;k< n; k+) if(k+1)%10=0)prin tf("%5d ",aak);一行写10个数*/prin tf("n ");/*else16prin tf("%5d ",aak);答案及评析:void fun (i nt *a,i nt *n)int i,j=0;for(i=1;i<=1000;i+)/*求1到1000之内能被5或13整除、但不能同时被5和13整除的所有整数,并放入数组a中*/if(i%5

42、=0|i%13=0) &&i %65!=0)传回满足条件的数的个数 */aj+=i;*n=j;/*【解析】注意本题题目是找出能被5或13整除但不能同时被 5和13整除的所有整数。能同时被 5和13整除的整数一定能被 65整除且不能被65整除的数不一定就是能被5或13整除的数。所以可得出程序中的if()。按运算优先级可知(i%5=0|i%13=0) 注意两边必须要有小括号。模拟试题(六)1.填空题num传入字符由变量串长度。请补'中的数字字符转换成数字并存放到str是一个由数字和字母字符组成的字符串I充函数fun() 该函数的功能是 把字符串str 整型数组bb中函数返回

43、数组bb的长度。123456890。仅在函数fun()的横线上填入所例如 str= “ Bcd123e456hui890 ” 结果为 注意部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容 编写的若干表达式或语句。试题程序#in clude<stdio.h>#defi ne N 80int bbN;int fun( char s,i nt bb,i nt num)int i,n=0;for(i=0;i< nu m;i+)if( 【1】si>=' 0' &&si<= ' 9')'0'【21

44、 ;bb n=si-n+;return n 【31 ;17main ()char strN;int num=0,n ,i;prin tf("E nter a stri ng:n");gets(str);while(str nu m)nu m+;n=fun( str,bb ,nu m);prin tf("nbb=");for(i=0;i< n;i+)prin tf("%d",bbi);答案及评析: 0 &&si<= 9【2】si- 0【3】n1 如果当前字符的 ASCII码大于字符0的ASCII码 而小于字符

45、9' 则说明当前字符是数字字符。填空2将数字字符转换为数字的方【1 】si>=【解析】填空的ASCII码法是用当前数字字符的 ASCII码减去字符0的ASCII码。填空3 题目要求函数返回数组bb的长度而变量n记录了数字字符的个数也就是数组bb的长度n。所以函数应该返回2.改错题 下列给定程序中函数fun()的功能是 从n个学生的成绩中统计出高于平均分的学生人数人数由函数值返回平均分存放在形参 aver所指的存储单元中。例如输入8名学生的成绩85 65.5 69 95.5 87 55 62.5 75则高于平均分的学生人数为4平均分为74.312500。请改正程序中的错误使它能得到

46、正确结果。注意不要改动main函数不得增行或删行也不得更改程序的结构。试题程序#i nclude <stdio.h>#in clude <coni o.h>#defi ne N 20int fun( float *s, int n, float *aver)/*fo un d*/ int ave ,t=0;int coun t=0,k,i;for(k=0;k< n; k+) t+=sk;ave=t/ n;for(i=0;i< n;i+)/*fo un d*/18if(si<ave)coun t+;/*fo un d*/aver=ave;retur n

47、count;main ()float s30,aver;int m,i;clrscr();prin tf("nP lease en ter m:");scan f("%d",&m);prin tf("nP lease en ter %d mark :n ”,m);for(i=0;i<m;i+)scan f("%f",s+i);prin tf("nThe nu mber of stude nts :%dn",fu n(s,m,&aver); prin tf("Ave=%fn&

48、quot;,aver);答案及评析:1错误 int ave ,t=0;正确float ave ,t=0.0;2错误 if(si<ave)正确if(si>ave)3错误 aver=ave;正确*aver=ave;【解析】错误1 ave和t分别用来存放成绩的平均值和总分应为实型数。错误2根据题意找出高于平均分的数所以此处的关系运算符应为错误3 aver是指针 而ave是一个数不能将一个数赋值给一个指针符号'*'。">"而要用3.编程题请编写一个函数fun() 它的功能是比较两个字符串的长度不得调用C语言提供的求字符串长度的函数函数返回较短的字符

49、串。若两个字符串长度相等则返回第1个字符串。例如 输入 nanjing <CR> nanchang <CR><CR:为回车键注意部分源程序给出如下。函数将返回nanjing 。请勿改动主函数 main和其他函数中的任何内容仅在函数fun的花括号中填入所编写的若干语句。试题程序#in clude<stdio.h>19char *fun( char *s, char *t)main ()char a20,b10,* p,*q;int i;prin tf("l nput 1th stri ng:");gets(a);prin tf(&qu

50、ot;l nput 2th stri ng:");gets(b);prin tf("%s",fu n(a,b);答案及评析:char *fun( char *s, char *t)int i,j;for(i=0;si!= '0'i+); /* for(j=0;tj!= '0'j+);if(i<=j)return s;个字符串*/elsereturn t;【解析】本题中求字符串的长度*/*/*比较两个字符串的长度 函数返回较短的字符串第1个for循环的作用是求出*/,若两个字符串长度相等则返回第1的作用是求出t的字符个数j因为任

51、何循环都要控制一条语句for循环条件后面必须要有一个分号。本题也可用如下技巧#in clude<stri ng.h>#in clude<stri ng.h>*/char *fun( char *s,char *t)if(strle n( s)>=strle n(t)return s;else retur n t;/*s的字符个数i 第2个for循环 所以在每一个,定要注意在最前面加模拟试题(七)1.填空题从键盘输入一组无符号整数并保存在数组xxN中以整数结束输入要求这些数的最大位数不超过位 其元素的个数通过变量 num传入函数fun()。请补20充函数fun()

52、该函数的功能是 从数组xx中找出个位和十位的数字之和大于 的所有无符号整数结果保存在数组yy中 其个数由函数fun()返回。例如 当 xx8=123,11,25,222,42,333,14,5451bb4=25,42,333,5451。注意部分源程序给出如下。仅在函数fun的横线上填入所请勿改动主函数 main和其他函数中的任何内容编写的若干表达式或语句。试题程序#i nclude <stdio.h>#defi ne N 1000int fun (i nt xx,i nt bb,i nt num)int i, n=0;int g, s;for(i=0;i< nu m;i+)g=xxi%10【1 】;s=xxi/10%10;【2】;if(g+s)>5)bb n+=xxireturn n【3】;main ()int xxN;int yyN;int num=0,n=0,i=0;prin tf("I nput nu mber :n ”);doscan f("%u", &xx num);while(xx nu m+!=0);n=fun( xx,yy, nu m);prin tf("nyy=");for(i=0;i< n;i+)prin tf("%u ",yyi);答

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论